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

Tests for Hash Fct. More...

#include <gtest/gtest.h>
#include <hash-fct.H>
#include <array>
#include <cstring>
#include <random>
#include <set>
#include <string>
#include <vector>
Include dependency graph for hash_fct_test.cc:

Go to the source code of this file.

Classes

class  HashTestEnvironment
 
class  HashConsistencyTest
 
class  HashEdgeCaseTest
 
class  HashDifferenceTest
 
class  HashVoidPtrTest
 
class  HashTemplateTest
 
struct  UserTypeNS::Point3D
 
class  HashDistributionTest
 
class  HashAvalancheTest
 

Namespaces

namespace  UserTypeNS
 

Functions

 TEST_F (HashConsistencyTest, AddHashConsistency)
 
 TEST_F (HashConsistencyTest, XorHashConsistency)
 
 TEST_F (HashConsistencyTest, RotHashConsistency)
 
 TEST_F (HashConsistencyTest, DjbHashConsistency)
 
 TEST_F (HashConsistencyTest, SaxHashConsistency)
 
 TEST_F (HashConsistencyTest, FnvHashConsistency)
 
 TEST_F (HashConsistencyTest, OatHashConsistency)
 
 TEST_F (HashConsistencyTest, JswHashConsistency)
 
 TEST_F (HashConsistencyTest, ElfHashConsistency)
 
 TEST_F (HashConsistencyTest, JenHashConsistency)
 
 TEST_F (HashConsistencyTest, SuperFastHashConsistency)
 
 TEST_F (HashConsistencyTest, Murmur3HashConsistency)
 
 TEST_F (HashConsistencyTest, DftHashFctConsistency)
 
 TEST_F (HashConsistencyTest, DftHashUsesWyhashBackend)
 
 TEST_F (HashConsistencyTest, XxHash64Consistency)
 
 TEST_F (HashConsistencyTest, WyHashConsistency)
 
 TEST_F (HashConsistencyTest, SipHashConsistency)
 
 TEST_F (HashEdgeCaseTest, EmptyStringHash)
 
 TEST_F (HashEdgeCaseTest, SingleCharHash)
 
 TEST_F (HashEdgeCaseTest, LargeStringHash)
 
 TEST_F (HashEdgeCaseTest, BinaryDataWithNulls)
 
 TEST_F (HashDifferenceTest, DifferentStringsDifferentHashes)
 
 TEST_F (HashDifferenceTest, DifferentIntsDifferentHashes)
 
 TEST_F (HashDifferenceTest, DifferentSeedsDifferentHashes)
 
 TEST_F (HashVoidPtrTest, IntArrayHash)
 
 TEST_F (HashVoidPtrTest, StructHash)
 
 TEST_F (HashTemplateTest, IntTemplateHash)
 
 TEST_F (HashTemplateTest, DoubleTemplateHash)
 
 TEST_F (HashTemplateTest, LongLongTemplateHash)
 
 TEST (PairHashTest, PairDftHashFct)
 
 TEST (PairHashTest, PairSndHashFct)
 
 TEST (PairHashTest, MixedPairComponents)
 
 TEST (PairHashTest, PointerWrappersMatchDirectCalls)
 
size_t UserTypeNS::aleph_hash_value (const Point3D &p) noexcept
 
 TEST (AlephHashADL, UserTypeDeterministic)
 
 TEST (AlephHashADL, UserTypeDftAndSndDiffer)
 
 TEST (AlephHashADL, UserTypeDistinctPointsDistinctHashes)
 
 TEST (AlephHashADL, ConceptDetectedCorrectly)
 
 TEST_F (HashDistributionTest, FnvHashUniqueness)
 
 TEST_F (HashDistributionTest, OatHashUniqueness)
 
 TEST_F (HashDistributionTest, SuperFastHashUniqueness)
 
 TEST_F (HashDistributionTest, JenHashUniqueness)
 
 TEST_F (HashDistributionTest, Murmur3HashUniqueness)
 
 TEST_F (HashDistributionTest, DftHashFctUniqueness)
 
 TEST_F (HashDistributionTest, XxHash64Uniqueness)
 
 TEST_F (HashDistributionTest, WyHashUniqueness)
 
 TEST_F (HashDistributionTest, SipHashUniqueness)
 
 TEST_F (HashAvalancheTest, SingleBitChangeJenkins)
 
 TEST_F (HashAvalancheTest, SingleBitChangeMurmur3)
 
 TEST_F (HashAvalancheTest, SingleBitChangeXxHash64)
 
 TEST_F (HashAvalancheTest, SingleBitChangeWyHash)
 
 TEST_F (HashAvalancheTest, SingleBitChangeSipHash)
 
 TEST_F (HashAvalancheTest, SingleBitChangeOat)
 
 TEST (HashKnownValuesTest, AddHashKnownValue)
 
 TEST (HashKnownValuesTest, XorHashKnownValue)
 
 TEST (HashKnownValuesTest, FnvHashStartValue)
 
 TEST (HashKnownValuesTest, SipHashOfficialVectors)
 
 TEST (SeededHashTest, JenHashWithDefaultSeed)
 
 TEST (SeededHashTest, DftHashFctWithSeed)
 
 TEST (HashTypeSafetyTest, SignedUnsignedConsistency)
 
 TEST (HashTypeSafetyTest, ConstCharPtrAndStringConsistency)
 
 TEST (HashTypeSafetyTest, PointerHashIsStableAcrossCallPaths)
 
 TEST (HashPerformanceTest, LargeDataHashing)
 
 TEST (HashPerformanceTest, ManySmallHashes)
 

