mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 03:05:28 -05:00
25 lines
1.1 KiB
OCaml
25 lines
1.1 KiB
OCaml
|
|
open CCOption
|
|
|
|
module T = (val Containers_testlib.make ~__FILE__ ())
|
|
include T;;
|
|
|
|
eq None (filter ((=) 0) (Some 1));;
|
|
eq (Some 0) (filter ((=) 0) (Some 0));;
|
|
eq None (filter (fun _ -> true) None);;
|
|
eq (try get_exn_or "ohno" (None:unit option); false with Invalid_argument s->s= "ohno");;
|
|
t @@ fun () -> 123 = get_exn_or "yes" (Some 123);;
|
|
t @@ fun () -> sequence_l [None; Some 1; Some 2] = None;;
|
|
t @@ fun () -> sequence_l [Some 1; Some 2; Some 3] = Some [1;2;3];;
|
|
t @@ fun () -> sequence_l [] = Some [];;
|
|
t @@ fun () -> choice_iter (Iter.of_list [None; Some 1; Some 2]) = Some 1;;
|
|
t @@ fun () -> choice_iter Iter.empty = None;;
|
|
t @@ fun () -> choice_iter (Iter.repeat None |> Iter.take 100) = None;;
|
|
t @@ fun () -> choice_seq (CCSeq.of_list [None; Some 1; Some 2]) = Some 1;;
|
|
t @@ fun () -> choice_seq CCSeq.empty = None;;
|
|
t @@ fun () -> choice_seq (CCSeq.repeat None |> CCSeq.take 100) = None;;
|
|
t @@ fun () -> flatten None = None;;
|
|
t @@ fun () -> flatten (Some None) = None;;
|
|
t @@ fun () -> flatten (Some (Some 1)) = Some 1;;
|
|
t @@ fun () -> return_if false 1 = None;;
|
|
t @@ fun () -> return_if true 1 = Some 1;;
|