9 #include <gtest/gtest.h>
18 TEST(ExtractRosbagSignalsTest, wrong_rosbag) {
19 std::vector<std::string> var_names;
20 var_names.push_back(
"var1");
21 var_names.push_back(
"var2");
22 var_names.push_back(
"var3");
23 std::string rosbag_path =
"wrong_path";
24 EXPECT_ANY_THROW(
DataSignals data(var_names, rosbag_path));
27 TEST(ExtractRosbagSignalsTest, wrong_variables) {
29 path +=
"/test/test.bag";
30 std::vector<std::string> var_names;
38 var_names.push_back(
"var1");
39 var_names.push_back(
"var2");
49 TEST(ExtractRosbagSignalsTest, correct_execution) {
51 path +=
"/test/test.bag";
52 std::vector<std::string> var_names;
54 "/sine_sweep_controller_local_control_actual_effort_leg_left_4_joint");
56 "/sine_sweep_controller_local_control_desired_effort_leg_left_4_joint");
57 var_names.push_back(
"wrong_variable");
62 EXPECT_EQ(received_var_names.size(), 2);
63 EXPECT_NE(std::find(received_var_names.begin(), received_var_names.end(),
65 received_var_names.end());
66 EXPECT_NE(std::find(received_var_names.begin(), received_var_names.end(),
68 received_var_names.end());
70 size_t size_signal = 21915;
74 std::map<std::string, int> data_map = data.
getIndexMap();
75 EXPECT_EQ(data_map.size(), 2);
76 EXPECT_EQ(data_map[var_names[0]], 0);
77 EXPECT_EQ(data_map[var_names[1]], 1);
79 std::vector<std::vector<TimeData>> signals = data.
getDataValues();
80 EXPECT_EQ(signals.size(), 2);
81 EXPECT_EQ(signals[0].size(), size_signal);
82 EXPECT_EQ(signals[1].size(), size_signal);
84 std::vector<TimeData> signal_0 = data.
getDataSignal(var_names[0]);
85 std::vector<TimeData> signal_1 = data.
getDataSignal(var_names[1]);
86 std::vector<TimeData> signal_2 = data.
getDataSignal(var_names[2]);
88 EXPECT_EQ(signal_0.size(), size_signal);
89 EXPECT_EQ(signal_1.size(), size_signal);
90 EXPECT_TRUE(signal_2.empty());
92 EXPECT_EQ(signal_0, signals[0]);
93 EXPECT_EQ(signal_1, signals[1]);
97 EXPECT_EQ(instant_signals.size(), 2);
98 EXPECT_NEAR((instant_signals[0].first - initial_signals[0].first).toSec(),
100 EXPECT_NEAR((instant_signals[1].first - initial_signals[1].first).toSec(),
103 std::vector<TimeData> instant_signals_wrong =
105 EXPECT_EQ(instant_signals_wrong.size(), 0);
107 std::vector<TimeData> instant_coeff_signals =
109 EXPECT_EQ(instant_coeff_signals.size(), 2);
111 std::vector<TimeData> instant_coeff_signals_wrong =
113 EXPECT_EQ(instant_coeff_signals_wrong.size(), 0);
116 EXPECT_DOUBLE_EQ(instant_signals_2[0].second, 0);
117 EXPECT_DOUBLE_EQ(instant_signals_2[1].second, -12.772910497261488);
122 int main(
int argc,
char **argv) {
123 ros::init(argc, argv,
"extract_rosbag_signals_test");
129 testing::InitGoogleTest(&argc, argv);
130 return RUN_ALL_TESTS();