aboutsummaryrefslogtreecommitdiff
path: root/tests/tests_lerp.c
diff options
context:
space:
mode:
authorMartin Baƙinka <marun1@email.cz>2021-04-29 08:40:06 +0200
committerGitHub <noreply@github.com>2021-04-29 09:40:06 +0300
commit35eb7753d29a9ad14b145a09c057a88131d6ede0 (patch)
treeebe2b69d32e12126c8a1e49c5e1d0012044c2bfa /tests/tests_lerp.c
parent951f522b13b1ea0068345369a98d18d862b29582 (diff)
downloadlibfixmath-35eb7753d29a9ad14b145a09c057a88131d6ede0.tar.gz
New unittests (#28)
Refactor unittests
Diffstat (limited to 'tests/tests_lerp.c')
-rw-r--r--tests/tests_lerp.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/tests_lerp.c b/tests/tests_lerp.c
new file mode 100644
index 0000000..b3a04f6
--- /dev/null
+++ b/tests/tests_lerp.c
@@ -0,0 +1,33 @@
+#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;
+}