|
2 | 2 |
|
3 | 3 | from lambdas import ZERO, ONE, TWO, THREE, FOUR |
4 | 4 | from lambdas import ADD, LTE |
5 | | -from lambdas import LIST, APPEND, PREPEND, REVERSE, MAP, RANGE, REDUCE, FILTER |
| 5 | +from lambdas import LIST, APPEND, PREPEND, REVERSE |
| 6 | +from lambdas import MAP, RANGE, REDUCE, FILTER, TAKE, DROP |
6 | 7 | from lambdas import decode_number, decode_list |
7 | 8 |
|
8 | 9 |
|
@@ -97,3 +98,28 @@ def test_filter(given, expected): |
97 | 98 | result = FILTER(LTE(TWO))(lst) |
98 | 99 | decoded = [decode_number(n) for n in decode_list(result)] |
99 | 100 | assert decoded == expected |
| 101 | + |
| 102 | + |
| 103 | +@pytest.mark.parametrize('given, number, expected', [ |
| 104 | + ([1, 2, 3], ONE, [2, 3]), |
| 105 | +]) |
| 106 | +def test_drop(given, number, expected): |
| 107 | + lst = LIST |
| 108 | + for el in given: |
| 109 | + lst = APPEND(lst)(el) |
| 110 | + result = DROP(number)(lst) |
| 111 | + assert decode_list(result) == expected |
| 112 | + |
| 113 | + |
| 114 | +@pytest.mark.parametrize('given, number, expected', [ |
| 115 | + ([1, 2, 3], TWO, [1, 2]), |
| 116 | + ([1, 2, 3], FOUR, [1, 2, 3]), |
| 117 | + ([1, 2, 3], ZERO, []), |
| 118 | + ([], TWO, []), |
| 119 | +]) |
| 120 | +def test_take(given, number, expected): |
| 121 | + lst = LIST |
| 122 | + for el in given: |
| 123 | + lst = APPEND(lst)(el) |
| 124 | + result = TAKE(number)(lst) |
| 125 | + assert decode_list(result) == expected |
0 commit comments