def test_filter(given, expected):
    lst = LIST
    for el in given:
        lst = APPEND(lst)(el)
    result = FILTER(LTE(TWO))(lst)
    decoded = [decode_number(n) for n in decode_list(result)]
    assert decoded == expected
def test_index(given, number, expected):
    lst = LIST
    for el in given:
        lst = APPEND(lst)(el)
    result = INDEX(number)(lst)
    if expected is not None:
        assert result == expected
def test_append(given):
    lst = LIST
    for el in given:
        lst = APPEND(lst)(el)
    assert decode_list(lst) == given
def test_all(given, expected):
    lst = LIST
    for el in given:
        lst = APPEND(lst)(el)
    assert ALL(lst) is expected
def test_length(given, expected):
    lst = LIST
    for el in given:
        lst = APPEND(lst)(el)
    assert decode_number(LENGTH(lst)) == expected
def test_take(given, number, expected):
    lst = LIST
    for el in given:
        lst = APPEND(lst)(el)
    result = TAKE(number)(lst)
    assert decode_list(result) == expected