|
|
@@ -77,6 +77,54 @@ class TestGraph(unittest.TestCase):
|
|
|
LL
|
|
|
""")
|
|
|
|
|
|
+ def test_ternary_multichar_middle_right(self):
|
|
|
+ exp = Leaf('x')
|
|
|
+ minus_99 = Node('-', Leaf('99'))
|
|
|
+ minus_inf = Node('-', Leaf('oo'))
|
|
|
+ integral = Node('int', exp, minus_inf, minus_99)
|
|
|
+ g = generate_graph(integral, Node, verbose=True)
|
|
|
+ self.assertEqualGraphs(g, """
|
|
|
+ int
|
|
|
+ ╭─┼──╮
|
|
|
+ x - -
|
|
|
+ │ │
|
|
|
+ oo 99
|
|
|
+ """)
|
|
|
+
|
|
|
+ def test_ternary_multichar_right(self):
|
|
|
+ exp = Leaf('x')
|
|
|
+ minus_99 = Node('-', Leaf('99'))
|
|
|
+ ten = Leaf('10')
|
|
|
+ integral = Node('int', exp, ten, minus_99)
|
|
|
+ g = generate_graph(integral, Node, verbose=True)
|
|
|
+ self.assertEqualGraphs(g, """
|
|
|
+ int
|
|
|
+ ╭─┼──╮
|
|
|
+ x 10 -
|
|
|
+ │
|
|
|
+ 99
|
|
|
+ """)
|
|
|
+
|
|
|
+ def test_quaternary(self):
|
|
|
+ a, b, c, d = Leaf(0), Leaf(1), Leaf(2), Leaf(3)
|
|
|
+ sum_node = Node('sum', a, b, c, d)
|
|
|
+ g = generate_graph(sum_node, Node, verbose=True)
|
|
|
+ self.assertEqualGraphs(g, """
|
|
|
+ sum
|
|
|
+ ╭─┬┴┬─╮
|
|
|
+ 0 1 2 3
|
|
|
+ """)
|
|
|
+
|
|
|
+ def test_quinary(self):
|
|
|
+ a, b, c, d, e = Leaf(0), Leaf(1), Leaf(2), Leaf(3), Leaf(4)
|
|
|
+ sum_node = Node('sum', a, b, c, d, e)
|
|
|
+ g = generate_graph(sum_node, Node, verbose=True)
|
|
|
+ self.assertEqualGraphs(g, """
|
|
|
+ sum
|
|
|
+ ╭─┬─┼─┬─╮
|
|
|
+ 0 1 2 3 4
|
|
|
+ """)
|
|
|
+
|
|
|
def strip(self, str):
|
|
|
return str.replace('\n ', '\n')[1:-1]
|
|
|
|