def test_predict_with_different_ancestor_false_2(self):
     g = nx.Graph()
     g.add_edge(0, 1, weight=1)
     g.add_edge(2, 3, weight=1)
     ic = info_clustering_prediction()
     ic.fit(g, weight_method=None)
     self.assertFalse(ic.predict(0, 3))
 def test_predict_trivial(self):
     g = nx.Graph()  # undirected graph
     g.add_edge(0, 1, weight=1)
     ic = info_clustering_prediction()
     ic.fit(g)
     self.assertTrue(ic.predict(0, 1))
     self.assertTrue(ic.predict(1, 0))
 def test_predict_with_different_ancestor_true(self):
     g = nx.Graph()
     g.add_edge(0, 1, weight=2)
     g.add_edge(1, 2, weight=1.1)
     g.add_edge(2, 3, weight=1)
     g.add_edge(3, 4, weight=1)
     g.add_edge(2, 4, weight=1)
     ic = info_clustering_prediction()
     ic.fit(g, weight_method=None)
     self.assertTrue(ic.predict(0, 2))
     self.assertTrue(ic.predict(2, 0))
 def test_predict_with_same_ancestor(self):
     g = nx.Graph()
     g.add_edge(0, 1, weight=1)
     g.add_edge(1, 2, weight=1)
     g.add_edge(2, 3, weight=1)
     ic = info_clustering_prediction()
     ic.fit(g, weight_method=None)
     self.assertTrue(ic.predict(0, 3))
     self.assertTrue(ic.predict(3, 0))
     self.assertFalse(ic.predict(0, 2))
     self.assertFalse(ic.predict(2, 0))
 def test_evaluation_single(self):
     g = nx.Graph()
     g.add_edge(0, 1, weight=1)
     g.add_edge(1, 2, weight=1)
     g.add_edge(2, 3, weight=1)
     ic = info_clustering_prediction()
     ic.fit(g, weight_method=None)
     test_index_list = [(0, 3)]
     res = evaluate_single(ic, test_index_list, need_fit=False)
     self.assertAlmostEqual(res["tpr"], 1.0)
     self.assertAlmostEqual(res["tnr"], 1.0)
     self.assertAlmostEqual(res["acc"], 1.0)
        pdb.set_trace()
    if(args.load_graph):
        G = nx.read_gml(os.path.join('build', args.load_graph))
        if(type(G) is nx.DiGraph):
            G = G.to_undirected()
        if(G.nodes.get(0) is None):
            G = nx.convert_node_labels_to_integers(G)           
    else:
        G = nx.read_gml(os.path.join('build', 'nips-234.gml'))    
    if(args.save_graph):
        raise NotImplementedError("")
    methods = []
    if(args.alg.count('all') > 0):
        args.alg = method_chocies
    if(args.alg.count('GBIC') > 0):
        methods.append(info_clustering_prediction())
    if(args.alg.count('BHCD') > 0):
        methods.append(BHCD())
    if args.alg.count('RAI') > 0:
        methods.append(ResourceAllocationIndex())
    if(len(methods)==0):
        raise ValueError('unknown algorithm')
    

    np.random.seed(args.seed)
    
    if(args.evaluate == 2):
        print('logging to', LOGGING_FILE)
        tabulate_dic = {}
        method_dic = {}
        for i, method in enumerate(methods):