MRPT
2.0.3
enumtype_unittest.cpp
Go to the documentation of this file.
1
/* +------------------------------------------------------------------------+
2
| Mobile Robot Programming Toolkit (MRPT) |
3
| https://www.mrpt.org/ |
4
| |
5
| Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6
| See: https://www.mrpt.org/Authors - All rights reserved. |
7
| Released under BSD License. See: https://www.mrpt.org/License |
8
+------------------------------------------------------------------------+ */
9
10
#include <gtest/gtest.h>
11
#include <
mrpt/typemeta/TEnumType.h
>
12
13
// Example declaration of "enum class"
14
enum class
TestColors
15
{
16
Black
= 0,
17
Gray
= 7,
18
White
= 15
19
};
20
21
MRPT_ENUM_TYPE_BEGIN
(
TestColors
)
22
MRPT_FILL_ENUM_MEMBER
(
TestColors
, Black);
23
MRPT_FILL_ENUM_MEMBER
(
TestColors
, Gray);
24
MRPT_FILL_ENUM_MEMBER
(
TestColors
, White);
25
MRPT_ENUM_TYPE_END
()
26
27
// Example declaration of plain enum
28
enum
Directions
29
{
30
North
,
31
East
,
32
South
,
33
West
34
};
35
// Example declaration of "enum class"
36
MRPT_ENUM_TYPE_BEGIN
(
Directions
)
37
MRPT_FILL_ENUM
(
North
);
38
MRPT_FILL_ENUM
(
East
);
39
MRPT_FILL_ENUM
(
South
);
40
MRPT_FILL_ENUM
(
West
);
41
MRPT_ENUM_TYPE_END
()
42
43
TEST
(TEnumType, str2value)
44
{
45
using
mrpt::typemeta::TEnumType
;
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
{
58
using
mrpt::typemeta::TEnumType
;
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:78
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:62
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
EXPECT_EQ
EXPECT_EQ(out.image_pair_was_used.size(), NUM_IMGS)
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 2.0.3 at Fri May 29 13:06:46 UTC 2020