23data work.orig work.deleted work.changed work.appended;
26 call symputx(
'delname',name);
27 output work.orig work.deleted;
29 else if _n_=2 then
do;
31 call symputx(
'modname',name);
32 call symputx(
'modval',age);
42%mp_storediffs(libby.class,work.orig,NAME WEIGHT
53 desc=Checking preparation
case,
54 outds=work.test_results
59delete from libby.class where name in (
"&delname",
"&modname");
60proc append base=libby.class data=work.appended;
61proc append base=libby.class data=work.changed;
65%mp_assertscope(SNAPSHOT)
66%mp_stripdiffs(libby.class
69 ,outds=work.mp_stripdiffs
72%mp_ds2md(work.mp_stripdiffs)
73%mp_assertscope(COMPARE)
77 desc=Checking the failure condition,
78 outds=work.test_results
85 set work.mp_stripdiffs;
86 if upcase(_____DELETE__THIS__RECORD_____)='NO' and name=
"&delname"
87 then call symputx('delpass',1);
88 if name=
"&modname" and age=&modval then call symputx('modpass',1);
89 if upcase(_____DELETE__THIS__RECORD_____)='YES' and name=
"Newbie"
90 then call symputx('addpass',1);
95 desc=Ensuring deleted record is back in the dataset,
96 outds=work.test_results
100 desc=Ensuring modified record now has old value,
101 outds=work.test_results
105 desc=Ensuring added record is now marked for deletion,
106 outds=work.test_results