summaryrefslogtreecommitdiff
path: root/test/test_tree.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_tree.py')
-rw-r--r--test/test_tree.py131
1 files changed, 86 insertions, 45 deletions
diff --git a/test/test_tree.py b/test/test_tree.py
index ea5af81..58a8ba9 100644
--- a/test/test_tree.py
+++ b/test/test_tree.py
@@ -23,12 +23,14 @@ squeleton generated by /home/syt/bin/py2tests on Jan 20 at 10:43:25
from logilab.common.testlib import TestCase, unittest_main
from logilab.common.tree import *
-tree = ('root', (
- ('child_1_1', (
- ('child_2_1', ()), ('child_2_2', (
- ('child_3_1', ()),
- )))),
- ('child_1_2', (('child_2_3', ()),))))
+tree = (
+ "root",
+ (
+ ("child_1_1", (("child_2_1", ()), ("child_2_2", (("child_3_1", ()),)))),
+ ("child_1_2", (("child_2_3", ()),)),
+ ),
+)
+
def make_tree(tuple):
n = Node(tuple[0])
@@ -36,123 +38,155 @@ def make_tree(tuple):
n.append(make_tree(child))
return n
+
class Node_ClassTest(TestCase):
""" a basic tree node, caracterised by an id"""
+
def setUp(self):
""" called before each test from this class """
self.o = make_tree(tree)
-
def test_flatten(self):
result = [r.id for r in self.o.flatten()]
- expected = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3']
+ expected = [
+ "root",
+ "child_1_1",
+ "child_2_1",
+ "child_2_2",
+ "child_3_1",
+ "child_1_2",
+ "child_2_3",
+ ]
self.assertListEqual(result, expected)
def test_flatten_with_outlist(self):
resultnodes = []
self.o.flatten(resultnodes)
result = [r.id for r in resultnodes]
- expected = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3']
+ expected = [
+ "root",
+ "child_1_1",
+ "child_2_1",
+ "child_2_2",
+ "child_3_1",
+ "child_1_2",
+ "child_2_3",
+ ]
self.assertListEqual(result, expected)
-
def test_known_values_remove(self):
"""
remove a child node
"""
- self.o.remove(self.o.get_node_by_id('child_1_1'))
- self.assertRaises(NodeNotFound, self.o.get_node_by_id, 'child_1_1')
+ self.o.remove(self.o.get_node_by_id("child_1_1"))
+ self.assertRaises(NodeNotFound, self.o.get_node_by_id, "child_1_1")
def test_known_values_replace(self):
"""
replace a child node with another
"""
- self.o.replace(self.o.get_node_by_id('child_1_1'), Node('hoho'))
- self.assertRaises(NodeNotFound, self.o.get_node_by_id, 'child_1_1')
- self.assertEqual(self.o.get_node_by_id('hoho'), self.o.children[0])
+ self.o.replace(self.o.get_node_by_id("child_1_1"), Node("hoho"))
+ self.assertRaises(NodeNotFound, self.o.get_node_by_id, "child_1_1")
+ self.assertEqual(self.o.get_node_by_id("hoho"), self.o.children[0])
def test_known_values_get_sibling(self):
"""
return the sibling node that has given id
"""
- self.assertEqual(self.o.children[0].get_sibling('child_1_2'), self.o.children[1], None)
+ self.assertEqual(self.o.children[0].get_sibling("child_1_2"), self.o.children[1], None)
def test_raise_get_sibling_NodeNotFound(self):
- self.assertRaises(NodeNotFound, self.o.children[0].get_sibling, 'houhou')
+ self.assertRaises(NodeNotFound, self.o.children[0].get_sibling, "houhou")
def test_known_values_get_node_by_id(self):
"""
return node in whole hierarchy that has given id
"""
- self.assertEqual(self.o.get_node_by_id('child_1_1'), self.o.children[0])
+ self.assertEqual(self.o.get_node_by_id("child_1_1"), self.o.children[0])
def test_raise_get_node_by_id_NodeNotFound(self):
- self.assertRaises(NodeNotFound, self.o.get_node_by_id, 'houhou')
+ self.assertRaises(NodeNotFound, self.o.get_node_by_id, "houhou")
def test_known_values_get_child_by_id(self):
"""
return child of given id
"""
- self.assertEqual(self.o.get_child_by_id('child_2_1', recurse=1), self.o.children[0].children[0])
+ self.assertEqual(
+ self.o.get_child_by_id("child_2_1", recurse=1), self.o.children[0].children[0]
+ )
def test_raise_get_child_by_id_NodeNotFound(self):
- self.assertRaises(NodeNotFound, self.o.get_child_by_id, nid='child_2_1')
- self.assertRaises(NodeNotFound, self.o.get_child_by_id, 'houhou')
+ self.assertRaises(NodeNotFound, self.o.get_child_by_id, nid="child_2_1")
+ self.assertRaises(NodeNotFound, self.o.get_child_by_id, "houhou")
def test_known_values_get_child_by_path(self):
"""
return child of given path (path is a list of ids)
"""
- self.assertEqual(self.o.get_child_by_path(['root', 'child_1_1', 'child_2_1']), self.o.children[0].children[0])
+ self.assertEqual(
+ self.o.get_child_by_path(["root", "child_1_1", "child_2_1"]),
+ self.o.children[0].children[0],
+ )
def test_raise_get_child_by_path_NodeNotFound(self):
- self.assertRaises(NodeNotFound, self.o.get_child_by_path, ['child_1_1', 'child_2_11'])
+ self.assertRaises(NodeNotFound, self.o.get_child_by_path, ["child_1_1", "child_2_11"])
def test_known_values_depth_down(self):
"""
return depth of this node in the tree
"""
self.assertEqual(self.o.depth_down(), 4)
- self.assertEqual(self.o.get_child_by_id('child_2_1', True).depth_down(), 1)
+ self.assertEqual(self.o.get_child_by_id("child_2_1", True).depth_down(), 1)
def test_known_values_depth(self):
"""
return depth of this node in the tree
"""
self.assertEqual(self.o.depth(), 0)
- self.assertEqual(self.o.get_child_by_id('child_2_1', True).depth(), 2)
+ self.assertEqual(self.o.get_child_by_id("child_2_1", True).depth(), 2)
def test_known_values_width(self):
"""
return depth of this node in the tree
"""
self.assertEqual(self.o.width(), 3)
- self.assertEqual(self.o.get_child_by_id('child_2_1', True).width(), 1)
+ self.assertEqual(self.o.get_child_by_id("child_2_1", True).width(), 1)
def test_known_values_root(self):
"""
return the root node of the tree
"""
- self.assertEqual(self.o.get_child_by_id('child_2_1', True).root(), self.o)
+ self.assertEqual(self.o.get_child_by_id("child_2_1", True).root(), self.o)
def test_known_values_leaves(self):
"""
return a list with all the leaf nodes descendant from this task
"""
- self.assertEqual(self.o.leaves(), [self.o.get_child_by_id('child_2_1', True),
- self.o.get_child_by_id('child_3_1', True),
- self.o.get_child_by_id('child_2_3', True)])
+ self.assertEqual(
+ self.o.leaves(),
+ [
+ self.o.get_child_by_id("child_2_1", True),
+ self.o.get_child_by_id("child_3_1", True),
+ self.o.get_child_by_id("child_2_3", True),
+ ],
+ )
def test_known_values_lineage(self):
- c31 = self.o.get_child_by_id('child_3_1', True)
- self.assertEqual(c31.lineage(), [self.o.get_child_by_id('child_3_1', True),
- self.o.get_child_by_id('child_2_2', True),
- self.o.get_child_by_id('child_1_1', True),
- self.o])
+ c31 = self.o.get_child_by_id("child_3_1", True)
+ self.assertEqual(
+ c31.lineage(),
+ [
+ self.o.get_child_by_id("child_3_1", True),
+ self.o.get_child_by_id("child_2_2", True),
+ self.o.get_child_by_id("child_1_1", True),
+ self.o,
+ ],
+ )
class post_order_list_FunctionTest(TestCase):
""""""
+
def setUp(self):
""" called before each test from this class """
self.o = make_tree(tree)
@@ -162,7 +196,7 @@ class post_order_list_FunctionTest(TestCase):
create a list with tree nodes for which the <filter> function returned true
in a post order foashion
"""
- L = ['child_2_1', 'child_3_1', 'child_2_2', 'child_1_1', 'child_2_3', 'child_1_2', 'root']
+ L = ["child_2_1", "child_3_1", "child_2_2", "child_1_1", "child_2_3", "child_1_2", "root"]
l = [n.id for n in post_order_list(self.o)]
self.assertEqual(l, L, l)
@@ -171,23 +205,26 @@ class post_order_list_FunctionTest(TestCase):
create a list with tree nodes for which the <filter> function returned true
in a post order foashion
"""
+
def filter(node):
- if node.id == 'child_2_2':
+ if node.id == "child_2_2":
return 0
return 1
- L = ['child_2_1', 'child_1_1', 'child_2_3', 'child_1_2', 'root']
+
+ L = ["child_2_1", "child_1_1", "child_2_3", "child_1_2", "root"]
l = [n.id for n in post_order_list(self.o, filter)]
self.assertEqual(l, L, l)
class PostfixedDepthFirstIterator_ClassTest(TestCase):
""""""
+
def setUp(self):
""" called before each test from this class """
self.o = make_tree(tree)
def test_known_values_next(self):
- L = ['child_2_1', 'child_3_1', 'child_2_2', 'child_1_1', 'child_2_3', 'child_1_2', 'root']
+ L = ["child_2_1", "child_3_1", "child_2_2", "child_1_1", "child_2_3", "child_1_2", "root"]
iter = PostfixedDepthFirstIterator(self.o)
o = next(iter)
i = 0
@@ -199,6 +236,7 @@ class PostfixedDepthFirstIterator_ClassTest(TestCase):
class pre_order_list_FunctionTest(TestCase):
""""""
+
def setUp(self):
""" called before each test from this class """
self.o = make_tree(tree)
@@ -208,7 +246,7 @@ class pre_order_list_FunctionTest(TestCase):
create a list with tree nodes for which the <filter> function returned true
in a pre order fashion
"""
- L = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3']
+ L = ["root", "child_1_1", "child_2_1", "child_2_2", "child_3_1", "child_1_2", "child_2_3"]
l = [n.id for n in pre_order_list(self.o)]
self.assertEqual(l, L, l)
@@ -217,23 +255,26 @@ class pre_order_list_FunctionTest(TestCase):
create a list with tree nodes for which the <filter> function returned true
in a pre order fashion
"""
+
def filter(node):
- if node.id == 'child_2_2':
+ if node.id == "child_2_2":
return 0
return 1
- L = ['root', 'child_1_1', 'child_2_1', 'child_1_2', 'child_2_3']
+
+ L = ["root", "child_1_1", "child_2_1", "child_1_2", "child_2_3"]
l = [n.id for n in pre_order_list(self.o, filter)]
self.assertEqual(l, L, l)
class PrefixedDepthFirstIterator_ClassTest(TestCase):
""""""
+
def setUp(self):
""" called before each test from this class """
self.o = make_tree(tree)
def test_known_values_next(self):
- L = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3']
+ L = ["root", "child_1_1", "child_2_1", "child_2_2", "child_3_1", "child_1_2", "child_2_3"]
iter = PrefixedDepthFirstIterator(self.o)
o = next(iter)
i = 0
@@ -243,5 +284,5 @@ class PrefixedDepthFirstIterator_ClassTest(TestCase):
i += 1
-if __name__ == '__main__':
+if __name__ == "__main__":
unittest_main()