A1 P1 Q1 Fix bug in heuristic 3
Fix faulty while loop and now returns true at the end
This commit is contained in:
@@ -164,9 +164,10 @@ class CountLinkedList(LinkedList):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
cur = self._first
|
cur = self._first
|
||||||
while (not cur.next) or cur.next.access_count < count:
|
while cur.next and cur.next.access_count < count:
|
||||||
cur = cur.next
|
cur = cur.next
|
||||||
cur.next = _CountNode(item, cur.next.next, count) # insert node
|
cur.next = _CountNode(item, cur.next.next if cur.next else None, count) # insert node
|
||||||
|
return True
|
||||||
|
|
||||||
def append(self, item: Any) -> None:
|
def append(self, item: Any) -> None:
|
||||||
"""Add the given item to the end of this linked list.
|
"""Add the given item to the end of this linked list.
|
||||||
|
|||||||
@@ -28,5 +28,13 @@ import pytest
|
|||||||
from a1_part1 import MoveToFrontLinkedList, SwapLinkedList, CountLinkedList
|
from a1_part1 import MoveToFrontLinkedList, SwapLinkedList, CountLinkedList
|
||||||
|
|
||||||
|
|
||||||
|
def test_all_lists_true() -> None:
|
||||||
|
movetofront = [MoveToFrontLinkedList(range(i)) for i in range(100)]
|
||||||
|
swap = [SwapLinkedList(range(i)) for i in range(100)]
|
||||||
|
count = [CountLinkedList(range(i)) for i in range(100)]
|
||||||
|
assert(all(all(x in movetofront[i] for x in range(i)) for i in range(100)))
|
||||||
|
assert(all(all(x in swap[i] for x in range(i)) for i in range(100)))
|
||||||
|
assert(all(all(x in count[i] for x in range(i)) for i in range(100)))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
pytest.main(['a1_part1_test.py', '-v'])
|
pytest.main(['a1_part1_test.py', '-v'])
|
||||||
|
|||||||
Reference in New Issue
Block a user