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

Comprehensive tests for Compact_Quotient_Filter. More...

#include <gtest/gtest.h>
#include <quotient-filter.H>
#include <compact-quotient-filter.H>
#include <cstddef>
#include <string>
#include <set>
#include <random>
#include <vector>
#include <algorithm>
Include dependency graph for compact-quotient-filter.cc:

Go to the source code of this file.

Functions

 TEST (CompactQuotientFilterCtor, valid_parameters)
 
 TEST (CompactQuotientFilterCtor, rejects_invalid_q)
 
 TEST (CompactQuotientFilterCtor, rejects_invalid_r)
 
 TEST (CompactQuotientFilterCtor, rejects_q_plus_r_exceeds_64)
 
 TEST (CompactQuotientFilterCtor, from_capacity_creates_valid_filter)
 
 TEST (CompactQuotientFilterCtor, from_capacity_rejects_bad_args)
 
 TEST (CompactQuotientFilterCtor, memory_usage_is_compact)
 
 TEST (CompactQuotientFilterBasic, insert_and_contains_no_false_negatives)
 
 TEST (CompactQuotientFilterBasic, absent_elements_usually_not_found)
 
 TEST (CompactQuotientFilterBasic, duplicate_insert_is_idempotent)
 
 TEST (CompactQuotientFilterBasic, string_keys)
 
 TEST (CompactQuotientFilterBasic, small_remainder_bits)
 
 TEST (CompactQuotientFilterBasic, large_remainder_bits)
 
 TEST (CompactQuotientFilterDelete, remove_existing_element)
 
 TEST (CompactQuotientFilterDelete, remove_nonexistent_is_noop)
 
 TEST (CompactQuotientFilterDelete, remove_all_makes_empty)
 
 TEST (CompactQuotientFilterDelete, insert_after_remove)
 
 TEST (CompactQuotientFilterDelete, interleaved_insert_remove)
 
 TEST (CompactQuotientFilterCapacity, load_factor_computed_correctly)
 
 TEST (CompactQuotientFilterCapacity, overflow_throws)
 
 TEST (CompactQuotientFilterCapacity, high_load_factor_still_works)
 
 TEST (CompactQuotientFilterIntrospection, memory_usage)
 
 TEST (CompactQuotientFilterIntrospection, false_positive_rate)
 
 TEST (CompactQuotientFilterIntrospection, estimate_returns_valid_params)
 
 TEST (CompactQuotientFilterSemantics, copy_preserves_state)
 
 TEST (CompactQuotientFilterSemantics, move_transfers_state)
 
 TEST (CompactQuotientFilterSemantics, swap_works)
 
 TEST (CompactQuotientFilterClear, clears_all_state)
 
 TEST (CompactQuotientFilterClear, can_reuse_after_clear)
 
 TEST (CompactQuotientFilterMerge, merge_combines_elements)
 
 TEST (CompactQuotientFilterMerge, merge_rejects_mismatched_params)
 
 TEST (CompactQuotientFilterMerge, merge_rejects_mismatched_seed)
 
 TEST (CompactQuotientFilterMerge, merge_with_overlapping_elements)
 
 TEST (CompactQuotientFilterFPRate, empirical_fp_rate_within_bounds)
 
 TEST (CompactQuotientFilterFPRate, low_fp_rate_with_large_r)
 
 TEST (CompactQuotientFilterStress, random_insertions_and_lookups)
 
 TEST (CompactQuotientFilterStress, sequential_insert_remove_cycles)
 
 TEST (CompactQuotientFilterStress, collision_heavy_workload)
 
 TEST (CompactQuotientFilterEdge, single_slot_filter)
 
 TEST (CompactQuotientFilterEdge, minimal_remainder_bits)
 
 TEST (CompactQuotientFilterEdge, maximal_remainder_bits)
 
 TEST (CompactQuotientFilterEdge, wrap_around_behavior)
 
 TEST (CompactQuotientFilterComparison, same_behavior_as_standard)
 
 TEST (CompactQuotientFilterComparison, memory_savings_verified)
 

Detailed Description

Comprehensive tests for Compact_Quotient_Filter.

Definition in file compact-quotient-filter.cc.

Function Documentation

◆ TEST() [1/44]

TEST ( CompactQuotientFilterBasic  ,
absent_elements_usually_not_found   
)

◆ TEST() [2/44]

TEST ( CompactQuotientFilterBasic  ,
duplicate_insert_is_idempotent   
)

◆ TEST() [3/44]

TEST ( CompactQuotientFilterBasic  ,
insert_and_contains_no_false_negatives   
)

◆ TEST() [4/44]

TEST ( CompactQuotientFilterBasic  ,
large_remainder_bits   
)

◆ TEST() [5/44]

