numbersTests added and added to makefile
This commit is contained in:
parent
680e72b478
commit
5d1d37f0df
@ -1,5 +1,6 @@
|
||||
CC = gcc
|
||||
FLAGS = -g -Wall -lm
|
||||
CFLAGS = -g -Wall
|
||||
LDFLAGS = -lm
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
include makefile_windows.variables
|
||||
@ -27,7 +28,7 @@ doble_initial:
|
||||
program_obj_files = stack.o bintree.o numbers.o timer.o highscore.o
|
||||
|
||||
doble : main.o $(program_obj_files)
|
||||
$(CC) $(FLAGS) $^ -o doble
|
||||
$(CC) $(FLAGS) $(LDFLAGS) $^ -o doble
|
||||
|
||||
$(program_obj_filesobj_files): %.o: %.c
|
||||
$(CC) -c $(FLAGS) $^ -o $@
|
||||
@ -35,15 +36,21 @@ $(program_obj_filesobj_files): %.o: %.c
|
||||
# --------------------------
|
||||
# Unit Tests
|
||||
# --------------------------
|
||||
unitTests:
|
||||
echo "needs to be implemented"
|
||||
unitTests: numbersTest
|
||||
./runNumbersTest
|
||||
|
||||
numbersTest: numbers.o bintree.o numbersTest.o $($(unityfolder)/unity.c)
|
||||
$(CC) $(FLAGS) $(LDFLAGS) $^ -o $@
|
||||
|
||||
%.o: %.c
|
||||
$(CC) -c $(FLAGS) $< -o $@
|
||||
|
||||
# --------------------------
|
||||
# Clean
|
||||
# --------------------------
|
||||
clean:
|
||||
ifeq ($(OS),Windows_NT)
|
||||
del /f *.o doble
|
||||
del /f *.o doble runNumbersTest
|
||||
else
|
||||
rm -f *.o doble
|
||||
rm -f *.o doble runNumbersTest
|
||||
endif
|
||||
89
I2_Dobble/numbersTest.c
Normal file
89
I2_Dobble/numbersTest.c
Normal file
@ -0,0 +1,89 @@
|
||||
#include "numbers.h"
|
||||
#include "unity.h"
|
||||
#include "unity_internals.h"
|
||||
|
||||
void test_createNumbers_no_null(void)
|
||||
{
|
||||
unsigned int *arr = createNumbers(10);
|
||||
TEST_ASSERT_NOT_NULL(arr);
|
||||
free(arr);
|
||||
}
|
||||
|
||||
void test_createNumbers_has_exactly_one_duplicate(void)
|
||||
{
|
||||
unsigned int len = 100;
|
||||
unsigned int *arr = createNumbers(len);
|
||||
TEST_ASSERT_NOT_NULL(arr);
|
||||
|
||||
unsigned int dup = getDuplicate(arr, len);
|
||||
TEST_ASSERT_NOT_EQUAL(0, dup);
|
||||
|
||||
int count = 0;
|
||||
for (unsigned int i = 0; i < len; i++)
|
||||
{
|
||||
if (arr[i] == dup)
|
||||
count++;
|
||||
}
|
||||
|
||||
TEST_ASSERT_EQUAL(2, count);
|
||||
|
||||
free(arr);
|
||||
}
|
||||
|
||||
void test_createNumbers_has_correct_value_range(void)
|
||||
{
|
||||
unsigned int len = 10;
|
||||
unsigned int *arr = createNumbers(len);
|
||||
TEST_ASSERT_NOT_NULL(arr);
|
||||
|
||||
// Check all numbers are within valid range (1 to 2*len)
|
||||
for (unsigned int i = 0; i < len; i++)
|
||||
{
|
||||
TEST_ASSERT_TRUE(arr[i] >= 1);
|
||||
TEST_ASSERT_TRUE(arr[i] <= 2 * len);
|
||||
}
|
||||
|
||||
free(arr);
|
||||
}
|
||||
|
||||
void test_getDuplicate_returns_correct_value(void)
|
||||
{
|
||||
unsigned int arr[6] = {4, 1, 7, 7, 3, 2};
|
||||
unsigned int d = getDuplicate(arr, 6);
|
||||
TEST_ASSERT_EQUAL_UINT(7, d);
|
||||
}
|
||||
|
||||
void test_complete_function_of_numbers(void)
|
||||
{
|
||||
unsigned int len = 50;
|
||||
unsigned int *arr = createNumbers(len);
|
||||
TEST_ASSERT_NOT_NULL(arr);
|
||||
|
||||
unsigned int d1 = getDuplicate(arr, len);
|
||||
TEST_ASSERT_NOT_EQUAL(0, d1);
|
||||
|
||||
int count = 0;
|
||||
|
||||
for (unsigned int i = 0; i < len; i++)
|
||||
{
|
||||
if (arr[i] == d1)
|
||||
count++;
|
||||
}
|
||||
|
||||
TEST_ASSERT_EQUAL(2, count);
|
||||
|
||||
free(arr);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
UNITY_BEGIN();
|
||||
|
||||
RUN_TEST(test_createNumbers_no_null);
|
||||
RUN_TEST(test_createNumbers_has_exactly_one_duplicate);
|
||||
RUN_TEST(test_createNumbers_has_correct_value_range);
|
||||
RUN_TEST(test_getDuplicate_returns_correct_value);
|
||||
RUN_TEST(test_complete_function_of_numbers);
|
||||
|
||||
return UNITY_END();
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user