libdgl/TEST/VECTOR2.C

135 lines
3.2 KiB
C++
Raw Normal View History

2018-04-30 18:23:39 -04:00
#include "vector2.h"
#include "dglvec2.h"
2018-04-30 18:23:39 -04:00
#include "helpers.h"
void test_vec2i(void) {
VEC2I a, b, c;
2018-04-30 18:23:39 -04:00
int i;
c = vec2i(3, 7);
2018-04-30 18:23:39 -04:00
ASSERT(c.x == 3 && c.y == 7);
vec2i_set(&c, 1, 2);
2018-04-30 18:23:39 -04:00
ASSERT(c.x == 1 && c.y == 2);
a = vec2i(1, 2);
b = vec2i(1, 2);
ASSERT(vec2i_equals(a, b));
2018-04-30 18:23:39 -04:00
a = vec2i(3, 4);
b = vec2i(1, 2);
2018-04-30 18:23:39 -04:00
c = vec2i_add(a, b);
2018-04-30 18:23:39 -04:00
ASSERT(c.x == 4 && c.y == 6);
c = vec2i_sub(a, b);
2018-04-30 18:23:39 -04:00
ASSERT(c.x == 2 && c.y == 2);
c = vec2i_mul(a, b);
2018-04-30 18:23:39 -04:00
ASSERT(c.x == 3 && c.y == 8);
c = vec2i_muls(a, 2);
2018-04-30 18:23:39 -04:00
ASSERT(c.x == 6 && c.y == 8);
c = vec2i_div(a, b);
2018-04-30 18:23:39 -04:00
ASSERT(c.x == 3 && c.y == 2);
c = vec2i_divs(a, 2);
2018-04-30 18:23:39 -04:00
ASSERT(c.x == 1 && c.y == 2);
a = vec2i(1, 1);
b = vec2i(1, 3);
i = vec2i_distance(a, b);
2018-04-30 18:23:39 -04:00
ASSERT(i == 2);
i = vec2i_distancesq(a, b);
2018-04-30 18:23:39 -04:00
ASSERT(i == 4);
a = vec2i(-12, 16);
b = vec2i(12, 9);
i = vec2i_dot(a, b);
2018-04-30 18:23:39 -04:00
ASSERT(i == 0);
a = vec2i(-3, 0);
i = vec2i_length(a);
2018-04-30 18:23:39 -04:00
ASSERT(i == 3);
i = vec2i_lengthsq(a);
2018-04-30 18:23:39 -04:00
ASSERT(i == 9);
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);
}
void test_vec2(void) {
VEC2 a, b, c;
fixed f;
2018-04-30 18:23:39 -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
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
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
a = vec2(FTOFIX(3.0f), FTOFIX(4.0f));
b = vec2(FTOFIX(1.0f), FTOFIX(2.0f));
2018-04-30 18:23:39 -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
c = vec2_sub(a, b);
ASSERT(c.x == FTOFIX(2.0f) && c.y == FTOFIX(2.0f));
2018-04-30 18:23:39 -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
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
c = vec2_div(a, b);
ASSERT(c.x == FTOFIX(3.0f) && c.y == FTOFIX(2.0f));
2018-04-30 18:23:39 -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
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
f = vec2_distancesq(a, b);
ASSERT(f == FTOFIX(4.0f));
2018-04-30 18:23:39 -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
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
f = vec2_lengthsq(a);
ASSERT(f == FTOFIX(9.0f));
2018-04-30 18:23:39 -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
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
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
}