Publié le :
Macro CREATION_INTERNE

Test de la macro varsInsert

En attente de validation
La macro `%test_varsInsert` est conçue pour vérifier le comportement de la macro `%varsInsert`. Elle contient plusieurs scénarios de test couvrant divers cas d'utilisation pour l'insertion d'une valeur (`c`) à une position spécifique (`n`) dans une liste de variables (`vars`). Les tests incluent l'insertion au début (n=0), à la fin (n=grand, n=-1), au milieu d'une liste, ainsi que l'insertion dans une liste initialement vide. La macro utilise `%assertEqual` (supposée être une macro de test externe) pour comparer les résultats obtenus par `%varsInsert` avec les résultats attendus pour chaque scénario.
Analyse des données

Type : CREATION_INTERNE


Les données traitées par ce script sont des chaînes de caractères et des variables macro, créées et manipulées directement dans le code pour simuler des listes de variables. Il n'y a pas d'accès à des jeux de données SAS externes (comme SASHELP) ou à des fichiers physiques.

1 Bloc de code
MACRO Data
Explication :
Ce bloc définit la macro `%test_varsInsert` et l'appelle immédiatement. À l'intérieur de la macro, des variables locales sont déclarées. La macro effectue une série de tests pour la macro `%varsInsert` : elle définit une liste de variables (`vars`), une position d'insertion (`n`), et une valeur à insérer (`c`). Elle calcule ensuite le résultat attendu (`exp`) et compare le résultat de l'appel à `%varsInsert` (`r`) avec ce résultat attendu en utilisant une macro de comparaison (`%assertEqual`). Ces tests couvrent des scénarios variés comme l'insertion au début, au milieu, à la fin ou dans une chaîne vide. La macro `%createTempVar` est appelée pour gérer des variables temporaires, ce qui est une pratique courante dans les macros de test pour éviter les conflits de noms.
Copié !
1%macro test_varsInsert;
2 
3 %local vars exp n c;
4 %local tres;%let tres=%createTempVar;%local &tres;
5 
6 %let vars=%str(a b c);
7 %let n=2;
8 %let c=X;
9 %let exp=%str(a b X c);
10 %let r=%varsInsert(&vars,&n,&c);
11 %assertEqual(a=&exp,b=&r);
12 
13 %let vars=%str(a=1 b=-2 c=3);
14 %let n=3;
15 %let c=%str(d=100);
16 %let exp=%str(a=1 b=-2 c=3 d=100);
17 %let r=%varsInsert(&vars,&n,&c);
18 %assertEqual(a=&exp,b=&r);
19 
20 %let vars=%str(a b c);
21 %let n=4;
22 %let c=X;
23 %let exp=%str(a b c X);
24 %let r=%varsInsert(&vars,&n,&c);
25 %assertEqual(a=&exp,b=&r);
26 
27 %let vars=%str();
28 %let n=4;
29 %let c=X;
30 %let exp=%str(X);
31 %let r=%varsInsert(&vars,&n,&c);
32 %assertEqual(a=&exp,b=&r);
33 
34 %let vars=%str(a b c);
35 %let n=0;
36 %let c=X;
37 %let exp=%str(X a b c);
38 %let r=%varsInsert(&vars,&n,&c);
39 %assertEqual(a=&exp,b=&r);
40 
41 
42 %let vars=%str(a b c);
43 %let n=-2;
44 %let c=X;
45 %let exp=%str(a b X c);
46 %let r=%varsInsert(&vars,&n,&c);
47 %assertEqual(a=&exp,b=&r);
48 
49 %let vars=%str(a b c);
50 %let n=-1;
51 %let c=X;
52 %let exp=%str(a b c X);
53 %let r=%varsInsert(&vars,&n,&c);
54 %assertEqual(a=&exp,b=&r);
55 
56 %let vars=%str(a b c);
57 %let n=0;
58 %let c=X;
59 %let exp=%str(X a b c);
60 %let r=%varsInsert(&vars,&n,&c);
61 %assertEqual(a=&exp,b=&r);
62 
63
64
65%mend;
66 
67 
68%test_varsInsert;
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.