module Util.Tests ( tests ) where import Test.Tasty import Test.Tasty.HUnit import Test.Tasty.QuickCheck as QC import Test.Tasty.SmallCheck as SC import Penrose.Util tests :: TestTree tests = testGroup "Utils tests" [properties, unitTests] properties :: TestTree properties = testGroup "Properties" [scProps, qcProps] distNonnegative :: Float -> Float -> Float -> Float -> Bool distNonnegative x1 y1 x2 y2 = dist (x1, y1) (x2, y2) >= 0 -- this is actually 1e-5 distNonNaN_atZero :: Assertion distNonNaN_atZero = isNaN (dist (0, 0) (0, 0)) @?= False scProps = testGroup "(checked by SmallCheck)" -- use SC.testProperty [] qcProps = testGroup "(checked by QuickCheck)" [QC.testProperty "dist: distance always non-negative" distNonnegative] -- Module: topic: function: property unitTests = testGroup "Unit tests" [testCase "autodiff: dist: no NaN" distNonNaN_atZero]