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.

65 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 "Koenig.h"
  8. #include "Schachbrett.h"
  9. char** ErstelleTestBrett() {
  10. char** Brett = malloc(8 * sizeof(char*));
  11. for (int i = 0; i < 8; i++) {
  12. Brett[i] = malloc(8 * sizeof(char));
  13. for (int j = 0; j < 8; j++) {
  14. Brett[i][j] = ' '; //Erstelle komplett leeres Brett
  15. }
  16. }
  17. return Brett;
  18. }
  19. void freeTestBrett(char** Brett) {
  20. for (int i = 0; i < 8; i++) {
  21. free(Brett[i]);
  22. }
  23. free(Brett);
  24. }
  25. void test_SchachDurchBauer(void) {
  26. char** Brett = ErstelleTestBrett();
  27. Brett[4][4] = 'K';
  28. Brett[5][5] = 'p';
  29. TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_WHITE));
  30. freeTestBrett(Brett);
  31. Brett = ErstelleTestBrett();
  32. Brett[3][3] = 'k';
  33. Brett[2][2] = 'P';
  34. TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_BLACK));
  35. freeTestBrett(Brett);
  36. Brett = ErstelleTestBrett();
  37. Brett[3][3] = 'k';
  38. Brett[2][4] = 'P';
  39. TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_BLACK));
  40. freeTestBrett(Brett);
  41. Brett = ErstelleTestBrett();
  42. Brett[4][4] = 'K';
  43. Brett[3][4] = 'P';
  44. TEST_ASSERT_FALSE(istKoenigImSchach(Brett, PLAYER_WHITE));
  45. freeTestBrett(Brett);
  46. Brett = ErstelleTestBrett();
  47. Brett[3][3] = 'k';
  48. Brett[1][3] = 'P';
  49. TEST_ASSERT_FALSE(istKoenigImSchach(Brett, PLAYER_BLACK));
  50. freeTestBrett(Brett);
  51. }
  52. #endif // TEST