?>Array ( [lang] => fr [id] => 176 )
Scénario de test & Cas d'usage
Aucune donnée initiale n'est requise, le test se concentre sur la gestion des tables de fonctions.
| 1 | /* Pas de données nécessaires pour ce scénario */ |
| 1 | PROC CAS; |
| 2 | fcmpact.addRoutines / |
| 3 | routineCode = { |
| 4 | 'function normalize_str(s$) $; return(upcase(compbl(s))); endsub;', |
| 5 | 'function is_positive(n); return(n > 0); endsub;' |
| 6 | }, |
| 7 | package = 'util_lib_v1', |
| 8 | funcTable = {name='lib_utilitaires', caslib='CASUSER', replace=true}, |
| 9 | saveTable = true; |
| 10 | QUIT; |
| 1 | PROC CAS; |
| 2 | fcmpact.addRoutines / |
| 3 | routineCode = { |
| 4 | 'function safe_divide(numerator, denominator); |
| 5 | if (denominator = 0) then return(.); |
| 6 | else return(numerator / denominator); |
| 7 | endsub;' |
| 8 | }, |
| 9 | package = 'util_lib_v1', |
| 10 | funcTable = {name='lib_utilitaires', caslib='CASUSER'}, |
| 11 | appendTable = true, |
| 12 | saveTable = true; /* On sauvegarde à nouveau la table enrichie */ |
| 13 | QUIT; |
| 1 | PROC CAS; |
| 2 | datastep.runCode / |
| 3 | code = 'data CASUSER.VERIF_LIB; |
| 4 | str_test = normalize_str(" test string "); |
| 5 | pos_test = is_positive(-5); |
| 6 | div_test = safe_divide(10, 0); |
| 7 | output; |
| 8 | run;'; |
| 9 | QUIT; |
L'action de l'étape 2 s'exécute avec succès, en ajoutant la nouvelle fonction à la table `lib_utilitaires` sans supprimer les anciennes. La table `VERIF_LIB` est créée et contient une ligne avec les résultats des trois fonctions : `str_test`='TEST STRING', `pos_test`=0 (faux), et `div_test`= . (valeur manquante), prouvant que l'ancienne et la nouvelle fonction coexistent et fonctionnent.