lexer: New functions for parsing real numbers in specified ranges.
[pspp] / tests / language / data-io / dataset.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([DATASET commands])
18
19 AT_SETUP([DATASET COPY])
20 AT_DATA([dataset.pspp], [dnl
21 DATASET NAME initial.
22 DATA LIST NOTABLE /x 1.
23 COMPUTE x = x + 1.
24 DATASET COPY clone.
25 BEGIN DATA.
26 1
27 2
28 3
29 4
30 5
31 END DATA.
32
33 NEW FILE.
34 DATA LIST NOTABLE /y 1.
35 BEGIN DATA.
36 6
37 7
38 8
39 END DATA.
40 LIST.
41 DATASET DISPLAY.
42
43 DATASET ACTIVATE clone.
44 DATASET DISPLAY.
45 LIST.
46
47 DATASET ACTIVATE initial.
48 DATASET DISPLAY.
49 LIST.
50
51 COMPUTE z=y.
52 DATASET COPY clone.
53
54 DATASET ACTIVATE clone.
55 LIST.
56 DATASET COPY clone.
57 DATASET DISPLAY.
58
59 DATASET CLOSE initial.
60 DATASET DISPLAY.
61 ])
62 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
63 Table: Data List
64 y
65 6
66 7
67 8
68
69 Table: Datasets
70 clone
71 initial (active dataset)
72
73 Table: Datasets
74 clone (active dataset)
75 initial
76
77 Table: Data List
78 x
79 2
80 3
81 4
82 5
83 6
84
85 Table: Datasets
86 clone
87 initial (active dataset)
88
89 Table: Data List
90 y
91 6
92 7
93 8
94
95 Table: Data List
96 y,z
97 6,6.00
98 7,7.00
99 8,8.00
100
101 Table: Datasets
102 unnamed dataset (active dataset)
103 initial
104
105 Table: Datasets
106 unnamed dataset (active dataset)
107 ])
108 AT_CLEANUP
109
110 AT_SETUP([DATASET DECLARE])
111 AT_DATA([dataset.pspp], [dnl
112 DATASET DECLARE second.
113 DATASET DISPLAY.
114 DATA LIST NOTABLE/x 1.
115 BEGIN DATA.
116 1
117 END DATA.
118 LIST.
119 DATASET ACTIVATE second.
120 DATASET DISPLAY.
121 LIST.
122 ])
123 AT_CHECK([pspp -O format=csv dataset.pspp], [1], [dnl
124 Table: Datasets
125 unnamed dataset (active dataset)
126 second
127
128 Table: Data List
129 x
130 1
131
132 Table: Datasets
133 second (active dataset)
134
135 dataset.pspp:10: error: LIST: LIST is allowed only after the active dataset has been defined.
136 ])
137 AT_CLEANUP
138
139 AT_SETUP([DATASET NAME deletes duplicate name])
140 AT_DATA([dataset.pspp], [dnl
141 DATASET NAME a.
142 DATASET DECLARE b.
143 DATASET DECLARE c.
144 DATASET DISPLAY.
145
146 DATASET NAME b.
147 DATASET NAME c.
148 DATASET DISPLAY.
149 ])
150 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
151 Table: Datasets
152 a (active dataset)
153 b
154 c
155
156 Table: Datasets
157 c (active dataset)
158 ])
159 AT_CLEANUP
160
161 AT_SETUP([DATASET ACTIVATE deletes unnamed dataset])
162 AT_DATA([dataset.pspp], [dnl
163 DATASET DECLARE x.
164 DATASET DISPLAY.
165
166 DATASET ACTIVATE x.
167 DATASET DISPLAY.
168 ])
169 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
170 Table: Datasets
171 unnamed dataset (active dataset)
172 x
173
174 Table: Datasets
175 x (active dataset)
176 ])
177 AT_CLEANUP
178
179 AT_SETUP([DATASET ACTIVATE executes pending transformations])
180 AT_DATA([dataset.pspp], [dnl
181 DATASET NAME one.
182 DATASET DECLARE another.
183 DATASET DISPLAY.
184
185 DATA LIST NOTABLE /x 1.
186 PRINT/x.
187 DATASET ACTIVATE another.
188 BEGIN DATA.
189 1
190 2
191 3
192 4
193 5
194 END DATA.
195
196 LIST.
197
198 DATASET ACTIVATE one.
199 LIST.
200 ])
201 AT_CHECK([pspp -O format=csv dataset.pspp], [1], [dnl
202 Table: Datasets
203 another
204 one (active dataset)
205
206 1 @&t@
207
208 2 @&t@
209
210 3 @&t@
211
212 4 @&t@
213
214 5 @&t@
215
216 dataset.pspp:16: error: LIST: LIST is allowed only after the active dataset has been defined.
217
218 Table: Data List
219 x
220 1
221 2
222 3
223 4
224 5
225 ])
226 AT_CLEANUP
227
228 AT_SETUP([DATASET CLOSE])
229 AT_DATA([dataset.pspp], [dnl
230 DATASET DISPLAY
231 DATASET CLOSE *.
232 DATASET DISPLAY.
233
234 DATASET NAME this.
235 DATASET DISPLAY.
236 DATASET CLOSE this.
237 DATASET DISPLAY.
238
239 DATASET NAME this.
240 DATASET DISPLAY.
241 DATASET CLOSE *.
242 DATASET DISPLAY.
243
244 DATASET DECLARE that.
245 DATASET DECLARE theother.
246 DATASET DECLARE yetanother.
247 DATASET DISPLAY.
248 DATASET CLOSE ALL.
249 DATASET DISPLAY.
250
251 DATASET NAME this.
252 DATASET DECLARE that.
253 DATASET DECLARE theother.
254 DATASET DECLARE yetanother.
255 DATASET DISPLAY.
256 DATASET CLOSE ALL.
257 DATASET DISPLAY.
258 ])
259 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
260 Table: Datasets
261 unnamed dataset (active dataset)
262
263 Table: Datasets
264 unnamed dataset (active dataset)
265
266 Table: Datasets
267 this (active dataset)
268
269 Table: Datasets
270 unnamed dataset (active dataset)
271
272 Table: Datasets
273 this (active dataset)
274
275 Table: Datasets
276 unnamed dataset (active dataset)
277
278 Table: Datasets
279 unnamed dataset (active dataset)
280 that
281 theother
282 yetanother
283
284 Table: Datasets
285 unnamed dataset (active dataset)
286
287 Table: Datasets
288 that
289 theother
290 this (active dataset)
291 yetanother
292
293 Table: Datasets
294 unnamed dataset (active dataset)
295 ])
296 AT_CLEANUP
297
298
299
300 dnl The bug for which the following test checks, is apparent only
301 dnl when compiled with -fsanitize=address or run under valgrind
302 AT_SETUP([DATASET heap overflow])
303 AT_DATA([dataset.pspp], [dnl
304 DATASET DECLARE initial.
305 DATA LIST /x 1.
306
307 DATASET COPY subsq.
308
309 DATA LIST /y 2-4.
310 BEGIN DATA.
311 7
312 END DATA.
313
314 DATASET ACTIVATE subsq.
315
316 LIST.
317 ])
318
319 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
320 Table: Reading 1 record from INLINE.
321 Variable,Record,Columns,Format
322 x,1,1-1,F1.0
323
324 Table: Reading 1 record from INLINE.
325 Variable,Record,Columns,Format
326 y,1,2-4,F3.0
327 ])
328
329 AT_CLEANUP