TEST ( CompactQuotientFilterBasic  ,
small_remainder_bits   
)

◆ TEST() [6/44]

TEST ( CompactQuotientFilterBasic  ,
string_keys   
)

◆ TEST() [7/44]

TEST ( CompactQuotientFilterCapacity  ,
high_load_factor_still_works   
)

◆ TEST() [8/44]

TEST ( CompactQuotientFilterCapacity  ,
load_factor_computed_correctly   
)

◆ TEST() [9/44]

TEST ( CompactQuotientFilterCapacity  ,
overflow_throws   
)

◆ TEST() [10/44]

TEST ( CompactQuotientFilterClear  ,
can_reuse_after_clear   
)

◆ TEST() [11/44]

TEST ( CompactQuotientFilterClear  ,
clears_all_state   
)

◆ TEST() [12/44]

TEST ( CompactQuotientFilterComparison  ,
memory_savings_verified   
)

◆ TEST() [13/44]

TEST ( CompactQuotientFilterComparison  ,
same_behavior_as_standard   
)

◆ TEST() [14/44]

TEST ( CompactQuotientFilterCtor  ,
from_capacity_creates_valid_filter   
)

◆ TEST() [15/44]

TEST ( CompactQuotientFilterCtor  ,
from_capacity_rejects_bad_args   
)

◆ TEST() [16/44]

TEST ( CompactQuotientFilterCtor  ,
memory_usage_is_compact   
)

◆ TEST() [17/44]

TEST ( CompactQuotientFilterCtor  ,
rejects_invalid_q   
)

◆ TEST() [18/44]

TEST ( CompactQuotientFilterCtor  ,
rejects_invalid_r   
)

◆ TEST() [19/44]

TEST ( CompactQuotientFilterCtor  ,
rejects_q_plus_r_exceeds_64   
)

◆ TEST() [20/44]

TEST ( CompactQuotientFilterCtor  ,
valid_parameters   
)

◆ TEST() [21/44]

TEST ( CompactQuotientFilterDelete  ,
insert_after_remove   
)

◆ TEST() [22/44]

TEST ( CompactQuotientFilterDelete  ,
interleaved_insert_remove   
)

◆ TEST() [23/44]

TEST ( CompactQuotientFilterDelete  ,
remove_all_makes_empty   
)

◆ TEST() [24/44]

TEST ( CompactQuotientFilterDelete  ,
remove_existing_element   
)

◆ TEST() [25/44]

TEST ( CompactQuotientFilterDelete  ,
remove_nonexistent_is_noop   
)

◆ TEST() [26/44]

TEST ( CompactQuotientFilterEdge  ,
maximal_remainder_bits   
)

◆ TEST() [27/44]

TEST ( CompactQuotientFilterEdge  ,
minimal_remainder_bits   
)

◆ TEST() [28/44]

TEST ( CompactQuotientFilterEdge  ,
single_slot_filter   
)

◆ TEST() [29/44]

TEST ( CompactQuotientFilterEdge  ,
wrap_around_behavior   
)

◆ TEST() [30/44]

TEST ( CompactQuotientFilterFPRate  ,
empirical_fp_rate_within_bounds   
)

◆ TEST() [31/44]

TEST ( CompactQuotientFilterFPRate  ,
low_fp_rate_with_large_r   
)

◆ TEST() [32/44]

TEST ( CompactQuotientFilterIntrospection  ,
estimate_returns_valid_params   
)

◆ TEST() [33/44]

TEST ( CompactQuotientFilterIntrospection  ,
false_positive_rate   
)

◆ TEST() [34/44]

TEST ( CompactQuotientFilterIntrospection  ,
memory_usage   
)

◆ TEST() [35/44]

◆ TEST() [36/44]

TEST ( CompactQuotientFilterMerge  ,
merge_rejects_mismatched_params   
)

◆ TEST() [37/44]

TEST ( CompactQuotientFilterMerge  ,
merge_rejects_mismatched_seed   
)

◆ TEST() [38/44]

◆ TEST() [39/44]

TEST ( CompactQuotientFilterSemantics  ,
copy_preserves_state   
)

◆ TEST() [40/44]

TEST ( CompactQuotientFilterSemantics  ,
move_transfers_state   
)

◆ TEST() [41/44]

◆ TEST() [42/44]

TEST ( CompactQuotientFilterStress  ,
collision_heavy_workload   
)

◆ TEST() [43/44]

TEST ( CompactQuotientFilterStress  ,
random_insertions_and_lookups   
)

Definition at line 537 of file compact-quotient-filter.cc.

References Aleph::divide_and_conquer_partition_dp(), and rng.

◆ TEST() [44/44]

TEST ( CompactQuotientFilterStress  ,
sequential_insert_remove_cycles   
)