Make the ADT tests runnable on all OTP releases
Kostis Sagonas
8 years ago
24 | 24 | |
25 | 25 | -module(proper_tests). |
26 | 26 | |
27 | -include("compile_flags.hrl"). | |
27 | 28 | -include("proper.hrl"). |
28 | 29 | |
29 | 30 | -include_lib("eunit/include/eunit.hrl"). |
1030 | 1031 | ?FORALL(_,?SIZED(Size,integer(Size,Size)),false), |
1031 | 1032 | [{start_size,12}])]. |
1032 | 1033 | |
1034 | -ifdef(NO_MODULES_IN_OPAQUES). | |
1035 | -define(SET, set). | |
1036 | -define(DICT, dict). | |
1037 | -else. | |
1038 | -define(SET, sets:set). | |
1039 | -define(DICT, dict:dict). | |
1040 | -endif. | |
1041 | ||
1033 | 1042 | adts_test_() -> |
1034 | [{timeout, 20, % for Kostis' old laptop | |
1035 | ?_passes(?FORALL({X,S},{integer(),set()}, | |
1036 | sets:is_element(X,sets:add_element(X,S))), [20])}, | |
1043 | [?_passes(?FORALL({X,S},{integer(),?SET()}, | |
1044 | sets:is_element(X,sets:add_element(X,S))), [20]), | |
1037 | 1045 | ?_passes(?FORALL({X,Y,D}, |
1038 | {integer(),float(),dict(integer(),float())}, | |
1046 | {integer(),float(),?DICT(integer(),float())}, | |
1039 | 1047 | dict:fetch(X,dict:store(X,Y,eval(D))) =:= Y), [30]), |
1040 | 1048 | ?_fails(?FORALL({X,D}, |
1041 | {boolean(),dict(boolean(),integer())}, | |
1049 | {boolean(),?DICT(boolean(),integer())}, | |
1042 | 1050 | dict:erase(X, dict:store(X,42,D)) =:= D))]. |
1043 | 1051 | |
1044 | 1052 | parameter_test_() -> |