15length name $8 sex $1 age height weight 8;
17input Name:$char. Sex :$char. Age Height Weight;
43 infile datalines4 dsd;
44 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
45 OPERATOR_NM:$10. RAW_VALUE:$4000.;
49AND,OR,2,Name,NOT IN,
"('Jane','Alfred')"
50AND,OR,2,Weight,>=,77.7
51AND,OR,2,Weight,NE,77.7
54AND,AND,1,age,IN,
"(.a,.b,.)"
55AND,AND,1,age,IN,
"(.A)"
58AND,AND,1,AGE,BETWEEN,
"HEIGHT AND WEIGHT"
63%mp_assertscope(SNAPSHOT)
64%mp_filtercheck(work.inds,
66 outds=work.badrecords,
69%mp_assertscope(COMPARE)
72%mp_assertdsobs(work.badrecords,
73 desc=Valid filter query,
75 outds=work.test_results
80 infile datalines4 dsd;
81 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
82 OPERATOR_NM:$10. RAW_VALUE:$4000.;
86AND,OR,2,Name,NOT IN,"('Jane','Alfred')"
90%mp_filtercheck(work.inds,
92 outds=work.badrecords,
96%mp_assertdsobs(work.badrecords,
97 desc=Invalid column name,
99 outds=work.test_results
104 infile datalines4 dsd;
105 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
106 OPERATOR_NM:$10. RAW_VALUE:$4000.;
108AND,OR,2,Name,NOT IN,"(''''Jane','Alfred')"
112%mp_filtercheck(work.inds,
114 outds=work.badrecords,
118%mp_assertdsobs(work.badrecords,
119 desc=Invalid raw value,
121 outds=work.test_results
126 infile datalines4 dsd;
127 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
128 OPERATOR_NM:$10. RAW_VALUE:$4000.;
130AND,OR,2,age,IN,"(.,.a,X)"
134%mp_filtercheck(work.inds,
136 outds=work.badrecords,
140%mp_assertdsobs(work.badrecords,
141 desc=Invalid IN value,
143 outds=work.test_results
148 infile datalines4 dsd;
149 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
150 OPERATOR_NM:$10. RAW_VALUE:$4000.;
157%mp_filtercheck(work.inds,
159 outds=work.badrecords,
163%mp_assertdsobs(work.badrecords,
164 desc=Code injection - column name,
166 outds=work.test_results
171 infile datalines4 dsd;
172 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
173 OPERATOR_NM:$10. RAW_VALUE:$4000.;
175AND,AND,1,age,=,;;%abort
178%mp_filtercheck(work.inds,
180 outds=work.badrecords,
184%mp_assertdsobs(work.badrecords,
185 desc=Code injection - raw value abort,
187 outds=work.test_results
192 infile datalines4 dsd;
193 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
194 OPERATOR_NM:$10. RAW_VALUE:8.;
200%mp_filtercheck(work.inds,
202 outds=work.badrecords,
205%mp_assert(iftrue=(&syscc=42),
206 desc=Throw error if RAW_VALUE is incorrect,
207 outds=work.test_results
214 infile datalines4 dsd;
215 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
216 OPERATOR_NM:$10. RAW_VALUE:$4000.;
218AND,AND,1,AGE,NOT IN,"(height, age)"
222%mp_filtercheck(work.inds,
224 outds=work.badrecords,
228%mp_assertdsobs(work.badrecords,
229 desc=Invalid IN syntax,
231 outds=work.test_results