def testAsMirror(self): name = sys._getframe().f_code.co_name lst = [[1, 2], [2, 2], [2, 3], [2, 3], [3, 2]] d = convert.from_edgelist(name, lst, directed=False, overide=True) print (d.get_edges()) self.assertTrue(not d.is_edge_mirrored) self.assertEqual(3, d.num_node) self.assertEqual(3, d.num_edge) edges = d.get_edges() assert edges['src'].dtype == np.int assert edges['dest'].dtype == np.int self.assertTrue(not load_local(name).is_edge_mirrored) newname = name + "_new" d = d.as_mirror_edges(newname=newname, overide=True) edges = d.get_edges() print (d.get_edges()) self.assertTrue(d.is_edge_mirrored) assert edges['src'].dtype == np.int assert edges['dest'].dtype == np.int self.assertEqual(3, d.num_node) self.assertEqual(5, d.num_edge) self.assertTrue(load_local(newname).is_edge_mirrored)
def testBug6(self): alg = 'oslom_Infohiermap' dataname = 'EVAL2_LFR_ud_wu_N1024_mu0.3' clu = clustering.load_result(dataname, alg) data = dataset.load_local(dataname) a = calc_clu_metrics(data, clu) print(a) self.assertTrue(not np.isnan(a['cluster_clustering_coefficient']))
def testBug5(self): alg = 'cdc_MSCD_LFK2' dataname = 'EVAL2_LFR_ud_wu_N1024_mu0.3' clu = clustering.load_result(dataname, alg) data = dataset.load_local(dataname) calc_clu_metrics(data, clu) gt = list(data.get_ground_truth().values())[0] a = calc_clu_gt_attrib(gt, clu) print(a)
def testBug4(self): alg = 'scan_pScan' dataname = 'SIMPLE_ud_wu_nc128_cz8_in7_it4' clu = clustering.load_result(dataname, alg) data = dataset.load_local(dataname) gt = list(data.get_ground_truth().values())[0] a = calc_clu_metrics(data, gt) print(a) a = calc_clu_metrics(data, clu) print(a) a = calc_clu_gt_attrib(gt, clu) print(a)
def load_result(dataname, runname): fpath = os.path.join(config.get_result_file_path(dataname, runname), 'result.txt') with open(fpath, 'rt') as f: j = json.load(f) d = dataset.load_local(dataname) edges = d.get_edges() nodes = set(edges['src']).union(set(edges['dest'])) result_nodes = set() for l in j['clusters'].values(): result_nodes.update(l) missed_nodes = nodes.difference(result_nodes) j['clusters']['-9999'] = list(missed_nodes) return Result(j)
def load_sample_dataset(name, overide=False): if not overide and local_exists(name): return load_local(name) else: path = os.path.join(config.GCT_HOME, 'data', _DATASET_[name]) edges = pd.read_csv(path) gt = pd.read_csv(path.replace("_edges", '_gt')) description = "" directed = False return convert.from_edgelist(name, edges, groundtruth=gt, directed=directed, description=description, overide=overide)
def load_snap_dataset(name, overide=False): if not overide and local_exists(name): return load_local(name) else: conf = _DATASET_[name] edges = conf.get_edges() gt = conf.get_ground_truth() description = conf.description weighted = conf.weighted directed = conf.directed return Dataset(name, description=description, groundtruthObj=gt, edgesObj=edges, directed=directed, weighted=weighted, overide=overide)
def setUp(self): overide = False def f(name): overide = False return random_dataset.generate_ovp_LFR(name, N=128, k=16, maxk=16, muw=0.1, minc=32, beta=1, a=0, overide=overide) name = "test_LFR_unw_und" self.graph_unweighted_undirect = self.get_dataset(name, f) assert not self.graph_unweighted_undirect.is_directed() assert not self.graph_unweighted_undirect.is_weighted() def f2(name): return random_dataset.generate_ovp_LFR("test_LFR_w_und", N=128, k=16, maxk=16, muw=0.1, minc=32, beta=1, weighted=True, a=0, overide=overide) name = "test_LFR_w_und" self.graph_weighted_undirect = self.get_dataset(name, f) assert not self.graph_weighted_undirect.is_directed() assert self.graph_weighted_undirect.is_weighted() name = "test_LFR_w_dir" if dataset.local_exists(name): self.graph_weighted_direct = dataset.load_local(name) else: self.graph_weighted_direct = random_dataset.generate_ovp_LFR( name, N=128, k=16, maxk=16, muw=0.1, minc=32, beta=1, weighted=True, a=1, overide=overide) assert self.graph_weighted_direct.is_directed() assert self.graph_weighted_direct.is_weighted() name = "test_LFR_unw_dir" if dataset.local_exists(name): self.graph_unweighted_direct = dataset.load_local(name) else: self.graph_unweighted_direct = random_dataset.generate_ovp_LFR( name, N=128, k=16, maxk=16, muw=0.1, minc=32, beta=1, weighted=False, a=1, overide=overide) assert self.graph_unweighted_direct.is_directed() assert not self.graph_unweighted_direct.is_weighted() self.graphs = [ self.graph_unweighted_undirect, self.graph_weighted_undirect, self.graph_weighted_direct, self.graph_unweighted_direct ]
def get_dataset(self, name, fun): if dataset.local_exists(name): return dataset.load_local(name) else: return fun(name)
def testBug3(self): alg = 'karateclub_SCD' dataname = 'EVAL2_LFR_ud_wu_N1024_mu0.3' clu = clustering.load_result(dataname, alg) data = dataset.load_local(dataname) calc_clu_metrics(data, clu)
def testBug2(self): alg = 'cdc_MSCD_LFK2' dataname = 'EVAL2_LFR_ud_wu_N1024_mu0.3' clu = clustering.load_result(dataname, alg) data = dataset.load_local(dataname) calc_clu_metrics(data, clu)