A total of fifteen statistical tests were developed, implemented and evaluated. The following describes each of the tests.

Back to Top**Description:** The focus of the test is the proportion of zeroes and ones for the entire sequence. The purpose of this test
is to determine whether that number of ones and zeros in a sequence are approximately the same as would be expected for a truly random sequence.
The test assesses the closeness of the fraction of ones to ½, that is, the number of ones and zeroes in a sequence should be about the same.

**Description**: The focus of the test is the proportion of zeroes and ones within M-bit blocks. The purpose of this test is
to determine whether the frequency of ones is an M-bit block is approximately M/2.

**Description:** The focus of this test is the total number of zero and one runs in the entire sequence, where a run is an
uninterrupted sequence of identical bits. A run of length k means that a run consists of exactly k identical bits and is bounded before
and after with a bit of the opposite value. The purpose of the runs test is to determine whether the number of runs of ones and zeros of
various lengths is as expected for a random sequence. In particular, this test determines whether the oscillation between such substrings
is too fast or too slow.

**Description:** The focus of the test is the longest run of ones within M-bit blocks. The purpose of this test is to determine
whether the length of the longest run of ones within the tested sequence is consistent with the length of the longest run of ones that would be
expected in a random sequence. Note that an irregularity in the expected length of the longest run of ones implies that there is also an
irregularity in the expected length of the longest run of zeroes. Long runs of zeroes were not evaluated separately due to a concern about
statistical independence among the tests.

**Description: **The focus of the test is the rank of disjoint sub-matrices of the entire sequence. The purpose of this test is
to check for linear dependence among fixed length substrings of the original sequence.

**Description:** The focus of this test is the peak heights in the discrete Fast Fourier Transform. The purpose of this test is to
detect periodic features (i.e., repetitive patterns that are near each other) in the tested sequence that would indicate a deviation from the
assumption of randomness.

**Description:** The focus of this test is the number of occurrences of pre-defined target substrings. The purpose of this test is
to reject sequences that exhibit too many occurrences of a given non-periodic (aperiodic) pattern. For this test and for the Overlapping Template
Matching test, an m-bit window is used to search for a specific m-bit pattern. If the pattern is not found, the window slides one bit position.
For this test, when the pattern is found, the window is reset to the bit after the found pattern, and the search resumes.

**Description:** The focus of this test is the number of pre-defined target substrings. The purpose of this test is to reject
sequences that show deviations from the expected number of runs of ones of a given length. Note that when there is a deviation from the expected
number of ones of a given length, there is also a deviation in the runs of zeroes. Runs of zeroes were not evaluated separately due to a concern
about statistical independence among the tests. For this test and for the Non-overlapping Template Matching test, an m-bit window is used to
search for a specific m-bit pattern. If the pattern is not found, the window slides one bit position. For this test, when the pattern is found,
the window again slides one bit, and the search is resumed.

**Description: **The focus of this test is the number of bits between matching patterns. The purpose of the test is to detect whether
or not the sequence can be significantly compressed without loss of information. An overly compressible sequence is considered to be non-random.

**Description:** The focus of this test is the length of a generating feedback register. The purpose of this test is to determine
whether or not the sequence is complex enough to be considered random. Random sequences are characterized by a longer feedback register. A short
feedback register implies non-randomness.

**Description:** The focus of this test is the frequency of each and every overlapping m-bit pattern across the entire sequence.
The purpose of this test is to determine whether the number of occurrences of the 2^{m} m-bit overlapping patterns is approximately the same as
would be expected for a random sequence. The pattern can overlap.

**Description:** The focus of this test is the frequency of each and every overlapping m-bit pattern. The purpose of the test
is to compare the frequency of overlapping blocks of two consecutive/adjacent lengths (m and m+1) against the expected result for a random sequence.

**Description:** The focus of this test is the maximal excursion (from zero) of the random walk defined by the cumulative sum
of adjusted (-1, +1) digits in the sequence. The purpose of the test is to determine whether the cumulative sum of the partial sequences
occurring in the tested sequence is too large or too small relative to the expected behavior of that cumulative sum for random sequences.
This cumulative sum may be considered as a random walk. For a random sequence, the random walk should be near zero. For non-random sequences,
the excursions of this random walk away from zero will be too large.

**Description:** The focus of this test is the number of cycles having exactly K visits in a cumulative sum random walk. The
cumulative sum random walk is found if partial sums of the (0,1) sequence are adjusted to (-1, +1). A random excursion of a random walk
consists of a sequence of n steps of unit length taken at random that begin at and return to the origin. The purpose of this test is to
determine if the number of visits to a state within a random walk exceeds what one would expect for a random sequence.

**Description:** The focus of this test is the number of times that a particular state occurs in a cumulative sum random walk.
The purpose of this test is to detect deviations from the expected number of occurrences of various states in the random walk.