aboutsummaryrefslogtreecommitdiffstats
path: root/test/Distance.hs
blob: a59b4015793bf2823f51a296f6ffd6ed4195cd75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
module Distance
  ( distanceTests
  )
where

import Hedgehog (Property, (===))
import qualified Hedgehog as Hog
import qualified Hedgehog.Gen as Hog
import qualified Hedgehog.Range as Hog
import Verismith.Verilog.Distance
import Test.Tasty
import Test.Tasty.Hedgehog

distanceLess :: Property
distanceLess = Hog.property $ do
  x <- Hog.forAll (Hog.list (Hog.linear 0 15) Hog.alpha)
  y <- Hog.forAll (Hog.list (Hog.linear 0 15) Hog.alpha)
  Hog.assert $ udistance x y <= distance x y

distanceEq :: Property
distanceEq = Hog.property $ do
  x <- Hog.forAll (Hog.list (Hog.linear 0 15) Hog.alpha)
  distance x x === 0
  udistance x x === 0

distanceTests :: TestTree
distanceTests = testGroup "Distance tests"
  [ testProperty "Unordered distance <= distance" distanceLess
  , testProperty "distance x x === 0" distanceEq
  ]