algraph-0.7.0.0: test/Test/Graph/AdjacencyList.hs
module Test.Graph.AdjacencyList where
import Data.Bifunctor
import Data.List
import Data.List.Unique
import qualified Data.Binary as Bin
import TestHS
import Data.Graph.AdjacencyList
import Data.Graph.AdjacencyList.Grid
fastTests :: [Test]
fastTests = [ test1
, testRemoveReverseEdges
]
edgesTest1 = map fromTuple
[(1,2),(1,5),(1,6)
,(2,5),(2,3)
,(3,4)
,(5,4),(5,7)
,(6,7)
,(7,4)
]
graphTest1 =
let vs = [1..7]
neis = (\v -> let nei 1 = [2,5,6]
nei 2 = [5,3]
nei 3 = [4]
nei 4 = []
nei 5 = [4,7]
nei 6 = [7]
nei 7 = [4]
in nei v
)
in createGraph vs neis
test1 :: Test
test1 = do
let name = "Graph from edges"
gr1 = graphFromEdges edgesTest1
case gr1 == graphTest1 of
True -> testPassed name "passed!"
False -> testFailed name $ (,) (show graphTest1) (show gr1)
testRemoveReverseEdges :: Test
testRemoveReverseEdges = do
let name = "Remove reverse edges from komplete 5 graph"
k5 = completeGraph 5
dk5 = removeReverseEdges k5
expected = [ (Edge 1 2)
, (Edge 1 3)
, (Edge 1 4)
, (Edge 1 5)
, (Edge 2 3)
, (Edge 2 4)
, (Edge 2 5)
, (Edge 3 4)
, (Edge 3 5)
, (Edge 4 5)
]
if edges dk5 == expected
then
testPassed name "passed!"
else
testFailed name $ (,) (show expected) (show dk5)