diff options
Diffstat (limited to 'eval/src/tests/instruction/generic_merge/generic_merge_test.cpp')
-rw-r--r-- | eval/src/tests/instruction/generic_merge/generic_merge_test.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/eval/src/tests/instruction/generic_merge/generic_merge_test.cpp b/eval/src/tests/instruction/generic_merge/generic_merge_test.cpp index f2ddd9b74d8..d5f7bc071f6 100644 --- a/eval/src/tests/instruction/generic_merge/generic_merge_test.cpp +++ b/eval/src/tests/instruction/generic_merge/generic_merge_test.cpp @@ -18,11 +18,11 @@ using namespace vespalib::eval::test; using vespalib::make_string_short::fmt; -GenSpec G() { return GenSpec().cells_float(); } +GenSpec G() { return GenSpec(); } GenSpec::seq_t N_16ths = [] (size_t i) noexcept { return (i + 1.0) / 16.0; }; -std::vector<GenSpec> merge_layouts = { +const std::vector<GenSpec> merge_layouts = { G(), G(), G().idx("x", 5), G().idx("x", 5), G().idx("x", 3).idx("y", 5), G().idx("x", 3).idx("y", 5), @@ -48,10 +48,14 @@ TensorSpec perform_generic_merge(const TensorSpec &a, const TensorSpec &b, join_ void test_generic_merge_with(const ValueBuilderFactory &factory) { ASSERT_TRUE((merge_layouts.size() % 2) == 0); for (size_t i = 0; i < merge_layouts.size(); i += 2) { - const auto &l = merge_layouts[i]; - const auto &r = merge_layouts[i+1].seq(N_16ths); - for (TensorSpec lhs : { l.gen(), l.cpy().cells_double().gen() }) { - for (TensorSpec rhs : { r.gen(), r.cpy().cells_double().gen() }) { + const auto l = merge_layouts[i]; + const auto r = merge_layouts[i+1].cpy().seq(N_16ths); + for (TensorSpec lhs : { l.cpy().cells_float().gen(), + l.cpy().cells_double().gen() }) + { + for (TensorSpec rhs : { r.cpy().cells_float().gen(), + r.cpy().cells_double().gen() }) + { SCOPED_TRACE(fmt("\n===\nLHS: %s\nRHS: %s\n===\n", lhs.to_string().c_str(), rhs.to_string().c_str())); for (auto fun: {operation::Add::f, operation::Mul::f, operation::Sub::f, operation::Max::f}) { auto expect = ReferenceOperations::merge(lhs, rhs, fun); |