Completed
Push — master ( 18079e...90dc7f )
by Xianshun
01:17
created

HashedMapUnitTest.test_binarySearchTree()   B

Complexity

Conditions 4

Size

Total Lines 42

Duplication

Lines 42
Ratio 100 %

Importance

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