def test_two_communities(self): # Create a graph that should give two separate communities graph = Graph() # The first community graph.add_edge(1, 2) graph.add_edge(1, 3) graph.add_edge(2, 3) graph.add_edge(2, 5) graph.add_edge(2, 4) graph.add_edge(3, 5) graph.add_edge(4, 5) # The other community graph.add_edge(6, 7) graph.add_edge(7, 8) graph.add_edge(6, 8) graph.add_edge(7, 9) graph.add_edge(6, 9) graph.add_edge(8, 9) # Link between the communities graph.add_edge(5, 6) # should give us 0 and 1 # First community = 0, second community = 1 dictionary = label_propagation(graph) for node, label in dictionary.iteritems(): if node >= 1 and node <= 5: self.assertEqual(label, 0) else: self.assertEqual(label, 1)
def test_one_community(self): # Create a graph that is essentially one community graph = Graph() graph.add_edge(1, 2) graph.add_edge(1, 3) graph.add_edge(1, 4) graph.add_edge(2, 3) graph.add_edge(2, 4) graph.add_edge(3, 4) dictionary = label_propagation(graph) for node, label in dictionary.iteritems(): self.assertEqual(label, 0)