graphviz-2999.20.2.1: tests/Data/GraphViz/AlgorithmsSpec.hs
{- |
Module : Data.GraphViz.AlgorithmsSpec
Description : Testing algorithms
Copyright : Matthew Sackman, Ivan Lazar Miljenovic
License : BSD3
Maintainer : Ivan.Miljenovic@gmail.com
-}
module Data.GraphViz.AlgorithmsSpec (spec) where
import Data.GraphViz.Algorithms (CanonicaliseOptions)
import Data.GraphViz.Testing.Instances ()
import Data.GraphViz.Testing.Properties (prop_canonicalise,
prop_canonicaliseEdges,
prop_canonicaliseNodes,
prop_transitive, prop_transitiveNodes)
import Data.GraphViz.Types.Canonical (DotGraph)
import Test.Hspec (Spec)
import Test.Hspec.QuickCheck (prop)
--------------------------------------------------------------------------------
spec :: Spec
spec = do
prop "Canonicalisation should be idempotent"
(prop_canonicalise :: CanonicaliseOptions -> DotGraph Int -> Bool)
prop "Canonicalisation shouldn't change any nodes"
(prop_canonicaliseNodes :: CanonicaliseOptions -> DotGraph Int -> Bool)
prop "Canonicalisation shouldn't change any edges"
(prop_canonicaliseEdges :: CanonicaliseOptions -> DotGraph Int -> Bool)
prop "Transitive reduction should be idempotent"
(prop_transitive :: CanonicaliseOptions -> DotGraph Int -> Bool)
prop "Transitive reduction shouldn't change any nodes"
(prop_transitiveNodes :: CanonicaliseOptions -> DotGraph Int -> Bool)