Allow users to set the precision of output statistics.
[pspp-builds.git] / tests / command / npar-binomial.sh
1 #!/bin/sh
2
3 # This program tests the BINOMIAL subcommand of the NPAR TESTS command.
4
5 TEMPDIR=/tmp/pspp-tst-$$
6 TESTFILE=$TEMPDIR/`basename $0`.sps
7
8 # ensure that top_srcdir and top_builddir  are absolute
9 if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi
10 if [ -z "$top_builddir" ] ; then top_builddir=. ; fi
11 top_srcdir=`cd $top_srcdir; pwd`
12 top_builddir=`cd $top_builddir; pwd`
13
14 PSPP=$top_builddir/src/ui/terminal/pspp
15
16 STAT_CONFIG_PATH=$top_srcdir/config
17 export STAT_CONFIG_PATH
18
19 LANG=C
20 export LANG
21
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
62 # Tests for exact calculations
63 activity="create file 1"
64 cat <<EOF > $TESTFILE
65 ECHO 'P < 0.5; N1/N2 < 1' .
66
67 NEW FILE.
68
69 DATA LIST LIST NOTABLE /x * w *.
70 BEGIN DATA.
71 1   6
72 2   15
73 END DATA.
74
75 WEIGHT BY w.
76
77 SET FORMAT F8.3.
78
79 NPAR TESTS
80         /BINOMIAL(0.3) = x
81         .
82
83
84 ECHO 'P < 0.5; N1/N2 > 1' .
85
86 NEW FILE.
87
88
89
90 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
91 BEGIN DATA.
92 1   7
93 2   6
94 END DATA.
95
96 WEIGHT BY w.
97
98 NPAR TESTS
99         /BINOMIAL(0.4) = x
100         .
101
102
103
104 ECHO 'P < 0.5; N1/N2 = 1' .
105
106 NEW FILE.
107
108 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
109 BEGIN DATA.
110 1   8
111 2   8
112 END DATA.
113
114 WEIGHT BY w.
115
116 NPAR TESTS
117         /BINOMIAL(0.4) = x
118         .
119
120 ECHO 'P > 0.5; N1/N2 < 1' .
121
122 NEW FILE.
123
124 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
125 BEGIN DATA.
126 1   11
127 2   12
128 END DATA.
129
130 WEIGHT BY w.
131
132 NPAR TESTS
133         /BINOMIAL(0.6) = x
134         .
135
136
137 ECHO 'P > 0.5; N1/N2 > 1' .
138
139 NEW FILE.
140
141 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
142 BEGIN DATA.
143 1   11
144 2   9
145 END DATA.
146
147 WEIGHT BY w.
148
149 NPAR TESTS
150         /BINOMIAL(0.6) = x
151
152 ECHO 'P > 0.5; N1/N2 == 1' .
153
154 NEW FILE.
155
156 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
157 BEGIN DATA.
158 1   11
159 2   11
160 END DATA.
161
162 WEIGHT BY w.
163
164 NPAR TESTS
165         /BINOMIAL(0.6) = x
166         .
167
168 ECHO 'P == 0.5; N1/N2 < 1' .
169
170 NEW FILE.
171
172 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
173 BEGIN DATA.
174 1   8
175 2   15
176 END DATA.
177
178 WEIGHT BY w.
179
180 NPAR TESTS
181         /BINOMIAL(0.5) = x
182         .
183
184
185 ECHO 'P == 0.5; N1/N2 > 1' .
186
187 NEW FILE.
188
189 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
190 BEGIN DATA.
191 1   12
192 2   6
193 END DATA.
194
195 WEIGHT BY w.
196
197 NPAR TESTS
198         /BINOMIAL(0.5) = x
199
200 ECHO 'P == 0.5; N1/N2 == 1' .
201
202 NEW FILE.
203
204 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
205 BEGIN DATA.
206 1   10
207 2   10
208 END DATA.
209
210 WEIGHT BY w.
211
212 NPAR TESTS
213         /BINOMIAL(0.5) = x
214         .
215 EOF
216 if [ $? -ne 0 ] ; then no_result ; fi
217
218
219 activity="run program 1"
220 $SUPERVISOR $PSPP --testing-mode $TESTFILE
221 if [ $? -ne 0 ] ; then no_result ; fi
222
223 activity="compare output 1"
224 perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.list
225 diff -b $TEMPDIR/pspp.list - << EOF
226 P < 0.5; N1/N2 < 1
227 1.1 NPAR TESTS.  Binomial Test
228 +-+------#--------+-----+--------------+----------+---------------------+
229 | |      #Category|  N  |Observed Prop.|Test Prop.|Exact Sig. (1-tailed)|
230 +-+------#--------+-----+--------------+----------+---------------------+
231 |x|Group1#    1.00| 6.00|          .286|      .300|                 .551|
232 | |Group2#    2.00|15.00|          .714|          |                     |
233 | |Total #        |21.00|          1.00|          |                     |
234 +-+------#--------+-----+--------------+----------+---------------------+
235 P < 0.5; N1/N2 > 1
236 2.1 NPAR TESTS.  Binomial Test
237 +-+------#--------+--+--------------+----------+---------------------+
238 | |      #Category| N|Observed Prop.|Test Prop.|Exact Sig. (1-tailed)|
239 +-+------#--------+--+--------------+----------+---------------------+
240 |x|Group1#       1| 7|          .538|      .400|                 .229|
241 | |Group2#       2| 6|          .462|          |                     |
242 | |Total #        |13|             1|          |                     |
243 +-+------#--------+--+--------------+----------+---------------------+
244 P < 0.5; N1/N2 = 1
245 3.1 NPAR TESTS.  Binomial Test
246 +-+------#--------+--+--------------+----------+---------------------+
247 | |      #Category| N|Observed Prop.|Test Prop.|Exact Sig. (1-tailed)|
248 +-+------#--------+--+--------------+----------+---------------------+
249 |x|Group1#       1| 8|          .500|      .400|                 .284|
250 | |Group2#       2| 8|          .500|          |                     |
251 | |Total #        |16|             1|          |                     |
252 +-+------#--------+--+--------------+----------+---------------------+
253 P > 0.5; N1/N2 < 1
254 4.1 NPAR TESTS.  Binomial Test
255 +-+------#--------+--+--------------+----------+---------------------+
256 | |      #Category| N|Observed Prop.|Test Prop.|Exact Sig. (1-tailed)|
257 +-+------#--------+--+--------------+----------+---------------------+
258 |x|Group1#       1|11|          .478|      .600|                 .164|
259 | |Group2#       2|12|          .522|          |                     |
260 | |Total #        |23|             1|          |                     |
261 +-+------#--------+--+--------------+----------+---------------------+
262 P > 0.5; N1/N2 > 1
263 5.1 NPAR TESTS.  Binomial Test
264 +-+------#--------+--+--------------+----------+---------------------+
265 | |      #Category| N|Observed Prop.|Test Prop.|Exact Sig. (1-tailed)|
266 +-+------#--------+--+--------------+----------+---------------------+
267 |x|Group1#       1|11|          .550|      .600|                 .404|
268 | |Group2#       2| 9|          .450|          |                     |
269 | |Total #        |20|             1|          |                     |
270 +-+------#--------+--+--------------+----------+---------------------+
271 P > 0.5; N1/N2 == 1
272 6.1 NPAR TESTS.  Binomial Test
273 +-+------#--------+--+--------------+----------+---------------------+
274 | |      #Category| N|Observed Prop.|Test Prop.|Exact Sig. (1-tailed)|
275 +-+------#--------+--+--------------+----------+---------------------+
276 |x|Group1#       1|11|          .500|      .600|                 .228|
277 | |Group2#       2|11|          .500|          |                     |
278 | |Total #        |22|             1|          |                     |
279 +-+------#--------+--+--------------+----------+---------------------+
280 P == 0.5; N1/N2 < 1
281 7.1 NPAR TESTS.  Binomial Test
282 +-+------#--------+--+--------------+----------+---------------------+
283 | |      #Category| N|Observed Prop.|Test Prop.|Exact Sig. (2-tailed)|
284 +-+------#--------+--+--------------+----------+---------------------+
285 |x|Group1#       1| 8|          .348|      .500|                 .210|
286 | |Group2#       2|15|          .652|          |                     |
287 | |Total #        |23|             1|          |                     |
288 +-+------#--------+--+--------------+----------+---------------------+
289 P == 0.5; N1/N2 > 1
290 8.1 NPAR TESTS.  Binomial Test
291 +-+------#--------+--+--------------+----------+---------------------+
292 | |      #Category| N|Observed Prop.|Test Prop.|Exact Sig. (2-tailed)|
293 +-+------#--------+--+--------------+----------+---------------------+
294 |x|Group1#       1|12|          .667|      .500|                 .238|
295 | |Group2#       2| 6|          .333|          |                     |
296 | |Total #        |18|             1|          |                     |
297 +-+------#--------+--+--------------+----------+---------------------+
298 P == 0.5; N1/N2 == 1
299 9.1 NPAR TESTS.  Binomial Test
300 +-+------#--------+--+--------------+----------+---------------------+
301 | |      #Category| N|Observed Prop.|Test Prop.|Exact Sig. (2-tailed)|
302 +-+------#--------+--+--------------+----------+---------------------+
303 |x|Group1#       1|10|          .500|      .500|                1.000|
304 | |Group2#       2|10|          .500|          |                     |
305 | |Total #        |20|             1|          |                     |
306 +-+------#--------+--+--------------+----------+---------------------+
307 EOF
308 if [ $? -ne 0 ] ; then fail ; fi
309
310
311 pass;