/**
  * @covers Hex::encode()
  * @covers Hex::decode()
  * @covers Hex::encodeUpper()
  */
 public function testRandom()
 {
     for ($i = 1; $i < 32; ++$i) {
         for ($j = 0; $j < 50; ++$j) {
             $random = \random_bytes($i);
             $enc = Hex::encode($random);
             $this->assertSame($random, Hex::decode($enc));
             $this->assertSame(\bin2hex($random), $enc);
             $enc = Hex::encodeUpper($random);
             $this->assertSame($random, Hex::decode($enc));
             $this->assertSame(\strtoupper(\bin2hex($random)), $enc);
         }
     }
 }
 public function testVectorBase16()
 {
     $this->assertSame(Hex::encode(''), '');
     $this->assertSame(Hex::encode('f'), '66');
     $this->assertSame(Hex::encode('fo'), '666f');
     $this->assertSame(Hex::encode('foo'), '666f6f');
     $this->assertSame(Hex::encode('foob'), '666f6f62');
     $this->assertSame(Hex::encode('fooba'), '666f6f6261');
     $this->assertSame(Hex::encode('foobar'), '666f6f626172');
     $this->assertSame(Hex::encodeUpper(''), '');
     $this->assertSame(Hex::encodeUpper('f'), '66');
     $this->assertSame(Hex::encodeUpper('fo'), '666F');
     $this->assertSame(Hex::encodeUpper('foo'), '666F6F');
     $this->assertSame(Hex::encodeUpper('foob'), '666F6F62');
     $this->assertSame(Hex::encodeUpper('fooba'), '666F6F6261');
     $this->assertSame(Hex::encodeUpper('foobar'), '666F6F626172');
 }