module Main where import AdjacencyList import BellmanFord import HUnit import PropertyMap u = 0::Int; v = 1::Int; x = 2::Int; y = 3::Int; z = 4::Int n = 5::Int g = adj_list n [(u,y),(u,x),(u,v),(v,u),(x,y),(x,v),(y,v),(y,z), (z,u),(z,x)] d = (put (init_map (vertices g) 100.0) (vertex z) 0.0) p = create_map [(v,v) | v <- vertices g ] (vertex u) w = create_map [(edge u y, -4.0), (edge u x, 8.0), (edge u v, 5.0), (edge v u, -2.0), (edge x y, 9.0), (edge x v, -3.0), (edge y v, 7.0), (edge y z, 2.0), (edge z u, 6.0), (edge z x, 7.0)] 0.0 (dist,parent,neg_cycle) = bellman_ford_shortest_paths g n w p d (+) (<) test1 = TestCase (assertEqual "-2.0 (get dist (vertex y))" (-2.0) (get dist (vertex y))) tests = TestList [TestLabel "test1" test1] main = do runTestTT tests