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