class Stack: def __init__(self): self.ll = SinglyLinkedList() def __len__(self): return len(self.ll) def is_empty(self): return self.ll.is_empty() def push(self, item): self.ll.insert_head(item) def pop(self): return self.ll.pop_head() def peek(self): return self.ll.peek_head()
def test_append(): linked_list = SinglyLinkedList() linked_list.append(4) linked_list.append(5) assert linked_list.size() == 2 assert linked_list.get(0) == 4 assert linked_list.get(1) == 5
def __init__(self): self.ll = SinglyLinkedList()
def setUp(self): super().setUp() self.linked_list = SinglyLinkedList()
class TestSinglyLinkedList(TestCase): def setUp(self): super().setUp() self.linked_list = SinglyLinkedList() def test_repr(self): self.assertEqual(repr(self.linked_list), "SinglyLinkedList(head=None, size=0)") def test_is_empty(self): self.assertTrue(self.linked_list.is_empty()) def test_add_front(self): self.linked_list.add_front(1) self.assertFalse(self.linked_list.is_empty()) def test_size(self): self.assertEqual(self.linked_list.size(), 0) self.linked_list.add_front(1) self.linked_list.add_front(2) self.assertEqual(self.linked_list.size(), 2) def test_search(self): self.linked_list.add_front(1) self.linked_list.add_front(2) self.assertEqual(self.linked_list.search(1).data, 1) self.assertEqual(self.linked_list.search(2).data, 2) self.assertIsNone(self.linked_list.search(3)) def test_remove(self): self.linked_list.add_front(1) self.linked_list.add_front(2) self.linked_list.add_front(3) self.linked_list.remove(2) self.assertEqual(self.linked_list.size(), 2) self.assertEqual(self.linked_list.search(1).data, 1) self.assertIsNone(self.linked_list.search(2)) self.assertEqual(self.linked_list.search(3).data, 3) def test_remove_head(self): self.linked_list.add_front(1) self.linked_list.add_front(2) self.linked_list.add_front(3) self.linked_list.remove(3) self.assertEqual(self.linked_list.size(), 2) self.assertEqual(self.linked_list.search(1).data, 1) self.assertEqual(self.linked_list.search(2).data, 2) self.assertIsNone(self.linked_list.search(3)) def test_remove_tail(self): self.linked_list.add_front(1) self.linked_list.add_front(2) self.linked_list.add_front(3) self.linked_list.remove(1) self.assertEqual(self.linked_list.size(), 2) self.assertIsNone(self.linked_list.search(1)) self.assertEqual(self.linked_list.search(2).data, 2) self.assertEqual(self.linked_list.search(3).data, 3) def test_remove_head_only(self): self.linked_list.add_front(1) self.linked_list.remove(1) self.assertEqual(self.linked_list.size(), 0)
def get_multi_node_list() -> SinglyLinkedList: multi_node_list = SinglyLinkedList() multi_node_list.append(1) multi_node_list.append(2) multi_node_list.append(3) return multi_node_list
def test_size(): assert SinglyLinkedList().size() == 0 linked_list = SinglyLinkedList() linked_list.append(1) assert linked_list.size() == 1 assert get_multi_node_list().size() == 3
def test_remove_empty(): linked_list = SinglyLinkedList() assert not linked_list.remove(0)
def test_init(): linked_list = SinglyLinkedList() assert linked_list.size() == 0
def test_insert_empty(): linked_list = SinglyLinkedList() linked_list.insert(3, 0) assert linked_list.size() == 1 assert linked_list.get(0) == 3
def test_get_empty(): assert not SinglyLinkedList().get(0)
def test_append_empty(): linked_list = SinglyLinkedList() linked_list.append(1) assert linked_list.size() == 1 assert linked_list.get(0) == 1
from data_structures.singly_linked_list import SinglyLinkedList EMPTY_LIST = SinglyLinkedList() def test_init(): linked_list = SinglyLinkedList() assert linked_list.size() == 0 def test_all_values(): linked_list = get_multi_node_list() assert linked_list.all_values() == [1, 2, 3] def test_append_empty(): linked_list = SinglyLinkedList() linked_list.append(1) assert linked_list.size() == 1 assert linked_list.get(0) == 1 def test_append(): linked_list = SinglyLinkedList() linked_list.append(4) linked_list.append(5) assert linked_list.size() == 2 assert linked_list.get(0) == 4 assert linked_list.get(1) == 5