| 211 | TYPED_TEST(Float16ConversionTest, RoundTripFromInf) { this->TestRoundTripFromInf(); } |
| 212 | |
| 213 | TEST(Float16Test, ConstexprFunctions) { |
| 214 | constexpr auto a = Float16::FromBits(0xbc00); // -1.0 |
| 215 | constexpr auto b = Float16::FromBits(0x3c00); // +1.0 |
| 216 | |
| 217 | static_assert(a.bits() == 0xbc00); |
| 218 | static_assert(a.signbit() == true); |
| 219 | static_assert(a.is_nan() == false); |
| 220 | static_assert(a.is_infinity() == false); |
| 221 | static_assert(a.is_finite() == true); |
| 222 | static_assert(a.is_zero() == false); |
| 223 | |
| 224 | static_assert((a == b) == false); |
| 225 | static_assert((a != b) == true); |
| 226 | static_assert((a < b) == true); |
| 227 | static_assert((a > b) == false); |
| 228 | static_assert((a <= b) == true); |
| 229 | static_assert((a >= b) == false); |
| 230 | static_assert(-a == +b); |
| 231 | |
| 232 | constexpr auto v = Float16::FromBits(0xffff); |
| 233 | static_assert(v.ToBytes()[0] == 0xff); |
| 234 | static_assert(v.ToLittleEndian()[0] == 0xff); |
| 235 | static_assert(v.ToBigEndian()[0] == 0xff); |
| 236 | } |
| 237 | |
| 238 | TEST(Float16Test, Constructors) { |
| 239 | // Construction from exact bits |
nothing calls this directly
no test coverage detected