Publicado el :
Pruebas CREATION_INTERNE

Pruebas de validación de columnas (mp_validatecol)

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script SAS© ejecuta una serie de pruebas para evaluar la funcionalidad de la macro `%mp_validatecol`. Para cada caso de prueba (validación de nombres de librería/dataset, de números, de formatos SAS© y de enteros), se crea un conjunto de datos temporal utilizando datos en línea (`datalines4`). Luego, se llama a la macro `%mp_validatecol` para filtrar los datos válidos según el tipo especificado. La macro `%mp_assertdsobs` se utiliza después de cada bloque de prueba para verificar que el número de observaciones resultantes coincida con las expectativas, consolidando los resultados en el conjunto de datos `work.test_results`.
Análisis de datos

Type : CREATION_INTERNE


Todos los datos utilizados para las pruebas se definen directamente en el script a través de bloques `datalines4` dentro de `DATA STEP`.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque `DATA STEP` crea el conjunto de datos `test1`. Lee cadenas de caracteres de `datalines4`, las asigna a la variable `libds`, y luego llama a la macro `%mp_validatecol` con el tipo `LIBDS` para validar si `libds` es un nombre de librería/conjunto de datos SAS válido. Solo se conservan las observaciones donde `is_libds` es 1 (válido), filtrando las entradas no conformes.
¡Copiado!
1DATA test1;
2 INFILE datalines4 dsd;
3 INPUT;
4 libds=_infile_;
5 %mp_validatecol(libds,LIBDS,is_libds)
6 IF is_libds=1;
7datalines4;
8some.LIBNAME
9!lib.blah
10%abort
11definite.ok
12not.ok!
13nineletrs._
14;;;;
15RUN;
2 Bloque de código
Macro (%mp_assertdsobs)
Explicación :
Esta llamada de macro utiliza `%mp_assertdsobs` para verificar que el conjunto de datos `work.test1` contiene exactamente 2 observaciones después de la validación `LIBDS`, confirmando el comportamiento esperado. El resultado de esta aserción se almacena en el conjunto de datos `work.test_results`.
¡Copiado!
1%mp_assertdsobs(work.test1,
2 desc=Testing LIBDS,
3 test=EQUALS 2,
4 outds=work.test_results
5)
3 Bloque de código
DATA STEP Data
¡Copiado!
1DATA test2;
2 INFILE datalines4 dsd;
3 INPUT;
4 INFILE=_infile_;
5 %mp_validatecol(INFILE,ISNUM,is_numeric)
6 IF is_numeric=1;
7datalines4;
81
90001
101e6
11-44
12above are good
13the rest are bad
14%abort
151&somethingverybad.
16&
17+-1
18;;;;
19RUN;
4 Bloque de código
Macro (%mp_assertdsobs)
¡Copiado!
1%mp_assertdsobs(work.test2,
2 desc=Test2 - ISNUM,
3 test=EQUALS 4,
4 outds=work.test_results
5)
5 Bloque de código
DATA STEP Data
¡Copiado!
1DATA test3;
2 INFILE datalines4 dsd;
3 INPUT;
4 INFILE=_infile_;
5 %mp_validatecol(INFILE,FORMAT,is_format)
6 IF is_format=1;
7datalines4;
8$.
9$FORMAT.
10$format12.2
11somenum.
12somenum12.4
13above are good
14the rest are bad
15%abort
161&somethingverybad.
17&
18+-1
19.
20a.A
21$format12.1b
22$format12.1b1
23;;;;
24RUN;
6 Bloque de código
Macro (%mp_assertdsobs)
¡Copiado!
1%mp_assertdsobs(work.test3,
2 desc=Test3 - ISFORMAT,
3 test=EQUALS 5,
4 outds=work.test_results
5)
7 Bloque de código
DATA STEP Data
¡Copiado!
1DATA test4;
2 INFILE datalines4 dsd;
3 INPUT;
4 INFILE=_infile_;
5 %mp_validatecol(INFILE,ISINT,is_integer)
6 IF is_integer=1;
7datalines4;
81
91234
10-134
11-1.0
121.0
130
14above are good
15the rest are bad
160.1
171.1
18-0.001
19%abort
201&somethingverybad.
21&
22+-1
23.
24a.A
25$format12.1b
26$format12.1b1
27;;;;
28RUN;
8 Bloque de código
Macro (%mp_assertdsobs)
¡Copiado!
1%mp_assertdsobs(work.test4,
2 desc=Test4 - ISFORMAT,
3 test=EQUALS 6,
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.
Información de copyright : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de This file is part of SASUnit, the Unit testing framework for SAS(R) programs. For copyright information and terms of usage under the GNU Lesser General Public License see included file README.md or https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.