diff options
Diffstat (limited to 'networkx/algorithms/tree/tests/test_operations.py')
-rw-r--r-- | networkx/algorithms/tree/tests/test_operations.py | 46 |
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)) |