Return to str_shuffle_basic.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / strings |
1.1 misho 1: --TEST-- 2: Test str_shuffle() function : basic functionality 3: --FILE-- 4: <?php 5: /* Prototype : string str_shuffle ( string $str ) 6: * Description: Randomly shuffles a string 7: * Source code: ext/standard/string.c 8: */ 9: 10: /* 11: * Testing str_shuffle() : basic functionality 12: */ 13: 14: echo "*** Testing str_shuffle() : basic functionality ***\n"; 15: 16: // Initialize all required variables 17: $str = 'This testcase tests the str_shuffle() function.'; 18: var_dump(str_shuffle($str)); 19: 20: 21: // For a given i/p string ensure that all combinations are 22: // generated given a reasonable sample of calls 23: $a = array(); 24: $trys = 1000; 25: $ip = 'abcd'; 26: $len_ip = strlen($ip); 27: 28: for ($i = 0; $i < $trys; $i++) { 29: $op = str_shuffle($ip); 30: 31: if (!is_string($op) || strlen($op) != $len_ip) { 32: echo "TEST FAILED\n"; 33: } 34: 35: // Combination already hit ? 36: if (empty($a[$op])) { 37: // No first time init 38: $a[$op] = 0; 39: } 40: 41: // Increment count for this combination 42: $a[$op]++; 43: } 44: 45: $combinations = count($a); 46: 47: if ($combinations != 24) { 48: echo "TEST FAILED.. Only $combinations out of a possible 24 combinations used\n"; 49: } else { 50: echo "TEST PASSED\n"; 51: } 52: 53: ?> 54: ===DONE=== 55: --EXPECTF-- 56: *** Testing str_shuffle() : basic functionality *** 57: string(47) "%s" 58: TEST PASSED 59: ===DONE===