Statistics
| Branch: | Revision:

## iof-tools / networkxMiCe / networkx-master / networkx / generators / tests / test_atlas.py @ 5cef0f13

 1 ```from itertools import groupby ``` ```from nose.tools import assert_equal ``` ```from nose.tools import assert_less_equal ``` ```from nose.tools import raises ``` ```import networkx as nx ``` ```from networkx.testing import * ``` ```from networkx import graph_atlas ``` ```from networkx import graph_atlas_g ``` ```from networkx.generators.atlas import NUM_GRAPHS ``` ```from networkx.utils import pairwise ``` ```class TestAtlasGraph(object): ``` ``` """Unit tests for the :func:`~networkx.graph_atlas` function.""" ``` ``` @raises(ValueError) ``` ``` def test_index_too_small(self): ``` ``` graph_atlas(-1) ``` ``` @raises(ValueError) ``` ``` def test_index_too_large(self): ``` ``` graph_atlas(NUM_GRAPHS) ``` ``` def test_graph(self): ``` ``` G = graph_atlas(6) ``` ``` assert_nodes_equal(G.nodes(), range(3)) ``` ``` assert_edges_equal(G.edges(), [(0, 1), (0, 2)]) ``` ```class TestAtlasGraphG(object): ``` ``` """Unit tests for the :func:`~networkx.graph_atlas_g` function.""" ``` ``` def setUp(self): ``` ``` self.GAG = graph_atlas_g() ``` ``` def test_sizes(self): ``` ``` G = self.GAG[0] ``` ``` assert_equal(G.number_of_nodes(), 0) ``` ``` assert_equal(G.number_of_edges(), 0) ``` ``` G = self.GAG[7] ``` ``` assert_equal(G.number_of_nodes(), 3) ``` ``` assert_equal(G.number_of_edges(), 3) ``` ``` def test_names(self): ``` ``` for i, G in enumerate(self.GAG): ``` ``` assert_equal(int(G.name[1:]), i) ``` ``` def test_nondecreasing_nodes(self): ``` ``` # check for nondecreasing number of nodes ``` ``` for n1, n2 in pairwise(map(len, self.GAG)): ``` ``` assert_less_equal(n2, n1 + 1) ``` ``` def test_nondecreasing_edges(self): ``` ``` # check for nondecreasing number of edges (for fixed number of ``` ``` # nodes) ``` ``` for n, group in groupby(self.GAG, key=nx.number_of_nodes): ``` ``` for m1, m2 in pairwise(map(nx.number_of_edges, group)): ``` ``` assert_less_equal(m2, m1 + 1) ``` ``` def test_nondecreasing_degree_sequence(self): ``` ``` # Check for lexicographically nondecreasing degree sequences ``` ``` # (for fixed number of nodes and edges). ``` ``` # ``` ``` # There are three exceptions to this rule in the order given in ``` ``` # the "Atlas of Graphs" book, so we need to manually exclude ``` ``` # those. ``` ``` exceptions = [('G55', 'G56'), ('G1007', 'G1008'), ('G1012', 'G1013')] ``` ``` for n, group in groupby(self.GAG, key=nx.number_of_nodes): ``` ``` for m, group in groupby(group, key=nx.number_of_edges): ``` ``` for G1, G2 in pairwise(group): ``` ``` if (G1.name, G2.name) in exceptions: ``` ``` continue ``` ``` d1 = sorted(d for v, d in G1.degree()) ``` ``` d2 = sorted(d for v, d in G2.degree()) ``` ``` assert_less_equal(d1, d2) ```