Publicado el :
Macro CREACION_INTERNA

Prueba de la macro mf_getvarcount

Este código también está disponible en: Deutsch English Français
En espera de validación
Este programa genera datos de prueba locales que contienen una mezcla de variables numéricas y de caracteres. Luego ejecuta una serie de aserciones (a través de la macro %mp_assert) para validar que la macro %mf_getvarcount cuenta correctamente las variables, globalmente y por tipo (filtro numérico o de carácter).
Análisis de datos

Type : CREACION_INTERNA


Las tablas de prueba (work.all, work.nums, work.chars) son generadas por un Data Step al inicio del script.

1 Bloque de código
DATA STEP Data
Explicación :
Creación de las tablas de prueba en la biblioteca WORK con estructuras de variables definidas (mixtas, solo numéricas, solo de caracteres).
¡Copiado!
1DATA work.all work.nums(keep=num1 num2) work.chars(keep=char1 char2);
2 LENGTH num1 num2 8 char1 char2 char3 $4;
3 call missing (of _all_);
4 OUTPUT;
5RUN;
2 Bloque de código
MACRO
Explicación :
Secuencia de pruebas unitarias. Utiliza %mp_assertscope para verificar la limpieza del entorno de macros y %mp_assert para validar los resultados de la función %mf_getvarcount según diferentes criterios de filtrado.
¡Copiado!
1%mp_assertscope(SNAPSHOT)
2%put scope check:%mf_getvarcount(work.all);
3%mp_assertscope(COMPARE)
4 
5%mp_assert(
6 iftrue=(%mf_getvarcount(work.all)=5),
7 desc=%str(Checking for mixed vars),
8 outds=work.test_results
9)
10 
11%mp_assert(
12 iftrue=(%mf_getvarcount(work.all,typefilter=C)=3),
13 desc=%str(Checking for char in mixed vars),
14 outds=work.test_results
15)
16/* ... suite des assertions ... */
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.