diff --git a/.gitignore b/.gitignore index 6f8aeee..fc53910 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ doble_initial.exe highscores.txt runStackTest.exe stack.o +runNumbersTest.exe +numbers.o +.vscode/launch.json +.vscode/settings.json diff --git a/numbers.c b/numbers.c index 7adf6bd..cd016a4 100644 --- a/numbers.c +++ b/numbers.c @@ -32,19 +32,33 @@ unsigned int checkArray(unsigned int *array, unsigned int len, unsigned int numb unsigned int *createNumbers(unsigned int len) { srand(time(NULL)); - unsigned int array[len]; - unsigned int randomNr; + unsigned int *array = (unsigned int*)malloc(len * sizeof(unsigned int)); + int randomNr, counter; + + if(array == NULL) + { + return NULL; + } for (int i = 0; i < len; i++) { + counter = 0; do { - randomNr = rand() % 2 * len + 1; + if (counter == 9) + { + return NULL; + } + + randomNr = rand() % (2 * len + 1); + counter++; } while (!checkArray(array, i, randomNr)); array[i] = randomNr; + printf("%u ", array[i]); } + printf("\n"); return array; } diff --git a/numbers.o b/numbers.o index 507642a..2b1174a 100644 Binary files a/numbers.o and b/numbers.o differ diff --git a/runNumbersTest.exe b/runNumbersTest.exe index e9feb27..7536779 100644 Binary files a/runNumbersTest.exe and b/runNumbersTest.exe differ diff --git a/test_numbers.c b/test_numbers.c index ae339ad..04b5069 100644 --- a/test_numbers.c +++ b/test_numbers.c @@ -3,6 +3,20 @@ #include "numbers.h" #include "unity.h" +void createNumbersTest() +{ + unsigned int *array; + unsigned int len = 6; + + array = createNumbers(len); + for (int i = 0; i < len; i++) + { + printf("%u ", array[i]); + } + printf("\n"); + TEST_ASSERT_NOT_NULL(array); +} + void duplicateTest() { unsigned int array[6] = {1, 4, 5, 2, 3, 1}; @@ -26,7 +40,7 @@ int main() UNITY_BEGIN(); printf("============================\nNumbers tests\n============================\n"); - + RUN_TEST(createNumbersTest); RUN_TEST(duplicateTest); return UNITY_END();