Clean up try_coerce slightly

This commit is contained in:
SpiveeWorks 2025-02-27 23:12:33 +11:00
parent 4e71d3215b
commit 36a9b17b78

View File

@ -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.