Question: Write test cases for the code below, also an outline for the test case has been given at the bottom. please use it from __future__

Write test cases for the code below, also an outline for the test case has been given at the bottom. please use it

from __future__ import annotations

from typing import Any

class ArrayList:

# NOTE: Initial capacity is somewhat arbitrary. To making testing

# resizing easier, you'll probably want a small initial capacity.

# In practice, you'd probably have an initial capacity of 510.

def __init__(self, capacity: int = 1):

self.array: list[Any] = [None] * capacity

self.capacity = capacity

self.size = 0

def empty_list() -> ArrayList:

return ArrayList()

def add(lst: ArrayList, index: int, value: Any) -> ArrayList:

if index < 0 or index > lst.size:

raise IndexError("Invalid index")

if lst.size == lst.capacity:

new_array = [None] * (2 * lst.capacity)

for i in range(lst.size):

new_array[i] = lst.array[i]

lst.array = new_array

lst.capacity *= 2

for i in range(lst.size, index, -1):

lst.array[i] = lst.array[i - 1]

lst.array[index] = value

lst.size += 1

return lst

def length(lst: ArrayList) -> int:

return lst.size

def get(lst: ArrayList, index: int) -> Any:

if index < 0 or index >= lst.size:

raise IndexError("Invalid index")

return lst.array[index]

def setitem(lst: ArrayList, index: int, value: Any) -> ArrayList:

if index < 0 or index >= lst.size:

raise IndexError("Invalid index")

lst.array[index] = value

return lst

def remove(lst: ArrayList, index: int) -> tuple[Any, ArrayList]:

if index < 0 or index >= lst.size:

raise IndexError("Invalid index")

value = lst.array[index]

for i in range(index, lst.size - 1):

lst.array[i] = lst.array[i + 1]

lst.array[lst.size - 1] = None

lst.size -= 1

return value, lst

#test code outline

import unittest

from array_list import add, empty_list, get, length, remove, setitem

class Tests(unittest.TestCase):

def test_length_empty_list(self) -> None:

self.assertEqual(length(empty_list()), 0)

def test_add_to_list1(self) -> None:

my_list = empty_list()

add(my_list, 0, "hello")

self.assertEqual(my_list.array, ["hello"])

def test_add_to_list2(self) -> None:

my_list = empty_list()

add(my_list, 0, "a")

add(my_list, 1, "b")

add(my_list, 2, "c")

self.assertEqual(my_list.array, ["a", "b", "c", None])

# TODO: Add more tests!

if __name__ == "__main__":

unittest.main()

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!