You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.5 KiB

  1. #ifdef TEST
  2. #include "unity.h"
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <stdbool.h>
  6. #include "Spieler.h"
  7. #include "Schachbrett.h"
  8. #include "Koenig.h"
  9. void test_istzugerlaubt_Koenig_LegalMoves(void) {
  10. char **Brett = Schachbrett_erstellen();
  11. Player player = PLAYER_WHITE;
  12. //Vorbereitung für Test
  13. Brett[1][4] = ' ';
  14. Brett[2][4] = 'p';
  15. // Test bewegung
  16. TEST_ASSERT_TRUE(istzugerlaubt_Koenig(Brett, 4, 0, 4, 1, player)); // e1 zu e2
  17. TEST_ASSERT_TRUE(istzugerlaubt_Koenig(Brett, 4, 1, 4, 2, player)); // e2 zu e3 (Einnehmen von Figur)
  18. Schachbrettspeicher_freigeben(Brett);
  19. Brett = Schachbrett_erstellen();
  20. player = PLAYER_BLACK;
  21. //Vorbereitung für Test
  22. Brett[6][4] = ' ';
  23. Brett[5][4] = 'P';
  24. // Test bewegung
  25. TEST_ASSERT_TRUE(istzugerlaubt_Koenig(Brett, 4, 7, 4, 6, player)); // e8 zu e7
  26. TEST_ASSERT_TRUE(istzugerlaubt_Koenig(Brett, 4, 6, 4, 5, player)); // e7 zu e6 (Einnehmen von Figur)
  27. Schachbrettspeicher_freigeben(Brett);
  28. }
  29. void test_istzugerlaubt_Koenig_IllegalMoves(void) {
  30. char **Brett = Schachbrett_erstellen();
  31. Player player = PLAYER_WHITE;
  32. // Illegaler zug: König versucht sich 2 Felder zu bewegen
  33. TEST_ASSERT_FALSE(istzugerlaubt_Koenig(Brett, 4, 0, 4, 2, player));
  34. // Illegaler zug: König versucht sich auf besetztes Feld zu bewegen
  35. TEST_ASSERT_FALSE(istzugerlaubt_Koenig(Brett, 4, 0, 3, 1, player));
  36. Schachbrettspeicher_freigeben(Brett);
  37. }
  38. #endif // TEST