-- | The Assertions module contains assertions for use in HUnit -- tests. They primarily fill the need for an equality test that -- works with floating point numbers. 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