| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- # vim: set fileencoding=utf-8 :
- import unittest
- from node import Node, Leaf
- from graph import generate_graph
- class TestGraph(unittest.TestCase):
- def setUp(self):
- self.l0, self.l1, self.multi = Leaf(0), Leaf(1), Leaf('test')
- def tearDown(self):
- pass
- def test_simple_unary(self):
- uminus = Node('-', self.l1)
- g = generate_graph(uminus, Node)
- expect = self.strip("""
- -
- │
- 1
- """)
- assert g == expect
- def test_simple_binary(self):
- plus = Node('+', self.l0, self.l1)
- g = generate_graph(plus, Node)
- expect = self.strip("""
- +
- ╭┴╮
- 0 1
- """)
- assert g == expect
- def test_multichar_unary(self):
- uminus = Node('-', self.multi)
- g = generate_graph(uminus, Node)
- expect = self.strip("""
- -
- │
- test
- """)
- print g
- print expect
- assert g == expect
- def test_multichar_binary(self):
- plus = Node('+', self.multi, self.l1)
- g = generate_graph(plus, Node)
- expect = self.strip("""
- +
- ╭───┴╮
- test 1
- """)
- assert g == expect
- def test_function(self):
- exp = Leaf('x')
- inf = Leaf('oo')
- minus_inf = Node('-', inf)
- integral = Node('int', exp, minus_inf, inf)
- g = generate_graph(integral, Node)
- expect = self.strip("""
- int
- ╭─┼──╮
- x - oo
- │
- oo
- """)
- assert g == expect
- def strip(self, str):
- return str.replace('\n ', '\n')[1:-1]
|