(load "Test.carp") (load "Vector.carp") (load "Geometry.carp") (use Test) (use Vector2) (use Geometry) (use Double) (defn main [] (with-test test (assert-equal test &(init 1.0 2.0) &(init 1.0 2.0) "= operator works") (assert-op test &(init 1.0 2.0) &(init 1.0 1.0) "/= operator works" Vector2./=) (assert-equal test &(init 3.0 3.0) &(+ &(init 2.0 1.0) &(init 1.0 2.0)) "+ operator works") (assert-equal test &(init 1.0 -1.0) &(- &(init 2.0 1.0) &(init 1.0 2.0)) "- operator works") (assert-equal test &(init 4.0 2.0) &(* &(init 2.0 1.0) 2.0) "* operator works") (assert-equal test &(init 1.0 0.5) &(/ &(init 2.0 1.0) 2.0) "/ operator works") (assert-equal test 5.0 (mag &(init 3.0 4.0)) "mag works") (assert-equal test 101.0 (mag-sq &(init 10.0 1.0)) "mag-sq works") (assert-equal test &(init 0.6 0.8) &(normalize &(init 3.0 4.0)) "normalize works") (assert-equal test 5.0 (dist &(init 10.0 10.0) &(init 7.0 6.0)) "dist works") (assert-equal test 0.0 (heading &(init 1.0 0.0)) "heading works") (assert-op test &(init -2.0 1.0) &(rotate &(init 1.0 2.0) (degree-to-radians 90.0)) "rotate works" approx) (assert-equal test 90.0 (radians-to-degree (Vector2.angle-between &(init 1.0 0.0) &(init 0.0 1.0))) "angle-between works") (assert-equal test 44.0 (dot &(init 10.0 2.0) &(init 2.0 12.0)) "dot works") (assert-equal test &(init 2.5 5.0) &(lerp &(init 0.0 0.0) &(init 5.0 10.0) 0.5) "lerp works") (print-test-results test) ))