summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-03-09 08:40:58 +0000
committerArne Juul <arnej@verizonmedia.com>2021-03-09 08:40:58 +0000
commit2a4b09916eeccbccd855c94885b3ff438ba37261 (patch)
tree02ca4d3040ab80bcfb933c3eda421811c99a5639 /vespalib
parent103c77a2cdd86edcf69ba68d41806d3e99c204b9 (diff)
check that BFloat16 can hold all int8_t values without precision loss
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/tests/util/bfloat16/bfloat16_test.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/vespalib/src/tests/util/bfloat16/bfloat16_test.cpp b/vespalib/src/tests/util/bfloat16/bfloat16_test.cpp
index 4e4129feb78..5d70c95b1d9 100644
--- a/vespalib/src/tests/util/bfloat16/bfloat16_test.cpp
+++ b/vespalib/src/tests/util/bfloat16/bfloat16_test.cpp
@@ -34,6 +34,18 @@ TEST(BFloat16Test, normal_usage) {
EXPECT_EQ(float(b2), 0x110);
}
+TEST(BFloat16Test, has_range_of_int_8) {
+ for (int i = -128; i < 128; ++i) {
+ int8_t byte = i;
+ float flt = byte;
+ EXPECT_EQ(byte, i);
+ EXPECT_EQ(flt, i);
+ BFloat16 value = flt;
+ float recover = value;
+ EXPECT_EQ(recover, flt);
+ }
+}
+
TEST(BFloat16Test, with_nbostream) {
nbostream buf;
for (BFloat16 value : simple_values) {