Skip to content

Commit 6ad68dc

Browse files
committed
heaps and tests updated
1 parent 7bc7356 commit 6ad68dc

File tree

2 files changed

+16
-18
lines changed

2 files changed

+16
-18
lines changed

pydatastructs/trees/heaps.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@ class DHeap(Heap):
6969
7070
.. [1] https://en.wikipedia.org/wiki/D-ary_heap
7171
"""
72-
__slots__ = ['_comp', 'heap', 'm', 'heap_property', '_last_pos_filled']
72+
__slots__ = ['_comp', 'heap', 'd', 'heap_property', '_last_pos_filled']
7373

74-
def __new__(cls, elements=None, heap_property="min", d=3):
74+
def __new__(cls, elements=None, heap_property="min", d=4):
7575
obj = Heap.__new__(cls)
7676
obj.heap_property = heap_property
7777
obj.d = d
@@ -281,16 +281,18 @@ class TernaryHeap(DHeap):
281281
>>> min_heap.insert(1, 1)
282282
>>> min_heap.insert(5, 5)
283283
>>> min_heap.insert(7, 7)
284+
>>> min_heap.insert(3, 3)
284285
>>> min_heap.extract().key
285286
1
286287
>>> min_heap.insert(4, 4)
287288
>>> min_heap.extract().key
288-
4
289+
3
289290
290291
>>> max_heap = TernaryHeap(heap_property='max')
291292
>>> max_heap.insert(1, 1)
292293
>>> max_heap.insert(5, 5)
293294
>>> max_heap.insert(7, 7)
295+
>>> min_heap.insert(3, 3)
294296
>>> max_heap.extract().key
295297
7
296298
>>> max_heap.insert(6, 6)

pydatastructs/trees/tests/test_heaps.py

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ def test_BinaryHeap():
4040
TreeNode(17, 17), TreeNode(19, 19), TreeNode(36, 36)
4141
]
4242
min_heap = BinaryHeap(elements = elements, heap_property="min")
43-
expected_extracted_element = min_heap.heap[0].key
44-
assert min_heap.extract().key == expected_extracted_element
43+
assert min_heap.extract().key == 1
4544

4645
expected_sorted_elements = [2, 3, 7, 17, 19, 25, 36, 100]
4746
sorted_elements = [min_heap.extract().key for _ in range(8)]
@@ -65,8 +64,7 @@ def test_TernaryHeap():
6564
'(3, 3, []), (19, 19, []), (1, 1, []), '
6665
'(2, 2, []), (7, 7, [])]')
6766

68-
expected_extracted_element = max_heap.heap[0].key
69-
assert max_heap.extract().key == expected_extracted_element
67+
assert max_heap.extract().key == 100
7068

7169
expected_sorted_elements = [36, 25, 19, 17, 7, 3, 2, 1]
7270
sorted_elements = []
@@ -79,7 +77,7 @@ def test_TernaryHeap():
7977
TreeNode(1, 1), TreeNode(2, 2), TreeNode(3, 3),
8078
TreeNode(17, 17), TreeNode(19, 19), TreeNode(36, 36)
8179
]
82-
min_heap = BinaryHeap(elements=elements, heap_property="min")
80+
min_heap = TernaryHeap(elements=elements, heap_property="min")
8381
expected_extracted_element = min_heap.heap[0].key
8482
assert min_heap.extract().key == expected_extracted_element
8583

@@ -88,8 +86,8 @@ def test_TernaryHeap():
8886
assert expected_sorted_elements == sorted_elements
8987

9088
def test_DHeap():
91-
assert raises(ValueError, lambda: DHeap(heap_property="none", d=3))
92-
max_heap = DHeap(heap_property="max", d=4)
89+
assert raises(ValueError, lambda: DHeap(heap_property="none", d=4))
90+
max_heap = DHeap(heap_property="max", d=5)
9391
assert max_heap.extract() is None
9492
max_heap.insert(100, 100)
9593
max_heap.insert(19, 19)
@@ -98,14 +96,13 @@ def test_DHeap():
9896
max_heap.insert(3, 3)
9997
max_heap.insert(25, 25)
10098
max_heap.insert(1, 1)
101-
max_heap = DHeap(max_heap.heap, heap_property="max", d=3)
99+
max_heap = DHeap(max_heap.heap, heap_property="max", d=4)
102100
max_heap.insert(2, 2)
103101
max_heap.insert(7, 7)
104102
assert str(max_heap) == \
105-
('[(100, 100, [1, 2, 3]), (25, 25, [4, 5, 6]), '
106-
'(36, 36, [7, 8]), (17, 17, []), '
107-
'(3, 3, []), (19, 19, []), (1, 1, []), '
108-
'(2, 2, []), (7, 7, [])]')
103+
('[(100, 100, [1, 2, 3, 4]), (25, 25, [5, 6, 7, 8]), '
104+
'(36, 36, []), (17, 17, []), (3, 3, []), (19, 19, []), '
105+
'(1, 1, []), (2, 2, []), (7, 7, [])]')
109106

110107
expected_extracted_element = max_heap.heap[0].key
111108
assert max_heap.extract().key == expected_extracted_element
@@ -121,9 +118,8 @@ def test_DHeap():
121118
TreeNode(1, 1), TreeNode(2, 2), TreeNode(3, 3),
122119
TreeNode(17, 17), TreeNode(19, 19), TreeNode(36, 36)
123120
]
124-
min_heap = BinaryHeap(elements=elements, heap_property="min")
125-
expected_extracted_element = min_heap.heap[0].key
126-
assert min_heap.extract().key == expected_extracted_element
121+
min_heap = DHeap(elements=elements, heap_property="min")
122+
assert min_heap.extract().key == 1
127123

128124
expected_sorted_elements = [2, 3, 7, 17, 19, 25, 36, 100]
129125
sorted_elements = [min_heap.extract().key for _ in range(8)]

0 commit comments

Comments
 (0)