| @@ -0,0 +1,57 @@ | |||||
| """Tests of GEDEnv. | |||||
| """ | |||||
| def test_GEDEnv(): | |||||
| """Test GEDEnv. | |||||
| """ | |||||
| """**1. Get dataset.**""" | |||||
| from gklearn.utils import Dataset | |||||
| # Predefined dataset name, use dataset "MUTAG". | |||||
| ds_name = 'MUTAG' | |||||
| # Initialize a Dataset. | |||||
| dataset = Dataset() | |||||
| # Load predefined dataset "MUTAG". | |||||
| dataset.load_predefined_dataset(ds_name) | |||||
| graph1 = dataset.graphs[0] | |||||
| graph2 = dataset.graphs[1] | |||||
| """**2. Compute graph edit distance.**""" | |||||
| try: | |||||
| from gklearn.ged.env import GEDEnv | |||||
| ged_env = GEDEnv() # initailize GED environment. | |||||
| ged_env.set_edit_cost('CONSTANT', # GED cost type. | |||||
| edit_cost_constants=[3, 3, 1, 3, 3, 1] # edit costs. | |||||
| ) | |||||
| ged_env.add_nx_graph(graph1, '') # add graph1 | |||||
| ged_env.add_nx_graph(graph2, '') # add graph2 | |||||
| listID = ged_env.get_all_graph_ids() # get list IDs of graphs | |||||
| ged_env.init(init_type='LAZY_WITHOUT_SHUFFLED_COPIES') # initialize GED environment. | |||||
| options = {'initialization_method': 'RANDOM', # or 'NODE', etc. | |||||
| 'threads': 1 # parallel threads. | |||||
| } | |||||
| ged_env.set_method('BIPARTITE', # GED method. | |||||
| options # options for GED method. | |||||
| ) | |||||
| ged_env.init_method() # initialize GED method. | |||||
| ged_env.run_method(listID[0], listID[1]) # run. | |||||
| pi_forward = ged_env.get_forward_map(listID[0], listID[1]) # forward map. | |||||
| pi_backward = ged_env.get_backward_map(listID[0], listID[1]) # backward map. | |||||
| dis = ged_env.get_upper_bound(listID[0], listID[1]) # GED bewteen two graphs. | |||||
| import networkx as nx | |||||
| assert len(pi_forward) == nx.number_of_nodes(graph1), len(pi_backward) == nx.number_of_nodes(graph2) | |||||
| except Exception as exception: | |||||
| assert False, exception | |||||
| if __name__ == "__main__": | |||||
| test_GEDEnv() | |||||