module Main where import AdjacencyList import Prim import HUnit import PropertyMap n = 5::Int g = adj_list n [(0,2),(1,1),(1,3),(1,4),(2,1),(2,3),(3,4),(4,0), (2,0),(3,1),(4,1),(1,2),(3,2),(4,3),(0,4)] s = vertex 0 d = init_map (vertices g) (100::Int) w = create_map [(edge 0 2, 1), (edge 1 1, 2), (edge 1 3, 1), (edge 1 4, 2), (edge 2 1, 7), (edge 2 3, 3), (edge 3 4, 1), (edge 4 0, 1), (edge 2 0, 1), (edge 3 1, 1), (edge 4 1, 2), (edge 1 2, 7), (edge 3 2, 3), (edge 4 3, 1), (edge 0 4, 1)] (0::Int) (dist,parent) = prim_min_span_tree g s d w (<) 0 test1 = TestCase (assertEqual "((vertex 0) (get parent (vertex 0))" (vertex 0) (get parent (vertex 0))) test2 = TestCase (assertEqual "((vertex 3) (get parent (vertex 1))" (vertex 3) (get parent (vertex 1))) test3 = TestCase (assertEqual "((vertex 0) (get parent (vertex 2))" (vertex 0) (get parent (vertex 2))) test4 = TestCase (assertEqual "((vertex 4) (get parent (vertex 3))" (vertex 4) (get parent (vertex 3))) test5 = TestCase (assertEqual "((vertex 0) (get parent (vertex 4))" (vertex 0) (get parent (vertex 4))) tests = TestList [TestLabel "test1" test1, TestLabel "test2" test2, TestLabel "test3" test3, TestLabel "test4" test4, TestLabel "test5" test5] main = do runTestTT tests