Apply code style to tests too

master
Anton Smirnov 9 months ago
parent 161bc30b89
commit d282df4521

@ -17,5 +17,5 @@
<!-- no need to cover 8.2 and later -->
<config name="testVersion" value="7.1-8.1"/>
<file>src</file>
<!-- <file>tests</file>-->
<file>tests</file>
</ruleset>

@ -13,6 +13,6 @@ class HeavilyBiasedEngine implements Engine
{
public function generate(): string
{
return \str_repeat("\xff", PHP_INT_SIZE);
return \str_repeat("\xff", \PHP_INT_SIZE);
}
}

@ -18,10 +18,10 @@ final class SingleByte implements Engine
*/
public function __construct($value = 0)
{
if (is_int($value)) {
$value = abs($value) % 256;
if (\is_int($value)) {
$value = \abs($value) % 256;
} else {
$value = ord(strval($value));
$value = \ord(\strval($value));
}
$this->chr = $value;
@ -33,6 +33,6 @@ final class SingleByte implements Engine
$this->chr = 0;
}
return chr($this->chr++);
return \chr($this->chr++);
}
}

@ -18,10 +18,10 @@ final class ThreeBytes implements Engine
*/
public function __construct($value = 0)
{
if (is_int($value)) {
$value = abs($value) % 256;
if (\is_int($value)) {
$value = \abs($value) % 256;
} else {
$value = ord(strval($value));
$value = \ord(\strval($value));
}
$this->chr = $value;
@ -33,6 +33,6 @@ final class ThreeBytes implements Engine
$this->chr = 0;
}
return str_repeat(chr($this->chr++), 3);
return \str_repeat(\chr($this->chr++), 3);
}
}

@ -25,6 +25,6 @@ final class Xorshift32 implements Engine
$this->seed ^= ($this->seed >> 17);
$this->seed ^= ($this->seed << 5) & 0x7fffffff;
return pack('V', $this->seed);
return \pack('V', $this->seed);
}
}

@ -22,7 +22,7 @@ class DynamicPropertiesTest extends TestCase
$r = new Randomizer();
$r->test = 123;
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot create dynamic property Random\Randomizer::$test',
$e->getMessage()
@ -42,7 +42,7 @@ class DynamicPropertiesTest extends TestCase
$engine = new Secure();
$engine->test = 123;
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot create dynamic property Random\Engine\Secure::$test',
$e->getMessage()
@ -62,7 +62,7 @@ class DynamicPropertiesTest extends TestCase
$engine = new Mt19937();
$engine->test = 123;
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot create dynamic property Random\Engine\Mt19937::$test',
$e->getMessage()
@ -82,7 +82,7 @@ class DynamicPropertiesTest extends TestCase
$engine = new PcgOneseq128XslRr64();
$engine->test = 123;
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot create dynamic property Random\Engine\PcgOneseq128XslRr64::$test',
$e->getMessage()
@ -102,7 +102,7 @@ class DynamicPropertiesTest extends TestCase
$engine = new Xoshiro256StarStar();
$engine->test = 123;
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot create dynamic property Random\Engine\Xoshiro256StarStar::$test',
$e->getMessage()

