Add some simple tests
This commit is contained in:
+4
-1
@@ -1 +1,4 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
tests/build/
|
||||||
|
build/
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
project(tests LANGUAGES C)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
|
add_executable(test_vector
|
||||||
|
tests/test_vector.c
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(test_set
|
||||||
|
tests/test_set.c
|
||||||
|
)
|
||||||
|
|
||||||
|
add_test(NAME test_vector COMMAND test_vector)
|
||||||
|
add_test(NAME test_set COMMAND test_set)
|
||||||
@@ -17,6 +17,8 @@ Literally just copy the header file you want and let your favourite semi-usable
|
|||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
If you want to contribute, please make a pull request and I'll review it. If you want to contribute a new type or function, please make sure it is useful and not just a "cool" thing.
|
If you want to contribute, please make a pull request and I'll review it. If you want to contribute a new type or function, please make sure it is useful and not just a "cool" thing.
|
||||||
|
If you change an existing type, please run **make** in *build/* directory and **ctest** to ensure compatibility hasn't been broken.
|
||||||
|
If it's new, please write a **test** for it in *tests/test_<name>.c* so others can see the guidelines on how the type is used.
|
||||||
|
|
||||||
## Legal Mumbo Jumbo
|
## Legal Mumbo Jumbo
|
||||||
Licensed under the MIT License (because GPL doesn't make sense for this (sorry Stallman))
|
Licensed under the MIT License (because GPL doesn't make sense for this (sorry Stallman))
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include "../set.h"
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
set_t* set = set_create(sizeof(int));
|
||||||
|
if (!set) {
|
||||||
|
fprintf(stderr, "Failed to create set\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; ++i) {
|
||||||
|
if (set_insert(set, &i) != 0) {
|
||||||
|
fprintf(stderr, "Failed to insert %d\n", i);
|
||||||
|
set_destroy(&set);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < set_size(set); ++i) {
|
||||||
|
int* value = (int*)set_get_const(set, i);
|
||||||
|
if (value) {
|
||||||
|
printf("set[%zu] = %d\n", i, *value);
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "Failed to get value at index %zu\n", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set_destroy(&set);
|
||||||
|
if (set != NULL) {
|
||||||
|
fprintf(stderr, "Set pointer was not set to NULL after destruction\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include "../vector.h"
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
vector_t* vec = vector_create(sizeof(int));
|
||||||
|
if (!vec) {
|
||||||
|
fprintf(stderr, "Failed to create vector\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; ++i) {
|
||||||
|
if (vector_push_back(vec, &i) != 0) {
|
||||||
|
fprintf(stderr, "Failed to push back %d\n", i);
|
||||||
|
vector_destroy(&vec);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < vector_size(vec); ++i) {
|
||||||
|
int* value = (int*)vector_get(vec, i);
|
||||||
|
if (value) {
|
||||||
|
printf("vec[%zu] = %d\n", i, *value);
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "Failed to get value at index %zu\n", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
vector_destroy(&vec);
|
||||||
|
if (vec != NULL) {
|
||||||
|
fprintf(stderr, "Vector pointer was not set to NULL after destruction\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user