15length name $8 sex $1 age height weight 8;
17input Name:$char. Sex :$char. Age Height Weight;
41libname permlib (work);
43%mp_coretable(LOCKTABLE,libds=permlib.locktable)
44%mp_coretable(FILTER_SUMMARY,libds=permlib.filtsum)
45%mp_coretable(FILTER_DETAIL,libds=permlib.filtdet)
46%mp_coretable(MAXKEYTABLE,libds=permlib.maxkey)
50 infile datalines4 dsd;
51 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
52 OPERATOR_NM:$12. RAW_VALUE:$4000.;
56AND,OR,2,Name,NOT IN,"('Jane','Alfred')"
57AND,OR,2,Weight,>=,77.7
58AND,OR,2,Weight,NE,77.7
59AND,AND,3,age,NOT IN,"(.a,.b,.)"
60AND,AND,3,age,NOT IN,"(.A)"
61AND,AND,4,Name,=,"'Jeremiah'"
65%mp_filterstore(libds=work.class,
67 filter_summary=permlib.filtsum,
68 filter_detail=permlib.filtdet,
69 lock_table=permlib.locktable,
70 maxkeytable=permlib.maxkey,
71 outresult=work.result,
75%mp_assert(iftrue=(&syscc=0),
76 desc=Ensure macro runs without errors,
77 outds=work.test_results
80%mp_assertdsobs(permlib.filtsum,
83 outds=work.test_results
87select max(filter_rk) into: test1 from work.result;
88%mp_assert(iftrue=(&test1=1),
89 desc=Ensure filter rk is correct,
90 outds=work.test_results
94%mp_filterstore(libds=work.class,
96 filter_summary=permlib.filtsum,
97 filter_detail=permlib.filtdet,
98 lock_table=permlib.locktable,
99 maxkeytable=permlib.maxkey,
100 outresult=work.result,
105%mp_assertdsobs(permlib.filtsum,
106 desc=Initial query - same obs,
108 outds=work.test_results
112select max(filter_rk) into: test2 from work.result;
113%mp_assert(iftrue=(&test2=1),
114 desc=Ensure filter rk is correct for second run,
115 outds=work.test_results