#include "unity.h" #include #include #include #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(); }