test_node.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import unittest
  2. import doctest
  3. import node
  4. from node import Node, Leaf
  5. from line import generate_line
  6. class TestNode(unittest.TestCase):
  7. def test_doctest(self):
  8. self.assertEqual(doctest.testmod(m=node)[0], 0)
  9. def setUp(self):
  10. self.l0 = Leaf('leaf 1')
  11. self.l1 = Leaf('leaf 2')
  12. self.node = Node('node', self.l0, self.l1)
  13. def test_getitem(self):
  14. assert self.node[0] == self.l0
  15. def test_setitem(self):
  16. self.node[0] = Leaf('leaf 3')
  17. assert self.node[0] != self.l0
  18. def test_iter(self):
  19. s = ''
  20. for leaf in self.node:
  21. s += leaf.title()
  22. assert s == 'leaf 1leaf 2'
  23. def test_len(self):
  24. assert len(self.node) == 2
  25. def test_title(self):
  26. assert self.node.title() == 'node'
  27. assert self.l0.title() == 'leaf 1'
  28. def test____str__(self):
  29. l1 = Leaf(1)
  30. self.assertEqual(str(l1), '1')
  31. l1 = -l1
  32. self.assertEqual(str(l1), '-1')
  33. l1 = -l1
  34. self.assertEqual(str(l1), '--1')
  35. def test_kwargs_constructor(self):
  36. l1, l2 = Leaf(1), Leaf(2)
  37. self.assertEqual(Node('+', l1, l2, negated=1).negated, 1)
  38. self.assertEqual(Leaf(1, negated=2).negated, 2)
  39. def test_negated_int_constructor(self):
  40. self.assertEquals(-Leaf(2), Leaf(-2))