def test_contains_element_not_in_list(self): values = LinkedList[int]() values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1))) self.assertFalse(7 in values) self.assertFalse(3 in values) self.assertFalse(4 in values)
def test_clear(self): values = LinkedList[int]() values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1))) values.clear() self.assertEqual(values.head, None) self.assertEqual(len(values), 0)
def test_contains_element_in_list(self): values = LinkedList[int]() values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1))) self.assertTrue(9 in values) self.assertTrue(5 in values) self.assertTrue(1 in values)
def test_index_element_not_in_list(self): values = LinkedList[int]() values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1))) self.assertRaises(ValueError, values.index, 7) self.assertRaises(ValueError, values.index, 3) self.assertRaises(ValueError, values.index, 4)
def test_index_element_in_list(self): values = LinkedList[int]() values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1))) self.assertEqual(values.index(9), 0) self.assertEqual(values.index(5), 1) self.assertEqual(values.index(1), 2)
def test_length_many_elements_list(self): values = LinkedList[int]() values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1))) self.assertEqual(len(values), 3)
def test_length_one_element_list(self): values = LinkedList[int]() values.head = LinkedList.Node(9) self.assertEqual(len(values), 1)
def test_string_many_elements_list(self): values = LinkedList[int]() values.head = LinkedList.Node(9, LinkedList.Node(5, LinkedList.Node(1))) self.assertEqual(str(values), '[9, 5, 1]')
def test_string_one_element_list(self): values = LinkedList[int]() values.head = LinkedList.Node(9) self.assertEqual(str(values), '[9]')
pass class BubbleSort(SortingAlgorithm): def sort(self, values: List[T]): length = len(values) for n in range(length): for i in range(length - 1): if self.gt(values[i], values[i + 1]): self.swap(values, i, i + 1) import numpy as np bubble_sort = BubbleSort() ke = 1000 a = list(np.random.randint(0, 100, 10)) b = LinkedList(*a) bubble_sort.sort(b) print(ke ** 2) print(bubble_sort.comparisons + bubble_sort.swaps) print(b) # x = range(100, 2000, 300) # res = [] # for ke in x: # bubble_sort = BubbleSort() # a = list(np.random.randint(0, 100, ke)) # bubble_sort.sort(a) # res.append(bubble_sort.comparisons + bubble_sort.swaps) # # import seaborn as sns # import matplotlib.pyplot as plt # sns.lineplot(x='x', y='y', data={'x': x, 'y':res})
def _create_empty_buckets(self, buckets_count: int) -> List[LinkedList]: return [LinkedList() for _ in range(buckets_count)]