etrobocon2018 feat.KatLab  770af34cce41ae9c30c41303275e1add2daae0c3 (with uncommitted changes)
 全て クラス 名前空間 ファイル 関数 変数 列挙型 列挙値 フレンド マクロ定義 ページ
BlockSolverTest.cpp
[詳解]
1 
5 /* コンパイル(平木場)
6 $ g++-8 BlockStrategyTest.cpp ../src/BlockSolver.cpp ../src/BlockStrategy.cpp gtest_main.o
7 gtest-all.o -I../include -I~/googletest/googletest/include
8 */
9 
10 #include "BlockSolver.h" // このヘッダファイルのcppファイルをテスト
11 #include "Controller.h"
12 #include "Walker.h"
13 #include <gtest/gtest.h>
14 
15 using namespace BlockSideBySide;
16 
17 namespace etrobocon2018_test {
18  /*class BlockStrategyTest : public ::testing::Test {
19  protected:
20  virtual void SetUp() {}
21  BlockStrategy b{ 00000 };
22  std::array<std::shared_ptr<ColorBlockPlace>, BLOCK_NUM> getColorBlockPlaceArray()
23  {
24  return b.colorBlockPlaceArray;
25  }
26 
27  // BlockSolver getBlockSolver() { return b.blockArea; }
28  };
29  */
30 
31  TEST(BlockSolverTest, getChangeDirection)
32  {
33  Controller controller;
34  Walker walker{ controller };
35  BlockSolver blockSolver{ controller, walker, 01233, 40 };
36  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 2);
37  blockSolver.nowDirection = blockSolver.getChangeDirection(1);
38  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 3);
39  blockSolver.nowDirection = blockSolver.getChangeDirection(1);
40  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 0);
41  blockSolver.nowDirection = blockSolver.getChangeDirection(-1);
42  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 3);
43  blockSolver.nowDirection = blockSolver.getChangeDirection(-1);
44  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 2);
45  blockSolver.nowDirection = blockSolver.getChangeDirection(-1);
46  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 1);
47  blockSolver.nowDirection = blockSolver.getChangeDirection(2);
48  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 3);
49  }
50 
51  TEST(BlockSolverTest, move)
52  {
53  Controller controller;
54  Walker walker{ controller };
55  BlockSolver blockSolver{ controller, walker, 01233, 40 };
56  blockSolver.moveDirection(9);
57  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 2);
58  blockSolver.moveDirection(10);
59  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 2);
60  blockSolver.moveDirection(6);
61  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 1);
62  blockSolver.moveDirection(5);
63  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 0);
64  blockSolver.moveDirection(6);
65  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 2);
66  }
67  TEST(BlockSolverTest, move2)
68  {
69  Controller controller;
70  Walker walker{ controller };
71  BlockSolver blockSolver{ controller, walker, 01233, 40 };
72  blockSolver.moveDirection(9);
73  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 2);
74  blockSolver.moveDirection(8);
75  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 0);
76  blockSolver.moveDirection(4);
77  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 1);
78  blockSolver.moveDirection(5);
79  ASSERT_EQ(static_cast<int>(blockSolver.nowDirection), 2);
80  }
81  TEST(BlockSolverTest, runrun)
82  {
83  Controller controller;
84  Walker walker{ controller };
85  BlockSolver blockSolver{ controller, walker, 84722, 40 };
86  blockSolver.run();
87  }
88 } // namespace etrobocon2018_test
ブロック並べ解決
TEST(BlockSolverTest, runrun)
Definition: Walker.h:7