Publicado el :
Prueba unitaria CREATION_INTERNE

Prueba unitaria de la macro MCF_LENGTH

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza con una primera inicialización de la macro `%mcf_length` con opciones específicas (`wrap=YES`, `insert_cmplib=YES`). Un `DATA STEP` se emplea luego para llamar a `%mcf_length` con una variedad de valores de entrada (valores faltantes estándar y especiales, números enteros de diversas magnitudes) y almacena los resultados en macro-variables dedicadas a través de la función `call symputx`. Estas macro-variables se utilizan posteriormente en una serie de llamadas a la macro `%mp_assert`, que actúa como un mecanismo de prueba unitaria, para confirmar que las longitudes calculadas por `%mcf_length` cumplen con las expectativas. El script también incluye verificaciones de la macro-variable del sistema `&syscc` antes y después de una segunda inicialización de `%mcf_length`, para asegurar la integridad del sistema y la ausencia de errores de compilación o ejecución.
Análisis de datos

Type : CREATION_INTERNE


El script no se basa en conjuntos de datos SAS externos o del sistema SASHELP. Opera únicamente con literales numéricos definidos directamente en el código y los resultados de macros SAS, que luego se almacenan en macro-variables internas. Se crea un conjunto de datos temporal 'test' por el `DATA STEP`, pero su contenido no se utiliza directamente para la validación.

1 Bloque de código
Llamada a macro (%mcf_length)
Explicación :
Este bloque realiza la primera inicialización o recompilación de la macro `%mcf_length`. Los parámetros `wrap=YES` e `insert_cmplib=YES` son opciones de configuración específicas de esta macro, probablemente relacionadas con la gestión de bibliotecas de macros o la integración del código generado.
¡Copiado!
1%mcf_length(wrap=YES, insert_cmplib=YES)
2 Bloque de código
DATA STEP Data
¡Copiado!
1DATA test;
2 call symputx('null',mcf_length(.));
3 call symputx('special',mcf_length(._));
4 call symputx('three',mcf_length(1));
5 call symputx('four',mcf_length(10000000));
6 call symputx('five',mcf_length(12345678));
7 call symputx('six',mcf_length(1234567890));
8 call symputx('seven',mcf_length(12345678901234));
9 call symputx('eight',mcf_length(12345678901234567));
10RUN;
3 Bloque de código
Llamadas a macro (%mp_assert)
¡Copiado!
1%mp_assert(
2 iftrue=(%str(&null)=%str(0)),
3 desc=Check IF NULL returns 0
4)
5%mp_assert(
6 iftrue=(%str(&special)=%str(3)),
7 desc=Check IF special missing ._ returns 3
8)
9%mp_assert(
10 iftrue=(%str(&three)=%str(3)),
11 desc=Check for LENGTH 3
12)
13%mp_assert(
14 iftrue=(%str(&four)=%str(4)),
15 desc=Check for LENGTH 4
16)
17%mp_assert(
18 iftrue=(%str(&five)=%str(5)),
19 desc=Check for LENGTH 5
20)
21%mp_assert(
22 iftrue=(%str(&six)=%str(6)),
23 desc=Check for LENGTH 6
24)
25%mp_assert(
26 iftrue=(%str(&seven)=%str(3)),
27 desc=Check for LENGTH 3
28)
29%mp_assert(
30 iftrue=(%str(&eight)=%str(8)),
31 desc=Check for LENGTH 8
32)
33%mp_assert(
34 iftrue=(&syscc=0),
35 desc=Check syscc=0 before re-initialisation
36)
4 Bloque de código
Llamada a macro (%mcf_length)
¡Copiado!
1%mcf_length(wrap=YES, insert_cmplib=YES)
5 Bloque de código
Llamada a macro (%mp_assert)
¡Copiado!
1%mp_assert(
2 iftrue=(&syscc=0),
3 desc=Check syscc=0 after re-initialisation
4)
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.