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

Tests for Aleph::Generator<T> (ah-generator.H). More...

#include <memory>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
#include <gtest/gtest.h>
#include <ah-generator.H>
Include dependency graph for ah_generator_test.cc:

Go to the source code of this file.

Functions

 TEST (Generator, BasicYieldAndRangeFor)
 
 TEST (Generator, IterationOrderIsDescending)
 
 TEST (Generator, EmptyGeneratorYieldsNothing)
 
 TEST (Generator, MixedValueCategoriesPreserveContent)
 
 TEST (Generator, PartialConsumptionStopsEarly)
 
 TEST (Generator, ManualIteratorProtocol)
 
 TEST (Generator, ResumingAfterExhaustionIsSafe)
 
 TEST (Generator, DefaultConstructedGeneratorIsAnEmptyRange)
 
 TEST (Generator, MovedFromGeneratorIsAnEmptyRange)
 
 TEST (Generator, ExceptionPropagatesFromResume)
 
 TEST (Generator, ExceptionMessageIsPreserved)
 
 TEST (Generator, ElementLifetimesAreBalancedAcrossSuspension)
 
 TEST (Generator, ElementLifetimesAreBalancedOnEarlyDestruction)
 
 TEST (Generator, MoveOnlyElementsAreSupported)
 
 TEST (Generator, GeneratorItselfIsMoveOnly)
 
 TEST (Generator, CompositionForwardsThroughNestedFrame)
 
 TEST (Generator, MultipleIndependentInstancesDoNotInterfere)
 

Detailed Description

Tests for Aleph::Generator<T> (ah-generator.H).

Covers basic yielding and range-for iteration, lvalue/rvalue/temporary yield lifetime, partial consumption (early break / early destruction), exception propagation, move-only element types, move semantics of the generator itself, an empty (never-yields) generator, and a generator that yields another generator's output (composition).

Definition in file ah_generator_test.cc.

Function Documentation

◆ TEST() [1/17]

TEST ( Generator  ,
BasicYieldAndRangeFor   
)

Definition at line 128 of file ah_generator_test.cc.

◆ TEST() [2/17]

TEST ( Generator  ,
CompositionForwardsThroughNestedFrame   
)

Definition at line 321 of file ah_generator_test.cc.

◆ TEST() [3/17]

TEST ( Generator  ,
DefaultConstructedGeneratorIsAnEmptyRange   
)

◆ TEST() [4/17]

TEST ( Generator  ,
ElementLifetimesAreBalancedAcrossSuspension   
)

Definition at line 270 of file ah_generator_test.cc.

◆ TEST() [5/17]

TEST ( Generator  ,
ElementLifetimesAreBalancedOnEarlyDestruction   
)

Definition at line 286 of file ah_generator_test.cc.

References Aleph::Generator< T >::begin().

◆ TEST() [6/17]

TEST ( Generator  ,
EmptyGeneratorYieldsNothing   
)

Definition at line 149 of file ah_generator_test.cc.

◆ TEST() [7/17]

TEST ( Generator  ,
ExceptionMessageIsPreserved   
)

Definition at line 256 of file ah_generator_test.cc.

References FAIL.

◆ TEST() [8/17]

TEST ( Generator  ,
ExceptionPropagatesFromResume   
)

Definition at line 244 of file ah_generator_test.cc.

◆ TEST() [9/17]

TEST ( Generator  ,
GeneratorItselfIsMoveOnly   
)

Definition at line 308 of file ah_generator_test.cc.

◆ TEST() [10/17]

TEST ( Generator  ,
IterationOrderIsDescending   
)

Definition at line 141 of file ah_generator_test.cc.

◆ TEST() [11/17]

TEST ( Generator  ,
ManualIteratorProtocol   
)

◆ TEST() [12/17]

TEST ( Generator  ,
MixedValueCategoriesPreserveContent   
)

Definition at line 157 of file ah_generator_test.cc.

◆ TEST() [13/17]

TEST ( Generator  ,
MovedFromGeneratorIsAnEmptyRange   
)

◆ TEST() [14/17]

TEST ( Generator  ,
MoveOnlyElementsAreSupported   
)

Definition at line 300 of file ah_generator_test.cc.

◆ TEST() [15/17]

TEST ( Generator  ,
MultipleIndependentInstancesDoNotInterfere   
)

Definition at line 329 of file ah_generator_test.cc.

References Aleph::Generator< T >::begin().

◆ TEST() [16/17]

TEST ( Generator  ,
PartialConsumptionStopsEarly   
)

Definition at line 165 of file ah_generator_test.cc.

◆ TEST() [17/17]

TEST ( Generator  ,
ResumingAfterExhaustionIsSafe   
)