aboutsummaryrefslogtreecommitdiff
path: root/tests/un
diff options
context:
space:
mode:
Diffstat (limited to 'tests/un')
-rw-r--r--tests/un/allocs.c37
-rw-r--r--tests/un/lists.c6
-rw-r--r--tests/un/math.c14
-rw-r--r--tests/un/mathd.c424
-rw-r--r--tests/un/mathf.c424
-rw-r--r--tests/un/matrix.c3
-rw-r--r--tests/un/memctl.c42
-rw-r--r--tests/un/strings.c40
-rw-r--r--tests/un/win_wstr.c8
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);