+
+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_of_undefined(_Cfg) ->
+ Foo = foo,
+ Bar = bar,
+ Baz = baz,
+ {some, Foo} = hope_option:of_undefined(Foo),
+ {some, Bar} = hope_option:of_undefined(Bar),
+ {some, Baz} = hope_option:of_undefined(Baz),
+ none = hope_option:of_undefined(undefined).
+
+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).