Loading [MathJax]/extensions/TeX/AMSmath.js
Radium Engine  1.5.29
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
enumconverter.cpp
1#include <catch2/catch_test_macros.hpp>
2
3#include <Core/Utils/EnumConverter.hpp>
4
5TEST_CASE( "Core/Utils/EnumConverter", "[unittests][Core][Core/Utils][EnumConverter]" ) {
6 SECTION( "Test enum converter" ) {
7 using namespace Ra::Core::Utils;
8
9 enum Values : unsigned int { VALUE_0 = 10, VALUE_1 = 20, VALUE_2 = 30 };
10 using ValuesType = typename std::underlying_type_t<Values>;
11
12 Ra::Core::Utils::EnumConverter<ValuesType> myEnum { { Values::VALUE_0, "VALUE_0" },
13 { Values::VALUE_1, "VALUE_1" },
14 { Values::VALUE_2, "VALUE_2" } };
15
16 REQUIRE( myEnum.getEnumerator( Values::VALUE_0 ) == "VALUE_0" );
17 REQUIRE( myEnum.getEnumerator( "VALUE_0" ) == Values::VALUE_0 );
18 REQUIRE( myEnum.getEnumerator( Values::VALUE_1 ) == "VALUE_1" );
19 REQUIRE( myEnum.getEnumerator( "VALUE_1" ) == Values::VALUE_1 );
20 REQUIRE( myEnum.getEnumerator( Values::VALUE_2 ) == "VALUE_2" );
21 REQUIRE( myEnum.getEnumerator( "VALUE_2" ) == Values::VALUE_2 );
22 auto strVect = myEnum.getEnumerators();
23 REQUIRE( strVect.size() == 3 );
24 REQUIRE( strVect[0] == "VALUE_0" );
25 REQUIRE( strVect[1] == "VALUE_1" );
26 REQUIRE( strVect[2] == "VALUE_2" );
27 }
28}
This class manage the bijective association between string and integral representation of an enumerat...