Publicado el :
Prueba CREATION_INTERNE

Pruebas unitarias de la macro mp_makedata

Este código también está disponible en: Deutsch English Français
En espera de validación
Este programa ejecuta una serie de pruebas unitarias para asegurar que la macro `%mp_makedata` funciona correctamente. Crea tablas con restricciones específicas (claves primarias, valores no nulos) a través de `PROC SQL`, puebla estas tablas usando la macro, y luego usa `%mp_assert` y pasos `DATA _NULL_` para verificar el número de observaciones, la integridad de los datos (longitud de las cadenas) y la gestión de errores.
Análisis de datos

Type : CREATION_INTERNE


Los datos son generados dinámicamente por la macro `%mp_makedata` basándose en la estructura de las tablas definidas en el script (work.example, work.example2).

1 Bloque de código
PROC SQL Data
Explicación :
Definición de la estructura de la tabla de prueba `work.example` con restricciones de integridad, seguida de la generación de 500 observaciones de prueba a través de `%mp_makedata`.
¡Copiado!
1PROC SQL;
2create TABLE work.example(
3 TX_FROM float FORMAT=datetime19.,
4 DD_TYPE char(16),
5 DD_SOURCE char(2048),
6 DD_SHORTDESC char(256),
7 constraint pk primary key(tx_from, dd_type,dd_source),
8 constraint nnn not null(DD_SHORTDESC)
9);
10%mp_makedata(work.example,obs=500)
2 Bloque de código
MACRO CALL
Explicación :
Verificación a través de `%mp_assert` de que el número de observaciones en la tabla creada es exactamente 500, utilizando la macro de utilidad `%mf_nobs`.
¡Copiado!
1%mp_assert(
2 iftrue=("%mf_nobs(work.example)"="500"),
3 desc=Check that 500 rows were created,
4 outds=work.test_results
5)
3 Bloque de código
DATA STEP
Explicación :
Paso Data técnico para recuperar la longitud de la variable `dd_source` de la primera observación y almacenarla en la macro-variable `lenvar` para una aserción posterior.
¡Copiado!
1DATA _null_;
2 SET work.example;
3 call symputx('lenvar',LENGTH(dd_source));
4 stop;
5RUN;
4 Bloque de código
MACRO CALL
Explicación :
Aserción que verifica que la variable `dd_source` ha sido poblada en toda su longitud declarada (2048 caracteres).
¡Copiado!
1%mp_assert(
2 iftrue=("&lenvar"="2048"),
3 desc=Check that entire LENGTH of variable is populated,
4 outds=work.test_results
5)
5 Bloque de código
PROC SQL Data
¡Copiado!
1PROC SQL;
2create TABLE work.example2(
3 TX_FROM float FORMAT=datetime19.,
4 DD_TYPE char(16),
5 DD_SOURCE char(2048),
6 DD_SHORTDESC char(256),
7 some_num num
8);
9%mp_makedata(work.example2)
6 Bloque de código
MACRO CALL
¡Copiado!
1%mp_assert(
2 iftrue=(&syscc=0),
3 desc=Ensure tables without keys still generate,
4 outds=work.test_results
5)
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.