MCPcopy Create free account
hub / github.com/apache/arrow / TestRoundTripFromNaN

Method TestRoundTripFromNaN

cpp/src/arrow/util/float16_test.cc:64–82  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

62 }
63
64 static void TestRoundTripFromNaN(std::span<const T> test_cases) {
65 for (size_t i = 0; i < test_cases.size(); ++i) {
66 ARROW_SCOPED_TRACE("i=", i);
67 const auto input = test_cases[i];
68
69 ASSERT_TRUE(std::isnan(input));
70 const bool sign = std::signbit(input);
71
72 const auto f16 = Float16(input);
73 EXPECT_TRUE(f16.is_nan());
74 EXPECT_EQ(std::isinf(input), f16.is_infinity());
75 EXPECT_EQ(std::isfinite(input), f16.is_finite());
76 EXPECT_EQ(sign, f16.signbit());
77
78 const auto output = static_cast<T>(f16);
79 EXPECT_TRUE(std::isnan(output));
80 EXPECT_EQ(sign, std::signbit(output));
81 }
82 }
83
84 void TestRoundTripFromInf() {
85 const T test_cases[] = {+Limits<T>::infinity(), -Limits<T>::infinity()};

Callers

nothing calls this directly

Calls 4

signbitFunction · 0.85
signbitMethod · 0.80
Float16Function · 0.70
sizeMethod · 0.45

Tested by

no test coverage detected