Generation of lists for integral types.
More...
Generation of lists for integral types.
Its values have the properties:
Examples
Random 20 distinct values from 1 to 100.
std::cout <<
list & all_different()
Restricts generator s.t. all values are different.
value gen() const
Generates a random value from the set of valid lists.
Random Palindrome of length 7.
for (int i = 0; i <= 2; ++i) s.equal(i, 6-i);
std::cout << s.gen() << std::endl;
Random 3 runs of 4 equal numbers. Values between runs are different.
std::cout <<
list & equal_range(int left, int right)
Restricts generator s.t. all values at index range are equal.
list & different(std::set< int > indices)
Restricts generator s.t. all values in index set are different.
Random DNA sequence of length 8 with no equal adjacent values.
for (
int i = 1; i < 8; i++) s2.
different(i-1, i);
std::cout << s2.
gen() << std::endl;
Random binary sequence of length 10 with 5 1's that start with 1.
std::cout <<
auto vec = inst.to_std();
return std::accumulate(vec.begin(), vec.end(), 0) == 5;
}, 100) << std::endl;
auto gen_until(Pred predicate, int max_tries, Args &&...args) const
Generates a random value from the valid set until a condition is met.
list & fix(int idx, T val)
Restricts generator s.t. value at index is fixed.