70 auto prng = prng_xoshiro{config.seed};
71 auto summary = property_summary{0U, 0U,
false, config.seed, {}};
73 using argument_types = type_lists::apply_all_t<
74 type_lists::apply_each_t<
75 type_lists::drop_t<member_function_arguments_t<
decltype(&Callable::operator())>, 1>,
79 while ((summary.successes < config.required_successes) && (summary.discards <= config.max_discards)) {
80 auto& outcome = detail::property_context();
86 std::tuple<
decltype(prng)&>{prng},
87 tuple_detail::tuple_transform(
89 run_property_detail::generate_argument<
decltype(prng)>{prng}
94 if (outcome.has_value()) {
95 using error_code = property_error::error_code;
96 switch (outcome->error) {
97 case error_code::failure: {
98 summary.failed =
true;
99 summary.first_failure = outcome;
102 case error_code::discard: {
112 summary.failed = summary.successes != config.required_successes;
auto run_property(Callable callable, property_config const config) -> property_summary
run a property callable against a battery of trials with generated arguments
Definition run_property.hpp:69
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10