def merge_sorted_arrays(array1: list, array2: list) -> list:
# Check inputs
if len(array1) == 0:
return array2
if len(array2) == 0:
return array1
merged_array: list = []
i = 0
j = 0
# Compare elements of both arrays and append the smaller one to the merged array
while i < len(array1) and j < len(array2):
if array1[i] < array2[j]:
merged_array.append(array1[i])
i += 1
else:
merged_array.append(array2[j])
j += 1
# Append the remaining elements of the longer array
while i < len(array1):
merged_array.append(array1[i])
i += 1
while j < len(array2):
merged_array.append(array2[j])
j += 1
return merged_array
# CASE-1: Both arrays are empty
array1 = []
array2 = []
result = merge_sorted_arrays(array1, array2)
print("CASE-1: Both arrays are empty")
print(result)
# CASE-2: First array is empty
array1 = []
array2 = [1, 2, 3]
result = merge_sorted_arrays(array1, array2)
print("\nCASE-2: First array is empty")
print(result)
# CASE-3: Second array is empty
array1 = [1, 2, 3]
array2 = []
result = merge_sorted_arrays(array1, array2)
print("\nCASE-3: Second array is empty")
print(result)
# CASE-4: Both arrays have elements
array1 = [1, 3, 5, 7]
array2 = [2, 4, 6, 8]
result = merge_sorted_arrays(array1, array2)
print("\nCASE-4: Both arrays have elements")
print(result)