Le script utilise la table `sashelp.class`, qui est une table d'exemple standard fournie avec SAS, comme source de données pour la macro `mf_getvarlist`. Aucune donnée externe n'est requise et toutes les données de test sont générées ou proviennent de SASHELP. Les résultats des tests sont ensuite stockés dans la table interne `work.test_results`.
1 Bloc de code
Appels de macro
Explication : Ce bloc de code effectue plusieurs appels à la macro `%mf_getvarlist`. Chaque appel utilise la table `sashelp.class` comme entrée et varie les options pour le délimiteur (`dlm`) et le filtrage par type de variable (`typefilter`). Les résultats (listes de noms de variables) sont stockés dans des variables macro (`test1` à `test5`) pour une évaluation ultérieure.
Explication : Ce bloc `DATA STEP` crée la table `work.test_results` pour consigner les résultats des tests. Pour chaque cas de test, il récupère la valeur de la variable macro correspondante (contenant la liste des variables extraites par `%mf_getvarlist`) via `symget()`. Il compare ensuite cette valeur à une chaîne de caractères `result` prédéfinie qui représente le résultat attendu. Un statut 'PASS' ou 'FAIL' est attribué en fonction de cette comparaison, et des commentaires détaillés sont enregistrés. Les variables temporaires `base` et `result` sont ensuite supprimées.
Copié !
data work.test_results;
length test_description $256 test_result $4 test_comments base result $256;
test_description="Basic test";
base=symget('test1');
result='Name Sex Age Height Weight';
if base=result then test_result='PASS';
else test_result='FAIL';
test_comments="Comparing "!!trim(base)!!' vs '!!trim(result);
output;
test_description="DLM test";
base=symget('test2');
result='NameXSexXAgeXHeightXWeight';
if base=result then test_result='PASS';
else test_result='FAIL';
test_comments="Comparing "!!trim(base)!!' vs '!!trim(result);
output;
test_description="DLM + quote test";
base=symget('test3');
result='"Name","Sex","Age","Height","Weight"';
if base=result then test_result='PASS';
else test_result='FAIL';
test_comments="Comparing "!!trim(base)!!' vs '!!trim(result);
output;
test_description="Numeric Filter";
base=symget('test4');
result='Age Height Weight';
if base=result then test_result='PASS';
else test_result='FAIL';
test_comments="Comparing "!!trim(base)!!' vs '!!trim(result);
output;
test_description="Char Filter";
base=symget('test5');
result='Name Sex';
if base=result then test_result='PASS';
else test_result='FAIL';
test_comments="Comparing "!!trim(base)!!' vs '!!trim(result);
output;
drop base result;
run;
1
DATA work.test_results;
2
LENGTH test_description $256 test_result $4 test_comments base RESULT $256;
3
test_description="Basic test";
4
base=symget('test1');
5
RESULT='Name Sex Age Height Weight';
6
IF base=RESULTTHEN test_result='PASS';
7
ELSE test_result='FAIL';
8
test_comments="Comparing "!!trim(base)!!' vs '!!trim(RESULT);
9
OUTPUT;
10
11
test_description="DLM test";
12
base=symget('test2');
13
RESULT='NameXSexXAgeXHeightXWeight';
14
IF base=RESULTTHEN test_result='PASS';
15
ELSE test_result='FAIL';
16
test_comments="Comparing "!!trim(base)!!' vs '!!trim(RESULT);
17
OUTPUT;
18
19
test_description="DLM + quote test";
20
base=symget('test3');
21
RESULT='"Name","Sex","Age","Height","Weight"';
22
IF base=RESULTTHEN test_result='PASS';
23
ELSE test_result='FAIL';
24
test_comments="Comparing "!!trim(base)!!' vs '!!trim(RESULT);
25
OUTPUT;
26
27
test_description="Numeric Filter";
28
base=symget('test4');
29
RESULT='Age Height Weight';
30
IF base=RESULTTHEN test_result='PASS';
31
ELSE test_result='FAIL';
32
test_comments="Comparing "!!trim(base)!!' vs '!!trim(RESULT);
33
OUTPUT;
34
35
test_description="Char Filter";
36
base=symget('test5');
37
RESULT='Name Sex';
38
IF base=RESULTTHEN test_result='PASS';
39
ELSE test_result='FAIL';
40
test_comments="Comparing "!!trim(base)!!' vs '!!trim(RESULT);
41
OUTPUT;
42
43
drop base RESULT;
44
RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. Ce fichier fait partie de SASUnit, le framework de test unitaire pour les programmes SAS(R). Pour les informations de copyright et les conditions d'utilisation sous la licence publique générale limitée GNU, voir le fichier inclus README.md ou https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.