Passed
Push — master ( dd9ec6...39de41 )
by Xianshun
01:21
created

HashedSetUnitTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 40
Duplicated Lines 100 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 40
loc 40
rs 10
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
B test_hashedset() 39 39 4

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
import unittest
2
3
from pyalgs.data_structures.commons.hashed_set import HashedSetWithSeparateChaining, HashedSet, \
4
    HashedSetWithLinearProbing
5
6
7 View Code Duplication
class HashedSetUnitTest(unittest.TestCase):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
8
    def test_hashedset(self):
9
        set = HashedSet.create()
10
11
        set.add("one")
12
        set.add("two")
13
        set.add("three")
14
        set.add("six")
15
        set.add("ten")
16
        set.add("ten")
17
18
19
        self.assertTrue(set.contains("one"))
20
        self.assertTrue(set.contains("two"))
21
22
        self.assertEqual(5, set.size())
23
        self.assertFalse(set.is_empty())
24
25
        set.delete("one")
26
        self.assertFalse(set.contains("one"))
27
        self.assertEqual(4, set.size())
28
29
        set.delete("ten")
30
        self.assertFalse(set.contains("ten"))
31
        self.assertEqual(3, set.size())
32
33
        set.delete("three")
34
        self.assertFalse(set.contains("three"))
35
        self.assertEqual(2, set.size())
36
37
        for i in range(100):
38
            set.add(str(i))
39
            self.assertTrue(set.contains(str(i)))
40
41
        for key in set.iterate():
42
            print(key)
43
44
        for i in range(100):
45
            set.delete(str(i))
46
            self.assertFalse(set.contains(str(i)))
47
48
49 View Code Duplication
class HashedSetWithSeparateChainingUnitTest(unittest.TestCase):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
50
    def test_binarySearchTree(self):
51
        set = HashedSetWithSeparateChaining()
52
53
        set.add("one")
54
        set.add("two")
55
        set.add("three")
56
        set.add("six")
57
        set.add("ten")
58
        set.add("ten")
59
60
        self.assertTrue(set.contains("one"))
61
        self.assertTrue(set.contains("two"))
62
63
        self.assertEqual(5, set.size())
64
        self.assertFalse(set.is_empty())
65
66
        set.delete("one")
67
        self.assertFalse(set.contains("one"))
68
        self.assertEqual(4, set.size())
69
70
        set.delete("ten")
71
        self.assertFalse(set.contains("ten"))
72
        self.assertEqual(3, set.size())
73
74
        set.delete("three")
75
        self.assertFalse(set.contains("three"))
76
        self.assertEqual(2, set.size())
77
78
        for i in range(100):
79
            set.add(str(i))
80
            self.assertTrue(set.contains(str(i)))
81
82
        for key in set.iterate():
83
            print(key)
84
85
        for i in range(100):
86
            set.delete(str(i))
87
            self.assertFalse(set.contains(str(i)))
88
89
90 View Code Duplication
class HashedSetWithLinearProbingUnitTest(unittest.TestCase):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
91
    def test_binarySearchTree(self):
92
        set = HashedSetWithLinearProbing()
93
94
        set.add("one")
95
        set.add("two")
96
        set.add("three")
97
        set.add("six")
98
        set.add("ten")
99
        set.add("ten")
100
101
        self.assertTrue(set.contains("one"))
102
        self.assertTrue(set.contains("two"))
103
104
        self.assertEqual(5, set.size())
105
        self.assertFalse(set.is_empty())
106
107
        set.delete("one")
108
        self.assertFalse(set.contains("one"))
109
        self.assertEqual(4, set.size())
110
111
        set.delete("ten")
112
        self.assertFalse(set.contains("ten"))
113
        self.assertEqual(3, set.size())
114
115
        set.delete("three")
116
        self.assertFalse(set.contains("three"))
117
        self.assertEqual(2, set.size())
118
119
        for i in range(100):
120
            set.add(str(i))
121
            self.assertTrue(set.contains(str(i)))
122
123
        for key in set.iterate():
124
            print(key)
125
126
        for i in range(100):
127
            set.delete(str(i))
128
            self.assertFalse(set.contains(str(i)))
129
130
131
if __name__ == '__main__':
132
    unittest.main()
133