示例#1
0
 def TestAdjacentToVertices(self):
     expect = adjacent_to_vertices(-1, [0, 1], make_claw())
     self.assertEqual(expect, False)
     expect = adjacent_to_vertices(0, [1, 2, 3], make_claw())
     self.assertEqual(expect, True)
     expect = adjacent_to_vertices(0, [2, 3], make_cycle(5))
     self.assertEqual(expect, False)
示例#2
0
 def testInducedSubgraph(self):
     h = helper.make_claw()
     g = helper.make_wheel(7)
     induced = induced_subgraph(g, h)
     expected = [0, 2, 4, 6] 
     self.assertEqual(induced.nodes(), expected,
                      "Contains: Failed to find a claw in W7")
示例#3
0
 def testValidColoring(self):
     g = make_claw()
     # test invalid claw coloring
     coloring = [[0, 1, 2, 3]]
     valid = valid_coloring(coloring, g)
     self.assertEqual(valid, False,
                      "Valid coloring: Failed for one coloring on claw")
     
     coloring = [[1, 3, 2], [0]]
     valid = valid_coloring(coloring, g)
     self.assertEqual(valid, True,
                      "Valid coloring: Failed for valid coloring on claw")
     # test valid claw coloring
     coloring = [[0], [1, 2, 3]]
     valid = valid_coloring(coloring, g)
     self.assertEqual(valid, True,
                      "Valid coloring: Failed for valid coloring on claw")
     # test invalid claw coloring
     coloring = [[0, 1], [2, 3]]
     valid = valid_coloring(coloring, g)
     self.assertEqual(valid, False,
                      "Valid coloring: Failed for invalid coloring on claw")
     # test valid diamond coloring
     g = make_diamond()
     coloring = [[0], [1], [2, 3]]
     valid = valid_coloring(coloring, g)
     self.assertEqual(valid, True, 
                      "Valid coloring: failed for valid coloring on diamond")
     coloring = [[3], [2], [0, 1]]
     valid = valid_coloring(coloring, g)
     self.assertEqual(valid, False, 
                      '''
                      Valid coloring: failed for invalid coloring on diamond
                      ''')
示例#4
0
 def testFindEliminatinSet(self):
     expect = find_eliminating_set(make_claw())
     self.assertEqual(expect, [])
     expect = find_eliminating_set(make_diamond())
     self.assertEqual(expect, [0])
     print()
     expect = find_eliminating_set(make_clique(4))
     self.assertEqual(expect, [])
示例#5
0
 def testTriangleFree(self):
     G = make_cycle(4)
     self.assertEqual(triangle_free(G), True)
     G = make_claw()
     self.assertEqual(triangle_free(G), True)
     G = make_co_claw()
     self.assertEqual(triangle_free(G), False)
     G = make_diamond()
     self.assertEqual(triangle_free(G), False)
示例#6
0
 def testChromaticNumber(self):
     g = make_claw()
     chromatic = chromatic_number(g)
     expect = 2
     self.assertEqual(expect, chromatic, "Chromatic Number: Claw Case")
     g = make_diamond()
     chromatic = chromatic_number(g)
     expect = 3
     self.assertEqual(expect, chromatic, "Chromatic Number: Diamond Case")
示例#7
0
文件: file.py 项目: fras2560/research
 def testFilePath(self):
     created = os.path.exists(self.k2)
     self.assertEqual(created, False)
     g = make_claw()
     f = File(self.directory, G=g, logger=self.logger)
     name = "has_K2_edges-5nodes-5.txt"
     fp = f.file_path(name)
     self.assertEqual(os.path.join(self.directory, self.k2, name), fp)
     created = os.path.exists(self.k2)
     self.assertEqual(created, True)
示例#8
0
文件: file.py 项目: fras2560/research
 def testLoad(self):
     claw = make_claw()
     c7 = make_cycle(7)
     co_claw = make_co_claw()
     tests = {"test1.txt": claw, "test2.txt": c7, "test3.txt": co_claw}
     directory = os.path.join(self.directory, "test")
     for file, expect in tests.items():
         file_obj = File(directory, file=file)
         self.assertEqual(expect.nodes(), file_obj.G.nodes(), "Load Failed Nodes: %s" % file)
         self.assertEqual(expect.edges(), file_obj.G.edges(), "Load Failed :Edges %s" % file)
