Skip to content

Commit 1e4a22f

Browse files
committed
refactor: finish migration to qtest
1 parent 1111c0f commit 1e4a22f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+2117
-2403
lines changed

src/data/CCFQueue.ml

Lines changed: 0 additions & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ type 'a iter = ('a -> unit) -> unit
77
type 'a equal = 'a -> 'a -> bool
88
type 'a printer = Format.formatter -> 'a -> unit
99

10-
(*$inject
11-
let pp_ilist = CCFormat.(to_string (list int))
12-
*)
13-
1410
(** {2 Basics} *)
1511

1612
[@@@warning "-37"]
@@ -34,11 +30,6 @@ type +'a t =
3430

3531
let empty : type a. a t = Shallow Zero
3632

37-
(*$R
38-
let q = empty in
39-
OUnit2.assert_bool "is_empty" (is_empty q)
40-
*)
41-
4233
exception Empty
4334

4435
let _empty = Shallow Zero
@@ -68,11 +59,6 @@ let rec cons : type a. a -> a t -> a t
6859
| Deep (n,Three (y,z,z'), lazy q', tail) ->
6960
_deep (n+1) (Two (x,y)) (lazy (cons (z,z') q')) tail
7061

71-
(*$Q
72-
(Q.pair Q.int (Q.list Q.int)) (fun (x,l) -> \
73-
cons x (of_list l) |> to_list = x::l)
74-
*)
75-
7662
let rec snoc : type a. a t -> a -> a t
7763
= fun q x -> match q with
7864
| Shallow Zero -> _single x
@@ -85,19 +71,6 @@ let rec snoc : type a. a t -> a -> a t
8571
| Deep (n,hd, lazy q', Three (y,z,z')) ->
8672
_deep (n+1) hd (lazy (snoc q' (y,z))) (Two(z',x))
8773

88-
(*$Q
89-
(Q.pair Q.int (Q.list Q.int)) (fun (x,l) -> \
90-
snoc (of_list l) x |> to_list = l @ [x])
91-
*)
92-
93-
(*$R
94-
let q = List.fold_left snoc empty [1;2;3;4;5] in
95-
let q = tail q in
96-
let q = List.fold_left snoc q [6;7;8] in
97-
let l = Iter.to_list (to_iter q) in
98-
OUnit2.assert_equal ~printer:pp_ilist [2;3;4;5;6;7;8] l
99-
*)
100-
10174
let rec take_front_exn : 'a. 'a t -> ('a *'a t)
10275
= fun q -> match q with
10376
| Shallow Zero -> raise Empty
@@ -115,30 +88,10 @@ let rec take_front_exn : 'a. 'a t -> ('a *'a t)
11588
| Deep (n,Three (x,y,z), middle, tail) ->
11689
x, _deep (n-1) (Two(y,z)) middle tail
11790

118-
(*$Q
119-
(Q.pair Q.int (Q.list Q.int)) (fun (x,l) -> \
120-
let x', q = cons x (of_list l) |> take_front_exn in \
121-
x'=x && to_list q = l)
122-
*)
123-
124-
(*$R
125-
let q = of_list [1;2;3;4] in
126-
let x, q = take_front_exn q in
127-
OUnit2.assert_equal 1 x;
128-
let q = List.fold_left snoc q [5;6;7] in
129-
OUnit2.assert_equal 2 (first_exn q);
130-
let x, q = take_front_exn q in
131-
OUnit2.assert_equal 2 x;
132-
*)
133-
13491
let take_front q =
13592
try Some (take_front_exn q)
13693
with Empty -> None
13794

138-
(*$T
139-
take_front empty = None
140-
*)
141-
14295
let take_front_l n q =
14396
if n<0 then (
14497
invalid_arg "take_back_l: cannot take negative number of arguments"
@@ -150,11 +103,6 @@ let take_front_l n q =
150103
aux (x::acc) q' (n-1)
151104
in aux [] q n
152105

153-
(*$T
154-
let l, q = take_front_l 5 (1 -- 10) in \
155-
l = [1;2;3;4;5] && to_list q = [6;7;8;9;10]
156-
*)
157-
158106
let take_front_while p q =
159107
let rec aux acc q =
160108
if is_empty q then List.rev acc, q
@@ -163,10 +111,6 @@ let take_front_while p q =
163111
if p x then aux (x::acc) q' else List.rev acc, q
164112
in aux [] q
165113

166-
(*$T
167-
take_front_while (fun x-> x<5) (1 -- 10) |> fst = [1;2;3;4]
168-
*)
169-
170114
let rec take_back_exn : 'a. 'a t -> 'a t * 'a
171115
= fun q -> match q with
172116
| Shallow Zero -> raise Empty
@@ -182,20 +126,10 @@ let rec take_back_exn : 'a. 'a t -> 'a t * 'a
182126
| Deep (n, hd, middle, Two(x,y)) -> _deep (n-1) hd middle (One x), y
183127
| Deep (n, hd, middle, Three(x,y,z)) -> _deep (n-1) hd middle (Two (x,y)), z
184128

185-
(*$Q
186-
(Q.pair Q.int (Q.list Q.int)) (fun (x,l) -> \
187-
let q,x' = snoc (of_list l) x |> take_back_exn in \
188-
x'=x && to_list q = l)
189-
*)
190-
191129
let take_back q =
192130
try Some (take_back_exn q)
193131
with Empty -> None
194132

195-
(*$T
196-
take_back empty = None
197-
*)
198-
199133
let take_back_l n q =
200134
if n<0 then (
201135
invalid_arg "take_back_l: cannot take negative number of arguments"
@@ -240,11 +174,6 @@ let size : 'a. 'a t -> int
240174
| Shallow d -> _size_digit d
241175
| Deep (n, _, _, _) -> n
242176

243-
(*$Q
244-
(Q.list Q.int) (fun l -> \
245-
size (of_list l) = List.length l)
246-
*)
247-
248177
let _nth_digit : type l. int -> ('a, l) digit -> 'a = fun i d -> match i, d with
249178
| _, Zero -> raise Not_found
250179
| 0, One x -> x
@@ -278,51 +207,24 @@ let rec nth_exn : 'a. int -> 'a t -> 'a
278207
else
279208
_nth_digit (i'-2*size q') r
280209

281-
(*$T
282-
let l = CCList.(0--100) in let q = of_list l in \
283-
List.map (fun i->nth_exn i q) l = l
284-
*)
285-
286210
let nth i q =
287211
try Some (nth_exn i q)
288212
with Failure _ -> None
289213

290-
(*$Q & ~count:30
291-
(Q.list Q.int) (fun l -> \
292-
let len = List.length l in let idx = CCList.(0 -- (len - 1)) in \
293-
let q = of_list l in \
294-
l = [] || List.for_all (fun i -> nth i q = Some (List.nth l i)) idx)
295-
*)
296-
297214
let init q =
298215
try fst (take_back_exn q)
299216
with Empty -> q
300217

301-
(*$Q
302-
(Q.list Q.int) (fun l -> \
303-
l = [] || (of_list l |> init |> to_list = List.rev (List.tl (List.rev l))))
304-
*)
305-
306218
let tail q =
307219
try snd (take_front_exn q)
308220
with Empty -> q
309221

310-
(*$Q
311-
(Q.list Q.int) (fun l -> \
312-
l = [] || (of_list l |> tail |> to_list = List.tl l))
313-
*)
314-
315222
let add_iter_front seq q =
316223
let l = ref [] in
317224
(* reversed seq *)
318225
seq (fun x -> l := x :: !l);
319226
List.fold_left (fun q x -> cons x q) q !l
320227

321-
(*$Q
322-
Q.(pair (list int) (list int)) (fun (l1, l2) -> \
323-
add_iter_front (Iter.of_list l1) (of_list l2) |> to_list = l1 @ l2)
324-
*)
325-
326228
let add_iter_back q seq =
327229
let q = ref q in
328230
seq (fun x -> q := snoc !q x);
@@ -342,40 +244,17 @@ let rec to_iter : 'a. 'a t -> 'a iter
342244
to_iter q' (fun (x,y) -> k x; k y);
343245
_digit_to_iter tail k
344246

345-
(*$Q
346-
(Q.list Q.int) (fun l -> \
347-
of_list l |> to_iter |> Iter.to_list = l)
348-
*)
349-
350247
let append q1 q2 =
351248
match q1, q2 with
352249
| Shallow Zero, _ -> q2
353250
| _, Shallow Zero -> q1
354251
| _ -> add_iter_back q1 (to_iter q2)
355252

356-
(*$Q
357-
(Q.pair (Q.list Q.int)(Q.list Q.int)) (fun (l1,l2) -> \
358-
append (of_list l1) (of_list l2) |> to_list = l1 @ l2)
359-
*)
360-
361-
(*$R
362-
let q1 = of_iter (Iter.of_list [1;2;3;4]) in
363-
let q2 = of_iter (Iter.of_list [5;6;7;8]) in
364-
let q = append q1 q2 in
365-
let l = Iter.to_list (to_iter q) in
366-
OUnit2.assert_equal ~printer:pp_ilist [1;2;3;4;5;6;7;8] l
367-
*)
368-
369253
let add_seq_front seq q =
370254
(* reversed seq *)
371255
let l = Seq.fold_left (fun l elt -> elt::l ) [] seq in
372256
List.fold_left (fun q x -> cons x q) q l
373257

374-
(*$Q
375-
Q.(pair (list int) (list int)) (fun (l1, l2) -> \
376-
add_seq_front (CCList.to_seq l1) (of_list l2) |> to_list = l1 @ l2)
377-
*)
378-
379258
let add_seq_back q seq =
380259
Seq.fold_left (fun q x -> snoc q x) q seq
381260

@@ -396,11 +275,6 @@ let rec to_seq : 'a. 'a t -> 'a Seq.t
396275

397276
let of_seq seq = add_seq_front seq empty
398277

399-
(*$Q
400-
(Q.list Q.int) (fun l -> \
401-
of_list l |> to_seq |> CCList.of_seq = l)
402-
*)
403-
404278
let _map_digit : type l. ('a -> 'b) -> ('a, l) digit -> ('b, l) digit = fun f d -> match d with
405279
| Zero -> Zero
406280
| One x -> One (f x)
@@ -414,11 +288,6 @@ let rec map : 'a 'b. ('a -> 'b) -> 'a t -> 'b t
414288
let q'' = map (fun (x,y) -> f x, f y) q' in
415289
_deep size (_map_digit f hd) (Lazy.from_val q'') (_map_digit f tl)
416290

417-
(*$Q
418-
(Q.list Q.int) (fun l -> \
419-
of_list l |> map string_of_int |> to_list = List.map string_of_int l)
420-
*)
421-
422291
let (>|=) q f = map f q
423292

424293
let _fold_digit : type l. ('acc -> 'a -> 'acc) -> 'acc -> ('a, l) digit -> 'acc = fun f acc d -> match d with
@@ -435,17 +304,6 @@ let rec fold : 'a 'b. ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
435304
let acc = fold (fun acc (x,y) -> f (f acc x) y) acc q' in
436305
_fold_digit f acc tl
437306

438-
(*$Q
439-
(Q.list Q.int) (fun l -> \
440-
of_list l |> fold (fun acc x->x::acc) [] = List.rev l)
441-
*)
442-
443-
(*$R
444-
let q = of_iter (Iter.of_list [1;2;3;4]) in
445-
let n = fold (+) 0 q in
446-
OUnit2.assert_equal 10 n;
447-
*)
448-
449307
let iter f q = to_iter q f
450308

451309
let of_list l = List.fold_left snoc empty l
@@ -457,21 +315,11 @@ let to_list q =
457315

458316
let of_iter seq = add_iter_front seq empty
459317

460-
(*$Q
461-
(Q.list Q.int) (fun l -> \
462-
Iter.of_list l |> of_iter |> to_list = l)
463-
*)
464-
465318
let rev q =
466319
let q' = ref empty in
467320
iter (fun x -> q' := cons x !q') q;
468321
!q'
469322

470-
(*$Q
471-
(Q.list Q.int) (fun l -> \
472-
of_list l |> rev |> to_list = List.rev l)
473-
*)
474-
475323
let rec _equal_seq eq l1 l2 = match l1(), l2() with
476324
| Seq.Nil, Seq.Nil -> true
477325
| Seq.Nil, _
@@ -481,11 +329,6 @@ let rec _equal_seq eq l1 l2 = match l1(), l2() with
481329

482330
let equal eq q1 q2 = _equal_seq eq (to_seq q1) (to_seq q2)
483331

484-
(*$T
485-
let q1 = 1 -- 10 and q2 = append (1 -- 5) (6 -- 10) in \
486-
equal (=) q1 q2
487-
*)
488-
489332
let (--) a b =
490333
let rec up_to q a b = if a = b
491334
then snoc q a
@@ -495,24 +338,11 @@ let (--) a b =
495338
in
496339
if a <= b then up_to empty a b else down_to empty a b
497340

498-
(*$T
499-
1 -- 5 |> to_list = [1;2;3;4;5]
500-
5 -- 1 |> to_list = [5;4;3;2;1]
501-
0 -- 0 |> to_list = [0]
502-
*)
503-
504341
let (--^) a b =
505342
if a=b then empty
506343
else if a<b then a -- (b-1)
507344
else a -- (b+1)
508345

509-
(*$T
510-
1 --^ 5 |> to_list = [1;2;3;4]
511-
5 --^ 1 |> to_list = [5;4;3;2]
512-
1 --^ 2 |> to_list = [1]
513-
0 --^ 0 |> to_list = []
514-
*)
515-
516346
let pp pp_x out d =
517347
let first = ref true in
518348
Format.fprintf out "@[<hov2>queue {";

0 commit comments

Comments
 (0)