Publicado el :
Test, Macro CREATION_INTERNE

Test de la macro mp_chop

Este código también está disponible en: Deutsch English Français
En espera de validación
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.
¡Copiado!
1%let src="%sysfunc(pathname(work))/file.txt";
2%let str=Chop here!;
3%let out1="%sysfunc(pathname(work))/file1.txt";
4%let out2="%sysfunc(pathname(work))/file2.txt";
5%let out3="%sysfunc(pathname(work))/file3.txt";
6%let out4="%sysfunc(pathname(work))/file4.txt";
2 Bloque de código
DATA STEP Data
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!
1DATA _null_;
2 file &src;
3 put "startsection&str.endsection";
4RUN;
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.
¡Copiado!
1%mp_assertscope(SNAPSHOT)
2%mp_chop(&src, matchvar=str, keep=FIRST, outfile=&out1)
3%mp_chop(&src, matchvar=str, keep=LAST, outfile=&out2)
4%mp_chop(&src, matchvar=str, keep=FIRST, matchpoint=END, outfile=&out3)
5%mp_chop(&src, matchvar=str, keep=LAST, matchpoint=END, outfile=&out4)
6%mp_assertscope(COMPARE)
4 Bloque de código
DATA STEP
¡Copiado!
1DATA _null_;
2 INFILE &out1 lrecl=200;
3 INPUT;
4 call symputx('test1',_infile_);
5DATA _null_;
6 INFILE &out2 lrecl=200;
7 INPUT;
8 call symputx('test2',_infile_);
9DATA _null_;
10 INFILE &out3 lrecl=200;
11 INPUT;
12 call symputx('test3',_infile_);
13DATA _null_;
14 INFILE &out4 lrecl=200;
15 INPUT;
16 call symputx('test4',_infile_);
17RUN;
5 Bloque de código
Llamada a macro
¡Copiado!
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).