SpiecsEngine
 
Loading...
Searching...
No Matches

◆ TEST() [57/59]

SpicesTest::TEST ( VariableTraitsTest_test ,
variable_traits  )

Testing Spices::variable_traits.

Definition at line 42 of file VariableTraits_test.h.

42 {
43
45
46 {
47 using ca = Spices::variable_traits<decltype(&VariableTraitsTestClass::a)>;
48 using a = Spices::variable_traits<decltype(&VariableTraitsTestN::a)>;
49
50 constexpr bool v0 = std::is_same_v<ca::Type, const int>;
51 constexpr bool v1 = std::is_same_v<a::Type, const int>;
52 constexpr bool v2 = std::is_same_v<ca::Class, VariableTraitsTestClass>;
53 constexpr bool v3 = std::is_same_v<a::Class, void>;
54 constexpr bool v4 = std::is_same_v<ca::PointerType, const int VariableTraitsTestClass::*>;
55 constexpr bool v5 = std::is_same_v<a::PointerType, const int*>;
56
57 EXPECT_EQ(v0, true);
58 EXPECT_EQ(v1, true);
59 EXPECT_EQ(v2, true);
60 EXPECT_EQ(v3, true);
61 EXPECT_EQ(v4, true);
62 EXPECT_EQ(v5, true);
63
64 EXPECT_EQ(ca::is_member, true);
65 EXPECT_EQ(a::is_member, false);
66
67 EXPECT_EQ(ca::is_const, true);
68 EXPECT_EQ(a::is_const, true);
69 }
70 {
71 using cb = Spices::variable_traits<decltype(&VariableTraitsTestClass::b)>;
72 using b = Spices::variable_traits<decltype(&VariableTraitsTestN::b)>;
73
74 constexpr bool v0 = std::is_same_v<cb::Type, uint32_t>;
75 constexpr bool v1 = std::is_same_v<b::Type, uint32_t>;
76 constexpr bool v2 = std::is_same_v<cb::Class, VariableTraitsTestClass>;
77 constexpr bool v3 = std::is_same_v<b::Class, void>;
78 constexpr bool v4 = std::is_same_v<cb::PointerType, uint32_t VariableTraitsTestClass::*>;
79 constexpr bool v5 = std::is_same_v<b::PointerType, uint32_t*>;
80
81 EXPECT_EQ(v0, true);
82 EXPECT_EQ(v1, true);
83 EXPECT_EQ(v2, true);
84 EXPECT_EQ(v3, true);
85 EXPECT_EQ(v4, true);
86 EXPECT_EQ(v5, true);
87
88 EXPECT_EQ(cb::is_member, true);
89 EXPECT_EQ(b::is_member, false);
90
91 EXPECT_EQ(cb::is_const, false);
92 EXPECT_EQ(b::is_const, false);
93 }
94 {
95 using cc = Spices::variable_traits<decltype(&VariableTraitsTestClass::c)>;
96 using c = Spices::variable_traits<decltype(&VariableTraitsTestN::c)>;
97
98 constexpr bool v0 = std::is_same_v<cc::Type, float>;
99 constexpr bool v1 = std::is_same_v<c::Type, float>;
100 constexpr bool v2 = std::is_same_v<cc::Class, void>;
101 constexpr bool v3 = std::is_same_v<c::Class, void>;
102 constexpr bool v4 = std::is_same_v<cc::PointerType, float*>;
103 constexpr bool v5 = std::is_same_v<c::PointerType, float*>;
104
105 EXPECT_EQ(v0, true);
106 EXPECT_EQ(v1, true);
107 EXPECT_EQ(v2, true);
108 EXPECT_EQ(v3, true);
109 EXPECT_EQ(v4, true);
110 EXPECT_EQ(v5, true);
111
112 EXPECT_EQ(cc::is_member, false);
113 EXPECT_EQ(c::is_member, false);
114
115 EXPECT_EQ(cc::is_const, false);
116 EXPECT_EQ(c::is_const, false);
117 }
118 {
119 using cd = Spices::variable_traits<decltype(&VariableTraitsTestClass::d)>;
120 using d = Spices::variable_traits<decltype(&VariableTraitsTestN::d)>;
121
122 constexpr bool v0 = std::is_same_v<cd::Type, std::string>;
123 constexpr bool v1 = std::is_same_v<d::Type, std::string>;
124 constexpr bool v2 = std::is_same_v<cd::Class, VariableTraitsTestClass>;
125 constexpr bool v3 = std::is_same_v<d::Class, void>;
126 constexpr bool v4 = std::is_same_v<cd::PointerType, std::string VariableTraitsTestClass::*>;
127 constexpr bool v5 = std::is_same_v<d::PointerType, std::string*>;
128
129 EXPECT_EQ(v0, true);
130 EXPECT_EQ(v1, true);
131 EXPECT_EQ(v2, true);
132 EXPECT_EQ(v3, true);
133 EXPECT_EQ(v4, true);
134 EXPECT_EQ(v5, true);
135
136 EXPECT_EQ(cd::is_member, true);
137 EXPECT_EQ(d::is_member, false);
138
139 EXPECT_EQ(cd::is_const, false);
140 EXPECT_EQ(d::is_const, false);
141 }
142 {
143 using ce = Spices::variable_traits<decltype(&VariableTraitsTestClass::e)>;
144 using e = Spices::variable_traits<decltype(&VariableTraitsTestN::e)>;
145
146 constexpr bool v0 = std::is_same_v<ce::Type, void*>;
147 constexpr bool v1 = std::is_same_v<e::Type, void*>;
148 constexpr bool v2 = std::is_same_v<ce::Class, VariableTraitsTestClass>;
149 constexpr bool v3 = std::is_same_v<e::Class, void>;
150 constexpr bool v4 = std::is_same_v<ce::PointerType, void* VariableTraitsTestClass::*>;
151 constexpr bool v5 = std::is_same_v<e::PointerType, void**>;
152
153 EXPECT_EQ(v0, true);
154 EXPECT_EQ(v1, true);
155 EXPECT_EQ(v2, true);
156 EXPECT_EQ(v3, true);
157 EXPECT_EQ(v4, true);
158 EXPECT_EQ(v5, true);
159
160 EXPECT_EQ(ce::is_member, true);
161 EXPECT_EQ(e::is_member, false);
162
163 EXPECT_EQ(ce::is_const, false);
164 EXPECT_EQ(e::is_const, false);
165 }
166 }
#define SPICESTEST_PROFILE_FUNCTION()
Declare of variable_traits.

References SpicesTest::VariableTraitsTestClass::a, SpicesTest::VariableTraitsTestN::a, SpicesTest::VariableTraitsTestClass::b, SpicesTest::VariableTraitsTestN::b, SpicesTest::VariableTraitsTestClass::c, SpicesTest::VariableTraitsTestN::c, SpicesTest::VariableTraitsTestClass::d, SpicesTest::VariableTraitsTestN::d, SpicesTest::VariableTraitsTestClass::e, and SpicesTest::VariableTraitsTestN::e.