anchor.diff:  
   %%% Internal Functions
   
  -assertComplexWithin({ExpRe,ExpIm}, Tolerance, [{ActRe,ActIm}|_]) ->
  -    [
  -     ?_assert(erlang:abs(ExpRe - ActRe) =< Tolerance),
  -     ?_assert(erlang:abs(ExpIm - ActIm) =< Tolerance)
  -    ].
  -
  -assertWithin(Expected, Tolerance, [Actual|_]) ->
  -    ?assert(erlang:abs(Expected - Actual) =< Tolerance).
  +assertWithin(Decimals, {_,_}=Expected, Stack) ->
  +    assertWithin(Decimals, Expected, Stack, list);
  +assertWithin(Decimals, Expected, Stack) ->
  +    assertWithin(Decimals, Expected, Stack, single).
  +
  +assertWithin(Decimals, {ExpRe,ExpIm}, [{ActRe,ActIm}|_], list) ->
  +    Factor = math:pow(10,Decimals),
  +    [
  +     ?_assertEqual(round(ExpRe*Factor)/Factor, round(ActRe*Factor)/Factor),
  +     ?_assertEqual(round(ExpIm*Factor)/Factor, round(ActIm*Factor)/Factor)
  +    ];
  +assertWithin(Decimals, Expected, [Actual|_], list) ->
  +    Factor = math:pow(10,Decimals),
  +    [
  +     ?_assertEqual(round(Expected*Factor)/Factor, round(Actual*Factor)/Factor)
  +    ];
  +assertWithin(Decimals, Expected, [Actual|_], single) ->
  +    Factor = math:pow(10,Decimals),
  +    ?assertEqual(round(Expected*Factor)/Factor, round(Actual*Factor)/Factor).
   
   %%% Unit Tests
   
  
positive.code: 
  parses_a_string_containing_a_complex_number_test_() ->
      lists:map(fun({Input,Expected}) ->
                        assertComplexWithin(Expected, 0.000000001,  execute(Input, []))
                end,
                [ {"5,3", {5,3}},
                  {"-2.0e-3,5", {-0.002,5}},
  
negative.code: 
  % Constants
  knows_the_value_of_pi_test() ->
      assertWithin(9, 3.141592653589793, execute("pi",[])).
  
  knows_the_value_of_e_test() ->
      assertWithin(9, 2.718281828459045, execute("e",[])).
  
  knows_the_value_of_phi_test() ->
      assertWithin(9, 1.618033988749895, execute("phi",[])).
  
  knows_the_value_of_i_test() ->
      ?assertEqual([{0,1}],execute("i",[])).
  
  % Trigonometric
  calculates_sin_of_a_number_in_degrees_test() ->
      assertWithin(9, 0.5, execute("30 sin", [])).
  
  calculates_cos_of_a_number_in_degrees_test() ->
      assertWithin(9, 0.5, execute("60 cos",[])).
  
  calculates_tan_of_a_number_in_degrees_test() ->
      assertWithin(9, 1.0, execute("45 tan",[])).
  
  calculates_asin_of_a_number_in_degrees_test() ->
      assertWithin(9, 30.0, execute("0.5 asin",[])).
  
  calculates_acos_of_a_number_in_degrees_test() ->
      assertWithin(9, 60.0, execute("0.5 acos",[])).
  
  calculates_atan_of_a_number_in_degrees_test() ->
      assertWithin(9, 45.0, execute("1 atan",[])).
  
  % Hyperbolic Trigonometry
  calculates_sinh_of_a_number_test() ->
      assertWithin(9, 3.6268604079, execute("2 sinh", [])).
  
  calculates_cosh_of_a_number_test() ->
      assertWithin(9, 27.308232836, execute("4 cosh",[])).
  
  calculates_tanh_of_a_number_test() ->
      assertWithin(9, -0.462117157, execute("-0.5 tanh",[])).
  
  calculates_arsinh_of_a_number_test() ->
      assertWithin(9, 2.0, execute("3.6268604079 asinh",[])).
  
  calculates_arcosh_of_a_number_test() ->
      assertWithin(9, 4.0, execute("27.30823284 acosh",[])).
  
  calculates_artanh_of_a_number_test() ->
      assertWithin(9, -0.5, execute("-0.462117157 atanh",[])).
  
  % Powers and Logarithms
  calculates_the_square_root_of_a_number_test() ->
  