def test_save_and_load_json(self): graph = self.create_graph() g1_algo = GraphAlgo(graph) g1_algo.save_to_json("Test.json") g2_algo = GraphAlgo() g2_algo.load_from_json("Test.json") self.assertTrue(g1_algo.graph.__eq__(g2_algo.graph)) self.assertEqual(g1_algo.graph.v_size(), g2_algo.graph.v_size()) self.assertEqual(g1_algo.graph.e_size(), g2_algo.graph.e_size()) g2_algo.graph.remove_node(3) self.assertNotEqual(g1_algo.graph.v_size(), g2_algo.graph.v_size()) self.assertNotEqual(g1_algo.graph.e_size(), g2_algo.graph.e_size())
def check1(): """ This function tests the naming (main methods of the GraphAlgo class, as defined in GraphAlgoInterface. :return: """ g_algo = GraphAlgo() # init an empty graph - for the GraphAlgo file = '../data/T0.json' g_algo.load_from_json(file) # init a GraphAlgo from a json file print(g_algo.connected_components()) print(g_algo.shortest_path(0, 3)) print(g_algo.shortest_path(3, 1)) g_algo.save_to_json(file + "_aved") g_algo.plot_graph()
def check2(): """ This function tests the naming, basic testing over A5 json file. :return: """ g_algo = GraphAlgo() file = '../data/A5' g_algo.load_from_json(file) g_algo.get_graph().remove_edge(13, 14) g_algo.save_to_json(file + "_edited") dist, path = g_algo.shortest_path(1, 7) print(dist, path) dist, path = g_algo.shortest_path(47, 19) print(dist, path) dist, path = g_algo.shortest_path(20, 2) print(dist, path) dist, path = g_algo.shortest_path(2, 20) print(dist, path) print(g_algo.connected_component(0)) print(g_algo.connected_components()) g_algo.plot_graph()