generated from freudenreichan/info2Praktikum-DobleSpiel
49 lines
1.0 KiB
C
49 lines
1.0 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include "numbers.h"
|
|
|
|
int main(void)
|
|
{
|
|
printf("=== TEST: createNumbers & getDuplicate ===\n");
|
|
|
|
unsigned int len = 20;
|
|
unsigned int *arr = createNumbers(len);
|
|
|
|
if (!arr)
|
|
{
|
|
printf("FAILED: createNumbers returned NULL\n");
|
|
return 1;
|
|
}
|
|
|
|
printf("Array created: ");
|
|
for (unsigned int i = 0; i < len; i++)
|
|
printf("%u ", arr[i]);
|
|
printf("\n");
|
|
|
|
unsigned int dup = getDuplicate(arr, len);
|
|
|
|
if (dup == 0)
|
|
{
|
|
printf("FAILED: getDuplicate returned 0 (no duplicate found)\n");
|
|
free(arr);
|
|
return 1;
|
|
}
|
|
|
|
// Count occurrences manually as safety check
|
|
unsigned int count = 0;
|
|
for (unsigned int i = 0; i < len; i++)
|
|
if (arr[i] == dup)
|
|
count++;
|
|
|
|
if (count != 2)
|
|
{
|
|
printf("FAILED: duplicate=%u occurs %u times (expected 2)\n", dup, count);
|
|
free(arr);
|
|
return 1;
|
|
}
|
|
|
|
printf("SUCCESS: duplicate number is %u and appears exactly twice.\n", dup);
|
|
|
|
free(arr);
|
|
return 0;
|
|
} |