diff --git a/numbers.c b/numbers.c index f59d9a2..f615fcb 100644 --- a/numbers.c +++ b/numbers.c @@ -5,11 +5,13 @@ #include "numbers.h" #include "bintree.h" -//TODO: getDuplicate und createNumbers implementieren +unsigned int RANDOM_SEED = 0; + +// TODO: getDuplicate und createNumbers implementieren /* * * Erzeugen eines Arrays mit der vom Nutzer eingegebenen Anzahl an Zufallszahlen. - * 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. */ + * 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. */ // 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 @@ -17,10 +19,19 @@ unsigned int *createNumbers(unsigned int len) { + unsigned int *numbers = malloc(sizeof(unsigned int) * len); + + if (RANDOM_SEED == 0) + { + srand(time(NULL)); + } + else + { + srand(12345); + } } // Returns only the only number in numbers which is present twice. Returns zero on errors. unsigned int getDuplicate(const unsigned int numbers[], unsigned int len) { - -} \ No newline at end of file +} diff --git a/numbers.h b/numbers.h index 2315581..845bedb 100644 --- a/numbers.h +++ b/numbers.h @@ -1,10 +1,14 @@ #ifndef NUMBERS_H #define NUMBERS_H +extern unsigned int RANDOM_SEED; + // 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); +//funktion mit srand(time) // Returns only the only number in numbers which is present twice. Returns zero on errors. unsigned int getDuplicate(const unsigned int *numbers, unsigned int len); diff --git a/test__numbers.c b/test__numbers.c new file mode 100644 index 0000000..bc3e2ad --- /dev/null +++ b/test__numbers.c @@ -0,0 +1,37 @@ +#include +#include +#include +#include "numbers.h" + +void test_enough_numbers() { + unsigned int len = 20; + unsigned int *numbers = createNumbers(len); + + if(*numbers == NULL) + { + return; + } +} + + +void test_no_duplicates_except_one() { + +} + +void test_is_duplicated() { + +} + +int main(void) { + UNITY_BEGIN(); + + RUN_TEST(test_enough_numbers); + RUN_TEST(test_is_duplicated); + RUN_TEST(test_no_duplicates_except_one); + + int result = UNITY_END(); + print_test_result(result); + + return result; +} +