mirror of
https://github.com/sasjs/core.git
synced 2026-01-05 00:20:05 +00:00
140 lines
2.4 KiB
SAS
140 lines
2.4 KiB
SAS
/**
|
|
@file
|
|
@brief Testing mp_storediffs macro
|
|
|
|
<h4> SAS Macros </h4>
|
|
@li mp_assert.sas
|
|
@li mp_assertcolvals.sas
|
|
@li mp_assertdsobs.sas
|
|
@li mp_assertscope.sas
|
|
@li mp_stackdiffs.sas
|
|
@li mp_storediffs.sas
|
|
|
|
**/
|
|
|
|
/* first, make some data */
|
|
|
|
data work.orig work.deleted work.changed work.appended;
|
|
set sashelp.electric;
|
|
if _n_ le 10 then do;
|
|
output work.deleted;
|
|
end;
|
|
else if _n_ le 20 then do;
|
|
output work.orig;
|
|
age=99;
|
|
output work.changed;
|
|
end;
|
|
else if _n_ le 30 then do;
|
|
year=_n_;
|
|
output work.appended;
|
|
end;
|
|
else stop;
|
|
run;
|
|
|
|
%mp_storediffs(sashelp.electric,work.orig,CUSTOMER YEAR
|
|
,delds=work.deleted
|
|
,modds=work.changed
|
|
,appds=work.appended
|
|
,outds=work.final
|
|
,mdebug=1
|
|
)
|
|
|
|
%mp_assertscope(SNAPSHOT)
|
|
|
|
/**
|
|
* Deletions test - where record does not exist
|
|
*/
|
|
%mp_stackdiffs(work.orig
|
|
,work.final
|
|
,CUSTOMER YEAR
|
|
,mdebug=1
|
|
,errds=work.errds1
|
|
,outmod=work.mod1
|
|
,outadd=work.add1
|
|
,outdel=work.del1
|
|
)
|
|
%mp_assertdsobs(work.errds1,
|
|
desc=Delete1 - no errors,
|
|
test=EQUALS 0
|
|
)
|
|
%mp_assertdsobs(work.del1,
|
|
desc=Delete1 - records populated,
|
|
test=EQUALS 10
|
|
)
|
|
/**
|
|
* Deletions test - where record DOES exist
|
|
*/
|
|
data work.orig2;
|
|
set sashelp.electric;
|
|
if _n_ le 10;
|
|
run;
|
|
%mp_stackdiffs(work.orig2
|
|
,work.final
|
|
,CUSTOMER YEAR
|
|
,mdebug=1
|
|
,errds=work.errds2
|
|
,outmod=work.mod2
|
|
,outadd=work.add2
|
|
,outdel=work.del2
|
|
)
|
|
%mp_assertdsobs(work.errds2,
|
|
desc=Delete1 - has errors,
|
|
test=EQUALS 10
|
|
)
|
|
%mp_assertdsobs(work.del1,
|
|
desc=Delete1 - records not populated,
|
|
test=EQUALS 0
|
|
)
|
|
|
|
/**
|
|
* Additions test - where record does not exist
|
|
*/
|
|
data work.orig3;
|
|
set work.orig;
|
|
stop;
|
|
run;
|
|
%mp_stackdiffs(work.orig3
|
|
,work.final
|
|
,CUSTOMER YEAR
|
|
,mdebug=1
|
|
,errds=work.errds3
|
|
,outmod=work.mod3
|
|
,outadd=work.add3
|
|
,outdel=work.del3
|
|
)
|
|
%mp_assertdsobs(work.errds3,
|
|
desc=Add3 - no errors,
|
|
test=EQUALS 0
|
|
)
|
|
%mp_assertdsobs(work.add3,
|
|
desc=Add3 - records populated,
|
|
test=EQUALS 10
|
|
)
|
|
|
|
/**
|
|
* Additions test - where record does exist
|
|
*/
|
|
data work.orig4;
|
|
set work.orig;
|
|
if _n_>35 then stop;
|
|
run;
|
|
%mp_stackdiffs(work.orig4
|
|
,work.final
|
|
,CUSTOMER YEAR
|
|
,mdebug=1
|
|
,errds=work.errds4
|
|
,outmod=work.mod4
|
|
,outadd=work.add4
|
|
,outdel=work.del4
|
|
)
|
|
%mp_assertdsobs(work.errds4,
|
|
desc=Add4 - 5 errors,
|
|
test=EQUALS 5
|
|
)
|
|
%mp_assertdsobs(work.add4,
|
|
desc=Add4 - records populated,
|
|
test=EQUALS 5
|
|
)
|
|
|
|
|
|
%mp_assertscope(COMPARE,Desc=MacVar Scope Check) |