00001
00023
00024
00025
00026 %MACRO assertEquals (
00027 i_expected =
00028 ,i_actual =
00029 ,i_desc =
00030 ,i_fuzz =
00031 );
00032
00033 %GLOBAL g_inTestcase;
00034 %IF &g_inTestcase EQ 1 %THEN %DO;
00035 %endTestcall;
00036 %END;
00037 %ELSE %IF &g_inTestcase NE 2 %THEN %DO;
00038 %PUT &g_error: assert has to be called after initTestcase;
00039 %RETURN;
00040 %END;
00041
00042 %LOCAL l_expected;
00043 %LET l_expected = &i_expected;
00044 %LOCAL l_result;
00045
00046
00047 %IF %sysfunc(prxmatch("^[0-9]*.?[0-9]*$",&i_expected))=0
00048 OR %sysfunc(prxmatch("^[0-9]*.?[0-9]*$",&i_actual))=0 %THEN %DO;
00049 %LET l_result = %eval("&i_expected" NE "&i_actual");
00050 %END;
00051
00052 %ELSE %IF %quote(&i_fuzz) NE %THEN %DO;
00053 %LET l_expected = %quote(&l_expected(+-&i_fuzz));
00054 %IF %sysevalf(%sysfunc(abs(%sysevalf(&i_expected - &i_actual))) <= &i_fuzz)
00055 %THEN %LET l_result = 0;
00056 %ELSE %LET l_result = 1;
00057 %END;
00058
00059 %ELSE %DO;
00060 %IF %quote(&i_expected) = %quote(&i_actual)
00061 %THEN %LET l_result = 0;
00062 %ELSE %LET l_result = 1;
00063 %END;
00064
00065 %_sasunit_asserts(
00066 i_type = assertEquals
00067 ,i_expected = &l_expected
00068 ,i_actual = &i_actual
00069 ,i_desc = &i_desc
00070 ,i_result = &l_result
00071 )
00072 %MEND assertEquals;