12 #include <gtest/gtest.h>
14 namespace etrobocon2018_test {
17 TEST(InitialPositionCodeDecoderTest, getInitialPositionCodeListTest1)
20 std::vector<std::int8_t> expected = {0, 0, 0, 0};
24 ASSERT_EQ(expected, actual);
28 TEST(InitialPositionCodeDecoderTest, getInitialPositionPowerBlockCodeTest1)
35 ASSERT_EQ(expected, actual);
39 TEST(InitialPositionCodeDecoderTest, returnInitialPositionCodeListByNegativeIntegerTest)
42 std::vector<std::int8_t> expected = {0, 0, 0, 0};
47 ASSERT_EQ(expected, actual);
51 TEST(InitialPositionCodeDecoderTest, decodePowerBlockCodeTest1)
54 std::int32_t codeList = 1;
60 ASSERT_EQ(expected, actual);
64 TEST(InitialPositionCodeDecoderTest, decodeFirstColorBlockOfCodeTest1)
67 std::int32_t codeList = 65538;
68 std::vector<std::int8_t> expected = {1, 0, 0, 0};
73 ASSERT_EQ(expected.at(0), actual.at(0));
77 TEST(InitialPositionCodeDecoderTest, decodeSecondColorBlockOfCodeTest1)
80 std::int32_t codeList = 135171;
81 std::vector<std::int8_t> expected = {2, 1, 0, 0};
86 ASSERT_EQ(expected.at(1), actual.at(1));
90 TEST(InitialPositionCodeDecoderTest, decodeThirdColorBlockOfCodeTest1)
93 std::int32_t codeList = 205060;
94 std::vector<std::int8_t> expected = {3, 2, 1, 0};
99 ASSERT_EQ(expected.at(2), actual.at(2));
103 TEST(InitialPositionCodeDecoderTest, decodeFourthColorBlockOfCodeTest1)
106 std::int32_t codeList = 274965;
107 std::vector<std::int8_t> expected = {4, 3, 2, 1};
112 ASSERT_EQ(expected.at(3), actual.at(3));
116 TEST(InitialPositionCodeDecoderTest, decodeRandomCodeTest)
120 std::vector<std::int32_t> power16 = {1, 16, 16*16, 16*16*16, 16*16*16*16};
122 std::mt19937 mt{ std::random_device{}() };
124 std::uniform_int_distribution<std::int8_t> distC(1, 15);
126 std::uniform_int_distribution<std::int8_t> distP(1, 8);
128 for(
int i = 0; i < 100; i++) {
129 std::vector<std::int8_t> expectedC = {distC(mt), distC(mt), distC(mt), distC(mt)};
130 std::int8_t expectedP = distP(mt);
131 std::int32_t expected =
132 expectedC[0] * power16[4] +
133 expectedC[1] * power16[3] +
134 expectedC[2] * power16[2] +
135 expectedC[3] * power16[1] +
136 expectedP * power16[0];
143 EXPECT_EQ(expected, actual);
144 EXPECT_EQ(expectedC, actualC);
145 EXPECT_EQ(expectedP, actualP);
TEST(AIAnswerArrayTest, construct)
std::int8_t getInitialPositionPowerBlockCode()
std::vector< std::int8_t > getInitialPositionCodeList()
std::int32_t getInitialPositionCode()
void decode(std::int32_t code)