aboutsummaryrefslogtreecommitdiff
path: root/Client/ThirdParty/libfixmath/tests/tests_lerp.c
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-30 22:25:37 +0800
committerchai <chaifix@163.com>2021-11-30 22:25:37 +0800
commit9e0e01b7f4375063f06e494113187d48614628e0 (patch)
tree21a4901612ad92c121f4c887a33b1bbbe87c6b00 /Client/ThirdParty/libfixmath/tests/tests_lerp.c
+init
Diffstat (limited to 'Client/ThirdParty/libfixmath/tests/tests_lerp.c')
-rw-r--r--Client/ThirdParty/libfixmath/tests/tests_lerp.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/Client/ThirdParty/libfixmath/tests/tests_lerp.c b/Client/ThirdParty/libfixmath/tests/tests_lerp.c
new file mode 100644
index 0000000..b3a04f6
--- /dev/null
+++ b/Client/ThirdParty/libfixmath/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;
+}