@ -15,7 +15,7 @@ class EngineMt19937KnownTest extends TestCase
{
public function testKnownRangeSequence(): void
{
$engine = new Mt19937(-2086314273, MT_RAND_MT19937); // chosen by fair dice roll
$engine = new Mt19937(-2086314273, \MT_RAND_MT19937); // chosen by fair dice roll
$rnd = new Randomizer($engine);
// 1000 elements to be longer than the reload period
@ -90,7 +90,7 @@ class EngineMt19937KnownTest extends TestCase
public function testKnownIntSequence(): void
{
$engine = new Mt19937(1248441108, MT_RAND_MT19937); // chosen by fair dice roll
$engine = new Mt19937(1248441108, \MT_RAND_MT19937); // chosen by fair dice roll
$rnd = new Randomizer($engine);
// 1000 elements to be longer than the reload period
@ -216,7 +216,7 @@ class EngineMt19937KnownTest extends TestCase
public function testKnownRangeBrokenSequence(): void
{
$engine = new Mt19937(1055880668, MT_RAND_PHP); // chosen by fair dice roll
$engine = new Mt19937(1055880668, \MT_RAND_PHP); // chosen by fair dice roll
$rnd = new Randomizer($engine);
// 1000 elements to be longer than the period
@ -292,7 +292,7 @@ class EngineMt19937KnownTest extends TestCase
public function testKnownIntBrokenSequence(): void
{
$engine = new Mt19937(-406797440, MT_RAND_PHP); // chosen by fair dice roll
$engine = new Mt19937(-406797440, \MT_RAND_PHP); // chosen by fair dice roll
$rnd = new Randomizer($engine);
// 1000 elements to be longer than the reload period
@ -501,7 +501,7 @@ class EngineMt19937KnownTest extends TestCase
// for bug to bug compatibility
// only when running 64 bit
if (PHP_INT_SIZE < 8) {
if (\PHP_INT_SIZE < 8) {
$this->markTestSkipped("It's a 64 bit test");
}
@ -568,7 +568,7 @@ class EngineMt19937KnownTest extends TestCase
];
foreach ($seeds as $seed => [$min, $max, $sequence]) {
$rnd = new Randomizer(new Mt19937($seed, MT_RAND_MT19937));
$rnd = new Randomizer(new Mt19937($seed, \MT_RAND_MT19937));
foreach ($sequence as $idx => $int) {
self::assertEquals($int, $rnd->getInt($min, $max), "Seed: $seed, Index: $idx");
@ -579,7 +579,7 @@ class EngineMt19937KnownTest extends TestCase
public function testKnownDebugBrokenInfo(): void
{
$engine = new Mt19937(276645134, MT_RAND_PHP); // use same seed as in non-broken
$engine = new Mt19937(276645134, \MT_RAND_PHP); // use same seed as in non-broken
$expected = ['__states' => [
'599cbe07', '7fc46430', '58a280d1', '4fcbb0f2', 'da73a5d2', '1899d378', 'a41971be', '47e50956', 'dce32b6f',
@ -1044,10 +1044,10 @@ class EngineMt19937KnownTest extends TestCase
];
foreach ($seq as $seed => $bytesExpected) {
$engine = new Mt19937($seed, MT_RAND_MT19937);
$engine = new Mt19937($seed, \MT_RAND_MT19937);
for ($i = 0; $i < 1000; $i++) {
$bytes = bin2hex($engine->generate());
$bytes = \bin2hex($engine->generate());
self::assertEquals($bytesExpected[$i], $bytes, "Seed: $seed; Index: $i");
}
}
@ -1440,10 +1440,10 @@ class EngineMt19937KnownTest extends TestCase
];
foreach ($seq as $seed => $bytesExpected) {
$engine = new Mt19937($seed, MT_RAND_PHP);
$engine = new Mt19937($seed, \MT_RAND_PHP);
for ($i = 0; $i < 1000; $i++) {
$bytes = bin2hex($engine->generate());
$bytes = \bin2hex($engine->generate());
self::assertEquals($bytesExpected[$i], $bytes, "Seed: $seed; Index: $i");
}
}
@ -1451,11 +1451,11 @@ class EngineMt19937KnownTest extends TestCase
public function testSerialize(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
$engine = new Mt19937(312321, MT_RAND_MT19937);
$engine = new Mt19937(312321, \MT_RAND_MT19937);
$engineSerialized =
'O:21:"Random\Engine\Mt19937":2:{i:0;a:0:{}i:1;a:626:{i:0;s:8:"055fc132";i:1;s:8:"d1881314";i:2;s:8:"211' .
'6a42b";i:3;s:8:"f7395316";i:4;s:8:"42e5947f";i:5;s:8:"865f00c8";i:6;s:8:"1fdc5356";i:7;s:8:"2ef878f2";i:' .
@ -1584,20 +1584,20 @@ class EngineMt19937KnownTest extends TestCase
'a10";i:617;s:8:"77816738";i:618;s:8:"79a2f7f2";i:619;s:8:"2c3ab050";i:620;s:8:"ac066eda";i:621;s:8:"ee16' .
'7966";i:622;s:8:"d420f95b";i:623;s:8:"c859f45b";i:624;i:0;i:625;i:0;}}';
self::assertEquals($engineSerialized, serialize($engine));
self::assertEquals($engineSerialized, \serialize($engine));
$engineUnserialized = unserialize($engineSerialized);
$engineUnserialized = \unserialize($engineSerialized);
self::assertEquals($engine->generate(), $engineUnserialized->generate());
}
public function testSerializeBroken(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
$engine = new Mt19937(312321, MT_RAND_PHP);
$engine = new Mt19937(312321, \MT_RAND_PHP);
$engineSerialized =
'O:21:"Random\Engine\Mt19937":2:{i:0;a:0:{}i:1;a:626:{i:0;s:8:"daefc9ab";i:1;s:8:"0e381b8d";i:2;s:8:"211' .
'6a42b";i:3;s:8:"28895b8f";i:4;s:8:"9d559ce6";i:5;s:8:"865f00c8";i:6;s:8:"c06c5bcf";i:7;s:8:"f148706b";i:' .
@ -1726,9 +1726,9 @@ class EngineMt19937KnownTest extends TestCase
'289";i:617;s:8:"a8316fa1";i:618;s:8:"79a2f7f2";i:619;s:8:"2c3ab050";i:620;s:8:"73b66643";i:621;s:8:"ee16' .
'7966";i:622;s:8:"0b90f1c2";i:623;s:8:"78b178ce";i:624;i:0;i:625;i:1;}}';
self::assertEquals($engineSerialized, serialize($engine));
self::assertEquals($engineSerialized, \serialize($engine));
$engineUnserialized = unserialize($engineSerialized);
$engineUnserialized = \unserialize($engineSerialized);
self::assertEquals($engine->generate(), $engineUnserialized->generate());
}

@ -17,7 +17,7 @@ class EngineMt19937Test extends TestCase
public function testMtRandCompare(): void
{
// @see https://www.php.net/manual/en/migration72.incompatible.php#migration72.incompatible.rand-mt_rand-output
if (PHP_VERSION_ID < 70200) {
if (\PHP_VERSION_ID < 70200) {
$this->markTestSkipped('PHP 7.1 has glitchy mt_rand');
}
@ -33,12 +33,12 @@ class EngineMt19937Test extends TestCase
];
foreach ($params as [$seed, $min, $max]) {
mt_srand($seed);
\mt_srand($seed);
$rnd = new Randomizer(new Mt19937($seed));
for ($i = 0; $i < 1000; $i++) {
self::assertEquals(mt_rand($min, $max), $rnd->getInt($min, $max), "Seed: $seed, Index: $i");
self::assertEquals(mt_rand(), $rnd->nextInt(), "Seed: $seed, Index: $i");
self::assertEquals(\mt_rand($min, $max), $rnd->getInt($min, $max), "Seed: $seed, Index: $i");
self::assertEquals(\mt_rand(), $rnd->nextInt(), "Seed: $seed, Index: $i");
}
}
}
@ -57,12 +57,12 @@ class EngineMt19937Test extends TestCase
];
foreach ($params as [$seed, $min, $max]) {
mt_srand($seed, MT_RAND_PHP);
$rnd = new Randomizer(new Mt19937($seed, MT_RAND_PHP));
\mt_srand($seed, \MT_RAND_PHP);
$rnd = new Randomizer(new Mt19937($seed, \MT_RAND_PHP));
for ($i = 0; $i < 1000; $i++) {
self::assertEquals(mt_rand($min, $max), $rnd->getInt($min, $max), "Seed: $seed, Index: $i");
self::assertEquals(mt_rand(), $rnd->nextInt(), "Seed: $seed, Index: $i");
self::assertEquals(\mt_rand($min, $max), $rnd->getInt($min, $max), "Seed: $seed, Index: $i");
self::assertEquals(\mt_rand(), $rnd->nextInt(), "Seed: $seed, Index: $i");
}
}
}
@ -72,7 +72,7 @@ class EngineMt19937Test extends TestCase
// test MT_RAND_PHP with mt_rand(), it seems to be consistent between versions
// only when running 64 bit
if (PHP_INT_SIZE < 8) {
if (\PHP_INT_SIZE < 8) {
$this->markTestSkipped("It's a 64 bit test");
}
@ -84,55 +84,55 @@ class EngineMt19937Test extends TestCase
];
foreach ($seeds as $seed => [$min, $max]) {
if ($max - $min <= mt_getrandmax()) {
if ($max - $min <= \mt_getrandmax()) {
throw new LogicException('Invalid test params');
}
mt_srand($seed, MT_RAND_PHP);
$rnd = new Randomizer(new Mt19937($seed, MT_RAND_PHP));
\mt_srand($seed, \MT_RAND_PHP);
$rnd = new Randomizer(new Mt19937($seed, \MT_RAND_PHP));
for ($i = 0; $i < 1000; $i++) {
self::assertEquals(mt_rand($min, $max), $rnd->getInt($min, $max), "Seed: $seed, Index: $i");
self::assertEquals(\mt_rand($min, $max), $rnd->getInt($min, $max), "Seed: $seed, Index: $i");
}
}
}
public function testSerializable(): void
{
mt_srand(2018239802);
\mt_srand(2018239802);
$engine = new Mt19937(2018239802);
$rnd = new Randomizer($engine);
for ($i = 0; $i < 400; $i++) {
self::assertEquals(mt_rand(0, 10000), $rnd->getInt(0, 10000), "Index: $i");
self::assertEquals(\mt_rand(0, 10000), $rnd->getInt(0, 10000), "Index: $i");
}
$engSer = @unserialize(serialize($engine)); // serialize engine
$engSer = @\unserialize(\serialize($engine)); // serialize engine
$rnd2 = new Randomizer($engSer);
for ($i = 0; $i < 400; $i++) {
self::assertEquals(mt_rand(0, 10000), $rnd2->getInt(0, 10000), "Index: $i");
self::assertEquals(\mt_rand(0, 10000), $rnd2->getInt(0, 10000), "Index: $i");
}
$rndSer = @unserialize(serialize($rnd2)); // serialize entire randomizer
$rndSer = @\unserialize(\serialize($rnd2)); // serialize entire randomizer
for ($i = 0; $i < 400; $i++) {
self::assertEquals(mt_rand(0, 10000), $rndSer->getInt(0, 10000), "Index: $i");
self::assertEquals(\mt_rand(0, 10000), $rndSer->getInt(0, 10000), "Index: $i");
}
}
public function testSerializableWarning(): void
{
if (PHP_VERSION_ID >= 70400) {
if (\PHP_VERSION_ID >= 70400) {
$this->expectNotToPerformAssertions();
} elseif (method_exists($this, 'expectWarning')) { // PHPUnit 8/9
} elseif (\method_exists($this, 'expectWarning')) { // PHPUnit 8/9
$this->expectWarning();
$this->expectWarningMessage('Serialized object will be incompatible with PHP 8.2');
} else {
$this->markTestSkipped('PHPUnit is too old for this test');
}
serialize(new Mt19937());
\serialize(new Mt19937());
}
}

@ -62,7 +62,7 @@ class EnginePcgOneseq128XslRr64Test extends TestCase
$engine = new PcgOneseq128XslRr64($seed);
for ($i = 0; $i < 100; $i++) {
$bytes = bin2hex($engine->generate());
$bytes = \bin2hex($engine->generate());
self::assertEquals($bytesExpected[$i], $bytes, "Seed: $seed; Index: $i");
}
}
@ -70,7 +70,7 @@ class EnginePcgOneseq128XslRr64Test extends TestCase
public function testSeedInt64(): void
{
if (PHP_INT_SIZE < 8) {
if (\PHP_INT_SIZE < 8) {
$this->markTestSkipped('64 bit only');
}
@ -103,7 +103,7 @@ class EnginePcgOneseq128XslRr64Test extends TestCase
$engine = new PcgOneseq128XslRr64($seed);
for ($i = 0; $i < 100; $i++) {
$bytes = bin2hex($engine->generate());
$bytes = \bin2hex($engine->generate());
self::assertEquals($bytesExpected[$i], $bytes, "Seed: $seed; Index: $i");
}
}
@ -181,10 +181,10 @@ class EnginePcgOneseq128XslRr64Test extends TestCase
];
foreach ($seq as $seed => $bytesExpected) {
$engine = new PcgOneseq128XslRr64(hex2bin($seed));
$engine = new PcgOneseq128XslRr64(\hex2bin($seed));
for ($i = 0; $i < 100; $i++) {
$bytes = bin2hex($engine->generate());
$bytes = \bin2hex($engine->generate());
self::assertEquals($bytesExpected[$i], $bytes, "Seed: $seed; Index: $i");
}
}
@ -194,27 +194,27 @@ class EnginePcgOneseq128XslRr64Test extends TestCase
{
$engine = new PcgOneseq128XslRr64(123456);
self::assertEquals('5541cb1034d23cbe', bin2hex($engine->generate()));
self::assertEquals('41d1f22928582772', bin2hex($engine->generate()));
self::assertEquals('1763bf76310a3e44', bin2hex($engine->generate()));
self::assertEquals('5541cb1034d23cbe', \bin2hex($engine->generate()));
self::assertEquals('41d1f22928582772', \bin2hex($engine->generate()));
self::assertEquals('1763bf76310a3e44', \bin2hex($engine->generate()));
$engine->jump(0);
self::assertEquals('688456c10d3a6d63', bin2hex($engine->generate()));
self::assertEquals('4e50c51b77ee1e75', bin2hex($engine->generate()));
self::assertEquals('a43ff17b5a2d94a4', bin2hex($engine->generate()));
self::assertEquals('688456c10d3a6d63', \bin2hex($engine->generate()));
self::assertEquals('4e50c51b77ee1e75', \bin2hex($engine->generate()));
self::assertEquals('a43ff17b5a2d94a4', \bin2hex($engine->generate()));
$engine->jump(127);
self::assertEquals('640a138e2e137c2f', bin2hex($engine->generate()));
self::assertEquals('9cbbb1317b3e3bf6', bin2hex($engine->generate()));
self::assertEquals('9f0466861d538c75', bin2hex($engine->generate()));
self::assertEquals('640a138e2e137c2f', \bin2hex($engine->generate()));
self::assertEquals('9cbbb1317b3e3bf6', \bin2hex($engine->generate()));
self::assertEquals('9f0466861d538c75', \bin2hex($engine->generate()));
$engine->jump(256);
self::assertEquals('d20987c39c791f24', bin2hex($engine->generate()));
self::assertEquals('a635504550a7a8ab', bin2hex($engine->generate()));
self::assertEquals('07f2a1f42e889d98', bin2hex($engine->generate()));
self::assertEquals('d20987c39c791f24', \bin2hex($engine->generate()));
self::assertEquals('a635504550a7a8ab', \bin2hex($engine->generate()));
self::assertEquals('07f2a1f42e889d98', \bin2hex($engine->generate()));
}
public function testSerialize(): void
@ -224,14 +224,14 @@ class EnginePcgOneseq128XslRr64Test extends TestCase
$engine1->generate();
$engine1->generate();
$engine2 = unserialize(@serialize($engine1));
$engine2 = \unserialize(@\serialize($engine1));
self::assertEquals($engine1->generate(), $engine2->generate());
}
public function testSerializeKnown(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
@ -245,24 +245,24 @@ class EnginePcgOneseq128XslRr64Test extends TestCase
$engine1->generate();
$engine1->generate();
self::assertEquals($serialized, serialize($engine1));
self::assertEquals($serialized, \serialize($engine1));
$engine2 = unserialize($serialized);
$engine2 = \unserialize($serialized);
self::assertEquals($engine1->generate(), $engine2->generate());
}
public function testSerializeWarning(): void
{
if (PHP_VERSION_ID >= 70400) {
if (\PHP_VERSION_ID >= 70400) {
$this->expectNotToPerformAssertions();
} elseif (method_exists($this, 'expectWarning')) { // PHPUnit 8/9
} elseif (\method_exists($this, 'expectWarning')) { // PHPUnit 8/9
$this->expectWarning();
$this->expectWarningMessage('Serialized object will be incompatible with PHP 8.2');
} else {
$this->markTestSkipped('PHPUnit is too old for this test');
}
serialize(new PcgOneseq128XslRr64());
\serialize(new PcgOneseq128XslRr64());
}
}

@ -24,9 +24,9 @@ class EngineSecureTest extends TestCase
public function testNonSerializable(): void
{
try {
serialize(new Secure());
\serialize(new Secure());
} catch (\Throwable $e) {
self::assertEquals(\Exception::class, get_class($e));
self::assertEquals(\Exception::class, \get_class($e));
self::assertEquals("Serialization of 'Random\Engine\Secure' is not allowed", $e->getMessage());
self::assertNull($e->getPrevious());

@ -62,7 +62,7 @@ class EngineXoshiro256StarStarTest extends TestCase
$engine = new Xoshiro256StarStar($seed);
for ($i = 0; $i < 100; $i++) {
$bytes = bin2hex($engine->generate());
$bytes = \bin2hex($engine->generate());
self::assertEquals($bytesExpected[$i], $bytes, "Seed: $seed; Index: $i");
}
}
@ -70,7 +70,7 @@ class EngineXoshiro256StarStarTest extends TestCase
public function testSeedInt64(): void
{
if (PHP_INT_SIZE < 8) {
if (\PHP_INT_SIZE < 8) {
$this->markTestSkipped('64 bit only');
}
@ -103,7 +103,7 @@ class EngineXoshiro256StarStarTest extends TestCase
$engine = new Xoshiro256StarStar($seed);
for ($i = 0; $i < 100; $i++) {
$bytes = bin2hex($engine->generate());
$bytes = \bin2hex($engine->generate());
self::assertEquals($bytesExpected[$i], $bytes, "Seed: $seed; Index: $i");
}
}
@ -181,10 +181,10 @@ class EngineXoshiro256StarStarTest extends TestCase
];
foreach ($seq as $seed => $bytesExpected) {
$engine = new Xoshiro256StarStar(hex2bin($seed));
$engine = new Xoshiro256StarStar(\hex2bin($seed));
for ($i = 0; $i < 100; $i++) {
$bytes = bin2hex($engine->generate());
$bytes = \bin2hex($engine->generate());
self::assertEquals($bytesExpected[$i], $bytes, "Seed: $seed; Index: $i");
}
}
@ -194,21 +194,21 @@ class EngineXoshiro256StarStarTest extends TestCase
{
$engine = new Xoshiro256StarStar(123456);
self::assertEquals('c4cb8684e9e8d520', bin2hex($engine->generate()));
self::assertEquals('7d731154119f2626', bin2hex($engine->generate()));
self::assertEquals('d68c804f79efddb7', bin2hex($engine->generate()));
self::assertEquals('c4cb8684e9e8d520', \bin2hex($engine->generate()));
self::assertEquals('7d731154119f2626', \bin2hex($engine->generate()));
self::assertEquals('d68c804f79efddb7', \bin2hex($engine->generate()));
$engine->jump();
self::assertEquals('e02b9c3c698a50be', bin2hex($engine->generate()));
self::assertEquals('a47af196a01f0697', bin2hex($engine->generate()));
self::assertEquals('cb4baa5e2923ab4f', bin2hex($engine->generate()));
self::assertEquals('e02b9c3c698a50be', \bin2hex($engine->generate()));
self::assertEquals('a47af196a01f0697', \bin2hex($engine->generate()));
self::assertEquals('cb4baa5e2923ab4f', \bin2hex($engine->generate()));
$engine->jumpLong();
self::assertEquals('c5a7ed51bdd8f289', bin2hex($engine->generate()));
self::assertEquals('fe1c26e9363fa406', bin2hex($engine->generate()));
self::assertEquals('b9345e05be4b96ea', bin2hex($engine->generate()));
self::assertEquals('c5a7ed51bdd8f289', \bin2hex($engine->generate()));
self::assertEquals('fe1c26e9363fa406', \bin2hex($engine->generate()));
self::assertEquals('b9345e05be4b96ea', \bin2hex($engine->generate()));
}
public function testSerialize(): void
@ -218,14 +218,14 @@ class EngineXoshiro256StarStarTest extends TestCase
$engine1->generate();
$engine1->generate();
$engine2 = unserialize(@serialize($engine1));
$engine2 = \unserialize(@\serialize($engine1));
self::assertEquals($engine1->generate(), $engine2->generate());
}
public function testSerializeKnown(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
@ -239,24 +239,24 @@ class EngineXoshiro256StarStarTest extends TestCase
$engine1->generate();
$engine1->generate();
self::assertEquals($serialized, serialize($engine1));
self::assertEquals($serialized, \serialize($engine1));
$engine2 = unserialize($serialized);
$engine2 = \unserialize($serialized);
self::assertEquals($engine1->generate(), $engine2->generate());
}
public function testSerializeWarning(): void
{
if (PHP_VERSION_ID >= 70400) {
if (\PHP_VERSION_ID >= 70400) {
$this->expectNotToPerformAssertions();
} elseif (method_exists($this, 'expectWarning')) { // PHPUnit 8/9
} elseif (\method_exists($this, 'expectWarning')) { // PHPUnit 8/9
$this->expectWarning();
$this->expectWarningMessage('Serialized object will be incompatible with PHP 8.2');
} else {
$this->markTestSkipped('PHPUnit is too old for this test');
}
serialize(new Xoshiro256StarStar());
\serialize(new Xoshiro256StarStar());
}
}

@ -16,12 +16,12 @@ class AllSerializeErrorTest extends TestCase
{
public function testMt19937MalformedHex(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
try {
unserialize(
\unserialize(
'O:21:"Random\Engine\Mt19937":2:{i:0;a:0:{}i:1;a:626:{i:0;s:7:"5aa6b98";i:1;s:8:"8660cc14";i:2;s:8:"' .
'c0b631ca";i:3;s:8:"e85464ad";i:4;s:8:"70fa6108";i:5;s:8:"c5ed9c3c";i:6;s:8:"b05b7ff1";i:7;s:8:"faf33' .
'a3a";i:8;s:8:"ab7c0e61";i:9;s:8:"2d4c9c37";i:10;s:8:"daffe918";i:11;s:8:"644f25b9";i:12;s:8:"fdb352e' .
@ -155,7 +155,7 @@ class AllSerializeErrorTest extends TestCase
'563";i:622;s:8:"04fa51af";i:623;s:8:"dd86eeb1";i:624;i:0;i:625;i:0;}}'
);
} catch (Throwable $e) {
self::assertEquals(Exception::class, get_class($e));
self::assertEquals(Exception::class, \get_class($e));
self::assertEquals('Invalid serialization data for Random\Engine\Mt19937 object', $e->getMessage());
self::assertEquals(0, $e->getCode());
self::assertNull($e->getPrevious());
@ -168,12 +168,12 @@ class AllSerializeErrorTest extends TestCase
public function testMt19937InvalidHex(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
try {
unserialize(
\unserialize(
'O:21:"Random\Engine\Mt19937":2:{i:0;a:0:{}i:1;a:626:{i:0;s:8:"5aa6b98g";i:1;s:8:"8660cc14";i:2;s:8:' .
'"c0b631ca";i:3;s:8:"e85464ad";i:4;s:8:"70fa6108";i:5;s:8:"c5ed9c3c";i:6;s:8:"b05b7ff1";i:7;s:8:"faf3' .
'3a3a";i:8;s:8:"ab7c0e61";i:9;s:8:"2d4c9c37";i:10;s:8:"daffe918";i:11;s:8:"644f25b9";i:12;s:8:"fdb352' .
@ -307,7 +307,7 @@ class AllSerializeErrorTest extends TestCase
'e563";i:622;s:8:"04fa51af";i:623;s:8:"dd86eeb1";i:624;i:0;i:625;i:0;}}'
);
} catch (Throwable $e) {
self::assertEquals(Exception::class, get_class($e));
self::assertEquals(Exception::class, \get_class($e));
self::assertEquals('Invalid serialization data for Random\Engine\Mt19937 object', $e->getMessage());
self::assertEquals(0, $e->getCode());
self::assertNull($e->getPrevious());
@ -320,12 +320,12 @@ class AllSerializeErrorTest extends TestCase
public function testMt19937InvalidCount(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
try {
unserialize(
\unserialize(
'O:21:"Random\Engine\Mt19937":2:{i:0;a:0:{}i:1;a:626:{i:0;s:8:"5aa6b986";i:1;s:8:"8660cc14";i:2;s:8:' .
'"c0b631ca";i:3;s:8:"e85464ad";i:4;s:8:"70fa6108";i:5;s:8:"c5ed9c3c";i:6;s:8:"b05b7ff1";i:7;s:8:"faf3' .
'3a3a";i:8;s:8:"ab7c0e61";i:9;s:8:"2d4c9c37";i:10;s:8:"daffe918";i:11;s:8:"644f25b9";i:12;s:8:"fdb352' .
@ -459,7 +459,7 @@ class AllSerializeErrorTest extends TestCase
'e563";i:622;s:8:"04fa51af";i:623;s:8:"dd86eeb1";i:624;i:1000;i:625;i:0;}}'
);
} catch (Throwable $e) {
self::assertEquals(Exception::class, get_class($e));
self::assertEquals(Exception::class, \get_class($e));
self::assertEquals('Invalid serialization data for Random\Engine\Mt19937 object', $e->getMessage());
self::assertEquals(0, $e->getCode());
self::assertNull($e->getPrevious());
@ -472,12 +472,12 @@ class AllSerializeErrorTest extends TestCase
public function testMt19937InvalidMode(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
try {
unserialize(
\unserialize(
'O:21:"Random\Engine\Mt19937":2:{i:0;a:0:{}i:1;a:626:{i:0;s:8:"5aa6b986";i:1;s:8:"8660cc14";i:2;s:8:' .
'"c0b631ca";i:3;s:8:"e85464ad";i:4;s:8:"70fa6108";i:5;s:8:"c5ed9c3c";i:6;s:8:"b05b7ff1";i:7;s:8:"faf3' .
'3a3a";i:8;s:8:"ab7c0e61";i:9;s:8:"2d4c9c37";i:10;s:8:"daffe918";i:11;s:8:"644f25b9";i:12;s:8:"fdb352' .
@ -611,7 +611,7 @@ class AllSerializeErrorTest extends TestCase
'e563";i:622;s:8:"04fa51af";i:623;s:8:"dd86eeb1";i:624;i:0;i:625;i:2;}}'
);
} catch (Throwable $e) {
self::assertEquals(Exception::class, get_class($e));
self::assertEquals(Exception::class, \get_class($e));
self::assertEquals('Invalid serialization data for Random\Engine\Mt19937 object', $e->getMessage());
self::assertEquals(0, $e->getCode());
self::assertNull($e->getPrevious());
@ -624,17 +624,17 @@ class AllSerializeErrorTest extends TestCase
public function testPcgOneseq128XslRr64MalformedHex(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
try {
unserialize(
\unserialize(
'O:33:"Random\Engine\PcgOneseq128XslRr64":2:{i:0;a:0:{}i:1;a:2:{i:0;s:15:' .
'"c6d571c37c41a8d";i:1;s:16:"345e7e82265d6e27";}}'
);
} catch (Throwable $e) {
self::assertEquals(Exception::class, get_class($e));
self::assertEquals(Exception::class, \get_class($e));
self::assertEquals(
'Invalid serialization data for Random\Engine\PcgOneseq128XslRr64 object',
$e->getMessage()
@ -650,17 +650,17 @@ class AllSerializeErrorTest extends TestCase
public function testPcgOneseq128XslRr64InvalidHex(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
try {
unserialize(
\unserialize(
'O:33:"Random\Engine\PcgOneseq128XslRr64":2:{i:0;a:0:{}i:1;a:2:{i:0;s:16:' .
'"c6d571c37c41a8d1";i:1;s:16:"345e7e82265d6e2g";}}'
);
} catch (Throwable $e) {
self::assertEquals(Exception::class, get_class($e));
self::assertEquals(Exception::class, \get_class($e));
self::assertEquals(
'Invalid serialization data for Random\Engine\PcgOneseq128XslRr64 object',
$e->getMessage()
@ -676,17 +676,17 @@ class AllSerializeErrorTest extends TestCase
public function testXoshiro256StarStarMalformedHex(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
try {
unserialize(
\unserialize(
'O:32:"Random\Engine\Xoshiro256StarStar":2:{i:0;a:0:{}i:1;a:4:{i:0;s:15:"db1c182f1bf60cb";' .
'i:1;s:16:"2465f04d36a1c797";i:2;s:16:"da25c09be4fabe33";i:3;s:16:"33a0d052f241624e";}}'
);
} catch (Throwable $e) {
self::assertEquals(Exception::class, get_class($e));
self::assertEquals(Exception::class, \get_class($e));
self::assertEquals(
'Invalid serialization data for Random\Engine\Xoshiro256StarStar object',
$e->getMessage()
@ -702,17 +702,17 @@ class AllSerializeErrorTest extends TestCase
public function testXoshiro256StarStarInvalidHex(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
try {
unserialize(
\unserialize(
'O:32:"Random\Engine\Xoshiro256StarStar":2:{i:0;a:0:{}i:1;a:4:{i:0;s:16:"db1c182f1bf60cbb";' .
'i:1;s:16:"2465f04d36a1c797";i:2;s:16:"da25c09be4fabe33";i:3;s:16:"33a0d052f241624g";}}'
);
} catch (Throwable $e) {
self::assertEquals(Exception::class, get_class($e));
self::assertEquals(Exception::class, \get_class($e));
self::assertEquals(
'Invalid serialization data for Random\Engine\Xoshiro256StarStar object',
$e->getMessage()

@ -25,7 +25,7 @@ class AllSerializeNativeTest extends TestCase
for ($i = 0; $i < 1000; $i++) {
$engine->generate();
}
$engine2 = unserialize(@serialize($engine));
$engine2 = \unserialize(@\serialize($engine));
for ($i = 0; $i < 5000; $i++) {
self::assertEquals($engine->generate(), $engine2->generate());
}

@ -25,7 +25,7 @@ class AllSerializeUserTest extends TestCase
for ($i = 0; $i < 1000; $i++) {
$engine->generate();
}
$engine2 = unserialize(@serialize($engine));
$engine2 = \unserialize(@\serialize($engine));
for ($i = 0; $i < 5000; $i++) {
self::assertEquals($engine->generate(), $engine2->generate());
}

@ -20,7 +20,7 @@ class Mt19937ErrorTest extends TestCase
try {
new Mt19937(1234, 2);
} catch (Throwable $e) {
self::assertEquals(ValueError::class, get_class($e));
self::assertEquals(ValueError::class, \get_class($e));
self::assertEquals(
'Random\Engine\Mt19937::__construct():' .
' Argument #2 ($mode) must be either MT_RAND_MT19937 or MT_RAND_PHP',

@ -14,7 +14,7 @@ class Mt19937SerializeTest extends TestCase
{
public function testSerialize(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
@ -146,6 +146,6 @@ class Mt19937SerializeTest extends TestCase
'16f";i:617;s:8:"60a25216";i:618;s:8:"dcce86a3";i:619;s:8:"bfcec0cd";i:620;s:8:"fb4170ed";i:621;s:8:"9bf5' .
'e563";i:622;s:8:"04fa51af";i:623;s:8:"dd86eeb1";i:624;i:0;i:625;i:0;}}';
self::assertEquals($s, serialize(new Mt19937(1234)));
self::assertEquals($s, \serialize(new Mt19937(1234)));
}
}

@ -23,7 +23,7 @@ class PcgOneseq128XslRr64JumpErrorTest extends TestCase
$engine->jump(-1);
} catch (Throwable $e) {
self::assertEquals(ValueError::class, get_class($e));
self::assertEquals(ValueError::class, \get_class($e));
self::assertEquals(
'Random\Engine\PcgOneseq128XslRr64::jump():' .
' Argument #1 ($advance) must be greater than or equal to 0',

@ -33,7 +33,7 @@ class PcgOneseq128XslRr64SeedTest extends TestCase
try {
new PcgOneseq128XslRr64(1.0);
} catch (Throwable $e) {
self::assertEquals(TypeError::class, get_class($e));
self::assertEquals(TypeError::class, \get_class($e));
self::assertEquals(
'Random\Engine\PcgOneseq128XslRr64::__construct():' .
' Argument #1 ($seed) must be of type string|int|null, float given',
@ -53,7 +53,7 @@ class PcgOneseq128XslRr64SeedTest extends TestCase
try {
new PcgOneseq128XslRr64('foobar');
} catch (Throwable $e) {
self::assertEquals(ValueError::class, get_class($e));
self::assertEquals(ValueError::class, \get_class($e));
self::assertEquals(
'Random\Engine\PcgOneseq128XslRr64::__construct():' .
' Argument #1 ($seed) must be a 16 byte (128 bit) string',
@ -82,6 +82,6 @@ class PcgOneseq128XslRr64SeedTest extends TestCase
$engine->generate();
}
self::assertEquals('c42016cd9005ef2e', bin2hex($engine->generate()));
self::assertEquals('c42016cd9005ef2e', \bin2hex($engine->generate()));
}
}

@ -14,11 +14,11 @@ class PcgOneseq128XslRr64SerializeTest extends TestCase
{
public function testSerialize(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
$s = serialize(new PcgOneseq128XslRr64(1234));
$s = \serialize(new PcgOneseq128XslRr64(1234));
self::assertEquals(
'O:33:"Random\Engine\PcgOneseq128XslRr64":2:{i:0;a:0:{}i:1;a:2:{i:0;s:16:"c6d571c37c41a8d1";' .

@ -22,6 +22,6 @@ class PcgOneseq128XslRr64ValueTest extends TestCase
$engine->jump(1234567);
self::assertEquals('b88e2a0f23720a1d', bin2hex($engine->generate()));
self::assertEquals('b88e2a0f23720a1d', \bin2hex($engine->generate()));
}
}

@ -15,7 +15,7 @@ class UserXoshiro128PlusPlusTest extends TestCase
public function testXoshiro(): void
{
// only when running 64 bit
if (PHP_INT_SIZE < 8) {
if (\PHP_INT_SIZE < 8) {
$this->markTestSkipped("It's a 64 bit test");
}
@ -25,6 +25,6 @@ class UserXoshiro128PlusPlusTest extends TestCase
$g->generate();
}
self::assertEquals('fa3c872c', bin2hex($g->generate()));
self::assertEquals('fa3c872c', \bin2hex($g->generate()));
}
}

@ -33,7 +33,7 @@ class Xoshiro256StarStarSeedTest extends TestCase
try {
new Xoshiro256StarStar(1.0);
} catch (Throwable $e) {
self::assertEquals(TypeError::class, get_class($e));
self::assertEquals(TypeError::class, \get_class($e));
self::assertEquals(
'Random\Engine\Xoshiro256StarStar::__construct():' .
' Argument #1 ($seed) must be of type string|int|null, float given',
@ -53,7 +53,7 @@ class Xoshiro256StarStarSeedTest extends TestCase
try {
new Xoshiro256StarStar('foobar');
} catch (Throwable $e) {
self::assertEquals(ValueError::class, get_class($e));
self::assertEquals(ValueError::class, \get_class($e));
self::assertEquals(
'Random\Engine\Xoshiro256StarStar::__construct():' .
' Argument #1 ($seed) must be a 32 byte (256 bit) string',
@ -73,7 +73,7 @@ class Xoshiro256StarStarSeedTest extends TestCase
try {
$engine = new Xoshiro256StarStar(\str_repeat("\x00", 32));
} catch (Throwable $e) {
self::assertEquals(ValueError::class, get_class($e));
self::assertEquals(ValueError::class, \get_class($e));
self::assertEquals(
'Random\Engine\Xoshiro256StarStar::__construct():' .
' Argument #1 ($seed) must not consist entirely of NUL bytes',
@ -107,6 +107,6 @@ class Xoshiro256StarStarSeedTest extends TestCase
$engine->generate();
}
self::assertEquals('90a025df9300cfd1', bin2hex($engine->generate()));
self::assertEquals('90a025df9300cfd1', \bin2hex($engine->generate()));
}
}

@ -14,13 +14,13 @@ class Xoshiro256StarStarSerializeTest extends TestCase
{
public function testSerialization(): void
{
if (PHP_VERSION_ID < 70400) {
if (\PHP_VERSION_ID < 70400) {
$this->markTestSkipped('Only 7.4+ is compatible');
}
$s = 'O:32:"Random\Engine\Xoshiro256StarStar":2:{i:0;a:0:{}i:1;a:4:{i:0;s:16:"db1c182f1bf60cbb";i:1;s:16:' .
'"2465f04d36a1c797";i:2;s:16:"da25c09be4fabe33";i:3;s:16:"33a0d052f241624e";}}';
self::assertEquals($s, serialize(new Xoshiro256StarStar(1234)));
self::assertEquals($s, \serialize(new Xoshiro256StarStar(1234)));
}
}

@ -23,6 +23,6 @@ class Xoshiro256StarStarValueTest extends TestCase
$engine->jump();
$engine->jumpLong();
self::assertEquals('1f197e9ca7969123', bin2hex($engine->generate()));
self::assertEquals('1f197e9ca7969123', \bin2hex($engine->generate()));
}
}

@ -26,8 +26,8 @@ class BasicTest extends TestCase
public function testBasic(): void
{
$engines = [];
$engines[] = new Mt19937(\random_int(\PHP_INT_MIN, \PHP_INT_MAX), MT_RAND_MT19937);
$engines[] = new Mt19937(\random_int(\PHP_INT_MIN, \PHP_INT_MAX), MT_RAND_PHP);
$engines[] = new Mt19937(\random_int(\PHP_INT_MIN, \PHP_INT_MAX), \MT_RAND_MT19937);
$engines[] = new Mt19937(\random_int(\PHP_INT_MIN, \PHP_INT_MAX), \MT_RAND_PHP);
$engines[] = new PcgOneseq128XslRr64(\random_int(\PHP_INT_MIN, \PHP_INT_MAX));
$engines[] = new Xoshiro256StarStar(\random_int(\PHP_INT_MIN, \PHP_INT_MAX));
$engines[] = new Secure();
@ -47,27 +47,27 @@ class BasicTest extends TestCase
try {
$randomizer->nextInt();
} catch (RandomException $e) {
self::assertEquals('Generated value exceeds size of int', $e->getMessage(), get_class($engine));
self::assertEquals('Generated value exceeds size of int', $e->getMessage(), \get_class($engine));
}
}
// getInt
for ($i = 0; $i < self::ITERATIONS; $i++) {
$result = $randomizer->getInt(-50, 50);
self::assertGreaterThanOrEqual(-50, $result, get_class($engine));
self::assertLessThanOrEqual(50, $result, get_class($engine));
self::assertGreaterThanOrEqual(-50, $result, \get_class($engine));
self::assertLessThanOrEqual(50, $result, \get_class($engine));
}
// getBytes
for ($i = 0; $i < self::ITERATIONS; $i++) {
$length = \random_int(1, 1024);
self::assertEquals($length, \strlen($randomizer->getBytes($length)), get_class($engine));
self::assertEquals($length, \strlen($randomizer->getBytes($length)), \get_class($engine));
}
// shuffleArray
$array = range(1, self::ITERATIONS);
$array = \range(1, self::ITERATIONS);
$shuffled_array = $randomizer->shuffleArray($array);
self::assertNotEquals($array, $shuffled_array, get_class($engine));
self::assertNotEquals($array, $shuffled_array, \get_class($engine));
// shuffleBytes
$string = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ' .
@ -76,7 +76,7 @@ class BasicTest extends TestCase
'voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non ' .
'proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
$shuffled_string = $randomizer->shuffleBytes($string);
self::assertNotEquals($string, $shuffled_string, get_class($engine));
self::assertNotEquals($string, $shuffled_string, \get_class($engine));
}
}
}

@ -23,7 +23,7 @@ class ConstructTwiceTest extends TestCase
try {
(new Randomizer())->__construct();
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot modify readonly property Random\Randomizer::$engine',
$e->getMessage()
@ -43,7 +43,7 @@ class ConstructTwiceTest extends TestCase
$r = new Randomizer(new Xoshiro256StarStar());
$r->__construct(new PcgOneseq128XslRr64());
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot modify readonly property Random\Randomizer::$engine',
$e->getMessage()
@ -51,7 +51,7 @@ class ConstructTwiceTest extends TestCase
self::assertEquals(0, $e->getCode());
self::assertNull($e->getPrevious());
self::assertEquals(Xoshiro256StarStar::class, get_class($r->engine));
self::assertEquals(Xoshiro256StarStar::class, \get_class($r->engine));
return;
}
@ -65,7 +65,7 @@ class ConstructTwiceTest extends TestCase
$r = new Randomizer(new ConstructTwiceTestUserEngine());
$r->__construct(new ConstructTwiceTestUserEngine());
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot modify readonly property Random\Randomizer::$engine',
$e->getMessage()
@ -85,7 +85,7 @@ class ConstructTwiceTest extends TestCase
$r = new Randomizer(new Xoshiro256StarStar());
$r->__construct(new ConstructTwiceTestUserEngine());
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot modify readonly property Random\Randomizer::$engine',
$e->getMessage()
@ -93,7 +93,7 @@ class ConstructTwiceTest extends TestCase
self::assertEquals(0, $e->getCode());
self::assertNull($e->getPrevious());
self::assertEquals(Xoshiro256StarStar::class, get_class($r->engine));
self::assertEquals(Xoshiro256StarStar::class, \get_class($r->engine));
return;
}

@ -28,6 +28,6 @@ class GetIntUserTest extends TestCase
}
);
self::assertEquals('01020300', bin2hex(pack('V', $randomizer->getInt(0, 0xFFFFFF))));
self::assertEquals('01020300', \bin2hex(\pack('V', $randomizer->getInt(0, 0xFFFFFF))));
}
}

@ -9,7 +9,6 @@ use Random\Randomizer;
use RuntimeException;
use Throwable;
use ValueError;
use function PHPUnit\Framework\assertCount;
/**
* @see https://github.com/php/php-src/blob/master/ext/random/tests/03_randomizer/pick_array_keys_error.phpt
@ -21,7 +20,7 @@ class PickArrayKeysErrorTest extends TestCase
try {
(new Randomizer())->pickArrayKeys([], 0);
} catch (Throwable $e) {
self::assertEquals(ValueError::class, get_class($e));
self::assertEquals(ValueError::class, \get_class($e));
self::assertEquals(
'Random\Randomizer::pickArrayKeys():' .
' Argument #1 ($array) cannot be empty',
@ -39,9 +38,9 @@ class PickArrayKeysErrorTest extends TestCase
public function testZero(): void
{
try {
(new Randomizer())->pickArrayKeys(range(1, 3), 0);
(new Randomizer())->pickArrayKeys(\range(1, 3), 0);
} catch (Throwable $e) {
self::assertEquals(ValueError::class, get_class($e));
self::assertEquals(ValueError::class, \get_class($e));
self::assertEquals(
'Random\Randomizer::pickArrayKeys():' .
' Argument #2 ($num) must be between 1 and the number of elements in argument #1 ($array)',
@ -59,9 +58,9 @@ class PickArrayKeysErrorTest extends TestCase
public function testNeg(): void
{
try {
(new Randomizer())->pickArrayKeys(range(1, 3), -1);
(new Randomizer())->pickArrayKeys(\range(1, 3), -1);
} catch (Throwable $e) {
self::assertEquals(ValueError::class, get_class($e));
self::assertEquals(ValueError::class, \get_class($e));
self::assertEquals(
'Random\Randomizer::pickArrayKeys():' .
' Argument #2 ($num) must be between 1 and the number of elements in argument #1 ($array)',
@ -79,9 +78,9 @@ class PickArrayKeysErrorTest extends TestCase
public function testTooBig(): void
{
try {
(new Randomizer())->pickArrayKeys(range(1, 3), 10);
(new Randomizer())->pickArrayKeys(\range(1, 3), 10);
} catch (Throwable $e) {
self::assertEquals(ValueError::class, get_class($e));
self::assertEquals(ValueError::class, \get_class($e));
self::assertEquals(
'Random\Randomizer::pickArrayKeys():' .
' Argument #2 ($num) must be between 1 and the number of elements in argument #1 ($array)',
@ -98,9 +97,9 @@ class PickArrayKeysErrorTest extends TestCase
public function testSuccess(): void
{
$r = (new Randomizer())->pickArrayKeys(range(1, 3), 3);
$r = (new Randomizer())->pickArrayKeys(\range(1, 3), 3);
self::assertCount(3, $r);
$r = (new Randomizer())->pickArrayKeys(range(1, 3), 2);
$r = (new Randomizer())->pickArrayKeys(\range(1, 3), 2);
self::assertCount(2, $r);
}
}

@ -29,7 +29,7 @@ class ReadonlyTest extends TestCase
try {
$one->engine = $one_ng_clone;
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot modify readonly property Random\Randomizer::$engine',
$e->getMessage()
@ -50,7 +50,7 @@ class ReadonlyTest extends TestCase
try {
$two_ng_clone = clone $two->engine;
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Trying to clone an uncloneable object of class Random\Engine\Secure',
$e->getMessage()
@ -79,7 +79,7 @@ class ReadonlyTest extends TestCase
try {
$two->engine = $one_ng_clone;
} catch (Throwable $e) {
self::assertEquals(Error::class, get_class($e));
self::assertEquals(Error::class, \get_class($e));
self::assertEquals(
'Cannot modify readonly property Random\Randomizer::$engine',
$e->getMessage()

@ -23,8 +23,8 @@ class SerializeTest extends TestCase
public function testSerializeSuccess(): void
{
$engines = [];
$engines[] = new Mt19937(\random_int(\PHP_INT_MIN, \PHP_INT_MAX), MT_RAND_MT19937);
$engines[] = new Mt19937(\random_int(\PHP_INT_MIN, \PHP_INT_MAX), MT_RAND_PHP);
$engines[] = new Mt19937(\random_int(\PHP_INT_MIN, \PHP_INT_MAX), \MT_RAND_MT19937);
$engines[] = new Mt19937(\random_int(\PHP_INT_MIN, \PHP_INT_MAX), \MT_RAND_PHP);
$engines[] = new PcgOneseq128XslRr64(\random_int(\PHP_INT_MIN, \PHP_INT_MAX));
$engines[] = new Xoshiro256StarStar(\random_int(\PHP_INT_MIN, \PHP_INT_MAX));
@ -37,7 +37,7 @@ class SerializeTest extends TestCase
$randomizer = new Randomizer($engine);
$randomizer->getInt(\PHP_INT_MIN, \PHP_INT_MAX);
$randomizer2 = unserialize(@serialize($randomizer));
$randomizer2 = \unserialize(@\serialize($randomizer));
self::assertEquals(
$randomizer->getInt(\PHP_INT_MIN, \PHP_INT_MAX),
@ -54,9 +54,9 @@ class SerializeTest extends TestCase
$randomizer->getInt(\PHP_INT_MIN, \PHP_INT_MAX);
try {
$randomizer2 = unserialize(@serialize($randomizer));
$randomizer2 = \unserialize(@\serialize($randomizer));
} catch (Throwable $e) {
self::assertEquals(\Exception::class, get_class($e));
self::assertEquals(\Exception::class, \get_class($e));
self::assertEquals(
"Serialization of 'Random\Engine\Secure' is not allowed",
$e->getMessage()
@ -88,10 +88,10 @@ class SerializeTest extends TestCase
$randomizer->getInt(\PHP_INT_MIN, \PHP_INT_MAX);
try {
$randomizer2 = unserialize(@serialize($randomizer));
$randomizer2 = \unserialize(@\serialize($randomizer));
} catch (Throwable $e) {
self::assertEquals(\Exception::class, get_class($e));
if (method_exists(__CLASS__, 'assertMatchesRegularExpression')) {
self::assertEquals(\Exception::class, \get_class($e));
if (\method_exists(__CLASS__, 'assertMatchesRegularExpression')) {
self::assertMatchesRegularExpression(
"/Serialization of '.*@anonymous' is not allowed/",
$e->getMessage()

@ -30,7 +30,7 @@ class UserThrowsTest extends TestCase
try {
$randomizer->getBytes(1);
} catch (Throwable $e) {
self::assertEquals(Exception::class, get_class($e));
self::assertEquals(Exception::class, \get_class($e));
self::assertEquals(
"Error",
$e->getMessage()

@ -22,7 +22,7 @@ class UserUnsafeTest extends TestCase
try {
(new Randomizer(new EmptyStringEngine()))->getInt(0, 123);
} catch (Throwable $e) {
self::assertEquals(BrokenRandomEngineError::class, get_class($e));
self::assertEquals(BrokenRandomEngineError::class, \get_class($e));
self::assertEquals(
'A random engine must return a non-empty string',
$e->getMessage()
@ -41,7 +41,7 @@ class UserUnsafeTest extends TestCase
try {
(new Randomizer(new EmptyStringEngine()))->nextInt();
} catch (Throwable $e) {
self::assertEquals(BrokenRandomEngineError::class, get_class($e));
self::assertEquals(BrokenRandomEngineError::class, \get_class($e));
self::assertEquals(
'A random engine must return a non-empty string',
$e->getMessage()
@ -60,7 +60,7 @@ class UserUnsafeTest extends TestCase
try {
(new Randomizer(new EmptyStringEngine()))->getBytes(1);
} catch (Throwable $e) {
self::assertEquals(BrokenRandomEngineError::class, get_class($e));
self::assertEquals(BrokenRandomEngineError::class, \get_class($e));
self::assertEquals(
'A random engine must return a non-empty string',
$e->getMessage()
@ -79,7 +79,7 @@ class UserUnsafeTest extends TestCase
try {
(new Randomizer(new EmptyStringEngine()))->shuffleArray(\range(1, 10));
} catch (Throwable $e) {
self::assertEquals(BrokenRandomEngineError::class, get_class($e));
self::assertEquals(BrokenRandomEngineError::class, \get_class($e));
self::assertEquals(
'A random engine must return a non-empty string',
$e->getMessage()
@ -98,7 +98,7 @@ class UserUnsafeTest extends TestCase
try {
(new Randomizer(new EmptyStringEngine()))->shuffleBytes('foobar');
} catch (Throwable $e) {
self::assertEquals(BrokenRandomEngineError::class, get_class($e));
self::assertEquals(BrokenRandomEngineError::class, \get_class($e));
self::assertEquals(
'A random engine must return a non-empty string',
$e->getMessage()
@ -117,7 +117,7 @@ class UserUnsafeTest extends TestCase
try {
(new Randomizer(new HeavilyBiasedEngine()))->getInt(0, 123);
} catch (Throwable $e) {
self::assertEquals(BrokenRandomEngineError::class, get_class($e));
self::assertEquals(BrokenRandomEngineError::class, \get_class($e));
self::assertEquals(
'Failed to generate an acceptable random number in 50 attempts',
$e->getMessage()
@ -135,14 +135,14 @@ class UserUnsafeTest extends TestCase
{
$r = (new Randomizer(new HeavilyBiasedEngine()))->nextInt();
self::assertEquals(PHP_INT_MAX, $r);
self::assertEquals(\PHP_INT_MAX, $r);
}
public function testHeavilyBiasedEngineGetBytes(): void
{
$r = (new Randomizer(new HeavilyBiasedEngine()))->getBytes(1);
self::assertEquals('ff', bin2hex($r));
self::assertEquals('ff', \bin2hex($r));
}
public function testHeavilyBiasedEngineShuffleArray(): void
@ -150,7 +150,7 @@ class UserUnsafeTest extends TestCase
try {
(new Randomizer(new HeavilyBiasedEngine()))->shuffleArray(\range(1, 10));
} catch (Throwable $e) {
self::assertEquals(BrokenRandomEngineError::class, get_class($e));
self::assertEquals(BrokenRandomEngineError::class, \get_class($e));
self::assertEquals(
'Failed to generate an acceptable random number in 50 attempts',
$e->getMessage()
@ -169,7 +169,7 @@ class UserUnsafeTest extends TestCase
try {
(new Randomizer(new HeavilyBiasedEngine()))->shuffleBytes('foobar');
} catch (Throwable $e) {
self::assertEquals(BrokenRandomEngineError::class, get_class($e));
self::assertEquals(BrokenRandomEngineError::class, \get_class($e));
self::assertEquals(
'Failed to generate an acceptable random number in 50 attempts',
$e->getMessage()