Ultra 0.9.4
Loading...
Searching...
No Matches
validation_strategy.h
Go to the documentation of this file.
1
12
14
15#include <concepts>
16#include <memory>
17
18#if !defined(ULTRA_VALIDATION_STRATEGY_H)
19#define ULTRA_VALIDATION_STRATEGY_H
20
21namespace ultra
22{
23
29{
30public:
31 virtual ~validation_strategy() = default;
32
37 [[nodiscard]] virtual evaluation_context training_setup(unsigned /*run*/) = 0;
38
46 [[nodiscard]] virtual evaluation_context shake(unsigned /*generation*/) = 0;
47
55 virtual bool validation_setup(unsigned /*run*/) = 0;
56
57 [[nodiscard]] virtual std::unique_ptr<validation_strategy> clone() const = 0;
58};
59
69{
70public:
71 [[nodiscard]] evaluation_context training_setup(unsigned) noexcept override
72 { return evaluation_context::unchanged; }
73 [[nodiscard]] evaluation_context shake(unsigned) noexcept override
74 { return evaluation_context::unchanged; }
75 [[nodiscard]] bool validation_setup(unsigned) noexcept override
76 { return false; }
77
78 [[nodiscard]] std::unique_ptr<validation_strategy> clone() const override
79 {
80 return std::make_unique<as_is_validation>(*this);
81 }
82};
83
84template<class V> concept ValidationStrategy =
85 std::derived_from<V, validation_strategy>;
86
87} // namespace ultra
88
89#endif // include guard
Definition validation_strategy.h:69
evaluation_context shake(unsigned) noexcept override
Definition validation_strategy.h:73
bool validation_setup(unsigned) noexcept override
Definition validation_strategy.h:75
evaluation_context training_setup(unsigned) noexcept override
Definition validation_strategy.h:71
Definition validation_strategy.h:29
virtual evaluation_context shake(unsigned)=0
virtual evaluation_context training_setup(unsigned)=0
virtual bool validation_setup(unsigned)=0
Definition validation_strategy.h:84
evaluation_context
Definition evaluation_context.h:28