diff options
author | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-10-18 12:30:20 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-10-18 12:58:26 +0000 |
commit | 66d15a9f4a5d796eccf6272bbb3806a8420be059 (patch) | |
tree | f234bfe5a2497935d8d4b96d5957305d697249a1 /searchcore | |
parent | b31de6acc6b24a6f4c6596385ee20df552701ce3 (diff) |
Avoid dependency on weighted set ordering in unit tests
Weighted sets are not guaranteed to be ordered, but thus far they
have been in practice due to implementation details of the update logic.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/tests/proton/common/attribute_updater/attribute_updater_test.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/searchcore/src/tests/proton/common/attribute_updater/attribute_updater_test.cpp b/searchcore/src/tests/proton/common/attribute_updater/attribute_updater_test.cpp index 78cd9ce44b9..9b930e271bd 100644 --- a/searchcore/src/tests/proton/common/attribute_updater/attribute_updater_test.cpp +++ b/searchcore/src/tests/proton/common/attribute_updater/attribute_updater_test.cpp @@ -29,6 +29,7 @@ #include <vespa/searchlib/attribute/reference_attribute.h> #include <vespa/searchlib/tensor/dense_tensor_attribute.h> #include <vespa/searchlib/tensor/generic_tensor_attribute.h> +#include <vespa/searchlib/test/weighted_type_test_utils.h> #include <vespa/vespalib/stllike/hash_map.hpp> #include <vespa/vespalib/testkit/testapp.h> @@ -158,9 +159,14 @@ check(const AttributePtr &vec, uint32_t docId, const std::vector<T> &values) std::vector<T> buf(sz); uint32_t asz = vec->get(docId, &buf[0], sz); if (!EXPECT_EQUAL(sz, asz)) return false; + std::vector<T> wanted(values.begin(), values.end()); + if (vec->hasWeightedSetType()) { + std::sort(wanted.begin(), wanted.end(), value_then_weight_order()); + std::sort(buf.begin(), buf.end(), value_then_weight_order()); + } for (uint32_t i = 0; i < values.size(); ++i) { - if (!EXPECT_EQUAL(buf[i].getValue(), values[i].getValue())) return false; - if (!EXPECT_EQUAL(buf[i].getWeight(), values[i].getWeight())) return false; + if (!EXPECT_EQUAL(buf[i].getValue(), wanted[i].getValue())) return false; + if (!EXPECT_EQUAL(buf[i].getWeight(), wanted[i].getWeight())) return false; } return true; } |