From 61ff75dca05f6a89b4ba0840876af27dffa4bb9d Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Tue, 1 Nov 2016 11:27:15 +0100 Subject: [PATCH] bugfix + tests for `CCArray.Sub.sub` --- src/core/CCArray.ml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/core/CCArray.ml b/src/core/CCArray.ml index 142bda9d..618f2390 100644 --- a/src/core/CCArray.ml +++ b/src/core/CCArray.ml @@ -695,7 +695,15 @@ module Sub = struct let copy a = Array.sub a.arr a.i (length a) - let sub a i len = make a.arr ~len:(a.i + i) len + let sub a i len = make a.arr (a.i + i) ~len + (*$= + [ 3;4 ] \ + (let a = Sub.make (0--10) 2 5 in Sub.sub a 1 2 |> Sub.to_list) + [ ] \ + (let a = Sub.make (0--10) 2 5 in Sub.sub a 1 0 |> Sub.to_list) + [ 5 ] \ + (let a = Sub.make (0--10) 1 9 in Sub.sub a 4 1 |> Sub.to_list) + *) let equal eq a b = length a = length b && _equal eq a.arr a.i a.j b.arr b.i b.j @@ -710,7 +718,8 @@ module Sub = struct in _fold acc a.i a.j let to_list a = - fold (fun l x -> x::l) [] a |> List.rev + let l = fold (fun l x -> x::l) [] a in + List.rev l let foldi f acc a = _foldi f acc a.arr a.i a.j