def test_g_quad(): # check agrees with Seifert for i in range(200): # do this on 200 random Seifert datas listdata = [] num_pairs = random.randint(0, 10) e = random.randint(-100, 100) listdata.append(e) for j in range(num_pairs): q = random.choice(range(-100,0) + range(1,101)) # exclude 0 while 1: # change p until gcd(p, q) = 1 p = random.randint(2, 100) if abs(gcd(p, q)) == 1: break listdata.append((p,q)) if seifert.invariants(listdata)[1] == 0: assert_raises(ValueError, seifert.s_quad_form, listdata, False) continue startree = seifert.make_graph(listdata) assert numpy.array_equal(seifert.s_quad_form(listdata, gui=False)[0], g_quad(startree, ['N%i'%index for index in range(len(startree.nodes(data=False)))])) # load some files graph1 = GraphPopup(None, gui=False) graph1.load('testing/forest_ex1.txt') nodes1 = ['N%i'%index for index in \ range(len(graph1.graph.nodes(data=False)))] assert num_bad_vertices(graph1.graph, nodes1) == 1 assert_raises(ValueError, g_quad, graph1.graph, nodes1, False) # not negdef graph1.load('testing/forest_ex2.txt') nodes2 = ['N%i'%index for index in \ range(len(graph1.graph.nodes(data=False)))] assert num_bad_vertices(graph1.graph, nodes2) == 1 assert numpy.array_equal(g_quad(graph1.graph, nodes2, gui=False), numpy.array(\ [[-5,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0], [1,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [1,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0], [1,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,-1,0,0,0,0,0,1,0,0,1,0,0], [1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,-4,1,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,1,-4,1,1,0,0,0,0,0,0], [0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,1,0,-3,1,1,0,0,0,0], [0,0,0,0,1,0,0,0,0,1,-4,0,0,0,1,0], [0,0,0,0,0,0,0,0,0,1,0,-3,1,0,0,1], [0,0,0,0,0,0,0,0,0,0,0,1,-3,0,0,0], [0,0,0,0,1,0,0,0,0,0,0,0,0,-5,0,0], [0,0,0,0,0,0,0,0,0,0,1,0,0,0,-2,0], [0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-2]])) graph1.cancel()
def save(self, data): '''Save weighted star graph to file as adjacency list and node data.''' options = {} options['defaultextension'] = '.txt' options['filetypes'] = [('all files', '.*'), ('text files', '.txt')] filename = tkFileDialog.asksaveasfilename(**options) if filename: startree = make_graph(data) adjfile = open(filename, 'wb') nx.write_adjlist(startree, adjfile) adjfile.write('\nDATA\n') adjfile.write(str(startree.nodes(data=True))) adjfile.close() print 'Graph data saved to %s' % filename