diff options
author | kusano <kusano@users.noreply.github.com> | 2015-12-17 19:26:38 +0900 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2016-02-17 11:32:59 +0800 |
commit | 6f6bd8ce531636134efd5f669a4e8373fb2e9e51 (patch) | |
tree | 65ba737b40f47ae6a0672fcd9dcd6904bd051952 /ext/standard/tests/math | |
parent | 837e2a912d1fb1b38438f0fe26362baf5b848467 (diff) | |
download | php-git-6f6bd8ce531636134efd5f669a4e8373fb2e9e51.tar.gz |
Fix #71152: mt_rand() returns the different values from original mt19937ar.c
Diffstat (limited to 'ext/standard/tests/math')
-rw-r--r-- | ext/standard/tests/math/mt_rand_value.phpt | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/ext/standard/tests/math/mt_rand_value.phpt b/ext/standard/tests/math/mt_rand_value.phpt new file mode 100644 index 0000000000..eeb009e4b4 --- /dev/null +++ b/ext/standard/tests/math/mt_rand_value.phpt @@ -0,0 +1,53 @@ +--TEST-- +Test mt_rand() - returns the exact same values as mt19937ar.c +--FILE-- +<?php + +mt_srand(12345678); + +for ($i=0; $i<16; $i++) { + echo mt_rand().PHP_EOL; +} +echo PHP_EOL; + +$x = 0; +for ($i=0; $i<1024; $i++) { + $x ^= mt_rand(); +} +echo $x.PHP_EOL; + +/* +excpect values are obtained from original mt19937ar.c as follows: + +int i, x; +init_genrand(12345678); +for (i=0; i<16; i++) { + printf("%d\n", genrand_int31()); +} +printf("\n"); +x = 0; +for (i=0; i<1024; i++) { + x ^= genrand_int31(); +} +printf("%d\n", x); +*/ +?> +--EXPECTF-- +527860569 +1711027313 +1280820687 +688176834 +770499160 +412773096 +813703253 +898651287 +52508912 +757323740 +511765911 +274407457 +833082629 +1923803667 +1461450755 +1301698200 + +1612214270 |