Rewrite PSPP output engine.
[pspp-builds.git] / tests / command / flip.sh
1 #!/bin/sh
2
3 # This program tests the flip command
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 LANG=C
21 export LANG
22
23 cleanup()
24 {
25      if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
26         echo "NOT cleaning $TEMPDIR" 
27         return ; 
28      fi
29      cd /
30      rm -rf $TEMPDIR
31 }
32
33
34 fail()
35 {
36     echo $activity
37     echo FAILED
38     cleanup;
39     exit 1;
40 }
41
42
43 no_result()
44 {
45     echo $activity
46     echo NO RESULT;
47     cleanup;
48     exit 2;
49 }
50
51 pass()
52 {
53     cleanup;
54     exit 0;
55 }
56
57 mkdir -p $TEMPDIR
58
59 cd $TEMPDIR
60
61 activity="create flip.stat"
62 cat > $TEMPDIR/flip.stat <<EOF
63 * Test FLIP with NEWNAME or, equivalently, with a variable named CASE_LBL.
64 data list notable /N 1 (a) A B C D 2-9.
65 list.
66 begin data.
67 v 1 2 3 4 5
68 w 6 7 8 910
69 x1112131415
70 y1617181920
71 z2122232425
72 end data.
73 flip newnames=n.
74 list.
75 flip.
76 list.
77
78 * Test FLIP without NEWNAME.
79 data list list notable /v1 to v10.
80 format all(f2).
81 begin data.
82 1 2 3 4 5 6 7 8 9 10
83 4 5 6 7 8 9 10 11 12 13
84 end data.
85
86 list.
87
88 flip.
89 list. 
90 EOF
91 if [ $? -ne 0 ] ; then no_result ; fi
92
93
94 activity="run program"
95 $SUPERVISOR $PSPP --testing-mode $TEMPDIR/flip.stat
96 if [ $? -ne 0 ] ; then no_result ; fi
97
98 activity="compare output"
99 diff -c $TEMPDIR/pspp.csv - << EOF
100 Table: Data List
101 N,A,B,C,D
102 v,1,2,3,4
103 w,6,7,8,9
104 x,11,12,13,14
105 y,16,17,18,19
106 z,21,22,23,24
107
108 Table: Data List
109 CASE_LBL,V,W,X,Y,Z
110 A       ,1.00,6.00,11.00,16.00,21.00
111 B       ,2.00,7.00,12.00,17.00,22.00
112 C       ,3.00,8.00,13.00,18.00,23.00
113 D       ,4.00,9.00,14.00,19.00,24.00
114
115 Table: Data List
116 CASE_LBL,A,B,C,D
117 V       ,1.00,2.00,3.00,4.00
118 W       ,6.00,7.00,8.00,9.00
119 X       ,11.00,12.00,13.00,14.00
120 Y       ,16.00,17.00,18.00,19.00
121 Z       ,21.00,22.00,23.00,24.00
122
123 Table: Data List
124 v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
125 1,2,3,4,5,6,7,8,9,10
126 4,5,6,7,8,9,10,11,12,13
127
128 Table: Data List
129 CASE_LBL,VAR000,VAR001
130 v1      ,1.00,4.00
131 v2      ,2.00,5.00
132 v3      ,3.00,6.00
133 v4      ,4.00,7.00
134 v5      ,5.00,8.00
135 v6      ,6.00,9.00
136 v7      ,7.00,10.00
137 v8      ,8.00,11.00
138 v9      ,9.00,12.00
139 v10     ,10.00,13.00
140 EOF
141 if [ $? -ne 0 ] ; then fail ; fi
142
143
144 pass;