test: move all module tests to the test/ directory
This commit is contained in:
21
test/ds/arrays.c
Normal file
21
test/ds/arrays.c
Normal file
@@ -0,0 +1,21 @@
|
||||
#include <blue/ds/array.h>
|
||||
#include <blue/ds/number.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
b_array *array = b_array_create();
|
||||
b_array_append(array, B_RV_INT(32));
|
||||
b_array_append(array, B_RV_INT(64));
|
||||
b_array_append(array, B_RV_INT(128));
|
||||
|
||||
b_iterator *it = b_iterator_begin(array);
|
||||
b_foreach_ptr(b_object, obj, it)
|
||||
{
|
||||
printf("object %p\n", obj);
|
||||
}
|
||||
b_iterator_unref(it);
|
||||
|
||||
b_array_unref(array);
|
||||
return 0;
|
||||
}
|
||||
50
test/ds/ds-units.c
Normal file
50
test/ds/ds-units.c
Normal file
@@ -0,0 +1,50 @@
|
||||
#include <CuTest.h>
|
||||
#include <blue/ds/string.h>
|
||||
|
||||
static void test_string_create(CuTest *tc)
|
||||
{
|
||||
b_string *str = b_string_create();
|
||||
|
||||
CuAssertPtrNotNull(tc, str);
|
||||
CuAssertIntEquals(tc, 0, b_string_get_size(str, B_STRLEN_NORMAL));
|
||||
CuAssertStrEquals(tc, "", b_string_ptr(str));
|
||||
|
||||
b_string_unref(str);
|
||||
|
||||
str = b_string_create_from_c('A', 8);
|
||||
|
||||
CuAssertPtrNotNull(tc, str);
|
||||
CuAssertIntEquals(tc, 8, b_string_get_size(str, B_STRLEN_NORMAL));
|
||||
CuAssertStrEquals(tc, "AAAAAAAA", b_string_ptr(str));
|
||||
|
||||
b_string_unref(str);
|
||||
|
||||
str = b_string_create_from_cstr("Hello, world!");
|
||||
|
||||
CuAssertPtrNotNull(tc, str);
|
||||
CuAssertIntEquals(tc, 13, b_string_get_size(str, B_STRLEN_NORMAL));
|
||||
CuAssertStrEquals(tc, "Hello, world!", b_string_ptr(str));
|
||||
|
||||
b_string_unref(str);
|
||||
}
|
||||
|
||||
static void test_string_length(CuTest *tc)
|
||||
{
|
||||
const char *cstr = "Hello, \033[91;1mworld!";
|
||||
b_string *s = b_string_create_from_cstr(cstr);
|
||||
|
||||
CuAssertIntEquals(tc, 13, b_string_get_size(s, B_STRLEN_IGNORE_ESC));
|
||||
CuAssertIntEquals(tc, 20, b_string_get_size(s, B_STRLEN_NORMAL));
|
||||
|
||||
b_string_unref(s);
|
||||
}
|
||||
|
||||
CuSuite *get_all_tests(void)
|
||||
{
|
||||
CuSuite *suite = CuSuiteNew();
|
||||
|
||||
SUITE_ADD_TEST(suite, test_string_create);
|
||||
SUITE_ADD_TEST(suite, test_string_length);
|
||||
|
||||
return suite;
|
||||
}
|
||||
11
test/ds/numbers.c
Normal file
11
test/ds/numbers.c
Normal file
@@ -0,0 +1,11 @@
|
||||
#include <blue/ds/number.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
b_number *number = b_number_create_float(6.8);
|
||||
|
||||
printf("number=%zd\n", B_NUMBER_IVAL(number));
|
||||
b_number_unref(number);
|
||||
return 0;
|
||||
}
|
||||
11
test/ds/simple.c
Normal file
11
test/ds/simple.c
Normal file
@@ -0,0 +1,11 @@
|
||||
#include <blue/ds/string.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
b_string *string = B_CSTR("Hello, world!");
|
||||
printf("string object = ");
|
||||
b_object_to_string(string, b_stdout);
|
||||
printf("\n");
|
||||
b_string_unref(string);
|
||||
return 0;
|
||||
}
|
||||
19
test/ds/streams.c
Normal file
19
test/ds/streams.c
Normal file
@@ -0,0 +1,19 @@
|
||||
#include <blue/core/stream.h>
|
||||
#include <blue/core/stringstream.h>
|
||||
#include <blue/ds/string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, const char **argv)
|
||||
{
|
||||
size_t nr_read = 0;
|
||||
b_stringstream *dest_stream = b_stringstream_create();
|
||||
b_stream_buffer *buf = b_stream_buffer_create_dynamic(1024);
|
||||
b_stream_read_all_bytes_s(b_stdin, dest_stream, buf, &nr_read);
|
||||
|
||||
printf("done. read %zu bytes total.\n", nr_read);
|
||||
printf("%s\n", b_stringstream_ptr(dest_stream));
|
||||
|
||||
b_stringstream_unref(dest_stream);
|
||||
b_stream_buffer_unref(buf);
|
||||
return 0;
|
||||
}
|
||||
43
test/ds/strings.c
Normal file
43
test/ds/strings.c
Normal file
@@ -0,0 +1,43 @@
|
||||
#include <blue/core/stringstream.h>
|
||||
#include <blue/ds/string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
printf("-------------\n");
|
||||
b_string *str = b_string_create_from_cstr("Hello, world!\n");
|
||||
printf("%s\n", b_string_ptr(str));
|
||||
printf("len:%zu, max:%zu\n", b_string_get_size(str, B_STRLEN_NORMAL),
|
||||
b_string_get_capacity(str));
|
||||
|
||||
b_string_insert_cstr(str, "WOW!", 4);
|
||||
|
||||
printf("-------------\n");
|
||||
printf("%s\n", b_string_ptr(str));
|
||||
printf("len:%zu, max:%zu\n", b_string_get_size(str, B_STRLEN_NORMAL),
|
||||
b_string_get_capacity(str));
|
||||
|
||||
b_string_replace(str, 4, 4, "+");
|
||||
|
||||
printf("-------------\n");
|
||||
printf("%s\n", b_string_ptr(str));
|
||||
printf("len:%zu, max:%zu\n", b_string_get_size(str, B_STRLEN_NORMAL),
|
||||
b_string_get_capacity(str));
|
||||
printf("-------------\n");
|
||||
|
||||
b_string_unref(str);
|
||||
|
||||
b_stringstream *strv = b_stringstream_create();
|
||||
b_stream_write_string(strv, "Hello", NULL);
|
||||
b_stream_write_string(strv, ", world", NULL);
|
||||
b_stream_write_string(strv, "!", NULL);
|
||||
|
||||
char *s = b_stringstream_steal(strv);
|
||||
b_stringstream_unref(strv);
|
||||
|
||||
printf("%s\n", s);
|
||||
free(s);
|
||||
|
||||
return 0;
|
||||
}
|
||||
125
test/ds/trees.c
Normal file
125
test/ds/trees.c
Normal file
@@ -0,0 +1,125 @@
|
||||
#include <blue/core/btree.h>
|
||||
#include <blue/core/iterator.h>
|
||||
#include <blue/ds/dict.h>
|
||||
#include <blue/ds/number.h>
|
||||
#include <blue/ds/tree.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define NITEMS 16
|
||||
|
||||
struct tree_item {
|
||||
int value;
|
||||
b_tree_node node;
|
||||
};
|
||||
|
||||
struct btree_item {
|
||||
int value;
|
||||
b_btree_node node;
|
||||
};
|
||||
|
||||
B_BTREE_DEFINE_SIMPLE_GET(struct btree_item, int, node, value, get_node)
|
||||
B_BTREE_DEFINE_SIMPLE_INSERT(struct btree_item, node, value, put_node)
|
||||
|
||||
int main(void)
|
||||
{
|
||||
b_dict *dict = b_dict_create();
|
||||
b_dict_put(dict, "hello", B_RV_INT(32));
|
||||
b_dict_put(dict, "world", B_RV_INT(64));
|
||||
b_dict_put(dict, "more", B_RV_INT(128));
|
||||
b_dict_put(dict, "other", B_RV_INT(256));
|
||||
|
||||
b_iterator *it = b_iterator_begin(dict);
|
||||
|
||||
size_t i = 0;
|
||||
b_foreach(b_dict_item *, item, it)
|
||||
{
|
||||
printf("item %zu: %s=%d\n", i++, b_string_ptr(item->key),
|
||||
b_number_get_int(item->value));
|
||||
}
|
||||
|
||||
b_iterator_unref(it);
|
||||
|
||||
b_tree *tree = b_tree_create();
|
||||
struct tree_item items2[NITEMS];
|
||||
|
||||
for (int i = 0; i < NITEMS; i++) {
|
||||
items2[i].value = i;
|
||||
items2[i].node = B_TREE_NODE_INIT;
|
||||
}
|
||||
|
||||
b_tree_set_root(tree, &items2[0].node);
|
||||
|
||||
b_tree_node_add_child(&items2[0].node, &items2[1].node);
|
||||
b_tree_node_add_child(&items2[0].node, &items2[2].node);
|
||||
b_tree_node_add_child(&items2[0].node, &items2[3].node);
|
||||
b_tree_node_add_child(&items2[0].node, &items2[7].node);
|
||||
b_tree_node_add_child(&items2[1].node, &items2[4].node);
|
||||
b_tree_node_add_child(&items2[1].node, &items2[5].node);
|
||||
b_tree_node_add_child(&items2[4].node, &items2[6].node);
|
||||
|
||||
#if 0
|
||||
it = b_iterator_begin(tree);
|
||||
b_tree_iterator it2;
|
||||
b_tree_foreach(&it2, tree)
|
||||
{
|
||||
struct tree_item *item = b_unbox(struct tree_item, it2.node, node);
|
||||
|
||||
for (size_t i = 0; i < it2.depth; i++) {
|
||||
fputs(" ", stdout);
|
||||
}
|
||||
|
||||
printf("%u\n", item->value);
|
||||
}
|
||||
|
||||
b_btree btree = {0};
|
||||
struct btree_item items3[NITEMS] = {0};
|
||||
for (int i = 0; i < NITEMS; i++) {
|
||||
items3[i].value = i;
|
||||
put_node(&btree, &items3[i]);
|
||||
}
|
||||
|
||||
printf("\n\n");
|
||||
|
||||
b_btree_iterator it3;
|
||||
b_btree_foreach (&it3, &btree) {
|
||||
struct btree_item *item
|
||||
= b_unbox(struct btree_item, it3.node, node);
|
||||
|
||||
for (size_t i = 0; i < it3.depth; i++) {
|
||||
fputs(" ", stdout);
|
||||
}
|
||||
|
||||
printf("%d\n", item->value);
|
||||
}
|
||||
|
||||
b_btree_iterator_begin(&btree, &it3);
|
||||
while (b_btree_iterator_is_valid(&it3)) {
|
||||
struct btree_item *item
|
||||
= b_unbox(struct btree_item, it3.node, node);
|
||||
|
||||
if (item->value == 9) {
|
||||
b_btree_iterator_erase(&it3);
|
||||
} else {
|
||||
b_btree_iterator_next(&it3);
|
||||
}
|
||||
}
|
||||
|
||||
printf("\n\n");
|
||||
|
||||
b_btree_foreach (&it3, &btree) {
|
||||
struct btree_item *item
|
||||
= b_unbox(struct btree_item, it3.node, node);
|
||||
|
||||
for (size_t i = 0; i < it3.depth; i++) {
|
||||
fputs(" ", stdout);
|
||||
}
|
||||
|
||||
printf("%d\n", item->value);
|
||||
}
|
||||
|
||||
b_tree_unref(tree);
|
||||
#endif
|
||||
b_dict_unref(dict);
|
||||
|
||||
return 0;
|
||||
}
|
||||
26
test/ds/unicode-strings.c
Normal file
26
test/ds/unicode-strings.c
Normal file
@@ -0,0 +1,26 @@
|
||||
#include <blue/core/stringstream.h>
|
||||
#include <blue/ds/string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
printf("здравс\u26A0твуите\n");
|
||||
b_string *str = b_string_create_from_cstr("здравствуите");
|
||||
const char *s = b_string_ptr(str);
|
||||
printf("%s\n", s);
|
||||
printf("len: %zu\n", b_string_get_size(str, B_STRLEN_NORMAL));
|
||||
printf("codepoints: %zu\n", b_string_get_size(str, B_STRLEN_CODEPOINTS));
|
||||
|
||||
const char *delims[] = {"в"};
|
||||
size_t nr_delims = sizeof delims / sizeof delims[0];
|
||||
|
||||
b_iterator *it = b_string_tokenise(str, delims, nr_delims, 0);
|
||||
b_foreach(const char *, tok, it)
|
||||
{
|
||||
printf("%s\n", tok);
|
||||
}
|
||||
b_iterator_unref(it);
|
||||
|
||||
return 0;
|
||||
}
|
||||
14
test/ds/uuids.c
Normal file
14
test/ds/uuids.c
Normal file
@@ -0,0 +1,14 @@
|
||||
#include <blue/ds/uuid.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
b_uuid *uuid = b_uuid_create_from_cstr(
|
||||
"5b80ad1f-367f-4a1f-88f3-b3a6f8d1f63d");
|
||||
char str[B_UUID_STRING_MAX];
|
||||
b_uuid_to_cstr(uuid, str);
|
||||
printf("%s\n", str);
|
||||
|
||||
b_uuid_unref(uuid);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user