Go to the documentation of this file.00001 #include <ros/ros.h>
00002 #include <gtest/gtest.h>
00003 #include <ddynamic_reconfigure/param/dd_enum_param.h>
00004
00005 namespace ddynamic_reconfigure {
00006
00010 TEST(DDEnumTest, constructorTest) {
00011 map<string,int> dict;
00012 dict["ONE"] = 1;
00013 dict["NEG-ONE"] = -1;
00014 dict["TEN"] = 10;
00015 DDEnum param1("param1",0,"param1",0,dict);
00016 DDEnum param2("",0,"","ONE",dict);
00017 DDEnum param3("\000",0,"\000", 0, dict);
00018 }
00019
00023 TEST(DDEnumTest, valueTest) {
00024 map<string,int> dict;
00025 dict["ONE"] = 1;
00026 dict["NEG-ONE"] = -1;
00027 dict["TEN"] = 10;
00028 DDEnum param("dd_param",0,"dd_param",1,dict);
00029
00030 Value v(1);
00031 ASSERT_TRUE(param.sameType(v));
00032 ASSERT_TRUE(param.sameValue(v));
00033
00034 v = Value("ONE");
00035 ASSERT_TRUE(param.sameType(v));
00036 ASSERT_TRUE(param.sameValue(v));
00037
00038 v = Value(1.0);
00039 ASSERT_FALSE(param.sameType(v));
00040 ASSERT_TRUE(param.sameValue(v));
00041
00042 v = Value(10);
00043 ASSERT_TRUE(param.sameType(v));
00044 ASSERT_FALSE(param.sameValue(v));
00045
00046 v = Value("TEN");
00047 ASSERT_TRUE(param.sameType(v));
00048 ASSERT_FALSE(param.sameValue(v));
00049
00050 v = Value(10.0);
00051 ASSERT_FALSE(param.sameType(v));
00052 ASSERT_FALSE(param.sameValue(v));
00053
00054 param.setValue(v);
00055 v = Value(-1);
00056 ASSERT_FALSE(param.sameValue(v));
00057
00058 ASSERT_TRUE(param.getValue().getType() == "int");
00059 ASSERT_TRUE(param.sameValue(Value(10)));
00060
00061 param.setValue(v);
00062 param.setValue(Value("TEN"));
00063 ASSERT_FALSE(param.sameValue(v));
00064
00065 ASSERT_TRUE(param.getValue().getType() == "int");
00066 ASSERT_TRUE(param.sameValue(Value(10)));
00067
00068
00069 v = Value("10");
00070 ASSERT_TRUE(param.sameValue(v));
00071 param.setValue(v);
00072
00073 ASSERT_TRUE(param.getValue().getType() == "int");
00074 ASSERT_TRUE(param.sameValue(Value(10)));
00075
00076
00077 v = Value("TWO");
00078
00079 ASSERT_FALSE(param.sameValue(v));
00080 param.setValue(v);
00081
00082 ASSERT_TRUE(param.getValue().getType() == "int");
00083 int hash = (int)boost::hash<string>()("TWO");
00084 ASSERT_TRUE(param.sameValue(Value(hash)));
00085 }
00086
00087 TEST(DDEnumTest, streamTest) {
00088 map<string,int> dict;
00089 dict["ONE"] = 1;
00090 dict["NEG-ONE"] = -1;
00091 dict["TEN"] = 10;
00092 DDEnum param1("param1",0,"param1",1,dict);
00093 stringstream stream;
00094 stream << param1;
00095 ASSERT_EQ(param1.getName() + ":" + param1.getValue().toString(),stream.str());
00096 }
00097 }
00098
00099
00100 int main(int argc, char** argv) {
00101 testing::InitGoogleTest(&argc, argv);
00102
00103 srand((unsigned int)random());
00104
00105 return RUN_ALL_TESTS();
00106 }