26 lines
703 B
Text
26 lines
703 B
Text
go =>
|
|
Success = [123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345],
|
|
Fail = [1, 2, -1, -10, 2002, -2002, 0],
|
|
All = Success ++ Fail,
|
|
|
|
test(All, get_middle_f1),
|
|
test(All, get_middle_f2).
|
|
|
|
% Test and check for exceptions
|
|
test(List,F) =>
|
|
printf("\nTesting %w:\n", F),
|
|
foreach(N in List)
|
|
catch(Middle=apply(get_middle,N,F), E, printf("%d = exception %w\n",N,E)),
|
|
if E.var() then
|
|
println([n=N,middle=Middle])
|
|
end
|
|
end,
|
|
nl.
|
|
|
|
% Check with the get_middle funcion F
|
|
get_middle(N,F) = apply(F,Str) =>
|
|
Str = N.abs().to_string(),
|
|
Len = length(Str),
|
|
if Len mod 2 = 0 then throw $not_odd_length(N)
|
|
elseif Len < 3 then throw $number_too_small(N)
|
|
end.
|