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