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: 	 init_per_group/2,end_per_group/2, 
  	 t_size/1, t_tuple_size/1, t_element/1, t_setelement/1,
  	 t_insert_element/1, t_delete_element/1,
  	 t_list_to_tuple/1, t_tuple_to_list/1,
  	 t_make_tuple_2/1, t_make_tuple_3/1, t_append_element/1,
  	 build_and_match/1, tuple_with_case/1, tuple_in_guard/1]).
  -include_lib("test_server/include/test_server.hrl").
  
  
negative.code:     {'EXIT', {badarg, _}} = (catch list_to_tuple(id([a|b]))),
      {'EXIT', {badarg, _}} = (catch list_to_tuple(id([a|b]))),
  
      {'EXIT', {badarg,_}} = (catch list_to_tuple(lists:seq(1, 1 bsl 24))),
      ok.
  
  t_list_to_upper_boundry_tuple(Config) when is_list(Config) ->
      sys_mem_cond_run(2048,
  		    fun () ->
  			    %% test upper boundry, 16777215 elements
  			    MaxSize  = 1 bsl 24 - 1,
  			    MaxTuple = list_to_tuple(lists:seq(1, MaxSize)),
  			    MaxSize  = size(MaxTuple),
  			    ok
  		    end).
  
  %% Tests tuple_to_list/1.
  
  