This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
60
unikernel/duniverse/base/test/test_result.ml
Normal file
60
unikernel/duniverse/base/test/test_result.ml
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
open! Base
|
||||
open! Import
|
||||
|
||||
let%test_module "Result.Error" =
|
||||
(module struct
|
||||
open Result.Error.Let_syntax
|
||||
|
||||
module Int_or_string = struct
|
||||
type t = (int, string) Result.t [@@deriving equal, sexp_of]
|
||||
end
|
||||
|
||||
let%expect_test "return" =
|
||||
require_equal [%here] (module Int_or_string) (return "error") (Error "error");
|
||||
[%expect {| |}]
|
||||
;;
|
||||
|
||||
let%expect_test "bind Error" =
|
||||
let result =
|
||||
let%bind e1 = Error "e1" in
|
||||
let%bind e2 = Error "e2" in
|
||||
let%bind e3 = Error "e3" in
|
||||
return (String.concat ~sep:"," [ e1; e2; e3 ])
|
||||
in
|
||||
require_equal [%here] (module Int_or_string) result (Error "e1,e2,e3");
|
||||
[%expect {| |}]
|
||||
;;
|
||||
|
||||
let%expect_test "bind Ok" =
|
||||
let result =
|
||||
let%bind e1 = Error "e1" in
|
||||
let%bind e2 = Ok 1 in
|
||||
let%bind e3 = Error "e3" in
|
||||
return (String.concat ~sep:"," [ e1; e2; e3 ])
|
||||
in
|
||||
require_equal [%here] (module Int_or_string) result (Ok 1);
|
||||
[%expect {| |}]
|
||||
;;
|
||||
|
||||
let%expect_test "map Error" =
|
||||
let result =
|
||||
let%map e1 = Error "e1" in
|
||||
e1 ^ "!"
|
||||
in
|
||||
require_equal [%here] (module Int_or_string) result (Error "e1!");
|
||||
[%expect {| |}]
|
||||
;;
|
||||
|
||||
let%expect_test "map Ok" =
|
||||
let result =
|
||||
let%map e1 = Ok 1 in
|
||||
e1 ^ "!"
|
||||
in
|
||||
require_equal [%here] (module Int_or_string) result (Ok 1);
|
||||
[%expect {| |}]
|
||||
;;
|
||||
|
||||
(* The rest of the Monad functions are derived using the Monad.Make functor, which is
|
||||
well-tested. *)
|
||||
end)
|
||||
;;
|
||||
Loading…
Add table
Add a link
Reference in a new issue