I have uploaded a short ANSI-C source code that can test the output of
any PRNG using the TESTU01 test battery by reading in 32bit values from STDIN.
On 2017-05-01 18:46:34 +0000, Karl.Frank said:
I have uploaded a short ANSI-C source code that can test the output of
any PRNG using the TESTU01 test battery by reading in 32bit values from
STDIN.
This is pretty handy, especially if one already has TestU01 installed.
The only suggestion I have is to add a warning about how many samples are required for each test: the tests will always fail without enough input.
For example, in my own testing I found that the SmallCrush test consumed 226969476 32-bit samples; the Crush test wanted 33842890314; and the
BigCrush
test chewed through 357112958428 32-bit samples.
Otherwise, pretty neat. Thanks.
__outer
On 07.05.17 08:25, Richard Outerbridge wrote:
On 2017-05-01 18:46:34 +0000, Karl.Frank said:
I have uploaded a short ANSI-C source code that can test the output of
any PRNG using the TESTU01 test battery by reading in 32bit values from
STDIN.
This is pretty handy, especially if one already has TestU01 installed.
The problem you mentioned on how many samples to pipe in is not an easy
to estimate parameter.
By the way, on which PRNG did you perform the test runs?
Did it survive SmallCrush, Crush and BigCrush?
On 2017-05-08 12:08:58 +0000, Karl.Frank said:
On 07.05.17 08:25, Richard Outerbridge wrote:
On 2017-05-01 18:46:34 +0000, Karl.Frank said:
I have uploaded a short ANSI-C source code that can test the output of >>>> any PRNG using the TESTU01 test battery by reading in 32bit values from >>>> STDIN.
This is pretty handy, especially if one already has TestU01 installed.
[....]
The problem you mentioned on how many samples to pipe in is not an easy
to estimate parameter.
[....]
Yes, you're right, the input requirements of the TestU01 Crush tests seem
to vary according to the actual contents of the stream under test. So the limit would seem to be how many samples (4,294,967,295 single bytes or even better 17,179,869,180 bytes as 4,294,967,295 32Bit chunks) you can instruct the generator to produce.
By the way, on which PRNG did you perform the test runs?
Did it survive SmallCrush, Crush and BigCrush?
On my own, of course :) And yes, after 18 hours, it eventually did. This
was using a bespoke interface (the generator was integrated with the
tests).
__outer
On 08.05.17 23:51, Richard Outerbridge wrote:
On 2017-05-08 12:08:58 +0000, Karl.Frank said:
On 07.05.17 08:25, Richard Outerbridge wrote:
On 2017-05-01 18:46:34 +0000, Karl.Frank said:
Well, essentially one could easily replace the function stdin32bit() onBy the way, on which PRNG did you perform the test runs?
Did it survive SmallCrush, Crush and BigCrush?
On my own, of course :) And yes, after 18 hours, it eventually did. This
was using a bespoke interface (the generator was integrated with the
tests).
__outer
top of the source code with his own PRNG algorithm. That's what I did in
the first place when publishing my PRNG algorithms alongside the
TestU01 results. But piping the keystream is more flexible, for example
if you like to check the randomness quality of a stream cipher or even a
hash function ;-)
Did you already publish your PRNG algorithm?
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 83:00:36 |
Calls: | 6,658 |
Calls today: | 4 |
Files: | 12,203 |
Messages: | 5,333,520 |
Posted today: | 1 |