Skip to content

Commit 0041343

Browse files
test: Rename precision loss and underflow probes for clarity and consistency
Signed-off-by: FrozenlemonTee <1115306170@qq.com>
1 parent 2b08bda commit 0041343

1 file changed

Lines changed: 35 additions & 9 deletions

File tree

tests/basic/underlying/literals/test_literals.cpp

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,33 @@ struct I8OverflowProbe {
2222
static consteval auto value() { return 128_i8; }
2323
};
2424

25-
struct F32PrecisionLossProbe {
26-
static consteval auto value() { return 16777217_f32; }
25+
struct F32ExactPrecisionLossProbe {
26+
static consteval auto value() { return 16777217_f32e; }
2727
};
2828

29-
struct F64PrecisionLossProbe {
30-
static consteval auto value() { return 9007199254740993_f64; }
29+
struct F64ExactPrecisionLossProbe {
30+
static consteval auto value() { return 9007199254740993_f64e; }
3131
};
3232

3333
struct F32OverflowProbe {
3434
static consteval auto value() { return 1.0e39_f32; }
3535
};
3636

37-
struct F32UnderflowProbe {
38-
static consteval auto value() { return 1.0e-50_f32; }
37+
struct F32ExactOverflowProbe {
38+
static consteval auto value() { return 1.0e39_f32e; }
39+
};
40+
41+
struct F32ExactUnderflowProbe {
42+
static consteval auto value() { return 1.0e-50_f32e; }
3943
};
4044

4145
static_assert(!literal_available<U8OverflowProbe>);
4246
static_assert(!literal_available<I8OverflowProbe>);
43-
static_assert(!literal_available<F32PrecisionLossProbe>);
44-
static_assert(!literal_available<F64PrecisionLossProbe>);
47+
static_assert(!literal_available<F32ExactPrecisionLossProbe>);
48+
static_assert(!literal_available<F64ExactPrecisionLossProbe>);
4549
static_assert(!literal_available<F32OverflowProbe>);
46-
static_assert(!literal_available<F32UnderflowProbe>);
50+
static_assert(!literal_available<F32ExactOverflowProbe>);
51+
static_assert(!literal_available<F32ExactUnderflowProbe>);
4752

4853
} // namespace
4954

@@ -73,19 +78,40 @@ TEST(UnderlyingLiteralsTest, IntegerLiteralsReturnExpectedUnderlyingTypes) {
7378

7479
TEST(UnderlyingLiteralsTest, FloatingLiteralsReturnExpectedUnderlyingTypes) {
7580
static_assert(std::same_as<decltype(1.25_f32), float>);
81+
static_assert(std::same_as<decltype(1.25_f32e), float>);
7682
static_assert(std::same_as<decltype(1.25_f64), double>);
83+
static_assert(std::same_as<decltype(1.25_f64e), double>);
7784
static_assert(std::same_as<decltype(1.25_f80), long double>);
85+
static_assert(std::same_as<decltype(1.25_f80e), long double>);
7886
static_assert(std::same_as<decltype(16777216_f32), float>);
87+
static_assert(std::same_as<decltype(16777216_f32e), float>);
88+
static_assert(std::same_as<decltype(16777217_f32), float>);
7989
static_assert(std::same_as<decltype(9007199254740992_f64), double>);
90+
static_assert(std::same_as<decltype(9007199254740992_f64e), double>);
91+
static_assert(std::same_as<decltype(9007199254740993_f64), double>);
92+
static_assert(std::same_as<decltype(0.1_f32), float>);
93+
static_assert(std::same_as<decltype(0.1_f64), double>);
8094

8195
EXPECT_FLOAT_EQ(1.25_f32, 1.25f);
96+
EXPECT_FLOAT_EQ(1.25_f32e, 1.25f);
8297
EXPECT_DOUBLE_EQ(1.25_f64, 1.25);
98+
EXPECT_DOUBLE_EQ(1.25_f64e, 1.25);
8399
EXPECT_EQ(1.25_f80, static_cast<long double>(1.25));
100+
EXPECT_EQ(1.25_f80e, static_cast<long double>(1.25));
84101
EXPECT_FLOAT_EQ(16777216_f32, 16777216.0f);
102+
EXPECT_FLOAT_EQ(16777216_f32e, 16777216.0f);
103+
EXPECT_FLOAT_EQ(16777217_f32, static_cast<float>(16777217.0L));
85104
EXPECT_DOUBLE_EQ(9007199254740992_f64, 9007199254740992.0);
105+
EXPECT_DOUBLE_EQ(9007199254740992_f64e, 9007199254740992.0);
106+
EXPECT_DOUBLE_EQ(9007199254740993_f64, static_cast<double>(9007199254740993.0L));
107+
EXPECT_FLOAT_EQ(0.1_f32, static_cast<float>(0.1L));
86108
EXPECT_FLOAT_EQ(2_f32, 2.0f);
109+
EXPECT_FLOAT_EQ(2_f32e, 2.0f);
110+
EXPECT_DOUBLE_EQ(0.1_f64, static_cast<double>(0.1L));
87111
EXPECT_DOUBLE_EQ(2_f64, 2.0);
112+
EXPECT_DOUBLE_EQ(2_f64e, 2.0);
88113
EXPECT_EQ(2_f80, static_cast<long double>(2.0));
114+
EXPECT_EQ(2_f80e, static_cast<long double>(2.0));
89115
}
90116

91117
TEST(UnderlyingLiteralsTest, CharacterLiteralsReturnExpectedUnderlyingTypes) {

0 commit comments

Comments
 (0)