diff options
Diffstat (limited to 'tests/un')
-rw-r--r-- | tests/un/allocs.c | 37 | ||||
-rw-r--r-- | tests/un/lists.c | 6 | ||||
-rw-r--r-- | tests/un/math.c | 14 | ||||
-rw-r--r-- | tests/un/mathd.c | 424 | ||||
-rw-r--r-- | tests/un/mathf.c | 424 | ||||
-rw-r--r-- | tests/un/matrix.c | 3 | ||||
-rw-r--r-- | tests/un/memctl.c | 42 | ||||
-rw-r--r-- | tests/un/strings.c | 40 | ||||
-rw-r--r-- | tests/un/win_wstr.c | 8 |
9 files changed, 431 insertions, 567 deletions
diff --git a/tests/un/allocs.c b/tests/un/allocs.c index 3348e70..220c2c8 100644 --- a/tests/un/allocs.c +++ b/tests/un/allocs.c @@ -4,8 +4,10 @@ int main(void) { u64 i, size, *value; size = UN_KB(1); + un_alloc_temp_init(UN_KB(4)); + { // std - Allocator std = un_allocator_get_standard(); + Allocator std = un_alloc_std_get(); void *mem = un_memory_alloc(size, std); if (mem != NULL) { @@ -14,7 +16,7 @@ int main(void) { } { // temp - Allocator temp = un_allocator_get_temporary(); + Allocator temp = un_alloc_temp_get(); u8 *mem = (u8*) un_memory_alloc(size, temp); assert(mem != NULL); @@ -23,28 +25,29 @@ int main(void) { mem[i] = 0xAB; } - un_memory_destroy(&temp); + un_alloc_temp_reset(); } { // arena - Allocator arena = un_allocator_create_arena(size); + Allocator arena = un_alloc_arena_create(size * 8); - for (i = 0; i < 1000; i++) { - value = un_memory_alloc(8, arena); + for (i = 0; i < size; i++) { + value = un_memory_alloc_align(8, 8, arena); + assert(value != NULL); *value = 0xAC; } - un_memory_destroy(&arena); + un_alloc_arena_destroy(&arena); } - { // wrapper - Allocator wrapper = un_allocator_create_wrapper(un_allocator_create_arena(size)); - - for (i = 0; i < 1000; i++) { - value = un_memory_alloc(8, wrapper); - *value = 0xAC; - } - - un_memory_destroy(&wrapper); - } + // { // wrapper + // Allocator wrapper = un_alloc_create_wrapper(un_allocator_create_arena(size)); + // + // for (i = 0; i < 1000; i++) { + // value = un_memory_alloc(8, wrapper); + // *value = 0xAC; + // } + // + // un_memory_destroy(&wrapper); + // } } diff --git a/tests/un/lists.c b/tests/un/lists.c index bacb358..afab83e 100644 --- a/tests/un/lists.c +++ b/tests/un/lists.c @@ -7,8 +7,10 @@ int main(void) { size = UN_LIST_STANDARD_CAPACITY; times = 4; + un_alloc_temp_init(UN_MB(50)); + { - list.alloc = un_allocator_get_temporary(); + list.alloc = un_alloc_temp_get(); list.element_size = sizeof(u64); assert(un_list_get(&list, 0) == NULL); @@ -42,7 +44,7 @@ int main(void) { assert(list.capacity == (size * 2)); - un_list_destroy(&list, true); + un_list_destroy(&list); assert(list.data == NULL); } diff --git a/tests/un/math.c b/tests/un/math.c index 8b8df67..87bea6b 100644 --- a/tests/un/math.c +++ b/tests/un/math.c @@ -3,9 +3,9 @@ int main() { // Lerping { - f64 d; + double d; real r; - f32 f; + float f; r = un_m_lerpr(1.0f, 2.0f, 0.5f); assert(fabs(r - 1.5f) < EPSILON); @@ -19,17 +19,17 @@ int main() { // Test Bezier curve functions { - f64 d; + double d; real r; - f32 f; + float f; - un_m_bezierf(&f, 0.0f, 1.0f, 2.0f, 3.0f, 0.5f); + f = un_m_bezierf(0.0f, 1.0f, 2.0f, 3.0f, 0.5f); assert(fabsf(f - 1.5f) < EPSILON); - un_m_bezierd(&d, 0.0, 1.0, 2.0, 3.0, 0.5); + d = un_m_bezierd(0.0, 1.0, 2.0, 3.0, 0.5); assert(fabs(d - 1.5) < EPSILON); - un_m_bezierr(&r, 0.0, 1.0, 2.0, 3.0, 0.5); + r = un_m_bezierr(0.0, 1.0, 2.0, 3.0, 0.5); assert(fabs(r - 1.5) < EPSILON); } diff --git a/tests/un/mathd.c b/tests/un/mathd.c index 829a4a6..10ef24b 100644 --- a/tests/un/mathd.c +++ b/tests/un/mathd.c @@ -3,305 +3,257 @@ int main() { /* 2d */ { - f64 a[2] = {1.0, 2.0}; - f64 b[2] = {3.0, 4.0}; - f64 n[2] = {0.0, 1.0}; - f64 v[2]; + double2 a = {1.0, 2.0}; + double2 b = {3.0, 4.0}; + double2 n = {0.0, 1.0}; + double2 v; - un_m_add2d(v, a, b); - assert(fabs(v[0] - 4.0) < EPSILON); - assert(fabs(v[1] - 6.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_add2d(a, b); + assert(fabs(v.x - 4.0) < EPSILON); + assert(fabs(v.y - 6.0) < EPSILON); - un_m_sub2d(v, a, b); - assert(fabs(v[0] + 2.0) < EPSILON); - assert(fabs(v[1] + 2.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_sub2d(a, b); + assert(fabs(v.x + 2.0) < EPSILON); + assert(fabs(v.y + 2.0) < EPSILON); - un_m_add_scalar2d(v, a, 1); - assert(fabs(v[0] - 2.0) < EPSILON); - assert(fabs(v[1] - 3.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_add_scalar2d(a, 1); + assert(fabs(v.x - 2.0) < EPSILON); + assert(fabs(v.y - 3.0) < EPSILON); - un_m_sub_scalar2d(v, a, 1); - assert(fabs(v[0]) < EPSILON); - assert(fabs(v[1] - 1.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_sub_scalar2d(a, 1); + assert(fabs(v.x) < EPSILON); + assert(fabs(v.y - 1.0) < EPSILON); - un_m_mul_scalar2d(v, a, 2); - assert(fabs(v[0] - 2.0) < EPSILON); - assert(fabs(v[1] - 4.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_mul_scalar2d(a, 2); + assert(fabs(v.x - 2.0) < EPSILON); + assert(fabs(v.y - 4.0) < EPSILON); - un_m_div_scalar2d(v, a, 2); - assert(fabs(v[0] - 0.5) < EPSILON); - assert(fabs(v[1] - 1.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_div_scalar2d(a, 2); + assert(fabs(v.x - 0.5) < EPSILON); + assert(fabs(v.y - 1.0) < EPSILON); - un_m_dot2d(v, a, b); - assert(fabs(v[0] - 11.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_dot2d(a, b); + assert(fabs(v.x - 11.0) < EPSILON); - un_m_hadamard2d(v, a, b); - assert(fabs(v[0] - 3.0) < EPSILON); - assert(fabs(v[1] - 8.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_hadamard2d(a, b); + assert(fabs(v.x - 3.0) < EPSILON); + assert(fabs(v.y - 8.0) < EPSILON); - un_m_project2d(v, a, b); - assert(fabs(v[0] - 1.32) < EPSILON); - assert(fabs(v[1] - 1.76) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_project2d(a, b); + assert(fabs(v.x - 1.32) < EPSILON); + assert(fabs(v.y - 1.76) < EPSILON); - un_m_cross2d(v, a); - assert(fabs(v[0] - 2.0) < EPSILON); - assert(fabs(v[1] + 1.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_cross2d(a); + assert(fabs(v.x - 2.0) < EPSILON); + assert(fabs(v.y + 1.0) < EPSILON); - un_m_magnitude2d(v, b); - assert(fabs(v[0] - 5.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_magnitude2d(b); + assert(fabs(v.x - 5.0) < EPSILON); - un_m_magnitude_sqr2d(v, b); - assert(fabs(v[0] - 25.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_magnitude_sqr2d(b); + assert(fabs(v.x - 25.0) < EPSILON); - un_m_distance2d(v, a, b); - assert(fabs(v[0] - sqrt(8.0)) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_distance2d(a, b); + assert(fabs(v.x - sqrt(8.0)) < EPSILON); - un_m_distance_sqr2d(v, a, b); - assert(fabs(v[0] - 8.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_distance_sqr2d(a, b); + assert(fabs(v.x - 8.0) < EPSILON); - un_m_normalize2d(v, b); - assert(fabs(v[0] - 0.6) < EPSILON); - assert(fabs(v[1] - 0.8) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_normalize2d(b); + assert(fabs(v.x - 0.6) < EPSILON); + assert(fabs(v.y - 0.8) < EPSILON); - un_m_reflect2d(v, a, n); - assert(fabs(v[0] + a[0]) < EPSILON); - assert(fabs(v[1] - a[1]) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_reflect2d(a, n); + assert(fabs(v.x + a.x) < EPSILON); + assert(fabs(v.y - a.y) < EPSILON); } /* 3d */ { - f64 a[3] = {1.0, 2.0, 3.0}; - f64 b[3] = {3.0, 4.0, 5.0}; - f64 n[3] = {0.0, 1.0, 0.0}; - f64 v[3]; + double3 a = {1.0, 2.0, 3.0}; + double3 b = {3.0, 4.0, 5.0}; + double3 n = {0.0, 1.0, 0.0}; + double3 v; - un_m_add3d(v, a, b); - assert(fabs(v[0] - 4.0) < EPSILON); - assert(fabs(v[1] - 6.0) < EPSILON); - assert(fabs(v[2] - 8.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_add3d(a, b); + assert(fabs(v.x - 4.0) < EPSILON); + assert(fabs(v.y - 6.0) < EPSILON); + assert(fabs(v.z - 8.0) < EPSILON); - un_m_sub3d(v, a, b); - assert(fabs(v[0] + 2.0) < EPSILON); - assert(fabs(v[1] + 2.0) < EPSILON); - assert(fabs(v[2] + 2.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_sub3d(a, b); + assert(fabs(v.x + 2.0) < EPSILON); + assert(fabs(v.y + 2.0) < EPSILON); + assert(fabs(v.z + 2.0) < EPSILON); - un_m_add_scalar3d(v, a, 1); - assert(fabs(v[0] - 2.0) < EPSILON); - assert(fabs(v[1] - 3.0) < EPSILON); - assert(fabs(v[2] - 4.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_add_scalar3d(a, 1); + assert(fabs(v.x - 2.0) < EPSILON); + assert(fabs(v.y - 3.0) < EPSILON); + assert(fabs(v.z - 4.0) < EPSILON); - un_m_sub_scalar3d(v, a, 1); - assert(fabs(v[0]) < EPSILON); - assert(fabs(v[1] - 1.0) < EPSILON); - assert(fabs(v[2] - 2.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_sub_scalar3d(a, 1); + assert(fabs(v.x) < EPSILON); + assert(fabs(v.y - 1.0) < EPSILON); + assert(fabs(v.z - 2.0) < EPSILON); - un_m_mul_scalar3d(v, a, 2); - assert(fabs(v[0] - 2.0) < EPSILON); - assert(fabs(v[1] - 4.0) < EPSILON); - assert(fabs(v[2] - 6.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_mul_scalar3d(a, 2); + assert(fabs(v.x - 2.0) < EPSILON); + assert(fabs(v.y - 4.0) < EPSILON); + assert(fabs(v.z - 6.0) < EPSILON); - un_m_div_scalar3d(v, a, 2); - assert(fabs(v[0] - 0.5) < EPSILON); - assert(fabs(v[1] - 1.0) < EPSILON); - assert(fabs(v[2] - 1.5) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_div_scalar3d(a, 2); + assert(fabs(v.x - 0.5) < EPSILON); + assert(fabs(v.y - 1.0) < EPSILON); + assert(fabs(v.z - 1.5) < EPSILON); - un_m_dot3d(v, a, b); - assert(fabs(v[0] - 26.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_dot3d(a, b); + assert(fabs(v.x - 26.0) < EPSILON); - un_m_hadamard3d(v, a, b); - assert(fabs(v[0] - 3.0) < EPSILON); - assert(fabs(v[1] - 8.0) < EPSILON); - assert(fabs(v[2] - 15.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_hadamard3d(a, b); + assert(fabs(v.x - 3.0) < EPSILON); + assert(fabs(v.y - 8.0) < EPSILON); + assert(fabs(v.z - 15.0) < EPSILON); - un_m_project3d(v, a, b); - assert(fabs(v[0] - 1.56) < EPSILON); - assert(fabs(v[1] - 2.08) < EPSILON); - assert(fabs(v[2] - 2.6) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_project3d(a, b); + assert(fabs(v.x - 1.56) < EPSILON); + assert(fabs(v.y - 2.08) < EPSILON); + assert(fabs(v.z - 2.6) < EPSILON); - un_m_cross3d(v, a, b); - assert(fabs(v[0] + 2.0) < EPSILON); - assert(fabs(v[1] - 4.0) < EPSILON); - assert(fabs(v[2] + 2.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_cross3d(a, b); + assert(fabs(v.x + 2.0) < EPSILON); + assert(fabs(v.y - 4.0) < EPSILON); + assert(fabs(v.z + 2.0) < EPSILON); - un_m_magnitude3d(v, b); - assert(fabs(v[0] - sqrt(50.0)) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_magnitude3d(b); + assert(fabs(v.x - sqrt(50.0)) < EPSILON); - un_m_magnitude_sqr3d(v, b); - assert(fabs(v[0] - 50.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_magnitude_sqr3d(b); + assert(fabs(v.x - 50.0) < EPSILON); - un_m_distance3d(v, a, b); - assert(fabs(v[0] - sqrt(12.0)) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_distance3d(a, b); + assert(fabs(v.x - sqrt(12.0)) < EPSILON); - un_m_distance_sqr3d(v, a, b); - assert(fabs(v[0] - 12.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_distance_sqr3d(a, b); + assert(fabs(v.x - 12.0) < EPSILON); - un_m_normalize3d(v, b); - assert(fabs(v[0] - 0.424264) < EPSILON); - assert(fabs(v[1] - 0.565685) < EPSILON); - assert(fabs(v[2] - 0.707107) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_normalize3d(b); + assert(fabs(v.x - 0.424264) < EPSILON); + assert(fabs(v.y - 0.565685) < EPSILON); + assert(fabs(v.z - 0.707107) < EPSILON); - un_m_reflect3d(v, a, n); - assert(fabs(v[0] + a[0]) < EPSILON); - assert(fabs(v[1] - a[1]) < EPSILON); - assert(fabs(v[2] + a[2]) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_reflect3d(a, n); + assert(fabs(v.x + a.x) < EPSILON); + assert(fabs(v.y - a.y) < EPSILON); + assert(fabs(v.z + a.z) < EPSILON); } /* 4d */ { - f64 a[4] = {1.0, 2.0, 3.0, 4.0}; - f64 b[4] = {3.0, 4.0, 5.0, 6.0}; - f64 n[4] = {0.0, 1.0, 0.0, 0.0}; - f64 v[4]; + double4 a = {1.0, 2.0, 3.0, 4.0}; + double4 b = {3.0, 4.0, 5.0, 6.0}; + double4 n = {0.0, 1.0, 0.0, 0.0}; + double4 v; - un_m_add4d(v, a, b); - assert(fabs(v[0] - 4.0) < EPSILON); - assert(fabs(v[1] - 6.0) < EPSILON); - assert(fabs(v[2] - 8.0) < EPSILON); - assert(fabs(v[3] - 10.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_add4d(a, b); + assert(fabs(v.x - 4.0) < EPSILON); + assert(fabs(v.y - 6.0) < EPSILON); + assert(fabs(v.z - 8.0) < EPSILON); + assert(fabs(v.w - 10.0) < EPSILON); - un_m_sub4d(v, a, b); - assert(fabs(v[0] + 2.0) < EPSILON); - assert(fabs(v[1] + 2.0) < EPSILON); - assert(fabs(v[2] + 2.0) < EPSILON); - assert(fabs(v[3] + 2.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_sub4d(a, b); + assert(fabs(v.x + 2.0) < EPSILON); + assert(fabs(v.y + 2.0) < EPSILON); + assert(fabs(v.z + 2.0) < EPSILON); + assert(fabs(v.w + 2.0) < EPSILON); - un_m_add_scalar4d(v, a, 1); - assert(fabs(v[0] - 2.0) < EPSILON); - assert(fabs(v[1] - 3.0) < EPSILON); - assert(fabs(v[2] - 4.0) < EPSILON); - assert(fabs(v[3] - 5.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_add_scalar4d(a, 1); + assert(fabs(v.x - 2.0) < EPSILON); + assert(fabs(v.y - 3.0) < EPSILON); + assert(fabs(v.z - 4.0) < EPSILON); + assert(fabs(v.w - 5.0) < EPSILON); - un_m_sub_scalar4d(v, a, 1); - assert(fabs(v[0]) < EPSILON); - assert(fabs(v[1] - 1.0) < EPSILON); - assert(fabs(v[2] - 2.0) < EPSILON); - assert(fabs(v[3] - 3.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_sub_scalar4d(a, 1); + assert(fabs(v.x) < EPSILON); + assert(fabs(v.y - 1.0) < EPSILON); + assert(fabs(v.z - 2.0) < EPSILON); + assert(fabs(v.w - 3.0) < EPSILON); - un_m_mul_scalar4d(v, a, 2); - assert(fabs(v[0] - 2.0) < EPSILON); - assert(fabs(v[1] - 4.0) < EPSILON); - assert(fabs(v[2] - 6.0) < EPSILON); - assert(fabs(v[3] - 8.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_mul_scalar4d(a, 2); + assert(fabs(v.x - 2.0) < EPSILON); + assert(fabs(v.y - 4.0) < EPSILON); + assert(fabs(v.z - 6.0) < EPSILON); + assert(fabs(v.w - 8.0) < EPSILON); - un_m_div_scalar4d(v, a, 2); - assert(fabs(v[0] - 0.5) < EPSILON); - assert(fabs(v[1] - 1.0) < EPSILON); - assert(fabs(v[2] - 1.5) < EPSILON); - assert(fabs(v[3] - 2.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_div_scalar4d(a, 2); + assert(fabs(v.x - 0.5) < EPSILON); + assert(fabs(v.y - 1.0) < EPSILON); + assert(fabs(v.z - 1.5) < EPSILON); + assert(fabs(v.w - 2.0) < EPSILON); - un_m_dot4d(v, a, b); - assert(fabs(v[0] - 50.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_dot4d(a, b); + assert(fabs(v.x - 50.0) < EPSILON); - un_m_hadamard4d(v, a, b); - assert(fabs(v[0] - 3.0) < EPSILON); - assert(fabs(v[1] - 8.0) < EPSILON); - assert(fabs(v[2] - 15.0) < EPSILON); - assert(fabs(v[3] - 24.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_hadamard4d(a, b); + assert(fabs(v.x - 3.0) < EPSILON); + assert(fabs(v.y - 8.0) < EPSILON); + assert(fabs(v.z - 15.0) < EPSILON); + assert(fabs(v.w - 24.0) < EPSILON); - un_m_project4d(v, a, b); - assert(fabs(v[0] - 1.744186) < EPSILON); - assert(fabs(v[1] - 2.325581) < EPSILON); - assert(fabs(v[2] - 2.906976) < EPSILON); - assert(fabs(v[3] - 3.488372) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_project4d(a, b); + assert(fabs(v.x - 1.744186) < EPSILON); + assert(fabs(v.y - 2.325581) < EPSILON); + assert(fabs(v.z - 2.906976) < EPSILON); + assert(fabs(v.w - 3.488372) < EPSILON); - un_m_magnitude4d(v, b); - assert(fabs(v[0] - sqrt(86.0)) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_magnitude4d(b); + assert(fabs(v.x - sqrt(86.0)) < EPSILON); - un_m_magnitude_sqr4d(v, b); - assert(fabs(v[0] - 86.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_magnitude_sqr4d(b); + assert(fabs(v.x - 86.0) < EPSILON); - un_m_distance4d(v, a, b); - assert(fabs(v[0] - 4.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_distance4d(a, b); + assert(fabs(v.x - 4.0) < EPSILON); - un_m_distance_sqr4d(v, a, b); - assert(fabs(v[0] - 16.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_distance_sqr4d(a, b); + assert(fabs(v.x - 16.0) < EPSILON); - un_m_normalize4d(v, b); - assert(fabs(v[0] - 0.323498) < EPSILON); - assert(fabs(v[1] - 0.431331) < EPSILON); - assert(fabs(v[2] - 0.539164) < EPSILON); - assert(fabs(v[3] - 0.646997) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_normalize4d(b); + assert(fabs(v.x - 0.323498) < EPSILON); + assert(fabs(v.y - 0.431331) < EPSILON); + assert(fabs(v.z - 0.539164) < EPSILON); + assert(fabs(v.w - 0.646997) < EPSILON); - un_m_reflect4d(v, a, n); - assert(fabs(v[0] + a[0]) < EPSILON); - assert(fabs(v[1] - a[1]) < EPSILON); - assert(fabs(v[2] + a[2]) < EPSILON); - assert(fabs(v[3] + a[3]) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_reflect4d(a, n); + assert(fabs(v.x + a.x) < EPSILON); + assert(fabs(v.y - a.y) < EPSILON); + assert(fabs(v.z + a.z) < EPSILON); + assert(fabs(v.w + a.w) < EPSILON); } { // Complex - f64 v[2], a[2] = { 1, 2 }, b[2] = { 3, 4 }, c[2] = { 1, 0 }, d[3] = { 0, 1 }; + double2 v; + double2 a = { 1, 2 }; + double2 b = { 3, 4 }; + double2 c = { 1, 0 }; + double2 d = { 0, 1 }; - un_m_complex_addd(v, a, b); - assert((v[0] - 4.0) < EPSILON); - assert((v[1] - 6.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_complex_addd(a, b); + assert((v.x - 4.0) < EPSILON); + assert((v.y - 6.0) < EPSILON); - un_m_complex_subd(v, a, b); - assert((v[0] + 2.0) < EPSILON); - assert((v[1] + 2.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_complex_subd(a, b); + assert((v.x + 2.0) < EPSILON); + assert((v.y + 2.0) < EPSILON); - un_m_complex_muld(v, a, b); - assert((v[0] + 5.0) < EPSILON); - assert((v[1] - 10.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_complex_muld(a, b); + assert((v.x + 5.0) < EPSILON); + assert((v.y - 10.0) < EPSILON); - un_m_complex_divd(v, c, d); - assert(v[0] < EPSILON); - assert((v[1] + 1.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_complex_divd(c, d); + assert(v.x < EPSILON); + assert((v.y + 1.0) < EPSILON); - un_m_complex_magnituded(v, c); - assert((v[0] - 1.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_complex_magnituded(c); + assert((v.x - 1.0) < EPSILON); } return 0; diff --git a/tests/un/mathf.c b/tests/un/mathf.c index 2f95f40..5b8d4c1 100644 --- a/tests/un/mathf.c +++ b/tests/un/mathf.c @@ -3,305 +3,257 @@ int main() { /* 2d */ { - f32 a[2] = {1.0f, 2.0f}; - f32 b[2] = {3.0f, 4.0f}; - f32 n[2] = {0.0f, 1.0f}; - f32 v[2]; + float2 a = { 1.0f, 2.0f }; + float2 b = { 3.0f, 4.0f }; + float2 n = { 0.0f, 1.0f }; + float2 v; - un_m_add2f(v, a, b); - assert(fabsf(v[0] - 4.0f) < EPSILON); - assert(fabsf(v[1] - 6.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_add2f(a, b); + assert(fabsf(v.x - 4.0f) < EPSILON); + assert(fabsf(v.y - 6.0f) < EPSILON); - un_m_sub2f(v, a, b); - assert(fabsf(v[0] + 2.0f) < EPSILON); - assert(fabsf(v[1] + 2.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_sub2f(a, b); + assert(fabsf(v.x + 2.0f) < EPSILON); + assert(fabsf(v.y + 2.0f) < EPSILON); - un_m_add_scalar2f(v, a, 1); - assert(fabsf(v[0] - 2.0f) < EPSILON); - assert(fabsf(v[1] - 3.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_add_scalar2f(a, 1); + assert(fabsf(v.x - 2.0f) < EPSILON); + assert(fabsf(v.y - 3.0f) < EPSILON); - un_m_sub_scalar2f(v, a, 1); - assert(fabsf(v[0]) < EPSILON); - assert(fabsf(v[1] - 1.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_sub_scalar2f(a, 1); + assert(fabsf(v.x) < EPSILON); + assert(fabsf(v.y - 1.0f) < EPSILON); - un_m_mul_scalar2f(v, a, 2); - assert(fabsf(v[0] - 2.0f) < EPSILON); - assert(fabsf(v[1] - 4.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_mul_scalar2f(a, 2); + assert(fabsf(v.x - 2.0f) < EPSILON); + assert(fabsf(v.y - 4.0f) < EPSILON); - un_m_div_scalar2f(v, a, 2); - assert(fabsf(v[0] - 0.5f) < EPSILON); - assert(fabsf(v[1] - 1.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_div_scalar2f(a, 2); + assert(fabsf(v.x - 0.5f) < EPSILON); + assert(fabsf(v.y - 1.0f) < EPSILON); - un_m_dot2f(v, a, b); - assert(fabsf(v[0] - 11.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_dot2f(a, b); + assert(fabsf(v.x - 11.0f) < EPSILON); - un_m_hadamard2f(v, a, b); - assert(fabsf(v[0] - 3.0f) < EPSILON); - assert(fabsf(v[1] - 8.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_hadamard2f(a, b); + assert(fabsf(v.x - 3.0f) < EPSILON); + assert(fabsf(v.y - 8.0f) < EPSILON); - un_m_project2f(v, a, b); - assert(fabsf(v[0] - 1.32f) < EPSILON); - assert(fabsf(v[1] - 1.76f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_project2f(a, b); + assert(fabsf(v.x - 1.32f) < EPSILON); + assert(fabsf(v.y - 1.76f) < EPSILON); - un_m_cross2f(v, a); - assert(fabsf(v[0] - 2.0f) < EPSILON); - assert(fabsf(v[1] + 1.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_cross2f(a); + assert(fabsf(v.x - 2.0f) < EPSILON); + assert(fabsf(v.y + 1.0f) < EPSILON); - un_m_magnitude2f(v, b); - assert(fabsf(v[0] - 5.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_magnitude2f(b); + assert(fabsf(v.x - 5.0f) < EPSILON); - un_m_magnitude_sqr2f(v, b); - assert(fabsf(v[0] - 25.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_magnitude_sqr2f(b); + assert(fabsf(v.x - 25.0f) < EPSILON); - un_m_distance2f(v, a, b); - assert(fabsf(v[0] - sqrtf(8.0f)) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_distance2f(a, b); + assert(fabsf(v.x - sqrtf(8.0f)) < EPSILON); - un_m_distance_sqr2f(v, a, b); - assert(fabsf(v[0] - 8.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_distance_sqr2f(a, b); + assert(fabsf(v.x - 8.0f) < EPSILON); - un_m_normalize2f(v, b); - assert(fabsf(v[0] - 0.6f) < EPSILON); - assert(fabsf(v[1] - 0.8f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_normalize2f(b); + assert(fabsf(v.x - 0.6f) < EPSILON); + assert(fabsf(v.y - 0.8f) < EPSILON); - un_m_reflect2f(v, a, n); - assert(fabsf(v[0] + a[0]) < EPSILON); - assert(fabsf(v[1] - a[1]) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_reflect2f(a, n); + assert(fabsf(v.x + a.x) < EPSILON); + assert(fabsf(v.y - a.y) < EPSILON); } /* 3d */ { - f32 a[3] = {1.0f, 2.0f, 3.0f}; - f32 b[3] = {3.0f, 4.0f, 5.0f}; - f32 n[3] = {0.0f, 1.0f, 0.0f}; - f32 v[3]; + float3 a = { 1.0f, 2.0f, 3.0f }; + float3 b = { 3.0f, 4.0f, 5.0f }; + float3 n = { 0.0f, 1.0f, 0.0f }; + float3 v; - un_m_add3f(v, a, b); - assert(fabsf(v[0] - 4.0f) < EPSILON); - assert(fabsf(v[1] - 6.0f) < EPSILON); - assert(fabsf(v[2] - 8.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_add3f(a, b); + assert(fabsf(v.x - 4.0f) < EPSILON); + assert(fabsf(v.y - 6.0f) < EPSILON); + assert(fabsf(v.z - 8.0f) < EPSILON); - un_m_sub3f(v, a, b); - assert(fabsf(v[0] + 2.0f) < EPSILON); - assert(fabsf(v[1] + 2.0f) < EPSILON); - assert(fabsf(v[2] + 2.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_sub3f(a, b); + assert(fabsf(v.x + 2.0f) < EPSILON); + assert(fabsf(v.y + 2.0f) < EPSILON); + assert(fabsf(v.z + 2.0f) < EPSILON); - un_m_add_scalar3f(v, a, 1); - assert(fabsf(v[0] - 2.0f) < EPSILON); - assert(fabsf(v[1] - 3.0f) < EPSILON); - assert(fabsf(v[2] - 4.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_add_scalar3f(a, 1); + assert(fabsf(v.x - 2.0f) < EPSILON); + assert(fabsf(v.y - 3.0f) < EPSILON); + assert(fabsf(v.z - 4.0f) < EPSILON); - un_m_sub_scalar3f(v, a, 1); - assert(fabsf(v[0]) < EPSILON); - assert(fabsf(v[1] - 1.0f) < EPSILON); - assert(fabsf(v[2] - 2.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_sub_scalar3f(a, 1); + assert(fabsf(v.x) < EPSILON); + assert(fabsf(v.y - 1.0f) < EPSILON); + assert(fabsf(v.z - 2.0f) < EPSILON); - un_m_mul_scalar3f(v, a, 2); - assert(fabsf(v[0] - 2.0f) < EPSILON); - assert(fabsf(v[1] - 4.0f) < EPSILON); - assert(fabsf(v[2] - 6.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_mul_scalar3f(a, 2); + assert(fabsf(v.x - 2.0f) < EPSILON); + assert(fabsf(v.y - 4.0f) < EPSILON); + assert(fabsf(v.z - 6.0f) < EPSILON); - un_m_div_scalar3f(v, a, 2); - assert(fabsf(v[0] - 0.5f) < EPSILON); - assert(fabsf(v[1] - 1.0f) < EPSILON); - assert(fabsf(v[2] - 1.5f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_div_scalar3f(a, 2); + assert(fabsf(v.x - 0.5f) < EPSILON); + assert(fabsf(v.y - 1.0f) < EPSILON); + assert(fabsf(v.z - 1.5f) < EPSILON); - un_m_dot3f(v, a, b); - assert(fabsf(v[0] - 26.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_dot3f(a, b); + assert(fabsf(v.x - 26.0f) < EPSILON); - un_m_hadamard3f(v, a, b); - assert(fabsf(v[0] - 3.0f) < EPSILON); - assert(fabsf(v[1] - 8.0f) < EPSILON); - assert(fabsf(v[2] - 15.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_hadamard3f(a, b); + assert(fabsf(v.x - 3.0f) < EPSILON); + assert(fabsf(v.y - 8.0f) < EPSILON); + assert(fabsf(v.z - 15.0f) < EPSILON); - un_m_project3f(v, a, b); - assert(fabsf(v[0] - 1.56f) < EPSILON); - assert(fabsf(v[1] - 2.08f) < EPSILON); - assert(fabsf(v[2] - 2.6f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_project3f(a, b); + assert(fabsf(v.x - 1.56f) < EPSILON); + assert(fabsf(v.y - 2.08f) < EPSILON); + assert(fabsf(v.z - 2.6f) < EPSILON); - un_m_cross3f(v, a, b); - assert(fabsf(v[0] + 2.0f) < EPSILON); - assert(fabsf(v[1] - 4.0f) < EPSILON); - assert(fabsf(v[2] + 2.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_cross3f(a, b); + assert(fabsf(v.x + 2.0f) < EPSILON); + assert(fabsf(v.y - 4.0f) < EPSILON); + assert(fabsf(v.z + 2.0f) < EPSILON); - un_m_magnitude3f(v, b); - assert(fabsf(v[0] - sqrtf(50.0f)) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_magnitude3f(b); + assert(fabsf(v.x - sqrtf(50.0f)) < EPSILON); - un_m_magnitude_sqr3f(v, b); - assert(fabsf(v[0] - 50.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_magnitude_sqr3f(b); + assert(fabsf(v.x - 50.0f) < EPSILON); - un_m_distance3f(v, a, b); - assert(fabsf(v[0] - sqrtf(12.0f)) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_distance3f(a, b); + assert(fabsf(v.x - sqrtf(12.0f)) < EPSILON); - un_m_distance_sqr3f(v, a, b); - assert(fabsf(v[0] - 12.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v.x = un_m_distance_sqr3f(a, b); + assert(fabsf(v.x - 12.0f) < EPSILON); - un_m_normalize3f(v, b); - assert(fabsf(v[0] - 0.424264f) < EPSILON); - assert(fabsf(v[1] - 0.565685f) < EPSILON); - assert(fabsf(v[2] - 0.707107f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_normalize3f(b); + assert(fabsf(v.x - 0.424264f) < EPSILON); + assert(fabsf(v.y - 0.565685f) < EPSILON); + assert(fabsf(v.z - 0.707107f) < EPSILON); - un_m_reflect3f(v, a, n); - assert(fabsf(v[0] + a[0]) < EPSILON); - assert(fabsf(v[1] - a[1]) < EPSILON); - assert(fabsf(v[2] + a[2]) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 3); + v = un_m_reflect3f(a, n); + assert(fabsf(v.x + a.x) < EPSILON); + assert(fabsf(v.y - a.y) < EPSILON); + assert(fabsf(v.z + a.z) < EPSILON); } /* 4d */ { - f32 a[4] = {1.0f, 2.0f, 3.0f, 4.0f}; - f32 b[4] = {3.0f, 4.0f, 5.0f, 6.0f}; - f32 n[4] = {0.0f, 1.0f, 0.0f, 0.0f}; - f32 v[4]; + float4 a = {1.0f, 2.0f, 3.0f, 4.0f}; + float4 b = {3.0f, 4.0f, 5.0f, 6.0f}; + float4 n = {0.0f, 1.0f, 0.0f, 0.0f}; + float4 v; - un_m_add4f(v, a, b); - assert(fabsf(v[0] - 4.0f) < EPSILON); - assert(fabsf(v[1] - 6.0f) < EPSILON); - assert(fabsf(v[2] - 8.0f) < EPSILON); - assert(fabsf(v[3] - 10.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_add4f(a, b); + assert(fabsf(v.x - 4.0f) < EPSILON); + assert(fabsf(v.y - 6.0f) < EPSILON); + assert(fabsf(v.z - 8.0f) < EPSILON); + assert(fabsf(v.w - 10.0f) < EPSILON); - un_m_sub4f(v, a, b); - assert(fabsf(v[0] + 2.0f) < EPSILON); - assert(fabsf(v[1] + 2.0f) < EPSILON); - assert(fabsf(v[2] + 2.0f) < EPSILON); - assert(fabsf(v[3] + 2.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_sub4f(a, b); + assert(fabsf(v.x + 2.0f) < EPSILON); + assert(fabsf(v.y + 2.0f) < EPSILON); + assert(fabsf(v.z + 2.0f) < EPSILON); + assert(fabsf(v.w + 2.0f) < EPSILON); - un_m_add_scalar4f(v, a, 1); - assert(fabsf(v[0] - 2.0f) < EPSILON); - assert(fabsf(v[1] - 3.0f) < EPSILON); - assert(fabsf(v[2] - 4.0f) < EPSILON); - assert(fabsf(v[3] - 5.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_add_scalar4f(a, 1); + assert(fabsf(v.x - 2.0f) < EPSILON); + assert(fabsf(v.y - 3.0f) < EPSILON); + assert(fabsf(v.z - 4.0f) < EPSILON); + assert(fabsf(v.w - 5.0f) < EPSILON); - un_m_sub_scalar4f(v, a, 1); - assert(fabsf(v[0]) < EPSILON); - assert(fabsf(v[1] - 1.0f) < EPSILON); - assert(fabsf(v[2] - 2.0f) < EPSILON); - assert(fabsf(v[3] - 3.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_sub_scalar4f(a, 1); + assert(fabsf(v.x) < EPSILON); + assert(fabsf(v.y - 1.0f) < EPSILON); + assert(fabsf(v.z - 2.0f) < EPSILON); + assert(fabsf(v.w - 3.0f) < EPSILON); - un_m_mul_scalar4f(v, a, 2); - assert(fabsf(v[0] - 2.0f) < EPSILON); - assert(fabsf(v[1] - 4.0f) < EPSILON); - assert(fabsf(v[2] - 6.0f) < EPSILON); - assert(fabsf(v[3] - 8.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_mul_scalar4f(a, 2); + assert(fabsf(v.x - 2.0f) < EPSILON); + assert(fabsf(v.y - 4.0f) < EPSILON); + assert(fabsf(v.z - 6.0f) < EPSILON); + assert(fabsf(v.w - 8.0f) < EPSILON); - un_m_div_scalar4f(v, a, 2); - assert(fabsf(v[0] - 0.5f) < EPSILON); - assert(fabsf(v[1] - 1.0f) < EPSILON); - assert(fabsf(v[2] - 1.5f) < EPSILON); - assert(fabsf(v[3] - 2.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_div_scalar4f(a, 2); + assert(fabsf(v.x - 0.5f) < EPSILON); + assert(fabsf(v.y - 1.0f) < EPSILON); + assert(fabsf(v.z - 1.5f) < EPSILON); + assert(fabsf(v.w - 2.0f) < EPSILON); - un_m_dot4f(v, a, b); - assert(fabsf(v[0] - 50.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_dot4f(a, b); + assert(fabsf(v.x - 50.0f) < EPSILON); - un_m_hadamard4f(v, a, b); - assert(fabsf(v[0] - 3.0f) < EPSILON); - assert(fabsf(v[1] - 8.0f) < EPSILON); - assert(fabsf(v[2] - 15.0f) < EPSILON); - assert(fabsf(v[3] - 24.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_hadamard4f(a, b); + assert(fabsf(v.x - 3.0f) < EPSILON); + assert(fabsf(v.y - 8.0f) < EPSILON); + assert(fabsf(v.z - 15.0f) < EPSILON); + assert(fabsf(v.w - 24.0f) < EPSILON); - un_m_project4f(v, a, b); - assert(fabsf(v[0] - 1.744186f) < EPSILON); - assert(fabsf(v[1] - 2.325581f) < EPSILON); - assert(fabsf(v[2] - 2.906976f) < EPSILON); - assert(fabsf(v[3] - 3.488372f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_project4f(a, b); + assert(fabsf(v.x - 1.744186f) < EPSILON); + assert(fabsf(v.y - 2.325581f) < EPSILON); + assert(fabsf(v.z - 2.906976f) < EPSILON); + assert(fabsf(v.w - 3.488372f) < EPSILON); - un_m_magnitude4f(v, b); - assert(fabsf(v[0] - sqrtf(86.0f)) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_magnitude4f(b); + assert(fabsf(v.x - sqrtf(86.0f)) < EPSILON); - un_m_magnitude_sqr4f(v, b); - assert(fabsf(v[0] - 86.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_magnitude_sqr4f(b); + assert(fabsf(v.x - 86.0f) < EPSILON); - un_m_distance4f(v, a, b); - assert(fabsf(v[0] - 4.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_distance4f(a, b); + assert(fabsf(v.x - 4.0f) < EPSILON); - un_m_distance_sqr4f(v, a, b); - assert(fabsf(v[0] - 16.0f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v.x = un_m_distance_sqr4f(a, b); + assert(fabsf(v.x - 16.0f) < EPSILON); - un_m_normalize4f(v, b); - assert(fabsf(v[0] - 0.323498f) < EPSILON); - assert(fabsf(v[1] - 0.431331f) < EPSILON); - assert(fabsf(v[2] - 0.539164f) < EPSILON); - assert(fabsf(v[3] - 0.646997f) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_normalize4f(b); + assert(fabsf(v.x - 0.323498f) < EPSILON); + assert(fabsf(v.y - 0.431331f) < EPSILON); + assert(fabsf(v.z - 0.539164f) < EPSILON); + assert(fabsf(v.w - 0.646997f) < EPSILON); - un_m_reflect4f(v, a, n); - assert(fabsf(v[0] + a[0]) < EPSILON); - assert(fabsf(v[1] - a[1]) < EPSILON); - assert(fabsf(v[2] + a[2]) < EPSILON); - assert(fabsf(v[3] + a[3]) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 4); + v = un_m_reflect4f(a, n); + assert(fabsf(v.x + a.x) < EPSILON); + assert(fabsf(v.y - a.y) < EPSILON); + assert(fabsf(v.z + a.z) < EPSILON); + assert(fabsf(v.w + a.w) < EPSILON); } { // Complex - f32 v[2], a[2] = { 1, 2 }, b[2] = { 3, 4 }, c[2] = { 1, 0 }, d[3] = { 0, 1 }; + float2 a = { 1, 2 }; + float2 b = { 3, 4 }; + float2 c = { 1, 0 }; + float2 d = { 0, 1 }; + float2 v; - un_m_complex_addf(v, a, b); - assert((v[0] - 4.0) < EPSILON); - assert((v[1] - 6.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_complex_addf(a, b); + assert((v.x - 4.0) < EPSILON); + assert((v.y - 6.0) < EPSILON); - un_m_complex_subf(v, a, b); - assert((v[0] + 2.0) < EPSILON); - assert((v[1] + 2.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_complex_subf(a, b); + assert((v.x + 2.0) < EPSILON); + assert((v.y + 2.0) < EPSILON); - un_m_complex_mulf(v, a, b); - assert((v[0] + 5.0) < EPSILON); - assert((v[1] - 10.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_complex_mulf(a, b); + assert((v.x + 5.0) < EPSILON); + assert((v.y - 10.0) < EPSILON); - un_m_complex_divf(v, c, d); - assert(v[0] < EPSILON); - assert((v[1] + 1.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v = un_m_complex_divf(c, d); + assert(v.x < EPSILON); + assert((v.y + 1.0) < EPSILON); - un_m_complex_magnitudef(v, c); - assert((v[0] - 1.0) < EPSILON); - un_memory_set((void*)v, 0, sizeof(*v) * 2); + v.x = un_m_complex_magnitudef(c); + assert((v.x - 1.0) < EPSILON); } return 0; diff --git a/tests/un/matrix.c b/tests/un/matrix.c index deb9e4c..60fd9a5 100644 --- a/tests/un/matrix.c +++ b/tests/un/matrix.c @@ -1,8 +1,5 @@ #include <ungrateful.h> int main() { - f32 output[UN_MATRIX_SIZE]; - u64 i; - return 0; } diff --git a/tests/un/memctl.c b/tests/un/memctl.c deleted file mode 100644 index 1614442..0000000 --- a/tests/un/memctl.c +++ /dev/null @@ -1,42 +0,0 @@ -#include <ungrateful.h> - -#define SIZE UN_KB(1) - -u8 buffer_a[SIZE]; -u8 buffer_b[SIZE]; - -int main(void) { - u64 i; - for (i = 0; i < SIZE; i++) { - buffer_a[i] += i << 2; - } - - { - un_memory_copy(buffer_b, buffer_a, SIZE); - - for (i = 0; i < SIZE; i++) { - assert(buffer_b[i] == buffer_a[i]); - } - - assert(un_memory_compare(buffer_a, buffer_b, SIZE) == 0); - - buffer_b[SIZE - 10] = 0; - assert(un_memory_compare(buffer_a, buffer_b, SIZE) == 1); - } - - { - un_memory_move(buffer_a + SIZE / 4, buffer_a, SIZE / 2); - - assert(un_memory_compare(buffer_b, buffer_a + SIZE / 4, SIZE / 2) == 0); - } - - { - un_memory_set(buffer_a, 0, SIZE); - - for (i = 0; i < SIZE; i++) { - assert(buffer_a[i] == 0); - } - } - - return 0; -} diff --git a/tests/un/strings.c b/tests/un/strings.c index 87f1aed..72d84ad 100644 --- a/tests/un/strings.c +++ b/tests/un/strings.c @@ -2,21 +2,19 @@ int main(void) { List splits; - Allocator talloc; + Allocator alloc; String result; - assert(un_string_get_length(UN_CSTR "Hello") == 5); - assert(un_string_get_length(UN_CSTR "") == 0); - assert(un_string_get_length(UN_CSTR "What") == 4); + un_alloc_temp_init(UN_MB(4)); - talloc = un_allocator_get_temporary(); + alloc = un_alloc_temp_get(); - result = un_string_concat(UN_STR("Hello "), UN_STR("world!"), talloc); + result = un_string_concat(UN_STR("Hello "), UN_STR("world!"), alloc); assert(!un_string_compare(result, UN_STR("Hello world!"))); - assert(!un_string_compare(un_string_copy(result, talloc), result)); + assert(!un_string_compare(un_string_copy(result, alloc), result)); - splits = un_string_split(UN_STR("Eatin burger wit no honey mustard"), UN_STR(" "), talloc); + splits = un_string_split(UN_STR("Eatin burger wit no honey mustard"), UN_STR(" "), alloc); assert(splits.count == 6); @@ -27,9 +25,9 @@ int main(void) { assert(!un_string_compare(*(String*)un_list_get(&splits, 4), UN_STR("honey"))); assert(!un_string_compare(*(String*)un_list_get(&splits, 5), UN_STR("mustard"))); - un_list_destroy(&splits, true); + un_list_destroy(&splits); - splits = un_string_split(UN_STR("Eatin||burger||wit||no||honey||mustard"), UN_STR("||"), talloc); + splits = un_string_split(UN_STR("Eatin||burger||wit||no||honey||mustard"), UN_STR("||"), alloc); assert(splits.count == 6); @@ -40,9 +38,9 @@ int main(void) { assert(!un_string_compare(*(String*)un_list_get(&splits, 4), UN_STR("honey"))); assert(!un_string_compare(*(String*)un_list_get(&splits, 5), UN_STR("mustard"))); - un_list_destroy(&splits, true); + un_list_destroy(&splits); - splits = un_string_split(UN_STR("Eatin||burger||wit||no||honey||mustard||a"), UN_STR("||"), talloc); + splits = un_string_split(UN_STR("Eatin||burger||wit||no||honey||mustard||a"), UN_STR("||"), alloc); assert(splits.count == 7); @@ -54,9 +52,9 @@ int main(void) { assert(!un_string_compare(*(String*)un_list_get(&splits, 5), UN_STR("mustard"))); assert(!un_string_compare(*(String*)un_list_get(&splits, 6), UN_STR("a"))); - un_list_destroy(&splits, true); + un_list_destroy(&splits); - splits = un_string_split(UN_STR("a||Eatin||burger||wit||no||honey||mustard||a"), UN_STR("||"), talloc); + splits = un_string_split(UN_STR("a||Eatin||burger||wit||no||honey||mustard||a"), UN_STR("||"), alloc); assert(splits.count == 8); @@ -69,9 +67,9 @@ int main(void) { assert(!un_string_compare(*(String*)un_list_get(&splits, 6), UN_STR("mustard"))); assert(!un_string_compare(*(String*)un_list_get(&splits, 7), UN_STR("a"))); - un_list_destroy(&splits, true); + un_list_destroy(&splits); - splits = un_string_split(UN_STR("||Eatin||burger||wit||no||honey||mustard||"), UN_STR("||"), talloc); + splits = un_string_split(UN_STR("||Eatin||burger||wit||no||honey||mustard||"), UN_STR("||"), alloc); assert(splits.count == 6); @@ -82,9 +80,9 @@ int main(void) { assert(!un_string_compare(*(String*)un_list_get(&splits, 4), UN_STR("honey"))); assert(!un_string_compare(*(String*)un_list_get(&splits, 5), UN_STR("mustard"))); - assert(!un_string_compare(un_string_join(splits, UN_STR(" "), talloc), UN_STR("Eatin burger wit no honey mustard"))); + assert(!un_string_compare(un_string_join(splits, UN_STR(" "), alloc), UN_STR("Eatin burger wit no honey mustard"))); - un_list_destroy(&splits, true); + un_list_destroy(&splits); assert(!un_string_compare(un_string_substring(UN_STR("HelloWorld!"), 5, 6), UN_STR("World!"))); assert(!un_string_compare(un_string_substring(UN_STR("HelloWorld!"), 0, 11), UN_STR("HelloWorld!"))); @@ -93,11 +91,11 @@ int main(void) { assert(un_string_index_of(UN_STR("CP/M"), (u8)'/', 0) == 2); assert(un_string_index_of_last(UN_STR("https://github.com/bonmas14"), (u8)'/') == 18); - assert(!un_string_compare(un_string_swap(UN_STR("/path/from/unix/systems/"), (u8)'/', (u8) '\\', talloc), UN_STR("\\path\\from\\unix\\systems\\"))); + assert(!un_string_compare(un_string_swap(UN_STR("/path/from/unix/systems/"), (u8)'/', (u8) '\\', alloc), UN_STR("\\path\\from\\unix\\systems\\"))); assert(!un_string_compare( - un_string_format(talloc, UN_STR("/path/%s/unix/a %d %u %%"), UN_STR("test"), (s64)-100, (u64)404), + un_string_format(alloc, UN_STR("/path/%s/unix/a %d %u %%"), UN_STR("test"), (s64)-100, (u64)404), UN_STR("/path/test/unix/a -100 404 %") ) - ); + ); } diff --git a/tests/un/win_wstr.c b/tests/un/win_wstr.c index 55cec57..51fc820 100644 --- a/tests/un/win_wstr.c +++ b/tests/un/win_wstr.c @@ -10,11 +10,13 @@ int main(void) { int main(void) { wchar *caption, *text; - Allocator talloc = un_allocator_get_temporary(); + un_alloc_temp_init(UN_KB(4)); - caption = un_wstring_from_cstring(UN_CSTR "Внимание", talloc); - text = un_wstring_from_cstring(UN_CSTR "Тестовое сообщение", talloc); + Allocator talloc = un_alloc_temp_get(); + + caption = un_wstring_from_cstring((u8 *)"Внимание", talloc); + text = un_wstring_from_cstring((u8 *)"Тестовое сообщение", talloc); assert(caption != NULL); |