2018-04-30 18:23:39 -04:00
|
|
|
#include "vector2.h"
|
2020-07-19 19:24:48 -04:00
|
|
|
#include "dglvec2.h"
|
2018-04-30 18:23:39 -04:00
|
|
|
#include "helpers.h"
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
void test_vec2i(void) {
|
|
|
|
VEC2I a, b, c;
|
2018-04-30 18:23:39 -04:00
|
|
|
int i;
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2i(3, 7);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(c.x == 3 && c.y == 7);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
vec2i_set(&c, 1, 2);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(c.x == 1 && c.y == 2);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2i(1, 2);
|
|
|
|
b = vec2i(1, 2);
|
|
|
|
ASSERT(vec2i_equals(a, b));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2i(3, 4);
|
|
|
|
b = vec2i(1, 2);
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2i_add(a, b);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(c.x == 4 && c.y == 6);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2i_sub(a, b);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(c.x == 2 && c.y == 2);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2i_mul(a, b);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(c.x == 3 && c.y == 8);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2i_muls(a, 2);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(c.x == 6 && c.y == 8);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2i_div(a, b);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(c.x == 3 && c.y == 2);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2i_divs(a, 2);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(c.x == 1 && c.y == 2);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2i(1, 1);
|
|
|
|
b = vec2i(1, 3);
|
|
|
|
i = vec2i_distance(a, b);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(i == 2);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
i = vec2i_distancesq(a, b);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(i == 4);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2i(-12, 16);
|
|
|
|
b = vec2i(12, 9);
|
|
|
|
i = vec2i_dot(a, b);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(i == 0);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2i(-3, 0);
|
|
|
|
i = vec2i_length(a);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(i == 3);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
i = vec2i_lengthsq(a);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(i == 9);
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2i(5, 0);
|
|
|
|
b = vec2i(10, 0);
|
|
|
|
c = vec2i_lerp(a, b, 0.5f);
|
2018-04-30 18:23:39 -04:00
|
|
|
ASSERT(c.x == 7 && c.y == 0);
|
|
|
|
}
|
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
void test_vec2(void) {
|
|
|
|
VEC2 a, b, c;
|
|
|
|
fixed f;
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2(FTOFIX(3.0f), FTOFIX(7.0f));
|
|
|
|
ASSERT(c.x == FTOFIX(3.0f) && c.y == FTOFIX(7.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
vec2_set(&c, FTOFIX(1.0f), FTOFIX(2.0f));
|
|
|
|
ASSERT(c.x == FTOFIX(1.0f) && c.y == FTOFIX(2.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2(FTOFIX(1.0f), FTOFIX(2.0f));
|
|
|
|
b = vec2(FTOFIX(1.0f), FTOFIX(2.0f));
|
|
|
|
ASSERT(vec2_equals(a, b));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2(FTOFIX(3.0f), FTOFIX(4.0f));
|
|
|
|
b = vec2(FTOFIX(1.0f), FTOFIX(2.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2_add(a, b);
|
|
|
|
ASSERT(c.x == FTOFIX(4.0f) && c.y == FTOFIX(6.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2_sub(a, b);
|
|
|
|
ASSERT(c.x == FTOFIX(2.0f) && c.y == FTOFIX(2.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2_mul(a, b);
|
|
|
|
ASSERT(c.x == FTOFIX(3.0f) && c.y == FTOFIX(8.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2_muls(a, FTOFIX(0.5f));
|
|
|
|
ASSERT(c.x == FTOFIX(1.5f) && c.y == FTOFIX(2.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2_div(a, b);
|
|
|
|
ASSERT(c.x == FTOFIX(3.0f) && c.y == FTOFIX(2.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
c = vec2_divs(a, FTOFIX(0.5f));
|
|
|
|
ASSERT(c.x == FTOFIX(6.0f) && c.y == FTOFIX(8.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2(FTOFIX(1.0f), FTOFIX(1.0f));
|
|
|
|
b = vec2(FTOFIX(1.0f), FTOFIX(3.0f));
|
|
|
|
f = vec2_distance(a, b);
|
|
|
|
ASSERT(f == FTOFIX(2.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
f = vec2_distancesq(a, b);
|
|
|
|
ASSERT(f == FTOFIX(4.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2(FTOFIX(-12.0f), FTOFIX(16.0f));
|
|
|
|
b = vec2(FTOFIX(12.0f), FTOFIX(9.0f));
|
|
|
|
f = vec2_dot(a, b);
|
|
|
|
ASSERT(f == 0);
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2(FTOFIX(-3.0f), FTOFIX(0.0f));
|
|
|
|
f = vec2_length(a);
|
|
|
|
ASSERT(f == FTOFIX(3.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
f = vec2_lengthsq(a);
|
|
|
|
ASSERT(f == FTOFIX(9.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2(FTOFIX(7.0f), FTOFIX(7.0f));
|
|
|
|
c = vec2_normalize(a);
|
|
|
|
ASSERT(c.x == FTOFIX(0.70710f) && c.y == FTOFIX(0.70710f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2(FTOFIX(10.0f), FTOFIX(0.0f));
|
|
|
|
c = vec2_set_length(a, FTOFIX(2.0f));
|
|
|
|
ASSERT(c.x == FTOFIX(2.0f) && c.y == FTOFIX(0.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
|
2020-07-19 19:24:48 -04:00
|
|
|
a = vec2(FTOFIX(5.0f), FTOFIX(0.0f));
|
|
|
|
b = vec2(FTOFIX(10.0f), FTOFIX(0.0f));
|
|
|
|
c = vec2_lerp(a, b, FTOFIX(0.5f));
|
|
|
|
ASSERT(c.x == FTOFIX(7.5f) && c.y == FTOFIX(0.0f));
|
2018-04-30 18:23:39 -04:00
|
|
|
}
|
|
|
|
|