--- /dev/null
+module Assertions
+where
+
+import Control.Monad (unless)
+import Test.HUnit
+
+import Comparisons
+import Point
+
+-- | An HUnit assertion that wraps the almost_equals function. Stolen
+-- from the definition of assertEqual in Test/HUnit/Base.hs.
+assertAlmostEqual :: String -> Double -> Double -> Assertion
+assertAlmostEqual preface expected actual =
+ unless (actual ~= expected) (assertFailure msg)
+ where msg = (if null preface then "" else preface ++ "\n") ++
+ "expected: " ++ show expected ++ "\n but got: " ++ show actual
+
+
+-- | An HUnit assertion that wraps the is_close function. Stolen
+-- from the definition of assertEqual in Test/HUnit/Base.hs.
+assertClose :: String -> Point -> Point -> Assertion
+assertClose preface expected actual =
+ unless (actual `is_close` expected) (assertFailure msg)
+ where msg = (if null preface then "" else preface ++ "\n") ++
+ "expected: " ++ show expected ++ "\n but got: " ++ show actual
+