File tree Expand file tree Collapse file tree 11 files changed +24
-13
lines changed Expand file tree Collapse file tree 11 files changed +24
-13
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ final class CountingEngine32 implements Engine
21
21
$ engines = [];
22
22
$ engines [] = new CountingEngine32 ();
23
23
$ engines [] = new TestShaEngine ();
24
+ $ iterations = getenv ("SKIP_SLOW_TESTS " ) ? 3_000 : 10_000 ;
24
25
25
26
foreach ($ engines as $ engine ) {
26
27
echo $ engine ::class, PHP_EOL ;
@@ -31,7 +32,7 @@ foreach ($engines as $engine) {
31
32
32
33
$ engine2 = unserialize (serialize ($ engine ));
33
34
34
- for ($ i = 0 ; $ i < 10_000 ; $ i ++) {
35
+ for ($ i = 0 ; $ i < $ iterations ; $ i ++) {
35
36
if ($ engine ->generate () !== $ engine2 ->generate ()) {
36
37
die ("failure: state differs at {$ i }" );
37
38
}
Original file line number Diff line number Diff line change @@ -16,14 +16,15 @@ $engines = [];
16
16
$ engines [] = new Mt19937 (1234 );
17
17
$ engines [] = new PcgOneseq128XslRr64 (1234 );
18
18
$ engines [] = new Xoshiro256StarStar (1234 );
19
+ $ iterations = getenv ("SKIP_SLOW_TESTS " ) ? 3_000 : 10_000 ;
19
20
20
21
foreach ($ engines as $ engine ) {
21
22
echo $ engine ::class, PHP_EOL ;
22
23
23
24
$ native_randomizer = new Randomizer (clone $ engine );
24
25
$ user_randomizer = new Randomizer (new TestWrapperEngine (clone $ engine ));
25
26
26
- for ($ i = 0 ; $ i < 10_000 ; $ i ++) {
27
+ for ($ i = 0 ; $ i < $ iterations ; $ i ++) {
27
28
$ native = $ native_randomizer ->getInt (0 , $ i );
28
29
$ user = $ user_randomizer ->getInt (0 , $ i );
29
30
Original file line number Diff line number Diff line change @@ -20,14 +20,15 @@ $engines[] = new PcgOneseq128XslRr64();
20
20
$ engines [] = new Xoshiro256StarStar ();
21
21
$ engines [] = new Secure ();
22
22
$ engines [] = new TestShaEngine ();
23
+ // Using 10_000 is very slow.
24
+ $ iterations = getenv ("SKIP_SLOW_TESTS " ) ? 100 : 1_000 ;
23
25
24
26
foreach ($ engines as $ engine ) {
25
27
echo $ engine ::class, PHP_EOL ;
26
28
27
29
$ randomizer = new Randomizer ($ engine );
28
30
29
- // Using 10_000 is very slow.
30
- for ($ i = 1 ; $ i < 1_000 ; $ i ++) {
31
+ for ($ i = 1 ; $ i < $ iterations ; $ i ++) {
31
32
if (\strlen ($ randomizer ->getBytes ($ i )) !== $ i ) {
32
33
die ("failure: incorrect string length at {$ i }" );
33
34
}
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ $engines[] = new PcgOneseq128XslRr64();
20
20
$ engines [] = new Xoshiro256StarStar ();
21
21
$ engines [] = new Secure ();
22
22
$ engines [] = new TestShaEngine ();
23
+ $ iterations = getenv ("SKIP_SLOW_TESTS " ) ? 10 : 250 ;
23
24
24
25
foreach ($ engines as $ engine ) {
25
26
echo $ engine ::class, PHP_EOL ;
@@ -28,7 +29,7 @@ foreach ($engines as $engine) {
28
29
var_dump ($ randomizer ->getBytesFromString ('a ' , 10 ));
29
30
var_dump ($ randomizer ->getBytesFromString (str_repeat ('a ' , 256 ), 5 ));
30
31
31
- for ($ i = 1 ; $ i < 250 ; $ i ++) {
32
+ for ($ i = 1 ; $ i < $ iterations ; $ i ++) {
32
33
$ output = $ randomizer ->getBytesFromString (str_repeat ('ab ' , $ i ), 500 );
33
34
34
35
// This check can theoretically fail with a chance of 0.5**500.
Original file line number Diff line number Diff line change @@ -21,14 +21,15 @@ $engines[] = new PcgOneseq128XslRr64();
21
21
$ engines [] = new Xoshiro256StarStar ();
22
22
$ engines [] = new Secure ();
23
23
$ engines [] = new TestShaEngine ();
24
+ $ max = getenv ("SKIP_SLOW_TESTS " ) ? 3_000.0 : 10_000.0 ;
24
25
25
26
foreach ($ engines as $ engine ) {
26
27
echo $ engine ::class, PHP_EOL ;
27
28
28
29
$ randomizer = new Randomizer ($ engine );
29
30
30
31
// Basic range test.
31
- for ($ i = 0.0 ; $ i < 10_000.0 ; $ i += 1.2345 ) {
32
+ for ($ i = 0.0 ; $ i < $ max ; $ i += 1.2345 ) {
32
33
$ result = $ randomizer ->getFloat (-$ i , $ i , IntervalBoundary::ClosedClosed);
33
34
34
35
if ($ result > $ i || $ result < -$ i ) {
Original file line number Diff line number Diff line change @@ -20,14 +20,15 @@ $engines[] = new PcgOneseq128XslRr64();
20
20
$ engines [] = new Xoshiro256StarStar ();
21
21
$ engines [] = new Secure ();
22
22
$ engines [] = new TestShaEngine ();
23
+ $ iterations = getenv ("SKIP_SLOW_TESTS " ) ? 3_000 : 10_000 ;
23
24
24
25
foreach ($ engines as $ engine ) {
25
26
echo $ engine ::class, PHP_EOL ;
26
27
27
28
$ randomizer = new Randomizer ($ engine );
28
29
29
30
// Basic range test.
30
- for ($ i = 0 ; $ i < 10_000 ; $ i ++) {
31
+ for ($ i = 0 ; $ i < $ iterations ; $ i ++) {
31
32
$ result = $ randomizer ->getInt (-$ i , $ i );
32
33
33
34
if ($ result > $ i || $ result < -$ i ) {
@@ -36,7 +37,7 @@ foreach ($engines as $engine) {
36
37
}
37
38
38
39
// Test that extreme ranges do not throw.
39
- for ($ i = 0 ; $ i < 10_000 ; $ i ++) {
40
+ for ($ i = 0 ; $ i < $ iterations ; $ i ++) {
40
41
$ randomizer ->getInt (PHP_INT_MIN , PHP_INT_MAX );
41
42
}
42
43
}
Original file line number Diff line number Diff line change @@ -20,14 +20,15 @@ $engines[] = new PcgOneseq128XslRr64();
20
20
$ engines [] = new Xoshiro256StarStar ();
21
21
$ engines [] = new Secure ();
22
22
$ engines [] = new TestShaEngine ();
23
+ $ iterations = getenv ("SKIP_SLOW_TESTS " ) ? 3_000 : 10_000 ;
23
24
24
25
foreach ($ engines as $ engine ) {
25
26
echo $ engine ::class, PHP_EOL ;
26
27
27
28
$ randomizer = new Randomizer ($ engine );
28
29
29
30
// Basic range test.
30
- for ($ i = 0 ; $ i < 10_000 ; $ i ++) {
31
+ for ($ i = 0 ; $ i < $ iterations ; $ i ++) {
31
32
$ result = $ randomizer ->nextFloat ();
32
33
33
34
if ($ result >= 1 || $ result < 0 ) {
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ $engines[] = new PcgOneseq128XslRr64();
20
20
$ engines [] = new Xoshiro256StarStar ();
21
21
$ engines [] = new Secure ();
22
22
$ engines [] = new TestShaEngine ();
23
+ $ iterations = getenv ("SKIP_SLOW_TESTS " ) ? 10 : 100 ;
23
24
24
25
$ array1 = []; // list
25
26
$ array2 = []; // associative array with only strings
@@ -38,7 +39,7 @@ foreach ($engines as $engine) {
38
39
39
40
$ randomizer = new Randomizer ($ engine );
40
41
41
- for ($ i = 1 ; $ i < 100 ; $ i ++) {
42
+ for ($ i = 1 ; $ i < $ iterations ; $ i ++) {
42
43
$ result = $ randomizer ->pickArrayKeys ($ array1 , $ i );
43
44
44
45
if (array_unique ($ result ) !== $ result ) {
Original file line number Diff line number Diff line change @@ -20,14 +20,15 @@ $engines[] = new PcgOneseq128XslRr64();
20
20
$ engines [] = new Xoshiro256StarStar ();
21
21
$ engines [] = new Secure ();
22
22
$ engines [] = new TestShaEngine ();
23
+ $ length = getenv ("SKIP_SLOW_TESTS " ) ? 1_000 : 5_000 ;
23
24
24
25
foreach ($ engines as $ engine ) {
25
26
echo $ engine ::class, PHP_EOL ;
26
27
27
28
$ randomizer = new Randomizer ($ engine );
28
29
29
30
// This test is slow, test all numbers smaller than 50 and then in steps of 677 (which is prime).
30
- for ($ i = 1 ; $ i < 5_000 ; $ i += ($ i < 50 ? 1 : 677 )) {
31
+ for ($ i = 1 ; $ i < $ length ; $ i += ($ i < 50 ? 1 : 677 )) {
31
32
$ array = range (1 , $ i );
32
33
33
34
$ result = $ randomizer ->shuffleArray ($ array );
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ $engines[] = new PcgOneseq128XslRr64();
20
20
$ engines [] = new Xoshiro256StarStar ();
21
21
$ engines [] = new Secure ();
22
22
$ engines [] = new TestShaEngine ();
23
+ $ length = getenv ("SKIP_SLOW_TESTS " ) ? 1_000 : 5_000 ;
23
24
24
25
function sort_bytes (string $ bytes ): string
25
26
{
@@ -34,7 +35,7 @@ foreach ($engines as $engine) {
34
35
$ randomizer = new Randomizer ($ engine );
35
36
36
37
// This test is slow, test all numbers smaller than 50 and then in steps of 677 (which is prime).
37
- for ($ i = 1 ; $ i < 5_000 ; $ i += ($ i < 50 ? 1 : 677 )) {
38
+ for ($ i = 1 ; $ i < $ length ; $ i += ($ i < 50 ? 1 : 677 )) {
38
39
$ bytes = sort_bytes (random_bytes ($ i ));
39
40
40
41
$ result = $ randomizer ->shuffleBytes ($ bytes );
You can’t perform that action at this time.
0 commit comments