From 28e76fdbb7bd50b38ec61506db834b56acf23fbf Mon Sep 17 00:00:00 2001 From: "L. H." Date: Wed, 3 Dec 2025 20:50:52 +0100 Subject: [PATCH] =?UTF-8?q?=C3=9Cberarbeitung=20von=20test=5Fnumbers.c=20u?= =?UTF-8?q?nd=20testen=20der=20Unit-Tests=20(3=20mal=20PASS)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test__numbers.c | 75 ++++++++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 32 deletions(-) diff --git a/test__numbers.c b/test__numbers.c index f8df0f8..0250ac9 100644 --- a/test__numbers.c +++ b/test__numbers.c @@ -1,67 +1,78 @@ #include #include -#include #include "unity/unity.h" #include "numbers.h" +static unsigned int count_number_occurrence(const unsigned int *arr, unsigned int len, unsigned int value) +{ + unsigned int count = 0; + for (unsigned int i = 0; i < len; i++) + { + if (arr[i] == value) + count++; + } + return count; +} + void test_length_and_duplicate() { setSeed(1); unsigned int len = 10; unsigned int *test_numbers = createNumbers(len); - if (test_numbers == NULL) - { - return; - } - - /* - setSeed(1); - unsigned int len = 10; - unsigned int *test_numbers = createNumbers(len); - - if (test_numbers == NULL) - { - return; - } - - unsigned int expected[10] = {20, 8, 13, 19, 17, 16, 12, 0, 15, 14}; + TEST_ASSERT_NOT_NULL(test_numbers); + //Bereich checken: for (unsigned int i = 0; i < len; i++) { - if (test_numbers[i] != expected[i]) - { - free(test_numbers); - return; - } + TEST_ASSERT_TRUE(test_numbers[i] >= 1); + TEST_ASSERT_TRUE(test_numbers[i] <= len * 2); + } + + //Prüfen, ob genau 1 Wert doppelt vorkommt: + unsigned int duplicate = getDuplicate(test_numbers, len); + TEST_ASSERT_NOT_EQUAL(0, duplicate); + + unsigned int occurrences = count_number_occurrence(test_numbers, len, duplicate); + TEST_ASSERT_EQUAL_UINT(2, occurrences); + + //Prüfen, ob alle anderen Werte nur einmal vorkommen: + for (unsigned int i = 1; i <= len * 2; i++) + { + if (i == duplicate) + continue; + + unsigned int c = count_number_occurrence(test_numbers, len, i); + TEST_ASSERT_TRUE(c <= 1); //Keine Zahl darf doppelt vorkommen. } free(test_numbers); - */ } void test_duplicate_value() { unsigned int test_numbers[6] = {1, 2, 3, 4, 5, 5}; - unsigned int dupli = 0; + unsigned int duplicate = 0; - dupli = getDuplicate(test_numbers, 6); - - TEST_ASSERT_EQUAL(5, dupli); + duplicate = getDuplicate(test_numbers, 6); + TEST_ASSERT_EQUAL(5, duplicate); } void test_duplicate_value_if_false() { unsigned int test_numbers[6] = {1, 2, 3, 4, 5, 6}; - unsigned int dupli = 0; + unsigned int duplicate = 0; - dupli = getDuplicate(test_numbers, 6); - - TEST_ASSERT_EQUAL(0, dupli); + duplicate = getDuplicate(test_numbers, 6); + TEST_ASSERT_EQUAL(0, duplicate); } +void setUp(void) {} + +void tearDown(void) {} + int main(void) { UNITY_BEGIN(); @@ -70,4 +81,4 @@ int main(void) RUN_TEST(test_duplicate_value); RUN_TEST(test_duplicate_value_if_false); return UNITY_END(); -} +} \ No newline at end of file