Go to the documentation of this file.00001 #include <gtest/gtest.h>
00002 #include "robodyn_utilities/RateLimiter.h"
00003
00004 class RateLimiterTest : public ::testing::Test
00005 {
00006 protected:
00007 virtual void SetUp()
00008 {
00009 }
00010
00011 virtual void TearDown()
00012 {
00013 }
00014 };
00015
00016 TEST_F(RateLimiterTest, findLimitsTest)
00017 {
00018 double lim, curr, prev;
00019 lim = 0.1;
00020 curr = 10.8;
00021 prev = 9.6;
00022 RateLimiter rl1;
00023 rl1.setRateLimit(lim);
00024 EXPECT_EQ(9.7, rl1.getLimitedValue(curr, prev));
00025 EXPECT_EQ(0, rl1.getCompletionCondition());
00026
00027 curr = 4.03;
00028 prev = 4.05;
00029 EXPECT_EQ(curr, rl1.getLimitedValue(curr, prev));
00030 EXPECT_EQ(1, rl1.getCompletionCondition());
00031
00032 prev = 4.53;
00033 EXPECT_EQ(prev - lim, rl1.getLimitedValue(curr, prev));
00034 EXPECT_EQ(0, rl1.getCompletionCondition());
00035
00036 curr = 4.53;
00037 EXPECT_EQ(curr, rl1.getLimitedValue(curr, prev));
00038 EXPECT_EQ(1, rl1.getCompletionCondition());
00039
00040 EXPECT_EQ(curr, rl1.getLimitedValue(curr, prev));
00041 EXPECT_EQ(1, rl1.getCompletionCondition());
00042
00043 lim = 2.0;
00044 int currInt = 4;
00045 int prevInt = 7;
00046 RateLimiter rl2;
00047 rl2.setRateLimit(lim);
00048 EXPECT_EQ(5, rl2.getLimitedValue(currInt, prevInt));
00049 EXPECT_EQ(0, rl2.getCompletionCondition());
00050 rl2.setRateLimit(0.5);
00051 EXPECT_EQ(6, rl2.getLimitedValue(currInt, prevInt));
00052
00053 }
00054
00055 int main(int argc, char** argv)
00056 {
00057 ::testing::InitGoogleTest(&argc, argv);
00058 return RUN_ALL_TESTS();
00059 }
00060