libfixmath/tests/tests_lerp.c

34 lines
1.4 KiB
C

#include "tests_lerp.h"
#include "tests.h"
int test_lerp()
{
ASSERT_EQ_INT(fix16_lerp8(0, 2, 0), 0);
ASSERT_EQ_INT(fix16_lerp8(0, 2, 127), 0);
ASSERT_EQ_INT(fix16_lerp8(0, 2, 128), 1);
ASSERT_EQ_INT(fix16_lerp8(0, 2, 255), 1);
ASSERT_EQ_INT(fix16_lerp8(fix16_minimum, fix16_maximum, 0), fix16_minimum);
ASSERT_EQ_INT(fix16_lerp8(fix16_minimum, fix16_maximum, 255),
(fix16_maximum - (1 << 24)));
ASSERT_EQ_INT(fix16_lerp8(-fix16_maximum, fix16_maximum, 128), 0);
ASSERT_EQ_INT(fix16_lerp16(0, 2, 0), 0);
ASSERT_EQ_INT(fix16_lerp16(0, 2, 0x7fff), 0);
ASSERT_EQ_INT(fix16_lerp16(0, 2, 0x8000), 1);
ASSERT_EQ_INT(fix16_lerp16(0, 2, 0xffff), 1);
ASSERT_EQ_INT(fix16_lerp16(fix16_minimum, fix16_maximum, 0), fix16_minimum);
ASSERT_EQ_INT(fix16_lerp16(fix16_minimum, fix16_maximum, 0xffff),
(fix16_maximum - (1 << 16)));
ASSERT_EQ_INT(fix16_lerp16(-fix16_maximum, fix16_maximum, 0x8000), 0);
ASSERT_EQ_INT(fix16_lerp32(0, 2, 0), 0);
ASSERT_EQ_INT(fix16_lerp32(0, 2, 0x7fffffff), 0);
ASSERT_EQ_INT(fix16_lerp32(0, 2, 0x80000000), 1);
ASSERT_EQ_INT(fix16_lerp32(0, 2, 0xffffffff), 1);
ASSERT_EQ_INT(fix16_lerp32(fix16_minimum, fix16_maximum, 0), fix16_minimum);
ASSERT_EQ_INT(fix16_lerp32(fix16_minimum, fix16_maximum, 0xffffffff),
(fix16_maximum - 1));
ASSERT_EQ_INT(fix16_lerp32(-fix16_maximum, fix16_maximum, 0x80000000), 0);
return 0;
}