def test_disconnected(self): adjacency = test_graph_disconnect() dendrogram = self.paris.fit_transform(adjacency) self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.752, 2) self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.627, 2) dendrogram = self.louvain_hierarchy.fit_transform(adjacency) self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.691, 2) self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.549, 2)
def test_directed(self): adjacency = test_digraph() dendrogram = self.paris.fit_transform(adjacency) self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.586, 2) self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.376, 2) dendrogram = self.louvain_hierarchy.fit_transform(adjacency) self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.56, 2) self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.357, 2)
def test_options(self): adjacency = test_graph() dendrogram = self.paris.fit_transform(adjacency) self.assertAlmostEqual( dasgupta_score(adjacency, dendrogram, weights='degree'), 0.602, 2) self.assertAlmostEqual( tree_sampling_divergence(adjacency, dendrogram, weights='uniform'), 0.307, 2) self.assertAlmostEqual( tree_sampling_divergence(adjacency, dendrogram, normalized=False), 0.545, 2)
def test_undirected(self): adjacency = test_graph() dendrogram = self.paris.fit_transform(adjacency) self.assertAlmostEqual(dasgupta_cost(adjacency, dendrogram), 3.98, 2) self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.602, 2) self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.450, 2) dendrogram = self.louvain_hierarchy.fit_transform(adjacency) self.assertAlmostEqual(dasgupta_cost(adjacency, dendrogram), 4.45, 2) self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.555, 2) self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.431, 2)
def test_karate_club_graph(self): adjacency = self.karate_club_graph dendrogram = self.paris.fit(adjacency).dendrogram_ tsd = tree_sampling_divergence(adjacency, dendrogram, normalized=True) self.assertAlmostEqual(tsd, .65, 2) dc = dasgupta_cost(adjacency, dendrogram, normalized=True) self.assertAlmostEqual(dc, .33, 2)
def test_undirected(self): adjacency = cyclic_graph(3) dendrogram = self.paris.fit_transform(adjacency) self.assertAlmostEqual(dasgupta_cost(adjacency, dendrogram), 2.666, 2) self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.111, 2) self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.0632, 3) self.assertAlmostEqual( tree_sampling_divergence(adjacency, dendrogram, normalized=False), 0.0256, 3) adjacency = test_graph() dendrogram = self.paris.fit_transform(adjacency) self.assertAlmostEqual(dasgupta_cost(adjacency, dendrogram), 4.26, 2) self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.573, 2) self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.304, 2) dendrogram = self.louvain_hierarchy.fit_transform(adjacency) self.assertAlmostEqual(dasgupta_cost(adjacency, dendrogram), 4.43, 2) self.assertAlmostEqual(dasgupta_score(adjacency, dendrogram), 0.555, 2) self.assertAlmostEqual(tree_sampling_divergence(adjacency, dendrogram), 0.286, 2)