Go to the documentation of this file.00001
00028 #include "sr_utilities/calibration.hpp"
00029 #include <gtest/gtest.h>
00030 #include <ros/ros.h>
00031
00032 class CalibrationTest
00033 {
00034 public:
00035 CalibrationTest()
00036 {}
00037
00038 ~CalibrationTest()
00039 {}
00040 };
00041
00043
00045
00055 TEST(Calibration2Points, before)
00056 {
00057 std::vector<joint_calibration::Point> cal_table;
00058
00059 joint_calibration::Point point;
00060 point.raw_value = 1.0;
00061 point.calibrated_value = 3.0;
00062 cal_table.push_back(point);
00063 point.raw_value = 2.0;
00064 point.calibrated_value = 5.0;
00065 cal_table.push_back(point);
00066
00067 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00068
00069 EXPECT_EQ(cal->compute(0.0), 1.0);
00070
00071 delete cal;
00072 }
00073
00083 TEST(Calibration2Points, in)
00084 {
00085 std::vector<joint_calibration::Point> cal_table;
00086
00087 joint_calibration::Point point;
00088 point.raw_value = 1.0;
00089 point.calibrated_value = 3.0;
00090 cal_table.push_back(point);
00091 point.raw_value = 2.0;
00092 point.calibrated_value = 5.0;
00093 cal_table.push_back(point);
00094
00095 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00096
00097 EXPECT_EQ(cal->compute(1.5), 4.0);
00098 delete cal;
00099 }
00100
00110 TEST(Calibration2Points, after)
00111 {
00112 std::vector<joint_calibration::Point> cal_table;
00113
00114 joint_calibration::Point point;
00115 point.raw_value = 1.0;
00116 point.calibrated_value = 3.0;
00117 cal_table.push_back(point);
00118 point.raw_value = 2.0;
00119 point.calibrated_value = 5.0;
00120 cal_table.push_back(point);
00121
00122 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00123
00124 EXPECT_EQ(cal->compute(3.0), 7.0);
00125 delete cal;
00126 }
00127
00137 TEST(Calibration2Points, on)
00138 {
00139 std::vector<joint_calibration::Point> cal_table;
00140
00141 joint_calibration::Point point;
00142 point.raw_value = 1.0;
00143 point.calibrated_value = 3.0;
00144 cal_table.push_back(point);
00145 point.raw_value = 2.0;
00146 point.calibrated_value = 5.0;
00147 cal_table.push_back(point);
00148
00149 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00150
00151 EXPECT_EQ(cal->compute(2.0), 5.0);
00152 EXPECT_EQ(cal->compute(1.0), 3.0);
00153 delete cal;
00154 }
00155
00156
00157
00159
00161
00172 TEST(Calibration3Points, before)
00173 {
00174 std::vector<joint_calibration::Point> cal_table;
00175
00176 joint_calibration::Point point;
00177 point.raw_value = 1.0;
00178 point.calibrated_value = 3.0;
00179 cal_table.push_back(point);
00180 point.raw_value = 2.0;
00181 point.calibrated_value = 5.0;
00182 cal_table.push_back(point);
00183 point.raw_value = 3.0;
00184 point.calibrated_value = 4.0;
00185 cal_table.push_back(point);
00186
00187 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00188
00189 EXPECT_EQ(cal->compute(0.0), 1.0);
00190 delete cal;
00191 }
00192
00203 TEST(Calibration3Points, first_interval)
00204 {
00205 std::vector<joint_calibration::Point> cal_table;
00206
00207 joint_calibration::Point point;
00208 point.raw_value = 1.0;
00209 point.calibrated_value = 3.0;
00210 cal_table.push_back(point);
00211 point.raw_value = 2.0;
00212 point.calibrated_value = 5.0;
00213 cal_table.push_back(point);
00214 point.raw_value = 3.0;
00215 point.calibrated_value = 4.0;
00216 cal_table.push_back(point);
00217
00218 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00219
00220 EXPECT_EQ(cal->compute(1.5), 4.0);
00221 delete cal;
00222 }
00223
00234 TEST(Calibration3Points, second_interval)
00235 {
00236 std::vector<joint_calibration::Point> cal_table;
00237
00238 joint_calibration::Point point;
00239 point.raw_value = 1.0;
00240 point.calibrated_value = 3.0;
00241 cal_table.push_back(point);
00242 point.raw_value = 2.0;
00243 point.calibrated_value = 5.0;
00244 cal_table.push_back(point);
00245 point.raw_value = 3.0;
00246 point.calibrated_value = 4.0;
00247 cal_table.push_back(point);
00248
00249 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00250
00251 EXPECT_EQ(cal->compute(2.5), 4.5);
00252 delete cal;
00253 }
00254
00265 TEST(Calibration3Points, after)
00266 {
00267 std::vector<joint_calibration::Point> cal_table;
00268
00269 joint_calibration::Point point;
00270 point.raw_value = 1.0;
00271 point.calibrated_value = 3.0;
00272 cal_table.push_back(point);
00273 point.raw_value = 2.0;
00274 point.calibrated_value = 5.0;
00275 cal_table.push_back(point);
00276 point.raw_value = 3.0;
00277 point.calibrated_value = 4.0;
00278 cal_table.push_back(point);
00279
00280 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00281
00282 EXPECT_EQ(cal->compute(4.0), 3.0);
00283 delete cal;
00284 }
00285
00296 TEST(Calibration3Points, on)
00297 {
00298 std::vector<joint_calibration::Point> cal_table;
00299
00300 joint_calibration::Point point;
00301 point.raw_value = 1.0;
00302 point.calibrated_value = 3.0;
00303 cal_table.push_back(point);
00304 point.raw_value = 2.0;
00305 point.calibrated_value = 5.0;
00306 cal_table.push_back(point);
00307 point.raw_value = 3.0;
00308 point.calibrated_value = 4.0;
00309 cal_table.push_back(point);
00310
00311 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00312
00313 EXPECT_EQ(cal->compute(1.0), 3.0);
00314 EXPECT_EQ(cal->compute(2.0), 5.0);
00315 EXPECT_EQ(cal->compute(3.0), 4.0);
00316 delete cal;
00317 }
00318
00319
00342 TEST(Calibration5Points, mixed_and_big_test)
00343 {
00344 std::vector<joint_calibration::Point> cal_table;
00345
00346 joint_calibration::Point point;
00347
00348 point.raw_value = 5.0;
00349 point.calibrated_value = 6.0;
00350 cal_table.push_back(point);
00351
00352 point.raw_value = 2.0;
00353 point.calibrated_value = 0.0;
00354 cal_table.push_back(point);
00355
00356 point.raw_value = 1.0;
00357 point.calibrated_value = -2.0;
00358 cal_table.push_back(point);
00359
00360 point.raw_value = 10.0;
00361 point.calibrated_value = 0.0;
00362 cal_table.push_back(point);
00363
00364 point.raw_value = 3.0;
00365 point.calibrated_value = -4.0;
00366 cal_table.push_back(point);
00367
00368 shadow_robot::JointCalibration* cal = new shadow_robot::JointCalibration(cal_table);
00369
00370 EXPECT_EQ(cal->compute(0.0), -4.0);
00371 EXPECT_EQ(cal->compute(1.0), -2.0);
00372 EXPECT_EQ(cal->compute(1.5), -1.0);
00373 EXPECT_EQ(cal->compute(2.0), 0.0);
00374 EXPECT_EQ(cal->compute(2.5), -2.0);
00375 EXPECT_EQ(cal->compute(3.0), -4.0);
00376 EXPECT_EQ(cal->compute(4.0), 1.0);
00377 EXPECT_EQ(cal->compute(5.0), 6.0);
00378 EXPECT_EQ(cal->compute(7.5), 3.0);
00379 EXPECT_EQ(cal->compute(10.), 0.0);
00380 EXPECT_EQ(cal->compute(15.), -6.0);
00381 delete cal;
00382 }
00383
00384
00385
00387
00389
00390 int main(int argc, char **argv)
00391 {
00392 ros::init(argc, argv, "calibration_test");
00393
00394 testing::InitGoogleTest(&argc, argv);
00395 return RUN_ALL_TESTS();
00396 }
00397
00398
00399
00400
00401
00402