def test_spanner_unweighted_complete_graph(): """Test spanner construction on a complete unweighted graph.""" G = nx.complete_graph(20) spanner = nx.spanner(G, 4, seed=_seed) _test_spanner(G, spanner, 4) spanner = nx.spanner(G, 10, seed=_seed) _test_spanner(G, spanner, 10)
def test_spanner_unweighted_disconnected_graph(): """Test spanner construction on a disconnected graph.""" G = nx.disjoint_union(nx.complete_graph(10), nx.complete_graph(10)) spanner = nx.spanner(G, 4, seed=_seed) _test_spanner(G, spanner, 4) spanner = nx.spanner(G, 10, seed=_seed) _test_spanner(G, spanner, 10)
def test_spanner_unweighted_gnp_graph(): """Test spanner construction on an unweighted gnp graph.""" G = nx.gnp_random_graph(20, 0.4, seed=_seed) spanner = nx.spanner(G, 4, seed=_seed) _test_spanner(G, spanner, 4) spanner = nx.spanner(G, 10, seed=_seed) _test_spanner(G, spanner, 10)
def test_spanner_weighted_gnp_graph(): """Test spanner construction on an weighted gnp graph.""" G = nx.gnp_random_graph(20, 0.4, seed=_seed) _assign_random_weights(G, seed=_seed) spanner = nx.spanner(G, 4, weight='weight', seed=_seed) _test_spanner(G, spanner, 4, weight='weight') spanner = nx.spanner(G, 10, weight='weight', seed=_seed) _test_spanner(G, spanner, 10, weight='weight')
def test_spanner_weighted_complete_graph(): """Test spanner construction on a complete weighted graph.""" G = nx.complete_graph(20) _assign_random_weights(G, seed=_seed) spanner = nx.spanner(G, 4, weight='weight', seed=_seed) _test_spanner(G, spanner, 4, weight='weight') spanner = nx.spanner(G, 10, weight='weight', seed=_seed) _test_spanner(G, spanner, 10, weight='weight')
def test_spanner_weighted_complete_graph(): """Test spanner construction on a complete weighted graph.""" G = nx.complete_graph(20) _assign_random_weights(G, seed=_seed) spanner = nx.spanner(G, 4, weight="weight", seed=_seed) _test_spanner(G, spanner, 4, weight="weight") spanner = nx.spanner(G, 10, weight="weight", seed=_seed) _test_spanner(G, spanner, 10, weight="weight")
def test_spanner_weighted_gnp_graph(): """Test spanner construction on an weighted gnp graph.""" G = nx.gnp_random_graph(20, 0.4, seed=_seed) _assign_random_weights(G, seed=_seed) spanner = nx.spanner(G, 4, weight="weight", seed=_seed) _test_spanner(G, spanner, 4, weight="weight") spanner = nx.spanner(G, 10, weight="weight", seed=_seed) _test_spanner(G, spanner, 10, weight="weight")
def test_spanner_trivial(): """Test a trivial spanner with stretch 1.""" G = nx.complete_graph(20) spanner = nx.spanner(G, 1, seed=_seed) for u, v in G.edges: assert spanner.has_edge(u, v)
def test_spanner_trivial(): """Test a trivial spanner with stretch 1.""" G = nx.complete_graph(20) spanner = nx.spanner(G, 1, seed=_seed) for u, v in G.edges: assert(spanner.has_edge(u, v))
def main(): # g = toy_graph() g = nx.karate_club_graph() g = assign_weights(g) # print(g.edges(data=True)) spanner = nx.spanner(g, 7, 'weight') print(g.size(), spanner.size())
def sparsify(self, spanner=1): print('before', self.graph.adj.nnz) adj = copy.deepcopy(self.graph.adj) adj[adj > 0] = 1 nx_graph = nx.from_scipy_sparse_matrix(adj, create_using=nx.Graph) sparse_graph = nx.spanner(nx_graph, spanner) self.graph.adj = nx.adjacency_matrix(sparse_graph) print('after', self.graph.adj.nnz) self.graph.normalize_adj(symetric=self.sym)
def test_spanner_invalid_stretch(): """Check whether an invalid stretch is caught.""" G = nx.empty_graph() nx.spanner(G, 0)
def test_spanner_invalid_stretch(): """Check whether an invalid stretch is caught.""" with pytest.raises(ValueError): G = nx.empty_graph() nx.spanner(G, 0)