Hegel 0.3.5
Property-based testing for C++
Loading...
Searching...
No Matches
hegel::generators::DerivedGenerator< T > Class Template Reference

A Generator produced by default_generator<T>(). More...

#include <default.h>

Inheritance diagram for hegel::generators::DerivedGenerator< T >:
hegel::generators::Generator< T > hegel::generators::IGenerator< T >

Public Member Functions

template<typename... Fields>
DerivedGenerator< T > override (Fields... fields) const
 Override default per-field generators.
Public Member Functions inherited from hegel::generators::Generator< T >
template<typename F>
Generator< std::invoke_result_t< F, T > > map (F f) const
 *‍/
template<typename F>
std::invoke_result_t< F, T > flat_map (F &&f) const
 Chain generators for dependent generation.
Generator< T > filter (std::function< bool(const T &)> pred) const
 Filter generated values by a predicate.

Detailed Description

template<typename T>
class hegel::generators::DerivedGenerator< T >

A Generator produced by default_generator<T>().

Behaves exactly like a Generator<T> (it publicly derives from one), but additionally exposes an override() method for supplying per-field generator overrides on struct types.

.override(field<&Rectangle::width>(integers<int>({.min_value = 1})));
Generator< T > integers(IntegersParams< T > params={})
Generate random integers. For a given integral type T, produces values in the range [std::numeric_lim...
Definition numeric.h:146
Field< MemberPtr, Gen > field(Gen gen)
Create a field specification for builds_agg().
Definition builds.h:73
DerivedGenerator< T > default_generator()
Create a default generator for type T.
Definition default.h:283
Template Parameters
TThe type produced by the generator

Member Function Documentation

◆ override()

template<typename T>
template<typename... Fields>
DerivedGenerator< T > hegel::generators::DerivedGenerator< T >::override ( Fields... fields) const
inline

Override default per-field generators.

Each field specification (from field<&T::member>(gen)) replaces the default generator for that member. Other fields keep the defaults from default_generator<T>().

integers<int>({.min_value = 0, .max_value = 120})));
Template Parameters
FieldsField specification types (from field<>())
Parameters
fieldsField specifications for overridden members
Returns
A DerivedGenerator<T> with the overrides applied

The documentation for this class was generated from the following file: