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.
%mp_assert(
iftrue=(%str(&null)=%str(0)),
desc=Check if NULL returns 0
)
%mp_assert(
iftrue=(%str(&special)=%str(3)),
desc=Check if special missing ._ returns 3
)
%mp_assert(
iftrue=(%str(&three)=%str(3)),
desc=Check for length 3
)
%mp_assert(
iftrue=(%str(&four)=%str(4)),
desc=Check for length 4
)
%mp_assert(
iftrue=(%str(&five)=%str(5)),
desc=Check for length 5
)
%mp_assert(
iftrue=(%str(&six)=%str(6)),
desc=Check for length 6
)
%mp_assert(
iftrue=(%str(&seven)=%str(3)),
desc=Check for length 3
)
%mp_assert(
iftrue=(%str(&eight)=%str(8)),
desc=Check for length 8
)
%mp_assert(
iftrue=(&syscc=0),
desc=Check syscc=0 before re-initialisation
)
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 LENGTH3
12
)
13
%mp_assert(
14
iftrue=(%str(&four)=%str(4)),
15
desc=Check for LENGTH4
16
)
17
%mp_assert(
18
iftrue=(%str(&five)=%str(5)),
19
desc=Check for LENGTH5
20
)
21
%mp_assert(
22
iftrue=(%str(&six)=%str(6)),
23
desc=Check for LENGTH6
24
)
25
%mp_assert(
26
iftrue=(%str(&seven)=%str(3)),
27
desc=Check for LENGTH3
28
)
29
%mp_assert(
30
iftrue=(%str(&eight)=%str(8)),
31
desc=Check for LENGTH8
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!
%mcf_length(wrap=YES, insert_cmplib=YES)
1
%mcf_length(wrap=YES, insert_cmplib=YES)
5 Bloque de código
Llamada a macro (%mp_assert)
¡Copiado!
%mp_assert(
iftrue=(&syscc=0),
desc=Check syscc=0 after re-initialisation
)
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.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.