# 
# RandomSource: PCG_MCG_XSH_RS_32
# RNG: org.apache.commons.rng.core.source32.PcgMcgXshRs32
# Seed: efb3a15633fd698b
# 
# Java: 1.8.0_202
# Runtime: Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
# JVM: Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
# OS: Linux 3.13.0-91-generic amd64
# Native byte-order: LITTLE_ENDIAN
# Output byte-order: LITTLE_ENDIAN
# 
# Analyzer: /home/ah403/rng/PractRand/RNG_test_094 stdin32 -tf 1 -te 0 -tlmin 1KB -tlmax 4TB -multithreaded 
# 
# Start: 2019-10-25 05:59:33
# 
RNG_test using PractRand version 0.94
RNG = RNG_stdin32, seed = unknown
test set = core, folding = standard (32 bit)

rng=RNG_stdin32, seed=unknown
length= 1 kilobyte (2^10 bytes), time= 0.2 seconds
  no anomalies in 6 test result(s)

rng=RNG_stdin32, seed=unknown
length= 2 kilobytes (2^11 bytes), time= 0.4 seconds
  no anomalies in 8 test result(s)

rng=RNG_stdin32, seed=unknown
length= 4 kilobytes (2^12 bytes), time= 0.6 seconds
  no anomalies in 18 test result(s)

rng=RNG_stdin32, seed=unknown
length= 8 kilobytes (2^13 bytes), time= 1.0 seconds
  no anomalies in 21 test result(s)

rng=RNG_stdin32, seed=unknown
length= 16 kilobytes (2^14 bytes), time= 1.4 seconds
  no anomalies in 26 test result(s)

rng=RNG_stdin32, seed=unknown
length= 32 kilobytes (2^15 bytes), time= 1.8 seconds
  no anomalies in 34 test result(s)

rng=RNG_stdin32, seed=unknown
length= 64 kilobytes (2^16 bytes), time= 2.5 seconds
  no anomalies in 42 test result(s)

rng=RNG_stdin32, seed=unknown
length= 128 kilobytes (2^17 bytes), time= 3.2 seconds
  no anomalies in 50 test result(s)

rng=RNG_stdin32, seed=unknown
length= 256 kilobytes (2^18 bytes), time= 3.9 seconds
  no anomalies in 59 test result(s)

rng=RNG_stdin32, seed=unknown
length= 512 kilobytes (2^19 bytes), time= 4.8 seconds
  no anomalies in 67 test result(s)

rng=RNG_stdin32, seed=unknown
length= 1 megabyte (2^20 bytes), time= 5.6 seconds
  no anomalies in 74 test result(s)

rng=RNG_stdin32, seed=unknown
length= 2 megabytes (2^21 bytes), time= 6.4 seconds
  no anomalies in 87 test result(s)

rng=RNG_stdin32, seed=unknown
length= 4 megabytes (2^22 bytes), time= 7.2 seconds
  Test Name                         Raw       Processed     Evaluation
  Gap-16:B                          R=  -4.5  p =1-7.8e-4   unusual          
  ...and 96 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 8 megabytes (2^23 bytes), time= 8.1 seconds
  no anomalies in 106 test result(s)

rng=RNG_stdin32, seed=unknown
length= 16 megabytes (2^24 bytes), time= 8.9 seconds
  no anomalies in 118 test result(s)

rng=RNG_stdin32, seed=unknown
length= 32 megabytes (2^25 bytes), time= 9.9 seconds
  Test Name                         Raw       Processed     Evaluation
  [Low8/32]DC6-9x1Bytes-1           R=  +6.3  p =  2.9e-3   unusual          
  ...and 127 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 64 megabytes (2^26 bytes), time= 11.3 seconds
  no anomalies in 140 test result(s)

rng=RNG_stdin32, seed=unknown
length= 128 megabytes (2^27 bytes), time= 13.3 seconds
  no anomalies in 154 test result(s)

rng=RNG_stdin32, seed=unknown
length= 256 megabytes (2^28 bytes), time= 15.9 seconds
  Test Name                         Raw       Processed     Evaluation
  [Low8/32]BCFN(2+0,13-3,T)         R=  +9.1  p =  4.3e-4   unusual          
  ...and 164 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 512 megabytes (2^29 bytes), time= 19.6 seconds
  no anomalies in 178 test result(s)

rng=RNG_stdin32, seed=unknown
length= 1 gigabyte (2^30 bytes), time= 26.0 seconds
  no anomalies in 192 test result(s)

rng=RNG_stdin32, seed=unknown
length= 2 gigabytes (2^31 bytes), time= 37.8 seconds
  no anomalies in 204 test result(s)

rng=RNG_stdin32, seed=unknown
length= 4 gigabytes (2^32 bytes), time= 60.9 seconds
  no anomalies in 216 test result(s)

rng=RNG_stdin32, seed=unknown
length= 8 gigabytes (2^33 bytes), time= 108 seconds
  no anomalies in 229 test result(s)

rng=RNG_stdin32, seed=unknown
length= 16 gigabytes (2^34 bytes), time= 199 seconds
  no anomalies in 240 test result(s)

rng=RNG_stdin32, seed=unknown
length= 32 gigabytes (2^35 bytes), time= 376 seconds
  no anomalies in 251 test result(s)

rng=RNG_stdin32, seed=unknown
length= 64 gigabytes (2^36 bytes), time= 750 seconds
  no anomalies in 263 test result(s)

rng=RNG_stdin32, seed=unknown
length= 128 gigabytes (2^37 bytes), time= 1479 seconds
  no anomalies in 273 test result(s)

rng=RNG_stdin32, seed=unknown
length= 256 gigabytes (2^38 bytes), time= 2793 seconds
  Test Name                         Raw       Processed     Evaluation
  Gap-16:B                          R=  -4.8  p =1-5.4e-4   unusual          
  ...and 283 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 512 gigabytes (2^39 bytes), time= 5629 seconds
  no anomalies in 295 test result(s)

rng=RNG_stdin32, seed=unknown
length= 1 terabyte (2^40 bytes), time= 11193 seconds
  Test Name                         Raw       Processed     Evaluation
  TMFn(2+10):wl                     R= +25.9  p~=   1e-8    very suspicious  
  TMFn(2+11):wl                     R= +20.0  p~=   7e-6    unusual          
  ...and 302 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 2 terabytes (2^41 bytes), time= 22088 seconds
  Test Name                         Raw       Processed     Evaluation
  TMFn(2+10):wl                     R= +55.3  p~=   3e-26     FAIL !!        
  TMFn(2+11):wl                     R= +38.3  p~=   5e-16     FAIL           
  TMFn(2+12):wl                     R= +25.3  p~=   2e-8    very suspicious  
  TMFn(2+13):wl                     R= +23.7  p~=   1e-7    suspicious       
  [Low8/32]TMFn(2+8):wl             R= +24.3  p~=   7e-8    suspicious       
  [Low8/32]TMFn(2+9):wl             R= +37.1  p~=   3e-15     FAIL           
  ...and 307 test result(s) without anomalies

# 
# End: 2019-10-25 12:07:42
# 
# Exit value: 0
# Bytes used: 2199023329280 >= 2^41 (2.2 TB)
# 
# Test duration: 368.1534833333333 minutes
# 
