penrose-0.1.1.0: test/Utils/Tests.hs
module Utils.Tests (tests) where
import Test.Tasty
import Test.Tasty.SmallCheck as SC
import Test.Tasty.QuickCheck as QC
import Test.Tasty.HUnit
import Utils
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
]