From e7358b2c6fed9982cab4a3d680b33afdc057ea96 Mon Sep 17 00:00:00 2001 From: Thomas Rauh Desktop Date: Sun, 23 Nov 2025 12:09:33 +0100 Subject: [PATCH] numbers + Test --- Start_Windows/makefile | 2 + Start_Windows/numbers.c | 38 ++++++++++++++- Start_Windows/numbers.o | Bin 0 -> 1728 bytes Start_Windows/numbersTests.c | 77 ++++++++++++++++++++++++++++++ Start_Windows/runNumbersTests.exe | Bin 0 -> 80707 bytes 5 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 Start_Windows/numbers.o create mode 100644 Start_Windows/numbersTests.c create mode 100644 Start_Windows/runNumbersTests.exe diff --git a/Start_Windows/makefile b/Start_Windows/makefile index 0965468..731de88 100644 --- a/Start_Windows/makefile +++ b/Start_Windows/makefile @@ -32,6 +32,8 @@ stackTests: stack.o stackTests.c $(unityfolder)/unity.c bintreeTests: stack.o bintree.o bintreeTests.c $(unityfolder)/unity.c $(CC) $(CFLAGS) -I$(unityfolder) -o runBintreeTests bintreeTests.c stack.o bintree.o $(unityfolder)/unity.c +numbersTests: stack.o bintree.o numbers.o numbersTests.c $(unityfolder)/unity.c + $(CC) $(CFLAGS) -I$(unityfolder) -o runNumbersTests numbersTests.c stack.o bintree.o numbers.o $(unityfolder)/unity.c # -------------------------- # Clean diff --git a/Start_Windows/numbers.c b/Start_Windows/numbers.c index f59d9a2..1373833 100644 --- a/Start_Windows/numbers.c +++ b/Start_Windows/numbers.c @@ -10,13 +10,49 @@ * Sicherstellen, dass beim Befüllen keine Duplikate entstehen. * Duplizieren eines zufälligen Eintrags im Array. * in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */ - + int compareInt(const void *arg1, const void *arg2) { + int a = *(const int *)arg1; + int b = *(const int *)arg2; + return a - b; +} // Returns len random numbers between 1 and 2x len in random order which are all different, except for two entries. // Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while // creating random numbers. unsigned int *createNumbers(unsigned int len) { + unsigned int *numbers = malloc(sizeof(int)*len); + unsigned int *arrayNoDup = malloc(sizeof(int)*len); + unsigned int dupNumber; + int dupLocation; + if(!numbers){ + return NULL; + } + TreeNode *tree = NULL; + int isDuplicate = 0; + int gespeichert = 0; + srand(time(NULL)); + while(gespeichert <)QUln$$({o;M%%17AYv8cQB|s* zH&tk1rAl&_){%1f5pJ69NDWkWq&;J)U6W&Y=t|@>ruzlO$h2QazvBr^b;-i zt|1f7R-r|=!>{gsM}6$Lrj}LaJcro=YJ(Q1_NY49FH9D@+_1+OJ_$Ind2+~cZ*3#T z6{I=@;R{tp3)UZQb+5hywtf(G3+zSORLlB?$A4hI4cl>;GTzpK&NetX9!S#uj#R@l z9;z^DQth#{zaqkVCL0De&~5H^hE>Y!YCS4{^xXI=cjN3=z$k0M1E35VF04l}fTgR@ z{|78cHOLYU!gsH}fdqkGh4Rj|$_urHcTk$$E|p4*i*>q&IhKJ3rsEz9{?fvn!)YKw zZegY%xZ<0{_loNf{Ac(N;`#(eKj4Y+@khcy{=sNybi|WRWn+0yR(|El$Zx%a!qZ$V zt_br>!c;6d@xp^@G%KVtsn>Euxh>qiCk~5V2x5_|fG@+~$O6p0I$AQ(S3p;E+YgwL z%Mk(I<24;gfDBvKMBpG7VX(k#BNw19-G-SNUfx8wr{Tq14ew1838ojbH@pKT!j52k zD=x(1GH57&n}jSf$y{Py&Sb@iVT4(UCE66i5P`68>Q2%PMyv&L;Mzg1!@!E1TJQ{5 z7sF!hkQkI@uwIz=saU%sM(wn_wKHO4>d3KlMZ9B{!CSD4wIe#g#WGlSynVaeZ>iYx zS!UesY-v7=)j<;BcsylZDc(;u6HZ1=4q9vm^A4wNoR^@98SLBr%gf6ol1ik*8TnaK tA(4z6R^(};dSp>n{JC^I76F^}gHR}zNQXjL($NtTjz(uvGZ|SX{{TppQU?G4 literal 0 HcmV?d00001 diff --git a/Start_Windows/numbersTests.c b/Start_Windows/numbersTests.c new file mode 100644 index 0000000..d610ab1 --- /dev/null +++ b/Start_Windows/numbersTests.c @@ -0,0 +1,77 @@ +#include +#include +#include +#include +#include "unity.h" +#include "numbers.h" +/* +int compareInt(const void *arg1, const void *arg2) { + int a = *(const int *)arg1; + int b = *(const int *)arg2; + return a - b; +} +int compareString(const void *arg1, const void *arg2) { + const char *str1 = (const char *)arg1; + const char *str2 = (const char *)arg2; + return strcmp(str1, str2); +}*/ + + + + +static void testCreateNumbersNotNull() { + unsigned int len = 10; + unsigned int *nums = createNumbers(len); + TEST_ASSERT_NOT_NULL(nums); + free(nums); +} + +static void testCreateNumbersLength() { + unsigned int len = 20; + unsigned int *nums = createNumbers(len); + TEST_ASSERT_NOT_NULL(nums); + for (unsigned int i = 0; i < len; i++) { + TEST_ASSERT_INT_WITHIN(len * 2, 0, nums[i]); // Überprüft, ob werte zwischen 0 und len*2 liegen + } + free(nums); +} + +static void testCreateNumbersContainsDuplicate() { + unsigned int len = 30; + unsigned int *nums = createNumbers(len); + + int duplicate = 0; + for (unsigned int i = 0; i < len; i++) { + for (unsigned int ii = i + 1; ii < len; ii++) { + if (nums[i] == nums[ii]) { + duplicate ++; + break; + } + } + } + TEST_ASSERT_EQUAL_INT(1,duplicate); + free(nums); +} + + + +void setUp(void){ + +} +void tearDown(void){ + +} + + + +int main(){ + UNITY_BEGIN(); + printf("\n============================\nNumber tests\n============================\n"); + + RUN_TEST(testCreateNumbersNotNull); + RUN_TEST(testCreateNumbersLength); + RUN_TEST(testCreateNumbersContainsDuplicate); + + + return UNITY_END(); +} \ No newline at end of file diff --git a/Start_Windows/runNumbersTests.exe b/Start_Windows/runNumbersTests.exe new file mode 100644 index 0000000000000000000000000000000000000000..2a4b1c778c4a453048f39dbe3e5973bcf04f5612 GIT binary patch literal 80707 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 z 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 literal 0 HcmV?d00001