示例#9
0
文件: file.py 项目: fras2560/research
 def testCompare(self):
     claw = make_claw()
     co_claw = make_co_claw()
     f = File(self.directory, G=claw, logger=self.logger)
     g = File(self.directory, G=claw, logger=self.logger)
     self.assertEqual(g.compare(f), True)
     self.assertEqual(f.compare(g), True)
     g = File(self.directory, G=co_claw, logger=self.logger)
     self.assertEqual(g.compare(f), False)
     self.assertEqual(f.compare(g), False)
     h = File(self.directory, G=make_cycle(4), logger=self.logger)
     self.assertEqual(h.compare(f), False)
     self.assertEqual(f.compare(h), False)
示例#10
0
 def testForbidden(self):
     claw = make_claw()
     c4 = make_cycle(4)
     cok4 = make_cok4()
     g = make_cycle(5)
     not_allowed = [claw, c4, cok4]
     gen = Generator2(g, 1, forbidden=not_allowed)
     for graph in gen.iterate():
         for h in not_allowed:
             if induced_subgraph(graph, h) is not None:
                 print(graph.edges())
                 print(h.edges())
                 self.assertEqual(True, False ,"Failed to forbid a graph")
示例#11
0
文件: file.py 项目: fras2560/research
 def testGetName(self):
     g = make_claw()
     f = File(self.directory, G=g, logger=self.logger)
     self.assertEqual(f.get_name(), "has_K2_edges-3_nodes-4.txt")
     g = make_cycle(5)
     f = File(self.directory, G=g, logger=self.logger)
     self.assertEqual(f.get_name(), "has_K2_edges-5_nodes-5.txt")
     self.assertEqual(f.get_name(1), "has_K2_edges-5_nodes-5--1.txt")
     self.assertEqual(f.get_name(10), "has_K2_edges-5_nodes-5--10.txt")
     f = File(self.directory, G=g, logger=self.logger, base="C5")
     self.assertEqual(f.get_name(), "C5has_K2_edges-5_nodes-5.txt")
     self.assertEqual(f.get_name(1), "C5has_K2_edges-5_nodes-5--1.txt")
     self.assertEqual(f.get_name(10), "C5has_K2_edges-5_nodes-5--10.txt")
示例#12
0
文件: file.py 项目: fras2560/research
 def testSaveBasic(self):
     g = make_claw()
     f = File(self.directory, G=g, logger=self.logger)
     expect = f.file_path(f.get_name())
     self.assertEqual(os.path.exists(expect), False)
     f.save()
     self.assertEqual(os.path.exists(expect), True)
     # make sure the graph was valid
     with open(expect) as file:
         text = file.read()
         lines = text.split("\n")
         claw = text_to_networkx(lines)
         self.assertEqual(g.nodes(), claw.nodes())
         self.assertEqual(g.edges(), claw.edges())
示例#13
0
 def testColoring(self):
     g = make_claw()
     result = coloring(g)
     expect = [[1, 3, 2], [0]]
     self.assertEqual(expect, result, "Coloring: Claw Case")
     g = make_diamond()
     result = coloring(g)
     expect = [[2, 3], [0], [1]]
     self.assertEqual(expect, result, "Coloring: Diamond Case")
     g = nx.Graph()
     g.add_node(0)
     g.add_node(1)
     result = coloring(g)
     expect = [[0, 1]]
     self.assertEqual(expect, result, "Coloring: Stable Set")
示例#14
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)
示例#15
0
文件: file.py 项目: fras2560/research
 def testSaveIsomorphic(self):
     claw = make_claw()
     f = File(self.directory, G=claw, logger=self.logger)
     fp_1 = f.save()
     expect = os.path.join(self.directory, "hasK2", f.get_name())
     self.assertEqual(fp_1, expect)
     fp = f.save()
     self.assertEqual(fp, None)
     # create a path of length
     p4 = make_cycle(4)
     p4.remove_edge(0, 3)
     g = File(self.directory, G=p4, logger=self.logger)
     fp_2 = g.save()
     expect = os.path.join(self.directory, "hasK2", g.get_name(1))
     self.assertNotEqual(fp_1, fp_2)
     self.assertEqual(fp_2, expect)
示例#16
0
 def setUp(self):
     self.dcolor = Dcolor(make_claw())
示例#17
0
 def setUp(self):
     self.gen = Generator(make_claw(), 2, [])
示例#18
0
文件: file.py 项目: fras2560/research
 def testChequeUnique(self):
     f = File(self.directory, G=make_claw(), logger=self.logger)
     fp = "does not exists"
     self.assertEqual(f.check_unique(fp), True)
     os.makedirs(self.k2)
     self.assertEqual(f.check_unique(self.k2), False)