summaryrefslogtreecommitdiff
path: root/networkx/algorithms/tree/tests/test_operations.py
diff options
context:
space:
mode:
Diffstat (limited to 'networkx/algorithms/tree/tests/test_operations.py')
-rw-r--r--networkx/algorithms/tree/tests/test_operations.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/networkx/algorithms/tree/tests/test_operations.py b/networkx/algorithms/tree/tests/test_operations.py
new file mode 100644
index 00000000..fd4e7c23
--- /dev/null
+++ b/networkx/algorithms/tree/tests/test_operations.py
@@ -0,0 +1,46 @@
+# test_operations.py - unit tests for the operations module
+#
+# Copyright 2015 NetworkX developers.
+#
+# This file is part of NetworkX.
+#
+# NetworkX is distributed under a BSD license; see LICENSE.txt for more
+# information.
+"""Unit tests for the :mod:`networkx.algorithms.tree.operations` module.
+
+"""
+from nose.tools import assert_equal
+from nose.tools import assert_true
+
+import networkx as nx
+
+
+class TestJoin(object):
+ """Unit tests for the :func:`networkx.tree.join` function."""
+
+ def test_empty_sequence(self):
+ """Tests that joining the empty sequence results in the tree
+ with one node.
+
+ """
+ T = nx.join([])
+ assert_equal(len(T), 1)
+ assert_equal(T.number_of_edges(), 0)
+
+ def test_single(self):
+ """Tests that joining just one tree yields a tree with one more
+ node.
+
+ """
+ T = nx.empty_graph(1)
+ actual = nx.join([(T, 0)])
+ expected = nx.path_graph(2)
+ assert_equal(list(expected), list(actual))
+ assert_equal(list(expected.edges()), list(actual.edges()))
+
+ def test_basic(self):
+ """Tests for joining multiple subtrees at a root node."""
+ trees = [(nx.full_rary_tree(2, 2 ** 2 - 1), 0) for i in range(2)]
+ actual = nx.join(trees)
+ expected = nx.full_rary_tree(2, 2 ** 3 - 1)
+ assert_true(nx.is_isomorphic(actual, expected))