From 3e02801042753772971af8bef19b7846dc6bb9d8 Mon Sep 17 00:00:00 2001 From: Joe Lukas Kalb Date: Tue, 6 Feb 2024 19:14:15 +0100 Subject: [PATCH] lab_can_move direction E heading SOLUTION --- src/main/c/labyrinth.c | 3 +++ src/test/c/test_labyrinth.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/main/c/labyrinth.c b/src/main/c/labyrinth.c index e6f9ed5..6e168d9 100644 --- a/src/main/c/labyrinth.c +++ b/src/main/c/labyrinth.c @@ -70,6 +70,9 @@ short lab_can_move(Field_State** field, unsigned short x, unsigned short y, Dire if (direction == N && field[x][y] == SOLUTION){ return 1; } + if (direction == E && field[x][y] == SOLUTION){ + return 1; + } return 0; } diff --git a/src/test/c/test_labyrinth.c b/src/test/c/test_labyrinth.c index 27bc07f..99d45be 100644 --- a/src/test/c/test_labyrinth.c +++ b/src/test/c/test_labyrinth.c @@ -639,3 +639,35 @@ void test_lab_can_move_at_1_1_direction_N_target_SOLUTION_expected_1(void) free(field); } +void test_lab_can_move_at_1_1_direction_E_target_SOLUTION_expected_1(void) +{ + /* arrange */ + unsigned short x = 1; + unsigned short y = 1; + unsigned short x_target = 1; + unsigned short y_target = 2; + Direction direction = E; + short expected = 1; + short actual; + unsigned short len_x = 3, len_y = 3; + Field_State **field; + + field = malloc(len_x * sizeof *field); + for (int c_index = 0; c_index < len_x; c_index++){ + field[c_index] = malloc(len_y * sizeof field[c_index]); + } + field[x_target][y_target] = SOLUTION; + + /* act */ + actual = lab_can_move(field, x, y, direction, len_x, len_y); + + /* assert */ + TEST_ASSERT_EQUAL_INT8(expected, actual); + + for (int c_index = 0; c_index < len_x; c_index++) + { + free(field[c_index]); + } + free(field); +} +