Variables

testing::Environment *const hash_env
 

Detailed Description

Tests for Hash Fct.

Exhaustive test suite for hash functions in hash-fct.H.

Tests cover:

  • Consistency: same input always produces same output
  • Various input types: void*, templates, const char*, std::string
  • Edge cases: empty strings, single byte, large data
  • Basic distribution quality (collision rates)
  • All hash functions: add_hash, xor_hash, rot_hash, djb_hash, sax_hash, fnv_hash, oat_hash, jsw_hash, elf_hash, jen_hash, SuperFastHash, murmur3hash, dft_hash_fct, snd_hash_fct

Definition in file hash_fct_test.cc.

Function Documentation

◆ TEST() [1/19]

TEST ( AlephHashADL  ,
ConceptDetectedCorrectly   
)

Definition at line 693 of file hash_fct_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST() [2/19]

TEST ( AlephHashADL  ,
UserTypeDeterministic   
)

◆ TEST() [3/19]

TEST ( AlephHashADL  ,
UserTypeDftAndSndDiffer   
)

◆ TEST() [4/19]

TEST ( AlephHashADL  ,
UserTypeDistinctPointsDistinctHashes   
)

◆ TEST() [5/19]

TEST ( HashKnownValuesTest  ,
AddHashKnownValue   
)

◆ TEST() [6/19]

TEST ( HashKnownValuesTest  ,
FnvHashStartValue   
)

◆ TEST() [7/19]

TEST ( HashKnownValuesTest  ,
SipHashOfficialVectors   
)

◆ TEST() [8/19]

TEST ( HashKnownValuesTest  ,
XorHashKnownValue   
)

◆ TEST() [9/19]

◆ TEST() [10/19]

TEST ( HashPerformanceTest  ,
ManySmallHashes   
)

◆ TEST() [11/19]

TEST ( HashTypeSafetyTest  ,
ConstCharPtrAndStringConsistency   
)

◆ TEST() [12/19]

◆ TEST() [13/19]

TEST ( HashTypeSafetyTest  ,
SignedUnsignedConsistency   
)

◆ TEST() [14/19]

TEST ( PairHashTest  ,
MixedPairComponents   
)

◆ TEST() [15/19]

TEST ( PairHashTest  ,
PairDftHashFct   
)

◆ TEST() [16/19]

TEST ( PairHashTest  ,
PairSndHashFct   
)

◆ TEST() [17/19]

TEST ( PairHashTest  ,
PointerWrappersMatchDirectCalls   
)

◆ TEST() [18/19]

TEST ( SeededHashTest  ,
DftHashFctWithSeed   
)

◆ TEST() [19/19]

TEST ( SeededHashTest  ,
JenHashWithDefaultSeed   
)

◆ TEST_F() [1/44]

TEST_F ( HashAvalancheTest  ,
SingleBitChangeJenkins   
)

◆ TEST_F() [2/44]

TEST_F ( HashAvalancheTest  ,
SingleBitChangeMurmur3   
)

◆ TEST_F() [3/44]

TEST_F ( HashAvalancheTest  ,
SingleBitChangeOat   
)

◆ TEST_F() [4/44]

TEST_F ( HashAvalancheTest  ,
SingleBitChangeSipHash   
)

