Code Duplication    Length = 13-14 lines in 2 locations

pyalgs/data_structures/commons/hashed_map.py 1 location

@@ 181-194 (lines=14) @@
178
                    self.resize(self.M // 2)
179
                return x.value
180
181
    def put(self, key, value):
182
        i = self.hash(key)
183
        for j in range(self.M):
184
            k = (i + j) % self.M
185
            x = self.id[k]
186
            if x is None:
187
                self.id[k] = Node(key, value)
188
                self.N += 1
189
                if self.N == self.M // 2:
190
                    self.resize(self.M * 2)
191
                break
192
            if util.cmp(x.key, key) == 0:
193
                self.id[k].value = value
194
                break
195
196
    def resize(self, new_size):
197
        clone = HashedMapWithLinearProbing(new_size)

pyalgs/data_structures/commons/hashed_set.py 1 location

@@ 168-180 (lines=13) @@
165
                    self.resize(self.M // 2)
166
                return True
167
168
    def add(self, key):
169
        i = self.hash(key)
170
        for j in range(self.M):
171
            k = (i + j) % self.M
172
            x = self.id[k]
173
            if x is None:
174
                self.id[k] = Node(key)
175
                self.N += 1
176
                if self.N == self.M // 2:
177
                    self.resize(self.M * 2)
178
                break
179
            if util.cmp(x.key, key) == 0:
180
                break
181
182
    def resize(self, new_size):
183
        clone = HashedSetWithLinearProbing(new_size)