penrose-0.1.1.1: test/Util/Tests.hs
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]