Attention : Este código requiere privilegios de administrador.
El script comienza creando dos directorios temporales (`&sasjswork/path1` y `&sasjswork/path2`) utilizando la macro `mf_mkdir`, y luego los asocia con `libname` (path1, path2). A continuación, define el mismo formato `whichpath` en estas dos librerías, pero con valores de salida distintos ('path1' y 'path2' respectivamente). Se prueban dos escenarios: el primero donde `path1` tiene prioridad en `FMTSEARCH`, y el segundo donde `path2` tiene prioridad. En cada escenario, se utiliza un paso `DATA _NULL_` para aplicar el formato al valor 0 y almacenar el resultado en una macro-variable (`test1` o `test2`). Se llama a la macro `mp_assert` para verificar que se ha aplicado el formato correcto (el de la librería prioritaria). La macro `mp_getformats` se ejecuta a continuación para extraer los detalles del formato `WHICHPATH` en conjuntos de datos de salida (`detail1` o `detail2`), y los resultados (especialmente la etiqueta asociada a 'OTHER') se verifican de nuevo con `mp_assert` para asegurar que la información detallada corresponde a la versión del formato encontrada.
Análisis de datos
Type : CREATION_INTERNE
Los datos principales tratados por este script (los formatos SAS nombrados `whichpath`) son creados y definidos directamente en el script a través de `PROC FORMAT`. No se utiliza ningún dato externo o proveniente de librerías SAS estándar como entrada para el proceso de prueba de los formatos. Se crean conjuntos de datos temporales mediante las macros `mp_getformats` (`sum`, `detail1`, `detail2`) y `mp_assert` (`work.test_results`) para almacenar los resultados de las pruebas y la información detallada de los formatos.
1 Bloque de código
Appel Macro
Explicación : Estas líneas llaman a la macro `mf_mkdir` para crear dos directorios temporales: `path1` y `path2` dentro de la ubicación definida por la macro-variable `&sasjswork`. Estos directorios servirán como librerías para almacenar los formatos SAS.
PROC FORMAT library=path1;
value whichpath 0 = 'path1' other='big fat problem if not path1';
PROC FORMAT library=path2;
value whichpath 0 = 'path2' other='big fat problem if not path2';
RUN;
1
PROC FORMAT library=path1;
2
value whichpath 0 = 'path1' other='big fat problem if not path1';
3
PROC FORMAT library=path2;
4
value whichpath 0 = 'path2' other='big fat problem if not path2';
5
RUN;
4 Bloque de código
Options / DATA STEP / Appel Macro
¡Copiado!
options insert=(fmtsearch=(path1 path2));
data _null_;
test=0;
call symputx('test1',put(test,whichpath.));
run;
%mp_assert(
iftrue=("&test1"="path1"),
desc=Check correct format is applied,
outds=work.test_results
)
%mp_getformats(fmtlist=WHICHPATH,outsummary=sum,outdetail=detail1)
%let tst1=0;
data _null_;
set detail1;
if fmtname='WHICHPATH' and start='**OTHER**' then call symputx('tst1',label);
putlog (_all_)(=);
run;
%mp_assert(
iftrue=("&tst1"="big fat problem if not path1"),
desc=Check correct detail results are applied,
outds=work.test_results
)
IF fmtname='WHICHPATH' and start='**OTHER**'THEN call symputx('tst1',label);
16
putlog (_all_)(=);
17
RUN;
18
%mp_assert(
19
iftrue=("&tst1"="big fat problem if not path1"),
20
desc=Check correct detail results are applied,
21
outds=work.test_results
22
)
5 Bloque de código
Options / DATA STEP / Appel Macro
¡Copiado!
options insert=(fmtsearch=(path2 path1));
data _null_;
test=0;
call symputx('test2',put(test,whichpath.));
run;
%mp_assert(
iftrue=("&test2"="path2"),
desc=Check correct format is applied,
outds=work.test_results
)
%mp_getformats(fmtlist=WHICHPATH,outsummary=sum,outdetail=detail2)
%let tst2=0;
data _null_;
set detail2;
if fmtname='WHICHPATH' and start='**OTHER**' then call symputx('tst2',label);
putlog (_all_)(=);
run;
%mp_assert(
iftrue=("&tst2"="big fat problem if not path2"),
desc=Check correct detail results are applied,
outds=work.test_results
)
IF fmtname='WHICHPATH' and start='**OTHER**'THEN call symputx('tst2',label);
16
putlog (_all_)(=);
17
RUN;
18
%mp_assert(
19
iftrue=("&tst2"="big fat problem if not path2"),
20
desc=Check correct detail results are applied,
21
outds=work.test_results
22
)
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de Este archivo es parte de SASUnit, el framework de pruebas unitarias para programas SAS(R). Para información de derechos de autor y términos de uso bajo la GNU Lesser General Public License, consulte el archivo incluido README.md o https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.