(load "Test.carp") (load "Vector.carp") (load "Geometry.carp") (use Test) (use Vector3) (use Geometry) (defn main [] (with-test test (assert-equal test &(init 1.0 2.0 3.0) &(init 1.0 2.0 3.0) "= operator works" = str) (assert-equal test &(init 1.0 2.0 3.0) &(init 1.0 1.0 3.0) "/= operator works" /= str) (assert-equal test &(init 3.0 3.0 4.5) &(+ &(init 2.0 1.0 2.0) &(init 1.0 2.0 2.5)) "+ operator works" = str) (assert-equal test &(init 1.0 -1.0 -1.5) &(- &(init 2.0 1.0 2.0) &(init 1.0 2.0 3.5)) "- operator works" = str) (assert-equal test &(init 4.0 2.0 2.2) &(* &(init 2.0 1.0 1.1) 2.0) "* operator works" = str) (assert-equal test &(init 1.0 0.5 0.25) &(/ &(init 2.0 1.0 0.5) 2.0) "/ operator works" = str) (assert-equal test 5.0 (mag &(init 3.0 4.0 0.0)) "mag works" Double.= Double.str) (assert-equal test 101.0 (mag-sq &(init 10.0 1.0 0.0)) "mag-sq works" Double.= Double.str) (assert-equal test &(init 0.6 0.8 0.0) &(normalize &(init 3.0 4.0 0.0)) "normalize works" = str) (assert-equal test 90.0 (radians-to-degree (angle-between &(init 1.0 0.0 0.0) &(init 0.0 1.0 0.0))) "angle-between works" Double.approx Double.str) (assert-equal test 53.0 (dot &(init 10.0 2.0 3.0) &(init 2.0 12.0 3.0)) "dot works" Double.= Double.str) (assert-equal test &(init 2.5 5.0 0.75) &(lerp &(init 0.0 0.0 0.5) &(init 5.0 10.0 2.0) 0.5) "lerp works" = str) (print-test-results test) ))