test_dd_value.cpp
Go to the documentation of this file.
1 #include <ros/ros.h>
2 #include <gtest/gtest.h>
4 
5 namespace ddynamic_reconfigure {
6 
10  TEST(DDValueTest, intTest) { // NOLINT(cert-err58-cpp,modernize-use-equals-delete)
11  // test init properly works
12  Value v(0);
13  ASSERT_EQ(0,v.toInt());
14  ASSERT_EQ(v.getType(),"int");
15  v = Value(-1);
16  ASSERT_EQ(-1,v.toInt());
17  ASSERT_EQ(v.getType(),"int");
18  v = Value(INT32_MAX);
19  ASSERT_EQ(INT32_MAX,v.toInt());
20  ASSERT_EQ(v.getType(),"int");
21  v = Value(INT32_MIN);
22  ASSERT_EQ(INT32_MIN,v.toInt());
23  ASSERT_EQ(v.getType(),"int");
24  // test that conversions from any value to this type properly works
25  int i = 1;
26  v = Value(i + 0.1);
27  ASSERT_EQ(i,v.toInt());
28  ASSERT_EQ(v.getType(),"double");
29  v = Value((bool)i);
30  ASSERT_EQ(i,v.toInt());
31  ASSERT_EQ(v.getType(),"bool");
32  stringstream str; str << i;
33  v = Value(str.str());
34  ASSERT_EQ(i,v.toInt());
35  ASSERT_EQ(v.getType(),"string");
36  }
37 
41  TEST(DDValueTest, doubleTest) { // NOLINT(cert-err58-cpp,modernize-use-equals-delete)
42  // test init properly works
43  Value v(0.0);
44  ASSERT_EQ(0.0,v.toDouble());
45  ASSERT_EQ(v.getType(),"double");
46  v = Value(-1.0);
47  ASSERT_EQ(-1.0,v.toDouble());
48  ASSERT_EQ(v.getType(),"double");
49  v = Value((double)INT32_MAX);
50  ASSERT_EQ((double)INT32_MAX,v.toDouble());
51  ASSERT_EQ(v.getType(),"double");
52  v = Value((double)INT32_MIN);
53  ASSERT_EQ((double)INT32_MIN,v.toDouble());
54  ASSERT_EQ(v.getType(),"double");
55  v = Value(DBL_MAX);
56  ASSERT_EQ(DBL_MAX,v.toDouble());
57  ASSERT_EQ(v.getType(),"double");
58  v = Value(DBL_MIN);
59  ASSERT_EQ(DBL_MIN,v.toDouble());
60  ASSERT_EQ(v.getType(),"double");
61  v = Value(-DBL_MAX);
62  ASSERT_EQ(-DBL_MAX,v.toDouble());
63  ASSERT_EQ(v.getType(),"double");
64  // test that conversions from any value to this type properly works
65  double f = 1.0;
66  v = Value((int)f);
67  ASSERT_EQ(f,v.toDouble());
68  ASSERT_EQ(v.getType(),"int");
69  v = Value((int)(f + 0.1));
70  ASSERT_NE(f + 0.1,v.toDouble());
71  ASSERT_EQ(v.getType(),"int");
72  v = Value((bool)f);
73  ASSERT_EQ(f,v.toDouble());
74  ASSERT_EQ(v.getType(),"bool");
75  stringstream str; str << f;
76  v = Value(str.str());
77  ASSERT_EQ(f,v.toDouble());
78  ASSERT_EQ(v.getType(),"string");
79  str << ".000";
80  v = Value(str.str());
81  ASSERT_EQ(f,v.toDouble());
82  ASSERT_EQ(v.getType(),"string");
83  }
84 
88  TEST(DDValueTest, boolTest) { // NOLINT(cert-err58-cpp,modernize-use-equals-delete)
89 // test init properly works
90  Value v(false);
91  ASSERT_EQ(false,v.toBool());
92  ASSERT_EQ(v.getType(),"bool");
93  v = Value(true);
94  ASSERT_EQ(true,v.toBool());
95  ASSERT_EQ(v.getType(),"bool");
96  // test that conversions from any value to this type properly works
97  v = Value(1);
98  ASSERT_EQ(true,v.toBool());
99  ASSERT_EQ(v.getType(),"int");
100  v = Value(0);
101  ASSERT_EQ(false,v.toBool());
102  ASSERT_EQ(v.getType(),"int");
103  v = Value(2);
104  ASSERT_EQ(true,v.toBool());
105  ASSERT_EQ(v.getType(),"int");
106  v = Value(-1);
107  ASSERT_EQ(false,v.toBool());
108  ASSERT_EQ(v.getType(),"int");
109  v = Value(1.0);
110  ASSERT_EQ(true,v.toBool());
111  ASSERT_EQ(v.getType(),"double");
112  v = Value(0.0);
113  ASSERT_EQ(false,v.toBool());
114  ASSERT_EQ(v.getType(),"double");
115  v = Value(2.0);
116  ASSERT_EQ(true,v.toBool());
117  ASSERT_EQ(v.getType(),"double");
118  v = Value(-1.0);
119  ASSERT_EQ(false,v.toBool());
120  ASSERT_EQ(v.getType(),"double");
121  v = Value("true");
122  ASSERT_EQ(true,v.toBool());
123  ASSERT_EQ(v.getType(),"string");
124  v = Value("false");
125  ASSERT_EQ(false,v.toBool());
126  ASSERT_EQ(v.getType(),"string");
127  v = Value("not a bool");
128  ASSERT_EQ(false,v.toBool());
129  ASSERT_EQ(v.getType(),"string");
130  v = Value("");
131  ASSERT_EQ(false,v.toBool());
132  ASSERT_EQ(v.getType(),"string");
133  }
134 
138  TEST(DDValueTest, stringTest) { // NOLINT(cert-err58-cpp,modernize-use-equals-delete)
139  // test init properly works
140  Value v("normal");
141  ASSERT_EQ("normal",v.toString());
142  ASSERT_EQ(v.getType(),"string");
143  v = Value("\000");
144  ASSERT_EQ("\000",v.toString());
145  ASSERT_EQ(v.getType(),"string");
146  v = Value("");
147  ASSERT_EQ("",v.toString());
148  ASSERT_EQ(v.getType(),"string");
149  string s("How long can I make this string go on for? Well, You would be surprised! I can make it really long, but I won't.");
150  v = Value(s);
151  ASSERT_EQ(s,v.toString());
152  ASSERT_EQ(v.getType(),"string");
153  // test that conversions from any value to this type properly works
154  v = Value(1);
155  ASSERT_EQ("1",v.toString());
156  ASSERT_EQ(v.getType(),"int");
157  v = Value(-1);
158  ASSERT_EQ("-1",v.toString());
159  ASSERT_EQ(v.getType(),"int");
160  v = Value(1.);
161  ASSERT_EQ("1",v.toString());
162  ASSERT_EQ(v.getType(),"double");
163  v = Value(-1.);
164  ASSERT_EQ("-1",v.toString());
165  ASSERT_EQ(v.getType(),"double");
166  v = Value(1.1);
167  ASSERT_EQ("1.1",v.toString());
168  ASSERT_EQ(v.getType(),"double");
169  v = Value(-1.1);
170  ASSERT_EQ("-1.1",v.toString());
171  ASSERT_EQ(v.getType(),"double");
172  v = Value(true);
173  ASSERT_EQ("true",v.toString());
174  ASSERT_EQ(v.getType(),"bool");
175  v = Value(false);
176  ASSERT_EQ("false",v.toString());
177  ASSERT_EQ(v.getType(),"bool");
178  }
179 }
180 
181 
182 int main(int argc, char** argv) {
183  testing::InitGoogleTest(&argc, argv);
184 
185  srand((unsigned int)random());
186 
187  return RUN_ALL_TESTS();
188 }
f
XmlRpcServer s
int toInt() const
converts the stored value into an integer.
Definition: dd_value.h:97
int main(int argc, char **argv)
The Value class is used to wrap all basic data-types (bool,int,double,string) in something generic...
Definition: dd_value.h:29
bool toBool() const
converts the stored value into a boolean.
Definition: dd_value.h:152
double toDouble() const
converts the stored value into a double.
Definition: dd_value.h:133
TEST(DDFullScaleTest, doTest)
A ROS client making sure the server sends the new information.
Definition: dd_client.cpp:16
string toString() const
converts the stored value into a string.
Definition: dd_value.h:116
string getType() const
gets the type this value wrapper stores
Definition: dd_value.h:84


ddynamic_reconfigure
Author(s): Noam Dori
autogenerated on Thu May 16 2019 02:46:37