62 lines
1.4 KiB
C
62 lines
1.4 KiB
C
#include "unity.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#include "numbers.h"
|
|
|
|
#define TEST_ARRAY_LEN 100
|
|
|
|
void test_createNumbers_length(void) {
|
|
unsigned int *arr = createNumbers(TEST_ARRAY_LEN);
|
|
TEST_ASSERT_NOT_NULL(arr);
|
|
free(arr);
|
|
}
|
|
|
|
void test_createNumbers_single_duplicate(void) {
|
|
unsigned int *arr = createNumbers(TEST_ARRAY_LEN);
|
|
TEST_ASSERT_NOT_NULL(arr);
|
|
|
|
unsigned int duplicate = getDuplicate(arr, TEST_ARRAY_LEN);
|
|
TEST_ASSERT_TRUE(duplicate > 0);
|
|
|
|
unsigned int count = 0;
|
|
for (unsigned int i = 0; i < TEST_ARRAY_LEN; i++) {
|
|
if (arr[i] == duplicate) {
|
|
count++;
|
|
}
|
|
}
|
|
TEST_ASSERT_EQUAL_UINT(2, count);
|
|
|
|
free(arr);
|
|
}
|
|
|
|
void test_getDuplicate_manual_array(void) {
|
|
unsigned int numbers[5] = {10, 20, 30, 40, 20};
|
|
unsigned int dup = getDuplicate(numbers, 5);
|
|
TEST_ASSERT_EQUAL_UINT(20, dup);
|
|
}
|
|
|
|
void test_getDuplicate_invalid_input(void) {
|
|
TEST_ASSERT_EQUAL_UINT(0, getDuplicate(NULL, 5));
|
|
unsigned int arr[1] = {42};
|
|
TEST_ASSERT_EQUAL_UINT(0, getDuplicate(arr, 1));
|
|
}
|
|
|
|
void setUp(void) {}
|
|
void tearDown(void) {}
|
|
|
|
int main(void) {
|
|
|
|
UNITY_BEGIN();
|
|
|
|
printf("\n------------------------numbers test------------------------\n\n");
|
|
|
|
RUN_TEST(test_createNumbers_length);
|
|
RUN_TEST(test_createNumbers_single_duplicate);
|
|
RUN_TEST(test_getDuplicate_manual_array);
|
|
RUN_TEST(test_getDuplicate_invalid_input);
|
|
|
|
return UNITY_END();
|
|
}
|