Skip to content

Commit f1c7d38

Browse files
committed
Tests: add Parameter tests
1 parent 74556bc commit f1c7d38

File tree

2 files changed

+261
-0
lines changed

2 files changed

+261
-0
lines changed

tests/src/Base/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ target_sources(
1111
${CMAKE_CURRENT_SOURCE_DIR}/DualQuaternion.cpp
1212
${CMAKE_CURRENT_SOURCE_DIR}/Handle.cpp
1313
${CMAKE_CURRENT_SOURCE_DIR}/Matrix.cpp
14+
${CMAKE_CURRENT_SOURCE_DIR}/Parameter.cpp
1415
${CMAKE_CURRENT_SOURCE_DIR}/Placement.cpp
1516
${CMAKE_CURRENT_SOURCE_DIR}/Quantity.cpp
1617
${CMAKE_CURRENT_SOURCE_DIR}/Reader.cpp

tests/src/Base/Parameter.cpp

Lines changed: 260 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,260 @@
1+
#include "gtest/gtest.h"
2+
#include <Base/Parameter.h>
3+
4+
class ParameterTest: public ::testing::Test
5+
{
6+
protected:
7+
static void SetUpTestSuite()
8+
{
9+
ParameterManager::Init();
10+
}
11+
12+
void SetUp() override
13+
{
14+
config = ParameterManager::Create();
15+
}
16+
17+
void TearDown() override
18+
{}
19+
20+
Base::Reference<ParameterManager> getConfig() const
21+
{
22+
return config;
23+
}
24+
25+
Base::Reference<ParameterManager> getCreateConfig()
26+
{
27+
config->CreateDocument();
28+
return config;
29+
}
30+
31+
private:
32+
Base::Reference<ParameterManager> config;
33+
};
34+
35+
// NOLINTBEGIN(cppcoreguidelines-*,readability-*)
36+
TEST_F(ParameterTest, TestValid)
37+
{
38+
auto cfg = getConfig();
39+
EXPECT_EQ(cfg.isValid(), true);
40+
EXPECT_EQ(cfg.isNull(), false);
41+
}
42+
43+
TEST_F(ParameterTest, TestCreate)
44+
{
45+
auto cfg = getCreateConfig();
46+
cfg->CheckDocument();
47+
EXPECT_TRUE(cfg->IsEmpty());
48+
}
49+
50+
TEST_F(ParameterTest, TestGroup)
51+
{
52+
auto cfg = getCreateConfig();
53+
auto grp = cfg->GetGroup("TopLevelGroup");
54+
EXPECT_EQ(grp->Parent(), static_cast<ParameterGrp*>(cfg));
55+
EXPECT_EQ(grp->Manager(), static_cast<ParameterGrp*>(cfg));
56+
57+
EXPECT_FALSE(cfg->IsEmpty());
58+
EXPECT_TRUE(grp->IsEmpty());
59+
60+
EXPECT_TRUE(cfg->HasGroup("TopLevelGroup"));
61+
EXPECT_FALSE(cfg->HasGroup("Group"));
62+
63+
EXPECT_EQ(cfg->GetGroups().size(), 1);
64+
}
65+
66+
TEST_F(ParameterTest, TestGroupName)
67+
{
68+
auto cfg = getCreateConfig();
69+
auto grp = cfg->GetGroup("TopLevelGroup");
70+
EXPECT_STREQ(grp->GetGroupName(), "TopLevelGroup");
71+
}
72+
73+
TEST_F(ParameterTest, TestPath)
74+
{
75+
auto cfg = getCreateConfig();
76+
auto grp1 = cfg->GetGroup("TopLevelGroup");
77+
auto sub1 = grp1->GetGroup("Sub1");
78+
auto sub2 = sub1->GetGroup("Sub2");
79+
EXPECT_EQ(sub2->GetPath(), "TopLevelGroup/Sub1/Sub2");
80+
}
81+
82+
TEST_F(ParameterTest, TestBool)
83+
{
84+
auto cfg = getCreateConfig();
85+
auto grp = cfg->GetGroup("TopLevelGroup");
86+
grp->SetBool("Parameter1", false);
87+
grp->SetBool("Parameter2", true);
88+
EXPECT_EQ(grp->GetBool("Parameter1", true), false);
89+
EXPECT_EQ(grp->GetBool("Parameter3", true), true);
90+
EXPECT_EQ(grp->GetBool("Parameter3", false), false);
91+
92+
EXPECT_TRUE(grp->GetBools("Test").empty());
93+
EXPECT_EQ(grp->GetBools().size(), 2);
94+
EXPECT_EQ(grp->GetBools().at(0), false);
95+
EXPECT_EQ(grp->GetBools().at(1), true);
96+
EXPECT_EQ(grp->GetBoolMap().size(), 2);
97+
98+
grp->RemoveBool("Parameter1");
99+
EXPECT_EQ(grp->GetBools().size(), 1);
100+
}
101+
102+
TEST_F(ParameterTest, TestInt)
103+
{
104+
auto cfg = getCreateConfig();
105+
auto grp = cfg->GetGroup("TopLevelGroup");
106+
grp->SetInt("Parameter1", -15);
107+
grp->SetInt("Parameter2", 25);
108+
EXPECT_EQ(grp->GetInt("Parameter1", 2), -15);
109+
EXPECT_EQ(grp->GetInt("Parameter3", 2), 2);
110+
EXPECT_EQ(grp->GetInt("Parameter3", 4), 4);
111+
112+
EXPECT_TRUE(grp->GetInts("Test").empty());
113+
EXPECT_EQ(grp->GetInts().size(), 2);
114+
EXPECT_EQ(grp->GetInts().at(0), -15);
115+
EXPECT_EQ(grp->GetInts().at(1), 25);
116+
EXPECT_EQ(grp->GetIntMap().size(), 2);
117+
118+
grp->RemoveInt("Parameter1");
119+
EXPECT_EQ(grp->GetInts().size(), 1);
120+
}
121+
122+
TEST_F(ParameterTest, TestUnsigned)
123+
{
124+
auto cfg = getCreateConfig();
125+
auto grp = cfg->GetGroup("TopLevelGroup");
126+
grp->SetUnsigned("Parameter1", 15);
127+
grp->SetUnsigned("Parameter2", 25);
128+
EXPECT_EQ(grp->GetUnsigned("Parameter1", 2), 15);
129+
EXPECT_EQ(grp->GetUnsigned("Parameter3", 2), 2);
130+
EXPECT_EQ(grp->GetUnsigned("Parameter3", 4), 4);
131+
132+
EXPECT_TRUE(grp->GetUnsigneds("Test").empty());
133+
EXPECT_EQ(grp->GetUnsigneds().size(), 2);
134+
EXPECT_EQ(grp->GetUnsigneds().at(0), 15);
135+
EXPECT_EQ(grp->GetUnsigneds().at(1), 25);
136+
EXPECT_EQ(grp->GetUnsignedMap().size(), 2);
137+
138+
grp->RemoveUnsigned("Parameter1");
139+
EXPECT_EQ(grp->GetUnsigneds().size(), 1);
140+
}
141+
142+
TEST_F(ParameterTest, TestFloat)
143+
{
144+
auto cfg = getCreateConfig();
145+
auto grp = cfg->GetGroup("TopLevelGroup");
146+
grp->SetFloat("Parameter1", 1.5);
147+
grp->SetFloat("Parameter2", 2.5);
148+
EXPECT_EQ(grp->GetFloat("Parameter1", 2.0), 1.5);
149+
EXPECT_EQ(grp->GetFloat("Parameter3", 2.0), 2.0);
150+
EXPECT_EQ(grp->GetFloat("Parameter3", 4.0), 4.0);
151+
152+
EXPECT_TRUE(grp->GetFloats("Test").empty());
153+
EXPECT_EQ(grp->GetFloats().size(), 2);
154+
EXPECT_EQ(grp->GetFloats().at(0), 1.5);
155+
EXPECT_EQ(grp->GetFloats().at(1), 2.5);
156+
EXPECT_EQ(grp->GetFloatMap().size(), 2);
157+
158+
grp->RemoveFloat("Parameter1");
159+
EXPECT_EQ(grp->GetFloats().size(), 1);
160+
}
161+
162+
TEST_F(ParameterTest, TestString)
163+
{
164+
auto cfg = getCreateConfig();
165+
auto grp = cfg->GetGroup("TopLevelGroup");
166+
grp->SetASCII("Parameter1", "Value1");
167+
grp->SetASCII("Parameter2", "Value2");
168+
EXPECT_EQ(grp->GetASCII("Parameter1", "Value3"), "Value1");
169+
EXPECT_EQ(grp->GetASCII("Parameter3", "Value3"), "Value3");
170+
EXPECT_EQ(grp->GetASCII("Parameter3", "Value4"), "Value4");
171+
172+
EXPECT_TRUE(grp->GetASCIIs("Test").empty());
173+
EXPECT_EQ(grp->GetASCIIs().size(), 2);
174+
EXPECT_EQ(grp->GetASCIIs().at(0), "Value1");
175+
EXPECT_EQ(grp->GetASCIIs().at(1), "Value2");
176+
EXPECT_EQ(grp->GetASCIIMap().size(), 2);
177+
178+
grp->RemoveASCII("Parameter1");
179+
EXPECT_EQ(grp->GetASCIIs().size(), 1);
180+
}
181+
182+
TEST_F(ParameterTest, TestCopy)
183+
{
184+
auto cfg = getCreateConfig();
185+
auto grp = cfg->GetGroup("TopLevelGroup");
186+
auto sub2 = grp->GetGroup("Sub1/Sub2");
187+
sub2->SetFloat("Parameter", 1.5);
188+
189+
auto sub3 = grp->GetGroup("Sub3");
190+
sub3->SetFloat("AnotherParameter", 2.5);
191+
sub2->copyTo(sub3);
192+
EXPECT_TRUE(sub3->GetFloats("Test").empty());
193+
EXPECT_EQ(sub3->GetFloats().size(), 1);
194+
EXPECT_EQ(sub3->GetFloats().at(0), 1.5);
195+
196+
// Test that old parameter has been removed
197+
EXPECT_TRUE(sub3->GetFloats("AnotherParameter").empty());
198+
}
199+
200+
TEST_F(ParameterTest, TestInsert)
201+
{
202+
auto cfg = getCreateConfig();
203+
auto grp = cfg->GetGroup("TopLevelGroup");
204+
auto sub2 = grp->GetGroup("Sub1/Sub2");
205+
sub2->SetFloat("Parameter", 1.5);
206+
207+
auto sub3 = grp->GetGroup("Sub3");
208+
sub3->SetFloat("AnotherParameter", 2.5);
209+
sub2->insertTo(sub3);
210+
211+
EXPECT_EQ(sub3->GetFloats().size(), 2);
212+
EXPECT_EQ(sub3->GetFloats("AnotherParameter").size(), 1);
213+
}
214+
215+
TEST_F(ParameterTest, TestRevert)
216+
{
217+
auto cfg = getCreateConfig();
218+
auto grp = cfg->GetGroup("TopLevelGroup");
219+
auto sub1 = grp->GetGroup("Sub1/Sub/Sub");
220+
sub1->SetFloat("Float", 1.5);
221+
222+
auto sub2 = grp->GetGroup("Sub2/Sub/Sub");
223+
sub2->SetFloat("Float", 1.5);
224+
225+
grp->GetGroup("Sub1")->revert(grp->GetGroup("Sub2"));
226+
227+
EXPECT_EQ(sub1->GetFloat("Float", 0.0), 0.0);
228+
EXPECT_EQ(sub1->GetFloat("Float", 2.0), 2.0);
229+
EXPECT_EQ(sub2->GetFloat("Float", 2.0), 1.5);
230+
}
231+
232+
TEST_F(ParameterTest, TestRemoveGroup)
233+
{
234+
auto cfg = getCreateConfig();
235+
auto grp = cfg->GetGroup("TopLevelGroup");
236+
auto sub1 = grp->GetGroup("Sub1");
237+
auto sub2 = sub1->GetGroup("Sub2/Sub/Sub");
238+
sub2->SetFloat("Float", 1.5);
239+
sub1->RemoveGrp("Sub2");
240+
sub2->SetInt("Int", 2);
241+
EXPECT_EQ(sub2->GetInt("Int", 0), 2);
242+
EXPECT_EQ(sub2->GetInt("Int", 1), 2);
243+
cfg->CheckDocument();
244+
}
245+
246+
TEST_F(ParameterTest, TestRenameGroup)
247+
{
248+
auto cfg = getCreateConfig();
249+
auto grp = cfg->GetGroup("TopLevelGroup");
250+
auto sub1 = grp->GetGroup("Sub1");
251+
auto sub2 = sub1->GetGroup("Sub2/Sub/Sub");
252+
sub2->SetFloat("Float", 1.5);
253+
sub1->RenameGrp("Sub2", "Sub3");
254+
sub2->SetInt("Int", 2);
255+
EXPECT_EQ(sub2->GetInt("Int", 0), 2);
256+
EXPECT_EQ(sub2->GetInt("Int", 1), 2);
257+
cfg->CheckDocument();
258+
}
259+
260+
// NOLINTEND(cppcoreguidelines-*,readability-*)

0 commit comments

Comments
 (0)