API
Catch::Generators Namespace Reference

Namespaces

 pf
 

Classes

class  GeneratorUntypedBase
 
struct  IGenerator
 
class  SingleValueGenerator
 
class  FixedValuesGenerator
 
class  GeneratorWrapper
 
class  Generators
 
struct  as
 
class  TakeGenerator
 
class  FilterGenerator
 
class  RepeatGenerator
 
class  MapGenerator
 
class  ChunkGenerator
 
class  RandomFloatingGenerator
 
class  RandomIntegerGenerator
 
class  RangeGenerator
 
class  IteratorGenerator
 

Typedefs

using GeneratorBasePtr = std::unique_ptr< GeneratorUntypedBase >
 

Functions

template<typename T >
GeneratorWrapper< T > value (T &&value)
 
template<typename T >
GeneratorWrapper< T > values (std::initializer_list< T > values)
 
template<typename... Ts>
GeneratorWrapper< std::tuple< Ts... > > table (std::initializer_list< std::tuple< typename std::decay< Ts >::type... >> tuples)
 
template<typename T , typename... Gs>
auto makeGenerators (GeneratorWrapper< T > &&generator, Gs &&... moreGenerators) -> Generators< T >
 
template<typename T >
auto makeGenerators (GeneratorWrapper< T > &&generator) -> Generators< T >
 
template<typename T , typename... Gs>
auto makeGenerators (T &&val, Gs &&... moreGenerators) -> Generators< T >
 
template<typename T , typename U , typename... Gs>
auto makeGenerators (as< T >, U &&val, Gs &&... moreGenerators) -> Generators< T >
 
auto acquireGeneratorTracker (StringRef generatorName, SourceLineInfo const &lineInfo) -> IGeneratorTracker &
 
template<typename L >
auto generate (StringRef generatorName, SourceLineInfo const &lineInfo, L const &generatorExpression) -> decltype(std::declval< decltype(generatorExpression())>().get())
 
template<typename T >
GeneratorWrapper< T > take (size_t target, GeneratorWrapper< T > &&generator)
 
template<typename T , typename Predicate >
GeneratorWrapper< T > filter (Predicate &&pred, GeneratorWrapper< T > &&generator)
 
template<typename T >
GeneratorWrapper< T > repeat (size_t repeats, GeneratorWrapper< T > &&generator)
 
template<typename Func , typename U , typename T = FunctionReturnType<Func, U>>
GeneratorWrapper< T > map (Func &&function, GeneratorWrapper< U > &&generator)
 
template<typename T >
GeneratorWrapper< std::vector< T > > chunk (size_t size, GeneratorWrapper< T > &&generator)
 
template<typename T >
std::enable_if< std::is_integral< T >::value &&!std::is_same< T, bool >::value, GeneratorWrapper< T > >::type random (T a, T b)
 
template<typename T >
std::enable_if< std::is_floating_point< T >::value, GeneratorWrapper< T > >::type random (T a, T b)
 
template<typename T >
GeneratorWrapper< T > range (T const &start, T const &end, T const &step)
 
template<typename T >
GeneratorWrapper< T > range (T const &start, T const &end)
 
template<typename InputIterator , typename InputSentinel , typename ResultType = typename std::iterator_traits<InputIterator>::value_type>
GeneratorWrapper< ResultType > from_range (InputIterator from, InputSentinel to)
 
template<typename Container , typename ResultType = typename Container::value_type>
GeneratorWrapper< ResultType > from_range (Container const &cnt)
 

Class Documentation

◆ Catch::Generators::as

struct Catch::Generators::as

template<typename T>
struct Catch::Generators::as< T >

Definition at line 4060 of file catch.hpp.

Collaboration diagram for Catch::Generators::as< T >:
Collaboration graph

Typedef Documentation

◆ GeneratorBasePtr

Definition at line 3855 of file catch.hpp.

Function Documentation

◆ acquireGeneratorTracker()

auto Catch::Generators::acquireGeneratorTracker ( StringRef  generatorName,
SourceLineInfo const &  lineInfo 
) -> IGeneratorTracker &

Referenced by generate().

◆ chunk()

