From c0343cbf967c78d0b570a3da44d8169b3923f33d Mon Sep 17 00:00:00 2001 From: fdai7492 Date: Mon, 5 Feb 2024 03:23:37 +0000 Subject: [PATCH] restliche Tests, Anton Lohrey --- test/test_imSchachstehen.c | 88 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/test/test_imSchachstehen.c b/test/test_imSchachstehen.c index 424c1fd..ec73e89 100644 --- a/test/test_imSchachstehen.c +++ b/test/test_imSchachstehen.c @@ -151,4 +151,92 @@ void test_SchachDurchSpringer(void) { freeTestBrett(Brett); } +void test_SchachDurchLaeufer(void) { + char** Brett = ErstelleTestBrett(); + + // Weißer König wird von schwarzen Läufer bedroht + Brett[4][4] = 'K'; + Brett[2][2] = 'b'; + TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_WHITE)); + + freeTestBrett(Brett); + Brett = ErstelleTestBrett(); + + // Schwarzer König wird von weißen Läufer bedroht + Brett[3][3] = 'k'; + Brett[6][0] = 'B'; + TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_BLACK)); + + freeTestBrett(Brett); + Brett = ErstelleTestBrett(); + + // Weißer König wird nicht bedroht + Brett[4][4] = 'K'; + Brett[6][7] = 'b'; + TEST_ASSERT_FALSE(istKoenigImSchach(Brett, PLAYER_WHITE)); + + freeTestBrett(Brett); + Brett = ErstelleTestBrett(); + + // Schwarzer König wird von mehreren Läufer bedroht + Brett[4][4] = 'k'; + Brett[6][6] = 'B'; + Brett[0][0] = 'B'; + TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_BLACK)); + + freeTestBrett(Brett); + Brett = ErstelleTestBrett(); + + // Schwarzer könig nicht in gefahr weil Läufer blockiert wird + Brett[0][0] = 'k'; + Brett[2][2] = 'P'; + Brett[4][4] = 'B'; + TEST_ASSERT_FALSE(istKoenigImSchach(Brett, PLAYER_BLACK)); + + freeTestBrett(Brett); +} +void test_SchachDurchDame(void) { + char** Brett = ErstelleTestBrett(); + + // Weißer könig wird von schwarzer Dame bedroht (Horizontal) + Brett[4][4] = 'K'; + Brett[4][7] = 'q'; + TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_WHITE)); + + freeTestBrett(Brett); + Brett = ErstelleTestBrett(); + + // Schwarzer könig wird von weißer Dame bedroht (Vertikal) + Brett[3][3] = 'k'; + Brett[0][3] = 'Q'; + TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_BLACK)); + + freeTestBrett(Brett); + Brett = ErstelleTestBrett(); + + // Weißer könig wird nicht von schwarzer Dame bedroht aufgrund blockierender Figur + Brett[4][4] = 'K'; + Brett[4][2] = 'p'; + Brett[4][0] = 'q'; + TEST_ASSERT_FALSE(istKoenigImSchach(Brett, PLAYER_WHITE)); + + freeTestBrett(Brett); + Brett = ErstelleTestBrett(); + + // Schwarzer könig wird von weißer Dame bedroht (Diagonal) + Brett[0][0] = 'k'; + Brett[7][7] = 'Q'; + TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_BLACK)); + + freeTestBrett(Brett); + Brett = ErstelleTestBrett(); + + // Schwarzer könig wird nicht von weißer Dame bedroht aufgrund blockierender Figur + Brett[7][7] = 'k'; + Brett[5][5] = 'P'; + Brett[3][3] = 'Q'; + TEST_ASSERT_FALSE(istKoenigImSchach(Brett, PLAYER_BLACK)); + + freeTestBrett(Brett); +} #endif // TEST