summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/attribute
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-11-04 11:53:31 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-11-04 14:47:36 +0000
commit84c7d221a5dc11cc69d04bb298f3738b06f1190b (patch)
treea2e2733a617af7e471be8302ca7cf81473cb6a97 /searchlib/src/tests/attribute
parent4cb30d8957593a29d62f787e81d0ea6734a21974 (diff)
Add and test correct implementation for undefined const char values
Diffstat (limited to 'searchlib/src/tests/attribute')
-rw-r--r--searchlib/src/tests/attribute/attribute_header/attribute_header_test.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/searchlib/src/tests/attribute/attribute_header/attribute_header_test.cpp b/searchlib/src/tests/attribute/attribute_header/attribute_header_test.cpp
index 0ee82e2128a..bfd124ae75c 100644
--- a/searchlib/src/tests/attribute/attribute_header/attribute_header_test.cpp
+++ b/searchlib/src/tests/attribute/attribute_header/attribute_header_test.cpp
@@ -2,6 +2,7 @@
#include <vespa/eval/eval/value_type.h>
#include <vespa/searchcommon/attribute/config.h>
+#include <vespa/searchcommon/common/undefinedvalues.h>
#include <vespa/searchlib/attribute/attribute_header.h>
#include <vespa/vespalib/data/fileheader.h>
#include <vespa/vespalib/gtest/gtest.h>
@@ -78,5 +79,25 @@ TEST(AttributeHeaderTest, can_be_added_to_and_extracted_from_generic_header)
verify_roundtrip_serialization(HnswIPO());
}
+TEST(UndefinedValues, isUndefined) {
+ EXPECT_TRUE(isUndefined(""));
+ EXPECT_TRUE(isUndefined(nullptr));
+ EXPECT_FALSE(isUndefined(" "));
+
+ EXPECT_FALSE(isUndefined<int8_t>(0));
+ EXPECT_FALSE(isUndefined<int16_t>(0));
+ EXPECT_FALSE(isUndefined<int32_t>(0));
+ EXPECT_FALSE(isUndefined<int64_t>(0));
+ EXPECT_FALSE(isUndefined<float>(0));
+ EXPECT_FALSE(isUndefined<double>(0));
+
+ EXPECT_TRUE(isUndefined<int8_t>(std::numeric_limits<int8_t>::min()));
+ EXPECT_TRUE(isUndefined<int16_t>(std::numeric_limits<int16_t>::min()));
+ EXPECT_TRUE(isUndefined<int32_t>(std::numeric_limits<int32_t>::min()));
+ EXPECT_TRUE(isUndefined<int64_t>(std::numeric_limits<int64_t>::min()));
+ EXPECT_TRUE(isUndefined<float>(std::numeric_limits<float>::quiet_NaN()));
+ EXPECT_TRUE(isUndefined<double>(std::numeric_limits<double>::quiet_NaN()));
+}
+
GTEST_MAIN_RUN_ALL_TESTS()