etrobocon2018 feat.KatLab  770af34cce41ae9c30c41303275e1add2daae0c3 (with uncommitted changes)
 全て クラス 名前空間 ファイル 関数 変数 列挙型 列挙値 フレンド マクロ定義 ページ
LifterTest.cpp
[詳解]
1 
5 /* コンパイル(平木場)
6 $ g++-7 LifterTest.cpp ../src/Lifter.cpp gtest_main.o gtest-all.o -I../include
7 -I../../googletest/googletest/include
8 */
9 
10 #include "Lifter.h" // このヘッダファイルのcppファイルをテスト
11 #include <gtest/gtest.h>
12 #include <iostream>
13 
14 namespace etrobocon2018_test {
15 
16  class LifterTest : public ::testing::Test {
17  protected:
18  virtual void SetUp()
19  {
20  lifter.controller.liftMotor.count = 145000;
21  lifter.reset();
22  }
25 
26  std::int32_t getDefaultCount() { return lifter.default_count; }
27  void addDefaultCount(int count) { lifter.default_count -= count; }
28  std::int8_t limitPwm(std::int8_t pwm) { return lifter.limitPwm(pwm); }
29  std::int32_t getCount() { return lifter.controller.liftMotor.getCount(); }
30  };
31 
32  TEST_F(LifterTest, setDefaultCountTest) { ASSERT_EQ(getDefaultCount(), getCount()); }
33 
34  TEST_F(LifterTest, getCurrentAngleTest1)
35  {
36  addDefaultCount(90);
37  ASSERT_EQ(lifter.getCurrentAngle(), 90);
38  }
39 
40  TEST_F(LifterTest, getCurrentAngleTest2) { ASSERT_EQ(lifter.getCurrentAngle(), 0); }
41 
42  TEST_F(LifterTest, limitPwmTest1)
43  {
44  ASSERT_EQ(limitPwm(99), 99);
45  ASSERT_EQ(limitPwm(100), 100);
46  ASSERT_EQ(limitPwm(101), 100);
47  }
48 
49  TEST_F(LifterTest, limitPwmTest2)
50  {
51  ASSERT_EQ(limitPwm(2), 2);
52  ASSERT_EQ(limitPwm(1), 1);
53  ASSERT_EQ(limitPwm(0), 1);
54  }
55 
56  TEST_F(LifterTest, limitPwmTest3)
57  {
58  ASSERT_EQ(limitPwm(-100), 1);
59  ASSERT_EQ(limitPwm(-50), 1);
60  ASSERT_EQ(limitPwm(-1), 1);
61  }
62 
63  TEST_F(LifterTest, limitPwmTest4)
64  {
65  ASSERT_EQ(limitPwm(10), 10);
66  ASSERT_EQ(limitPwm(50), 50);
67  ASSERT_EQ(limitPwm(80), 80);
68  }
69 
70  TEST_F(LifterTest, liftUpTest1)
71  {
72  lifter.liftUp(90);
73  ASSERT_LE(lifter.getCurrentAngle(), 93);
74  ASSERT_GE(lifter.getCurrentAngle(), 90);
75  }
76 
77  TEST_F(LifterTest, liftUpTest2)
78  {
79  lifter.liftUp(45);
80  ASSERT_LE(lifter.getCurrentAngle(), 48);
81  ASSERT_GE(lifter.getCurrentAngle(), 45);
82  }
83 
84  TEST_F(LifterTest, liftDownTest1)
85  {
86  lifter.liftDown(90);
87  ASSERT_GE(lifter.getCurrentAngle(), -93);
88  ASSERT_LE(lifter.getCurrentAngle(), -90);
89  }
90 
91  TEST_F(LifterTest, liftDownTest2)
92  {
93  lifter.liftDown(45);
94  ASSERT_GE(lifter.getCurrentAngle(), -48);
95  ASSERT_LE(lifter.getCurrentAngle(), -45);
96  }
97 
98  TEST_F(LifterTest, defaultSetTest1)
99  {
100  lifter.liftUp(90);
101  ASSERT_GE(lifter.getCurrentAngle(), 90);
102  lifter.defaultSet();
103  ASSERT_GE(lifter.getCurrentAngle(), -2);
104  ASSERT_LE(lifter.getCurrentAngle(), 2);
105  }
106 
107  TEST_F(LifterTest, defaultSetTest2)
108  {
109  lifter.defaultSet();
110  ASSERT_GE(lifter.getCurrentAngle(), -2);
111  ASSERT_LE(lifter.getCurrentAngle(), 2);
112  }
113 } // namespace etrobocon2018_test
Motor liftMotor
Definition: Controller.h:44
走行体のアームを操作するクラス。
Definition: Lifter.h:20
std::int8_t limitPwm(std::int8_t pwm)
Definition: LifterTest.cpp:28
void addDefaultCount(int count)
Definition: LifterTest.cpp:27
TEST_F(BlockStrategyTest, createColorBlockPlace)
走行体のアームを操作するクラス。
int32_t getCount(void) const
Definition: Motor.h:67