generated from freudenreichan/info2Praktikum-DobleSpiel
anfang unit tests
This commit is contained in:
parent
231ff0dcbe
commit
adaf02803c
4
makefile
4
makefile
@ -35,8 +35,8 @@ $(program_obj_filesobj_files): %.o: %.c
|
|||||||
# --------------------------
|
# --------------------------
|
||||||
# Unit Tests
|
# Unit Tests
|
||||||
# --------------------------
|
# --------------------------
|
||||||
unitTests:
|
|
||||||
echo "needs to be implemented"
|
|
||||||
|
|
||||||
# --------------------------
|
# --------------------------
|
||||||
# Clean
|
# Clean
|
||||||
|
|||||||
35
numbers.c
35
numbers.c
@ -17,12 +17,13 @@ unsigned int RANDOM_SEED = 0;
|
|||||||
// Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while
|
// Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while
|
||||||
// creating random numbers.
|
// creating random numbers.
|
||||||
|
|
||||||
unsigned int setSeed(seed)
|
unsigned int setSeed(unsigned int seed)
|
||||||
{
|
{
|
||||||
RANDOM_SEED = seed;
|
RANDOM_SEED = seed;
|
||||||
|
return RANDOM_SEED;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int createchecknumber(unsigned int len, unsigned int *numbers)
|
void createchecknumber(unsigned int len, unsigned int numbers[])
|
||||||
{
|
{
|
||||||
for (unsigned int i = 0; i < len; i++)
|
for (unsigned int i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
@ -67,7 +68,7 @@ unsigned int *createNumbers(unsigned int len)
|
|||||||
unsigned int *numbers = malloc(sizeof(unsigned int) * len);
|
unsigned int *numbers = malloc(sizeof(unsigned int) * len);
|
||||||
if (numbers == NULL)
|
if (numbers == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
createchecknumber(len, numbers);
|
createchecknumber(len, numbers);
|
||||||
@ -86,9 +87,12 @@ unsigned int *createNumbers(unsigned int len)
|
|||||||
} while (i == j);
|
} while (i == j);
|
||||||
|
|
||||||
numbers[i] = numbers[j];
|
numbers[i] = numbers[j];
|
||||||
|
|
||||||
|
return numbers;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int *sortnumbers(unsigned int numbers[], unsigned int len)
|
void sortnumbers(unsigned int numbers[], unsigned int len)
|
||||||
{
|
{
|
||||||
for (unsigned int j = 0; j < len - 1; j++)
|
for (unsigned int j = 0; j < len - 1; j++)
|
||||||
{
|
{
|
||||||
@ -103,20 +107,35 @@ unsigned int *sortnumbers(unsigned int numbers[], unsigned int len)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return numbers;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns only the only number in numbers which is present twice. Returns zero on errors.
|
// 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)
|
unsigned int getDuplicate(const unsigned int numbers[], unsigned int len)
|
||||||
{
|
{
|
||||||
sortnumbers(numbers, len);
|
unsigned int *copynumbers = malloc(sizeof(unsigned int) * len);
|
||||||
|
if (copynumbers == NULL)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
copynumbers[i] = numbers[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
sortnumbers(copynumbers, len);
|
||||||
|
|
||||||
for (unsigned i = 0; i < len - 1; i++)
|
for (unsigned i = 0; i < len - 1; i++)
|
||||||
{
|
{
|
||||||
if (numbers[i] == numbers[i+1])
|
if (copynumbers[i] == copynumbers[i+1])
|
||||||
{
|
{
|
||||||
return numbers[i];
|
unsigned int a = copynumbers[i];
|
||||||
|
free (copynumbers);
|
||||||
|
return a;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free (copynumbers);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ extern unsigned int RANDOM_SEED;
|
|||||||
// Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while
|
// Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while
|
||||||
// creating random numbers.
|
// creating random numbers.
|
||||||
|
|
||||||
unsigned int setSeed(seed);
|
unsigned int setSeed(unsigned int seed);
|
||||||
|
|
||||||
unsigned int *createNumbers(unsigned int len);
|
unsigned int *createNumbers(unsigned int len);
|
||||||
//funktion mit srand(time)
|
//funktion mit srand(time)
|
||||||
|
|||||||
@ -1,40 +1,73 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include "unity/unity.h"
|
||||||
#include "numbers.h"
|
#include "numbers.h"
|
||||||
|
|
||||||
void test_enough_numbers() {
|
void test_length_and_duplicate()
|
||||||
|
{
|
||||||
setSeed(1);
|
setSeed(1);
|
||||||
unsigned int len = 20;
|
unsigned int len = 10;
|
||||||
unsigned int *numbers = createNumbers(len);
|
unsigned int *test_numbers = createNumbers(len);
|
||||||
|
|
||||||
if(numbers == NULL)
|
if (test_numbers == NULL)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
setSeed(1);
|
||||||
|
unsigned int len = 10;
|
||||||
|
unsigned int *test_numbers = createNumbers(len);
|
||||||
|
|
||||||
free(numbers);
|
if (test_numbers == NULL)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int expected[10] = {20, 8, 13, 19, 17, 16, 12, 0, 15, 14};
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
if (test_numbers[i] != expected[i])
|
||||||
|
{
|
||||||
|
free(test_numbers);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
free(test_numbers);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_no_duplicates_except_one() {
|
void test_duplicate_value()
|
||||||
|
{
|
||||||
|
unsigned int test_numbers[6] = {1, 2, 3, 4, 5, 5};
|
||||||
|
unsigned int dupli = 0;
|
||||||
|
|
||||||
|
dupli = getDuplicate(test_numbers, 6);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL(5, dupli);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_is_duplicated() {
|
void test_duplicate_value_if_false()
|
||||||
|
{
|
||||||
|
unsigned int test_numbers[6] = {1, 2, 3, 4, 5, 6};
|
||||||
|
unsigned int dupli = 0;
|
||||||
|
|
||||||
|
dupli = getDuplicate(test_numbers, 6);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL(0, dupli);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void) {
|
int main(void)
|
||||||
|
{
|
||||||
UNITY_BEGIN();
|
UNITY_BEGIN();
|
||||||
|
|
||||||
RUN_TEST(test_enough_numbers);
|
RUN_TEST(test_length_and_duplicate);
|
||||||
RUN_TEST(test_is_duplicated);
|
RUN_TEST(test_duplicate_value);
|
||||||
RUN_TEST(test_no_duplicates_except_one);
|
RUN_TEST(test_duplicate_value_if_false);
|
||||||
|
return UNITY_END();
|
||||||
int result = UNITY_END();
|
|
||||||
print_test_result(result);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user