From e66e979485939a04fd4cd66714711c195ddf866e Mon Sep 17 00:00:00 2001 From: Ongoma6 Date: Sat, 31 Aug 2024 23:15:27 +0300 Subject: [PATCH 1/2] A --- test_data.py | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 test_data.py diff --git a/test_data.py b/test_data.py new file mode 100644 index 0000000..a107dca --- /dev/null +++ b/test_data.py @@ -0,0 +1,86 @@ +# Define the function to be tested +def reverse_string(s: str) -> str: + return s[::-1] # Simple implementation using slicing + +# Define test functions +def test_reverse_string(): + assert reverse_string("hello") == "olleh" + assert reverse_string("Python") == "nohtyP" + assert reverse_string("") == "" + print("test_reverse_string passed") + +# Define the class to be tested +class QueueWithStacks: + def __init__(self): + self.stack1 = [] + self.stack2 = [] + + def enqueue(self, x: int): + self.stack1.append(x) + + def dequeue(self) -> int: + if not self.stack2: + while self.stack1: + self.stack2.append(self.stack1.pop()) + if not self.stack2: + raise IndexError("dequeue from empty queue") + return self.stack2.pop() + +# Define test functions +def test_queue_with_stacks(): + q = QueueWithStacks() + q.enqueue(1) + q.enqueue(2) + assert q.dequeue() == 1 + assert q.dequeue() == 2 + print("test_queue_with_stacks passed") + +# Define the class to be tested +class Node: + def __init__(self, value): + self.value = value + self.next = None + +class LinkedList: + def __init__(self): + self.head = None + + def append(self, value): + new_node = Node(value) + if not self.head: + self.head = new_node + else: + current = self.head + while current.next: + current = current.next + current.next = new_node + + def find_max(self) -> int: + if not self.head: + raise ValueError("Empty list") + + max_value = self.head.value + current = self.head.next # Start from the second node + while current: + if current.value > max_value: + max_value = current.value + current = current.next + + return max_value + +# Define test functions for LinkedList +def test_linked_list(): + ll = LinkedList() # Correct instantiation + ll.append(3) + ll.append(1) + ll.append(4) + ll.append(2) + assert ll.find_max() == 4 # Test for the highest value + print("test_linked_list passed!") + +# Run all tests +if __name__ == "__main__": + test_reverse_string() + test_queue_with_stacks() + test_linked_list() + print("All tests passed!") From 399244363b3d4ba392e58798c645af6928d30738 Mon Sep 17 00:00:00 2001 From: Ongoma6 Date: Sat, 7 Sep 2024 11:13:38 +0300 Subject: [PATCH 2/2] U --- linkedlist.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ reverse.py | 16 ++++++++++++++++ stacks.py | 31 +++++++++++++++++++++++++++++++ test_data.py | 3 +-- 4 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 linkedlist.py create mode 100644 reverse.py create mode 100644 stacks.py diff --git a/linkedlist.py b/linkedlist.py new file mode 100644 index 0000000..6590d5c --- /dev/null +++ b/linkedlist.py @@ -0,0 +1,50 @@ +# Define the class to be tested +class Node: + def __init__(self, value): + self.value = value + self.next = None + +class LinkedList: + def __init__(self): + self.head = None + + def append(self, value): + new_node = Node(value) + if not self.head: + self.head = new_node + else: + current = self.head + while current.next: + current = current.next + current.next = new_node + + def find_max(self) -> int: + if not self.head: + raise ValueError("Empty list") + + max_value = self.head.value + current = self.head.next # Start from the second node + while current: + if current.value > max_value: + max_value = current.value + current = current.next + + return max_value + +# Define test functions for LinkedList +def test_linked_list(): + ll = LinkedList() # Correct instantiation + ll.append(3) + ll.append(1) + ll.append(4) + ll.append(2) + assert ll.find_max() == 4 # Test for the highest value + print("test_linked_list passed!") + + + +#Run the test + +if __name__=="__main__": + test_linked_list() + print("linked_list test passed!") diff --git a/reverse.py b/reverse.py new file mode 100644 index 0000000..71ac1cd --- /dev/null +++ b/reverse.py @@ -0,0 +1,16 @@ +# Define the function to be tested +def reverse_string(s: str) -> str: + return s[::-1] # Simple implementation using slicing + +# Define test functions +def test_reverse_string(): + assert reverse_string("hello") == "olleh" + assert reverse_string("Python") == "nohtyP" + assert reverse_string("") == "" + print("test_reverse_string passed") + + +#Run all tests +if __name__ == "__main__": + test_reverse_string() + print("reverse_string passed!") \ No newline at end of file diff --git a/stacks.py b/stacks.py new file mode 100644 index 0000000..6d2fe94 --- /dev/null +++ b/stacks.py @@ -0,0 +1,31 @@ +# Define the class to be tested +class QueueWithStacks: + def __init__(self): + self.stack1 = [] + self.stack2 = [] + + def enqueue(self, x: int): + self.stack1.append(x) + + def dequeue(self) -> int: + if not self.stack2: + while self.stack1:self.stack2.append(self.stack1.pop()) + if not self.stack2: + raise IndexError("dequeue from empty queue") + return self.stack2.pop() + +# Define test functions +def test_queue_with_stacks(): + q = QueueWithStacks() + q.enqueue(1) + q.enqueue(2) + assert q.dequeue() == 1 + assert q.dequeue() == 2 + print("test_queue_with_stacks passed") + + + +#Run the test +if __name__=="__main__": + test_queue_with_stacks() + print("queue_with stack test is passed!") \ No newline at end of file diff --git a/test_data.py b/test_data.py index a107dca..59a3d58 100644 --- a/test_data.py +++ b/test_data.py @@ -20,8 +20,7 @@ def enqueue(self, x: int): def dequeue(self) -> int: if not self.stack2: - while self.stack1: - self.stack2.append(self.stack1.pop()) + while self.stack1:self.stack2.append(self.stack1.pop()) if not self.stack2: raise IndexError("dequeue from empty queue") return self.stack2.pop()