generated from freudenreichan/info2Praktikum-DobleSpiel
62 lines
1.5 KiB
C
62 lines
1.5 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <assert.h>
|
|
#include "numbers.h"
|
|
|
|
void test_create_numbers() {
|
|
printf("Teste createNumbers...\n");
|
|
unsigned int len = 100;
|
|
unsigned int *nums = createNumbers(len);
|
|
|
|
assert(nums != NULL);
|
|
|
|
// Prüfen, ob genau ein Duplikat vorhanden ist
|
|
int duplicates = 0;
|
|
for (unsigned int i = 0; i < len; i++) {
|
|
for (unsigned int j = i + 1; j < len; j++) {
|
|
if (nums[i] == nums[j]) {
|
|
duplicates++;
|
|
}
|
|
}
|
|
}
|
|
// Es darf genau ein Paar geben, also duplicates == 1
|
|
if (duplicates != 1) {
|
|
printf("FEHLER: Erwartet wurde genau 1 Duplikat, gefunden wurden %d.\n", duplicates);
|
|
}
|
|
assert(duplicates == 1);
|
|
|
|
free(nums);
|
|
printf("createNumbers erfolgreich.\n");
|
|
}
|
|
|
|
void test_get_duplicate() {
|
|
printf("Teste getDuplicate...\n");
|
|
|
|
// Testfall 1: 3 ist doppelt
|
|
unsigned int arr[] = {1, 5, 8, 3, 9, 3, 2};
|
|
unsigned int len = sizeof(arr) / sizeof(arr[0]);
|
|
|
|
unsigned int dup = getDuplicate(arr, len);
|
|
if (dup != 3) {
|
|
printf("FEHLER: Erwartet 3, erhalten %u\n", dup);
|
|
}
|
|
assert(dup == 3);
|
|
|
|
// Testfall 2: 40 ist doppelt
|
|
unsigned int arr2[] = {10, 20, 30, 40, 40};
|
|
unsigned int len2 = sizeof(arr2) / sizeof(arr2[0]);
|
|
|
|
dup = getDuplicate(arr2, len2);
|
|
if (dup != 40) {
|
|
printf("FEHLER: Erwartet 40, erhalten %u\n", dup);
|
|
}
|
|
assert(dup == 40);
|
|
|
|
printf("getDuplicate erfolgreich.\n");
|
|
}
|
|
|
|
int main() {
|
|
test_create_numbers();
|
|
test_get_duplicate();
|
|
return 0;
|
|
} |