summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/misc/unittests/enum_ut.cpp
diff options
context:
space:
mode:
authorbabenko <[email protected]>2024-11-03 15:01:37 +0300
committerbabenko <[email protected]>2024-11-03 15:13:18 +0300
commit1d9c1fe4155c9fbc93a2b08754643f38b2d8a9e6 (patch)
tree4304bf131c70c48c008b0823149420636f213b46 /library/cpp/yt/misc/unittests/enum_ut.cpp
parent516aec4353c6dc63d05883924b1f29d327db6413 (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.cpp38
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);