diff --git a/src/hz.erl b/src/hz.erl index 664baf1..fda0311 100644 --- a/src/hz.erl +++ b/src/hz.erl @@ -2210,19 +2210,23 @@ eu(N, Size) -> %%% Simple coerce/3 tests +% Round trip coerce run for the eunit tests below. If these results don't match +% then the test should fail. try_coerce(Type, Sophia, Fate) -> - FateActual = coerce(Type, Sophia, to_fate), - SophiaActual = coerce(Type, Fate, from_fate), - case {ok, Fate} == FateActual of - true -> + % Run both first, to see if they fail to produce any result. + {ok, FateActual} = coerce(Type, Sophia, to_fate), + {ok, SophiaActual} = coerce(Type, Fate, from_fate), + % Now check that the results were what we expected. + case FateActual of + Fate -> ok; - false -> + _ -> erlang:error({to_fate_failed, Fate, FateActual}) end, - case {ok, Sophia} == SophiaActual of - true -> + case SophiaActual of + Sophia -> ok; - false -> + _ -> erlang:error({from_fate_failed, Sophia, SophiaActual}) end, ok.