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.

171 lines
4.0 KiB

  1. #ifdef TEST
  2. #include "unity.h"
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <stdbool.h>
  6. #include "Spielstatus.h"
  7. #include "Moving.h"
  8. #include "Spieler.h"
  9. #include "Bauer.h"
  10. #include "Turm.h"
  11. #include "Springer.h"
  12. #include "Koenig.h"
  13. #include "Dame.h"
  14. #include "Laeufer.h"
  15. #include "Historie.h"
  16. #include "Input.h"
  17. #include "Bauernumwandlung.h"
  18. #include "En_Passaut.h"
  19. #include "Misc.h"
  20. #include "Schachbrett.h"
  21. #include "Speichern.h"
  22. #include "Tutorial.h"
  23. void setUp(void) {
  24. }
  25. void tearDown(void) {
  26. }
  27. void test_Bauern_bewegen(void) {
  28. char** brett = Schachbrett_erstellen();
  29. int startX = 0;
  30. int startY = 1;
  31. int endX = 0;
  32. int endY = 2;
  33. Player player = PLAYER_WHITE;
  34. int ** Historie = erstellen_historie();
  35. int anzahl_Zuege = 1;
  36. TEST_ASSERT_NOT_NULL(brett);
  37. machezug(brett,startX,startY,endX,endY,player,anzahl_Zuege,Historie);
  38. TEST_ASSERT_TRUE(istzugerlaubt_Bauer(brett,startX,startY,endX,endY,player));
  39. print_Schachfeld(brett);
  40. TEST_ASSERT_EQUAL('P', brett[1][0]);
  41. TEST_ASSERT_EQUAL(' ', brett[2][0]);
  42. for (int i = 0; i < 8; i++) {
  43. free(brett[i]);
  44. }
  45. free(brett);
  46. }
  47. void test_istzugerlaubt_Koenig_Verknuepfung(void) {
  48. char **Brett = Schachbrett_erstellen();
  49. Player player = PLAYER_WHITE;
  50. int ** Historie = erstellen_historie();
  51. int anzahl_Zuege = 1;
  52. //Vorbereitung für Test
  53. Brett[1][4] = ' ';
  54. Brett[2][4] = 'p';
  55. // Test bewegung
  56. TEST_ASSERT_TRUE(istzugerlaubt(Brett, 4, 0, 4, 1, player,anzahl_Zuege,Historie)); // e1 zu e2
  57. TEST_ASSERT_TRUE(istzugerlaubt(Brett, 4, 1, 4, 2, player,anzahl_Zuege,Historie)); // e2 zu e3 (Einnehmen von Figur)
  58. Schachbrettspeicher_freigeben(Brett);
  59. Brett = Schachbrett_erstellen();
  60. player = PLAYER_BLACK;
  61. //Vorbereitung für Test
  62. Brett[6][4] = ' ';
  63. Brett[5][4] = 'P';
  64. // Test bewegung
  65. TEST_ASSERT_TRUE(istzugerlaubt(Brett, 4, 7, 4, 6, player,anzahl_Zuege,Historie)); // e8 zu e7
  66. TEST_ASSERT_TRUE(istzugerlaubt(Brett, 4, 6, 4, 5, player,anzahl_Zuege,Historie)); // e7 zu e6 (Einnehmen von Figur)
  67. Schachbrettspeicher_freigeben(Brett);
  68. }
  69. /*
  70. void test_Bauer_Y_Verknuepfung_Bewegung(void) {
  71. char** brett = Schachbrett_erstellen();
  72. int startX = 1;
  73. int startY = 1;
  74. int endX = 1;
  75. int endY = 2;
  76. Player player = PLAYER_WHITE;
  77. TEST_ASSERT_NOT_NULL(brett);
  78. TEST_ASSERT_TRUE(istzugerlaubt( brett, startX, startY, endX, endY, player));
  79. for (int i = 0; i < 8; i++) {
  80. free(brett[i]);
  81. }
  82. free(brett);
  83. }
  84. */
  85. void test_istzugerlaubt_Springer_Verknuepfung(void) {
  86. char **Brett = Schachbrett_erstellen();
  87. int ** Historie = erstellen_historie();
  88. int anzahl_Zuege = 1;
  89. // Viele Test um legale Züge zu prüfen
  90. TEST_ASSERT_TRUE(istzugerlaubt(Brett, 1, 0, 0, 2, PLAYER_WHITE,anzahl_Zuege,Historie));
  91. TEST_ASSERT_TRUE(istzugerlaubt(Brett, 4, 3, 6, 2, PLAYER_BLACK,anzahl_Zuege,Historie));
  92. Schachbrettspeicher_freigeben(Brett);
  93. }
  94. void test_istzugerlaubt(void){
  95. char** brett = Schachbrett_erstellen();
  96. int startX = 1;
  97. int startY = 1;
  98. int endX = 1;
  99. int endY = 1;
  100. Player player = PLAYER_WHITE;
  101. int ** Historie = erstellen_historie();
  102. int anzahl_Zuege = 1;
  103. //istzugerlaubt(brett,startX,startY,endX,endY,player);
  104. TEST_ASSERT_FALSE(istzugerlaubt(brett,startX,startY,endX,endY,player,anzahl_Zuege,Historie));
  105. for (int i = 0; i < 8; i++) {
  106. free(brett[i]);
  107. }
  108. free(brett);
  109. }
  110. void test_istzugerlaubt_Turm(void){
  111. char** brett = Schachbrett_erstellen();
  112. int startX = 0;
  113. int startY = 4;
  114. int endX = 0;
  115. int endY = 2;
  116. Player player = PLAYER_WHITE;
  117. int ** Historie = erstellen_historie();
  118. int anzahl_Zuege = 1;
  119. TEST_ASSERT_NOT_NULL(brett);
  120. brett[4][0] = 'r';
  121. print_Schachfeld(brett);
  122. TEST_ASSERT_TRUE(istzugerlaubt(brett, startX, startY, endX, endY, player,anzahl_Zuege,Historie));
  123. for (int i = 0; i < 8; i++) {
  124. free(brett[i]);
  125. }
  126. free(brett);
  127. }
  128. #endif // TEST