26 constexpr
double eps = std::numeric_limits<double>::epsilon();
27 const double avg_abs = (std::abs(a) + std::abs(b)) / 2.0;
29 if (std::abs(a - b) <= eps * avg_abs)
31 return std::abs(a - b) / avg_abs;
43 m_parameter_references.push_back({param, expected_value, tolerance});
51 for (
const auto& ref : m_parameter_references)
52 result.
add(ref.parameter);
61 std::vector<double> result;
63 result.push_back(ref.expected_value);
74 if (m_parameter_references.size() != values.size())
75 throw std::runtime_error(
"FunctionTestPlan::valuesAsExpected() -> Error. Sizes differ.");
77 for (
size_t i = 0; i < values.size(); ++i) {
85 << (ok ?
"OK" :
"FAILED") << std::endl;
Defines class MinimizerTestPlan.
Defines class Parameters.
std::vector< double > expectedValues() const
Return vector of expected parameter values.
bool valuesAsExpected(const std::vector< double > &values) const
Returns true if given values coincide with expected fit parameter values.
mumufit::Parameters parameters() const
Returns fit parameters which will be used as initial one for the minimization.
virtual ~MinimizerTestPlan()
void addParameter(const mumufit::Parameter ¶m, double expected_value, double tolerance=0.01)
A fittable parameter with value, error, step, and limits.
A collection of fit parameters.
void add(const Parameter &par)
double relativeDifference(double a, double b)
Returns the safe relative difference, which is 2(|a-b|)/(|a|+|b|) except in special cases.
The multi-library, multi-algorithm fit wrapper library.
Defines initial settings of single fit parameter and the final value which has to be found in the cou...
const mumufit::Parameter parameter
initial parameter settings
const double tolerance
tolerance on found value wrt expected value
const double expected_value
expected value to find in the fit