From 1aa96e408b54c44ecbe605b455c17422f9632612 Mon Sep 17 00:00:00 2001 From: HÃ¥vard Pettersen Date: Wed, 26 Jan 2022 14:37:07 +0000 Subject: handle nan cells when converting tensor spec to expression --- eval/src/tests/eval/tensor_spec/tensor_spec_test.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'eval/src/tests') diff --git a/eval/src/tests/eval/tensor_spec/tensor_spec_test.cpp b/eval/src/tests/eval/tensor_spec/tensor_spec_test.cpp index 4c5b847abc1..b51faa35c4f 100644 --- a/eval/src/tests/eval/tensor_spec/tensor_spec_test.cpp +++ b/eval/src/tests/eval/tensor_spec/tensor_spec_test.cpp @@ -7,6 +7,8 @@ using vespalib::Slime; using vespalib::eval::TensorSpec; +auto my_nan = std::numeric_limits::quiet_NaN(); + TEST("require that a tensor spec can be converted to and from slime") { TensorSpec spec("tensor(x[2],y{})"); spec.add({{"x", 0}, {"y", "xxx"}}, 1.0) @@ -30,6 +32,17 @@ TEST("require that a tensor spec can be converted to and from an expression") { EXPECT_EQUAL(TensorSpec::from_expr(expr), spec); } +TEST("require that nan cells get converted to valid expressions") { + TensorSpec spec("tensor(x[2],y{})"); + spec.add({{"x", 0}, {"y", "xxx"}}, my_nan) + .add({{"x", 0}, {"y", "yyy"}}, my_nan) + .add({{"x", 1}, {"y", "xxx"}}, 3.0) + .add({{"x", 1}, {"y", "yyy"}}, 4.0); + vespalib::string expr = spec.to_expr(); + fprintf(stderr, "expr: \n%s\n", expr.c_str()); + EXPECT_EQUAL(TensorSpec::from_expr(expr), spec); +} + TEST("require that tensor specs can be diffed") { TensorSpec expect("tensor(x[2],y{})"); expect.add({{"x", 0}, {"y", "xxx"}}, 1.5) -- cgit v1.2.3