Browse Source

lab_can_move direction E WALL heading WALL

remotes/origin/Joe
Joe Lukas Kalb 11 months ago
parent
commit
1e36e6b4c1
  1. 3
      src/main/c/labyrinth.c
  2. 34
      src/test/c/test_labyrinth.c

3
src/main/c/labyrinth.c

@ -67,6 +67,9 @@ short lab_can_move(Field_State** field, unsigned short x, unsigned short y, Dire
if (direction == N && field[x][y] == WALL){ if (direction == N && field[x][y] == WALL){
return 1; return 1;
} }
if (direction == E && field[x][y] == WALL){
return 1;
}
return 0; return 0;
} }

34
src/test/c/test_labyrinth.c

@ -508,6 +508,40 @@ void test_lab_can_move_at_1_1_direction_N_target_WALL_expected_1(void)
free(field); free(field);
} }
void test_lab_can_move_at_1_1_direction_E_target_WALL_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] = WALL;
/* 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);
}

Loading…
Cancel
Save