21e8cb078e01ef68d6ee6482a51722a3b22acffc
[pspp-builds.git] / tests / command / examine-percentiles.sh
1 #!/bin/sh
2
3 # This program tests  the PERCENTILES subcommand of the EXAMINE command.
4 # In particular it tests that it behaves properly when there are only 
5 # a few cases
6
7 TEMPDIR=/tmp/pspp-tst-$$
8 TESTFILE=$TEMPDIR/`basename $0`.sps
9
10 here=`pwd`;
11
12 # ensure that top_srcdir is absolute
13 cd $top_srcdir; top_srcdir=`pwd`
14
15 STAT_CONFIG_PATH=$top_srcdir/config
16 export STAT_CONFIG_PATH
17
18
19 cleanup()
20 {
21      cd /
22      rm -rf $TEMPDIR
23 }
24
25
26 fail()
27 {
28     echo $activity
29     echo FAILED
30     cleanup;
31     exit 1;
32 }
33
34
35 no_result()
36 {
37     echo $activity
38     echo NO RESULT;
39     cleanup;
40     exit 2;
41 }
42
43 pass()
44 {
45     cleanup;
46     exit 0;
47 }
48
49 mkdir -p $TEMPDIR
50
51 cd $TEMPDIR
52
53 activity="create program"
54 cat > $TESTFILE <<EOF
55 DATA LIST LIST /X *.
56 BEGIN DATA.
57 2.00 
58 8.00 
59 5.00 
60 END DATA.
61
62 EXAMINE /x
63         /PERCENTILES=HAVERAGE.
64
65 EXAMINE /x
66         /PERCENTILES=WAVERAGE.
67
68 EXAMINE /x
69         /PERCENTILES=ROUND.
70
71 EXAMINE /x
72         /PERCENTILES=EMPIRICAL.
73
74 EXAMINE /x
75         /PERCENTILES=AEMPIRICAL.
76 EOF
77 if [ $? -ne 0 ] ; then no_result ; fi
78
79 activity="run program"
80 $SUPERVISOR $here/../src/pspp -o raw-ascii $TESTFILE
81 if [ $? -ne 0 ] ; then no_result ; fi
82
83
84 activity="compare results"
85 perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.list
86 diff -b  $TEMPDIR/pspp.list - << EOF
87 1.1 DATA LIST.  Reading free-form data from INLINE.
88 +--------+------+
89 |Variable|Format|
90 #========#======#
91 |X       |F8.0  |
92 +--------+------+
93 2.1 EXAMINE.  Case Processing Summary
94 #=#=============================#
95 # #            Cases            #
96 # #---------+---------+---------#
97 # #  Valid  | Missing |  Total  #
98 # #-+-------+-+-------+-+-------#
99 # #N|Percent|N|Percent|N|Percent#
100 #=#=#=======#=#=======#=#=======#
101 #X#3|   100%|0|     0%|3|   100%#
102 #=#=#=======#=#=======#=#=======#
103 2.2 EXAMINE.  Percentiles
104 #================#================================#
105 #                #             Percentiles        #
106 #                #---+---+----+----+----+----+----#
107 #                # 5 | 10| 25 | 50 | 75 | 90 | 95 #
108 #=#==============#===#===#====#====#====#====#====#
109 #X|HAverage      #.40|.80|2.00|5.00|8.00|8.00|8.00#
110 # |Tukey's Hinges#   |   |3.50|5.00|6.50|    |    #
111 #=#==============#===#===#====#====#====#====#====#
112 3.1 EXAMINE.  Case Processing Summary
113 #=#=============================#
114 # #            Cases            #
115 # #---------+---------+---------#
116 # #  Valid  | Missing |  Total  #
117 # #-+-------+-+-------+-+-------#
118 # #N|Percent|N|Percent|N|Percent#
119 #=#=#=======#=#=======#=#=======#
120 #X#3|   100%|0|     0%|3|   100%#
121 #=#=#=======#=#=======#=#=======#
122 3.2 EXAMINE.  Percentiles
123 #==================#================================#
124 #                  #             Percentiles        #
125 #                  #---+---+----+----+----+----+----#
126 #                  # 5 | 10| 25 | 50 | 75 | 90 | 95 #
127 #=#================#===#===#====#====#====#====#====#
128 #X|Weighted Average#.30|.60|1.50|3.50|5.75|7.10|7.55#
129 # |Tukey's Hinges  #   |   |3.50|5.00|6.50|    |    #
130 #=#================#===#===#====#====#====#====#====#
131 4.1 EXAMINE.  Case Processing Summary
132 #=#=============================#
133 # #            Cases            #
134 # #---------+---------+---------#
135 # #  Valid  | Missing |  Total  #
136 # #-+-------+-+-------+-+-------#
137 # #N|Percent|N|Percent|N|Percent#
138 #=#=#=======#=#=======#=#=======#
139 #X#3|   100%|0|     0%|3|   100%#
140 #=#=#=======#=#=======#=#=======#
141 4.2 EXAMINE.  Percentiles
142 #================#================================#
143 #                #             Percentiles        #
144 #                #---+---+----+----+----+----+----#
145 #                # 5 | 10| 25 | 50 | 75 | 90 | 95 #
146 #=#==============#===#===#====#====#====#====#====#
147 #X|Rounded       #.00|.00|2.00|5.00|5.00|8.00|8.00#
148 # |Tukey's Hinges#   |   |3.50|5.00|6.50|    |    #
149 #=#==============#===#===#====#====#====#====#====#
150 5.1 EXAMINE.  Case Processing Summary
151 #=#=============================#
152 # #            Cases            #
153 # #---------+---------+---------#
154 # #  Valid  | Missing |  Total  #
155 # #-+-------+-+-------+-+-------#
156 # #N|Percent|N|Percent|N|Percent#
157 #=#=#=======#=#=======#=#=======#
158 #X#3|   100%|0|     0%|3|   100%#
159 #=#=#=======#=#=======#=#=======#
160 5.2 EXAMINE.  Percentiles
161 #================#==================================#
162 #                #              Percentiles         #
163 #                #----+----+----+----+----+----+----#
164 #                #  5 | 10 | 25 | 50 | 75 | 90 | 95 #
165 #=#==============#====#====#====#====#====#====#====#
166 #X|Empirical     #2.00|2.00|2.00|5.00|8.00|8.00|8.00#
167 # |Tukey's Hinges#    |    |3.50|5.00|6.50|    |    #
168 #=#==============#====#====#====#====#====#====#====#
169 6.1 EXAMINE.  Case Processing Summary
170 #=#=============================#
171 # #            Cases            #
172 # #---------+---------+---------#
173 # #  Valid  | Missing |  Total  #
174 # #-+-------+-+-------+-+-------#
175 # #N|Percent|N|Percent|N|Percent#
176 #=#=#=======#=#=======#=#=======#
177 #X#3|   100%|0|     0%|3|   100%#
178 #=#=#=======#=#=======#=#=======#
179 6.2 EXAMINE.  Percentiles
180 #==========================#==================================#
181 #                          #              Percentiles         #
182 #                          #----+----+----+----+----+----+----#
183 #                          #  5 | 10 | 25 | 50 | 75 | 90 | 95 #
184 #=#========================#====#====#====#====#====#====#====#
185 #X|Empirical with averaging#2.00|2.00|2.00|5.00|8.00|8.00|8.00#
186 # |Tukey's Hinges          #    |    |3.50|5.00|6.50|    |    #
187 #=#========================#====#====#====#====#====#====#====#
188 EOF
189 if [ $? -ne 0 ] ; then fail ; fi
190
191 pass