anchor.diff:  %% Use this function to avoid compile-time evaluation of an expression.
   id(I) -> I.
   
  +
  +sys_mem_cond_run(ReqSizeMB, TestFun) when is_integer(ReqSizeMB) ->
  +    case total_memory() of
  +	TotMem when is_integer(TotMem), TotMem >= ReqSizeMB ->
  +	    TestFun();
  +	TotMem when is_integer(TotMem) ->
  +	    {skipped, "Not enough memory ("++integer_to_list(TotMem)++" MB)"};
  +	undefined ->
  +	    {skipped, "Could not retrieve memory information"}
  +    end.
  +
  +
  +total_memory() ->
  +    %% Totat memory in MB.
  +    try
  +	MemoryData = memsup:get_system_memory_data(),
  +	case lists:keysearch(total_memory, 1, MemoryData) of
  +	    {value, {total_memory, TM}} ->
  +		TM div (1024*1024);
  +	    false ->
  +		{value, {system_total_memory, STM}} =
  +		    lists:keysearch(system_total_memory, 1, MemoryData),
  +		STM div (1024*1024)
  +	end
  +    catch
  +	_ : _ ->
  +	    undefined
  +    end.
  
positive.code:     {'EXIT', {badarg, _}} = (catch list_to_tuple(id([a|b]))),
      {'EXIT', {badarg, _}} = (catch list_to_tuple(id([a|b]))),
  
      % test upper boundry, 16777215 elements
      MaxSize  = 1 bsl 24 - 1,
      MaxTuple = list_to_tuple(lists:seq(1, MaxSize)),
      MaxSize  = size(MaxTuple),
  
      {'EXIT', {badarg,_}} = (catch list_to_tuple(lists:seq(1, 1 bsl 24))),
      ok.
  
  %% Tests tuple_to_list/1.
  
  
negative.code:     t_make_tuple1({a}),
      t_make_tuple1(erlang:make_tuple(400, [])),
  
      {'EXIT', {badarg,_}} = (catch erlang:make_tuple(1 bsl 24, a)),
  
      {'EXIT', {badarg,_}} = (catch erlang:make_tuple(-1, a)),
  