diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_json.c | 224 | ||||
| -rw-r--r-- | tests/test_json/test_json_backspaces.json | 1 | ||||
| -rw-r--r-- | tests/test_json/test_json_complex_multiline.json | 24 | ||||
| -rw-r--r-- | tests/test_json/test_json_multiline.json | 5 | ||||
| -rw-r--r-- | tests/test_string.c | 41 | ||||
| -rw-r--r-- | tests/test_time.c | 13 | ||||
| -rw-r--r-- | tests/test_vec.c | 88 |
7 files changed, 0 insertions, 396 deletions
diff --git a/tests/test_json.c b/tests/test_json.c deleted file mode 100644 index 921de64..0000000 --- a/tests/test_json.c +++ /dev/null @@ -1,224 +0,0 @@ -#include "../include/json.h" -#include "../include/testing.h" - -#define JSON_parse_raw(a, s) JSON_parse(a, s, lengthof(s)); - -i32 test_json_integer() { - Arena perm = Arena_new(128e3); - - JSON json_int = JSON_parse_raw(&perm, "123"); - - t_assert_equal(json_int.as.integer, 123); - t_assert_equal(Arena_get_used(perm), 0); - return 0; -} - -i32 test_json_int_array() { - Arena perm = Arena_new(128e3); - - JSON json_int_array = JSON_parse_raw(&perm, "[1,2,3]"); - - t_assert_equal(json_int_array.type, JSON_ARRAY); - t_assert_equal(json_int_array.as.array.len, 3); - int ints[3]; - int sum = 0; - for (int i = 0; i < json_int_array.as.array.len; i++) { - JSON *item = Vec_get(json_int_array.as.array, JSON, i); - ints[i] = item->as.integer; - sum += item->as.integer; - } - t_assert_equal(ints[0], 1); - t_assert_equal(ints[1], 2); - t_assert_equal(ints[2], 3); - t_assert_equal(sum, 6); - t_assert_equal(Arena_get_used(perm), 576); - - return 0; -} - -i32 test_json_empty_array() { - Arena perm = Arena_new(128e3); - - JSON json_empty_array = JSON_parse_raw(&perm, "[]"); - - t_assert_equal(json_empty_array.as.array.len, 0); - t_assert_equal(Arena_get_used(perm), 0); // TODO: weird - - return 0; -} - -i32 test_json_nested_array() { - Arena perm = Arena_new(128e3); - - JSON doc = JSON_parse_raw(&perm, "[[1,\"abc\"]]"); - - JSON sub_array = *Vec_get(doc.as.array, JSON, 0); - JSON val_1 = *Vec_get(sub_array.as.array, JSON, 0); - t_assert_equal(val_1.as.integer, 1); - JSON val_2 = *Vec_get(sub_array.as.array, JSON, 1); - t_assert_strequal(val_2.as.string, S("abc")); - t_assert_equal(Arena_get_used(perm), 1152); - - return 0; -} - -i32 test_json_string() { - Arena perm = Arena_new(128e3); - - JSON js = JSON_parse_raw(&perm, "\"abc\""); - - t_assert_strequal(js.as.string, S("abc")); - t_assert_equal(Arena_get_used(perm), 0); - - return 0; -} - -i32 test_json_empty_object() { - Arena perm = Arena_new(128e3); - - JSON doc = JSON_parse_raw(&perm, "{}"); - - t_assert_equal(doc.as.object.len, 0); - t_assert_equal(Arena_get_used(perm), 672); - - return 0; -} - -i32 test_json_object() { - Arena perm = Arena_new(128e3); - - JSON doc = JSON_parse_raw(&perm, "{\"key\": \"value\"}"); - - t_assert_equal(doc.as.object.len, 1); - StrView key = *Vec_get(doc.as.object.keys, StrView, 0); - t_assert_strequal(key, S("key")); - JSON value = *JSONObject_get(doc.as.object, S("key")); - t_assert_strequal(value.as.string, S("value")); - t_assert_equal(Arena_get_used(perm), 672); - - return 0; -} - -i32 test_json_boolean() { - Arena perm = Arena_new(128e3); - - JSON doc = JSON_parse_raw(&perm, "{\"a\": true, \"b\": false}"); - - JSON a = *JSONObject_get(doc.as.object, S("a")); - t_assert_equal(a.as.boolean, true); - JSON b = *JSONObject_get(doc.as.object, S("b")); - t_assert_equal(b.as.boolean, false); - t_assert_equal(Arena_get_used(perm), 672); - - return 0; -} - -i32 test_json_float() { - Arena perm = Arena_new(128e3); - - JSON doc = JSON_parse_raw(&perm, "[1.2, 2.3]"); - t_assert_equal(doc.as.array.len, 2); - JSON first = *Vec_get(doc.as.array, JSON, 0); - t_assert_fequal(first.as.floating, 1.2); - JSON second = *Vec_get(doc.as.array, JSON, 1); - t_assert_fequal(second.as.floating, 2.3); - t_assert_equal(Arena_get_used(perm), 576); - - return 0; -} - -i32 test_json_null() { - Arena perm = Arena_new(128e3); - - JSON doc = JSON_parse_raw(&perm, "[null]"); - t_assert_equal(doc.as.array.len, 1); - JSON first = *Vec_get(doc.as.array, JSON, 0); - t_assert_equal(first.type, JSON_NULL); - t_assert_equal(Arena_get_used(perm), 576); - - return 0; -} - -i32 test_json_long_spaces() { - Arena perm = Arena_new(128e3); - JSON doc = JSON_parse_raw( - &perm, "{\t \t \t \t \t }"); - - t_assert_equal(doc.as.object.len, 0); - - return 0; -} - -i32 test_json_multiline() { - Arena perm = Arena_new(128e3); - MemoryFile file = - load_file(&perm, "tests/test_json/test_json_multiline.json"); - JSON doc = JSON_parse(&perm, file.content, file.size); - JSON target_size_mb = *JSONObject_get(doc.as.object, S("target_size_mb")); - t_assert_equal(target_size_mb.as.integer, 1); - JSON generated_at = *JSONObject_get(doc.as.object, S("generated_at")); - t_assert_strequal(generated_at.as.string, S("2025-07-22T10:36:30.974926")); - - return 0; -} - -i32 test_json_nested_object() { - Arena perm = Arena_new(128e3); - - JSON doc = JSON_parse_raw(&perm, "{\"1\":{\"2\":{}}}"); - - JSON lvl_1 = *JSONObject_get(doc.as.object, S("1")); - t_assert_equal(lvl_1.type, JSON_OBJECT); - JSON lvl_2 = *JSONObject_get(lvl_1.as.object, S("2")); - t_assert_equal(lvl_2.type, JSON_OBJECT); - return 0; -} - -i32 test_json_array_in_object() { - Arena perm = Arena_new(128e3); - JSON doc = JSON_parse_raw(&perm, "{\"tags\": [\"TWvZi0\",\"pM0TPv9X\"]}"); - - JSON tags = *JSONObject_get(doc.as.object, S("tags")); - t_assert_equal(tags.type, JSON_ARRAY); - t_assert_equal(tags.as.array.len, 2); - - return 0; -} - -i32 test_json_complex_multiline() { - Arena perm = Arena_new(128e3); - MemoryFile file = - load_file(&perm, "tests/test_json/test_json_complex_multiline.json"); - JSON doc = JSON_parse(&perm, file.content, file.size); - - JSON id = *JSONObject_get(doc.as.object, S("id")); - t_assert_equal(id.as.integer, 819228); - JSON metadata = *JSONObject_get(doc.as.object, S("metadata")); - JSON preferences = *JSONObject_get(metadata.as.object, S("preferences")); - JSON theme = *JSONObject_get(preferences.as.object, S("theme")); - t_assert_strequal(theme.as.string, S("auto")); - - return 0; -} - -i32 test_negative_numbers() { - Arena perm = Arena_new(128e3); - JSON doc = JSON_parse_raw(&perm, "[-1, -2.5]"); - - JSON integer = *Vec_get(doc.as.array, JSON, 0); - t_assert_equal(integer.as.integer, -1); - JSON floating = *Vec_get(doc.as.array, JSON, 1); - t_assert_fequal(floating.as.floating, -2.5); - - return 0; -} - -i32 test_json_backspaces() { - Arena perm = Arena_new(128e3); - MemoryFile file = - load_file(&perm, "tests/test_json/test_json_backspaces.json"); - JSON doc = JSON_parse(&perm, file.content, file.size); - - t_assert_strequal(doc.as.string, S("weird text\\")); - return 0; -} diff --git a/tests/test_json/test_json_backspaces.json b/tests/test_json/test_json_backspaces.json deleted file mode 100644 index ceb65d6..0000000 --- a/tests/test_json/test_json_backspaces.json +++ /dev/null @@ -1 +0,0 @@ -"weird text\\" diff --git a/tests/test_json/test_json_complex_multiline.json b/tests/test_json/test_json_complex_multiline.json deleted file mode 100644 index a0cfc9b..0000000 --- a/tests/test_json/test_json_complex_multiline.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "id": 819228, - "username": "rCrRv4PRnUNuAy", - "email": "xzbwrzj@zwod.com", - "first_name": "4WH7g7PsOEm5", - "last_name": "6ulndxUgjbIayl", - "age": 30, - "phone": "+1-529-712-3931", - "is_active": false, - "balance": 9347.49, - "tags": [ - "TWvZi0", - "pM0TPv9X" - ], - "metadata": { - "last_login": "2024-06-13T21:22:32Z", - "login_count": 245, - "preferences": { - "theme": "auto", - "notifications": true, - "language": "en" - } - } -} diff --git a/tests/test_json/test_json_multiline.json b/tests/test_json/test_json_multiline.json deleted file mode 100644 index 7cb5f4c..0000000 --- a/tests/test_json/test_json_multiline.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "generated_at": "2025-07-22T10:36:30.974926", - "target_size_mb": 1, - "generator_version": "1.0" -} diff --git a/tests/test_string.c b/tests/test_string.c deleted file mode 100644 index 297e294..0000000 --- a/tests/test_string.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "../include/string.h" -#include "../include/testing.h" -#include "../include/types.h" -#include <stdio.h> - -i32 test_string_literal_equality() { - t_assert_strequal(S("Bonjour"), S("Bonjour")); - return 0; -} - -i32 test_string_copy() { - Arena perm = Arena_new(128e3); - Str src = S("Hello"); - - Str cpy = Str_copy(&perm, src.data, src.len); - - t_assert_strequal(src, cpy); - t_assert_equal(Arena_get_used(perm), 5); - - return 0; -} - -i32 test_fast_string() { - bytex32 quote_mask = _mm256_set1_epi8('"'); - byte *s = malloc(32 * sizeof(byte)); - s = "abcdefghijklmnopqrstuvwxyzabcdef"; - - bytex32 chunk = _mm256_loadu_si256((bytex32 *)s); - bytex32 cmp = _mm256_cmpeq_epi8(chunk, quote_mask); - i32 mask = _mm256_movemask_epi8(cmp); - t_assert_equal(_mm_popcnt_u32(mask), 0); - - s = "abcdefghijklm\"nopqrstuvwxyzabcde"; - - chunk = _mm256_loadu_si256((bytex32 *)s); - cmp = _mm256_cmpeq_epi8(chunk, quote_mask); - mask = _mm256_movemask_epi8(cmp); - t_assert_equal(_mm_popcnt_u32(mask), 1); - - return 0; -} diff --git a/tests/test_time.c b/tests/test_time.c deleted file mode 100644 index 3ab4d3e..0000000 --- a/tests/test_time.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "../include/testing.h" -#include "../include/time.h" -#include "../include/types.h" - -i32 test_time_diff() { - Time start = Time_get(); - Time end = Time_get(); - - Duration diff = Time_diff(end, start); - t_assert_equal(diff.s, 0); - - return 0; -} diff --git a/tests/test_vec.c b/tests/test_vec.c deleted file mode 100644 index 502335b..0000000 --- a/tests/test_vec.c +++ /dev/null @@ -1,88 +0,0 @@ -#include "../include/testing.h" -#include "../include/vec.h" - -typedef struct { - i32 x; - i32 y; -} Point; - -i32 test_int_vec() { - Arena perm = Arena_new(128e3); - - Vec vec = Vec_new(&perm, i32, 2); - i32 *tmp = new(&perm, i32, 1); - *tmp = 1; - Vec_push(&perm, &vec, tmp); - *tmp = 2; - Vec_push(&perm, &vec, tmp); - - t_assert_equal(*Vec_get(vec, i32, 0), 1); - t_assert_equal(*Vec_get(vec, i32, 1), 2); - t_assert_equal(vec.cap, 2); - - *tmp = 3; - Vec_push(&perm, &vec, tmp); - - t_assert_equal(*Vec_get(vec, i32, 2), 3); - t_assert_equal(vec.cap, 4); - - return 0; -} - -i32 test_vec_push() { - Arena perm = Arena_new(128e3); - Vec v = Vec_new(&perm, i32, 4); - - i32 vals[] = {10, 20, 30}; - for (i32 i = 0; i < 3; i++) Vec_push(&perm, &v, &vals[i]); - - t_assert_equal(v.len, 3); - t_assert_equal(*Vec_get(v, i32, 0), 10); - t_assert_equal(*Vec_get(v, i32, 1), 20); - t_assert_equal(*Vec_get(v, i32, 2), 30); - t_assert_equal(Arena_get_used(perm), v.cap * sizeof(i32)); - - return 0; -} - -i32 test_vec_grow() { - Arena perm = Arena_new(128e3); - Vec v = Vec_new(&perm, i32, 2); - - for (i32 i = 0; i < 8; i++) Vec_push(&perm, &v, &i); - - t_assert_equal(v.len, 8); - t_assert_equal(Arena_get_used(perm), sizeof(i32) * (2 + 4 + 8)); - - return 0; -} - -i32 test_vec_struct() { - Arena perm = Arena_new(128e3); - Vec v = Vec_new(&perm, Point, 2); - - Point p1 = {1, 2}, p2 = {3, 4}; - Vec_push(&perm, &v, &p1); - Vec_push(&perm, &v, &p2); - - Point *r0 = Vec_get(v, Point, 0); - Point *r1 = Vec_get(v, Point, 1); - t_assert_equal(r0->x, 1); - t_assert_equal(r0->y, 2); - t_assert_equal(r1->x, 3); - t_assert_equal(r1->y, 4); - t_assert_equal(Arena_get_used(perm), 16); - - return 0; -} - -i32 test_vec_initial_len() { - Arena perm = Arena_new(128e3); - Vec v = Vec_new(&perm, i32, 4); - - t_assert_equal(v.len, 0); - t_assert_equal(v.cap, 4); - t_assert_equal(Arena_get_used(perm), 16); - - return 0; -} |
