Randomness testing for humans
Project description
Randomness testing for humans
coinflip aims to implement the tests recommended by NIST SP800-22 to check random number generators for randomness. A user-friendly command-line interface provided allows you to run the tests on your data, and subsequently report on the results by generating informational HTML documents.
coinflip.randtests acts as the public API for notebook users and developers to use the randomness tests directly. The tests are implemented as general solutions, meaning they accept basically any sequence with two distinct elements!
Setup
You can get the latest release of coinflip from PyPI.
$ pip install coinflip
Alternatively you can get the (unstable) development version straight from GitHub.
$ pip install git+https://github.com/Honno/coinflip
If that means nothing to you, no fret! Please continue reading the instructions below.
Install Python 3.7+
Cross-platform installation instructions for Python are available at realpython.com/installing-python/.
Note coinflip only works on Python 3.7 or above. Make sure you have Python 3.7 (or higher) by checking the version of your installation:
$ python --version
Python 3.7.X
Clone repository
You can clone the source code via Git:
$ git clone https://github.com/Honno/coinflip
Install coinflip
Enter the directory coinflip is downloaded to:
$ cd coinflip
You can install coinflip via the pip module:
$ pip install -e .
pip is the standard package manager for Python, which should of installed automatically when installing Python 3.7+.
Trial run
Try running the randomness tests on an automatically generated binary sequence:
$ coinflip example-run
If the command coinflip is “not found”, you may need to add your local binaries folder to your shell’s path. For example, in bash you would do the following:
$ echo "export PATH=~/.local/bin:$PATH" >> ~/.bash_profile
$ source ~/.bash_profile
In the worst case, you can execute commands via python -m:
$ python -m coinflip example-run
Quick start
Randomness tests can be ran over your RNG output via the run command.
$ coinflip run DATA OUT
...
DATA is the path to newline-delimited text file that contains a binary sequence. An example file to use is available on my gist. Alternatively, raw binary files can be read as bitstreams via the --binary flag
OUT is the path where you want the results to be saved. The results will be saved as a pickle-serialised file, which can be viewed again via the read command. Additionally you can generate informational HTML reports from the results via the report command, but note that the reports are currently very lacking.
Output should comprise of the sequence parsed from DATA, test-specific result summaries, and a final overall summary table.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file coinflip-0.1.3.tar.gz
.
File metadata
- Download URL: coinflip-0.1.3.tar.gz
- Upload date:
- Size: 241.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.8.5 Linux/5.4.0-54-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c59e948d7cba3bbf6e2a555d63ae6677382f91c4d7230ad6035093bb83e3be29 |
|
MD5 | 7df32e2da1c3443d3205cc79a3917ca9 |
|
BLAKE2b-256 | c9c801d94ced28ece685d51dd31469723538cb9f4d823a36253a3262b07a7ead |
File details
Details for the file coinflip-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: coinflip-0.1.3-py3-none-any.whl
- Upload date:
- Size: 54.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.8.5 Linux/5.4.0-54-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3ae98c60f09ea79a56721f725580fe8110bb5043c2bd420aa189f56d15f4a8b |
|
MD5 | 0ecc0015093ab620c0e82c884daf0a6b |
|
BLAKE2b-256 | ada09ebe688fff86e97dbf8933b603cfe9875b74a989ce27ae8282ef51b40a5f |