def test_traversal(self):
     """Tests equivalent traversal behaviour."""
     t = (1, (2, (1, 'a')), (2, 'b'), (3, (2, (4, 'x', 'y'))))
     tuple_iter = tupletraversal.preorder(t)
     root = parsetree.fromtuple(t)
     node_iter = root.preorder()
     for t, n in zip(tuple_iter, node_iter):
         self.assertEqual(t, n)
Example #2
0
 def test_preorder_01(self):
     """Tests preorder traversal through tree representation in tuple."""
     l = []
     tup = (1, (2,))
     exp = [(1, (2,)),
            (2,)]
     val = [1, 2]
     preorder_do(tup, l.append)
     self.assertListEqual(l, exp)
     self.assertListEqual(exp, [n for n in preorder(tup)])
     self.assertListEqual(val, [n for n in preorder_values(tup)])
 def test_traversal_library(self):
     """Tests equivalent traversal behaviour for all files in
     library."""
     for py in python_library():
         sys.stdout.write('{}...'.format(py))
         pt = parse(py)
         root = parsetree.fromtuple(pt)
         tuple_iter = tupletraversal.preorder(pt)
         node_iter = root.preorder()            
         for t, n in zip(tuple_iter, node_iter):
             self.assertEqual(t, n)
         print('PASS')
Example #4
0
def preorder_values(tup):
   for node in preorder(tup):
        yield node[0] if isinstance(node, tuple) else node