Add tests for Str8List utilities
This commit is contained in:
parent
68fe421ab0
commit
d635e03cd8
@ -201,6 +201,21 @@ TestFuncResult test_str8_set(void) {
|
|||||||
return wapp_tester_result(result);
|
return wapp_tester_result(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TestFuncResult test_str8_equal(void) {
|
||||||
|
bool result;
|
||||||
|
|
||||||
|
Str8RO s1 = wapp_str8_lit_ro("hello");
|
||||||
|
Str8RO s2 = wapp_str8_lit_ro("hell");
|
||||||
|
Str8RO s3 = wapp_str8_lit_ro("hello");
|
||||||
|
Str8RO s4 = wapp_str8_lit_ro("goodbye");
|
||||||
|
|
||||||
|
result = wapp_str8_equal(&s1, &s2) == false;
|
||||||
|
result = result && wapp_str8_equal(&s1, &s3) == true;
|
||||||
|
result = result && wapp_str8_equal(&s1, &s4) == false;
|
||||||
|
|
||||||
|
return wapp_tester_result(result);
|
||||||
|
}
|
||||||
|
|
||||||
TestFuncResult test_str8_substr(void) {
|
TestFuncResult test_str8_substr(void) {
|
||||||
bool result;
|
bool result;
|
||||||
Str8 s = wapp_str8_lit("Different strokes for different folks");
|
Str8 s = wapp_str8_lit("Different strokes for different folks");
|
||||||
|
@ -16,6 +16,7 @@ TestFuncResult test_str8_alloc_str8(void);
|
|||||||
TestFuncResult test_str8_get_index_within_bounds(void);
|
TestFuncResult test_str8_get_index_within_bounds(void);
|
||||||
TestFuncResult test_str8_get_index_out_of_bounds(void);
|
TestFuncResult test_str8_get_index_out_of_bounds(void);
|
||||||
TestFuncResult test_str8_set(void);
|
TestFuncResult test_str8_set(void);
|
||||||
|
TestFuncResult test_str8_equal(void);
|
||||||
TestFuncResult test_str8_substr(void);
|
TestFuncResult test_str8_substr(void);
|
||||||
TestFuncResult test_str8_find(void);
|
TestFuncResult test_str8_find(void);
|
||||||
TestFuncResult test_str8_rfind(void);
|
TestFuncResult test_str8_rfind(void);
|
||||||
|
248
tests/str8/test_str8_list.c
Normal file
248
tests/str8/test_str8_list.c
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
#include "test_str8_list.h"
|
||||||
|
#include "str8.h"
|
||||||
|
#include "tester.h"
|
||||||
|
|
||||||
|
TestFuncResult test_str8_list_get(void) {
|
||||||
|
bool result;
|
||||||
|
|
||||||
|
Str8RO s1 = wapp_str8_lit_ro("1");
|
||||||
|
Str8RO s2 = wapp_str8_lit_ro("2");
|
||||||
|
Str8RO s3 = wapp_str8_lit_ro("3");
|
||||||
|
Str8RO s4 = wapp_str8_lit_ro("4");
|
||||||
|
Str8RO s5 = wapp_str8_lit_ro("5");
|
||||||
|
|
||||||
|
Str8List list = {0};
|
||||||
|
Str8Node n1 = { .string = &s1 };
|
||||||
|
Str8Node n2 = { .string = &s2 };
|
||||||
|
Str8Node n3 = { .string = &s3 };
|
||||||
|
Str8Node n4 = { .string = &s4 };
|
||||||
|
Str8Node n5 = { .string = &s5 };
|
||||||
|
|
||||||
|
wapp_str8_list_push_back(&list, &n1);
|
||||||
|
wapp_str8_list_push_back(&list, &n2);
|
||||||
|
wapp_str8_list_push_back(&list, &n3);
|
||||||
|
wapp_str8_list_push_back(&list, &n4);
|
||||||
|
wapp_str8_list_push_back(&list, &n5);
|
||||||
|
|
||||||
|
Str8Node *node = wapp_str8_list_get(&list, 0);
|
||||||
|
result = node->string == &s1 && wapp_str8_equal(node->string, &s1);
|
||||||
|
|
||||||
|
node = wapp_str8_list_get(&list, 1);
|
||||||
|
result = result && node->string == &s2 && wapp_str8_equal(node->string, &s2);
|
||||||
|
|
||||||
|
node = wapp_str8_list_get(&list, 2);
|
||||||
|
result = result && node->string == &s3 && wapp_str8_equal(node->string, &s3);
|
||||||
|
|
||||||
|
node = wapp_str8_list_get(&list, 3);
|
||||||
|
result = result && node->string == &s4 && wapp_str8_equal(node->string, &s4);
|
||||||
|
|
||||||
|
node = wapp_str8_list_get(&list, 4);
|
||||||
|
result = result && node->string == &s5 && wapp_str8_equal(node->string, &s5);
|
||||||
|
|
||||||
|
return wapp_tester_result(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
TestFuncResult test_str8_list_push_front(void) {
|
||||||
|
bool result;
|
||||||
|
|
||||||
|
Str8RO s1 = wapp_str8_lit_ro("1");
|
||||||
|
Str8RO s2 = wapp_str8_lit_ro("2");
|
||||||
|
Str8RO s3 = wapp_str8_lit_ro("3");
|
||||||
|
|
||||||
|
Str8List list = {0};
|
||||||
|
Str8Node n1 = { .string = &s1 };
|
||||||
|
Str8Node n2 = { .string = &s2 };
|
||||||
|
Str8Node n3 = { .string = &s3 };
|
||||||
|
|
||||||
|
wapp_str8_list_push_front(&list, &n1);
|
||||||
|
result = list.first == list.last && list.first == &n1 && list.first->string == &s1 && list.total_size == 1 && list.node_count == 1;
|
||||||
|
|
||||||
|
wapp_str8_list_push_front(&list, &n2);
|
||||||
|
result = result && list.first == &n2 && list.first->string == &s2 && list.total_size == 2 && list.node_count == 2;
|
||||||
|
|
||||||
|
wapp_str8_list_push_front(&list, &n3);
|
||||||
|
result = result && list.first == &n3 && list.first->string == &s3 && list.total_size == 3 && list.node_count == 3;
|
||||||
|
|
||||||
|
return wapp_tester_result(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
TestFuncResult test_str8_list_push_back(void) {
|
||||||
|
bool result;
|
||||||
|
|
||||||
|
Str8RO s1 = wapp_str8_lit_ro("1");
|
||||||
|
Str8RO s2 = wapp_str8_lit_ro("2");
|
||||||
|
Str8RO s3 = wapp_str8_lit_ro("3");
|
||||||
|
|
||||||
|
Str8List list = {0};
|
||||||
|
Str8Node n1 = { .string = &s1 };
|
||||||
|
Str8Node n2 = { .string = &s2 };
|
||||||
|
Str8Node n3 = { .string = &s3 };
|
||||||
|
|
||||||
|
wapp_str8_list_push_back(&list, &n1);
|
||||||
|
result = list.first == list.last && list.last == &n1 && list.last->string == &s1 && list.total_size == 1 && list.node_count == 1;
|
||||||
|
|
||||||
|
wapp_str8_list_push_back(&list, &n2);
|
||||||
|
result = result && list.last == &n2 && list.last->string == &s2 && list.total_size == 2 && list.node_count == 2;
|
||||||
|
|
||||||
|
wapp_str8_list_push_back(&list, &n3);
|
||||||
|
result = result && list.last == &n3 && list.last->string == &s3 && list.total_size == 3 && list.node_count == 3;
|
||||||
|
|
||||||
|
return wapp_tester_result(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
TestFuncResult test_str8_list_insert(void) {
|
||||||
|
bool result;
|
||||||
|
|
||||||
|
Str8RO s1 = wapp_str8_lit_ro("1");
|
||||||
|
Str8RO s2 = wapp_str8_lit_ro("2");
|
||||||
|
Str8RO s3 = wapp_str8_lit_ro("3");
|
||||||
|
Str8RO s4 = wapp_str8_lit_ro("4");
|
||||||
|
Str8RO s5 = wapp_str8_lit_ro("5");
|
||||||
|
Str8RO s6 = wapp_str8_lit_ro("6");
|
||||||
|
Str8RO s7 = wapp_str8_lit_ro("7");
|
||||||
|
|
||||||
|
Str8List list = {0};
|
||||||
|
Str8Node n1 = { .string = &s1 };
|
||||||
|
Str8Node n2 = { .string = &s2 };
|
||||||
|
Str8Node n3 = { .string = &s3 };
|
||||||
|
Str8Node n4 = { .string = &s4 };
|
||||||
|
Str8Node n5 = { .string = &s5 };
|
||||||
|
Str8Node n6 = { .string = &s6 };
|
||||||
|
Str8Node n7 = { .string = &s7 };
|
||||||
|
|
||||||
|
wapp_str8_list_push_back(&list, &n1);
|
||||||
|
wapp_str8_list_push_back(&list, &n2);
|
||||||
|
wapp_str8_list_push_back(&list, &n3);
|
||||||
|
wapp_str8_list_push_back(&list, &n4);
|
||||||
|
wapp_str8_list_push_back(&list, &n5);
|
||||||
|
|
||||||
|
Str8Node *node;
|
||||||
|
wapp_str8_list_insert(&list, &n6, 2);
|
||||||
|
node = wapp_str8_list_get(&list, 2);
|
||||||
|
result = node != NULL && node->string == &s6 && list.total_size == 6 && list.node_count == 6;
|
||||||
|
wapp_str8_list_insert(&list, &n7, 5);
|
||||||
|
node = wapp_str8_list_get(&list, 5);
|
||||||
|
result = result && node != NULL && node->string == &s7 && list.total_size == 7 && list.node_count == 7;
|
||||||
|
|
||||||
|
return wapp_tester_result(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
TestFuncResult test_str8_list_pop_front(void) {
|
||||||
|
bool result;
|
||||||
|
|
||||||
|
Str8RO s1 = wapp_str8_lit_ro("1");
|
||||||
|
Str8RO s2 = wapp_str8_lit_ro("2");
|
||||||
|
Str8RO s3 = wapp_str8_lit_ro("3");
|
||||||
|
Str8RO s4 = wapp_str8_lit_ro("4");
|
||||||
|
Str8RO s5 = wapp_str8_lit_ro("5");
|
||||||
|
|
||||||
|
Str8List list = {0};
|
||||||
|
Str8Node n1 = { .string = &s1 };
|
||||||
|
Str8Node n2 = { .string = &s2 };
|
||||||
|
Str8Node n3 = { .string = &s3 };
|
||||||
|
Str8Node n4 = { .string = &s4 };
|
||||||
|
Str8Node n5 = { .string = &s5 };
|
||||||
|
|
||||||
|
wapp_str8_list_push_back(&list, &n1);
|
||||||
|
wapp_str8_list_push_back(&list, &n2);
|
||||||
|
wapp_str8_list_push_back(&list, &n3);
|
||||||
|
wapp_str8_list_push_back(&list, &n4);
|
||||||
|
wapp_str8_list_push_back(&list, &n5);
|
||||||
|
|
||||||
|
Str8Node *node = wapp_str8_list_pop_front(&list);
|
||||||
|
result = node == &n1 && node->string == &s1 && wapp_str8_equal(node->string, &s1) && list.total_size == 4 && list.node_count == 4;
|
||||||
|
|
||||||
|
node = wapp_str8_list_pop_front(&list);
|
||||||
|
result = result && node == &n2 && node->string == &s2 && wapp_str8_equal(node->string, &s2) && list.total_size == 3 && list.node_count == 3;
|
||||||
|
|
||||||
|
node = wapp_str8_list_pop_front(&list);
|
||||||
|
result = result && node == &n3 && node->string == &s3 && wapp_str8_equal(node->string, &s3) && list.total_size == 2 && list.node_count == 2;
|
||||||
|
|
||||||
|
node = wapp_str8_list_pop_front(&list);
|
||||||
|
result = result && node == &n4 && node->string == &s4 && wapp_str8_equal(node->string, &s4) && list.total_size == 1 && list.node_count == 1;
|
||||||
|
|
||||||
|
node = wapp_str8_list_pop_front(&list);
|
||||||
|
result = result && node == &n5 && node->string == &s5 && wapp_str8_equal(node->string, &s5) && list.total_size == 0 && list.node_count == 0;
|
||||||
|
|
||||||
|
return wapp_tester_result(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
TestFuncResult test_str8_list_pop_back(void) {
|
||||||
|
bool result;
|
||||||
|
|
||||||
|
Str8RO s1 = wapp_str8_lit_ro("1");
|
||||||
|
Str8RO s2 = wapp_str8_lit_ro("2");
|
||||||
|
Str8RO s3 = wapp_str8_lit_ro("3");
|
||||||
|
Str8RO s4 = wapp_str8_lit_ro("4");
|
||||||
|
Str8RO s5 = wapp_str8_lit_ro("5");
|
||||||
|
|
||||||
|
Str8List list = {0};
|
||||||
|
Str8Node n1 = { .string = &s1 };
|
||||||
|
Str8Node n2 = { .string = &s2 };
|
||||||
|
Str8Node n3 = { .string = &s3 };
|
||||||
|
Str8Node n4 = { .string = &s4 };
|
||||||
|
Str8Node n5 = { .string = &s5 };
|
||||||
|
|
||||||
|
wapp_str8_list_push_front(&list, &n1);
|
||||||
|
wapp_str8_list_push_front(&list, &n2);
|
||||||
|
wapp_str8_list_push_front(&list, &n3);
|
||||||
|
wapp_str8_list_push_front(&list, &n4);
|
||||||
|
wapp_str8_list_push_front(&list, &n5);
|
||||||
|
|
||||||
|
Str8Node *node = wapp_str8_list_pop_back(&list);
|
||||||
|
result = node == &n1 && node->string == &s1 && wapp_str8_equal(node->string, &s1) && list.total_size == 4 && list.node_count == 4;
|
||||||
|
|
||||||
|
node = wapp_str8_list_pop_back(&list);
|
||||||
|
result = result && node == &n2 && node->string == &s2 && wapp_str8_equal(node->string, &s2) && list.total_size == 3 && list.node_count == 3;
|
||||||
|
|
||||||
|
node = wapp_str8_list_pop_back(&list);
|
||||||
|
result = result && node == &n3 && node->string == &s3 && wapp_str8_equal(node->string, &s3) && list.total_size == 2 && list.node_count == 2;
|
||||||
|
|
||||||
|
node = wapp_str8_list_pop_back(&list);
|
||||||
|
result = result && node == &n4 && node->string == &s4 && wapp_str8_equal(node->string, &s4) && list.total_size == 1 && list.node_count == 1;
|
||||||
|
|
||||||
|
node = wapp_str8_list_pop_back(&list);
|
||||||
|
result = result && node == &n5 && node->string == &s5 && wapp_str8_equal(node->string, &s5) && list.total_size == 0 && list.node_count == 0;
|
||||||
|
|
||||||
|
return wapp_tester_result(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
TestFuncResult test_str8_list_remove(void) {
|
||||||
|
bool result;
|
||||||
|
|
||||||
|
Str8RO s1 = wapp_str8_lit_ro("1");
|
||||||
|
Str8RO s2 = wapp_str8_lit_ro("2");
|
||||||
|
Str8RO s3 = wapp_str8_lit_ro("3");
|
||||||
|
Str8RO s4 = wapp_str8_lit_ro("4");
|
||||||
|
Str8RO s5 = wapp_str8_lit_ro("5");
|
||||||
|
|
||||||
|
Str8List list = {0};
|
||||||
|
Str8Node n1 = { .string = &s1 };
|
||||||
|
Str8Node n2 = { .string = &s2 };
|
||||||
|
Str8Node n3 = { .string = &s3 };
|
||||||
|
Str8Node n4 = { .string = &s4 };
|
||||||
|
Str8Node n5 = { .string = &s5 };
|
||||||
|
|
||||||
|
wapp_str8_list_push_back(&list, &n1);
|
||||||
|
wapp_str8_list_push_back(&list, &n2);
|
||||||
|
wapp_str8_list_push_back(&list, &n3);
|
||||||
|
wapp_str8_list_push_back(&list, &n4);
|
||||||
|
wapp_str8_list_push_back(&list, &n5);
|
||||||
|
|
||||||
|
Str8Node *node = wapp_str8_list_remove(&list, 0);
|
||||||
|
result = node == &n1 && node->string == &s1 && wapp_str8_equal(node->string, &s1) && list.total_size == 4 && list.node_count == 4;
|
||||||
|
|
||||||
|
node = wapp_str8_list_remove(&list, 0);
|
||||||
|
result = result && node == &n2 && node->string == &s2 && wapp_str8_equal(node->string, &s2) && list.total_size == 3 && list.node_count == 3;
|
||||||
|
|
||||||
|
node = wapp_str8_list_remove(&list, 0);
|
||||||
|
result = result && node == &n3 && node->string == &s3 && wapp_str8_equal(node->string, &s3) && list.total_size == 2 && list.node_count == 2;
|
||||||
|
|
||||||
|
node = wapp_str8_list_remove(&list, 0);
|
||||||
|
result = result && node == &n4 && node->string == &s4 && wapp_str8_equal(node->string, &s4) && list.total_size == 1 && list.node_count == 1;
|
||||||
|
|
||||||
|
node = wapp_str8_list_remove(&list, 0);
|
||||||
|
result = result && node == &n5 && node->string == &s5 && wapp_str8_equal(node->string, &s5) && list.total_size == 0 && list.node_count == 0;
|
||||||
|
|
||||||
|
return wapp_tester_result(result);
|
||||||
|
}
|
22
tests/str8/test_str8_list.h
Normal file
22
tests/str8/test_str8_list.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#ifndef TEST_STR8_LIST_H
|
||||||
|
#define TEST_STR8_LIST_H
|
||||||
|
|
||||||
|
#include "tester.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
BEGIN_C_LINKAGE
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
TestFuncResult test_str8_list_get(void);
|
||||||
|
TestFuncResult test_str8_list_push_front(void);
|
||||||
|
TestFuncResult test_str8_list_push_back(void);
|
||||||
|
TestFuncResult test_str8_list_insert(void);
|
||||||
|
TestFuncResult test_str8_list_pop_front(void);
|
||||||
|
TestFuncResult test_str8_list_pop_back(void);
|
||||||
|
TestFuncResult test_str8_list_remove(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
END_C_LINKAGE
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
#endif // !TEST_STR8_LIST_H
|
@ -1,4 +1,5 @@
|
|||||||
#include "test_str8.h"
|
#include "test_str8.h"
|
||||||
|
#include "test_str8_list.h"
|
||||||
#include "test_allocator.h"
|
#include "test_allocator.h"
|
||||||
#include "test_arena.h"
|
#include "test_arena.h"
|
||||||
#include "test_cpath.h"
|
#include "test_cpath.h"
|
||||||
@ -21,9 +22,17 @@ int main(void) {
|
|||||||
test_str8_get_index_within_bounds,
|
test_str8_get_index_within_bounds,
|
||||||
test_str8_get_index_out_of_bounds,
|
test_str8_get_index_out_of_bounds,
|
||||||
test_str8_set,
|
test_str8_set,
|
||||||
|
test_str8_equal,
|
||||||
test_str8_substr,
|
test_str8_substr,
|
||||||
test_str8_find,
|
test_str8_find,
|
||||||
test_str8_rfind,
|
test_str8_rfind,
|
||||||
|
test_str8_list_get,
|
||||||
|
test_str8_list_push_front,
|
||||||
|
test_str8_list_push_back,
|
||||||
|
test_str8_list_insert,
|
||||||
|
test_str8_list_pop_front,
|
||||||
|
test_str8_list_pop_back,
|
||||||
|
test_str8_list_remove,
|
||||||
test_cpath_join_path,
|
test_cpath_join_path,
|
||||||
test_cpath_dirname,
|
test_cpath_dirname,
|
||||||
test_cpath_dirup,
|
test_cpath_dirup,
|
||||||
|
Loading…
Reference in New Issue
Block a user