expressions: Major work to improve error messages.
[pspp] / tests / data / calendar.at
1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
3 dnl
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
8 dnl
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 dnl GNU General Public License for more details.
13 dnl
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 dnl
17 AT_BANNER([calendar])
18
19 AT_SETUP([epoch])
20 AT_DATA([epoch.sps],
21   [SET MXERR 1000.
22 SET MXWARN 1000.
23
24 SET EPOCH 1900.
25 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
26 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
27 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
28 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
29 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
30 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
31 DEBUG EVALUATE/YRMODA(100,1,1).
32 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,1900).
33 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,1901).
34 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,1912).
35 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,1970).
36 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,1987).
37 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,1999).
38 DEBUG EVALUATE/DATE.DMY(1,1,100).
39
40 SET EPOCH 1901.
41 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
42 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
43 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
44 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
45 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
46 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
47 DEBUG EVALUATE/YRMODA(100,1,1).
48 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,2000).
49 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,1901).
50 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,1912).
51 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,1970).
52 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,1987).
53 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,1999).
54 DEBUG EVALUATE/DATE.DMY(1,1,100).
55
56 SET EPOCH 1911.
57 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
58 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
59 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
60 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
61 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
62 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
63 DEBUG EVALUATE/YRMODA(100,1,1).
64 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,2000).
65 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,2001).
66 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,1912).
67 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,1970).
68 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,1987).
69 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,1999).
70 DEBUG EVALUATE/DATE.DMY(1,1,100).
71
72 SET EPOCH 1912.
73 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
74 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
75 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
76 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
77 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
78 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
79 DEBUG EVALUATE/YRMODA(100,1,1).
80 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,2000).
81 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,2001).
82 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,1912).
83 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,1970).
84 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,1987).
85 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,1999).
86 DEBUG EVALUATE/DATE.DMY(1,1,100).
87
88 SET EPOCH 2012.
89 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
90 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
91 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
92 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
93 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
94 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
95 DEBUG EVALUATE/YRMODA(100,1,1).
96 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,2100).
97 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,2101).
98 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,2012).
99 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,2070).
100 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,2087).
101 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,2099).
102 DEBUG EVALUATE/DATE.DMY(1,1,100).
103 ])
104
105 AT_CHECK([pspp --testing-mode epoch.sps], [1], [dnl
106 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
107
108 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
109
110 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
111
112 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
113
114 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
115
116 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
117
118 epoch.sps:11.16-11.30: error: DEBUG EVALUATE: Invalid arguments to YRMODA
119 function.
120    11 | DEBUG EVALUATE/YRMODA(100,1,1).
121       |                ^~~~~~~~~~~~~~~
122
123 epoch.sps:11.23-11.25: note: DEBUG EVALUATE: Date 0100-1-1 is before the
124 earliest supported date 1582-10-15.
125    11 | DEBUG EVALUATE/YRMODA(100,1,1).
126       |                       ^~~
127
128 YRMODA(100,1,1) => sysmis
129
130 DATE.DMY(1,1,0) = DATE.DMY(1,1,1900) => true
131
132 DATE.DMY(1,1,1) = DATE.DMY(1,1,1901) => true
133
134 DATE.DMY(1,1,12) = DATE.DMY(1,1,1912) => true
135
136 DATE.DMY(1,1,70) = DATE.DMY(1,1,1970) => true
137
138 DATE.DMY(1,1,87) = DATE.DMY(1,1,1987) => true
139
140 DATE.DMY(1,1,99) = DATE.DMY(1,1,1999) => true
141
142 epoch.sps:18.16-18.32: error: DEBUG EVALUATE: Invalid arguments to DATE.DMY
143 function.
144    18 | DEBUG EVALUATE/DATE.DMY(1,1,100).
145       |                ^~~~~~~~~~~~~~~~~
146
147 epoch.sps:18.29-18.31: note: DEBUG EVALUATE: Date 0100-1-1 is before the
148 earliest supported date 1582-10-15.
149    18 | DEBUG EVALUATE/DATE.DMY(1,1,100).
150       |                             ^~~
151
152 DATE.DMY(1,1,100) => sysmis
153
154 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
155
156 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
157
158 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
159
160 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
161
162 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
163
164 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
165
166 epoch.sps:27.16-27.30: error: DEBUG EVALUATE: Invalid arguments to YRMODA
167 function.
168    27 | DEBUG EVALUATE/YRMODA(100,1,1).
169       |                ^~~~~~~~~~~~~~~
170
171 epoch.sps:27.23-27.25: note: DEBUG EVALUATE: Date 0100-1-1 is before the
172 earliest supported date 1582-10-15.
173    27 | DEBUG EVALUATE/YRMODA(100,1,1).
174       |                       ^~~
175
176 YRMODA(100,1,1) => sysmis
177
178 DATE.DMY(1,1,0) = DATE.DMY(1,1,2000) => true
179
180 DATE.DMY(1,1,1) = DATE.DMY(1,1,1901) => true
181
182 DATE.DMY(1,1,12) = DATE.DMY(1,1,1912) => true
183
184 DATE.DMY(1,1,70) = DATE.DMY(1,1,1970) => true
185
186 DATE.DMY(1,1,87) = DATE.DMY(1,1,1987) => true
187
188 DATE.DMY(1,1,99) = DATE.DMY(1,1,1999) => true
189
190 epoch.sps:34.16-34.32: error: DEBUG EVALUATE: Invalid arguments to DATE.DMY
191 function.
192    34 | DEBUG EVALUATE/DATE.DMY(1,1,100).
193       |                ^~~~~~~~~~~~~~~~~
194
195 epoch.sps:34.29-34.31: note: DEBUG EVALUATE: Date 0100-1-1 is before the
196 earliest supported date 1582-10-15.
197    34 | DEBUG EVALUATE/DATE.DMY(1,1,100).
198       |                             ^~~
199
200 DATE.DMY(1,1,100) => sysmis
201
202 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
203
204 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
205
206 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
207
208 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
209
210 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
211
212 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
213
214 epoch.sps:43.16-43.30: error: DEBUG EVALUATE: Invalid arguments to YRMODA
215 function.
216    43 | DEBUG EVALUATE/YRMODA(100,1,1).
217       |                ^~~~~~~~~~~~~~~
218
219 epoch.sps:43.23-43.25: note: DEBUG EVALUATE: Date 0100-1-1 is before the
220 earliest supported date 1582-10-15.
221    43 | DEBUG EVALUATE/YRMODA(100,1,1).
222       |                       ^~~
223
224 YRMODA(100,1,1) => sysmis
225
226 DATE.DMY(1,1,0) = DATE.DMY(1,1,2000) => true
227
228 DATE.DMY(1,1,1) = DATE.DMY(1,1,2001) => true
229
230 DATE.DMY(1,1,12) = DATE.DMY(1,1,1912) => true
231
232 DATE.DMY(1,1,70) = DATE.DMY(1,1,1970) => true
233
234 DATE.DMY(1,1,87) = DATE.DMY(1,1,1987) => true
235
236 DATE.DMY(1,1,99) = DATE.DMY(1,1,1999) => true
237
238 epoch.sps:50.16-50.32: error: DEBUG EVALUATE: Invalid arguments to DATE.DMY
239 function.
240    50 | DEBUG EVALUATE/DATE.DMY(1,1,100).
241       |                ^~~~~~~~~~~~~~~~~
242
243 epoch.sps:50.29-50.31: note: DEBUG EVALUATE: Date 0100-1-1 is before the
244 earliest supported date 1582-10-15.
245    50 | DEBUG EVALUATE/DATE.DMY(1,1,100).
246       |                             ^~~
247
248 DATE.DMY(1,1,100) => sysmis
249
250 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
251
252 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
253
254 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
255
256 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
257
258 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
259
260 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
261
262 epoch.sps:59.16-59.30: error: DEBUG EVALUATE: Invalid arguments to YRMODA
263 function.
264    59 | DEBUG EVALUATE/YRMODA(100,1,1).
265       |                ^~~~~~~~~~~~~~~
266
267 epoch.sps:59.23-59.25: note: DEBUG EVALUATE: Date 0100-1-1 is before the
268 earliest supported date 1582-10-15.
269    59 | DEBUG EVALUATE/YRMODA(100,1,1).
270       |                       ^~~
271
272 YRMODA(100,1,1) => sysmis
273
274 DATE.DMY(1,1,0) = DATE.DMY(1,1,2000) => true
275
276 DATE.DMY(1,1,1) = DATE.DMY(1,1,2001) => true
277
278 DATE.DMY(1,1,12) = DATE.DMY(1,1,1912) => true
279
280 DATE.DMY(1,1,70) = DATE.DMY(1,1,1970) => true
281
282 DATE.DMY(1,1,87) = DATE.DMY(1,1,1987) => true
283
284 DATE.DMY(1,1,99) = DATE.DMY(1,1,1999) => true
285
286 epoch.sps:66.16-66.32: error: DEBUG EVALUATE: Invalid arguments to DATE.DMY
287 function.
288    66 | DEBUG EVALUATE/DATE.DMY(1,1,100).
289       |                ^~~~~~~~~~~~~~~~~
290
291 epoch.sps:66.29-66.31: note: DEBUG EVALUATE: Date 0100-1-1 is before the
292 earliest supported date 1582-10-15.
293    66 | DEBUG EVALUATE/DATE.DMY(1,1,100).
294       |                             ^~~
295
296 DATE.DMY(1,1,100) => sysmis
297
298 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
299
300 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
301
302 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
303
304 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
305
306 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
307
308 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
309
310 epoch.sps:75.16-75.30: error: DEBUG EVALUATE: Invalid arguments to YRMODA
311 function.
312    75 | DEBUG EVALUATE/YRMODA(100,1,1).
313       |                ^~~~~~~~~~~~~~~
314
315 epoch.sps:75.23-75.25: note: DEBUG EVALUATE: Date 0100-1-1 is before the
316 earliest supported date 1582-10-15.
317    75 | DEBUG EVALUATE/YRMODA(100,1,1).
318       |                       ^~~
319
320 YRMODA(100,1,1) => sysmis
321
322 DATE.DMY(1,1,0) = DATE.DMY(1,1,2100) => true
323
324 DATE.DMY(1,1,1) = DATE.DMY(1,1,2101) => true
325
326 DATE.DMY(1,1,12) = DATE.DMY(1,1,2012) => true
327
328 DATE.DMY(1,1,70) = DATE.DMY(1,1,2070) => true
329
330 DATE.DMY(1,1,87) = DATE.DMY(1,1,2087) => true
331
332 DATE.DMY(1,1,99) = DATE.DMY(1,1,2099) => true
333
334 epoch.sps:82.16-82.32: error: DEBUG EVALUATE: Invalid arguments to DATE.DMY
335 function.
336    82 | DEBUG EVALUATE/DATE.DMY(1,1,100).
337       |                ^~~~~~~~~~~~~~~~~
338
339 epoch.sps:82.29-82.31: note: DEBUG EVALUATE: Date 0100-1-1 is before the
340 earliest supported date 1582-10-15.
341    82 | DEBUG EVALUATE/DATE.DMY(1,1,100).
342       |                             ^~~
343
344 DATE.DMY(1,1,100) => sysmis
345 ])
346 AT_CLEANUP