BinarySearchTreeUnitTest.test_binarySearchTree()   B
last analyzed

Complexity

Conditions 4

Size

Total Lines 42

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
cc 4
c 3
b 0
f 0
dl 0
loc 42
rs 8.5806
1
import unittest
2
3
from pyalgs.data_structures.commons.binary_search_tree import BinarySearchTree
4
5
6
class BinarySearchTreeUnitTest(unittest.TestCase):
7
    def test_binarySearchTree(self):
8
        bst = BinarySearchTree.create()
9
10
        bst.put("one", 1)
11
        bst.put("two", 2)
12
        bst.put("three", 3)
13
        bst.put("six", 6)
14
        bst.put("ten", 10)
15
        bst.put("ten", 10)
16
17
        self.assertEqual(1, bst.get("one"))
18
        self.assertEqual(2, bst.get("two"))
19
        self.assertEqual(3, bst.get("three"))
20
21
        self.assertTrue(bst.contains_key("one"))
22
        self.assertTrue(bst.contains_key("two"))
23
24
        self.assertEqual(5, bst.size())
25
        self.assertFalse(bst.is_empty())
26
27
        bst.delete("one")
28
        self.assertFalse(bst.contains_key("one"))
29
        self.assertEqual(4, bst.size())
30
31
        bst.delete("ten")
32
        self.assertFalse(bst.contains_key("ten"))
33
        self.assertEqual(3, bst.size())
34
35
        bst.delete("three")
36
        self.assertFalse(bst.contains_key("three"))
37
        self.assertEqual(2, bst.size())
38
39
        for i in range(100):
40
            bst.put(str(i), i)
41
            self.assertEqual(i, bst.get(str(i)))
42
43
        for key in bst.keys():
44
            print(key)
45
46
        for i in range(100):
47
            bst.delete(str(i))
48
            self.assertFalse(bst.contains_key(str(i)))
49
50
51
52
53
class RedBlackTreeUnitTest(unittest.TestCase):
54
    def test_binarySearchTree(self):
55
        bst = BinarySearchTree.create_red_black_tree()
56
57
        bst.put("one", 1)
58
        bst.put("two", 2)
59
        bst.put("three", 3)
60
        bst.put("six", 6)
61
        bst.put("ten", 10)
62
        bst.put("ten", 10)
63
64
        self.assertEqual(1, bst.get("one"))
65
        self.assertEqual(2, bst.get("two"))
66
        self.assertEqual(3, bst.get("three"))
67
68
        self.assertTrue(bst.contains_key("one"))
69
        self.assertTrue(bst.contains_key("two"))
70
71
        self.assertEqual(5, bst.size())
72
        self.assertFalse(bst.is_empty())
73
74
        bst.delete("one")
75
        self.assertFalse(bst.contains_key("one"))
76
        self.assertEqual(4, bst.size())
77
78
        bst.delete("ten")
79
        self.assertFalse(bst.contains_key("ten"))
80
        self.assertEqual(3, bst.size())
81
82
        bst.delete("three")
83
        self.assertFalse(bst.contains_key("three"))
84
        self.assertEqual(2, bst.size())
85
86
        for i in range(100):
87
            bst.put(str(i), i)
88
            self.assertEqual(i, bst.get(str(i)))
89
90
        for key in bst.keys():
91
            print(key)
92
93
        for i in range(100):
94
            bst.delete(str(i))
95
            self.assertFalse(bst.contains_key(str(i)))
96
97
98
if __name__ == '__main__':
99
    unittest.main()