// // frequency_monobit.cpp // rng // // Created by Asher Falcon on 21/06/2025. // #include "../rng.h" #include "../math/incomplete_gamma.h" #include "./frequency_block.h" #include "./rngtest.h" namespace splat { frequency_block_test::frequency_block_test(std::vector> &testData) : RNGTEST(testData) { block_size = data.size() * 32 / 150; testPValue = runTest(data); testPassed = testPValue > 0.01; } double frequency_block_test::runTest(std::vector> &data) { long long bitcount = data.size() * 32; long long chunks = bitcount / block_size; double x2stat = 0; for(int chunkIndex = 0; chunkIndex < chunks; chunkIndex++){ // std::cout << "NEWCHUNK: "; double onecount = 0; for(int i=0; i