summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2021-04-29 10:45:55 +0000
committerHåvard Pettersen <havardpe@oath.com>2021-04-29 10:45:55 +0000
commit9ac328cf821c8772bd0b5663435ab596f1aab3a3 (patch)
treea37722cbf999050f8ac48f5188e6c4e92536139b /eval
parent7b09111c932000842043a9d24cda8ab8df45ed4a (diff)
add more conformance testing
Diffstat (limited to 'eval')
-rw-r--r--eval/src/apps/tensor_conformance/generate.cpp30
1 files changed, 28 insertions, 2 deletions
diff --git a/eval/src/apps/tensor_conformance/generate.cpp b/eval/src/apps/tensor_conformance/generate.cpp
index 4776b9f220b..9ae33c1234f 100644
--- a/eval/src/apps/tensor_conformance/generate.cpp
+++ b/eval/src/apps/tensor_conformance/generate.cpp
@@ -432,9 +432,13 @@ void generate_expanding_reduce(TestBuilder &dst) {
//-----------------------------------------------------------------------------
void generate_converting_lambda(TestBuilder &dst) {
- auto spec = GenSpec::from_desc("x3y5_2");
+ auto dense = GenSpec::from_desc("x3");
+ auto sparse = GenSpec::from_desc("y5_2");
+ auto mixed = GenSpec::from_desc("x3y5_2");
// change cell type and dimension types
- dst.add("tensor<bfloat16>(x[5],y[10])(a{x:(x),y:(y)})", {{"a", spec}});
+ dst.add("tensor<bfloat16>(x[5])(a{x:(x)})", {{"a", dense}});
+ dst.add("tensor<bfloat16>(y[10])(a{y:(y)})", {{"a", sparse}});
+ dst.add("tensor<bfloat16>(x[5],y[10])(a{x:(x),y:(y)})", {{"a", mixed}});
}
//-----------------------------------------------------------------------------
@@ -477,6 +481,27 @@ void generate_erf_value_test(TestBuilder &dst) {
//-----------------------------------------------------------------------------
+void generate_nan_existence(TestBuilder &dst) {
+ auto seq1 = Seq({1.0, 1.0, my_nan, my_nan});
+ auto seq2 = Seq({2.0, 2.0, my_nan, my_nan});
+ auto sparse1 = GenSpec().from_desc("x8_1").seq(seq1);
+ auto sparse2 = GenSpec().from_desc("x8_2").seq(seq2);
+ auto mixed1 = GenSpec().from_desc("x4_1y4").seq(seq1);
+ auto mixed2 = GenSpec().from_desc("x4_2y4").seq(seq2);
+ // try to provoke differences between nan and non-existence
+ const vespalib::string inner_expr = "f(x,y)(if(isNan(x),11,x)+if(isNan(y),22,y))";
+ vespalib::string merge_expr = fmt("merge(a,b,%s)", inner_expr.c_str());
+ vespalib::string join_expr = fmt("join(a,b,%s)", inner_expr.c_str());
+ dst.add(merge_expr, {{"a", sparse1}, {"b", sparse2}});
+ dst.add(merge_expr, {{"a", mixed1}, {"b", mixed2}});
+ dst.add(join_expr, {{"a", sparse1}, {"b", sparse2}});
+ dst.add(join_expr, {{"a", mixed1}, {"b", mixed2}});
+ dst.add(join_expr, {{"a", sparse1}, {"b", mixed2}});
+ dst.add(join_expr, {{"a", mixed1}, {"b", sparse2}});
+}
+
+//-----------------------------------------------------------------------------
+
} // namespace <unnamed>
//-----------------------------------------------------------------------------
@@ -505,4 +530,5 @@ Generator::generate(TestBuilder &dst)
generate_strict_verbatim_peek(dst);
generate_nested_tensor_lambda(dst);
generate_erf_value_test(dst);
+ generate_nan_existence(dst);
}