public function doTestInt($min, $max, $times) { $rand = new Random(); $values = array(); for ($i = 0; $i < $times; $i++) { // convert to (float) here otherwise array_sum will cause a int overflow for the PHP_MAX_INT test (on HHVM) $values[] = (double) $rand->int($min, $max); } $avg = array_sum($values) / count($values); $expectedAvg = ($min + $max) / 2; $diff = max($avg, $expectedAvg) - min($avg, $expectedAvg); // Ensure that the deviation is less than 1 standard deviation return ($max - $min) / sqrt(12) > $diff; }
<?php require_once __DIR__ . '/vendor/autoload.php'; use BlockTrail\SimplyRandom\Random; $random = new Random(); echo "Generating 8 random bytes:\n\n"; var_dump(bin2hex($random->bytes(8))); echo "\nGenerating a random int between 0 and 128\n\n"; var_dump($random->int(0, 128)); echo "\nGenerating a random float\n\n"; var_dump($random->float()); echo "\nChoosing a random string element\n\n"; var_dump($random->choose("abcdefghijklmnopqrstuvwxyz")); echo "\nChoosing a random array element\n\n"; var_dump($random->choose(array(1, 2, 3, 4, 5, 6, 7, 8, 9))); echo "\nShuffling a string\n\n"; var_dump($random->shuffle("abcdefghijklmnopqrstuvwxyz")); echo "\nShuffling an array\n\n"; var_dump($random->shuffle(array(1, 2, 3, 4, 5, 6, 7, 8, 9))); echo "\nGenerating a token\n\n"; var_dump($random->token(32)); echo "\nGenerating a token (a,b,c,d)\n\n"; var_dump($random->token(8, array('a', 'b', 'c', 'd')));