Das Skript verwendet die Tabelle `sashelp.class`, eine Standard-Beispieltabelle, die mit SAS geliefert wird, als Datenquelle für das Makro `mf_getvarlist`. Es sind keine externen Daten erforderlich, und alle Testdaten werden generiert oder stammen aus SASHELP. Die Testergebnisse werden anschließend in der internen Tabelle `work.test_results` gespeichert.
1 Codeblock
Makroaufrufe
Erklärung : Dieser Codeblock führt mehrere Aufrufe des Makros `%mf_getvarlist` aus. Jeder Aufruf verwendet die Tabelle `sashelp.class` als Eingabe und variiert die Optionen für das Trennzeichen (`dlm`) und die Filterung nach Variablentyp (`typefilter`). Die Ergebnisse (Listen von Variablennamen) werden in Makrovariablen (`test1` bis `test5`) zur späteren Auswertung gespeichert.
Erklärung : Dieser `DATA STEP`-Block erstellt die Tabelle `work.test_results`, um die Testergebnisse zu protokollieren. Für jeden Testfall ruft er den Wert der entsprechenden Makrovariablen (die die vom `%mf_getvarlist`-Makro extrahierte Variablenliste enthält) über `symget()` ab. Anschließend vergleicht er diesen Wert mit einer vordefinierten Zeichenkette `result`, die das erwartete Ergebnis darstellt. Je nach diesem Vergleich wird ein Status 'PASS' oder 'FAIL' zugewiesen und detaillierte Kommentare aufgezeichnet. Die temporären Variablen `base` und `result` werden anschließend gelöscht.
Kopiert!
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;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. Diese Datei ist Teil von SASUnit, dem Unit-Test-Framework für SAS(R)-Programme. Informationen zum Copyright und den Nutzungsbedingungen unter der GNU Lesser General Public License finden Sie in der beigefügten Datei README.md oder unter https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.