diff options
| author | babenko <[email protected]> | 2024-11-03 15:01:37 +0300 |
|---|---|---|
| committer | babenko <[email protected]> | 2024-11-03 15:13:18 +0300 |
| commit | 1d9c1fe4155c9fbc93a2b08754643f38b2d8a9e6 (patch) | |
| tree | 4304bf131c70c48c008b0823149420636f213b46 /library/cpp/yt/misc/unittests/enum_ut.cpp | |
| parent | 516aec4353c6dc63d05883924b1f29d327db6413 (diff) | |
YT-22885: Refactor checked casts
commit_hash:7f7600d332c3ddb5c8372e921bcba3b4fbed68f8
Diffstat (limited to 'library/cpp/yt/misc/unittests/enum_ut.cpp')
| -rw-r--r-- | library/cpp/yt/misc/unittests/enum_ut.cpp | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/library/cpp/yt/misc/unittests/enum_ut.cpp b/library/cpp/yt/misc/unittests/enum_ut.cpp index fc7feed2279..22bfe1fdc91 100644 --- a/library/cpp/yt/misc/unittests/enum_ut.cpp +++ b/library/cpp/yt/misc/unittests/enum_ut.cpp @@ -215,10 +215,21 @@ TEST(TEnumTest, IsKnownValue) EXPECT_TRUE(TEnumTraits<ESimple>::IsKnownValue(ESimple::X)); EXPECT_TRUE(TEnumTraits<ESimple>::IsKnownValue(ESimple::Y)); EXPECT_TRUE(TEnumTraits<ESimple>::IsKnownValue(ESimple::Z)); - EXPECT_FALSE(TEnumTraits<ESimple>::IsKnownValue(static_cast<ESimple>(100))); +} - EXPECT_TRUE(TEnumTraits<EColor>::IsKnownValue(EColor::Red)); +TEST(TEnumTest, IsValidValue) +{ + EXPECT_TRUE(TEnumTraits<ESimple>::IsValidValue(ESimple::X)); + EXPECT_TRUE(TEnumTraits<ESimple>::IsValidValue(ESimple::Y)); + EXPECT_TRUE(TEnumTraits<ESimple>::IsValidValue(ESimple::Z)); + EXPECT_FALSE(TEnumTraits<ESimple>::IsValidValue(static_cast<ESimple>(100))); + + EXPECT_TRUE(TEnumTraits<EFlag>::IsValidValue(EFlag())); + EXPECT_TRUE(TEnumTraits<EFlag>::IsValidValue(EFlag::_1)); + EXPECT_TRUE(TEnumTraits<EFlag>::IsValidValue(EFlag::_1 | EFlag::_2)); + EXPECT_TRUE(TEnumTraits<EFlag>::IsValidValue(EFlag::_1 | EFlag::_2 | EFlag::_3 | EFlag::_4)); + EXPECT_FALSE(TEnumTraits<EFlag>::IsValidValue(static_cast<EFlag>(0x10))); } TEST(TEnumTest, AllSetValue) @@ -280,29 +291,6 @@ TEST(TEnumTest, CustomString) EXPECT_EQ("1_b", ToString(ECustomString::B)); } -TEST(TEnumTest, Cast) -{ - ECardinal cardinal; - { - char validValue = 2; - EXPECT_TRUE(TryEnumCast(validValue, &cardinal)); - EXPECT_EQ(cardinal, ECardinal::East); - } - { - char invalidValue = 100; - EXPECT_FALSE(TryEnumCast(invalidValue, &cardinal)); - } - { - int widerTypeValidValue = 3; - EXPECT_TRUE(TryEnumCast(widerTypeValidValue, &cardinal)); - EXPECT_EQ(cardinal, ECardinal::South); - } - { - int widerTypeInvalueValue = (1 << 8) + 100; - EXPECT_FALSE(TryEnumCast(widerTypeInvalueValue, &cardinal)); - } -} - TEST(TEnumTest, UnknownValue) { EXPECT_EQ(TEnumTraits<EColor>::TryGetUnknownValue(), std::nullopt); |
