Main MRPT website > C++ reference for MRPT 1.9.9
enumtype_unittest.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
11 #include <gtest/gtest.h>
12 
13 // Example declaration of "enum class"
14 enum class TestColors
15 {
16  Black = 0,
17  Gray = 7,
18  White = 15
19 };
20 
26 
27 // Example declaration of plain enum
29 {
34 };
35 // Example declaration of "enum class"
42 
43 TEST(TEnumType, str2value)
44 {
46 
47  EXPECT_EQ(TEnumType<TestColors>::name2value("White"), TestColors::White);
48  EXPECT_EQ(TEnumType<TestColors>::name2value("Black"), TestColors::Black);
49  EXPECT_EQ(TEnumType<TestColors>::name2value("Gray"), TestColors::Gray);
50 
51  EXPECT_EQ(TEnumType<Directions>::name2value("East"), East);
52 
53  EXPECT_THROW(TEnumType<TestColors>::name2value("Violet"), std::exception);
54 }
55 
56 TEST(TEnumType, value2str)
57 {
59 
60  EXPECT_EQ(TEnumType<TestColors>::value2name(TestColors::White), "White");
61  EXPECT_EQ(TEnumType<TestColors>::value2name(TestColors::Black), "Black");
62  EXPECT_EQ(TEnumType<TestColors>::value2name(TestColors::Gray), "Gray");
63 
64  EXPECT_EQ(TEnumType<Directions>::value2name(East), "East");
65 
66  EXPECT_THROW(
67  TEnumType<TestColors>::value2name(static_cast<TestColors>(5)),
68  std::exception);
69 }
MRPT_ENUM_TYPE_END
#define MRPT_ENUM_TYPE_END()
Definition: TEnumType.h:74
South
@ South
Definition: enumtype_unittest.cpp:32
TestColors::White
@ White
TestColors::Black
@ Black
TestColors
TestColors
Definition: enumtype_unittest.cpp:14
MRPT_ENUM_TYPE_BEGIN
#define MRPT_ENUM_TYPE_BEGIN(_ENUM_TYPE_WITH_NS)
Definition: TEnumType.h:58
Directions
Directions
Definition: enumtype_unittest.cpp:28
TestColors::Gray
@ Gray
East
@ East
Definition: enumtype_unittest.cpp:31
TEnumType.h
mrpt::typemeta::TEnumType
A helper class that can convert an enum value into its textual representation, and viceversa.
Definition: config/CConfigFileBase.h:24
North
@ North
Definition: enumtype_unittest.cpp:30
West
@ West
Definition: enumtype_unittest.cpp:33
MRPT_FILL_ENUM
MRPT_FILL_ENUM(North)
TEST
TEST(TEnumType, str2value)
Definition: enumtype_unittest.cpp:43
MRPT_FILL_ENUM_MEMBER
MRPT_FILL_ENUM_MEMBER(TestColors, Black)



Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST