#ifdef TEST #include "unity.h" #include #include "Historie.h" #include "Spieler.h" #include "Speichern.h" void test_speichern_spielstand_historie(void) { // Annahme: Historie mit einigen Zügen ist bereits vorhanden int** historie; int anzahl_zuege = 3; historie = erstellen_historie(); //Test-Daten historie[0][0] = 1; historie[0][1] = 2; historie[0][2] = 3; historie[0][3] = 4; historie[0][4] = 0; // Beispielzug 1 historie[1][0] = 5; historie[1][1] = 6; historie[1][2] = 7; historie[1][3] = 8; historie[1][4] = 1; // Beispielzug 2 historie[2][0] = 9; historie[2][1] = 10; historie[2][2] = 11; historie[2][3] = 12; historie[2][4] = 0; // Beispielzug 3 // Teste die Funktion zum Speichern des Spielstands const char* test_dateiname = "test_spielstand.dat"; speichern_spielstand_historie(historie, anzahl_zuege, test_dateiname); // Lese die gespeicherte Historie zurück int** geladene_historie; int geladene_anzahl_zuege; laden_spielstand_historie(&geladene_historie, &geladene_anzahl_zuege, test_dateiname); // Überprüfe, ob die geladene Historie mit der ursprünglichen Historie identisch ist TEST_ASSERT_EQUAL_INT_MESSAGE(anzahl_zuege, geladene_anzahl_zuege, "Anzahl der Züge stimmt nicht überein"); for (int i = 0; i <= anzahl_zuege; i++) { TEST_ASSERT_EQUAL_INT_ARRAY_MESSAGE(historie[i], geladene_historie[i], 5, "Zuginformationen stimmen nicht überein"); } // Freigabe des Speichers for (int i = 0; i <= anzahl_zuege; i++) { free(historie[i]); free(geladene_historie[i]); } free(historie); free(geladene_historie); } #endif // TEST