def create_mock_graph_tool(label='network_label', num_nodes=100, num_edges=100, data={}): edgeList = {} n = graph_tool.Graph() n.gp.label = n.new_gp("string") n.gp.label = label n.vp.name = n.new_vp("string") n.ep.id = n.new_ep("int") for n_id in range(num_nodes): v = n.add_vertex() n.vp.name[v] = hex(n_id) ID = num_nodes for e_id in range(num_edges): n1 = random.randint(0, num_nodes-1) n2 = random.randint(0, num_nodes-2) val = random.choice([1, 1.5, 'a', True]) edgeList[ID] = (n1, n2) e = n.add_edge(n.vertex(n1), n.vertex(n2)) n.ep.id[e] = ID n.ep.value = n.new_ep(GraphToolAdapter.get_gt_type(val)) # TODO: avoid destructive assiginment n.ep.value[e] = val ID += 1 for k, v in data.items(): if k not in n.gp: n.gp[k] = n.new_gp(GraphToolAdapter.get_gt_type(v)) n.gp[k] = v return n, edgeList
def test_get_gt_type(self): self.assertEqual(GraphToolAdapter.get_gt_type(1), 'int') self.assertEqual(GraphToolAdapter.get_gt_type(1.0), 'float') self.assertEqual(GraphToolAdapter.get_gt_type(True), 'bool') self.assertEqual(GraphToolAdapter.get_gt_type("asdf"), 'string') self.assertEqual(GraphToolAdapter.get_gt_type({1: "asdf"}), 'object') self.assertEqual(GraphToolAdapter.get_gt_type([1]), 'vector<int>') self.assertEqual(GraphToolAdapter.get_gt_type([1.0]), 'vector<float>') self.assertEqual(GraphToolAdapter.get_gt_type([True]), 'vector<bool>') self.assertEqual(GraphToolAdapter.get_gt_type(["asdf"]), 'vector<string>') self.assertEqual(GraphToolAdapter.get_gt_type([{1: "asdf"}]), 'object')
def create_mock_planar(label='network_label', dim=[10 ,10], data={}): edgeList = {} n = graph_tool.generation.lattice(dim) n.gp.label = n.new_gp("string") n.gp.label = label n.vp.name = n.new_vp("string") n.ep.id = n.new_ep("int") ID = 0 for v in n.vertices(): n.vp.name[v] = hex(ID) ID += 1 for edge in n.edges(): source_node, target_node = edge.source(), edge.target() edgeList[ID] = (int(source_node), int(target_node)) ID += 1 for k, v in data.items(): if k not in n.gp: n.gp[k] = n.new_gp(GraphToolAdapter.get_gt_type(v)) n.gp[k] = v return n, edgeList