Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
hash_validation_test.cc File Reference

Advanced hash validation tests for [HASH-007]. More...

#include <gtest/gtest.h>
#include <hash-fct.H>
#include <algorithm>
#include <array>
#include <bit>
#include <cmath>
#include <cstdint>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <numeric>
#include <random>
#include <sstream>
#include <string>
#include <string_view>
#include <unordered_set>
#include <vector>
#include <tpl_array.H>
Include dependency graph for hash_validation_test.cc:

Go to the source code of this file.

Classes

class  HashValidation
 

Namespaces

namespace  Wrap
 

Functions

 TEST_F (HashValidation, StrictAvalancheCriterion)
 
 TEST_F (HashValidation, BitIndependenceCriterion)
 
 TEST_F (HashValidation, DifferentialUniformity)
 
 TEST_F (HashValidation, MultiResolutionDistribution)
 
 TEST_F (HashValidation, AdversarialAllZeroLengths)
 
 TEST_F (HashValidation, AdversarialSingleBitKeys)
 
 TEST_F (HashValidation, AdversarialCounterKeys)
 
 TEST_F (HashValidation, AdversarialHighByteDifference)
 
 TEST_F (HashValidation, AdversarialCyclicPatterns)
 
 TEST_F (HashValidation, AdversarialLongCommonPrefix)
 
 TEST_F (HashValidation, AlignmentSensitivity)
 
 TEST_F (HashValidation, SeedIndependence)
 
 TEST_F (HashValidation, SparseKeyCollisions)
 
 TEST_F (HashValidation, PermutationDistribution)
 
 TEST_F (HashValidation, SlidingWindowTest)
 
 TEST_F (HashValidation, LengthExtensionSensitivity)
 
 TEST_F (HashValidation, RankingAllHashFunctions)
 

Detailed Description

Advanced hash validation tests for [HASH-007].

Goes beyond the regression/smoke tests in hash_fct_test.cc and the basic statistical checks in hash_statistical_test.cc. Covers:

  • Strict Avalanche Criterion (SAC) — full bit-flip matrix
  • Bit Independence Criterion (BIC) — pairwise output-bit independence
  • Differential uniformity — Hamming distance input → output
  • Multi-resolution distribution — chi-square at multiple table sizes
  • Adversarial / pathological patterns (sparse keys, cyclic, flooding-like)
  • Alignment sensitivity — same data hashed at different memory offsets
  • Seed independence — different seeds produce statistically independent output streams

Definition in file hash_validation_test.cc.

Function Documentation

◆ TEST_F() [1/17]

TEST_F ( HashValidation  ,
AdversarialAllZeroLengths   
)

Definition at line 768 of file hash_validation_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [2/17]

TEST_F ( HashValidation  ,
AdversarialCounterKeys   
)

◆ TEST_F() [3/17]

TEST_F ( HashValidation  ,
AdversarialCyclicPatterns   
)

Definition at line 888 of file hash_validation_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [4/17]

TEST_F ( HashValidation  ,
AdversarialHighByteDifference   
)

Definition at line 863 of file hash_validation_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and N.

◆ TEST_F() [5/17]

TEST_F ( HashValidation  ,
AdversarialLongCommonPrefix   
)

◆ TEST_F() [6/17]

TEST_F ( HashValidation  ,
AdversarialSingleBitKeys   
)

Definition at line 794 of file hash_validation_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [7/17]

TEST_F ( HashValidation  ,
AlignmentSensitivity   
)

Definition at line 974 of file hash_validation_test.cc.

References Aleph::divide_and_conquer_partition_dp(), h, offset, and rng.

◆ TEST_F() [8/17]

TEST_F ( HashValidation  ,
BitIndependenceCriterion   
)

◆ TEST_F() [9/17]

TEST_F ( HashValidation  ,
DifferentialUniformity   
)

◆ TEST_F() [10/17]

TEST_F ( HashValidation  ,
LengthExtensionSensitivity   
)

◆ TEST_F() [11/17]

TEST_F ( HashValidation  ,
MultiResolutionDistribution   
)

◆ TEST_F() [12/17]

TEST_F ( HashValidation  ,
PermutationDistribution   
)

◆ TEST_F() [13/17]

TEST_F ( HashValidation  ,
RankingAllHashFunctions   
)

Definition at line 1347 of file hash_validation_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and m.

◆ TEST_F() [14/17]

◆ TEST_F() [15/17]

TEST_F ( HashValidation  ,
SlidingWindowTest   
)

Definition at line 1251 of file hash_validation_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and w.

◆ TEST_F() [16/17]

TEST_F ( HashValidation  ,
SparseKeyCollisions   
)

◆ TEST_F() [17/17]

TEST_F ( HashValidation  ,
StrictAvalancheCriterion   
)