{- | 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)