Fixed behaviour of oneway when presented with missing values
[pspp] / tests / command / oneway-missing.sh
1 #!/bin/sh
2
3 # This program tests that the ONEWAY anova command works OK when there is missing data
4
5 TEMPDIR=/tmp/pspp-tst-$$
6
7 here=`pwd`;
8
9 # ensure that top_srcdir is absolute
10 cd $top_srcdir; top_srcdir=`pwd`
11
12 export STAT_CONFIG_PATH=$top_srcdir/config
13
14
15 cleanup()
16 {
17      rm -rf $TEMPDIR
18 }
19
20
21 fail()
22 {
23     echo $activity
24     echo FAILED
25     cleanup;
26     exit 1;
27 }
28
29
30 no_result()
31 {
32     echo $activity
33     echo NO RESULT;
34     cleanup;
35     exit 2;
36 }
37
38 pass()
39 {
40     cleanup;
41     exit 0;
42 }
43
44 mkdir -p $TEMPDIR
45
46 cd $TEMPDIR
47
48 activity="create program"
49 cat > $TEMPDIR/out.stat <<EOF
50 DATA LIST LIST /v1 * v2 * dep * vn *.
51 BEGIN DATA
52 . .  1  4
53 3 3  1  2
54 2 2  1  2
55 1 1  1  2
56 1 1  1  2
57 4 4  1  2
58 5 5  2  2
59 2 2  2  2
60 4 4  2  2
61 2 2  2  2
62 3 3  2  2
63 7 7  3  2
64 4 4  3  2
65 5 5  3  2
66 3 3  3  2
67 6 6  3  2
68 END DATA
69
70 ONEWAY
71         v1 v2 BY dep
72         /STATISTICS descriptives homogeneity
73         /MISSING ANALYSIS 
74         .
75 EOF
76 if [ $? -ne 0 ] ; then no_result ; fi
77
78
79 activity="run program"
80 $SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/out.stat
81 if [ $? -ne 0 ] ; then no_result ; fi
82
83 activity="copy output"
84 cp $TEMPDIR/pspp.list $TEMPDIR/pspp.list1
85 if [ $? -ne 0 ] ; then no_result ; fi
86
87 activity="create program 2"
88 cat > $TEMPDIR/out.stat <<EOF
89 DATA LIST LIST /v1 * v2 * dep * vn * .
90 BEGIN DATA
91 4 .  1  2 
92 3 3  1  2
93 2 2  1  2
94 1 1  1  2
95 1 1  1  2
96 4 4  1  2
97 5 5  2  2
98 2 2  2  2
99 4 4  2  2
100 2 2  2  2
101 3 3  2  2
102 7 7  3  2
103 4 4  3  2
104 5 5  3  2
105 3 3  3  2
106 6 6  3  2
107 END DATA
108
109 ONEWAY
110         v1 v2 BY dep
111         /STATISTICS descriptives homogeneity
112         /MISSING LISTWISE
113         .
114 EOF
115 if [ $? -ne 0 ] ; then no_result ; fi
116
117 activity="run program 2"
118 $SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/out.stat
119 if [ $? -ne 0 ] ; then no_result ; fi
120
121 activity="compare outputs"
122 diff $TEMPDIR/pspp.list $TEMPDIR/pspp.list1
123 if [ $? -ne 0 ] ; then fail ; fi
124
125 # Now try a missing dependent variable
126 # Everything depends upon it, so it should behave as if LISTWISE were set
127 activity="create program 3"
128 cat > $TEMPDIR/out.stat <<EOF
129 DATA LIST LIST /v1 * v2 * dep * vn * .
130 BEGIN DATA
131 4 2  .  2 
132 3 3  1  2
133 2 2  1  2
134 1 1  1  2
135 1 1  1  2
136 4 4  1  2
137 5 5  2  2
138 2 2  2  2
139 4 4  2  2
140 2 2  2  2
141 3 3  2  2
142 7 7  3  2
143 4 4  3  2
144 5 5  3  2
145 3 3  3  2
146 6 6  3  2
147 END DATA
148
149 ONEWAY
150         v1 v2 BY dep
151         /STATISTICS descriptives homogeneity
152         /MISSING ANALYSIS
153         .
154 EOF
155 if [ $? -ne 0 ] ; then no_result ; fi
156
157 activity="run program 3"
158 $SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/out.stat
159 if [ $? -ne 0 ] ; then no_result ; fi
160
161 activity="compare outputs"
162 diff $TEMPDIR/pspp.list $TEMPDIR/pspp.list1
163 if [ $? -ne 0 ] ; then fail ; fi
164
165
166 pass