diff --git a/lang/fr/gklearn/tests/ged/test_ged_env.py b/lang/fr/gklearn/tests/ged/test_ged_env.py new file mode 100644 index 0000000..bf4a7e4 --- /dev/null +++ b/lang/fr/gklearn/tests/ged/test_ged_env.py @@ -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() \ No newline at end of file