Le script commence par définir des macro-variables pour les chemins de fichiers temporaires et la chaîne de correspondance. Il crée ensuite un fichier texte temporaire (`file.txt`) dans la librairie WORK avec un contenu prédéfini. La macro `%mp_chop` est appelée quatre fois, chaque appel testant une combinaison spécifique de paramètres pour découper le fichier d'entrée et enregistrer les résultats dans des fichiers de sortie distincts. Les macros `%mp_assertscope` sont utilisées pour la gestion du contexte de test. Après l'exécution de `%mp_chop`, le script lit le contenu de chaque fichier de sortie dans des macro-variables et utilise la macro `%mp_assert` (faisant partie du framework SASUnit) pour valider que les résultats de la découpe correspondent aux attentes pour chaque scénario de test.
Analyse des données
Type : CREATION_INTERNE
Les données d'entrée (`file.txt`) sont entièrement créées et gérées au sein du script lui-même, dans la librairie temporaire WORK, via une étape DATA _NULL_. Les fichiers de sortie produits par %mp_chop sont également temporaires et leurs contenus sont lus de manière interne pour la vérification des tests.
1 Bloc de code
Définition de macro-variables
Explication : Ce bloc initialise des macro-variables essentielles au script, définissant le nom du fichier d'entrée temporaire, la chaîne de caractères à rechercher, et les noms des quatre fichiers de sortie qui contiendront les résultats de la macro %mp_chop.
Explication : Crée un fichier texte temporaire (`file.txt`) dans la librairie WORK. Ce fichier sert de jeu de données d'entrée pour tester la macro %mp_chop, avec un contenu simple pour vérifier les opérations de découpe.
Copié !
data _null_;
file &src;
put "startsection&str.endsection";
run;
1
DATA _null_;
2
file &src;
3
put "startsection&str.endsection";
4
RUN;
3 Bloc de code
Appel de macro Data
Explication : Ce bloc exécute la macro %mp_chop quatre fois, testant différentes combinaisons de paramètres (conservation de la 'FIRST' ou 'LAST' partie, et point de correspondance 'START' ou 'END'). Chaque appel écrit le résultat dans un fichier temporaire distinct. `%mp_assertscope` est utilisé pour gérer l'environnement de test, probablement pour sauvegarder et restaurer l'état des macro-variables.
Explication : Cette série d'étapes DATA _NULL_ lit le contenu de chacun des quatre fichiers de sortie générés par %mp_chop et stocke la première ligne de chaque fichier dans des macro-variables dédiées (`test1` à `test4`). Ces macro-variables seront utilisées pour la vérification des résultats.
Copié !
data _null_;
infile &out1 lrecl=200;
input;
call symputx('test1',_infile_);
data _null_;
infile &out2 lrecl=200;
input;
call symputx('test2',_infile_);
data _null_;
infile &out3 lrecl=200;
input;
call symputx('test3',_infile_);
data _null_;
infile &out4 lrecl=200;
input;
call symputx('test4',_infile_);
run;
1
DATA _null_;
2
INFILE &out1 lrecl=200;
3
INPUT;
4
call symputx('test1',_infile_);
5
DATA _null_;
6
INFILE &out2 lrecl=200;
7
INPUT;
8
call symputx('test2',_infile_);
9
DATA _null_;
10
INFILE &out3 lrecl=200;
11
INPUT;
12
call symputx('test3',_infile_);
13
DATA _null_;
14
INFILE &out4 lrecl=200;
15
INPUT;
16
call symputx('test4',_infile_);
17
RUN;
5 Bloc de code
Appel de macro
Explication : Ce bloc utilise la macro `%mp_assert` pour effectuer quatre assertions distinctes. Chaque assertion vérifie si le contenu d'une macro-variable (issues des fichiers de sortie de %mp_chop) correspond à la chaîne de caractères attendue. Les descriptions (`desc`) et le jeu de données de sortie pour les résultats des tests (`outds=work.test_results`) sont spécifiés pour chaque assertion, documentant les différents scénarios de test.
Copié !
%mp_assert(
iftrue=("&test1" = "startsection"),
desc=Checking keep FIRST matchpoint START
outds=work.test_results
)
%mp_assert(
iftrue=("&test2" = "Chop here!endsection"),
desc=Checking keep LAST matchpoint START
outds=work.test_results
)
%mp_assert(
iftrue=("&test3" = "startsectionChop here!"),
desc=Checking keep FIRST matchpoint END
outds=work.test_results
)
%mp_assert(
iftrue=("&test4" = "endsection"),
desc=Checking keep LAST matchpoint END
outds=work.test_results
)
1
%mp_assert(
2
iftrue=("&test1" = "startsection"),
3
desc=Checking keep FIRST matchpoint START
4
outds=work.test_results
5
)
6
%mp_assert(
7
iftrue=("&test2" = "Chop here!endsection"),
8
desc=Checking keep LAST matchpoint START
9
outds=work.test_results
10
)
11
%mp_assert(
12
iftrue=("&test3" = "startsectionChop here!"),
13
desc=Checking keep FIRST matchpoint END
14
outds=work.test_results
15
)
16
%mp_assert(
17
iftrue=("&test4" = "endsection"),
18
desc=Checking keep LAST matchpoint END
19
outds=work.test_results
20
)
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 : Le script fait référence et utilise des macros du framework SASUnit. Le copyright de SASUnit est: 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).
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.