Rust port of Paul Uszak's new randomness testing suite for TRNG Makers generating in the sub 1 MB space. Successor to John Walker’s venerable ent.
Onod3000 provides multiple randomness tests, each outputting a statistic, a z-score andd a p-value to assess the conformity of the data to random behavior.
Testing Methodology
All tests have been carefully ported from Paul Uszak's Java code (ent3000-0.6.0-beta). Java libraries were substituted with Rust crate equivalents when possible. The suite includes the following tests:
- Monobit Test: Evaluates the balance of 0s and 1s.
- Chi-Square Tests: Tests the uniformity of bits and bytes.
- MeanByte Test: Checks if the mean byte value aligns with expected randomness.
- Kolmogorov-Smirnov (KS) Test: Assesses uniformity of data distribution.
- Pi Test: Uses Monte Carlo methods to approximate π.
- Shells Test: Analyzes distances in 3D space.
- Gaps Test: Measures gaps between occurrences of a specific value.
- Avalanche Test: Analyzes bit-level changes in data chunks.
- Runs and RunUps Tests: Checks for sequential patterns in data.
- Prediction Test: Assesses the predictability of next bits.
- UnCorrelation Test: Evaluates correlation between shifted data.