63 lines
1.3 KiB
C
63 lines
1.3 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
#include "numbers.h"
|
|
#include "unity/unity.h"
|
|
|
|
|
|
void setUp(void) {
|
|
// gehört zu unit-Grundaufbau
|
|
}
|
|
|
|
void tearDown(void) {
|
|
// gehört zu unit-Grundaufbau
|
|
}
|
|
|
|
// Testet, ob createNumbers ein gültiges Array erzeugt
|
|
// und genau ein Duplikat enthalten ist
|
|
void test_createNumbers_basic(void)
|
|
{
|
|
unsigned int len = 10;
|
|
unsigned int *numbers = createNumbers(len);
|
|
|
|
// Array muss existieren
|
|
TEST_ASSERT_NOT_NULL(numbers);
|
|
|
|
// Es muss genau EIN Duplikat geben
|
|
unsigned int duplicate = getDuplicate(numbers, len);
|
|
TEST_ASSERT_NOT_EQUAL(0, duplicate);
|
|
|
|
free(numbers);
|
|
}
|
|
|
|
/// Testet, ob getDuplicate die korrekte doppelte Zahl erkennt
|
|
|
|
void test_getDuplicate_correctValue(void)
|
|
{
|
|
unsigned int numbers[] = {1, 3, 5, 7, 3};
|
|
unsigned int len = 5;
|
|
|
|
unsigned int dup = getDuplicate(numbers, len);
|
|
|
|
TEST_ASSERT_EQUAL(3, dup);
|
|
}
|
|
|
|
// Testet Fehlerfälle von getDuplicate
|
|
static void test_getDuplicate_errors(void)
|
|
{
|
|
TEST_ASSERT_EQUAL_UINT(0, getDuplicate(NULL, 10));
|
|
TEST_ASSERT_EQUAL_UINT(0, getDuplicate((unsigned int*)1, 1)); // len < 2
|
|
}
|
|
|
|
// Testbereich
|
|
int main(void)
|
|
{
|
|
UNITY_BEGIN();
|
|
|
|
RUN_TEST(test_createNumbers_basic);
|
|
RUN_TEST(test_getDuplicate_correctValue);
|
|
RUN_TEST(test_getDuplicate_errors);
|
|
|
|
return UNITY_END();
|
|
} |