82ecd61f5c
Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
39 lines
1.5 KiB
Haskell
39 lines
1.5 KiB
Haskell
module Xanthous.Util.GraphSpec (main, test) where
|
|
--------------------------------------------------------------------------------
|
|
import Test.Prelude
|
|
--------------------------------------------------------------------------------
|
|
import Xanthous.Util.Graph
|
|
import Data.Graph.Inductive.Basic
|
|
import Data.Graph.Inductive.Graph (labNodes, size, order)
|
|
import Data.Graph.Inductive.PatriciaTree
|
|
import Data.Graph.Inductive.Arbitrary
|
|
--------------------------------------------------------------------------------
|
|
|
|
main :: IO ()
|
|
main = defaultMain test
|
|
|
|
test :: TestTree
|
|
test = testGroup "Xanthous.Util.Graph"
|
|
[ testGroup "mstSubGraph"
|
|
[ testProperty "always produces a subgraph"
|
|
$ \(CG _ (graph :: Gr Int Int)) ->
|
|
let msg = mstSubGraph $ undir graph
|
|
in counterexample (show msg)
|
|
$ msg `isSubGraphOf` undir graph
|
|
, testProperty "returns a graph with the same nodes"
|
|
$ \(CG _ (graph :: Gr Int Int)) ->
|
|
let msg = mstSubGraph graph
|
|
in counterexample (show msg)
|
|
$ labNodes msg === labNodes graph
|
|
, testProperty "has nodes - 1 edges"
|
|
$ \(CG _ (graph :: Gr Int Int)) ->
|
|
order graph > 1 ==>
|
|
let msg = mstSubGraph graph
|
|
in counterexample (show msg)
|
|
$ size msg === order graph - 1
|
|
, testProperty "always produces a simple graph"
|
|
$ \(CG _ (graph :: Gr Int Int)) ->
|
|
let msg = mstSubGraph graph
|
|
in counterexample (show msg) $ isSimple msg
|
|
]
|
|
]
|