Rewrite PSPP output engine.
[pspp-builds.git] / tests / command / get-data-txt-importcases.sh
1 #!/bin/sh
2
3 # This program tests the IMPORTCASES feature of GET DATA /TYPE=TXT.
4
5 TEMPDIR=/tmp/pspp-tst-$$
6 TESTFILE=$TEMPDIR/`basename $0`.sps
7 : ${PERL:=perl}
8
9 # ensure that top_builddir  are absolute
10 if [ -z "$top_builddir" ] ; then top_builddir=. ; fi
11 if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi
12 top_builddir=`cd $top_builddir; pwd`
13 PSPP=$top_builddir/src/ui/terminal/pspp
14
15 # ensure that top_srcdir is absolute
16 top_srcdir=`cd $top_srcdir; pwd`
17
18 STAT_CONFIG_PATH=$top_srcdir/config
19 export STAT_CONFIG_PATH
20
21
22 cleanup()
23 {
24      if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
25         echo "NOT cleaning $TEMPDIR" 
26         return ; 
27      fi
28      cd /
29      rm -rf $TEMPDIR
30 }
31
32
33 fail()
34 {
35     echo $activity
36     echo FAILED
37     cleanup;
38     exit 1;
39 }
40
41
42 no_result()
43 {
44     echo $activity
45     echo NO RESULT;
46     cleanup;
47     exit 2;
48 }
49
50 pass()
51 {
52     cleanup;
53     exit 0;
54 }
55
56 mkdir -p $TEMPDIR
57
58 cd $TEMPDIR
59
60 activity="create data file using Perl"
61 $PERL > test.data <<'EOF'
62 for ($i = 1; $i <= 100; $i++) {
63     printf "%02d\n", $i;
64 }
65 EOF
66 if [ $? -ne 0 ] ; then no_result ; fi
67
68 # Create command file.
69 activity="create program"
70 cat > $TESTFILE << EOF
71 get data /type=txt /file='test.data' /importcases=first 10 /variables x f8.0.
72 list.
73
74 get data /type=txt /file='test.data' /importcases=percent 1 /variables x f8.0.
75 list.
76
77 get data /type=txt /file='test.data' /importcases=percent 35 /variables x f8.0.
78 list.
79
80 get data /type=txt /file='test.data' /importcases=percent 95 /variables x f8.0.
81 list.
82
83 get data /type=txt /file='test.data' /importcases=percent 100 /variables x f8.0.
84 list.
85 EOF
86 if [ $? -ne 0 ] ; then no_result ; fi
87
88 activity="run program"
89 $SUPERVISOR $PSPP --testing-mode $TESTFILE
90 if [ $? -ne 0 ] ; then fail ; fi
91
92 activity="compare output"
93 diff -c $TEMPDIR/pspp.csv - << EOF
94 Table: Data List
95 x
96 1
97 2
98 3
99 4
100 5
101 6
102 7
103 8
104 9
105 10
106
107 Table: Data List
108 x
109 1
110 2
111
112 Table: Data List
113 x
114 1
115 2
116 3
117 4
118 5
119 6
120 7
121 8
122 9
123 10
124 11
125 12
126 13
127 14
128 15
129 16
130 17
131 18
132 19
133 20
134 21
135 22
136 23
137 24
138 25
139 26
140 27
141 28
142 29
143 30
144 31
145 32
146 33
147 34
148 35
149 36
150
151 Table: Data List
152 x
153 1
154 2
155 3
156 4
157 5
158 6
159 7
160 8
161 9
162 10
163 11
164 12
165 13
166 14
167 15
168 16
169 17
170 18
171 19
172 20
173 21
174 22
175 23
176 24
177 25
178 26
179 27
180 28
181 29
182 30
183 31
184 32
185 33
186 34
187 35
188 36
189 37
190 38
191 39
192 40
193 41
194 42
195 43
196 44
197 45
198 46
199 47
200 48
201 49
202 50
203 51
204 52
205 53
206 54
207 55
208 56
209 57
210 58
211 59
212 60
213 61
214 62
215 63
216 64
217 65
218 66
219 67
220 68
221 69
222 70
223 71
224 72
225 73
226 74
227 75
228 76
229 77
230 78
231 79
232 80
233 81
234 82
235 83
236 84
237 85
238 86
239 87
240 88
241 89
242 90
243 91
244 92
245 93
246 94
247 95
248 96
249
250 Table: Data List
251 x
252 1
253 2
254 3
255 4
256 5
257 6
258 7
259 8
260 9
261 10
262 11
263 12
264 13
265 14
266 15
267 16
268 17
269 18
270 19
271 20
272 21
273 22
274 23
275 24
276 25
277 26
278 27
279 28
280 29
281 30
282 31
283 32
284 33
285 34
286 35
287 36
288 37
289 38
290 39
291 40
292 41
293 42
294 43
295 44
296 45
297 46
298 47
299 48
300 49
301 50
302 51
303 52
304 53
305 54
306 55
307 56
308 57
309 58
310 59
311 60
312 61
313 62
314 63
315 64
316 65
317 66
318 67
319 68
320 69
321 70
322 71
323 72
324 73
325 74
326 75
327 76
328 77
329 78
330 79
331 80
332 81
333 82
334 83
335 84
336 85
337 86
338 87
339 88
340 89
341 90
342 91
343 92
344 93
345 94
346 95
347 96
348 97
349 98
350 99
351 100
352 EOF
353 if [ $? -ne 0 ] ; then fail ; fi
354
355 pass;