Return to 004.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / strings |
1.1 misho 1: --TEST-- 2: Testing randomization of shuffle() and str_shuffle(). 3: --FILE-- 4: <?php 5: function stats($f, $a) { 6: $times = 90000; 7: print "$f\n"; 8: ksort($a); 9: foreach($a as $k => $v) 10: print "$k: $v: " . sprintf('%0.3f', $v / $times) . "\n"; 11: } 12: $a = array(); 13: $times = 90000; 14: for ($i = 0; $i < $times; $i++) { 15: $p = range(1,4); 16: shuffle($p); 17: $s = join('', $p); 18: if (empty($a[$s])) $a[$s] = 0; 19: $a[$s]++; 20: } 21: 22: stats('shuffle', $a); 23: $a = array(); 24: $times = 90000; 25: for ($i = 0; $i < $times; $i++) { 26: $p = '1234'; 27: $s = str_shuffle($p); 28: if (empty($a[$s])) $a[$s] = 0; 29: $a[$s]++; 30: } 31: 32: stats('str_shuffle', $a); 33: ?> 34: --EXPECTREGEX-- 35: shuffle 36: 1234: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 37: 1243: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 38: 1324: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 39: 1342: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 40: 1423: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 41: 1432: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 42: 2134: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 43: 2143: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 44: 2314: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 45: 2341: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 46: 2413: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 47: 2431: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 48: 3124: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 49: 3142: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 50: 3214: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 51: 3241: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 52: 3412: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 53: 3421: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 54: 4123: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 55: 4132: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 56: 4213: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 57: 4231: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 58: 4312: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 59: 4321: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 60: str_shuffle 61: 1234: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 62: 1243: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 63: 1324: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 64: 1342: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 65: 1423: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 66: 1432: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 67: 2134: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 68: 2143: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 69: 2314: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 70: 2341: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 71: 2413: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 72: 2431: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 73: 3124: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 74: 3142: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 75: 3214: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 76: 3241: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 77: 3412: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 78: 3421: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 79: 4123: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 80: 4132: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 81: 4213: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 82: 4231: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 83: 4312: 3[0-9][0-9][0-9]: 0.0[3-4][0-9] 84: 4321: 3[0-9][0-9][0-9]: 0.0[3-4][0-9]