diff options
author | Håvard Pettersen <havardpe@oath.com> | 2021-02-01 15:44:57 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2021-02-01 15:44:57 +0000 |
commit | d3d32170e2a1e1e208e15f4a89de6e8d9e24c32e (patch) | |
tree | bc00b1e54cc5a47086ff034f9a2dc1dff7121806 | |
parent | 68219c9b3ba88c8ebb6338fc0902f6ff70f2971c (diff) |
copy gen spec to avoid sticky changes
10 files changed, 31 insertions, 24 deletions
diff --git a/eval/src/tests/instruction/generic_concat/generic_concat_test.cpp b/eval/src/tests/instruction/generic_concat/generic_concat_test.cpp index 436b8cea834..88bf7f26b11 100644 --- a/eval/src/tests/instruction/generic_concat/generic_concat_test.cpp +++ b/eval/src/tests/instruction/generic_concat/generic_concat_test.cpp @@ -76,10 +76,10 @@ TensorSpec perform_generic_concat(const TensorSpec &a, const TensorSpec &b, void test_generic_concat_with(const ValueBuilderFactory &factory) { ASSERT_TRUE((concat_layouts.size() % 2) == 0); for (size_t i = 0; i < concat_layouts.size(); i += 2) { - auto l = concat_layouts[i]; - auto r = concat_layouts[i+1].seq(N_16ths); - for (TensorSpec lhs : { l.gen(), l.cells_double().gen() }) { - for (TensorSpec rhs : { r.gen(), r.cells_double().gen() }) { + const auto &l = concat_layouts[i]; + const auto &r = concat_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() }) { SCOPED_TRACE(fmt("\n===\nin LHS: %s\nin RHS: %s\n===\n", lhs.to_string().c_str(), rhs.to_string().c_str())); auto actual = perform_generic_concat(lhs, rhs, "y", factory); auto expect = ReferenceOperations::concat(lhs, rhs, "y"); diff --git a/eval/src/tests/instruction/generic_create/generic_create_test.cpp b/eval/src/tests/instruction/generic_create/generic_create_test.cpp index fff4506e29e..2dce4509571 100644 --- a/eval/src/tests/instruction/generic_create/generic_create_test.cpp +++ b/eval/src/tests/instruction/generic_create/generic_create_test.cpp @@ -90,8 +90,8 @@ TensorSpec perform_generic_create(const TensorSpec &a, const ValueBuilderFactory } void test_generic_create_with(const ValueBuilderFactory &factory) { - for (auto layout : create_layouts) { - for (TensorSpec full : { layout.gen(), layout.cells_double().gen() }) { + for (const auto &layout : create_layouts) { + for (TensorSpec full : { layout.gen(), layout.cpy().cells_double().gen() }) { auto actual = perform_generic_create(full, factory); auto expect = reference_create(full).normalize(); EXPECT_EQ(actual, expect); diff --git a/eval/src/tests/instruction/generic_join/generic_join_test.cpp b/eval/src/tests/instruction/generic_join/generic_join_test.cpp index 644ac26291b..e8af8f8ad38 100644 --- a/eval/src/tests/instruction/generic_join/generic_join_test.cpp +++ b/eval/src/tests/instruction/generic_join/generic_join_test.cpp @@ -105,10 +105,10 @@ TEST(GenericJoinTest, dense_join_plan_can_be_executed) { TEST(GenericJoinTest, generic_join_works_for_simple_and_fast_values) { ASSERT_TRUE((join_layouts.size() % 2) == 0); for (size_t i = 0; i < join_layouts.size(); i += 2) { - auto l = join_layouts[i]; - auto r = join_layouts[i+1]; - for (TensorSpec lhs : { l.gen(), l.cells_double().gen() }) { - for (TensorSpec rhs : { r.gen(), r.cells_double().gen() }) { + const auto &l = join_layouts[i]; + const auto &r = join_layouts[i+1]; + for (TensorSpec lhs : { l.gen(), l.cpy().cells_double().gen() }) { + for (TensorSpec rhs : { r.gen(), r.cpy().cells_double().gen() }) { for (auto fun: {operation::Add::f, operation::Sub::f, operation::Mul::f, operation::Div::f}) { SCOPED_TRACE(fmt("\n===\nLHS: %s\nRHS: %s\n===\n", lhs.to_string().c_str(), rhs.to_string().c_str())); auto expect = ReferenceOperations::join(lhs, rhs, fun); diff --git a/eval/src/tests/instruction/generic_map/generic_map_test.cpp b/eval/src/tests/instruction/generic_map/generic_map_test.cpp index 6fe55ffa622..d8203ea135c 100644 --- a/eval/src/tests/instruction/generic_map/generic_map_test.cpp +++ b/eval/src/tests/instruction/generic_map/generic_map_test.cpp @@ -42,8 +42,8 @@ TensorSpec perform_generic_map(const TensorSpec &a, map_fun_t func, const ValueB } void test_generic_map_with(const ValueBuilderFactory &factory) { - for (auto layout : map_layouts) { - for (TensorSpec lhs : { layout.gen(), layout.cells_double().gen() }) { + for (const auto &layout : map_layouts) { + for (TensorSpec lhs : { layout.gen(), layout.cpy().cells_double().gen() }) { for (auto func : {operation::Floor::f, operation::Fabs::f, operation::Square::f, operation::Inv::f}) { SCOPED_TRACE(fmt("\n===\nLHS: %s\n===\n", lhs.to_string().c_str())); auto expect = ReferenceOperations::map(lhs, func); 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 c22ae68d23c..2554e018cf0 100644 --- a/eval/src/tests/instruction/generic_merge/generic_merge_test.cpp +++ b/eval/src/tests/instruction/generic_merge/generic_merge_test.cpp @@ -48,10 +48,10 @@ 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) { - auto l = merge_layouts[i]; - auto r = merge_layouts[i+1].seq(N_16ths); - for (TensorSpec lhs : { l.gen(), l.cells_double().gen() }) { - for (TensorSpec rhs : { r.gen(), r.cells_double().gen() }) { + 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() }) { 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); diff --git a/eval/src/tests/instruction/generic_peek/generic_peek_test.cpp b/eval/src/tests/instruction/generic_peek/generic_peek_test.cpp index bc737afcbe9..092a91711ba 100644 --- a/eval/src/tests/instruction/generic_peek/generic_peek_test.cpp +++ b/eval/src/tests/instruction/generic_peek/generic_peek_test.cpp @@ -193,8 +193,8 @@ void fill_dims_and_check(const TensorSpec &input, } void test_generic_peek_with(const ValueBuilderFactory &factory) { - for (auto layout : peek_layouts) { - for (TensorSpec input : { layout.gen(), layout.cells_double().gen() }) { + for (const auto &layout : peek_layouts) { + for (TensorSpec input : { layout.gen(), layout.cpy().cells_double().gen() }) { ValueType input_type = ValueType::from_spec(input.type()); const auto &dims = input_type.dimensions(); PeekSpec spec; diff --git a/eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp b/eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp index ee811db2f1f..1e9ce85d7e1 100644 --- a/eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp +++ b/eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp @@ -69,8 +69,8 @@ TEST(GenericReduceTest, sparse_reduce_plan_can_be_created) { } void test_generic_reduce_with(const ValueBuilderFactory &factory) { - for (auto layout: layouts) { - for (TensorSpec input : { layout.gen(), layout.cells_double().gen() }) { + for (const auto &layout: layouts) { + for (TensorSpec input : { layout.gen(), layout.cpy().cells_double().gen() }) { SCOPED_TRACE(fmt("tensor type: %s, num_cells: %zu", input.type().c_str(), input.cells().size())); for (Aggr aggr: {Aggr::SUM, Aggr::AVG, Aggr::MIN, Aggr::MAX}) { SCOPED_TRACE(fmt("aggregator: %s", AggrNames::name_of(aggr)->c_str())); diff --git a/eval/src/tests/instruction/generic_rename/generic_rename_test.cpp b/eval/src/tests/instruction/generic_rename/generic_rename_test.cpp index 6da77a89412..430e417e288 100644 --- a/eval/src/tests/instruction/generic_rename/generic_rename_test.cpp +++ b/eval/src/tests/instruction/generic_rename/generic_rename_test.cpp @@ -109,8 +109,8 @@ TensorSpec perform_generic_rename(const TensorSpec &a, } void test_generic_rename_with(const ValueBuilderFactory &factory) { - for (auto layout : rename_layouts) { - for (TensorSpec lhs : { layout.gen(), layout.cells_double().gen() }) { + for (const auto &layout : rename_layouts) { + for (TensorSpec lhs : { layout.gen(), layout.cpy().cells_double().gen() }) { ValueType lhs_type = ValueType::from_spec(lhs.type()); for (const auto & from_to : rename_from_to) { ValueType renamed_type = lhs_type.rename(from_to.from, from_to.to); diff --git a/eval/src/vespa/eval/eval/test/gen_spec.cpp b/eval/src/vespa/eval/eval/test/gen_spec.cpp index 9c40c65620e..c20e9005318 100644 --- a/eval/src/vespa/eval/eval/test/gen_spec.cpp +++ b/eval/src/vespa/eval/eval/test/gen_spec.cpp @@ -20,6 +20,11 @@ DimSpec::make_dict(size_t size, size_t stride, const vespalib::string &prefix) return dict; } +GenSpec::GenSpec(GenSpec &&other) = default; +GenSpec::GenSpec(const GenSpec &other) = default; +GenSpec &GenSpec::operator=(GenSpec &&other) = default; +GenSpec &GenSpec::operator=(const GenSpec &other) = default; + GenSpec::~GenSpec() = default; ValueType diff --git a/eval/src/vespa/eval/eval/test/gen_spec.h b/eval/src/vespa/eval/eval/test/gen_spec.h index 5a0297f5bbd..471e0f58642 100644 --- a/eval/src/vespa/eval/eval/test/gen_spec.h +++ b/eval/src/vespa/eval/eval/test/gen_spec.h @@ -66,11 +66,15 @@ private: static double default_seq(size_t idx) { return (idx + 1.0); } public: GenSpec() : _dims(), _cells(CellType::DOUBLE), _seq(default_seq) {} + GenSpec(GenSpec &&other); GenSpec(const GenSpec &other); + GenSpec &operator=(GenSpec &&other); + GenSpec &operator=(const GenSpec &other); ~GenSpec(); std::vector<DimSpec> dims() const { return _dims; } CellType cells() const { return _cells; } seq_t seq() const { return _seq; } + GenSpec cpy() const { return *this; } GenSpec &idx(const vespalib::string &name, size_t size) { _dims.emplace_back(name, size); return *this; @@ -102,6 +106,4 @@ public: TensorSpec gen() const; }; -GenSpec::GenSpec(const GenSpec &other) = default; - } // namespace |