@@ -225,21 +225,25 @@ testList = do
225225 assert $ (take 1 (l [1 , 2 , 3 ])) == l [1 ]
226226 assert $ (take 2 (l [1 , 2 , 3 ])) == l [1 , 2 ]
227227 assert $ (take 1 nil) == nil
228+ assert $ (take 0 (l [1 , 2 ])) == l []
229+ assert $ (take (-1 ) (l [1 , 2 ])) == l []
228230
229231 log " takeEnd should keep the specified number of items from the end of an list, discarding the rest"
230232 assert $ (takeEnd 1 (l [1 , 2 , 3 ])) == l [3 ]
231233 assert $ (takeEnd 2 (l [1 , 2 , 3 ])) == l [2 , 3 ]
232234 assert $ (takeEnd 1 nil) == nil
235+ assert $ (takeEnd 2 (l [1 ])) == l [1 ]
233236
234237 log " takeWhile should keep all values that match a predicate from the front of an list"
235238 assert $ (takeWhile (_ /= 2 ) (l [1 , 2 , 3 ])) == l [1 ]
236239 assert $ (takeWhile (_ /= 3 ) (l [1 , 2 , 3 ])) == l [1 , 2 ]
237240 assert $ (takeWhile (_ /= 1 ) nil) == nil
238241
239- log " dropE should remove the specified number of items from the front of an list"
242+ log " drop should remove the specified number of items from the front of an list"
240243 assert $ (drop 1 (l [1 , 2 , 3 ])) == l [2 , 3 ]
241244 assert $ (drop 2 (l [1 , 2 , 3 ])) == l [3 ]
242245 assert $ (drop 1 nil) == nil
246+ assert $ (drop (-1 ) (l [1 , 2 , 3 ])) == l [1 , 2 , 3 ]
243247
244248 log " dropEnd should remove the specified number of items from the end of an list"
245249 assert $ (dropEnd 1 (l [1 , 2 , 3 ])) == l [1 , 2 ]
0 commit comments