◆ TEST_F() [5/44]

TEST_F ( HashAvalancheTest  ,
SingleBitChangeWyHash   
)

◆ TEST_F() [6/44]

TEST_F ( HashAvalancheTest  ,
SingleBitChangeXxHash64   
)

◆ TEST_F() [7/44]

TEST_F ( HashConsistencyTest  ,
AddHashConsistency   
)

Definition at line 89 of file hash_fct_test.cc.

References Aleph::add_hash(), and Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [8/44]

TEST_F ( HashConsistencyTest  ,
DftHashFctConsistency   
)

◆ TEST_F() [9/44]

◆ TEST_F() [10/44]

TEST_F ( HashConsistencyTest  ,
DjbHashConsistency   
)

◆ TEST_F() [11/44]

TEST_F ( HashConsistencyTest  ,
ElfHashConsistency   
)

◆ TEST_F() [12/44]

TEST_F ( HashConsistencyTest  ,
FnvHashConsistency   
)

◆ TEST_F() [13/44]

TEST_F ( HashConsistencyTest  ,
JenHashConsistency   
)

◆ TEST_F() [14/44]

TEST_F ( HashConsistencyTest  ,
JswHashConsistency   
)

◆ TEST_F() [15/44]

TEST_F ( HashConsistencyTest  ,
Murmur3HashConsistency   
)

◆ TEST_F() [16/44]

TEST_F ( HashConsistencyTest  ,
OatHashConsistency   
)

◆ TEST_F() [17/44]

TEST_F ( HashConsistencyTest  ,
RotHashConsistency   
)

◆ TEST_F() [18/44]

TEST_F ( HashConsistencyTest  ,
SaxHashConsistency   
)

◆ TEST_F() [19/44]

TEST_F ( HashConsistencyTest  ,
SipHashConsistency   
)

◆ TEST_F() [20/44]

TEST_F ( HashConsistencyTest  ,
SuperFastHashConsistency   
)

◆ TEST_F() [21/44]

TEST_F ( HashConsistencyTest  ,
WyHashConsistency   
)

◆ TEST_F() [22/44]

TEST_F ( HashConsistencyTest  ,
XorHashConsistency   
)

◆ TEST_F() [23/44]

TEST_F ( HashConsistencyTest  ,
XxHash64Consistency   
)

◆ TEST_F() [24/44]

TEST_F ( HashDifferenceTest  ,
DifferentIntsDifferentHashes   
)

◆ TEST_F() [25/44]

◆ TEST_F() [26/44]

◆ TEST_F() [27/44]

TEST_F ( HashDistributionTest  ,
DftHashFctUniqueness   
)

◆ TEST_F() [28/44]

TEST_F ( HashDistributionTest  ,
FnvHashUniqueness   
)

◆ TEST_F() [29/44]

TEST_F ( HashDistributionTest  ,
JenHashUniqueness   
)

◆ TEST_F() [30/44]

TEST_F ( HashDistributionTest  ,
Murmur3HashUniqueness   
)

◆ TEST_F() [31/44]

TEST_F ( HashDistributionTest  ,
OatHashUniqueness   
)

◆ TEST_F() [32/44]

TEST_F ( HashDistributionTest  ,
SipHashUniqueness   
)

◆ TEST_F() [33/44]

TEST_F ( HashDistributionTest  ,
SuperFastHashUniqueness   
)

◆ TEST_F() [34/44]

TEST_F ( HashDistributionTest  ,
WyHashUniqueness   
)

◆ TEST_F() [35/44]

TEST_F ( HashDistributionTest  ,
XxHash64Uniqueness   
)

◆ TEST_F() [36/44]

◆ TEST_F() [37/44]

◆ TEST_F() [38/44]

◆ TEST_F() [39/44]

◆ TEST_F() [40/44]

TEST_F ( HashTemplateTest  ,
DoubleTemplateHash   
)

◆ TEST_F() [41/44]

TEST_F ( HashTemplateTest  ,
IntTemplateHash   
)

◆ TEST_F() [42/44]

TEST_F ( HashTemplateTest  ,
LongLongTemplateHash   
)

◆ TEST_F() [43/44]

◆ TEST_F() [44/44]

Variable Documentation

◆ hash_env

testing::Environment* const hash_env
Initial value:
=
testing::AddGlobalTestEnvironment(new HashTestEnvironment)

Definition at line 74 of file hash_fct_test.cc.