-module(gleam@result_test). -compile(no_auto_import). -export([is_ok_test/0, is_error_test/0, map_test/0, map_error_test/0, flatten_test/0, then_test/0, unwrap_test/0, lazy_unwrap_test/0, nil_error_test/0, or_test/0, lazy_or_test/0, all_test/0, replace_error_test/0, values_test/0]). -spec is_ok_test() -> nil. is_ok_test() -> _pipe = gleam@result:is_ok({ok, 1}), gleam@should:be_true(_pipe), _pipe@1 = gleam@result:is_ok({error, 1}), gleam@should:be_false(_pipe@1). -spec is_error_test() -> nil. is_error_test() -> _pipe = gleam@result:is_error({ok, 1}), gleam@should:be_false(_pipe), _pipe@1 = gleam@result:is_error({error, 1}), gleam@should:be_true(_pipe@1). -spec map_test() -> nil. map_test() -> _pipe = {ok, 1}, _pipe@1 = gleam@result:map(_pipe, fun(X) -> X + 1 end), gleam@should:equal(_pipe@1, {ok, 2}), _pipe@2 = {ok, 1}, _pipe@3 = gleam@result:map(_pipe@2, fun(_) -> <<"2"/utf8>> end), gleam@should:equal(_pipe@3, {ok, <<"2"/utf8>>}), _pipe@4 = {error, 1}, _pipe@5 = gleam@result:map(_pipe@4, fun(X@1) -> X@1 + 1 end), gleam@should:equal(_pipe@5, {error, 1}). -spec map_error_test() -> nil. map_error_test() -> _pipe = {ok, 1}, _pipe@1 = gleam@result:map_error(_pipe, fun(X) -> X + 1 end), gleam@should:equal(_pipe@1, {ok, 1}), _pipe@2 = {error, 1}, _pipe@3 = gleam@result:map_error( _pipe@2, fun(X@1) -> {<<"ok"/utf8>>, X@1 + 1} end ), gleam@should:equal(_pipe@3, {error, {<<"ok"/utf8>>, 2}}). -spec flatten_test() -> nil. flatten_test() -> _pipe = {ok, {ok, 1}}, _pipe@1 = gleam@result:flatten(_pipe), gleam@should:equal(_pipe@1, {ok, 1}), _pipe@2 = {ok, {error, 1}}, _pipe@3 = gleam@result:flatten(_pipe@2), gleam@should:equal(_pipe@3, {error, 1}), _pipe@4 = {error, 1}, _pipe@5 = gleam@result:flatten(_pipe@4), gleam@should:equal(_pipe@5, {error, 1}), _pipe@6 = {error, {error, 1}}, _pipe@7 = gleam@result:flatten(_pipe@6), gleam@should:equal(_pipe@7, {error, {error, 1}}). -spec then_test() -> nil. then_test() -> _pipe = {error, 1}, _pipe@1 = gleam@result:then(_pipe, fun(X) -> {ok, X + 1} end), gleam@should:equal(_pipe@1, {error, 1}), _pipe@2 = {ok, 1}, _pipe@3 = gleam@result:then(_pipe@2, fun(X@1) -> {ok, X@1 + 1} end), gleam@should:equal(_pipe@3, {ok, 2}), _pipe@4 = {ok, 1}, _pipe@5 = gleam@result:then( _pipe@4, fun(_) -> {ok, <<"type change"/utf8>>} end ), gleam@should:equal(_pipe@5, {ok, <<"type change"/utf8>>}), _pipe@6 = {ok, 1}, _pipe@7 = gleam@result:then(_pipe@6, fun(_) -> {error, 1} end), gleam@should:equal(_pipe@7, {error, 1}). -spec unwrap_test() -> nil. unwrap_test() -> _pipe = {ok, 1}, _pipe@1 = gleam@result:unwrap(_pipe, 50), gleam@should:equal(_pipe@1, 1), _pipe@2 = {error, <<"nope"/utf8>>}, _pipe@3 = gleam@result:unwrap(_pipe@2, 50), gleam@should:equal(_pipe@3, 50). -spec lazy_unwrap_test() -> nil. lazy_unwrap_test() -> _pipe = {ok, 1}, _pipe@1 = gleam@result:lazy_unwrap(_pipe, fun() -> 50 end), gleam@should:equal(_pipe@1, 1), _pipe@2 = {error, <<"nope"/utf8>>}, _pipe@3 = gleam@result:lazy_unwrap(_pipe@2, fun() -> 50 end), gleam@should:equal(_pipe@3, 50). -spec nil_error_test() -> nil. nil_error_test() -> _pipe = {error, <<"error_string"/utf8>>}, _pipe@1 = gleam@result:nil_error(_pipe), gleam@should:equal(_pipe@1, {error, nil}), _pipe@2 = {error, 123}, _pipe@3 = gleam@result:nil_error(_pipe@2), gleam@should:equal(_pipe@3, {error, nil}), _pipe@4 = {ok, 1}, _pipe@5 = gleam@result:nil_error(_pipe@4), gleam@should:equal(_pipe@5, {ok, 1}). -spec or_test() -> nil. or_test() -> _pipe = {ok, 1}, _pipe@1 = gleam@result:'or'(_pipe, {ok, 2}), gleam@should:equal(_pipe@1, {ok, 1}), _pipe@2 = {ok, 1}, _pipe@3 = gleam@result:'or'(_pipe@2, {error, <<"Error 2"/utf8>>}), gleam@should:equal(_pipe@3, {ok, 1}), _pipe@4 = {error, <<"Error 1"/utf8>>}, _pipe@5 = gleam@result:'or'(_pipe@4, {ok, 2}), gleam@should:equal(_pipe@5, {ok, 2}), _pipe@6 = {error, <<"Error 1"/utf8>>}, _pipe@7 = gleam@result:'or'(_pipe@6, {error, <<"Error 2"/utf8>>}), gleam@should:equal(_pipe@7, {error, <<"Error 2"/utf8>>}). -spec lazy_or_test() -> nil. lazy_or_test() -> _pipe = {ok, 1}, _pipe@1 = gleam@result:lazy_or(_pipe, fun() -> {ok, 2} end), gleam@should:equal(_pipe@1, {ok, 1}), _pipe@2 = {ok, 1}, _pipe@3 = gleam@result:lazy_or( _pipe@2, fun() -> {error, <<"Error 2"/utf8>>} end ), gleam@should:equal(_pipe@3, {ok, 1}), _pipe@4 = {error, <<"Error 1"/utf8>>}, _pipe@5 = gleam@result:lazy_or(_pipe@4, fun() -> {ok, 2} end), gleam@should:equal(_pipe@5, {ok, 2}), _pipe@6 = {error, <<"Error 1"/utf8>>}, _pipe@7 = gleam@result:lazy_or( _pipe@6, fun() -> {error, <<"Error 2"/utf8>>} end ), gleam@should:equal(_pipe@7, {error, <<"Error 2"/utf8>>}). -spec all_test() -> nil. all_test() -> _pipe = [{ok, 1}, {ok, 2}, {ok, 3}], _pipe@1 = gleam@result:all(_pipe), gleam@should:equal(_pipe@1, {ok, [1, 2, 3]}), _pipe@2 = [{ok, 1}, {error, <<"a"/utf8>>}, {error, <<"b"/utf8>>}, {ok, 3}], _pipe@3 = gleam@result:all(_pipe@2), gleam@should:equal(_pipe@3, {error, <<"a"/utf8>>}). -spec replace_error_test() -> nil. replace_error_test() -> _pipe = {error, nil}, _pipe@1 = gleam@result:replace_error(_pipe, <<"Invalid"/utf8>>), gleam@should:equal(_pipe@1, {error, <<"Invalid"/utf8>>}). -spec values_test() -> nil. values_test() -> _pipe = gleam@result:values([{ok, 1}, {error, <<""/utf8>>}, {ok, 3}]), gleam@should:equal(_pipe, [1, 3]).