El script comienza definiendo macro-variables para las rutas de archivos temporales y la cadena de coincidencia. Luego, crea un archivo de texto temporal (`file.txt`) en la librería WORK con un contenido predefinido. La macro `%mp_chop` se llama cuatro veces, cada llamada prueba una combinación específica de parámetros para dividir el archivo de entrada y guardar los resultados en archivos de salida distintos. Las macros `%mp_assertscope` se utilizan para la gestión del contexto de prueba. Después de la ejecución de `%mp_chop`, el script lee el contenido de cada archivo de salida en macro-variables y utiliza la macro `%mp_assert` (parte del framework SASUnit) para validar que los resultados de la división coincidan con las expectativas para cada escenario de prueba.
Análisis de datos
Type : CREATION_INTERNE
Los datos de entrada (`file.txt`) se crean y gestionan completamente dentro del propio script, en la librería temporal WORK, a través de un paso DATA _NULL_. Los archivos de salida producidos por %mp_chop también son temporales y sus contenidos se leen internamente para la verificación de las pruebas.
1 Bloque de código
Definición de macro-variables
Explicación : Este bloque inicializa macro-variables esenciales para el script, definiendo el nombre del archivo de entrada temporal, la cadena de caracteres a buscar y los nombres de los cuatro archivos de salida que contendrán los resultados de la macro %mp_chop.
Explicación : Crea un archivo de texto temporal (`file.txt`) en la librería WORK. Este archivo sirve como conjunto de datos de entrada para probar la macro %mp_chop, con un contenido simple para verificar las operaciones de división.
¡Copiado!
data _null_;
file &src;
put "startsection&str.endsection";
run;
1
DATA _null_;
2
file &src;
3
put "startsection&str.endsection";
4
RUN;
3 Bloque de código
Llamada a macro Data
Explicación : Este bloque ejecuta la macro %mp_chop cuatro veces, probando diferentes combinaciones de parámetros (conservación de la 'FIRST' o 'LAST' parte, y punto de coincidencia 'START' o 'END'). Cada llamada escribe el resultado en un archivo temporal distinto. `%mp_assertscope` se utiliza para gestionar el entorno de prueba, probablemente para guardar y restaurar el estado de las macro-variables.
data _null_;
infile &out1 lrecl=200;
input;
call symputx('test1',_infile_);
data _null_;
infile &out2 lrecl=200;
input;
call symputx('test2',_infile_);
data _null_;
infile &out3 lrecl=200;
input;
call symputx('test3',_infile_);
data _null_;
infile &out4 lrecl=200;
input;
call symputx('test4',_infile_);
run;
1
DATA _null_;
2
INFILE &out1 lrecl=200;
3
INPUT;
4
call symputx('test1',_infile_);
5
DATA _null_;
6
INFILE &out2 lrecl=200;
7
INPUT;
8
call symputx('test2',_infile_);
9
DATA _null_;
10
INFILE &out3 lrecl=200;
11
INPUT;
12
call symputx('test3',_infile_);
13
DATA _null_;
14
INFILE &out4 lrecl=200;
15
INPUT;
16
call symputx('test4',_infile_);
17
RUN;
5 Bloque de código
Llamada a macro
¡Copiado!
%mp_assert(
iftrue=("&test1" = "startsection"),
desc=Checking keep FIRST matchpoint START
outds=work.test_results
)
%mp_assert(
iftrue=("&test2" = "Chop here!endsection"),
desc=Checking keep LAST matchpoint START
outds=work.test_results
)
%mp_assert(
iftrue=("&test3" = "startsectionChop here!"),
desc=Checking keep FIRST matchpoint END
outds=work.test_results
)
%mp_assert(
iftrue=("&test4" = "endsection"),
desc=Checking keep LAST matchpoint END
outds=work.test_results
)
1
%mp_assert(
2
iftrue=("&test1" = "startsection"),
3
desc=Checking keep FIRST matchpoint START
4
outds=work.test_results
5
)
6
%mp_assert(
7
iftrue=("&test2" = "Chop here!endsection"),
8
desc=Checking keep LAST matchpoint START
9
outds=work.test_results
10
)
11
%mp_assert(
12
iftrue=("&test3" = "startsectionChop here!"),
13
desc=Checking keep FIRST matchpoint END
14
outds=work.test_results
15
)
16
%mp_assert(
17
iftrue=("&test4" = "endsection"),
18
desc=Checking keep LAST matchpoint END
19
outds=work.test_results
20
)
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 : El script hace referencia y utiliza macros del framework SASUnit. El copyright de SASUnit es: Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. Este archivo es parte de SASUnit, el framework de prueba unitaria para los programas SAS(R).
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.