1.1 --- a/tests/nested_calls.py Mon Jul 16 23:00:47 2018 +0200
1.2 +++ b/tests/nested_calls.py Sat Jul 21 23:19:26 2018 +0200
1.3 @@ -13,3 +13,31 @@
1.4
1.5 c = C(3)
1.6 print c.length() # 6
1.7 +
1.8 +# Explicit function for addition purposes.
1.9 +
1.10 +def combine(x, y, z):
1.11 + return x + y + z
1.12 +
1.13 +class Tree:
1.14 + def __init__(self, item, left=None, right=None):
1.15 + self.item = item
1.16 + self.left = left
1.17 + self.right = right
1.18 +
1.19 + def count(self):
1.20 + if self.left and self.right:
1.21 + # Test calls in parameter lists needing separate temporary storage.
1.22 + return combine(self.item, self.left.count(), self.right.count())
1.23 + else:
1.24 + return self.item
1.25 +
1.26 +tree = \
1.27 + Tree(10000,
1.28 + Tree(2000,
1.29 + Tree(300),
1.30 + Tree(40)
1.31 + ),
1.32 + Tree(5))
1.33 +
1.34 +print tree.count() # 12345