Implement missing values for long string variables.
[pspp] / 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 perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.list
100 diff  -b  $TEMPDIR/pspp.list - << EOF
101 N  A  B  C  D
102 - -- -- -- --
103 v  1  2  3  4 
104 w  6  7  8  9 
105 x 11 12 13 14 
106 y 16 17 18 19 
107 z 21 22 23 24 
108 CASE_LBL        V        W        X        Y        Z
109 -------- -------- -------- -------- -------- --------
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 CASE_LBL        A        B        C        D
115 -------- -------- -------- -------- --------
116 V            1.00     2.00     3.00     4.00 
117 W            6.00     7.00     8.00     9.00 
118 X           11.00    12.00    13.00    14.00 
119 Y           16.00    17.00    18.00    19.00 
120 Z           21.00    22.00    23.00    24.00 
121 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
122 -- -- -- -- -- -- -- -- -- ---
123  1  2  3  4  5  6  7  8  9  10 
124  4  5  6  7  8  9 10 11 12  13 
125 CASE_LBL   VAR000   VAR001
126 -------- -------- --------
127 v1           1.00     4.00 
128 v2           2.00     5.00 
129 v3           3.00     6.00 
130 v4           4.00     7.00 
131 v5           5.00     8.00 
132 v6           6.00     9.00 
133 v7           7.00    10.00 
134 v8           8.00    11.00 
135 v9           9.00    12.00 
136 v10         10.00    13.00 
137 EOF
138 if [ $? -ne 0 ] ; then fail ; fi
139
140
141 pass;