def test_k_n_m(self): for n in range(2, 5): for m in range(2, 5): g = nx.complete_bipartite_graph(n, m) if n < 3 or m < 3: self.assertEqual(thickness.thickness(g), 1) else: self.assertEqual(thickness.thickness(g), 2)
def test_almost_k_5(self): g = nx.complete_graph(5) g.remove_edge(0, 1) self.assertEqual(thickness.thickness(g), 1) g.remove_edge(1, 2) g.add_edge(1, 5) g.add_edge(5, 2) self.assertEqual(thickness.thickness(g), 1)
def test_almost_k_3_3(self): g = nx.Graph() for i in range( 0, 3 ): # make a complete bipartite graph with bipartitions {0,1,2} and {3,4,5} for j in range(3, 6): g.add_edge(i, j) g.remove_edge(0, 3) self.assertEqual(thickness.thickness(g), 1) g.add_edge(0, 6) g.add_edge(6, 2) self.assertEqual(thickness.thickness(g), 1)
def test_one_node(self): g = nx.Graph() g.add_node(0) self.assertEqual(thickness.thickness(g), 1)
def test_wellknown_graphs(self): # self.assertEqual(thickness.thickness(nx.petersen_graph()), 2) # self.assertEqual(is_planar(nx.tutte_graph())) takes to long self.assertEqual(thickness.thickness(nx.wheel_graph(7)), 1)
def test_k_n(self): self.assertEqual( thickness.thickness(nx.complete_graph(4)), 1 ) # see https://en.wikipedia.org/wiki/Thickness_(graph_theory) , first formula self.assertEqual(thickness.thickness(nx.complete_graph(6)), 2) self.assertEqual(thickness.thickness(nx.complete_graph(8)), 2)
def test_k_3_3(self): g = nx.complete_bipartite_graph(3, 3) self.assertEqual(thickness.thickness(g), 2)
def test_k_5(self): g = nx.complete_graph(5) self.assertEqual(thickness.thickness(g), 2)
matplotlib.use('TkAgg') # nopep8 import matplotlib.pyplot as plt import planarity import thickness import planarity_test as p from docopt import docopt if __name__ == '__main__': arguments = docopt(__doc__) M = int(arguments['M']) N = int(arguments['N']) output = arguments['OUTPUT'] G = nx.gnm_random_graph(M, N) try: print("Graph is planar") planarity.draw(G) plt.axis('off') plt.savefig(output) except: print("Graph not planar!") nx.draw_random(G) plt.axis('off') plt.savefig(output) if (p.is_planar(G)): print("Our algorithm says that the graph is planar") else: print("thickness:") print(thickness.thickness(G))
#<option id="index" value="1.498">CR-39</option> #<option id="index" value="1.527">Trivex</option> #<option id="index" value="1.537">Spectralite</option> #<option id="index" value="1.586">Polycarbonate</option> #<option id="index" value="1.595">MR-6</option> #<option id="index" value="1.592">MR-8</option> #<option id="index" value="1.658">MR-7</option> #<option id="index" value="1.661">MR-10</option> #<option id="index" value="1.732">MR 174</option> index = [1.498, 1.527, 1.537, 1.586, 1.595, 1.592, 1.658, 1.661, 1.732] thickArray = [] nameArray = ['<td>CR-39</td>', '<td>Trivex</td>', '<td>Spectralite</td>', '<td>Polycarbonate</td>', '<td>MR-6</td>', '<td>MR-8</td>', '<td>MR-7</td>', '<td>MR-10</td>', '<td>MR 174</td>'] i = 0 for n in index: aThickness = thickness.thickness(float(minThick),float(bc), n, min_blank, horizontalPower) thickArray.insert(i, ('<tr>' + nameArray[i] + aThickness + '</tr>')) i = i+1 thickArray = ''.join(thickArray) print "Content-type:text/html\r\n\r\n" print "<!DOCTYPE html><html lang='en'><head><meta charset='utf-8'>" print "<title>Thickness</title>" print "<meta name='description' content=''>" print "<meta name='author' content=''>" print "<meta name='viewport' content='width=device-width, initial-scale=1'>" print "<link href='//fonts.googleapis.com/css?family=Raleway:400,300,600' rel='stylesheet' type='text/css'>" print "<link rel='stylesheet' href='/brent/css/normalize.css'>" print "<link rel='stylesheet' href='/brent/css/skeleton.css'>" print "<link rel='icon' type='image/png' href='/images/favicon.png'>"