/
Xakka
/
CPP3
Обзор
Документация
Войти
/
Xakka
/
CPP3
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/tests/test.cpp
168 строк
4 KB
moshedur
master: release 1.0
05 янв 2025, 00:12
05 янв 2025, 00:12
35ee4f6
Код
Авторство
О чём код?
#include <gtest/gtest.h> #include "../brick_game/snake/libsnake.h" int main(int argc, char *argv[]) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } TEST(start, start_1) { s21::Game *game = get_ptr(); game->state = START; start(); EXPECT_EQ(SPAWN, game->state); } TEST(exitstate, exitstate) { int **tmp = (int **)calloc(1, sizeof(int) + sizeof(int *)); tmp[0] = ((int *)tmp) + 1; s21::Game *game = get_ptr(); game->info.field = tmp; exitstate(); EXPECT_EQ(nullptr, get_ptr()->info.field); } TEST(fsm_act, fsm_act_1) { s21::Game *game = get_ptr(); game->state = START; fsm_act(0); EXPECT_EQ(SPAWN, game->state); } TEST(spawn, spawn_1) { s21::Game *game = get_ptr(); game->state = SPAWN; while (game->snake.get_len() != 200) { game->snake.body.emplace_front(0, 0); } spawn(); EXPECT_EQ(GAMEOVER, game->state); } TEST(spawn, spawn_2) { s21::Game *game = get_ptr(); game->state = SPAWN; game->info.field = (int **)calloc(F_ROWS, F_COLS * sizeof(int) + sizeof(int *)); game->info.field[0] = (int *)(game->info.field + F_ROWS); for (int i = 1; i < F_ROWS; i++) { game->info.field[i] = game->info.field[0] + F_COLS * i; } game->state = SPAWN; game->snake.body.clear(); game->snake.body.emplace_front(5, 5); spawn(); free(game->info.field); EXPECT_EQ(MOVING, game->state); } TEST(pause, pause_1) { s21::Game *game = get_ptr(); game->state = PAUSE; fsm_pause(); EXPECT_EQ(MOVING, game->state); } TEST(pause, pause_2) { s21::Game *game = get_ptr(); game->state = MOVING; fsm_pause(); EXPECT_EQ(PAUSE, game->state); } TEST(change_direction, change_direction_1) { s21::Game *game = get_ptr(); game->action = Up; game->snake.set_direction(LEFT); change_direction(); EXPECT_EQ(UP, game->snake.get_direction()); EXPECT_EQ(SHIFTING, game->state); } TEST(change_direction, change_direction_2) { s21::Game *game = get_ptr(); game->action = Down; game->snake.set_direction(LEFT); change_direction(); EXPECT_EQ(DOWN, game->snake.get_direction()); EXPECT_EQ(SHIFTING, game->state); } TEST(change_direction, change_direction_3) { s21::Game *game = get_ptr(); game->action = Left; game->snake.set_direction(UP); change_direction(); EXPECT_EQ(LEFT, game->snake.get_direction()); EXPECT_EQ(SHIFTING, game->state); } TEST(change_direction, change_direction_4) { s21::Game *game = get_ptr(); game->action = Right; game->snake.set_direction(UP); change_direction(); EXPECT_EQ(RIGHT, game->snake.get_direction()); EXPECT_EQ(SHIFTING, game->state); } TEST(shifting, shifting_1) { s21::Game *game = get_ptr(); game->info.field = (int **)calloc(F_ROWS, F_COLS * sizeof(int) + sizeof(int *)); game->info.field[0] = (int *)(game->info.field + F_ROWS); for (int i = 1; i < F_ROWS; i++) { game->info.field[i] = game->info.field[0] + F_COLS * i; } shifting(); free(game->info.field); EXPECT_EQ(MOVING, game->state); } TEST(gameover, gameover_1) { s21::Game *game = get_ptr(); game->is_win = true; gameover(); EXPECT_EQ(START, game->state); } TEST(gameover, gameover_2) { s21::Game *game = get_ptr(); game->is_win = false; gameover(); EXPECT_EQ(START, game->state); } TEST(userInput, userInput_1) { s21::Game *game = get_ptr(); game->state = START; userInput(Start, false); EXPECT_EQ(SPAWN, game->state); } TEST(updateCurrentState, updateCurrentState_1) { s21::Game *game = get_ptr(); game->state = START; updateCurrentState(); EXPECT_EQ(START, game->state); } TEST(updateCurrentState, updateCurrentState_2) { s21::Game *game = get_ptr(); game->is_init = true; game->state = START; updateCurrentState(); EXPECT_EQ(START, game->state); } TEST(updateCurrentState, updateCurrentState_3) { s21::Game *game = get_ptr(); game->is_init = true; game->info.speed = 60; game->timer = std::chrono::steady_clock::now(); sleep(2); game->state = MOVING; updateCurrentState(); EXPECT_EQ(MOVING, game->state); }