File 9541-Remove-catch-in-sofs_SUITE.patch of Package erlang
From dcb3e38b1bccbbf708cdad7ea40206c9b68e8f0f Mon Sep 17 00:00:00 2001
From: Maria Scott <maria-12648430@hnc-agency.org>
Date: Wed, 25 Mar 2026 14:51:19 +0100
Subject: [PATCH] Remove catch in sofs_SUITE
---
lib/stdlib/test/sofs_SUITE.erl | 816 ++++++++++++++-------------------
1 file changed, 332 insertions(+), 484 deletions(-)
diff --git a/lib/stdlib/test/sofs_SUITE.erl b/lib/stdlib/test/sofs_SUITE.erl
index a0f0b0ef9f..bfad4ade2c 100644
--- a/lib/stdlib/test/sofs_SUITE.erl
+++ b/lib/stdlib/test/sofs_SUITE.erl
@@ -32,6 +32,7 @@
-include_lib("common_test/include/ct.hrl").
-define(format(S, A), ok).
-endif.
+-include_lib("stdlib/include/assert.hrl").
-export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1,
init_per_group/2,end_per_group/2]).
@@ -91,6 +92,36 @@
-compile({inline,[{eval,2}]}).
+-define(assertErrorStack(Term, Stack, Expr),
+ begin
+ ((fun () ->
+ try (Expr) of
+ X__V -> erlang:error({assertErrorStack,
+ [{module, ?MODULE},
+ {line, ?LINE},
+ {expression, (??Expr)},
+ {pattern,
+ "{ error , "++(??Term)
+ ++" , "++(??Stack)++" }"},
+ {unexpected_success, X__V}]})
+ catch
+ X__C:X__T:X__S ->
+ case {X__C, X__T, X__S} of
+ {error, Term, Stack} -> ok;
+ _ -> erlang:error({assertErrorStack,
+ [{module, ?MODULE},
+ {line, ?LINE},
+ {expression, (??Expr)},
+ {pattern,
+ "{ error , "++(??Term)
+ ++" , "++(??Stack)++" }"},
+ {unexpected_exception,
+ {X__C, X__T, X__S}}]})
+ end
+ end
+ end)())
+ end).
+
suite() ->
[{ct_hooks,[ts_install_cth]},
{timetrap,{minutes,2}}].
@@ -147,9 +178,9 @@ end_per_testcase(_Case, _Config) ->
from_term_1(Conf) when is_list(Conf) ->
%% would go wrong: projection(1,from_term([{2,b},{1,a,b}])),
- {'EXIT', {badarg, _}} = (catch from_term([], {atom,'_',atom})),
- {'EXIT', {badarg, _}} = (catch from_term([], [])),
- {'EXIT', {badarg, _}} = (catch from_term([], [atom,atom])),
+ ?assertError(badarg, from_term([], {atom,'_',atom})),
+ ?assertError(badarg, from_term([], [])),
+ ?assertError(badarg, from_term([], [atom,atom])),
[] = to_external(from_term([])),
eval(from_term([]), empty_set()),
@@ -170,8 +201,7 @@ from_term_1(Conf) when is_list(Conf) ->
to_external(from_term([{{a,b},[a,b],{{a},{b}}}])),
[{{a,{[a,b]},a}},{{z,{[y,z]},z}}] =
to_external(from_term([{{a,{[a,b,a]},a}},{{z,{[y,y,z]},z}}])),
- {'EXIT', {badarg, _}} =
- (catch from_term([{m1,[{m1,f1,1},{m1,f2,2}]},{m2,[]},{m3,[a]}])),
+ ?assertError(badarg, from_term([{m1,[{m1,f1,1},{m1,f2,2}]},{m2,[]},{m3,[a]}])),
MS1 = [{m1,[{m1,f1,1},{m1,f2,2}]},{m2,[]},{m3,[{m3,f3,3}]}],
eval(to_external(from_term(MS1)), MS1),
@@ -183,18 +213,16 @@ from_term_1(Conf) when is_list(Conf) ->
eval(type(from_term([[a],[{b,c}]],[[atomic]])),
[[atomic]]),
- {'EXIT', {badarg, _}} = (catch from_term([[],[],a])),
- {'EXIT', {badarg, _}} = (catch from_term([{[a,b],[c,{d}]}])),
- {'EXIT', {badarg, _}} = (catch from_term([[],[a],[{a}]])),
- {'EXIT', {badarg, _}} = (catch from_term([a,{a,b}])),
- {'EXIT', {badarg, _}} = (catch from_term([[a],[{b,c}]],[['_']])),
- {'EXIT', {badarg, _}} = (catch from_term([a | {a,b}])),
- {'EXIT', {badarg, _}} =
- (catch from_term([{{a},b,c},{d,e,f}],[{{atom},atom,atom}])),
- {'EXIT', {badarg, _}} =
- (catch from_term([{a,{b,c}} | tail], [{atom,{atom,atom}}])),
- {'EXIT', {badarg, _}} = (catch from_term({})),
- {'EXIT', {badarg, _}} = (catch from_term([{}])),
+ ?assertError(badarg, from_term([[],[],a])),
+ ?assertError(badarg, from_term([{[a,b],[c,{d}]}])),
+ ?assertError(badarg, from_term([[],[a],[{a}]])),
+ ?assertError(badarg, from_term([a,{a,b}])),
+ ?assertError(badarg, from_term([[a],[{b,c}]],[['_']])),
+ ?assertError(badarg, from_term([a | {a,b}])),
+ ?assertError(badarg, from_term([{{a},b,c},{d,e,f}],[{{atom},atom,atom}])),
+ ?assertError(badarg, from_term([{a,{b,c}} | tail], [{atom,{atom,atom}}])),
+ ?assertError(badarg, from_term({})),
+ ?assertError(badarg, from_term([{}])),
[{foo,bar},[b,a]] =
to_external(from_term([[b,a],{foo,bar},[b,a]], [atom])),
@@ -206,7 +234,7 @@ from_term_1(Conf) when is_list(Conf) ->
{atom, atom} = type(from_term({a,b}, {atom, atom})),
atom = type(from_term(a, atom)),
- {'EXIT', {badarg, _}} = (catch from_term({a,b},{atom})),
+ ?assertError(badarg, from_term({a,b},{atom})),
[{{a},b,c},{{d},e,f}] =
to_external(from_term([{{a},b,c},{{a},b,c},{{d},e,f}],
[{{atom},atom,atom}])),
@@ -232,8 +260,8 @@ from_term_1(Conf) when is_list(Conf) ->
set_1(Conf) when is_list(Conf) ->
%% set/1
- {'EXIT', {badarg, _}} = (catch set(a)),
- {'EXIT', {badarg, _}} = (catch set({a})),
+ ?assertError(badarg, set(a)),
+ ?assertError(badarg, set({a})),
eval(set([]), from_term([],[atom])),
eval(set([a,b,c]), from_term([a,b,c])),
eval(set([a,b,a,a,b]), from_term([a,b])),
@@ -245,15 +273,15 @@ set_1(Conf) when is_list(Conf) ->
eval(set([h,e,c,k,d]), from_term([c,d,e,h,k])),
%% set/2
- {'EXIT', {badarg, _}} = (catch set(a, [a])),
- {'EXIT', {badarg, _}} = (catch set({a}, [a])),
- {'EXIT', {badarg, _}} = (catch set([a], {a})),
- {'EXIT', {badarg, _}} = (catch set([a], a)),
- {'EXIT', {badarg, _}} = (catch set([a], [a,b])),
- {'EXIT', {badarg, _}} = (catch set([a | b],[foo])),
- {'EXIT', {badarg, _}} = (catch set([a | b],['_'])),
- {'EXIT', {badarg, _}} = (catch set([a | b],[[atom]])),
- {'EXIT', {badarg, _}} = (catch set([{}],[{}])),
+ ?assertError(badarg, set(a, [a])),
+ ?assertError(badarg, set({a}, [a])),
+ ?assertError(badarg, set([a], {a})),
+ ?assertError(badarg, set([a], a)),
+ ?assertError(badarg, set([a], [a,b])),
+ ?assertError(badarg, set([a | b],[foo])),
+ ?assertError(badarg, set([a | b],['_'])),
+ ?assertError(badarg, set([a | b],[[atom]])),
+ ?assertError(badarg, set([{}],[{}])),
eval(set([a],['_']), from_term([a],['_'])),
eval(set([], ['_']), empty_set()),
eval(set([a,b,a,b],[foo]), from_term([a,b],[foo])),
@@ -265,33 +293,30 @@ from_sets_1(Conf) when is_list(Conf) ->
%% unordered
eval(from_sets([]), E),
- {'EXIT', {type_mismatch, _}} =
- (catch from_sets([from_term([{a,b}]),
- E,
- from_term([{a,b,c}])])),
+ ?assertError(type_mismatch, from_sets([from_term([{a,b}]),
+ E,
+ from_term([{a,b,c}])])),
eval(from_sets([from_term([{a,b}]), E]),
from_term([[],[{a,b}]])),
eval(from_sets([from_term({a,b},{atom,atom}),
from_term({b,c},{atom,atom})]),
relation([{a,b}, {b,c}])),
- {'EXIT', {type_mismatch, _}} =
- (catch from_sets([from_term({a,b},{atom,atom}),
- from_term({a,b,c},{atom,atom,atom})])),
- {'EXIT', {badarg, _}} = (catch from_sets(foo)),
+ ?assertError(type_mismatch, from_sets([from_term({a,b},{atom,atom}),
+ from_term({a,b,c},{atom,atom,atom})])),
+ ?assertError(badarg, from_sets(foo)),
eval(from_sets([E]), from_term([[]])),
eval(from_sets([E,E]), from_term([[]])),
eval(from_sets([E,set([a])]), from_term([[],[a]])),
- {'EXIT', {badarg, _}} = (catch from_sets([E,{a}])),
- {'EXIT', {type_mismatch, _}} =
- (catch from_sets([E,from_term({a}),E])),
- {'EXIT', {type_mismatch, _}} = (catch from_sets([from_term({a}),E])),
+ ?assertError(badarg, from_sets([E,{a}])),
+ ?assertError(type_mismatch, from_sets([E,from_term({a}),E])),
+ ?assertError(type_mismatch, from_sets([from_term({a}),E])),
%% ordered
O = {from_term(a,atom), from_term({b}, {atom}), set([c,d])},
eval(from_sets(O), from_term({a,{b},[c,d]}, {atom,{atom},[atom]})),
- {'EXIT', {badarg, _}} = (catch from_sets([a,b])),
- {'EXIT', {badarg, _}} = (catch from_sets({a,b})),
+ ?assertError(badarg, from_sets([a,b])),
+ ?assertError(badarg, from_sets({a,b})),
eval(from_sets({from_term({a}),E}), from_term({{a},[]})),
ok.
@@ -299,11 +324,11 @@ relation_1(Conf) when is_list(Conf) ->
%% relation/1
eval(relation([]), from_term([], [{atom,atom}])),
eval(from_term([{a}]), relation([{a}])),
- {'EXIT', {badarg, _}} = (catch relation(a)),
- {'EXIT', {badarg, _}} = (catch relation([{a} | a])),
- {'EXIT', {badarg, _}} = (catch relation([{}])),
- {'EXIT', {badarg, _}} = (catch relation([],0)),
- {'EXIT', {badarg, _}} = (catch relation([{a}],a)),
+ ?assertError(badarg, relation(a)),
+ ?assertError(badarg, relation([{a} | a])),
+ ?assertError(badarg, relation([{}])),
+ ?assertError(badarg, relation([],0)),
+ ?assertError(badarg, relation([{a}],a)),
%% relation/2
eval(relation([{a},{b}], 1), from_term([{a},{b}])),
@@ -311,14 +336,14 @@ relation_1(Conf) when is_list(Conf) ->
from_term([{1,a},{2,b}], [{x,y}])),
eval(relation([{[1,2],a},{[2,1],b},{[2,1],a}], [{[x],y}]),
from_term([{[1,2],a},{[1,2],b}], [{[x],y}])),
- {'EXIT', {badarg, _}} = (catch relation([{1,a},{2,b}], [{[x],y}])),
- {'EXIT', {badarg, _}} = (catch relation([{1,a},{1,a,b}], [{x,y}])),
- {'EXIT', {badarg, _}} = (catch relation([{a}], 2)),
- {'EXIT', {badarg, _}} = (catch relation([{a},{b},{c,d}], 1)),
+ ?assertError(badarg, relation([{1,a},{2,b}], [{[x],y}])),
+ ?assertError(badarg, relation([{1,a},{1,a,b}], [{x,y}])),
+ ?assertError(badarg, relation([{a}], 2)),
+ ?assertError(badarg, relation([{a},{b},{c,d}], 1)),
eval(relation([{{a},[{foo,bar}]}], ['_']),
from_term([{{a},[{foo,bar}]}], ['_'])),
eval(relation([], ['_']), from_term([], ['_'])),
- {'EXIT', {badarg, _}} = (catch relation([[a]],['_'])),
+ ?assertError(badarg, relation([[a]],['_'])),
eval(relation([{[a,b,a]}], [{[atom]}]), from_term([{[a,b,a]}])),
eval(relation([{[a,b,a],[[d,e,d]]}], [{[atom],[[atom]]}]),
from_term([{[a,b,a],[[d,e,d]]}])),
@@ -330,19 +355,16 @@ a_function_1(Conf) when is_list(Conf) ->
%% a_function/1
eval(a_function([]), from_term([], [{atom,atom}])),
eval(a_function([{a,b},{a,b},{b,c}]), from_term([{a,b},{b,c}])),
- {'EXIT', {badarg, _}} = (catch a_function([{a}])),
- {'EXIT', {badarg, _}} = (catch a_function([{a},{b},{c,d}])),
- {'EXIT', {badarg, _}} = (catch a_function(a)),
- {'EXIT', {badarg, _}} = (catch a_function([{a,b} | a])),
- {'EXIT', {bad_function, _}} =
- (catch a_function([{a,b},{b,c},{a,c}])),
+ ?assertError(badarg, a_function([{a}])),
+ ?assertError(badarg, a_function([{a},{b},{c,d}])),
+ ?assertError(badarg, a_function(a)),
+ ?assertError(badarg, a_function([{a,b} | a])),
+ ?assertError(bad_function, a_function([{a,b},{b,c},{a,c}])),
F = 0.0, I = round(F),
if
F == I -> % term ordering
- {'EXIT', {bad_function, _}} =
- (catch a_function([{I,a},{F,b}])),
- {'EXIT', {bad_function, _}} =
- (catch a_function([{[I],a},{[F],b}],[{[a],b}]));
+ ?assertError(bad_function, a_function([{I,a},{F,b}])),
+ ?assertError(bad_function, a_function([{[I],a},{[F],b}],[{[a],b}]));
true ->
2 = no_elements(a_function([{I,a},{F,b}])),
2 = no_elements(a_function([{[I],a},{[F],b}],[{[a],b}]))
@@ -353,18 +375,17 @@ a_function_1(Conf) when is_list(Conf) ->
eval(a_function([], FT), from_term([], FT)),
eval(a_function([{a,b},{b,c},{b,c}], FT),
from_term([{a,b},{b,c}], FT)),
- {'EXIT', {badarg, _}} = (catch a_function([{a,b}], [{a}])),
- {'EXIT', {badarg, _}} = (catch a_function([{a,b}], [{a,[b,c]}])),
- {'EXIT', {badarg, _}} = (catch a_function([{a}], FT)),
- {'EXIT', {badarg, _}} = (catch a_function([{a},{b},{c,d}], FT)),
- {'EXIT', {badarg, _}} = (catch a_function(a, FT)),
- {'EXIT', {badarg, _}} = (catch a_function([{a,b} | a], FT)),
+ ?assertError(badarg, a_function([{a,b}], [{a}])),
+ ?assertError(badarg, a_function([{a,b}], [{a,[b,c]}])),
+ ?assertError(badarg, a_function([{a}], FT)),
+ ?assertError(badarg, a_function([{a},{b},{c,d}], FT)),
+ ?assertError(badarg, a_function(a, FT)),
+ ?assertError(badarg, a_function([{a,b} | a], FT)),
eval(a_function([{{a},[{foo,bar}]}], ['_']),
from_term([{{a},[{foo,bar}]}], ['_'])),
eval(a_function([], ['_']), from_term([], ['_'])),
- {'EXIT', {badarg, _}} = (catch a_function([[a]],['_'])),
- {'EXIT', {bad_function, _}} =
- (catch a_function([{a,b},{b,c},{a,c}], FT)),
+ ?assertError(badarg, a_function([[a]],['_'])),
+ ?assertError(bad_function, a_function([{a,b},{b,c},{a,c}], FT)),
eval(a_function([{a,[a]},{a,[a,a]}], [{atom,[atom]}]),
from_term([{a,[a]}])),
eval(a_function([{[b,a],c},{[a,b],c}], [{[atom],atom}]),
@@ -374,24 +395,20 @@ a_function_1(Conf) when is_list(Conf) ->
family_1(Conf) when is_list(Conf) ->
%% family/1
eval(family([]), from_term([],[{atom,[atom]}])),
- {'EXIT', {badarg, _}} = (catch family(a)),
- {'EXIT', {badarg, _}} = (catch family([a])),
- {'EXIT', {badarg, _}} = (catch family([{a,b}])),
- {'EXIT', {badarg, _}} = (catch family([{a,[]} | a])),
- {'EXIT', {badarg, _}} = (catch family([{a,[a|b]}])),
- {'EXIT', {bad_function, _}} =
- (catch family([{a,[a]},{a,[]}])),
- {'EXIT', {bad_function, _}} =
- (catch family([{a,[]},{b,[]},{a,[a]}])),
+ ?assertError(badarg, family(a)),
+ ?assertError(badarg, family([a])),
+ ?assertError(badarg, family([{a,b}])),
+ ?assertError(badarg, family([{a,[]} | a])),
+ ?assertError(badarg, family([{a,[a|b]}])),
+ ?assertError(bad_function, family([{a,[a]},{a,[]}])),
+ ?assertError(bad_function, family([{a,[]},{b,[]},{a,[a]}])),
F = 0.0, I = round(F),
if
F == I -> % term ordering
- {'EXIT', {bad_function, _}} =
- (catch family([{I,[a]},{F,[b]}])),
+ ?assertError(bad_function, family([{I,[a]},{F,[b]}])),
true = (1 =:= no_elements(family([{a,[I]},{a,[F]}])));
- true ->
- {'EXIT', {bad_function, _}} =
- (catch family([{a,[I]},{a,[F]}]))
+ true ->
+ ?assertError(bad_function, family([{a,[I]},{a,[F]}]))
end,
eval(family([{a,[]},{b,[b]},{a,[]}]), from_term([{a,[]},{b,[b]}])),
eval(to_external(family([{b,[{hej,san},tjo]},{a,[]}])),
@@ -401,15 +418,13 @@ family_1(Conf) when is_list(Conf) ->
%% family/2
FT = [{a,[a]}],
eval(family([], FT), from_term([],FT)),
- {'EXIT', {badarg, _}} = (catch family(a,FT)),
- {'EXIT', {badarg, _}} = (catch family([a],FT)),
- {'EXIT', {badarg, _}} = (catch family([{a,b}],FT)),
- {'EXIT', {badarg, _}} = (catch family([{a,[]} | a],FT)),
- {'EXIT', {badarg, _}} = (catch family([{a,[a|b]}], FT)),
- {'EXIT', {bad_function, _}} =
- (catch family([{a,[a]},{a,[]}], FT)),
- {'EXIT', {bad_function, _}} =
- (catch family([{a,[]},{b,[]},{a,[a]}], FT)),
+ ?assertError(badarg, family(a,FT)),
+ ?assertError(badarg, family([a],FT)),
+ ?assertError(badarg, family([{a,b}],FT)),
+ ?assertError(badarg, family([{a,[]} | a],FT)),
+ ?assertError(badarg, family([{a,[a|b]}], FT)),
+ ?assertError(bad_function, family([{a,[a]},{a,[]}], FT)),
+ ?assertError(bad_function, family([{a,[]},{b,[]},{a,[a]}], FT)),
eval(family([{a,[]},{b,[b,b]},{a,[]}], FT),
from_term([{a,[]},{b,[b]}], FT)),
eval(to_external(family([{b,[{hej,san},tjo]},{a,[]}], FT)),
@@ -418,10 +433,9 @@ family_1(Conf) when is_list(Conf) ->
eval(family([{{a},[{foo,bar}]}], ['_']),
from_term([{{a},[{foo,bar}]}], ['_'])),
eval(family([], ['_']), from_term([], ['_'])),
- {'EXIT', {badarg, _}} = (catch family([[a]],['_'])),
- {'EXIT', {badarg, _}} = (catch family([{a,b}],['_'])),
- {'EXIT', {badarg, _}} =
- (catch family([{a,[foo]}], [{atom,atom}])),
+ ?assertError(badarg, family([[a]],['_'])),
+ ?assertError(badarg, family([{a,b}],['_'])),
+ ?assertError(badarg, family([{a,[foo]}], [{atom,atom}])),
eval(family([{{a},[{foo,bar}]}], [{{dt},[{r1,t2}]}]),
from_term([{{a},[{foo,bar}]}], [{{dt},[{r1,t2}]}])),
eval(family([{a,[a]},{a,[a,a]}],[{atom,[atom]}]),
@@ -470,18 +484,13 @@ projection(Conf) when is_list(Conf) ->
relation([{1,1,1,2}, {1,1,3,1}])),
relation([{1,1,1,1}, {1,1,1,2}])),
- {'EXIT', {badarg, _}} = (catch projection(1, set([]))),
- {'EXIT', {function_clause, _}} =
- (catch projection({external, fun({A}) -> A end}, S1)),
- {'EXIT', {badarg, _}} =
- (catch projection({external, fun({A,_}) -> {A,0} end},
- from_term([{1,a}]))),
+ ?assertError(badarg, projection(1, set([]))),
+ ?assertError(function_clause, projection({external, fun({A}) -> A end}, S1)),
+ ?assertError(badarg, projection({external, fun({A,_}) -> {A,0} end}, from_term([{1,a}]))),
%% {} is not an ordered set
- {'EXIT', {badarg, _}} =
- (catch projection({external, fun(_) -> {} end}, ER)),
- {'EXIT', {badarg, _}} =
- (catch projection({external, fun(_) -> {{}} end}, ER)),
+ ?assertError(badarg, projection({external, fun(_) -> {} end}, ER)),
+ ?assertError(badarg, projection({external, fun(_) -> {{}} end}, ER)),
eval(projection({external, fun({T,_}) -> T end},
relation([{{},a},{{},b}])),
set([{}])),
@@ -521,11 +530,8 @@ projection(Conf) when is_list(Conf) ->
end,
%% set of sets
- {'EXIT', {badarg, _}} =
- (catch projection({external, fun(X) -> X end},
- from_term([], [[atom]]))),
- {'EXIT', {badarg, _}} =
- (catch projection({external, fun(X) -> X end}, from_term([[a]]))),
+ ?assertError(badarg, projection({external, fun(X) -> X end}, from_term([], [[atom]]))),
+ ?assertError(badarg, projection({external, fun(X) -> X end}, from_term([[a]]))),
eval(projection(fun sofs:union/1,
from_term([[[1,2],[2,3]], [[a,b],[b,c]]])),
from_term([[1,2,3], [a,b,c]])),
@@ -545,8 +551,7 @@ projection(Conf) when is_list(Conf) ->
eval(projection(Fun10, from_term([[1]])), from_term([{1,1}])),
eval(projection(fun(_) -> from_term({a}) end, from_term([[a]])),
from_term([{a}])),
- {'EXIT', {badarg, _}} =
- (catch projection(fun(_) -> {a} end, from_term([[a]]))),
+ ?assertError(badarg, projection(fun(_) -> {a} end, from_term([[a]]))),
ok.
@@ -601,20 +606,14 @@ substitution(Conf) when is_list(Conf) ->
eval(substitution(fun(_) -> E end, from_term([[a],[b]])),
from_term([{[a],[]},{[b],[]}])),
- {'EXIT', {badarg, _}} = (catch substitution(1, set([]))),
+ ?assertError(badarg, substitution(1, set([]))),
eval(substitution(1, ER), from_term([], [{{atom,atom},atom}])),
- {'EXIT', {function_clause, _}} =
- (catch substitution({external, fun({A,_}) -> A end}, set([]))),
- {'EXIT', {badarg, _}} =
- (catch substitution({external, fun({A,_}) -> {A,0} end},
- from_term([{1,a}]))),
+ ?assertError(function_clause, substitution({external, fun({A,_}) -> A end}, set([]))),
+ ?assertError(badarg, substitution({external, fun({A,_}) -> {A,0} end}, from_term([{1,a}]))),
%% set of sets
- {'EXIT', {badarg, _}} =
- (catch substitution({external, fun(X) -> X end},
- from_term([], [[atom]]))),
- {'EXIT', {badarg, _}} =
- (catch substitution({external, fun(X) -> X end}, from_term([[a]]))),
+ ?assertError(badarg, substitution({external, fun(X) -> X end}, from_term([], [[atom]]))),
+ ?assertError(badarg, substitution({external, fun(X) -> X end}, from_term([[a]]))),
eval(substitution(fun(X) -> X end, from_term([], [[atom]])), E),
eval(substitution(fun sofs:union/1,
from_term([[[1,2],[2,3]], [[a,b],[b,c]]])),
@@ -634,15 +633,12 @@ substitution(Conf) when is_list(Conf) ->
end,
eval(substitution(Fun10, from_term([[1]])),
from_term([{[1],{1,1}}])),
- {'EXIT', {type_mismatch, _}} =
- (catch substitution(Fun10, from_term([[1],[2]]))),
- {'EXIT', {type_mismatch, _}} =
- (catch substitution(Fun10, from_term([[1],[0]]))),
+ ?assertError(type_mismatch, substitution(Fun10, from_term([[1],[2]]))),
+ ?assertError(type_mismatch, substitution(Fun10, from_term([[1],[0]]))),
eval(substitution(fun(_) -> from_term({a}) end, from_term([[a]])),
from_term([{[a],{a}}])),
- {'EXIT', {badarg, _}} =
- (catch substitution(fun(_) -> {a} end, from_term([[a]]))),
+ ?assertError(badarg, substitution(fun(_) -> {a} end, from_term([[a]]))),
ok.
@@ -697,34 +693,22 @@ restriction(Conf) when is_list(Conf) ->
eval(restriction(2, relation([{b,d}]), E), ER),
eval(restriction(XId, E, set([a])), E),
eval(restriction(1, S1, E), ER),
- {'EXIT', {badarg, _}} =
- (catch restriction(3, relation([{a,b}]), E)),
- {'EXIT', {badarg, _}} =
- (catch restriction(3, relation([{a,b}]), relation([{b,d}]))),
- {'EXIT', {badarg, _}} =
- (catch restriction(3, relation([{a,b}]), set([{b,d}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch restriction(2, relation([{a,b}]), relation([{b,d}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch restriction({external, fun({A,_B}) -> A end},
- relation([{a,b}]), relation([{b,d}]))),
- {'EXIT', {badarg, _}} =
- (catch restriction({external, fun({A,_}) -> {A,0} end},
- from_term([{1,a}]),
- from_term([{1,0}]))),
+ ?assertError(badarg, restriction(3, relation([{a,b}]), E)),
+ ?assertError(badarg, restriction(3, relation([{a,b}]), relation([{b,d}]))),
+ ?assertError(badarg, restriction(3, relation([{a,b}]), set([{b,d}]))),
+ ?assertError(type_mismatch, restriction(2, relation([{a,b}]), relation([{b,d}]))),
+ ?assertError(type_mismatch, restriction({external, fun({A,_B}) -> A end}, relation([{a,b}]), relation([{b,d}]))),
+ ?assertError(badarg, restriction({external, fun({A,_}) -> {A,0} end}, from_term([{1,a}]), from_term([{1,0}]))),
eval(restriction(2, relation([{a,d},{b,e},{c,b},{d,c}]), set([b,d])),
relation([{a,d},{c,b}])),
- {'EXIT', {function_clause, _}} =
- (catch restriction({external, fun({A,_B}) -> A end}, set([]), E)),
+ ?assertError(function_clause, restriction({external, fun({A,_B}) -> A end}, set([]), E)),
Fun3 = fun(S) -> from_term({to_external(S),0}, {type(S),atom}) end,
eval(restriction(Fun3, set([1,2]), from_term([{1,0}])),
from_term([1])),
%% set of sets
- {'EXIT', {badarg, _}} =
- (catch restriction({external, fun(X) -> X end},
- from_term([], [[atom]]), set([a]))),
+ ?assertError(badarg, restriction({external, fun(X) -> X end}, from_term([], [[atom]]), set([a]))),
S2 = from_term([], [[atom]]),
eval(restriction(Id, S2, E), E),
S3 = from_term([[a],[b]], [[atom]]),
@@ -740,10 +724,7 @@ restriction(Conf) when is_list(Conf) ->
from_term([], [[atom]]),
from_term([], [[a]])),
from_term([], [[atom]])),
- {'EXIT', {type_mismatch, _}} =
- (catch restriction(fun(_) -> from_term([a]) end,
- from_term([[1,2],[3,4]]),
- from_term([], [atom]))),
+ ?assertError(type_mismatch, restriction(fun(_) -> from_term([a]) end, from_term([[1,2],[3,4]]), from_term([], [atom]))),
Fun10 = fun(S) ->
%% Cheating a lot...
case to_external(S) of
@@ -751,16 +732,9 @@ restriction(Conf) when is_list(Conf) ->
_ -> S
end
end,
- {'EXIT', {type_mismatch, _}} =
- (catch restriction(Fun10, from_term([[1]]), from_term([], [[atom]]))),
- {'EXIT', {type_mismatch, _}} =
- (catch restriction(fun(_) -> from_term({a}) end,
- from_term([[a]]),
- from_term([], [atom]))),
- {'EXIT', {badarg, _}} =
- (catch restriction(fun(_) -> {a} end,
- from_term([[a]]),
- from_term([], [atom]))),
+ ?assertError(type_mismatch, restriction(Fun10, from_term([[1]]), from_term([], [[atom]]))),
+ ?assertError(type_mismatch, restriction(fun(_) -> from_term({a}) end, from_term([[a]]), from_term([], [atom]))),
+ ?assertError(badarg, restriction(fun(_) -> {a} end, from_term([[a]]), from_term([], [atom]))),
ok.
drestriction(Conf) when is_list(Conf) ->
@@ -812,34 +786,22 @@ drestriction(Conf) when is_list(Conf) ->
eval(drestriction(2, relation([{b,d}]), E), relation([{b,d}])),
eval(drestriction(XId, E, set([a])), E),
eval(drestriction(1, S1, E), S1),
- {'EXIT', {badarg, _}} =
- (catch drestriction(3, relation([{a,b}]), E)),
- {'EXIT', {badarg, _}} =
- (catch drestriction(3, relation([{a,b}]), relation([{b,d}]))),
- {'EXIT', {badarg, _}} =
- (catch drestriction(3, relation([{a,b}]), set([{b,d}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch drestriction(2, relation([{a,b}]), relation([{b,d}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch drestriction({external, fun({A,_B}) -> A end},
- relation([{a,b}]), relation([{b,d}]))),
- {'EXIT', {badarg, _}} =
- (catch drestriction({external, fun({A,_}) -> {A,0} end},
- from_term([{1,a}]),
- from_term([{1,0}]))),
+ ?assertError(badarg, drestriction(3, relation([{a,b}]), E)),
+ ?assertError(badarg, drestriction(3, relation([{a,b}]), relation([{b,d}]))),
+ ?assertError(badarg, drestriction(3, relation([{a,b}]), set([{b,d}]))),
+ ?assertError(type_mismatch, drestriction(2, relation([{a,b}]), relation([{b,d}]))),
+ ?assertError(type_mismatch, drestriction({external, fun({A,_B}) -> A end}, relation([{a,b}]), relation([{b,d}]))),
+ ?assertError(badarg, drestriction({external, fun({A,_}) -> {A,0} end}, from_term([{1,a}]), from_term([{1,0}]))),
eval(drestriction(2, relation([{a,d},{b,e},{c,b},{d,c}]), set([b,d])),
relation([{b,e},{d,c}])),
- {'EXIT', {function_clause, _}} =
- (catch drestriction({external, fun({A,_B}) -> A end}, set([]), E)),
+ ?assertError(function_clause, drestriction({external, fun({A,_B}) -> A end}, set([]), E)),
Fun3 = fun(S) -> from_term({to_external(S),0}, {type(S),atom}) end,
eval(drestriction(Fun3, set([1,2]), from_term([{1,0}])),
from_term([2])),
%% set of sets
- {'EXIT', {badarg, _}} =
- (catch drestriction({external, fun(X) -> X end},
- from_term([], [[atom]]), set([a]))),
+ ?assertError(badarg, drestriction({external, fun(X) -> X end}, from_term([], [[atom]]), set([a]))),
S2 = from_term([], [[atom]]),
eval(drestriction(Id, S2, E), S2),
S3 = from_term([[a],[b]], [[atom]]),
@@ -855,10 +817,7 @@ drestriction(Conf) when is_list(Conf) ->
from_term([], [[atom]]),
from_term([], [[a]])),
from_term([], [[atom]])),
- {'EXIT', {type_mismatch, _}} =
- (catch drestriction(fun(_) -> from_term([a]) end,
- from_term([[1,2],[3,4]]),
- from_term([], [atom]))),
+ ?assertError(type_mismatch, drestriction(fun(_) -> from_term([a]) end, from_term([[1,2],[3,4]]), from_term([], [atom]))),
Fun10 = fun(S) ->
%% Cheating a lot...
case to_external(S) of
@@ -866,16 +825,9 @@ drestriction(Conf) when is_list(Conf) ->
_ -> S
end
end,
- {'EXIT', {type_mismatch, _}} =
- (catch drestriction(Fun10, from_term([[1]]), from_term([], [[atom]]))),
- {'EXIT', {type_mismatch, _}} =
- (catch drestriction(fun(_) -> from_term({a}) end,
- from_term([[a]]),
- from_term([], [atom]))),
- {'EXIT', {badarg, _}} =
- (catch drestriction(fun(_) -> {a} end,
- from_term([[a]]),
- from_term([], [atom]))),
+ ?assertError(type_mismatch, drestriction(Fun10, from_term([[1]]), from_term([], [[atom]]))),
+ ?assertError(type_mismatch, drestriction(fun(_) -> from_term({a}) end, from_term([[a]]), from_term([], [atom]))),
+ ?assertError(badarg, drestriction(fun(_) -> {a} end, from_term([[a]]), from_term([], [atom]))),
ok.
strict_relation_1(Conf) when is_list(Conf) ->
@@ -885,8 +837,7 @@ strict_relation_1(Conf) when is_list(Conf) ->
eval(strict_relation(ER), ER),
eval(strict_relation(relation([{1,a},{a,a},{2,b}])),
relation([{1,a},{2,b}])),
- {'EXIT', {badarg, _}} =
- (catch strict_relation(relation([{1,2,3}]))),
+ ?assertError(badarg, strict_relation(relation([{1,2,3}]))),
F = 0.0, I = round(F),
FR = relation([{F,I}]),
if
@@ -903,11 +854,11 @@ extension(Conf) when is_list(Conf) ->
EF = family([]),
C1 = from_term(3),
C2 = from_term([3]),
- {'EXIT', {function_clause, _}} = (catch extension(foo, E, C1)),
- {'EXIT', {function_clause, _}} = (catch extension(ER, foo, C1)),
- {'EXIT', {{case_clause, _},_}} = (catch extension(ER, E, foo)),
- {'EXIT', {type_mismatch, _}} = (catch extension(ER, E, E)),
- {'EXIT', {badarg, _}} = (catch extension(C2, E, E)),
+ ?assertError(function_clause, extension(foo, E, C1)),
+ ?assertError(function_clause, extension(ER, foo, C1)),
+ ?assertError({case_clause, _}, extension(ER, E, foo)),
+ ?assertError(type_mismatch, extension(ER, E, E)),
+ ?assertError(badarg, extension(C2, E, E)),
eval(E, extension(E, E, E)),
eval(EF, extension(EF, E, E)),
eval(family([{3,[]}]), extension(EF, set([3]), E)),
@@ -949,11 +900,9 @@ weak_relation_1(Conf) when is_list(Conf) ->
relation([{1,1},{a,1},{a,a},{a,b},{b,b}])),
eval(weak_relation(relation([{a,1},{a,b},{7,w}])),
relation([{1,1},{7,7},{7,w},{a,1},{a,a},{a,b},{b,b},{w,w}])),
- {'EXIT', {badarg, _}} =
- (catch weak_relation(from_term([{{a},a}]))),
- {'EXIT', {badarg, _}} =
- (catch weak_relation(from_term([{a,a}],[{d,r}]))),
- {'EXIT', {badarg, _}} = (catch weak_relation(relation([{1,2,3}]))),
+ ?assertError(badarg, weak_relation(from_term([{{a},a}]))),
+ ?assertError(badarg, weak_relation(from_term([{a,a}],[{d,r}]))),
+ ?assertError(badarg, weak_relation(relation([{1,2,3}]))),
F = 0.0, I = round(F),
if
@@ -970,8 +919,8 @@ weak_relation_1(Conf) when is_list(Conf) ->
ok.
to_sets_1(Conf) when is_list(Conf) ->
- {'EXIT', {badarg, _}} = (catch to_sets(from_term(a))),
- {'EXIT', {function_clause, _}} = (catch to_sets(a)),
+ ?assertError(badarg, to_sets(from_term(a))),
+ ?assertError(function_clause, to_sets(a)),
%% unordered
[] = to_sets(empty_set()),
eval(to_sets(from_term([a])), [from_term(a)]),
@@ -1003,27 +952,20 @@ specification(Conf) when is_list(Conf) ->
eval(specification({external,Fun2x}, S2), from_term([[1],[3]])),
Fun3 = fun(_) -> neither_true_nor_false end,
- {'EXIT', {badarg, _}} =
- (catch specification(Fun3, set([a]))),
- {'EXIT', {badarg, _}} =
- (catch specification({external, Fun3}, set([a]))),
- {'EXIT', {badarg, _}} =
- (catch specification(Fun3, from_term([[a]]))),
- {'EXIT', {function_clause, _}} =
- (catch specification(Fun, a)),
+ ?assertError(badarg, specification(Fun3, set([a]))),
+ ?assertError(badarg, specification({external, Fun3}, set([a]))),
+ ?assertError(badarg, specification(Fun3, from_term([[a]]))),
+ ?assertError(function_clause, specification(Fun, a)),
ok.
union_1(Conf) when is_list(Conf) ->
E = empty_set(),
ER = relation([], 2),
- {'EXIT', {badarg, _}} = (catch union(ER)),
- {'EXIT', {type_mismatch, _}} =
- (catch union(relation([{a,b}]), relation([{a,b,c}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch union(from_term([{a,b}]), from_term([{c,[x]}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch union(from_term([{a,b}]), from_term([{c,d}], [{d,r}]))),
- {'EXIT', {badarg, _}} = (catch union(set([a,b,c]))),
+ ?assertError(badarg, union(ER)),
+ ?assertError(type_mismatch, union(relation([{a,b}]), relation([{a,b,c}]))),
+ ?assertError(type_mismatch, union(from_term([{a,b}]), from_term([{c,[x]}]))),
+ ?assertError(type_mismatch, union(from_term([{a,b}]), from_term([{c,d}], [{d,r}]))),
+ ?assertError(badarg, union(set([a,b,c]))),
eval(union(E), E),
eval(union(from_term([[]],[[atom]])), set([])),
eval(union(from_term([[{a,b},{b,c}],[{b,c}]])),
@@ -1043,12 +985,10 @@ union_1(Conf) when is_list(Conf) ->
intersection_1(Conf) when is_list(Conf) ->
E = empty_set(),
- {'EXIT', {badarg, _}} = (catch intersection(from_term([a,b]))),
- {'EXIT', {badarg, _}} = (catch intersection(E)),
- {'EXIT', {type_mismatch, _}} =
- (catch intersection(relation([{a,b}]), relation([{a,b,c}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch intersection(relation([{a,b}]), from_term([{a,b}],[{d,r}]))),
+ ?assertError(badarg, intersection(from_term([a,b]))),
+ ?assertError(badarg, intersection(E)),
+ ?assertError(type_mismatch, intersection(relation([{a,b}]), relation([{a,b,c}]))),
+ ?assertError(type_mismatch, intersection(relation([{a,b}]), from_term([{a,b}],[{d,r}]))),
eval(intersection(from_term([[a,b,c],[d,e,f],[g,h,i]])), set([])),
@@ -1065,11 +1005,9 @@ intersection_1(Conf) when is_list(Conf) ->
difference(Conf) when is_list(Conf) ->
E = empty_set(),
- {'EXIT', {type_mismatch, _}} =
- (catch difference(relation([{a,b}]), relation([{a,b,c}]))),
+ ?assertError(type_mismatch, difference(relation([{a,b}]), relation([{a,b,c}]))),
eval(difference(E, E), E),
- {'EXIT', {type_mismatch, _}} =
- (catch difference(relation([{a,b}]), from_term([{a,c}],[{d,r}]))),
+ ?assertError(type_mismatch, difference(relation([{a,b}]), from_term([{a,c}],[{d,r}]))),
eval(difference(set([a,b,c,d,f]), set([a,d,e,g])),
set([b,c,f])),
eval(difference(set([a,b,c]), set([d,e,f])),
@@ -1084,10 +1022,8 @@ difference(Conf) when is_list(Conf) ->
symdiff(Conf) when is_list(Conf) ->
E = empty_set(),
- {'EXIT', {type_mismatch, _}} =
- (catch symdiff(relation([{a,b}]), relation([{a,b,c}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch symdiff(relation([{a,b}]), from_term([{a,b}], [{d,r}]))),
+ ?assertError(type_mismatch, symdiff(relation([{a,b}]), relation([{a,b,c}]))),
+ ?assertError(type_mismatch, symdiff(relation([{a,b}]), from_term([{a,b}], [{d,r}]))),
eval(symdiff(E, E), E),
eval(symdiff(set([a,b,c,d,e,f]), set([0,1,a,c])),
union(set([b,d,e,f]), set([0,1]))),
@@ -1115,12 +1051,9 @@ symmetric_partition(Conf) when is_list(Conf) ->
T2 = set([3,4]),
T3 = set([5,6]),
T4 = set([1,2,5,6]),
- {'EXIT', {type_mismatch, _}} =
- (catch symmetric_partition(relation([{a,b}]), relation([{a,b,c}]))),
+ ?assertError(type_mismatch, symmetric_partition(relation([{a,b}]), relation([{a,b,c}]))),
{E, E, E} = symmetric_partition(E, E),
- {'EXIT', {type_mismatch, _}} =
- (catch symmetric_partition(relation([{a,b}]),
- from_term([{a,c}],[{d,r}]))),
+ ?assertError(type_mismatch, symmetric_partition(relation([{a,b}]), from_term([{a,c}],[{d,r}]))),
{E, E, S1} = symmetric_partition(E, S1),
{S1, E, E} = symmetric_partition(S1, E),
{T1, T2, T3} = symmetric_partition(S1, S2),
@@ -1152,13 +1085,13 @@ is_set_1(Conf) when is_list(Conf) ->
true = is_set(from_term([a])),
false = is_set(from_term({a})),
false = is_set(from_term(a)),
- {'EXIT', _} = (catch is_set(a)),
+ ?assertError(_, is_set(a)),
true = is_empty_set(E),
false = is_empty_set(from_term([a])),
false = is_empty_set(from_term({a})),
false = is_empty_set(from_term(a)),
- {'EXIT', _} = (catch is_empty_set(a)),
+ ?assertError(_, is_empty_set(a)),
ok.
@@ -1166,14 +1099,9 @@ is_equal(Conf) when is_list(Conf) ->
E = empty_set(),
true = is_equal(E, E),
false = is_equal(from_term([a]), E),
- {'EXIT', {type_mismatch, _}} =
- (catch is_equal(intersection(set([a]), set([b])),
- intersection(from_term([{a}]), from_term([{b}])))),
- {'EXIT', {type_mismatch, _}} =
- (catch is_equal(from_term([],[{[atom],atom,[atom]}]),
- from_term([],[{[atom],{atom},[atom]}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch is_equal(set([a]), from_term([a],[type]))),
+ ?assertError(type_mismatch, is_equal(intersection(set([a]), set([b])), intersection(from_term([{a}]), from_term([{b}])))),
+ ?assertError(type_mismatch, is_equal(from_term([],[{[atom],atom,[atom]}]), from_term([],[{[atom],{atom},[atom]}]))),
+ ?assertError(type_mismatch, is_equal(set([a]), from_term([a],[type]))),
E2 = from_sets({from_term(a,atom)}),
true = is_equal(E2, E2),
@@ -1181,17 +1109,12 @@ is_equal(Conf) when is_list(Conf) ->
false = is_equal(from_term([{[a],[],c}]),
from_term([{[],[],q}])),
- {'EXIT', {type_mismatch, _}} =
- (catch is_equal(E, E2)),
- {'EXIT', {type_mismatch, _}} =
- (catch is_equal(E2, E)),
+ ?assertError(type_mismatch, is_equal(E, E2)),
+ ?assertError(type_mismatch, is_equal(E2, E)),
true = is_equal(from_term({[],a,[]},{[atom],atom,[atom]}),
from_term({[],a,[]},{[atom],atom,[atom]})),
- {'EXIT', {type_mismatch, _}} =
- (catch is_equal(from_term({[],a,[]},{[atom],atom,[atom]}),
- from_term({[],{a},[]},{[atom],{atom},[atom]}))),
- {'EXIT', {type_mismatch, _}} =
- (catch is_equal(from_term({a}), from_term({a},{type}))),
+ ?assertError(type_mismatch, is_equal(from_term({[],a,[]},{[atom],atom,[atom]}), from_term({[],{a},[]},{[atom],{atom},[atom]}))),
+ ?assertError(type_mismatch, is_equal(from_term({a}), from_term({a},{type}))),
ok.
@@ -1204,17 +1127,14 @@ is_subset(Conf) when is_list(Conf) ->
false = is_subset(set([a,b,c]), set([b,c])),
false = is_subset(set([b,c]), set([a,c])),
false = is_subset(set([d,e]), set([a,b])),
- {'EXIT', {type_mismatch, _}} =
- (catch is_subset(intersection(set([a]), set([b])),
- intersection(from_term([{a}]), from_term([{b}])))),
- {'EXIT', {type_mismatch, _}} =
- (catch is_subset(set([a]), from_term([a,b], [at]))),
+ ?assertError(type_mismatch, is_subset(intersection(set([a]), set([b])), intersection(from_term([{a}]), from_term([{b}])))),
+ ?assertError(type_mismatch, is_subset(set([a]), from_term([a,b], [at]))),
ok.
is_a_function_1(Conf) when is_list(Conf) ->
E = empty_set(),
ER = relation([], 2),
- {'EXIT', {badarg, _}} = (catch is_a_function(set([a,b]))),
+ ?assertError(badarg, is_a_function(set([a,b]))),
true = is_a_function(E),
true = is_a_function(ER),
true = is_a_function(relation([])),
@@ -1235,10 +1155,8 @@ is_a_function_1(Conf) when is_list(Conf) ->
is_disjoint(Conf) when is_list(Conf) ->
E = empty_set(),
- {'EXIT', {type_mismatch, _}} =
- (catch is_disjoint(relation([{a,1}]), set([a,b]))),
- {'EXIT', {type_mismatch, _}} =
- (catch is_disjoint(set([a]), from_term([a],[mota]))),
+ ?assertError(type_mismatch, is_disjoint(relation([{a,1}]), set([a,b]))),
+ ?assertError(type_mismatch, is_disjoint(set([a]), from_term([a],[mota]))),
true = is_disjoint(E, E),
false = is_disjoint(set([a,b,c]),set([b,c,d])),
false = is_disjoint(set([b,c,d]),set([a,b,c])),
@@ -1248,9 +1166,9 @@ is_disjoint(Conf) when is_list(Conf) ->
join(Conf) when is_list(Conf) ->
E = empty_set(),
- {'EXIT', {badarg, _}} = (catch join(relation([{a,1}]), 3, E, 5)),
- {'EXIT', {badarg, _}} = (catch join(E, 1, relation([{a,1}]), 3)),
- {'EXIT', {badarg, _}} = (catch join(E, 1, from_term([a]), 1)),
+ ?assertError(badarg, join(relation([{a,1}]), 3, E, 5)),
+ ?assertError(badarg, join(E, 1, relation([{a,1}]), 3)),
+ ?assertError(badarg, join(E, 1, from_term([a]), 1)),
eval(join(E, 1, E, 2), E),
eval(join(E, 1, from_term([{{a},b}]), 2), E),
@@ -1283,8 +1201,7 @@ join(Conf) when is_list(Conf) ->
canonical(Conf) when is_list(Conf) ->
E = empty_set(),
- {'EXIT', {badarg, _}} =
- (catch canonical_relation(set([a,b]))),
+ ?assertError(badarg, canonical_relation(set([a,b]))),
eval(canonical_relation(E), E),
eval(canonical_relation(from_term([[]])), E),
eval(canonical_relation(from_term([[a,b,c]])),
@@ -1301,13 +1218,13 @@ relation_to_family_1(Conf) when is_list(Conf) ->
F = family([{b,[1]},{c,[7,9,11]}]),
eval(relation_to_family(R), F),
eval(sofs:rel2fam(R), F),
- {'EXIT', {badarg, _}} = (catch relation_to_family(set([a]))),
+ ?assertError(badarg, relation_to_family(set([a]))),
ok.
domain_1(Conf) when is_list(Conf) ->
E = empty_set(),
ER = relation([]),
- {'EXIT', {badarg, _}} = (catch domain(relation([],3))),
+ ?assertError(badarg, domain(relation([],3))),
eval(domain(E), E),
eval(domain(ER), set([])),
eval(domain(relation([{1,a},{1,b},{2,a},{2,b}])), set([1,2])),
@@ -1327,7 +1244,7 @@ domain_1(Conf) when is_list(Conf) ->
range_1(Conf) when is_list(Conf) ->
E = empty_set(),
ER = relation([]),
- {'EXIT', {badarg, _}} = (catch range(relation([],3))),
+ ?assertError(badarg, range(relation([],3))),
eval(range(E), E),
eval(range(ER), set([])),
eval(range(relation([{1,a},{1,b},{2,a},{2,b}])), set([a,b])),
@@ -1337,11 +1254,9 @@ range_1(Conf) when is_list(Conf) ->
inverse_1(Conf) when is_list(Conf) ->
E = empty_set(),
ER = relation([]),
- {'EXIT', {badarg, _}} = (catch inverse(relation([],3))),
- {'EXIT', {bad_function, _}} =
- (catch inverse(relation([{1,a},{1,b}]))),
- {'EXIT', {bad_function, _}} =
- (catch inverse(relation([{1,a},{2,a}]))),
+ ?assertError(badarg, inverse(relation([],3))),
+ ?assertError(bad_function, inverse(relation([{1,a},{1,b}]))),
+ ?assertError(bad_function, inverse(relation([{1,a},{2,a}]))),
eval(inverse(E), E),
eval(inverse(ER), ER),
eval(inverse(relation([{a,1},{b,2},{c,3}])),
@@ -1350,7 +1265,7 @@ inverse_1(Conf) when is_list(Conf) ->
FR = relation([{I,a},{F,b}]),
if
F == I -> % term ordering
- {'EXIT', {bad_function, _}} = (catch inverse(FR));
+ ?assertError(bad_function, inverse(FR));
true ->
eval(inverse(FR), relation([{a,I},{b,F}]))
end,
@@ -1359,7 +1274,7 @@ inverse_1(Conf) when is_list(Conf) ->
converse_1(Conf) when is_list(Conf) ->
E = empty_set(),
ER = relation([]),
- {'EXIT', {badarg, _}} = (catch converse(relation([],3))),
+ ?assertError(badarg, converse(relation([],3))),
eval(converse(ER), ER),
eval(converse(E), E),
eval(converse(relation([{a,1},{b,2},{c,3}])),
@@ -1376,8 +1291,8 @@ no_elements_1(Conf) when is_list(Conf) ->
1 = no_elements(from_term([a])),
10 = no_elements(from_term(lists:seq(1,10))),
3 = no_elements(from_term({a,b,c},{atom,atom,atom})),
- {'EXIT', {badarg, _}} = (catch no_elements(from_term(a))),
- {'EXIT', {function_clause, _}} = (catch no_elements(a)),
+ ?assertError(badarg, no_elements(from_term(a))),
+ ?assertError(function_clause, no_elements(a)),
ok.
image(Conf) when is_list(Conf) ->
@@ -1394,10 +1309,8 @@ image(Conf) when is_list(Conf) ->
from_term([{1}])),
eval(image(relation([{1,a},{2,a},{3,a},{4,b},{2,b}]), set([1,2,4])),
set([a,b])),
- {'EXIT', {badarg, _}} =
- (catch image(from_term([a,b]), E)),
- {'EXIT', {type_mismatch, _}} =
- (catch image(from_term([{[a],1}]), set([[a]]))),
+ ?assertError(badarg, image(from_term([a,b]), E)),
+ ?assertError(type_mismatch, image(from_term([{[a],1}]), set([[a]]))),
ok.
inverse_image(Conf) when is_list(Conf) ->
@@ -1419,10 +1332,8 @@ inverse_image(Conf) when is_list(Conf) ->
{3,a},{4,b},{2,b}])),
set([1,2,4])),
set([a,b])),
- {'EXIT', {badarg, _}} =
- (catch inverse_image(from_term([a,b]), E)),
- {'EXIT', {type_mismatch, _}} =
- (catch inverse_image(converse(from_term([{[a],1}])), set([[a]]))),
+ ?assertError(badarg, inverse_image(from_term([a,b]), E)),
+ ?assertError(type_mismatch, inverse_image(converse(from_term([{[a],1}])), set([[a]]))),
ok.
composite_1(Conf) when is_list(Conf) ->
@@ -1431,15 +1342,11 @@ composite_1(Conf) when is_list(Conf) ->
eval(composite(E, E), E),
eval(composite(E, a_function([{a,b}])), E),
eval(composite(relation([{a,b}]), E), E),
- {'EXIT', {bad_function, _}} =
- (catch composite(EF, relation([{a,b},{a,c}]))),
- {'EXIT', {bad_function, _}} =
- (catch composite(a_function([{b,a}]), EF)),
- {'EXIT', {bad_function, _}} =
- (catch composite(relation([{1,a},{2,b},{2,a}]),
- a_function([{a,1},{b,3}]))),
- {'EXIT', {bad_function, _}} =
- (catch composite(a_function([{1,a},{2,b}]), a_function([{b,3}]))),
+ ?assertError(bad_function, composite(EF, relation([{a,b},{a,c}]))),
+ ?assertError(bad_function, composite(a_function([{b,a}]), EF)),
+ ?assertError(bad_function, composite(relation([{1,a},{2,b},{2,a}]),
+ a_function([{a,1},{b,3}]))),
+ ?assertError(bad_function, composite(a_function([{1,a},{2,b}]), a_function([{b,3}]))),
eval(composite(EF, EF), EF),
eval(composite(a_function([{b,a}]), from_term([{a,{b,c}}])),
from_term([{b,{b,c}}])),
@@ -1452,24 +1359,19 @@ composite_1(Conf) when is_list(Conf) ->
eval(composite(a_function([{1,c}]),
a_function([{a,1},{b,3},{c,4}])),
a_function([{1,4}])),
- {'EXIT', {bad_function, _}} =
- (catch composite(a_function([{1,a},{2,b}]),
- a_function([{a,1},{c,3}]))),
- {'EXIT', {badarg, _}} =
- (catch composite(from_term([a,b]), E)),
- {'EXIT', {badarg, _}} =
- (catch composite(E, from_term([a,b]))),
- {'EXIT', {type_mismatch, _}} =
- (catch composite(from_term([{a,b}]), from_term([{{a},b}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch composite(from_term([{a,b}]),
- from_term([{b,c}], [{d,r}]))),
+ ?assertError(bad_function, composite(a_function([{1,a},{2,b}]),
+ a_function([{a,1},{c,3}]))),
+ ?assertError(badarg, composite(from_term([a,b]), E)),
+ ?assertError(badarg, composite(E, from_term([a,b]))),
+ ?assertError(type_mismatch, composite(from_term([{a,b}]), from_term([{{a},b}]))),
+ ?assertError(type_mismatch, composite(from_term([{a,b}]),
+ from_term([{b,c}], [{d,r}]))),
F = 0.0, I = round(F),
FR1 = relation([{1,c}]),
FR2 = relation([{I,1},{F,3},{c,4}]),
if
F == I -> % term ordering
- {'EXIT', {bad_function, _}} = (catch composite(FR1, FR2));
+ ?assertError(bad_function, composite(FR1, FR2));
true ->
eval(composite(FR1, FR2), a_function([{1,4}]))
end,
@@ -1490,25 +1392,20 @@ relative_product_1(Conf) when is_list(Conf) ->
{1,d},{2,e},{3,f}]),
relation([{1,q},{3,w}])),
relation([{c,q},{d,q},{f,w}])),
- {'EXIT', {badarg, _}} =
- (catch relative_product1(from_term([a,b]), ER)),
- {'EXIT', {badarg, _}} =
- (catch relative_product1(ER, from_term([a,b]))),
- {'EXIT', {type_mismatch, _}} =
- (catch relative_product1(from_term([{a,b}]), from_term([{{a},b}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch relative_product1(from_term([{a,b}]),
- from_term([{b,c}], [{d,r}]))),
+ ?assertError(badarg, relative_product1(from_term([a,b]), ER)),
+ ?assertError(badarg, relative_product1(ER, from_term([a,b]))),
+ ?assertError(type_mismatch, relative_product1(from_term([{a,b}]), from_term([{{a},b}]))),
+ ?assertError(type_mismatch, relative_product1(from_term([{a,b}]),
+ from_term([{b,c}], [{d,r}]))),
ok.
relative_product_2(Conf) when is_list(Conf) ->
E = empty_set(),
ER = relation([]),
- {'EXIT', {badarg, _}} = (catch relative_product({from_term([a,b])})),
- {'EXIT', {type_mismatch, _}} =
- (catch relative_product({from_term([{a,b}]), from_term([{{a},b}])})),
- {'EXIT', {badarg, _}} = (catch relative_product({})),
+ ?assertError(badarg, relative_product({from_term([a,b])})),
+ ?assertError(type_mismatch, relative_product({from_term([{a,b}]), from_term([{{a},b}])})),
+ ?assertError(badarg, relative_product({})),
true = is_equal(relative_product({ER}),
from_term([], [{atom,{atom}}])),
eval(relative_product({relation([{a,b},{c,a}]),
@@ -1519,15 +1416,12 @@ relative_product_2(Conf) when is_list(Conf) ->
eval(relative_product({E}, relation([{a,b}])), E),
eval(relative_product({E,from_term([], [{{atom,atom,atom},atom}])}),
E),
- {'EXIT', {badarg, _}} =
- (catch relative_product({from_term([a,b])}, E)),
- {'EXIT', {badarg, _}} =
- (catch relative_product({relation([])}, set([]))),
- {'EXIT', {type_mismatch, _}} =
- (catch relative_product({from_term([{a,b}]),
- from_term([{{a},b}])}, ER)),
-
- {'EXIT', {badarg, _}} = (catch relative_product({}, ER)),
+ ?assertError(badarg, relative_product({from_term([a,b])}, E)),
+ ?assertError(badarg, relative_product({relation([])}, set([]))),
+ ?assertError(type_mismatch, relative_product({from_term([{a,b}]),
+ from_term([{{a},b}])}, ER)),
+
+ ?assertError(badarg, relative_product({}, ER)),
relprod2({relation([{a,b}])}, from_term([],[{{atom},atom}]), ER),
relprod2({relation([{a,b}]),relation([{a,1}])},
from_term([{{b,1},{tjo,hej,sa}}]),
@@ -1566,8 +1460,8 @@ product_1(Conf) when is_list(Conf) ->
eval(product({from_term([a,b]), from_term([{a,b},{c,d}]),
from_term([1])}),
from_term([{a,{a,b},1},{a,{c,d},1},{b,{a,b},1},{b,{c,d},1}])),
- {'EXIT', {badarg, _}} = (catch product({})),
- {'EXIT', {badarg, _}} = (catch product({foo})),
+ ?assertError(badarg, product({})),
+ ?assertError(badarg, product({foo})),
eval(product({E}), E),
eval(product({E, E}), E),
eval(product(set([a,b]), set([1,2])),
@@ -1607,8 +1501,8 @@ partition_1(Conf) when is_list(Conf) ->
true ->
eval(partition(1, FR), from_term([[{I,a}],[{F,b}]]))
end,
- {'EXIT', {badarg, _}} = (catch partition(2, set([a]))),
- {'EXIT', {badarg, _}} = (catch partition(1, set([a]))),
+ ?assertError(badarg, partition(2, set([a]))),
+ ?assertError(badarg, partition(1, set([a]))),
eval(partition(Id, set([a])), from_term([[a]])),
eval(partition(E), E),
@@ -1616,7 +1510,7 @@ partition_1(Conf) when is_list(Conf) ->
P2 = from_term([[a,d],[b,c,e,f,q,v]]),
eval(partition(union(P1, P2)),
from_term([[a],[b,c],[d],[e,f],[g,h],[q,v]])),
- {'EXIT', {badarg, _}} = (catch partition(from_term([a]))),
+ ?assertError(badarg, partition(from_term([a]))),
ok.
partition_3(Conf) when is_list(Conf) ->
@@ -1662,21 +1556,15 @@ partition_3(Conf) when is_list(Conf) ->
S2 = set([a]),
eval(partition(XId, E, S2), lpartition(XId, E, S2)),
eval(partition(XId, S1, E), lpartition(XId, S1, E)),
- {'EXIT', {badarg, _}} =
- (catch partition(3, relation([{a,b}]), E)),
- {'EXIT', {badarg, _}} =
- (catch partition(3, relation([{a,b}]), relation([{b,d}]))),
- {'EXIT', {badarg, _}} =
- (catch partition(3, relation([{a,b}]), set([{b,d}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch partition(2, relation([{a,b}]), relation([{b,d}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch partition({external, fun({A,_B}) -> A end},
- relation([{a,b}]), relation([{b,d}]))),
- {'EXIT', {badarg, _}} =
- (catch partition({external, fun({A,_}) -> {A,0} end},
- from_term([{1,a}]),
- from_term([{1,0}]))),
+ ?assertError(badarg, partition(3, relation([{a,b}]), E)),
+ ?assertError(badarg, partition(3, relation([{a,b}]), relation([{b,d}]))),
+ ?assertError(badarg, partition(3, relation([{a,b}]), set([{b,d}]))),
+ ?assertError(type_mismatch, partition(2, relation([{a,b}]), relation([{b,d}]))),
+ ?assertError(type_mismatch, partition({external, fun({A,_B}) -> A end},
+ relation([{a,b}]), relation([{b,d}]))),
+ ?assertError(badarg, partition({external, fun({A,_}) -> {A,0} end},
+ from_term([{1,a}]),
+ from_term([{1,0}]))),
S18a = relation([{1,e},{2,b},{3,c},{4,b},{5,a},{6,0}]),
S18b = set([b,d,f]),
@@ -1698,8 +1586,7 @@ partition_3(Conf) when is_list(Conf) ->
S17b = set([b,c,d]),
eval(partition(1, S17a, S17b), lpartition(1, S17a, S17b)),
- {'EXIT', {function_clause, _}} =
- (catch partition({external, fun({A,_B}) -> A end}, set([]), E)),
+ ?assertError(function_clause, partition({external, fun({A,_B}) -> A end}, set([]), E)),
Fun3 = fun(S) -> from_term({to_external(S),0}, {type(S),atom}) end,
S9a = set([1,2]),
@@ -1714,9 +1601,8 @@ partition_3(Conf) when is_list(Conf) ->
eval(partition(1, S15a, S15b), lpartition(1, S15a, S15b)),
%% set of sets
- {'EXIT', {badarg, _}} =
- (catch partition({external, fun(X) -> X end},
- from_term([], [[atom]]), set([a]))),
+ ?assertError(badarg, partition({external, fun(X) -> X end},
+ from_term([], [[atom]]), set([a]))),
S10 = from_term([], [[atom]]),
eval(partition(Id, S10, E), lpartition(Id, S10, E)),
@@ -1738,10 +1624,9 @@ partition_3(Conf) when is_list(Conf) ->
S13b = from_term([], [[a]]),
eval(partition(Fun13, S13a, S13b), lpartition(Fun13, S13a, S13b)),
- {'EXIT', {type_mismatch, _}} =
- (catch partition(fun(_) -> from_term([a]) end,
- from_term([[1,2],[3,4]]),
- from_term([], [atom]))),
+ ?assertError(type_mismatch, partition(fun(_) -> from_term([a]) end,
+ from_term([[1,2],[3,4]]),
+ from_term([], [atom]))),
Fun10 = fun(S) ->
%% Cheating a lot...
case to_external(S) of
@@ -1749,16 +1634,13 @@ partition_3(Conf) when is_list(Conf) ->
_ -> S
end
end,
- {'EXIT', {type_mismatch, _}} =
- (catch partition(Fun10, from_term([[1]]), from_term([], [[atom]]))),
- {'EXIT', {type_mismatch, _}} =
- (catch partition(fun(_) -> from_term({a}) end,
- from_term([[a]]),
- from_term([], [atom]))),
- {'EXIT', {badarg, _}} =
- (catch partition(fun(_) -> {a} end,
- from_term([[a]]),
- from_term([], [atom]))),
+ ?assertError(type_mismatch, partition(Fun10, from_term([[1]]), from_term([], [[atom]]))),
+ ?assertError(type_mismatch, partition(fun(_) -> from_term({a}) end,
+ from_term([[a]]),
+ from_term([], [atom]))),
+ ?assertError(badarg, partition(fun(_) -> {a} end,
+ from_term([[a]]),
+ from_term([], [atom]))),
ok.
lpartition(F, S1, S2) ->
@@ -1768,10 +1650,8 @@ multiple_relative_product(Conf) when is_list(Conf) ->
E = empty_set(),
ER = relation([]),
T = relation([{a,1},{a,11},{b,2},{c,3},{c,33},{d,4}]),
- {'EXIT', {badarg, _}} =
- (catch multiple_relative_product({}, ER)),
- {'EXIT', {badarg, _}} =
- (catch multiple_relative_product({}, relation([{a,b}]))),
+ ?assertError(badarg, multiple_relative_product({}, ER)),
+ ?assertError(badarg, multiple_relative_product({}, relation([{a,b}]))),
eval(multiple_relative_product({E,T,T}, relation([], 3)), E),
eval(multiple_relative_product({T,T,T}, E), E),
eval(multiple_relative_product({T,T,T}, relation([],3)),
@@ -1782,8 +1662,7 @@ multiple_relative_product(Conf) when is_list(Conf) ->
{{a,b,c},{11,2,3}}, {{a,b,c},{11,2,33}},
{{c,d,a},{3,4,1}}, {{c,d,a},{3,4,11}},
{{c,d,a},{33,4,1}}, {{c,d,a},{33,4,11}}])),
- {'EXIT', {type_mismatch, _}} =
- (catch multiple_relative_product({T}, from_term([{{a}}]))),
+ ?assertError(type_mismatch, multiple_relative_product({T}, from_term([{{a}}]))),
ok.
digraph(Conf) when is_list(Conf) ->
@@ -1793,15 +1672,14 @@ digraph(Conf) when is_list(Conf) ->
F = relation_to_family(R),
Type = type(F),
- {'EXIT', {badarg, _}} =
- (catch family_to_digraph(set([a]))),
- digraph_fail(badarg, catch family_to_digraph(set([a]), [foo])),
- digraph_fail(badarg, catch family_to_digraph(F, [foo])),
- digraph_fail(cyclic, catch family_to_digraph(family([{a,[a]}]),[acyclic])),
+ ?assertError(badarg, family_to_digraph(set([a]))),
+ ?assertErrorStack(badarg, [{sofs, family_to_digraph, 2, _}|_], family_to_digraph(set([a]), [foo])),
+ ?assertErrorStack(badarg, [{sofs, family_to_digraph, 2, _}|_], family_to_digraph(F, [foo])),
+ ?assertErrorStack(cyclic, [{sofs, family_to_digraph, 2, _}|_], family_to_digraph(family([{a,[a]}]),[acyclic])),
G1 = family_to_digraph(E),
- {'EXIT', {badarg, _}} = (catch digraph_to_family(G1, foo)),
- {'EXIT', {badarg, _}} = (catch digraph_to_family(G1, atom)),
+ ?assertError(badarg, digraph_to_family(G1, foo)),
+ ?assertError(badarg, digraph_to_family(G1, atom)),
true = [] == to_external(digraph_to_family(G1)),
true = [] == to_external(digraph_to_family(G1, Type)),
true = digraph:delete(G1),
@@ -1829,10 +1707,8 @@ digraph(Conf) when is_list(Conf) ->
G4 = digraph:new(),
digraph:add_vertex(G4, Fl),
digraph:add_vertex(G4, I),
- {'EXIT', {badarg, _}} =
- (catch digraph_to_family(G4, Type)),
- {'EXIT', {badarg, _}} =
- (catch digraph_to_family(G4)),
+ ?assertError(badarg, digraph_to_family(G4, Type)),
+ ?assertError(badarg, digraph_to_family(G4)),
true = digraph:delete(G4);
true -> ok
end,
@@ -1840,18 +1716,14 @@ digraph(Conf) when is_list(Conf) ->
true = T0 == lists:sort(ets:all()),
ok.
-digraph_fail(ExitReason, Fail) ->
- {'EXIT', {ExitReason, [{sofs,family_to_digraph,2,_}|_]}} = Fail,
- ok.
-
constant_function(Conf) when is_list(Conf) ->
E = empty_set(),
C = from_term(3),
eval(constant_function(E, C), E),
eval(constant_function(set([a,b]), E), from_term([{a,[]},{b,[]}])),
eval(constant_function(set([a,b]), C), from_term([{a,3},{b,3}])),
- {'EXIT', {badarg, _}} = (catch constant_function(C, C)),
- {'EXIT', {badarg, _}} = (catch constant_function(set([]), foo)),
+ ?assertError(badarg, constant_function(C, C)),
+ ?assertError(badarg, constant_function(set([]), foo)),
ok.
misc(Conf) when is_list(Conf) ->
@@ -1865,8 +1737,7 @@ misc(Conf) when is_list(Conf) ->
%% the "functional" part:
eval(union(intersection(partition(1,S), partition(Id,S))),
difference(S, RR)),
- {'EXIT', {undef, _}} =
- (catch projection(fun external:foo/1, set([a,b,c]))),
+ ?assertError(undef, projection(fun external:foo/1, set([a,b,c]))),
ok.
relational_restriction(R) ->
@@ -1878,8 +1749,7 @@ family_specification(Conf) when is_list(Conf) ->
E = empty_set(),
%% internal
eval(family_specification(fun sofs:is_set/1, E), E),
- {'EXIT', {badarg, _}} =
- (catch family_specification(fun sofs:is_set/1, set([]))),
+ ?assertError(badarg, family_specification(fun sofs:is_set/1, set([]))),
F1 = from_term([{1,[1]}]),
eval(family_specification(fun sofs:is_set/1, F1), F1),
Fun = fun(S) -> is_subset(S, set([0,1,2,3,4])) end,
@@ -1888,10 +1758,9 @@ family_specification(Conf) when is_list(Conf) ->
F3 = from_term([{a,[]},{b,[]}]),
eval(family_specification(fun sofs:is_set/1, F3), F3),
Fun2 = fun(_) -> throw(fippla) end,
- fippla = (catch family_specification(Fun2, family([{a,[1]}]))),
+ ?assertThrow(fippla, family_specification(Fun2, family([{a,[1]}]))),
Fun3 = fun(_) -> neither_true_nor_false end,
- {'EXIT', {badarg, _}} =
- (catch family_specification(Fun3, F3)),
+ ?assertError(badarg, family_specification(Fun3, F3)),
%% external
IsList = {external, fun(L) when is_list(L) -> true; (_) -> false end},
@@ -1899,9 +1768,8 @@ family_specification(Conf) when is_list(Conf) ->
eval(family_specification(IsList, F1), F1),
MF = {external, fun(L) -> lists:member(3, L) end},
eval(family_specification(MF, F2), family([{b,[3,4,5]}])),
- fippla = (catch family_specification(Fun2, family([{a,[1]}]))),
- {'EXIT', {badarg, _}} =
- (catch family_specification({external, Fun3}, F3)),
+ ?assertThrow(fippla, family_specification(Fun2, family([{a,[1]}]))),
+ ?assertError(badarg, family_specification({external, Fun3}, F3)),
ok.
family_domain_1(Conf) when is_list(Conf) ->
@@ -1923,9 +1791,9 @@ family_domain_1(Conf) when is_list(Conf) ->
from_term([{{a},[]}])),
eval(family_domain(from_term([], type(FR))),
from_term([], [{atom,[atom]}])),
- {'EXIT', {badarg, _}} = (catch family_domain(set([a]))),
- {'EXIT', {badarg, _}} = (catch family_field(set([a]))),
- {'EXIT', {badarg, _}} = (catch family_domain(set([{a,[b]}]))),
+ ?assertError(badarg, family_domain(set([a]))),
+ ?assertError(badarg, family_field(set([a]))),
+ ?assertError(badarg, family_domain(set([{a,[b]}]))),
ok.
family_range_1(Conf) when is_list(Conf) ->
@@ -1944,8 +1812,8 @@ family_range_1(Conf) when is_list(Conf) ->
from_term([{{a},[]}])),
eval(family_range(from_term([], type(FR))),
from_term([], [{atom,[atom]}])),
- {'EXIT', {badarg, _}} = (catch family_range(set([a]))),
- {'EXIT', {badarg, _}} = (catch family_range(set([{a,[b]}]))),
+ ?assertError(badarg, family_range(set([a]))),
+ ?assertError(badarg, family_range(set([{a,[b]}]))),
ok.
family_to_relation_1(Conf) when is_list(Conf) ->
@@ -1957,7 +1825,7 @@ family_to_relation_1(Conf) when is_list(Conf) ->
eval(sofs:fam2rel(EF), ER),
F = family([{a,[]},{b,[1]},{c,[7,9,11]}]),
eval(family_to_relation(F), relation([{b,1},{c,7},{c,9},{c,11}])),
- {'EXIT', {badarg, _}} = (catch family_to_relation(set([a]))),
+ ?assertError(badarg, family_to_relation(set([a]))),
ok.
union_of_family_1(Conf) when is_list(Conf) ->
@@ -1970,7 +1838,7 @@ union_of_family_1(Conf) when is_list(Conf) ->
eval(union_of_family(FR), set([1,2,3,4,5])),
eval(union_of_family(sofs:family([{a,[1,2]},{b,[1,2]}])),
set([1,2])),
- {'EXIT', {badarg, _}} = (catch union_of_family(set([a]))),
+ ?assertError(badarg, union_of_family(set([a]))),
ok.
intersection_of_family_1(Conf) when is_list(Conf) ->
@@ -1978,11 +1846,10 @@ intersection_of_family_1(Conf) when is_list(Conf) ->
eval(intersection_of_family(EF), set([])),
FR = from_term([{a,[1,2,3]},{b,[2,3]},{c,[3,4,5]}]),
eval(intersection_of_family(FR), set([3])),
- {'EXIT', {badarg, _}} =
- (catch intersection_of_family(family([]))),
+ ?assertError(badarg, intersection_of_family(family([]))),
EE = from_term([], [[atom]]),
- {'EXIT', {badarg, _}} = (catch intersection_of_family(EE)),
- {'EXIT', {badarg, _}} = (catch intersection_of_family(set([a]))),
+ ?assertError(badarg, intersection_of_family(EE)),
+ ?assertError(badarg, intersection_of_family(set([a]))),
ok.
family_projection(Conf) when is_list(Conf) ->
@@ -1995,10 +1862,8 @@ family_projection(Conf) when is_list(Conf) ->
eval(family_projection(fun sofs:union/1, E), E),
eval(family_projection(fun sofs:union/1, from_term(L1, SSType)),
family(L1)),
- {'EXIT', {badarg, _}} =
- (catch family_projection(fun sofs:union/1, set([]))),
- {'EXIT', {badarg, _}} =
- (catch family_projection(fun sofs:union/1, from_term([{1,[1]}]))),
+ ?assertError(badarg, family_projection(fun sofs:union/1, set([]))),
+ ?assertError(badarg, family_projection(fun sofs:union/1, from_term([{1,[1]}]))),
F2 = from_term([{a,[[1],[2]]},{b,[[3,4],[5]]}], SSType),
eval(family_projection(fun sofs:union/1, F2),
@@ -2021,12 +1886,9 @@ family_projection(Conf) when is_list(Conf) ->
eval(family_projection(Fun1, family([{a,[1]}])),
from_term([{a,{1,1}}])),
Fun2 = fun(_) -> throw(fippla) end,
- fippla =
- (catch family_projection(Fun2, family([{a,[1]}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch family_projection(Fun1, from_term([{1,[1]},{2,[2]}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch family_projection(Fun1, from_term([{1,[1]},{0,[0]}]))),
+ ?assertThrow(fippla, family_projection(Fun2, family([{a,[1]}]))),
+ ?assertError(type_mismatch, family_projection(Fun1, from_term([{1,[1]},{2,[2]}]))),
+ ?assertError(type_mismatch, family_projection(Fun1, from_term([{1,[1]},{0,[0]}]))),
eval(family_projection(fun(_) -> E end, from_term([{a,[]}])),
from_term([{a,[]}])),
@@ -2034,9 +1896,8 @@ family_projection(Conf) when is_list(Conf) ->
Z = from_term(0),
eval(family_projection(fun(S) -> local_adjoin(S, Z) end, F4),
from_term([{a,[{{1,2,3},0}]},{b,[{{4,5,6},0}]},{c,[]},{m3,[]}])),
- {'EXIT', {badarg, _}} =
- (catch family_projection({external, fun(X) -> X end},
- from_term([{1,[1]}]))),
+ ?assertError(badarg, family_projection({external, fun(X) -> X end},
+ from_term([{1,[1]}]))),
%% ordered set element
eval(family_projection(fun(_) -> from_term(a, atom) end,
@@ -2069,14 +1930,11 @@ family_difference(Conf) when is_list(Conf) ->
eval(family_difference(from_term([{a,[a,b,c,d]},{c,[b,c]}]),
from_term([{a,[b,c]},{b,[d]},{d,[e,f]}])),
from_term([{a,[a,d]},{c,[b,c]}])),
- {'EXIT', {badarg, _}} =
- (catch family_difference(set([]), set([]))),
- {'EXIT', {type_mismatch, _}} =
- (catch family_difference(from_term([{a,[b,c]}]),
- from_term([{e,[{f}]}]))),
- {'EXIT', {type_mismatch, _}} =
- (catch family_difference(from_term([{a,[b]}]),
- from_term([{c,[d]}], [{i,[s]}]))),
+ ?assertError(badarg, family_difference(set([]), set([]))),
+ ?assertError(type_mismatch, family_difference(from_term([{a,[b,c]}]),
+ from_term([{e,[{f}]}]))),
+ ?assertError(type_mismatch, family_difference(from_term([{a,[b]}]),
+ from_term([{c,[d]}], [{i,[s]}]))),
ok.
family_intersection_1(Conf) when is_list(Conf) ->
@@ -2084,15 +1942,14 @@ family_intersection_1(Conf) when is_list(Conf) ->
EF = family([]),
ES = from_term([], [{atom,[[atom]]}]),
eval(family_intersection(E), E),
- {'EXIT', {badarg, _}} = (catch family_intersection(EF)),
+ ?assertError(badarg, family_intersection(EF)),
eval(family_intersection(ES), EF),
- {'EXIT', {badarg, _}} = (catch family_intersection(set([]))),
- {'EXIT', {badarg, _}} =
- (catch family_intersection(from_term([{a,[1,2]}]))),
+ ?assertError(badarg, family_intersection(set([]))),
+ ?assertError(badarg, family_intersection(from_term([{a,[1,2]}]))),
F1 = from_term([{a,[[1],[2],[2,3]]},{b,[]},{c,[[4]]}]),
- {'EXIT', {badarg, _}} = (catch family_intersection(F1)),
+ ?assertError(badarg, family_intersection(F1)),
F2 = from_term([{b,[[1],[2],[2,3]]},{a,[]},{c,[[4]]}]),
- {'EXIT', {badarg, _}} = (catch family_intersection(F2)),
+ ?assertError(badarg, family_intersection(F2)),
F3 = from_term([{a,[[1,2,3],[2],[2,3]]},{c,[[4,5,6],[5,6,7]]}]),
eval(family_intersection(F3), family([{a,[2]},{c,[5,6]}])),
ok.
@@ -2116,9 +1973,8 @@ family_intersection_2(Conf) when is_list(Conf) ->
eval(family_intersection(E, from_term([{e,[f,g]}])), EF),
eval(family_intersection(from_term([{e,[f,g]}]), EF), EF),
eval(family_intersection(from_term([{e,[f,g]}]), E), EF),
- {'EXIT', {type_mismatch, _}} =
- (catch family_intersection(from_term([{a,[b,c]}]),
- from_term([{e,[{f}]}]))),
+ ?assertError(type_mismatch, family_intersection(from_term([{a,[b,c]}]),
+ from_term([{e,[{f}]}]))),
F11 = family([{a,[1,2,3]},{b,[0,2,4]},{c,[0,3,6,9]}]),
eval(union_of_family(F11), set([0,1,2,3,4,6,9])),
@@ -2132,9 +1988,8 @@ family_union_1(Conf) when is_list(Conf) ->
ES = from_term([], [{atom,[[atom]]}]),
eval(family_union(E), E),
eval(family_union(ES), EF),
- {'EXIT', {badarg, _}} = (catch family_union(set([]))),
- {'EXIT', {badarg, _}} =
- (catch family_union(from_term([{a,[1,2]}]))),
+ ?assertError(badarg, family_union(set([]))),
+ ?assertError(badarg, family_union(from_term([{a,[1,2]}]))),
eval(family_union(from_term([{a,[[1],[2],[2,3]]},{b,[]},{c,[[4]]}])),
family([{a,[1,2,3]},{b,[]},{c,[4]}])),
ok.
@@ -2159,11 +2014,9 @@ family_union_2(Conf) when is_list(Conf) ->
from_term([{e,[f,g]}])),
eval(family_union(from_term([{e,[f,g]}]), E),
from_term([{e,[f,g]}])),
- {'EXIT', {badarg, _}} =
- (catch family_union(set([]),set([]))),
- {'EXIT', {type_mismatch, _}} =
- (catch family_union(from_term([{a,[b,c]}]),
- from_term([{e,[{f}]}]))),
+ ?assertError(badarg, family_union(set([]),set([]))),
+ ?assertError(type_mismatch, family_union(from_term([{a,[b,c]}]),
+ from_term([{e,[{f}]}]))),
ok.
partition_family(Conf) when is_list(Conf) ->
@@ -2178,10 +2031,9 @@ partition_family(Conf) when is_list(Conf) ->
eval(partition_family(fun sofs:union/1, E), E),
eval(partition_family(1, ER), EF),
eval(partition_family(2, ER), EF),
- {'EXIT', {badarg, _}} = (catch partition_family(1, set([]))),
- {'EXIT', {badarg, _}} = (catch partition_family(2, set([]))),
- {'EXIT', {function_clause, _}} =
- (catch partition_family(fun({_A,B}) -> {B} end, from_term([{1}]))),
+ ?assertError(badarg, partition_family(1, set([]))),
+ ?assertError(badarg, partition_family(2, set([]))),
+ ?assertError(function_clause, partition_family(fun({_A,B}) -> {B} end, from_term([{1}]))),
eval(partition_family(1, relation([{1,a},{1,b},{2,c},{2,d}])),
from_term([{1,[{1,a},{1,b}]},{2,[{2,c},{2,d}]}])),
eval(partition_family(1, relation([{1,a},{2,b}])),
@@ -2206,9 +2058,8 @@ partition_family(Conf) when is_list(Conf) ->
eval(partition_family(Fun2, relation([{a,1},{a,2},{b,3}])),
from_term([{{a},[{a,1},{a,2}]},{{b},[{b,3}]}])),
- {'EXIT', {badarg, _}} =
- (catch partition_family({external, fun({A,_}) -> {A,0} end},
- from_term([{1,a}]))),
+ ?assertError(badarg, partition_family({external, fun({A,_}) -> {A,0} end},
+ from_term([{1,a}]))),
[{{atom,atom},[{atom,atom,atom,atom}]}] =
type(partition_family({external, fun({A,_B,C,_D}) -> {C,A} end},
relation([],4))),
@@ -2233,12 +2084,10 @@ partition_family(Conf) when is_list(Conf) ->
from_term([{I,[{I,a}]},{F,[{F,b}]}]))
end,
%% set of sets
- {'EXIT', {badarg, _}} =
- (catch partition_family({external, fun(X) -> X end},
- from_term([], [[atom]]))),
- {'EXIT', {badarg, _}} =
- (catch partition_family({external, fun(X) -> X end},
- from_term([[a]]))),
+ ?assertError(badarg, partition_family({external, fun(X) -> X end},
+ from_term([], [[atom]]))),
+ ?assertError(badarg, partition_family({external, fun(X) -> X end},
+ from_term([[a]]))),
eval(partition_family(fun sofs:union/1,
from_term([[[1],[1,2]], [[1,2]]])),
from_term([{[1,2], [[[1],[1,2]],[[1,2]]]}])),
@@ -2262,8 +2111,7 @@ partition_family(Conf) when is_list(Conf) ->
eval(partition_family(fun(_) -> from_term({a}) end,
from_term([[a]])),
from_term([{{a},[[a]]}])),
- {'EXIT', {badarg, _}} =
- (catch partition_family(fun(_) -> {a} end, from_term([[a]]))),
+ ?assertError(badarg, partition_family(fun(_) -> {a} end, from_term([[a]]))),
ok.
%% Not meant to be efficient...
--
2.51.0