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
]
|