1--TEST--
2Test 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
14echo "*** Testing str_shuffle() : basic functionality ***\n";
15
16// Initialize all required variables
17$str = 'This testcase tests the str_shuffle() function.';
18var_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
28for ($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
47if ($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 ***
57string(47) "%s"
58TEST PASSED
59===DONE===
60