~ubuntu-branches/ubuntu/trusty/python-networkx/trusty-proposed

« back to all changes in this revision

Viewing changes to networkx/tests/generators/degree_seq.txt

  • Committer: Bazaar Package Importer
  • Author(s): Cyril Brulebois
  • Date: 2009-02-28 13:36:24 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090228133624-9l5rwi1ftlzc7b0l
* Upload to unstable now that lenny is released (yay).
* Fix FTBFS with python-support 0.90.3: no longer rely on its internal
  behaviour, and xnow set tests/test.py executable right after “setup.py
  install” (Closes: #517065).
* Drop executable bits from bz2 files.
* Update Vcs-* fields: move from DPMT's svn to collab-maint's git.
* Remote DPMT from Uploaders, following Piotr Ożarowski's request.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
============================
2
 
Generators - Degree Sequence
3
 
============================
4
 
 
5
 
 
6
 
 
7
 
>>> from networkx import *
8
 
>>> from networkx.generators.degree_seq import *
9
 
>>> from networkx.isomorph import graph_could_be_isomorphic
10
 
>>> is_isomorphic=graph_could_be_isomorphic # use fast but weak isomorphism checker
11
 
 
12
 
configuration_model
13
 
-------------------
14
 
 
15
 
empty graph has empty degree sequence
16
 
>>> deg_seq=[]
17
 
>>> G=configuration_model(deg_seq)
18
 
>>> G.degree()
19
 
[]
20
 
 
21
 
>>> deg_seq=[5,3,3,3,3,2,2,2,1,1,1]
22
 
>>> G=configuration_model(deg_seq,seed=12345678)
23
 
>>> sorted(G.degree(),reverse=True)
24
 
[5, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1]
25
 
>>> sorted(G.degree(range(len(deg_seq))),reverse=True)
26
 
[5, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1]
27
 
 
28
 
test that fixed seed delivers the same graph
29
 
 
30
 
>>> deg_seq=[3,3,3,3,3,3,3,3,3,3,3,3]
31
 
>>> G1=configuration_model(deg_seq,seed=1000)
32
 
>>> G2=configuration_model(deg_seq,seed=1000)
33
 
>>> is_isomorphic(G1,G2)
34
 
True
35
 
>>> G1=configuration_model(deg_seq,seed=10)
36
 
>>> G2=configuration_model(deg_seq,seed=10)
37
 
>>> is_isomorphic(G1,G2)
38
 
True
39
 
 
40
 
 
41
 
>>> z=[5,3,3,3,3,2,2,2,1,1,1]
42
 
>>> is_valid_degree_sequence(z)
43
 
True
44
 
 
45
 
>>> G=havel_hakimi_graph(z)
46
 
>>> G=configuration_model(z)
47
 
>>> z=[1000,3,3,3,3,2,2,2,1,1,1]
48
 
>>> is_valid_degree_sequence(z)
49
 
False
50
 
 
51
 
expected_degree_graph
52
 
---------------------
53
 
empty graph has empty degree sequence
54
 
>>> deg_seq=[]
55
 
>>> G=expected_degree_graph(deg_seq)
56
 
>>> G.degree()
57
 
[]
58
 
 
59
 
test that fixed seed delivers the same graph
60
 
 
61
 
>>> deg_seq=[3,3,3,3,3,3,3,3,3,3,3,3]
62
 
>>> G1=expected_degree_graph(deg_seq,seed=1000)
63
 
>>> G2=expected_degree_graph(deg_seq,seed=1000)
64
 
>>> is_isomorphic(G1,G2)
65
 
True
66
 
>>> G1=expected_degree_graph(deg_seq,seed=10)
67
 
>>> G2=expected_degree_graph(deg_seq,seed=10)
68
 
>>> is_isomorphic(G1,G2)
69
 
True
70
 
 
71
 
 
72
 
 
73
 
Havel-Hakimi Construction
74
 
-------------------------
75
 
 
76
 
>>> G=havel_hakimi_graph(z)
77
 
Traceback (most recent call last):
78
 
...
79
 
NetworkXError: Invalid degree sequence
80
 
 
81
 
>>> z=["A",3,3,3,3,2,2,2,1,1,1]
82
 
>>> havel_hakimi_graph(z)
83
 
Traceback (most recent call last):
84
 
...
85
 
NetworkXError: Invalid degree sequence
86
 
 
87
 
>>> z=[5,4,3,3,3,2,2,2]
88
 
>>> G=havel_hakimi_graph(z)
89
 
>>> G=configuration_model(z)
90
 
>>> z=[6,5,4,4,2,1,1,1]
91
 
>>> is_valid_degree_sequence(z)
92
 
False
93
 
>>> G=havel_hakimi_graph(z)
94
 
Traceback (most recent call last):
95
 
...
96
 
NetworkXError: Invalid degree sequence
97
 
 
98
 
>>> z=[10,3,3,3,3,2,2,2,2,2,2]
99
 
>>> is_valid_degree_sequence(z)
100
 
True
101
 
>>> G=havel_hakimi_graph(z)
102
 
 
103
 
Degree Sequence Tree
104
 
--------------------
105
 
 
106
 
>>> z=[1, 1, 1, 1, 1, 2, 2, 2, 3, 4]
107
 
>>> is_valid_degree_sequence(z)
108
 
True
109
 
>>> G=degree_sequence_tree(z)
110
 
>>> len(G.nodes())==len(z)
111
 
True
112
 
>>> len(G.edges())==sum(z)/2
113
 
True
114
 
 
115
 
>>> z=[1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 4]
116
 
>>> is_valid_degree_sequence(z)
117
 
False
118
 
>>> G=degree_sequence_tree(z)
119
 
Traceback (most recent call last):
120
 
...
121
 
NetworkXError: Degree sequence invalid
122
 
 
123
 
 
124
 
Degree Sequences
125
 
----------------
126
 
 
127
 
>>> from networkx.utils import *
128
 
>>> seq=create_degree_sequence(10,uniform_sequence)
129
 
>>> len(seq)
130
 
10
131
 
>>> seq=create_degree_sequence(10,powerlaw_sequence)
132
 
>>> len(seq)
133
 
10
134
 
 
135
 
>>> graph = barabasi_albert_graph(200,1)
136
 
 
137
 
>>> degreeStart = sorted(degree(graph))
138
 
 
139
 
>>> swaps = connected_double_edge_swap(graph, 40)
140
 
>>> is_connected(graph)
141
 
True
142
 
 
143
 
>>> degseq = sorted(degree(graph))
144
 
>>> degreeStart == degseq
145
 
True
146
 
 
147
 
>>> swaps = double_edge_swap(graph, 40)
148
 
>>> degseq2 = sorted(degree(graph))
149
 
>>> degreeStart == degseq2
150
 
True
151
 
 
152
 
 
153
 
Contruction of s-max graph
154
 
--------------------------
155
 
 
156
 
>>> z=["A",3,3,3,3,2,2,2,1,1,1]
157
 
>>> li_smax_graph(z)
158
 
Traceback (most recent call last):
159
 
...
160
 
NetworkXError: Invalid degree sequence
161
 
 
162
 
>>> z=[5,4,3,3,3,2,2,2]
163
 
>>> G=li_smax_graph(z)
164
 
>>> is_connected(G)
165
 
True
166
 
>>> degs = degree(G)
167
 
>>> degs.sort()
168
 
>>> degs.reverse()
169
 
>>> degs == z
170
 
True
171
 
>>> z=[6,5,4,4,2,1,1,1]
172
 
>>> is_valid_degree_sequence(z)
173
 
False
174
 
>>> G=li_smax_graph(z)
175
 
Traceback (most recent call last):
176
 
...
177
 
NetworkXError: Invalid degree sequence
178
 
 
179
 
>>> z=[10,3,3,3,3,2,2,2,2,2,2]
180
 
>>> is_valid_degree_sequence(z)
181
 
True
182
 
>>> G=li_smax_graph(z)
183
 
>>> is_connected(G)
184
 
True
185
 
>>> degs = degree(G)
186
 
>>> degs.sort()
187
 
>>> degs.reverse()
188
 
>>> degs == z
189
 
True
190
 
 
191
 
 
192
 
S-metric
193
 
--------
194
 
 
195
 
>>> g = Graph()
196
 
>>> g.add_edge(1,2)
197
 
>>> g.add_edge(2,3)
198
 
>>> g.add_edge(2,4)
199
 
>>> g.add_edge(1,4)
200
 
>>> s_metric(g)
201
 
19
202