10 #define BOOST_TEST_MODULE value
12 #include <boost/version.hpp>
14 #if BOOST_VERSION >= 105900
15 #include <boost/test/tools/output_test_stream.hpp>
17 #include <boost/test/output_test_stream.hpp>
19 #include <boost/test/unit_test.hpp>
21 using boost::test_tools::output_test_stream;
26 using dg::command::Value;
32 BOOST_CHECK(!(value1 == value));
35 output_test_stream output;
37 BOOST_CHECK(output.is_equal(
"Type=unknown, value="));
42 using dg::command::Value;
48 BOOST_CHECK(value1 == value);
51 output_test_stream output;
53 BOOST_CHECK(output.is_equal(
"Type=bool, value=0"));
57 output_test_stream output;
59 BOOST_CHECK(output.is_equal(
"Type=bool, value=0"));
64 using dg::command::Value;
67 dg::command::EitherType anet(value1);
68 output_test_stream output, output2;
79 output2 << aea.
what();
83 BOOST_CHECK(output.is_equal(
"Abstract"));
84 BOOST_CHECK(output2.is_equal(
"value is not an int"));
102 unsigned int aint(anet);
114 double adouble(anet);
138 std::string astring(anet);
159 Eigen::MatrixXd amatrixXd;
170 Eigen::Matrix4d amatrix4d;
179 using dg::command::Value;
181 unsigned int aint1(5);
183 Value value = value1;
185 BOOST_CHECK(value1 == value);
188 output_test_stream output;
190 BOOST_CHECK(output.is_equal(
"Type=unsigned int, value=5"));
194 output_test_stream output;
196 BOOST_CHECK(output.is_equal(
"Type=unsigned int, value=5"));
201 using dg::command::Value;
205 Value value = value1;
207 BOOST_CHECK(value1 == value);
210 output_test_stream output;
212 BOOST_CHECK(output.is_equal(
"Type=int, value=5"));
216 output_test_stream output;
218 BOOST_CHECK(output.is_equal(
"Type=int, value=5"));
223 using dg::command::Value;
226 Value value1(afloat1);
227 Value value = value1;
229 BOOST_CHECK(value1 == value);
232 output_test_stream output;
234 BOOST_CHECK(output.is_equal(
"Type=float, value=0.5"));
238 output_test_stream output;
240 BOOST_CHECK(output.is_equal(
"Type=float, value=0.5"));
245 using dg::command::Value;
247 double adouble1(0.5);
248 Value value1(adouble1);
249 Value value = value1;
251 BOOST_CHECK(value1 == value);
254 output_test_stream output;
256 BOOST_CHECK(output.is_equal(
"Type=double, value=0.5"));
260 output_test_stream output;
262 BOOST_CHECK(output.is_equal(
"Type=double, value=0.5"));
267 using dg::command::Value;
273 Value value1(avector1);
274 Value value = value1;
276 BOOST_CHECK(value1 == value);
279 output_test_stream output;
281 BOOST_CHECK(output.is_equal(
"Type=vector, value=0.5\n1.5"));
285 output_test_stream output;
287 BOOST_CHECK(output.is_equal(
"Type=vector, value=0.5\n1.5"));
292 using dg::command::Value;
294 std::string str1(
"value #1");
296 Value value = value1;
298 BOOST_CHECK(value1 == value);
301 output_test_stream output;
303 BOOST_CHECK(output.is_equal(
"Type=string, value=value #1"));
307 output_test_stream output;
309 BOOST_CHECK(output.is_equal(
"Type=string, value=value #1"));
312 std::string str2(
"value #2");
317 output_test_stream output;
319 BOOST_CHECK(output.is_equal(
"Type=string, value=value #2"));
323 output_test_stream output;
325 BOOST_CHECK(output.is_equal(
"Type=string, value=value #2"));
330 using dg::command::Value;
332 Eigen::MatrixXd avector1;
333 avector1.resize(2, 2);
334 avector1(0, 0) = 0.5;
335 avector1(0, 1) = 1.5;
336 avector1(1, 0) = 2.5;
337 avector1(1, 1) = 3.5;
338 Value value1(avector1);
339 Value value = value1;
341 BOOST_CHECK(value1 == value);
344 output_test_stream output;
346 BOOST_CHECK(output.is_equal(
"Type=matrixXd, value=0.5 1.5\n2.5 3.5"));
350 output_test_stream output;
352 BOOST_CHECK(output.is_equal(
"Type=matrixXd, value=0.5 1.5\n2.5 3.5"));
357 using dg::command::Value;
359 Eigen::Matrix4d avector1;
361 avector1(0, 0) = 0.5;
362 avector1(0, 1) = 1.5;
363 avector1(1, 0) = 2.5;
364 avector1(1, 1) = 3.5;
365 Value value1(avector1);
366 Value value = value1;
368 BOOST_CHECK(value1 == value);
371 output_test_stream output;
374 output.is_equal(
"Type=matrix4d, value=0.5 1.5 0 0\n"
375 "2.5 3.5 0 0\n 0 0 0 0\n"
380 output_test_stream output;
383 output.is_equal(
"Type=matrix4d, value=0.5 1.5 0 0\n"
384 "2.5 3.5 0 0\n 0 0 0 0\n"
392 std::string s1(
"value #1");
399 values.push_back(vs1);
400 values.push_back(vd1);
402 Value vvalues(values);
407 const Values &vs = vvalues.constValuesValue();
408 BOOST_CHECK_EQUAL(vs.size(), values.size());
409 BOOST_CHECK(vs == values);
420 BOOST_CHECK(vvs == vvalues);
424 output_test_stream output;
427 output.is_equal(
"Type=values, value=[ "
428 "Value(Type=string, value=value #1), "
429 "Value(Type=double, value=0.3), "