summaryrefslogtreecommitdiff
path: root/ext/standard/tests/strings/004.phpt
blob: b9904c614ae3bcda28b6cdda4e5c5ee693bc18f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
--TEST--
Testing randomization of shuffle() and str_shuffle().
--FILE--
<?php
function stats($f, $a) {
    $times = 90000;
    print "$f\n";
    ksort($a);
    foreach($a as $k => $v)
        print "$k: $v: " . sprintf('%0.3f', $v / $times) . "\n";
}
$a = array();
$times = 90000;
for ($i = 0; $i < $times; $i++) {
    $p = range(1,4);
    shuffle($p);
    $s = join('', $p);
    if (empty($a[$s])) $a[$s] = 0; 
    $a[$s]++;
}

stats('shuffle', $a);
$a = array();
$times = 90000;
for ($i = 0; $i < $times; $i++) {
    $p = '1234';
    $s = str_shuffle($p);
    if (empty($a[$s])) $a[$s] = 0;
    $a[$s]++;
}

stats('str_shuffle', $a);
?>
--EXPECTREGEX--
shuffle
1234: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1243: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1324: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1342: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1423: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1432: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2134: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2143: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2314: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2341: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2413: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2431: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3124: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3142: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3214: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3241: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3412: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3421: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4123: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4132: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4213: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4231: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4312: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4321: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
str_shuffle
1234: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1243: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1324: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1342: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1423: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
1432: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2134: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2143: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2314: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2341: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2413: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
2431: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3124: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3142: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3214: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3241: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3412: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
3421: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4123: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4132: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4213: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4231: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4312: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]
4321: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]