def testColoringHardGraph(self): # C5 + 5 Xi g = make_cycle(5) index = 0 for i in range(5, 10): g.add_node(i) # make it a two vertex g.add_edge(i, (index+0) % 5) # xi g.add_edge(i, (index+1) % 5) index += 1 g.add_edge(5, 6) g.add_edge(5, 8) g.add_edge(6, 8) g.add_edge(7, 9) self.dcolor = DenseColor(g) color = self.dcolor.color() expect = [[1, 8, 9], [5, 4, 7], [2], [0, 3, 6]] self.assertEqual(self.dcolor.valid_coloring(color), True) self.assertEqual(color, expect) # C5 + 2 Yi g = make_cycle(5) g.add_node(5) g.add_edge(0,5) g.add_edge(1,5) g.add_edge(2,5) g.add_node(6) g.add_edge(0,6) g.add_edge(3,6) g.add_edge(4,6) self.dcolor = DenseColor(g) color = self.dcolor.color() expect = [[0, 3], [1, 4], [5, 6], [2]] self.assertEqual(self.dcolor.valid_coloring(color), True) self.assertEqual(color, expect)
def testColoringCritical(self): self.dcolor = DenseColor(make_cycle(5)) color = self.dcolor.color() expect = [[0], [1, 3], [2, 4]] self.assertEqual(len(color), 3) self.assertEqual(color, expect) k1 = nx.Graph() k1.add_node(0) g = join(make_cycle(5), k1) self.dcolor = DenseColor(g) color = self.dcolor.color() self.assertEqual(len(color), 4) expect = [[5], [0], [1, 3], [2, 4]] self.assertEqual(expect, color)
def testColoringClique(self): g = make_cycle(3) self.dcolor = DenseColor(g) color = self.dcolor.color() expect = [[0], [1], [2]] self.assertEqual(len(color), 3) self.assertEqual(color, expect)
def testC5DiamondCoDiamondFree(self): g = make_cycle(5) subgraphs = [make_diamond(), make_co_diamond()] k_vertexes = k_vertex(g, subgraphs) expect = [False, False, True, True, False, False] for index, k in enumerate(k_vertexes): self.assertEqual(k['has_k_vertex'], expect[index], '''K Vertex says (diamond,co-diamond)- free Graph %d - vertex:%r but should be %r''' %(index, k['has_k_vertex'], expect[index])) set_2_vertex = [(0, 1), (0, 4), (1, 2), (2, 3), (3, 4)] for check in set_2_vertex: self.assertEqual(check in k_vertexes[2]['combinations'], True, ''' K vertex missing 2 Vertex set (%d, %d) on (diamond, co-diamond)-free Grpah ''' %(check[0],check[1])) set_3_vertex = [(0, 1, 3), (0, 2, 3), (0, 2, 4), (1, 2, 4), (1, 3, 4)] for check in set_3_vertex: self.assertEqual(check in k_vertexes[3]['combinations'], True, ''' K vertex missing 3 Vertex set (%d, %d, %d) on (diamond, co-diamond)-free Grpah ''' %(check[0],check[1], check[2]))
def testColorCycle(self): g = make_cycle(5) for i in range(5, 100): g.add_node(i) g.add_edge(i - 1, i) self.dcolor = DenseColor(g) color = self.dcolor.color() self.assertEqual(len(color), 3) self.assertEqual(self.dcolor.valid_coloring(color), True)
def testColoringCritical(self): c5 = make_cycle(5) color = coloring(c5) expect = [[4, 1], [3, 0], [2]] self.assertEqual(len(color), 3) self.assertEqual(color, expect) k1 = nx.Graph() k1.add_node(0) g = join(c5, k1) color = coloring(g) self.assertEqual(len(color), 4) expect = [[4], [3, 1], [2, 0], [5]] self.assertEqual(expect, color)
def testC7CoClawClawFree(self): g = make_cycle(7) subgraphs = [make_claw(), make_co_claw()] k_vertexes = k_vertex(g, subgraphs) for index, k in enumerate(k_vertexes): if index > 0: self.assertEqual(k['has_k_vertex'], False, ''' K Vertex says (claw,co-claw)-free Graph has a %s-vertex''' % index) else: self.assertEqual(k['has_k_vertex'], True, ''' K Vertex says (claw,co-claw)-free Graph has no a %s-vertex''' % index)
def testColoringClique(self): g = make_cycle(3) color = coloring(g) expect = [[0], [1], [2]] self.assertEqual(len(color), 3) self.assertEqual(color, expect)