jak-project/test/goalc/source_templates/with_game/test-math.gc
2020-11-28 19:59:23 -05:00

41 lines
1.3 KiB
Common Lisp

(start-test "math")
(defmacro close-enough (x y)
`(< (fabs (- ,x ,y)) 0.00001)
)
(expect-eq #f (= 1.0 1.000001))
(expect-eq #t (close-enough 1.0 1.000001))
(expect-eq #t (= 1.0 1.00000))
(expect-eq #t (close-enough 1.0 1.00000))
(expect-eq #f (= 1.0 1.001))
(expect-eq #f (close-enough 1.0 1.001))
(expect-eq 1.0 (truncate 1.2))
(expect-eq 1.0 (truncate 1.998))
(expect-eq -1.0 (truncate -1.9))
(expect-eq #t (integral? -3.0))
(expect-eq #f (integral? 2.3))
(expect-eq #t (close-enough -0.1 (fractional-part -1.1)))
(expect-eq #t (close-enough 0.3 (fractional-part 4.3)))
(expect-eq 7 (log2 128))
(expect-eq 1.2 (fabs 1.2))
(expect-eq 23.2 (fabs -23.2))
(expect-eq 7.0 (seek 6. 12. 1.))
(expect-eq 12.0 (seek 6. 12. 100.))
(expect-eq 4.0 (seek 6.0 0.0 2.0))
(expect-eq 0.0 (seek 6.0 0.0 200.0))
(expect-eq 7.5 (lerp 5.0 10.0 0.5))
(expect-eq #t (close-enough 1.5 (lerp-scale 1.0 2.0 7.5 5.0 10.0)))
(expect-eq #t (close-enough 2.0 (lerp-scale 1.0 2.0 999.0 5.0 10.0)))
(expect-eq #t (close-enough 1.0 (lerp-scale 1.0 2.0 -999.0 5.0 10.0)))
(expect-eq #t (close-enough 2.3 (lerp-clamp 1.7 2.3 100.0)))
(expect-eq #t (close-enough 1.7 (lerp-clamp 1.7 2.3 -100.0)))
(expect-eq #t (close-enough 7.5 (lerp-clamp 5.0 10.0 0.5)))
(expect-eq 3 (seekl 1 5 2))
(expect-eq 5 (seekl 1 5 200))
(expect-eq 1 (seekl 12 0 11))
(expect-eq -2 (seekl 12 -2 1000))
(finish-test)