summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2021-02-01 15:44:57 +0000
committerHåvard Pettersen <havardpe@oath.com>2021-02-01 15:44:57 +0000
commitd3d32170e2a1e1e208e15f4a89de6e8d9e24c32e (patch)
treebc00b1e54cc5a47086ff034f9a2dc1dff7121806
parent68219c9b3ba88c8ebb6338fc0902f6ff70f2971c (diff)
copy gen spec to avoid sticky changes
-rw-r--r--eval/src/tests/instruction/generic_concat/generic_concat_test.cpp8
-rw-r--r--eval/src/tests/instruction/generic_create/generic_create_test.cpp4
-rw-r--r--eval/src/tests/instruction/generic_join/generic_join_test.cpp8
-rw-r--r--eval/src/tests/instruction/generic_map/generic_map_test.cpp4
-rw-r--r--eval/src/tests/instruction/generic_merge/generic_merge_test.cpp8
-rw-r--r--eval/src/tests/instruction/generic_peek/generic_peek_test.cpp4
-rw-r--r--eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp4
-rw-r--r--eval/src/tests/instruction/generic_rename/generic_rename_test.cpp4
-rw-r--r--eval/src/vespa/eval/eval/test/gen_spec.cpp5
-rw-r--r--eval/src/vespa/eval/eval/test/gen_spec.h6
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