From 022c7b49c92e7910456dd484aee1ccf9ae76f18d Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Fri, 22 Apr 2022 12:34:22 +0200 Subject: Remove getAll() member functions from attribute vectors. --- searchlib/src/tests/sortspec/multilevelsort.cpp | 34 ++++++++++++++++--------- 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'searchlib/src/tests') diff --git a/searchlib/src/tests/sortspec/multilevelsort.cpp b/searchlib/src/tests/sortspec/multilevelsort.cpp index 0154e95c155..9c1caaff662 100644 --- a/searchlib/src/tests/sortspec/multilevelsort.cpp +++ b/searchlib/src/tests/sortspec/multilevelsort.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include LOG_SETUP("multilevelsort_test"); @@ -61,8 +62,8 @@ private: template void fill(FloatingPointAttribute *attr, uint32_t size, uint32_t unique = 0); void fill(StringAttribute *attr, uint32_t size, const std::vector &values); - template - int compareTemplate(T *vector, uint32_t a, uint32_t b); + template + int compareTemplate(AttributeVector *vector, uint32_t a, uint32_t b); int compare(AttributeVector *vector, AttrType type, uint32_t a, uint32_t b); void sortAndCheck(const std::vector &spec, uint32_t num, uint32_t unique, const std::vector &strValues); @@ -138,14 +139,23 @@ MultilevelSortTest::fill(StringAttribute *attr, uint32_t size, const std::vector } } -template +template +V get_helper(AttributeVector *vector, uint32_t doc_id) { + if constexpr (std::is_floating_point_v) { + return vector->getFloat(doc_id); + } else { + return vector->getInt(doc_id); + } +} + +template int -MultilevelSortTest::compareTemplate(T *vector, uint32_t a, uint32_t b) +MultilevelSortTest::compareTemplate(AttributeVector *vector, uint32_t a, uint32_t b) { V va; V vb; - vector->getAll(a, &va, 1); - vector->getAll(b, &vb, 1); + va = get_helper(vector, a); + vb = get_helper(vector, b); if (va == vb) { return 0; } else if (va < vb) { @@ -158,17 +168,17 @@ int MultilevelSortTest::compare(AttributeVector *vector, AttrType type, uint32_t a, uint32_t b) { if (type == INT8) { - return compareTemplate(static_cast(vector), a, b); + return compareTemplate(vector, a, b); } else if (type == INT16) { - return compareTemplate(static_cast(vector), a, b); + return compareTemplate(vector, a, b); } else if (type == INT32) { - return compareTemplate(static_cast(vector), a, b); + return compareTemplate(vector, a, b); } else if (type == INT64) { - return compareTemplate(static_cast(vector), a, b); + return compareTemplate(vector, a, b); } else if (type == FLOAT) { - return compareTemplate(static_cast(vector), a, b); + return compareTemplate(vector, a, b); } else if (type == DOUBLE) { - return compareTemplate(static_cast(vector), a, b); + return compareTemplate(vector, a, b); } else if (type == STRING) { StringAttribute *vString = static_cast(vector); const char *va = vString->get(a); -- cgit v1.2.3