Exemplo n.º 1
0
 def test_min(self):
     n1 = Node(2)
     n2 = Node(3)
     n3 = Node(4)
     n1.add_left(n2)
     n2.add_left(n3)
     self.assertEqual(n1.min(), n3)
Exemplo n.º 2
0
 def test_max(self):
     n1 = Node(2)
     n2 = Node(3)
     n3 = Node(4)
     n1.add_right(n2)
     n2.add_right(n3)
     self.assertEqual(n1.max(), n3)
Exemplo n.º 3
0
 def test_is_leaf(self):
     n1 = Node(2)
     self.assertTrue(n1.isLeaf())
     n1.add_left(Node(34))
     self.assertFalse(n1.isLeaf())
     n1.add_right(Node(5))
     self.assertFalse(n1.isLeaf())
Exemplo n.º 4
0
 def test_get_successor(self):
     n1 = Node(2)
     n2 = Node(3)
     n3 = Node(4)
     n1.add_left(n2)
     n2.add_right(n3)
     self.assertEqual(n3.getSuccessor(), n1)
Exemplo n.º 5
0
 def test_link_right_fails(self):
     n1 = Node(5)
     with self.assertRaises(Exception):
         n1.link_right(n1)
     n2 = Node(10)
     n1.link_right(n2)
     with self.assertRaises(Exception):
         n2.link_right(n1)
Exemplo n.º 6
0
 def test_on_left(self):
     n1 = Node(2)
     n2 = Node(3)
     n3 = Node(4)
     n1.add_left(n2)
     n1.add_right(n3)
     self.assertTrue(n1.on_left(n2))
     self.assertFalse(n1.on_left(n3))
Exemplo n.º 7
0
 def test_disconnect_right(self):
     n1 = Node(2)
     n2 = Node(3)
     n1.add_right(n2)
     self.assertEqual(n2.parent, n1)
     self.assertEqual(n1.right, n2)
     n1.disconnect_right()
     self.assertIsNone(n2.parent)
     self.assertIsNone(n1.right)
Exemplo n.º 8
0
 def test_disconnect_from_parent(self):
     n1 = Node(2)
     n2 = Node(3)
     n1.add_left(n2)
     self.assertEqual(n2.parent, n1)
     self.assertEqual(n1.left, n2)
     n2.disconnect_from_parent()
     self.assertIsNone(n2.parent)
     self.assertIsNone(n1.left)
Exemplo n.º 9
0
 def test_link_right(self):
     n1 = Node(2)
     n2 = Node(3)
     self.assertIsNone(n1.left)
     self.assertIsNone(n1.right)
     n1.link_right(n2)
     self.assertEqual(n1.right, n2)
     self.assertIsNone(n1.left)
     self.assertEqual(n2.parent, n1)
Exemplo n.º 10
0
 def test_blackheight_2(self):
     n1 = Node(1)
     n2 = Node(2, n1)
     n3 = Node(3, n2)
     self.assertEqual(n3.getBlackHeight(), 0)
     n3.red = False
     self.assertEqual(n3.getBlackHeight(), 1)
     n2.red = False
     self.assertEqual(n3.getBlackHeight(), 2)
     n1.red = False
     self.assertEqual(n3.getBlackHeight(), 3)
Exemplo n.º 11
0
 def test_get_pred_succ_while_no_condition(self):
     n1 = Node(2)
     n2 = Node(3)
     n3 = Node(4)
     n4 = Node(5)
     n1.add_left(n2)
     n1.add_right(n3)
     n3.add_left(n4)
     succresults = n2.getSuccessor_while(lambda x: True)
     self.assertEqual(succresults, [n1,n4,n3])
     predresults = n3.getPredecessor_while(lambda x: True)
     self.assertEqual(predresults, [n4,n1,n2])
     neighbours = n1.getNeighbours_while(lambda x: True)
     self.assertEqual(neighbours, [n2,n4,n3])
Exemplo n.º 12
0
 def test_rotate_left(self):
     n0 = Node(1)
     n1 = Node(2)
     n2 = Node(3)
     n3 = Node(4)
     n4 = Node(5)
     n0.add_right(n1)
     n1.add_left(n2)
     n1.add_right(n3)
     n3.add_left(n4)
     setAsRoot, newHead = n1.rotate_left()
     #self.assertTrue(setAsRoot)
     self.assertEqual(newHead, n3)
     self.assertEqual(n1.right, n4)
     self.assertEqual(n4.parent, n1)
     self.assertEqual(n0.right, newHead)
Exemplo n.º 13
0
 def test_add_left(self):
     n1 = Node(2)
     n2 = Node(3)
     self.assertIsNone(n1.left)
     n1.add_left(n2)
     self.assertEqual(n1.left, n2)
Exemplo n.º 14
0
 def test_get_predecessor_basic_2(self):
     n1 = Node(2)
     n2 = Node(3)
     n1.add_right(n2)
     self.assertEqual(n2.getPredecessor(), n1)
Exemplo n.º 15
0
 def test_get_successor_None(self):
     n1 = Node(2)
     self.assertIsNone(n1.getSuccessor())
Exemplo n.º 16
0
 def test_eq(self):
     self.assertTrue(self.n == self.n)
     other = Node(2)
     self.assertFalse(self.n == other)
     other2 = Node(5)
     self.assertFalse(self.n == other2)
Exemplo n.º 17
0
 def setUp(self):
     self.n = Node(2)
Exemplo n.º 18
0
 def test_add_right(self):
     n1 = Node(2)
     n2 = Node(3)
     self.assertIsNone(n1.right)
     n1.add_right(n2)
     self.assertEqual(n1.right, n2)
Exemplo n.º 19
0
 def test_get_successor_basic(self):
     n1 = Node(2)
     n2 = Node(3)
     n1.add_left(n2)
     self.assertEqual(n2.getSuccessor(), n1)
Exemplo n.º 20
0
 def test_get_successor_basic_2(self):
     n1 = Node(2)
     n2 = Node(3)
     n1.add_right(n2)
     self.assertEqual(n1.getSuccessor(), n2)
Exemplo n.º 21
0
 def test_get_predecessor_None(self):
     n1 = Node(2)
     self.assertIsNone(n1.getPredecessor())
Exemplo n.º 22
0
 def test_get_predecessor_basic(self):
     n1 = Node(2)
     n2 = Node(3)
     n1.add_left(n2)
     self.assertEqual(n1.getPredecessor(), n2)
     self.assertIsNone(n2.getPredecessor())