SYSFILE INFO: Improve output formatting by using nested tables.
[pspp] / tests / language / dictionary / missing-values.at
1 AT_BANNER([MISSING VALUES])
2
3 AT_SETUP([MISSING VALUES valid cases])
4 AT_DATA([missing-values.sps], [dnl
5 DATA LIST NOTABLE/str1 1-5 (A) str2 6-8 (A) date1 9-19 (DATE) num1 20-25
6                   longstr 26-36 (A).
7
8 * Numeric missing values.
9 MISSING VALUES date1 num1 (1).
10 DISPLAY DICTIONARY date1 num1.
11 MISSING VALUES date1 num1 (1, 2).
12 DISPLAY DICTIONARY date1 num1.
13 MISSING VALUES date1 num1 (1, 2, 3).
14 DISPLAY DICTIONARY date1 num1.
15 MISSING VALUES date1 num1 (9999998, 9999984, 3).
16 DISPLAY DICTIONARY date1 num1.
17
18 * Numeric missing values using the first variable's format.
19 MISSING VALUES num1 date1 ('1').
20 DISPLAY DICTIONARY date1 num1.
21 MISSING VALUES num1 date1 ('1', '2').
22 DISPLAY DICTIONARY date1 num1.
23 MISSING VALUES num1 date1 ('1', '2', '3').
24 DISPLAY DICTIONARY date1 num1.
25 MISSING VALUES date1 num1 ('06-AUG-05').
26 DISPLAY DICTIONARY date1 num1.
27 MISSING VALUES date1 num1 ('06-AUG-05', '01-OCT-78').
28 DISPLAY DICTIONARY date1 num1.
29 MISSING VALUES date1 num1 ('06-AUG-05', '01-OCT-78', '14-FEB-81').
30 DISPLAY DICTIONARY date1 num1.
31
32 * Ranges of numeric missing values.
33 MISSING VALUES num1 (1 THRU 2).
34 DISPLAY DICTIONARY num1.
35 MISSING VALUES num1 (LO THRU 2).
36 DISPLAY DICTIONARY num1.
37 MISSING VALUES num1 (LOWEST THRU 2).
38 DISPLAY DICTIONARY num1.
39 MISSING VALUES num1 (1 THRU HI).
40 DISPLAY DICTIONARY num1.
41 MISSING VALUES num1 (1 THRU HIGHEST).
42 DISPLAY DICTIONARY num1.
43
44 * A range of numeric missing values, plus an individual value.
45 MISSING VALUES num1 (1 THRU 2, 3).
46 DISPLAY DICTIONARY num1.
47 MISSING VALUES num1 (LO THRU 2, 3).
48 DISPLAY DICTIONARY num1.
49 MISSING VALUES num1 (LOWEST THRU 2, 3).
50 DISPLAY DICTIONARY num1.
51 MISSING VALUES num1 (1 THRU HI, -1).
52 DISPLAY DICTIONARY num1.
53 MISSING VALUES num1 (1 THRU HIGHEST, -1).
54 DISPLAY DICTIONARY num1.
55
56 * String missing values.
57 MISSING VALUES str1 str2 longstr ('abc  ','def').
58 DISPLAY DICTIONARY str1 str2 longstr.
59
60 * May mix variable types when clearing missing values.
61 MISSING VALUES ALL ().
62 DISPLAY DICTIONARY
63 ])
64 AT_CHECK([pspp -o pspp.csv missing-values.sps])
65 AT_CHECK([sed -n '/^$/p; /^@<:@^"@:>@*"@<:@^"@:>@*$/N; s/^\(@<:@a-z0-9@:>@*\),".*Missing Values: \(.*\)",@<:@0-9@:>@*$/\1: \2/p; s/^\(@<:@a-z0-9@:>@*\),Format: @<:@A-Z0-9.@:>@*,@<:@0-9@:>@*$/\1: none/p' pspp.csv
66 ], [0], [dnl
67 date1: 1
68 num1: 1
69
70 date1: 1; 2
71 num1: 1; 2
72
73 date1: 1; 2; 3
74 num1: 1; 2; 3
75
76 date1: 9999998; 9999984; 3
77 num1: 9999998; 9999984; 3
78
79 date1: 1
80 num1: 1
81
82 date1: 1; 2
83 num1: 1; 2
84
85 date1: 1; 2; 3
86 num1: 1; 2; 3
87
88 date1: 13342665600
89 num1: 13342665600
90
91 date1: 13342665600; 12495427200
92 num1: 13342665600; 12495427200
93
94 date1: 13342665600; 12495427200; 12570336000
95 num1: 13342665600; 12495427200; 12570336000
96
97 num1: 1 THRU 2
98
99 num1: LOWEST THRU 2
100
101 num1: LOWEST THRU 2
102
103 num1: 1 THRU HIGHEST
104
105 num1: 1 THRU HIGHEST
106
107 num1: 1 THRU 2; 3
108
109 num1: LOWEST THRU 2; 3
110
111 num1: LOWEST THRU 2; 3
112
113 num1: 1 THRU HIGHEST; -1
114
115 num1: 1 THRU HIGHEST; -1
116
117 str1: ""abc  ""; ""def  ""
118 str2: ""abc""; ""def""
119 longstr: ""abc     ""; ""def     ""
120
121 str1: none
122 str2: none
123 date1: none
124 num1: none
125 longstr: none
126 ])
127 AT_CLEANUP
128
129 AT_SETUP([MISSING VALUES invalid cases])
130 AT_DATA([missing-values.sps], [dnl
131 DATA LIST NOTABLE/str1 1-5 (A) str2 6-8 (A) date1 9-19 (DATE) num1 20-25
132                   longstr 26-36 (A).
133
134 * Too long for str2.
135 MISSING VALUES str1 str2 longstr ('abcde').
136
137 * Long string missing value longer than 8 bytes.
138 MISSING VALUES longstr ('abcdefghijk').
139
140 * No string ranges.
141 MISSING VALUES str1 ('a' THRU 'z').
142
143 * Mixing string and numeric variables.
144 MISSING VALUES str1 num1 ('123').
145 ])
146 AT_CHECK([pspp -O format=csv missing-values.sps], [1], [dnl
147 missing-values.sps:5: error: MISSING VALUES: Missing values provided are too long to assign to variable of width 3.
148
149 missing-values.sps:8: error: MISSING VALUES: Truncating missing value to maximum acceptable length (8 bytes).
150
151 missing-values.sps:11.26-11.29: error: MISSING VALUES: Syntax error at `THRU': expecting string.
152
153 missing-values.sps:11: error: MISSING VALUES: THRU is not a variable name.
154
155 missing-values.sps:14: error: MISSING VALUES: Cannot mix numeric variables (e.g. num1) and string variables (e.g. str1) within a single list.
156 ])
157 AT_CLEANUP