void timeStep() { time_step += 1; addFood(); moveBugs(); killDeadBugs(); reproduceBugs(); percent_straight = 100 * total_straight / bug_list.size() / GENE_TOTAL; percent_left = 100 * total_left / bug_list.size() / GENE_TOTAL; percent_right = 100 * total_right / bug_list.size() / GENE_TOTAL; percent_back = 100 * total_back / bug_list.size() / GENE_TOTAL; }
TEST(BugKillingTests, SimpleBugKillingTest) { bug_list.clear(); bug_list.push_back(initBug(0, 0, 2, MOVE_HEALTH)); bug_list.push_back(initBug(0, 0, 4, MOVE_HEALTH * 2)); initWorld(); moveBugs(); killDeadBugs(); ASSERT_EQ(bug_list.size(), 1); ASSERT_EQ(world[0][0], EMPTY); ASSERT_EQ(world[0][1], EMPTY); ASSERT_EQ(world[1][0], 0); }
TEST(BugKillingTests, NoSkipBugKillingTest) { bug_list.clear(); bug_list.push_back(initBug(0, 0, NORTH, MOVE_HEALTH)); bug_list.push_back(initBug(0, 0, SOUTH, MOVE_HEALTH)); bug_list.push_back(initBug(0, 0, WEST, MOVE_HEALTH * 2)); initWorld(); moveBugs(); killDeadBugs(); ASSERT_EQ(bug_list.size(), 1); ASSERT_EQ(world[0][0], EMPTY); ASSERT_EQ(world[WORLD_SIZE-1][0], EMPTY); ASSERT_EQ(world[1][0], EMPTY); ASSERT_EQ(world[0][WORLD_SIZE-1], 0); }
TEST(BugKillingTests, RemoveLastBugIfDead) { bug_list.clear(); bug_list.push_back(initBug(0, 0, EAST, 0)); bug_list.push_back(initBug(0, 1, EAST, MOVE_HEALTH * 3)); bug_list.push_back(initBug(0, 2, EAST, MOVE_HEALTH * 3)); bug_list.push_back(initBug(0, 3, EAST, 0)); initWorld(); moveBugs(); killDeadBugs(); ASSERT_EQ(bug_list.size(), 2); ASSERT_EQ(world[0][1], EMPTY); ASSERT_GE(world[0][2], 0); ASSERT_GE(world[0][3], 0); ASSERT_EQ(world[0][4], EMPTY); }