summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-03-18 17:09:36 +0000
committerArne Juul <arnej@verizonmedia.com>2021-03-19 11:26:10 +0000
commitef422d3dcdfc9cac070446e9c855e3eb242fba43 (patch)
treedf6baa77a7c53bc1041ba4e07870b164e0a472a2 /eval
parente238515848ef8151cb31d0339fa377272a6376e6 (diff)
allow empty mapped dim
Diffstat (limited to 'eval')
-rw-r--r--eval/src/tests/eval/gen_spec/gen_spec_test.cpp10
-rw-r--r--eval/src/vespa/eval/eval/test/gen_spec.cpp1
-rw-r--r--eval/src/vespa/eval/eval/test/gen_spec.h1
3 files changed, 11 insertions, 1 deletions
diff --git a/eval/src/tests/eval/gen_spec/gen_spec_test.cpp b/eval/src/tests/eval/gen_spec/gen_spec_test.cpp
index d89bf5b8e79..b371e08960f 100644
--- a/eval/src/tests/eval/gen_spec/gen_spec_test.cpp
+++ b/eval/src/tests/eval/gen_spec/gen_spec_test.cpp
@@ -245,6 +245,16 @@ TEST(GenSpecFromDescTest, dim_spec_and_gen_spec_can_be_created_from_desc) {
EXPECT_EQ(gen_desc, expect);
}
+TEST(GenSpecFromDescTest, empty_mapped_dim_possible) {
+ // 'a0_1'
+ auto expect = GenSpec().map("a", 0).gen();
+ auto dim_desc = GenSpec().desc("a0_1").gen();
+ auto gen_desc = GenSpec::from_desc("a0_1").gen();
+ EXPECT_EQ(dim_desc, expect);
+ EXPECT_EQ(gen_desc, expect);
+}
+
+
TEST(GenSpecFromDescTest, multi_character_sizes_work) {
// 'a13b1'
auto expect = GenSpec().idx("a", 13).idx("b", 1).gen();
diff --git a/eval/src/vespa/eval/eval/test/gen_spec.cpp b/eval/src/vespa/eval/eval/test/gen_spec.cpp
index 913c23200ff..96c2c16eaa0 100644
--- a/eval/src/vespa/eval/eval/test/gen_spec.cpp
+++ b/eval/src/vespa/eval/eval/test/gen_spec.cpp
@@ -73,7 +73,6 @@ DimSpec::from_desc(const vespalib::string &desc)
assert(idx < desc.size());
assert(is_num(desc[idx]));
size_t num = as_num(desc[idx++]);
- assert(num != 0); // catch leading zeroes/zero size
while ((idx < desc.size()) && is_num(desc[idx])) {
num = (num * 10) + as_num(desc[idx++]);
}
diff --git a/eval/src/vespa/eval/eval/test/gen_spec.h b/eval/src/vespa/eval/eval/test/gen_spec.h
index def24e6711f..f0eca6074dc 100644
--- a/eval/src/vespa/eval/eval/test/gen_spec.h
+++ b/eval/src/vespa/eval/eval/test/gen_spec.h
@@ -121,6 +121,7 @@ public:
const seq_t &seq() const { return _seq; }
GenSpec cpy() const { return *this; }
GenSpec &idx(const vespalib::string &name, size_t size) {
+ assert(size != 0);
_dims.emplace_back(name, size);
return *this;
}