Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
 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]))
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
 def testColoringClique(self):
     g = make_cycle(3)
     color = coloring(g)
     expect = [[0], [1], [2]]
     self.assertEqual(len(color), 3)
     self.assertEqual(color, expect)