diff --git a/test/test.cpp b/test/test.cpp index e53b154..a3db5fa 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -38,7 +38,16 @@ enum class Numbers : int { one = 1, two, three, many = 127 }; enum Directions { Up = 85, Down = -42, Right = 120, Left = -120 }; -enum number : unsigned long { one = 100, two = 200, three = 300, four = 400 }; +enum number : unsigned long { + one = 100, + two = 200, + three = 300, + four = 400, + _1 = one, + _2 = two, + _3 = three, + _4 = four +}; namespace magic_enum { template <> @@ -554,12 +563,44 @@ TEST_CASE("type_traits") { } TEST_CASE("enum_traits") { - SECTION("type_name") { - REQUIRE(enum_traits::type_name == "Color"); - REQUIRE(enum_traits::type_name == "Numbers"); - REQUIRE(enum_traits::type_name == "Directions"); - REQUIRE(enum_traits::type_name == "number"); - } + REQUIRE(enum_traits::type_name == "Color"); + REQUIRE(enum_traits::type_name == "Numbers"); + REQUIRE(enum_traits::type_name == "Directions"); + REQUIRE(enum_traits::type_name == "number"); + + REQUIRE_FALSE(enum_traits::is_unscoped); + REQUIRE_FALSE(enum_traits::is_unscoped); + REQUIRE(enum_traits::is_unscoped); + REQUIRE(enum_traits::is_unscoped); + + REQUIRE(enum_traits::is_scoped); + REQUIRE(enum_traits::is_scoped); + REQUIRE_FALSE(enum_traits::is_scoped); + REQUIRE_FALSE(enum_traits::is_scoped); + + REQUIRE_FALSE(enum_traits::is_dense); + REQUIRE(enum_traits::is_dense); + REQUIRE_FALSE(enum_traits::is_dense); + REQUIRE_FALSE(enum_traits::is_dense); + + REQUIRE(enum_traits::is_sparse); + REQUIRE_FALSE(enum_traits::is_sparse); + REQUIRE(enum_traits::is_sparse); + REQUIRE(enum_traits::is_sparse); +} + +TEST_CASE("aliases") { + REQUIRE(enum_count() == 3); + + REQUIRE(enum_name(number::one) == enum_name(number::_1)); + REQUIRE(enum_name(number::two) == enum_name(number::_2)); + REQUIRE(enum_name(number::three) == enum_name(number::_3)); + REQUIRE(enum_name(number::four) == enum_name(number::_4)); + + REQUIRE(enum_integer(number::one) == enum_integer(number::_1)); + REQUIRE(enum_integer(number::two) == enum_integer(number::_2)); + REQUIRE(enum_integer(number::three) == enum_integer(number::_3)); + REQUIRE(enum_integer(number::four) == enum_integer(number::_4)); } TEST_CASE("extrema") {