From 70b9e95241c0a9686e547c0588d8b655269f8722 Mon Sep 17 00:00:00 2001 From: Tor Brede Vekterli Date: Mon, 13 Mar 2017 13:53:52 +0000 Subject: Move non-inlineable eval test functions into cpp file --- eval/src/vespa/eval/eval/test/eval_spec.cpp | 47 ++++++++++++++++++++++++++++- eval/src/vespa/eval/eval/test/eval_spec.h | 41 +++---------------------- 2 files changed, 51 insertions(+), 37 deletions(-) (limited to 'eval') diff --git a/eval/src/vespa/eval/eval/test/eval_spec.cpp b/eval/src/vespa/eval/eval/test/eval_spec.cpp index a96d2d9d305..594dfdd2210 100644 --- a/eval/src/vespa/eval/eval/test/eval_spec.cpp +++ b/eval/src/vespa/eval/eval/test/eval_spec.cpp @@ -12,7 +12,52 @@ namespace test { constexpr double my_nan = std::numeric_limits::quiet_NaN(); constexpr double my_inf = std::numeric_limits::infinity(); - + +EvalSpec::Expression &EvalSpec::Expression::add_case(std::initializer_list param_values, + double expected_result) { + assert(param_values.size() == param_names.size()); + cases.emplace_back(param_values, expected_result); + return *this; +} + +EvalSpec::Expression &EvalSpec::Expression::add_cases(std::initializer_list a_values, fun_1_ref fun) { + for (double a: a_values) { + add_case({a}, fun(a)); + } + return *this; +} + +EvalSpec::Expression &EvalSpec::Expression::add_cases(std::initializer_list a_values, + std::initializer_list b_values, + fun_2_ref fun) { + for (double a: a_values) { + for (double b: b_values) { + add_case({a, b}, fun(a, b)); + } + } + return *this; +} + +void EvalSpec::add_rule(const ParamSpec &a_spec, const vespalib::string &expression, fun_1_ref ref) { + Expression &expr = add_expression({a_spec.name}, expression); + std::vector a_values = a_spec.expand(7); + for (double a: a_values) { + expr.add_case({a}, ref(a)); + } +} + +void EvalSpec::add_rule(const ParamSpec &a_spec, const ParamSpec &b_spec, + const vespalib::string &expression, fun_2_ref ref) { + Expression &expr = add_expression({a_spec.name, b_spec.name}, expression); + std::vector a_values = a_spec.expand(5); + std::vector b_values = b_spec.expand(5); + for (double a: a_values) { + for (double b: b_values) { + expr.add_case({a, b}, ref(a, b)); + } + } +} + vespalib::string EvalSpec::EvalTest::as_string(const std::vector ¶m_names, const std::vector ¶m_values, diff --git a/eval/src/vespa/eval/eval/test/eval_spec.h b/eval/src/vespa/eval/eval/test/eval_spec.h index 582c3b1c1e5..4b9a244e598 100644 --- a/eval/src/vespa/eval/eval/test/eval_spec.h +++ b/eval/src/vespa/eval/eval/test/eval_spec.h @@ -34,25 +34,9 @@ private: Expression(std::initializer_list param_names_in, vespalib::string expression_in) : param_names(param_names_in), expression(expression_in) {} - Expression &add_case(std::initializer_list param_values, double expected_result) { - assert(param_values.size() == param_names.size()); - cases.emplace_back(param_values, expected_result); - return *this; - } - Expression &add_cases(std::initializer_list a_values, fun_1_ref fun) { - for (double a: a_values) { - add_case({a}, fun(a)); - } - return *this; - } - Expression &add_cases(std::initializer_list a_values, std::initializer_list b_values, fun_2_ref fun) { - for (double a: a_values) { - for (double b: b_values) { - add_case({a, b}, fun(a, b)); - } - } - return *this; - } + Expression &add_case(std::initializer_list param_values, double expected_result); + Expression &add_cases(std::initializer_list a_values, fun_1_ref fun); + Expression &add_cases(std::initializer_list a_values, std::initializer_list b_values, fun_2_ref fun); }; std::vector expressions; @@ -86,24 +70,9 @@ private: } }; - void add_rule(const ParamSpec &a_spec, const vespalib::string &expression, fun_1_ref ref) { - Expression &expr = add_expression({a_spec.name}, expression); - std::vector a_values = a_spec.expand(7); - for (double a: a_values) { - expr.add_case({a}, ref(a)); - } - } + void add_rule(const ParamSpec &a_spec, const vespalib::string &expression, fun_1_ref ref); - void add_rule(const ParamSpec &a_spec, const ParamSpec &b_spec, const vespalib::string &expression, fun_2_ref ref) { - Expression &expr = add_expression({a_spec.name, b_spec.name}, expression); - std::vector a_values = a_spec.expand(5); - std::vector b_values = b_spec.expand(5); - for (double a: a_values) { - for (double b: b_values) { - expr.add_case({a, b}, ref(a, b)); - } - } - } + void add_rule(const ParamSpec &a_spec, const ParamSpec &b_spec, const vespalib::string &expression, fun_2_ref ref); public: struct EvalTest { -- cgit v1.2.3