mirror of
https://github.com/bkthomps/Containers.git
synced 2025-12-05 15:15:49 +00:00
Add test case for vector
Add test case for vector which uses strings allocated dynamically.
This commit is contained in:
29
tst/vector.c
29
tst/vector.c
@@ -1,6 +1,34 @@
|
|||||||
|
#include <string.h>
|
||||||
#include "test.h"
|
#include "test.h"
|
||||||
#include "../src/vector.h"
|
#include "../src/vector.h"
|
||||||
|
|
||||||
|
static void test_vector_dynamic(void)
|
||||||
|
{
|
||||||
|
char **str = malloc(5 * sizeof(char **));
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
str[i] = malloc(10 * sizeof(char *));
|
||||||
|
for (int j = 0; j < 9; j++) {
|
||||||
|
str[i][j] = (char) ('a' + i);
|
||||||
|
}
|
||||||
|
str[i][9] = '\0';
|
||||||
|
}
|
||||||
|
vector str_vector = vector_init(sizeof(char *));
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
vector_add_last(str_vector, &str[i]);
|
||||||
|
}
|
||||||
|
assert(vector_size(str_vector) == 5);
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
char *retrieve = NULL;
|
||||||
|
vector_get_first(&retrieve, str_vector);
|
||||||
|
vector_remove_first(str_vector);
|
||||||
|
assert(strcmp(retrieve, str[i]) == 0);
|
||||||
|
free(retrieve);
|
||||||
|
}
|
||||||
|
free(str);
|
||||||
|
assert(vector_size(str_vector) == 0);
|
||||||
|
vector_destroy(str_vector);
|
||||||
|
}
|
||||||
|
|
||||||
void test_vector(void)
|
void test_vector(void)
|
||||||
{
|
{
|
||||||
int val[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
int val[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
||||||
@@ -113,4 +141,5 @@ void test_vector(void)
|
|||||||
assert(vector_remove_last(me) == -EINVAL);
|
assert(vector_remove_last(me) == -EINVAL);
|
||||||
me = vector_destroy(me);
|
me = vector_destroy(me);
|
||||||
assert(me == NULL);
|
assert(me == NULL);
|
||||||
|
test_vector_dynamic();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user