mirror of
https://github.com/sasjs/core.git
synced 2026-01-08 01:50:05 +00:00
feat: new mp_applyformats macro (and test), plus new addition to mp_validatecol (is_format)
This commit is contained in:
45
tests/crossplatform/mp_applyformats.test.sas
Normal file
45
tests/crossplatform/mp_applyformats.test.sas
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
@file
|
||||
@brief Testing mp_applyformats.sas macro
|
||||
|
||||
<h4> SAS Macros </h4>
|
||||
@li mf_getvarformat.sas
|
||||
@li mp_applyformats.sas
|
||||
@li mp_assert.sas
|
||||
@li mp_getcols.sas
|
||||
|
||||
**/
|
||||
|
||||
/**
|
||||
* Test 1 Base case
|
||||
*/
|
||||
|
||||
data work.example;
|
||||
set sashelp.prdsale;
|
||||
format _all_;
|
||||
run;
|
||||
%let origfmt=%mf_getvarformat(work.example,month);
|
||||
|
||||
%mp_getcols(sashelp.prdsale,outds=work.cols)
|
||||
|
||||
data work.cols2;
|
||||
set work.cols;
|
||||
lib='WORK';
|
||||
ds='EXAMPLE';
|
||||
var=name;
|
||||
fmt=format;
|
||||
keep lib ds var fmt;
|
||||
run;
|
||||
|
||||
%mp_applyformats(work.cols2)
|
||||
|
||||
%mp_assert(
|
||||
iftrue=("&orig_fmt"=""),
|
||||
desc=Check that formats were cleared,
|
||||
outds=work.test_results
|
||||
)
|
||||
%mp_assert(
|
||||
iftrue=("%mf_getvarformat(work.example,month)"="MONNAME3."),
|
||||
desc=Check that formats were applied,
|
||||
outds=work.test_results
|
||||
)
|
||||
@@ -59,4 +59,37 @@ run;
|
||||
desc=Test2 - ISNUM,
|
||||
test=EQUALS 4,
|
||||
outds=work.test_results
|
||||
)
|
||||
|
||||
/**
|
||||
* Test 3 - FORMAT
|
||||
*/
|
||||
data test3;
|
||||
infile datalines4 dsd;
|
||||
input;
|
||||
infile=_infile_;
|
||||
%mp_validatecol(infile,FORMAT,is_format)
|
||||
if is_format=1;
|
||||
datalines4;
|
||||
$.
|
||||
$format.
|
||||
$format12.2
|
||||
somenum.
|
||||
somenum12.4
|
||||
above are good
|
||||
the rest are bad
|
||||
%abort
|
||||
1&somethingverybad.
|
||||
&
|
||||
+-1
|
||||
.
|
||||
a.A
|
||||
$format12.1b
|
||||
$format12.1b1
|
||||
;;;;
|
||||
run;
|
||||
%mp_assertdsobs(work.test3,
|
||||
desc=Test3 - ISFORMAT,
|
||||
test=EQUALS 5,
|
||||
outds=work.test_results
|
||||
)
|
||||
Reference in New Issue
Block a user