Concept defining the requirements for the Base template parameter of TestClassWithPredicate.
More...
#include <test_class_predicate.hpp>
template<typename T>
typename T::Builder;
typename T::InvalidWitness;
typename T::InvalidWitness::Target;
typename T::AcirConstraint;
{ T::InvalidWitness::Target::None };
requires requires(typename T::AcirConstraint& constraint,
const typename T::InvalidWitness::Target& invalid_witness_target) {
{ T::invalidate_witness(constraint, witness_values, invalid_witness_target) } ->
std::same_as<void>;
};
}
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Concept defining the requirements for the Base template parameter of TestClassWithPredicate.
Base must provide:
- A struct InvalidWitness, which specifies how to invalidate witness values to test predicate behavior. InvalidWitness must specify an enum class Target, which details the different invalidation targets (e.g., inputs, outputs, specific validation cases), and two functions get_all() and get_labels() to iterate over all possible invalidation targets.
- Type aliases: Builder and AcirConstraint, specifying the Builder and constraint we are working with.
- Static methods: invalidate_witness (to invalidate witness values based on the target), generate_constraints (to generate valid constraints with predicate set to witness true).
Definition at line 53 of file test_class_predicate.hpp.