fc42b94ca077a78c50b52fca819c010f00153c8c
[pspp-builds.git] / tests / command / data-list.sh
1 #!/bin/sh
2
3 # This program tests the DATA LIST input program.
4
5 TEMPDIR=/tmp/pspp-tst-$$
6 TESTFILE=$TEMPDIR/`basename $0`.sps
7
8 # ensure that top_builddir  are absolute
9 if [ -z "$top_builddir" ] ; then top_builddir=. ; fi
10 if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi
11 top_builddir=`cd $top_builddir; pwd`
12 PSPP=$top_builddir/src/ui/terminal/pspp
13
14 # ensure that top_srcdir is absolute
15 top_srcdir=`cd $top_srcdir; pwd`
16
17 STAT_CONFIG_PATH=$top_srcdir/config
18 export STAT_CONFIG_PATH
19
20
21 cleanup()
22 {
23      cd /
24      rm -rf $TEMPDIR
25 }
26
27
28 fail()
29 {
30     echo $activity
31     echo FAILED
32     cleanup;
33     exit 1;
34 }
35
36
37 no_result()
38 {
39     echo $activity
40     echo NO RESULT;
41     cleanup;
42     exit 2;
43 }
44
45 pass()
46 {
47     cleanup;
48     exit 0;
49 }
50
51 mkdir -p $TEMPDIR
52
53 cd $TEMPDIR
54
55 # Create command file.
56 activity="create program"
57 cat > $TESTFILE << EOF
58 data list list ('|','X') /A B C D.
59 begin data.
60 1|23X45|2.03
61 2X22|34|23|
62 3|34|34X34
63 end data.
64
65 list.
66
67 data list free/A B C D.
68 begin data.
69 ,1,2,3
70 ,4,,5
71 6
72 7,
73 8 9
74 0,1,,,
75 ,,,,
76 2
77
78 3
79 4
80 5
81 end data.
82 list.
83
84 data list free (tab)/A B C D.
85 begin data.
86 1       2       3       4
87 1       2       3       
88 1       2               4
89 1       2               
90 1               3       4
91 1               3       
92 1                       4
93 1                       
94         2       3       4
95         2       3       
96         2               4
97         2               
98                 3       4
99                 3       
100                         4
101                         
102 end data.
103 list.
104 EOF
105 if [ $? -ne 0 ] ; then no_result ; fi
106
107
108 activity="run program"
109 $SUPERVISOR $PSPP --testing-mode -o raw-ascii --testing-mode $TESTFILE
110 if [ $? -ne 0 ] ; then fail ; fi
111
112 activity="compare output"
113 perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.list
114 diff -b  $TEMPDIR/pspp.list - << EOF
115 1.1 DATA LIST.  Reading free-form data from INLINE.
116 +--------+------+
117 |Variable|Format|
118 #========#======#
119 |A       |F8.0  |
120 |B       |F8.0  |
121 |C       |F8.0  |
122 |D       |F8.0  |
123 +--------+------+
124        A        B        C        D
125 -------- -------- -------- --------
126     1.00    23.00    45.00     2.03 
127     2.00    22.00    34.00    23.00 
128     3.00    34.00    34.00    34.00 
129        A        B        C        D
130 -------- -------- -------- --------
131      .       1.00     2.00     3.00 
132      .       4.00      .       5.00 
133     6.00     7.00     8.00     9.00 
134      .00     1.00      .        .   
135      .        .        .        .   
136     2.00     3.00     4.00     5.00 
137        A        B        C        D
138 -------- -------- -------- --------
139     1.00     2.00     3.00     4.00 
140     1.00     2.00     3.00      .   
141     1.00     2.00      .       4.00 
142     1.00     2.00      .        .   
143     1.00      .       3.00     4.00 
144     1.00      .       3.00      .   
145     1.00      .        .       4.00 
146     1.00      .        .        .   
147      .       2.00     3.00     4.00 
148      .       2.00     3.00      .   
149      .       2.00      .       4.00 
150      .       2.00      .        .   
151      .        .       3.00     4.00 
152      .        .       3.00      .   
153      .        .        .       4.00 
154      .        .        .        .   
155 EOF
156 if [ $? -ne 0 ] ; then fail ; fi
157
158 pass;