00001 #include <gtest/gtest.h> 00002 #include "robodyn_utilities/SlewFilter.h" 00003 00004 TEST(SlewFilterTest, FilterFloat) 00005 { 00006 SlewFilter s; 00007 s.setRates(1.0, 2.0); 00008 00009 EXPECT_FLOAT_EQ(0.5, s.filter(0.0, 0.5)); 00010 00011 EXPECT_FLOAT_EQ(1.0, s.filter(0.0, 5.0)); 00012 EXPECT_FLOAT_EQ(2.0, s.filter(1.0, 5.0)); 00013 EXPECT_FLOAT_EQ(3.0, s.filter(2.0, 5.0)); 00014 EXPECT_FLOAT_EQ(4.0, s.filter(3.0, 5.0)); 00015 EXPECT_FLOAT_EQ(5.0, s.filter(4.0, 5.0)); 00016 EXPECT_FLOAT_EQ(5.0, s.filter(5.0, 5.0)); 00017 00018 EXPECT_FLOAT_EQ(-1.5, s.filter(0.0, -1.5)); 00019 00020 EXPECT_FLOAT_EQ(3.0, s.filter(5.0, -5.0)); 00021 EXPECT_FLOAT_EQ(1.0, s.filter(3.0, -5.0)); 00022 EXPECT_FLOAT_EQ(-1.0, s.filter(1.0, -5.0)); 00023 EXPECT_FLOAT_EQ(-3.0, s.filter(-1.0, -5.0)); 00024 EXPECT_FLOAT_EQ(-5.0, s.filter(-3.0, -5.0)); 00025 EXPECT_FLOAT_EQ(-5.0, s.filter(-5.0, -5.0)); 00026 } 00027 00028 TEST(SlewFilterTest, FilterInteger) 00029 { 00030 SlewFilter s; 00031 s.setRates(1, 2); 00032 00033 EXPECT_EQ(1, s.filter(0, 1)); 00034 00035 EXPECT_EQ(1, s.filter(0, 5)); 00036 EXPECT_EQ(2, s.filter(1, 5)); 00037 EXPECT_EQ(3, s.filter(2, 5)); 00038 EXPECT_EQ(4, s.filter(3, 5)); 00039 EXPECT_EQ(5, s.filter(4, 5)); 00040 EXPECT_EQ(5, s.filter(5, 5)); 00041 00042 EXPECT_EQ(-1, s.filter(0, -1)); 00043 00044 EXPECT_EQ(3, s.filter(5, -5)); 00045 EXPECT_EQ(1, s.filter(3, -5)); 00046 EXPECT_EQ(-1, s.filter(1, -5)); 00047 EXPECT_EQ(-3, s.filter(-1, -5)); 00048 EXPECT_EQ(-5, s.filter(-3, -5)); 00049 EXPECT_EQ(-5, s.filter(-5, -5)); 00050 } 00051 00052 int main(int argc, char** argv) 00053 { 00054 ::testing::InitGoogleTest(&argc, argv); 00055 return RUN_ALL_TESTS(); 00056 } 00057