test: add tests for vectors
All checks were successful
CI / build (pull_request) Successful in 13s
CI / build (push) Successful in 13s

This commit was merged in pull request #6.
This commit is contained in:
2026-03-14 21:46:53 +01:00
parent fdb5dfd75e
commit 11c891c2f1
7 changed files with 4811 additions and 7 deletions

View File

@@ -1,13 +1,176 @@
#include <assert.h>
#include "unity.h"
#include "curtle/vector.h"
int main()
void setUp(void)
{
}
void tearDown(void)
{
}
void test_vec2_add()
{
struct vec2 a = { 1, 2 };
struct vec2 b = { 3, 4 };
struct vec2 r = vec2_add(a, b);
assert(r.x == 4);
assert(r.y == 6);
struct vec2 e = { 4, 6 };
TEST_ASSERT_EQUAL_MEMORY(&e, &r, 8);
}
void test_vec2_sub()
{
struct vec2 a = { 1, 2 };
struct vec2 b = { 3, 4 };
struct vec2 r = vec2_sub(a, b);
struct vec2 e = { -2, -2 };
TEST_ASSERT_EQUAL_MEMORY(&e, &r, 8);
}
void test_vec2_dot()
{
struct vec2 a = { 1, 2 };
struct vec2 b = { 3, 4 };
float r = vec2_dot(a, b);
TEST_ASSERT_EQUAL_FLOAT(11, r);
}
void test_vec2_det()
{
struct vec2 a = { 1, 2 };
struct vec2 b = { 3, 4 };
float r = vec2_det(a, b);
TEST_ASSERT_EQUAL_FLOAT(-2, r);
}
void test_vec2_scale()
{
struct vec2 a = { 1, 2 };
float s = 2;
struct vec2 r = vec2_scale(a, 2);
struct vec2 e = { 2, 4 };
TEST_ASSERT_EQUAL_MEMORY(&e, &r, 8);
}
void test_vec2_len()
{
struct vec2 a = { 4, 3 };
float r = vec2_len(a);
TEST_ASSERT_EQUAL_FLOAT(5, r);
}
void test_vec2_normalize()
{
struct vec2 a = { 4, 0 };
struct vec2 r = vec2_normalize(a);
struct vec2 e = { 1, 0 };
TEST_ASSERT_EQUAL_MEMORY(&e, &r, 8);
}
void test_vec3_add()
{
struct vec3 a = { 1, 2, 5 };
struct vec3 b = { 3, 4, 2 };
struct vec3 r = vec3_add(a, b);
struct vec3 e = { 4, 6, 7 };
TEST_ASSERT_EQUAL_MEMORY(&e, &r, 12);
}
void test_vec3_sub()
{
struct vec3 a = { 1, 2, 5 };
struct vec3 b = { 3, 4, 2 };
struct vec3 r = vec3_sub(a, b);
struct vec3 e = { -2, -2, 3 };
TEST_ASSERT_EQUAL_MEMORY(&e, &r, 12);
}
void test_vec3_dot()
{
struct vec3 a = { 1, 2, 5 };
struct vec3 b = { 3, 4, 2 };
float r = vec3_dot(a, b);
TEST_ASSERT_EQUAL_FLOAT(21, r);
}
void test_vec3_cross()
{
struct vec3 a = { 1, 2, 5 };
struct vec3 b = { 3, 4, 2 };
struct vec3 r = vec3_cross(a, b);
struct vec3 e = { -16, 13, -2 };
TEST_ASSERT_EQUAL_MEMORY(&e, &r, 12);
}
void test_vec3_scale()
{
struct vec3 a = { 1, 2, 5 };
float s = 2;
struct vec3 r = vec3_scale(a, 2);
struct vec3 e = { 2, 4, 10 };
TEST_ASSERT_EQUAL_MEMORY(&e, &r, 12);
}
void test_vec3_len()
{
struct vec3 a = { 4, 3, 12 };
float r = vec3_len(a);
TEST_ASSERT_EQUAL_FLOAT(13, r);
}
void test_vec3_normalize()
{
struct vec3 a = { 1, 2, 2 };
struct vec3 r = vec3_normalize(a);
struct vec3 e = { 1.f / 3.f, 2.f / 3.f, 2.f / 3.f };
TEST_ASSERT_EQUAL_MEMORY(&e, &r, 12);
}
int main(void)
{
UNITY_BEGIN();
RUN_TEST(test_vec2_add);
RUN_TEST(test_vec2_sub);
RUN_TEST(test_vec2_dot);
RUN_TEST(test_vec2_det);
RUN_TEST(test_vec2_scale);
RUN_TEST(test_vec2_len);
RUN_TEST(test_vec2_normalize);
RUN_TEST(test_vec3_add);
RUN_TEST(test_vec3_sub);
RUN_TEST(test_vec3_dot);
RUN_TEST(test_vec3_cross);
RUN_TEST(test_vec3_scale);
RUN_TEST(test_vec3_len);
RUN_TEST(test_vec3_normalize);
return UNITY_END();
}