+
+t_pipe(_Cfg) ->
+ Steps =
+ [ fun (0) -> hope_option:return(1); (_) -> none end
+ , fun (1) -> hope_option:return(2); (_) -> none end
+ , fun (2) -> hope_option:return(3); (_) -> none end
+ ],
+ {some, 3} = hope_option:pipe(Steps, 0),
+ none = hope_option:pipe(Steps, 1),
+ none = hope_option:pipe(Steps, 2),
+ none = hope_option:pipe(Steps, 3).
+
+t_undefined(_Cfg) ->
+ X = foo,
+ {some, X} = hope_option:of_undefined(X),
+ X = hope_option:to_undefined({some, X}),
+ none = hope_option:of_undefined(undefined),
+ undefined = hope_option:to_undefined(none).
+
+t_validate(_Cfg) ->
+ IsFoo = fun (X) -> X =:= foo end,
+ none = hope_option:validate(none, IsFoo),
+ none = hope_option:validate({some, bar}, IsFoo),
+ {some, foo} = hope_option:validate({some, foo}, IsFoo).