◆ filter()

template<typename T , typename Predicate >
GeneratorWrapper<T> Catch::Generators::filter ( Predicate &&  pred,
GeneratorWrapper< T > &&  generator 
)

Definition at line 4195 of file catch.hpp.

◆ from_range() [1/2]

template<typename Container , typename ResultType = typename Container::value_type>
GeneratorWrapper<ResultType> Catch::Generators::from_range ( Container const &  cnt)

Definition at line 4746 of file catch.hpp.

◆ from_range() [2/2]

template<typename InputIterator , typename InputSentinel , typename ResultType = typename std::iterator_traits<InputIterator>::value_type>
GeneratorWrapper<ResultType> Catch::Generators::from_range ( InputIterator  from,
InputSentinel  to 
)

Definition at line 4740 of file catch.hpp.

◆ generate()

template<typename L >
auto Catch::Generators::generate ( StringRef  generatorName,
SourceLineInfo const &  lineInfo,
L const &  generatorExpression 
) -> decltype(std::declval<decltype(generatorExpression())>().get())

Definition at line 4085 of file catch.hpp.

◆ makeGenerators() [1/4]

template<typename T , typename U , typename... Gs>
auto Catch::Generators::makeGenerators ( as< T >  ,
U &&  val,
Gs &&...  moreGenerators 
) -> Generators<T>

Definition at line 4075 of file catch.hpp.

Referenced by makeGenerators().

◆ makeGenerators() [2/4]

template<typename T >
auto Catch::Generators::makeGenerators ( GeneratorWrapper< T > &&  generator) -> Generators<T>

Definition at line 4067 of file catch.hpp.

◆ makeGenerators() [3/4]

template<typename T , typename... Gs>
auto Catch::Generators::makeGenerators ( GeneratorWrapper< T > &&  generator,
Gs &&...  moreGenerators 
) -> Generators<T>

Definition at line 4063 of file catch.hpp.

◆ makeGenerators() [4/4]

template<typename T , typename... Gs>
auto Catch::Generators::makeGenerators ( T &&  val,
Gs &&...  moreGenerators 
) -> Generators<T>

Definition at line 4071 of file catch.hpp.

◆ map()

template<typename Func , typename U , typename T = FunctionReturnType<Func, U>>
GeneratorWrapper< T > Catch::Generators::map ( Func &&  function,
GeneratorWrapper< U > &&  generator 
)

Definition at line 4283 of file catch.hpp.

◆ random() [1/2]

template<typename T >
std::enable_if<std::is_integral<T>::value && !std::is_same<T, bool>::value,GeneratorWrapper<T> >::type Catch::Generators::random ( a,
b 
)

Definition at line 4651 of file catch.hpp.

◆ random() [2/2]

template<typename T >
std::enable_if<std::is_floating_point<T>::value,GeneratorWrapper<T> >::type Catch::Generators::random ( a,
b 
)

Definition at line 4660 of file catch.hpp.

◆ range() [1/2]

template<typename T >
GeneratorWrapper<T> Catch::Generators::range ( T const &  start,
T const &  end 
)

◆ range() [2/2]

template<typename T >
GeneratorWrapper<T> Catch::Generators::range ( T const &  start,
T const &  end,
T const &  step 
)

Definition at line 4700 of file catch.hpp.

◆ repeat()

template<typename T >
GeneratorWrapper<T> Catch::Generators::repeat ( size_t  repeats,
GeneratorWrapper< T > &&  generator 
)

Definition at line 4251 of file catch.hpp.

◆ table()

template<typename... Ts>
GeneratorWrapper<std::tuple<Ts...> > Catch::Generators::table ( std::initializer_list< std::tuple< typename std::decay< Ts >::type... >>  tuples)

Definition at line 4054 of file catch.hpp.

◆ take()

template<typename T >
GeneratorWrapper<T> Catch::Generators::take ( size_t  target,
GeneratorWrapper< T > &&  generator 
)

Definition at line 4151 of file catch.hpp.

◆ value()

◆ values()

template<typename T >
GeneratorWrapper<T> Catch::Generators::values ( std::initializer_list< T >  values)