module Main where import AdjacencyList import Johnson import HUnit import PropertyMap n = 5::Int g = adj_list n [(0,1),(0,4),(0,2),(1,3),(1,4),(2,1),(3,2),(3,0),(4,2)] s = vertex 0 w = create_map [(edge 0 1, 3.0), (edge 0 4, -4.0), (edge 0 2, 8.0), (edge 1 3, 1.0), (edge 1 4, 7.0), (edge 2 1, 4.0), (edge 3 2, -5.0), (edge 3 0, 2.0), (edge 4 2, 6.0)] 0.0 vidx = create_map (zip (vertices g) [0..(n-1)]) 0 result = johnson_all_pairs_shortest_paths g w vidx 0.0 1000.0 d = (case result of Nothing -> (init_map (vertices g) (init_map (vertices g) 0.0)) Just d -> d) test1 = TestCase (assertEqual "(-4.0) (get (get d (vertex 0)) (vertex 4))" (-4.0) (get (get d (vertex 0)) (vertex 4))) tests = TestList [TestLabel "test1" test1] main = do runTestTT tests