packages feed

hgraph-1.2.0.0: tests/Digraph/Load.hs

module Main where

import HGraph.Directed
import HGraph.Directed.Load
import qualified HGraph.Directed.AdjacencyMap as AM
import qualified Data.Set as S
import Data.Either

import Test.HUnit hiding (Node)
import System.Exit (exitFailure, exitSuccess)

tests = TestList                         
  [ TestLabel "Digraph 0" $ TestCase
    ( do
      let ed = loadEdgeList AM.emptyDigraph "1 0"
          Right d = ed
      assertBool "Is right"
        (isRight ed)
      assertEqual "Vertices"
        [0]
        (vertices d)
      assertEqual "Arcs"
        []
        (arcs d)
    )
  , TestLabel "Digraph 1" $ TestCase
    ( do
      let ed = loadEdgeList AM.emptyDigraph "2 1 0 1"
          Right d = ed
      assertBool "Is right"
        (isRight ed)
      assertEqual "Vertices"
        [0,1]
        (vertices d)
      assertEqual "Arcs"
        [(0,1)]
        (arcs d)
    )
  , TestLabel "Digraph 2" $ TestCase
    ( do
      let ed = loadEdgeList AM.emptyDigraph "4 2 0 1 1 0"
          Right d = ed
      assertBool "Is right"
        (isRight ed)
      assertEqual "Vertices"
        [0,1,2,3]
        (vertices d)
      assertEqual "Arcs"
        (S.fromList [(0,1), (1,0)])
        (S.fromList $ arcs d)
    )
  ]

main = do 
  count <- runTestTT tests
  if errors count + failures count > 0 then exitFailure else exitSuccess