from tasks import *
from typing import List, Callable
def internal_test_transform(func: Callable[[List[int], int, int], List[int]]):
assert func([], -1, 1) == []
assert func([-3, -2, -1, 0, 1, 2, 3], -2, 2) == [4, 1, 0, 1, 4]
def test_transform_simple():
internal_test_transform(transform_simple)
def test_transform_list_comprehensions():
internal_test_transform(transform_list_comprehensions)
def test_transform_generators():
internal_test_transform(transform_generators)
def internal_test_conditional_sum(func: Callable[[List[List[int]]], int]):
assert func([
[1, 2],
[3, 4]
]) == 20
assert func([
[0, -2],
[-2, 4]
]) == 24
def test_conditional_sum_2d_simple():
internal_test_conditional_sum(conditional_sum_2d_simple)
def test_conditional_sum_2d():
internal_test_conditional_sum(conditional_sum_2d)
def test_reverse_array():
assert reverse_array([], 0, 0) == []
assert reverse_array([1, 2, 3], 0, 2) == [3, 2, 1]
assert reverse_array([1, 2, 3, 4, 5], 1, 3) == [4, 3, 2]
def test_verbing():
assert verbing('read') == 'reading'
assert verbing('reading') == 'readingly'
assert verbing('aa') == 'aa'
assert verbing('') == ''
def test_front_back():
assert front_back([1, 2, 3, 4], [5, 6]) == [1, 2, 5, 3, 4, 6]
assert front_back([1, 2, 3, 4, 5], [6, 7]) == [1, 2, 3, 6, 4, 5, 7]
assert front_back([1, 2, 3, 4, 5], [6, 7, 8]) == [1, 2, 3, 6, 7, 4, 5, 8]
assert front_back([1, 2, 3], []) == [1, 2, 3]
assert front_back([], [1, 2, 3]) == [1, 2, 3]
assert front_back([], []) == []
def test_remove_adjacent():
assert remove_adjacent([]) == []
assert remove_adjacent([1]) == [1]
assert remove_adjacent([1, 2]) == [1, 2]
assert remove_adjacent([1, 1]) == [1]
assert remove_adjacent([1, 1, 1]) == [1]
assert remove_adjacent([1, 2, 2, 3]) == [1, 2, 3]
assert remove_adjacent([1, 2, 2, 3, 3]) == [1, 2, 3]
assert remove_adjacent([1, 2, 3]) == [1, 2, 3]
assert remove_adjacent([1, 2, 3, 2]) == [1, 2, 3, 2]
Comments