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

Tests for lazy permutation/combination enumeration (ah-comb-generators.H). More...

#include <algorithm>
#include <bit>
#include <set>
#include <stdexcept>
#include <vector>
#include <gtest/gtest.h>
#include <ah-comb-generators.H>
Include dependency graph for ah_comb_generators_test.cc:

Go to the source code of this file.

Functions

 TEST (CombGenerators, PermutationsOfEmptyAndSingleton)
 
 TEST (CombGenerators, PermutationsMatchStdNextPermutationCount)
 
 TEST (CombGenerators, PermutationsMatchStdNextPermutationContent)
 
 TEST (CombGenerators, PermutationsWithDuplicatesCollapseLikeStd)
 
 TEST (CombGenerators, PermutationsAreDistinctAsMultiset)
 
 TEST (CombGenerators, PermutationsEarlyBreakStopsWork)
 
 TEST (CombGenerators, CombinationsKZeroYieldsOneEmptyCombination)
 
 TEST (CombGenerators, CombinationsKEqualsNYieldsWholeSetOnce)
 
 TEST (CombGenerators, CombinationsKGreaterThanNThrows)
 
 TEST (CombGenerators, CombinationsCountMatchesCombinationCount)
 
 TEST (CombGenerators, CombinationsMatchBruteForceBitmaskEnumeration)
 
 TEST (CombGenerators, CombinationsAreDistinct)
 
 TEST (CombGenerators, CombinationsPreserveRelativeOrderOfSource)
 
 TEST (CombGenerators, CombinationSnapshotsSurviveGeneratorAdvancement)
 

Detailed Description

Tests for lazy permutation/combination enumeration (ah-comb-generators.H).

Property tests comparing lazy_permutations against std::next_permutation (the trusted eager reference) and lazy_combinations against combination_count / a brute-force bitmask enumeration: same count, same set of results, no duplicates. Also covers empty/single-element inputs, duplicate elements (ties), k == 0, k == n, and early break.

Definition in file ah_comb_generators_test.cc.

Function Documentation

◆ TEST() [1/14]

TEST ( CombGenerators  ,
CombinationsAreDistinct   
)

◆ TEST() [2/14]

TEST ( CombGenerators  ,
CombinationsCountMatchesCombinationCount   
)

◆ TEST() [3/14]

TEST ( CombGenerators  ,
CombinationsKEqualsNYieldsWholeSetOnce   
)

◆ TEST() [4/14]

TEST ( CombGenerators  ,
CombinationsKGreaterThanNThrows   
)

◆ TEST() [5/14]

TEST ( CombGenerators  ,
CombinationsKZeroYieldsOneEmptyCombination   
)

◆ TEST() [6/14]

TEST ( CombGenerators  ,
CombinationsMatchBruteForceBitmaskEnumeration   
)

◆ TEST() [7/14]

TEST ( CombGenerators  ,
CombinationSnapshotsSurviveGeneratorAdvancement   
)

◆ TEST() [8/14]

TEST ( CombGenerators  ,
CombinationsPreserveRelativeOrderOfSource   
)

◆ TEST() [9/14]

TEST ( CombGenerators  ,
PermutationsAreDistinctAsMultiset   
)

◆ TEST() [10/14]

TEST ( CombGenerators  ,
PermutationsEarlyBreakStopsWork   
)

◆ TEST() [11/14]

TEST ( CombGenerators  ,
PermutationsMatchStdNextPermutationContent   
)

◆ TEST() [12/14]

TEST ( CombGenerators  ,
PermutationsMatchStdNextPermutationCount   
)

◆ TEST() [13/14]

TEST ( CombGenerators  ,
PermutationsOfEmptyAndSingleton   
)

◆ TEST() [14/14]

TEST ( CombGenerators  ,
PermutationsWithDuplicatesCollapseLikeStd   
)