30 %MACRO assertEquals (i_expected =      
 
   32                     ,i_desc     = Compare Values
 
   38    %IF &g_inTestcase EQ 1 %THEN %DO;
 
   41    %ELSE %IF &g_inTestcase NE 2 %THEN %DO;
 
   42       %PUT &g_error.(SASUNIT): assert must be called after initTestcase;
 
   47    %LET l_expected = &i_expected;
 
   51    %IF   %sysfunc(prxmatch(
"^[0-9]*.?[0-9]*$",&i_expected))=0 
 
   52       OR %sysfunc(prxmatch(
"^[0-9]*.?[0-9]*$",&i_actual))=0 %THEN %DO; 
 
   53       %LET l_result = %eval((
"&i_expected" NE 
"&i_actual")*2);
 
   56    %ELSE %IF %quote(&i_fuzz) NE %THEN %DO;
 
   57       %LET l_expected = %quote(&l_expected(+-&i_fuzz)); 
 
   58       %IF %sysevalf(%sysfunc(abs(%sysevalf(&i_expected - &i_actual))) <= &i_fuzz) 
 
   59          %THEN %LET l_result = 0;
 
   60       %ELSE %LET l_result = 2;
 
   64       %IF %quote(&i_expected) = %quote(&i_actual)
 
   65          %THEN %LET l_result = 0;
 
   66       %ELSE %LET l_result = 2;
 
   71       ,i_expected = &l_expected