Le script crée une structure de répertoires et un jeu de données SAS temporaires à des fins de test. Aucune donnée externe ou provenant de la bibliothèque `SASHELP` n'est utilisée directement pour le processus de test. Les données de test sont générées sur place.
1 Bloc de code
MACRO mf_mkdir / DATA STEP Data
Explication : Ce bloc de code initialise une variable macro `root` pointant vers un nouveau sous-répertoire 'top' dans le répertoire de travail temporaire (`work`). Il utilise ensuite la macro `%mf_mkdir` à plusieurs reprises pour créer une hiérarchie de répertoires imbriqués. Une libname `test` est définie pour pointer vers le répertoire le plus profond. Enfin, un jeu de données `ds1` est créé dans cette bibliothèque, servant de donnée de test.
Copié !
%let root=%sysfunc(pathname(work))/top;
%mf_mkdir(&root)
%mf_mkdir(&root/a)
%mf_mkdir(&root/b)
%mf_mkdir(&root/a/d)
%mf_mkdir(&root/a/e)
%mf_mkdir(&root/a/e/f)
libname test '&root/a/e/f';
data test.ds1;
x=1;
run;
1
%let root=%sysfunc(pathname(work))/top;
2
%mf_mkdir(&root)
3
%mf_mkdir(&root/a)
4
%mf_mkdir(&root/b)
5
%mf_mkdir(&root/a/d)
6
%mf_mkdir(&root/a/e)
7
%mf_mkdir(&root/a/e/f)
8
LIBNAME test '&root/a/e/f';
9
DATA test.ds1;
10
x=1;
11
RUN;
2 Bloc de code
MACRO mp_dirlist / MACRO mp_assert
Explication : Ce bloc teste la macro `%mp_dirlist` en lui demandant de lister tous les niveaux de répertoires sous `&root` (avec `maxdepth=MAX`). La macro `%mf_nobs` est utilisée pour compter les observations dans le jeu de données de sortie `work.myTable`. `%mp_assert` vérifie que le nombre d'observations est égal à 6, ce qui correspond au nombre total de répertoires créés.
Explication : Ce test appelle `%mp_dirlist` avec `maxdepth=2`, ce qui signifie que seuls les répertoires des deux premiers niveaux de profondeur (à partir de `&root`) doivent être listés. `%mp_assert` est utilisé pour confirmer que le jeu de données `work.myTable2` contient 5 observations, validant ainsi la limitation de profondeur.
Explication : Ce bloc de code teste `%mp_dirlist` avec `maxdepth=0`, indiquant qu'uniquement le répertoire spécifié (`&root`) lui-même doit être retourné. `%mp_assert` vérifie que le jeu de données `work.myTable3` contient 2 observations, ce qui est le comportement attendu pour cette profondeur de liste (généralement le répertoire lui-même plus une entrée pour la métadonnée ou le parent).
Explication : Ce test valide le comportement de `%mp_dirlist` lorsqu'il est appliqué à un répertoire vide (`&root/b`). La macro `%mp_assert` est utilisée pour vérifier que le jeu de données de sortie `work.myTable4` ne contient aucune observation, comme attendu pour un répertoire sans sous-répertoires ni fichiers listables.
Explication : Le dernier bloc de code teste `%mp_dirlist` avec un chemin de répertoire qui n'existe pas (`&root/notexisting`). `%mp_assert` est utilisé pour confirmer que le jeu de données de sortie `work.myTable5` est vide, ce qui indique que la macro gère correctement les chemins invalides sans générer d'erreur et en retournant un résultat vide.
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 GNU Lesser, voir le fichier README.md inclus 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.