aboutsummaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahoo-inc.com>2017-03-13 13:53:52 +0000
committerTor Brede Vekterli <vekterli@yahoo-inc.com>2017-03-13 14:20:53 +0000
commit70b9e95241c0a9686e547c0588d8b655269f8722 (patch)
tree5e52db79518b779183c28a4e1f69691225bdb98b /eval
parent6c6a2f7b840f65209563ec1553cc71cfa02683a6 (diff)
Move non-inlineable eval test functions into cpp file
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/eval/test/eval_spec.cpp47
-rw-r--r--eval/src/vespa/eval/eval/test/eval_spec.h41
2 files changed, 51 insertions, 37 deletions
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<double>::quiet_NaN();
constexpr double my_inf = std::numeric_limits<double>::infinity();
-
+
+EvalSpec::Expression &EvalSpec::Expression::add_case(std::initializer_list<double> 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<double> 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<double> a_values,
+ std::initializer_list<double> 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<double> 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<double> a_values = a_spec.expand(5);
+ std::vector<double> 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<vespalib::string> &param_names,
const std::vector<double> &param_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<vespalib::string> param_names_in, vespalib::string expression_in)
: param_names(param_names_in), expression(expression_in) {}
- Expression &add_case(std::initializer_list<double> 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<double> a_values, fun_1_ref fun) {
- for (double a: a_values) {
- add_case({a}, fun(a));
- }
- return *this;
- }
- Expression &add_cases(std::initializer_list<double> a_values, std::initializer_list<double> 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<double> param_values, double expected_result);
+ Expression &add_cases(std::initializer_list<double> a_values, fun_1_ref fun);
+ Expression &add_cases(std::initializer_list<double> a_values, std::initializer_list<double> b_values, fun_2_ref fun);
};
std::vector<Expression> 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<double> 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<double> a_values = a_spec.expand(5);
- std::vector<double> 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 {