generated from freudenreichan/info2Praktikum-DobleSpiel
85 lines
2.0 KiB
C
85 lines
2.0 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include "unity.h"
|
|
#include "numbers.h"
|
|
|
|
void test_getDuplicateReturnsDuplicateFromUnsortedArray(void)
|
|
{
|
|
unsigned int numbers[] = {8, 3, 12, 5, 3, 20};
|
|
|
|
TEST_ASSERT_EQUAL_UINT32(3, getDuplicate(numbers, 6));
|
|
}
|
|
|
|
void test_getDuplicateReturnsZeroForNullArray(void)
|
|
{
|
|
TEST_ASSERT_EQUAL_UINT32(0, getDuplicate(NULL, 5));
|
|
}
|
|
|
|
void test_getDuplicateReturnsZeroIfThereIsNoDuplicate(void)
|
|
{
|
|
unsigned int numbers[] = {1, 2, 3, 4, 5};
|
|
|
|
TEST_ASSERT_EQUAL_UINT32(0, getDuplicate(numbers, 5));
|
|
}
|
|
|
|
void test_getDuplicateDoesNotChangeOriginalArrayOrder(void)
|
|
{
|
|
unsigned int numbers[] = {9, 4, 7, 4, 2};
|
|
unsigned int expectedNumbers[] = {9, 4, 7, 4, 2};
|
|
|
|
TEST_ASSERT_EQUAL_UINT32(4, getDuplicate(numbers, 5));
|
|
TEST_ASSERT_EQUAL_UINT32_ARRAY(expectedNumbers, numbers, 5);
|
|
}
|
|
|
|
void test_createNumbersReturnsArrayWithCorrectDuplicate(void)
|
|
{
|
|
const unsigned int len = 20;
|
|
unsigned int *numbers = createNumbers(len);
|
|
unsigned int duplicate = 0;
|
|
unsigned int duplicateCount = 0;
|
|
|
|
TEST_ASSERT_NOT_NULL(numbers);
|
|
|
|
duplicate = getDuplicate(numbers, len);
|
|
TEST_ASSERT_NOT_EQUAL(0, duplicate);
|
|
|
|
for (unsigned int i = 0; i < len; i++)
|
|
{
|
|
if (numbers[i] == duplicate)
|
|
{
|
|
duplicateCount++;
|
|
}
|
|
}
|
|
|
|
TEST_ASSERT_EQUAL_UINT32(2, duplicateCount);
|
|
|
|
free(numbers);
|
|
}
|
|
|
|
void test_createNumbersReturnsNullForTooSmallLength(void)
|
|
{
|
|
TEST_ASSERT_NULL(createNumbers(1));
|
|
}
|
|
|
|
void setUp(void)
|
|
{
|
|
}
|
|
|
|
void tearDown(void)
|
|
{
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
UNITY_BEGIN();
|
|
|
|
printf("\n============================\nNumbers tests\n============================\n");
|
|
RUN_TEST(test_getDuplicateReturnsDuplicateFromUnsortedArray);
|
|
RUN_TEST(test_getDuplicateReturnsZeroForNullArray);
|
|
RUN_TEST(test_getDuplicateReturnsZeroIfThereIsNoDuplicate);
|
|
RUN_TEST(test_getDuplicateDoesNotChangeOriginalArrayOrder);
|
|
RUN_TEST(test_createNumbersReturnsArrayWithCorrectDuplicate);
|
|
RUN_TEST(test_createNumbersReturnsNullForTooSmallLength);
|
|
|
|
return UNITY_END();
|
|
} |