summaryrefslogtreecommitdiff
path: root/networkx/drawing/tests/test_layout.py
diff options
context:
space:
mode:
Diffstat (limited to 'networkx/drawing/tests/test_layout.py')
-rw-r--r--networkx/drawing/tests/test_layout.py115
1 files changed, 108 insertions, 7 deletions
diff --git a/networkx/drawing/tests/test_layout.py b/networkx/drawing/tests/test_layout.py
index bcd6d236..8366d252 100644
--- a/networkx/drawing/tests/test_layout.py
+++ b/networkx/drawing/tests/test_layout.py
@@ -32,14 +32,115 @@ class TestLayout(object):
vpos=nx.shell_layout(G)
def test_smoke_string(self):
- G=self.Gs
- vpos=nx.random_layout(G)
- vpos=nx.circular_layout(G)
- vpos=nx.spring_layout(G)
- vpos=nx.fruchterman_reingold_layout(G)
- vpos=nx.spectral_layout(G)
- vpos=nx.shell_layout(G)
+ G = self.Gs
+ vpos = nx.random_layout(G)
+ vpos = nx.circular_layout(G)
+ vpos = nx.spring_layout(G)
+ vpos = nx.fruchterman_reingold_layout(G)
+ vpos = nx.spectral_layout(G)
+ vpos = nx.shell_layout(G)
+
+ def test_empty_graph(self):
+ G=nx.Graph()
+ vpos = nx.random_layout(G)
+ vpos = nx.circular_layout(G)
+ vpos = nx.spring_layout(G)
+ vpos = nx.fruchterman_reingold_layout(G)
+ vpos = nx.shell_layout(G)
+ vpos = nx.spectral_layout(G)
+ # center arg
+ vpos = nx.random_layout(G, scale=2, center=(4,5))
+ vpos = nx.circular_layout(G, scale=2, center=(4,5))
+ vpos = nx.spring_layout(G, scale=2, center=(4,5))
+ vpos = nx.shell_layout(G, scale=2, center=(4,5))
+ vpos = nx.spectral_layout(G, scale=2, center=(4,5))
+
+ def test_single_node(self):
+ G = nx.Graph()
+ G.add_node(0)
+ vpos = nx.random_layout(G)
+ vpos = nx.circular_layout(G)
+ vpos = nx.spring_layout(G)
+ vpos = nx.fruchterman_reingold_layout(G)
+ vpos = nx.shell_layout(G)
+ vpos = nx.spectral_layout(G)
+ # center arg
+ vpos = nx.random_layout(G, scale=2, center=(4,5))
+ vpos = nx.circular_layout(G, scale=2, center=(4,5))
+ vpos = nx.spring_layout(G, scale=2, center=(4,5))
+ vpos = nx.shell_layout(G, scale=2, center=(4,5))
+ vpos = nx.spectral_layout(G, scale=2, center=(4,5))
+
+ def check_scale_and_center(self, pos, scale, center):
+ center = numpy.array(center)
+ low = center - 0.5 * scale
+ hi = center + 0.5 * scale
+ vpos = numpy.array(list(pos.values()))
+ length = vpos.max(0) - vpos.min(0)
+ assert (length <= scale).all()
+ assert (vpos >= low).all()
+ assert (vpos <= hi).all()
+
+ def test_scale_and_center_arg(self):
+ G = nx.complete_graph(9)
+ G.add_node(9)
+ vpos = nx.random_layout(G, scale=2, center=(4,5))
+ self.check_scale_and_center(vpos, scale=2, center=(4,5))
+ vpos = nx.spring_layout(G, scale=2, center=(4,5))
+ self.check_scale_and_center(vpos, scale=2, center=(4,5))
+ vpos = nx.spectral_layout(G, scale=2, center=(4,5))
+ self.check_scale_and_center(vpos, scale=2, center=(4,5))
+ # circular can have twice as big length
+ vpos = nx.circular_layout(G, scale=2, center=(4,5))
+ self.check_scale_and_center(vpos, scale=2*2, center=(4,5))
+ vpos = nx.shell_layout(G, scale=2, center=(4,5))
+ self.check_scale_and_center(vpos, scale=2*2, center=(4,5))
+
+ # check default center and scale
+ vpos = nx.random_layout(G)
+ self.check_scale_and_center(vpos, scale=1, center=(0.5,0.5))
+ vpos = nx.spring_layout(G)
+ self.check_scale_and_center(vpos, scale=1, center=(0.5,0.5))
+ vpos = nx.spectral_layout(G)
+ self.check_scale_and_center(vpos, scale=1, center=(0.5,0.5))
+ vpos = nx.circular_layout(G)
+ self.check_scale_and_center(vpos, scale=2, center=(0,0))
+ vpos = nx.shell_layout(G)
+ self.check_scale_and_center(vpos, scale=2, center=(0,0))
+
+ def test_shell_layout(self):
+ G = nx.complete_graph(9)
+ shells=[[0], [1,2,3,5], [4,6,7,8]]
+ vpos = nx.shell_layout(G, nlist=shells)
+ vpos = nx.shell_layout(G, nlist=shells, scale=2, center=(3,4))
+ shells=[[0,1,2,3,5], [4,6,7,8]]
+ vpos = nx.shell_layout(G, nlist=shells)
+ vpos = nx.shell_layout(G, nlist=shells, scale=2, center=(3,4))
+
+ def test_spring_args(self):
+ G = nx.complete_graph(9)
+ vpos = nx.spring_layout(G, dim=3)
+ assert_equal(vpos[0].shape, (3,))
+ vpos = nx.spring_layout(G, fixed=[0,1], pos={1:(0,0), 2:(1,1)})
+ vpos = nx.spring_layout(G, k=2, fixed=[0,1], pos={1:(0,0), 2:(1,1)})
+ vpos = nx.spring_layout(G, scale=3, center=(2,5))
+ vpos = nx.spring_layout(G, scale=3)
+ vpos = nx.spring_layout(G, center=(2,5))
+ def test_spectral_for_small_graphs(self):
+ G = nx.Graph()
+ vpos = nx.spectral_layout(G)
+ vpos = nx.spectral_layout(G, center=(2,3))
+ G.add_node(0)
+ vpos = nx.spectral_layout(G)
+ vpos = nx.spectral_layout(G, center=(2,3))
+ G.add_node(1)
+ vpos = nx.spectral_layout(G)
+ vpos = nx.spectral_layout(G, center=(2,3))
+ # 3 nodes should allow eigensolvers to work
+ G.add_node(2)
+ vpos = nx.spectral_layout(G)
+ vpos = nx.spectral_layout(G, center=(2,3))
def test_adjacency_interface_numpy(self):
A=nx.to_numpy_matrix(self.Gs)