Function Repository Resource:

# RunLengthRandomnessTest

Conduct a randomness test on a sequence of random reals between 0 and 1 using run lengths of increasing subsequences

Contributed by: Emmy/Noah Blumenthal
noahb320@gmail.com
emmyb320@bu.edu
 ResourceFunction["RunLengthRandomnessTest"][sequence] uses lengths of increasing runs to test the randomness of sequence and returns an associated p value. ResourceFunction["RunLengthRandomnessTest"][sequence,"property"] uses lengths of increasing runs and returns the associated property.

## Details and Options

Properties include:
 "TestStatistic" returns the test statistic "PValue" returns the p value associated with the test
The test statistic is generated by creating a chi square–like statistic that measures the difference between the lengths of runs up in a sequence and the expected mean lengths of runs up in the sequence.
The test only works for sequences of random reals between 0 and 1.
RunLengthRandomnessTest results are valid only for sequence lengths greater than 600.
The RunLengthRandomnessTest function performs a two-tailed test on the test statistic.

## Examples

### Basic Examples

Generate a sequence of random integers and apply a run length–based test:

 In[1]:=

Visualize the sequence:

 In[2]:=
 Out[2]=
 In[3]:=
 Out[3]=
 In[4]:=
 Out[4]=

### Scope

Reject the randomness of a nonrandom sequence:

 In[5]:=
 In[6]:=
 In[7]:=
 Out[7]=
 In[8]:=
 Out[8]=
 In[9]:=
 Out[9]=

### Neat Examples

Visualize the sampling distribution of the test statistic:

 In[10]:=
 In[11]:=
 Out[11]=
 In[12]:=
 Out[12]=
 In[13]:=
 Out[13]=