Macros for SAS Application Developers
https://github.com/sasjs/core
Loading...
Searching...
No Matches
mf_getvalue.test.sas
Go to the documentation of this file.
1/**
2 @file
3 @brief Testing mf_getvalue macro
4
5 <h4> SAS Macros </h4>
6 @li mf_getvalue.sas
7 @li mp_assert.sas
8 @li mp_assertscope.sas
9
10**/
11
12data work.test_data;
13 do i = 1 to 10;
14 output;
15 end;
16 stop;
17run;
18
19/* - Test 1 -
20 Get value from default first observation.
21 No filter.
22*/
23%mp_assertscope(SNAPSHOT)
24%let test_value=%mf_getvalue(work.test_data,i);
25%mp_assertscope(COMPARE,ignorelist=test_value)
26
27%mp_assert(
28 iftrue=(&test_value=1 and &syscc eq 0),
29 desc=Basic test fetching value from default first obs,
30 outds=work.test_results
31)
32
33/* - Test 2 -
34 Get value from 10th observation.
35 No filter.
36*/
37%let test_value=%mf_getvalue(work.test_data,i,fetchobs=10);
38%mp_assert(
39 iftrue=(&test_value=10 and &syscc eq 0),
40 desc=Test fetching value from specifically the 10th row,
41 outds=work.test_results
42)
43
44/* - Test 3 -
45 Get value from default first observation.
46 With filter.
47*/
48%let test_value=%mf_getvalue(work.test_data,i,filter=(i>4));
49%mp_assert(
50 iftrue=(&test_value=5 and &syscc eq 0),
51 desc=Test fetching value from default row of filtered data,
52 outds=work.test_results
53)
54
55/* - Test 4 -
56 Get value from specified observation.
57 With filter.
58*/
59%let test_value=%mf_getvalue(work.test_data,i,filter=(i>4),fetchobs=5);
60%mp_assert(
61 iftrue=(&test_value=9 and &syscc eq 0),
62 desc=Test fetching value from 5th row of filtered data,
63 outds=work.test_results
64)
65
66/* - Test 5 -
67 Get value from default observation.
68 Filter removes all rows. This simulates providing an empty dataset
69 or specifying an observation number beyond the set returned by the filter.
70*/
71%let test_value=%mf_getvalue(work.test_data,i,filter=(i>10));
72%mp_assert(
73 iftrue=(&test_value=%str() and &syscc eq 4),
74 desc=Test fetching value from 1st row of empty (filtered) data,
75 outds=work.test_results
76)
77
78%let syscc = 0; /* Reset w@rning To ensure confidence in next test */
79
80/* - Test 6 -
81 Get value from default observation.
82 Dataset does not exist.
83*/
84%let test_value=%mf_getvalue(work.test_data_x,i);
85%mp_assert(
86 iftrue=(&test_value=%str() and &syscc gt 0),
87 desc=Test fetching value from 1st row of non-existent data,
88 outds=work.test_results
89)
90
91%let syscc = 0; /* To reset expected error and allow test job to exit clean. */