Publicado el :
Macro MIXTO

Prueba de la macro mp_ds2cards y mp_assert

Este código también está disponible en: Deutsch English Français
En espera de validación
El script implementa dos escenarios de prueba distintos. El primer escenario utiliza el conjunto de datos `sashelp.cars` para ilustrar la conversión al formato `CARDS` y la recreación del conjunto de datos, seguido de una verificación de la integridad de los datos utilizando `PROC COMPARE`. El segundo escenario, por su parte, crea un conjunto de datos binario internamente y aplica el mismo proceso de conversión, recreación y comparación, garantizando la exactitud de los datos binarios. Cada prueba se complementa con una aserción utilizando la macro `mp_assert` para validar formalmente los resultados de las comparaciones de conjuntos de datos.
Análisis de datos

Type : MIXTO


El script utiliza el conjunto de datos integrado `sashelp.cars` y genera un conjunto de datos `work.binarybase` internamente a través de un paso DATA. No hay dependencia de datos externos no gestionados por el script o no procedentes de bibliotecas SAS estándar.

1 Bloque de código
Macro mp_ds2cards y PROC COMPARE
Explicación :
Este bloque ilustra la conversión del conjunto de datos `sashelp.cars` en un archivo `CARDS` temporal (`cars.sas`) utilizando la macro `mp_ds2cards`. El conjunto de datos se recrea posteriormente con el nombre `work.test` mediante una instrucción `%inc`. Se utiliza un `PROC COMPARE` para verificar la identidad de los conjuntos de datos originales y recreados, y la macro `mp_assert` valida el resultado de esta comparación.
¡Copiado!
1%mp_ds2cards(base_ds=sashelp.cars
2 , tgt_ds=work.test
3 , cards_file= "%sysfunc(pathname(work))/cars.sas"
4 , showlog=NO
5)
6%inc "%sysfunc(pathname(work))/cars.sas"/source2 lrecl=32767;
7 
8PROC COMPARE base=sashelp.cars compare=work.test;
9QUIT;
10 
11%mp_assert(
12 iftrue=(&sysinfo=1),
13 desc=sashelp.cars is identical except for ds label,
14 outds=work.test_results
15)
2 Bloque de código
DATA STEP, Macro mp_ds2cards y PROC COMPARE Data
Explicación :
Este bloque comienza con la creación de un conjunto de datos `work.binarybase` que contiene una secuencia de datos binarios. Luego se llama a la macro `mp_ds2cards` para convertir `work.binarybase` en un archivo `CARDS` (`c2.sas`), que luego se utiliza para recrear el conjunto de datos bajo `work.binarycompare`. Finalmente, `PROC COMPARE` verifica la identidad perfecta entre el conjunto de datos original y su versión recreada, con `mp_assert` confirmando la ausencia de diferencias (código de retorno `SYSINFO=0`).
¡Copiado!
1DATA work.binarybase;
2 FORMAT bin $hex500. z $hex.;
3 DO x=1 to 250;
4 z=byte(x);
5 bin=trim(bin)!!z;
6 OUTPUT;
7 END;
8RUN;
9 
10%mp_ds2cards(base_ds=work.binarybase
11 , showlog=YES
12 , cards_file="%sysfunc(pathname(work))/c2.sas"
13 , tgt_ds=work.binarycompare
14 , append=
15)
16 
17%inc "%sysfunc(pathname(work))/c2.sas"/source2 lrecl=32767;
18 
19PROC COMPARE base=work.binarybase compare=work.binarycompare;
20RUN;
21 
22%mp_assert(
23 iftrue=(&sysinfo=0),
24 desc=work.binarybase dataset is identical,
25 outds=work.test_results
26)
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 forma parte de SASUnit, el marco de prueba unitaria para programas SAS(R). Para obtener información sobre derechos de autor y condiciones de uso bajo la Licencia Pública General Menor de GNU, consulte el archivo README.md incluido o https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.