3 # This program tests the aggregate procedure
5 TEMPDIR=/tmp/pspp-tst-$$
6 TESTFILE=$TEMPDIR/aggregate.pspp
11 # ensure that top_srcdir is absolute
12 cd $top_srcdir; top_srcdir=`pwd`
15 STAT_CONFIG_PATH=$top_srcdir/config
16 export STAT_CONFIG_PATH
52 activity="data create"
53 cat > aggregate.data <<EOF
67 if [ $? -ne 0 ] ; then no_result ; fi
69 activity="command skeleton create"
70 cat > agg-skel.pspp <<EOF
80 /SFGT2I = fgt.(s, '2')
81 /NFIN23 = fin(n, 2, 3)
82 /NFIN23I = fin.(n, 2, 3)
83 /SFIN23 = fin(s, '2', '3')
84 /SFIN23I = fin.(s, '2', '3')
88 /SFLT2I = flt.(s, '2')
93 /NFOUT23 = fout(n, 3, 2)
94 /NFOUT23I = fout.(n, 3, 2)
95 /SFOUT23 = fout(s, '3', '2')
96 /SFOUT23I = fout.(s, '3', '2')
124 /NNUMISSI = numiss.(n)
126 /SNUMISSI = numiss.(s)
130 /SPGT2I = pgt.(s, '2')
131 /NPIN23 = pin(n, 2, 3)
132 /NPIN23I = pin.(n, 2, 3)
133 /SPIN23 = pin(s, '2', '3')
134 /SPIN23I = pin.(s, '2', '3')
138 /SPLT2I = plt.(s, '2')
139 /NPOUT23 = pout(n, 2, 3)
140 /NPOUT23I = pout.(n, 2, 3)
141 /SPOUT23 = pout(s, '2', '3')
142 /SPOUT23I = pout.(s, '2', '3')
149 activity="expected output (itemwise missing) create"
150 cat > agg-itemwise.out <<EOF
151 G N NI NU NUI NFGT2 NFGT2I SFGT2 SFGT2I NFIN23 NFIN23I SFIN23 SFIN23I NFLT2 NFLT2I SFLT2 SFLT2I NFIRST NFIRSTI SFIRST SFIRSTI NFOUT23 NFOUT23I SFOUT23 SFOUT23I NLAST NLASTI SLAST SLASTI NMAX NMAXI SMAX SMAXI NMEAN NMEANI NMIN NMINI SMIN SMINI NN NNI SN SNI NNMISS NNMISSI SNMISS SNMISSI NNU NNUI SNU SNUI NNUMISS NNUMISSI SNUMISS SNUMISSI NPGT2 NPGT2I SPGT2 SPGT2I NPIN23 NPIN23I SPIN23 SPIN23I NPLT2 NPLT2I SPLT2 SPLT2I NPOUT23 NPOUT23I SPOUT23 SPOUT23I NSD NSDI NSUM NSUMI
152 - -------- -------- ------- ------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------ ------- ------ ------- ------- -------- ------- -------- ----- ------ ----- ------ ---- ----- ---- ----- -------- -------- ---- ----- ---- ----- -------- -------- -------- -------- -------- -------- -------- -------- ------- ------- ------- ------- ------- -------- ------- -------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------- -------- ------- -------- -------- -------- -------- --------
153 1 7.00 7.00 6 6 .333 .429 .333 .429 .333 .286 .333 .286 .500 .429 .500 .429 0 0 0 0 .667 .714 .667 .714 5 5 5 5 5 5 5 5 2.00 2.29 0 0 0 0 6.00 7.00 6.00 7.00 1.00 .00 1.00 .00 5 6 5 6 1 0 1 0 33.3 42.9 33.3 42.9 33.3 28.6 33.3 28.6 50.0 42.9 50.0 42.9 66.7 71.4 66.7 71.4 1.79 1.80 12.00 16.00
154 2 5.00 5.00 4 4 1.000 1.000 1.000 1.000 .000 .000 .000 .000 .000 .000 .000 .000 6 6 6 4 1.000 1.000 1.000 1.000 8 8 8 8 8 8 8 8 7.00 7.00 6 6 6 4 3.00 3.00 3.00 5.00 2.00 2.00 2.00 .00 3 3 3 4 1 1 1 0 100.0 100.0 100.0 100.0 .0 .0 .0 .0 .0 .0 .0 .0 100.0 100.0 100.0 100.0 1.00 1.00 21.00 21.00
155 3 2.00 2.00 1 1 .000 .000 .000 .000 .000 .000 .000 .000 1.000 1.000 1.000 1.000 1 1 1 1 1.000 1.000 1.000 1.000 1 1 1 1 1 1 1 1 1.00 1.00 1 1 1 1 2.00 2.00 2.00 2.00 .00 .00 .00 .00 1 1 1 1 0 0 0 0 .0 .0 .0 .0 .0 .0 .0 .0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 .00 .00 2.00 2.00
156 4 1.00 1.00 1 1 . . . 1.000 . . . .000 . . . .000 . . 4 . . . 1.000 . . 4 . . 4 . . . . 4 .00 .00 .00 1.00 1.00 1.00 1.00 .00 0 0 0 1 1 1 1 0 . . . 100.0 . . . .0 . . . .0 . . . 100.0 . . . .
159 activity="expected output (columnwise missing) create"
160 cat > agg-columnwise.out <<EOF
161 G N NI NU NUI NFGT2 NFGT2I SFGT2 SFGT2I NFIN23 NFIN23I SFIN23 SFIN23I NFLT2 NFLT2I SFLT2 SFLT2I NFIRST NFIRSTI SFIRST SFIRSTI NFOUT23 NFOUT23I SFOUT23 SFOUT23I NLAST NLASTI SLAST SLASTI NMAX NMAXI SMAX SMAXI NMEAN NMEANI NMIN NMINI SMIN SMINI NN NNI SN SNI NNMISS NNMISSI SNMISS SNMISSI NNU NNUI SNU SNUI NNUMISS NNUMISSI SNUMISS SNUMISSI NPGT2 NPGT2I SPGT2 SPGT2I NPIN23 NPIN23I SPIN23 SPIN23I NPLT2 NPLT2I SPLT2 SPLT2I NPOUT23 NPOUT23I SPOUT23 SPOUT23I NSD NSDI NSUM NSUMI
162 - -------- -------- ------- ------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------ ------- ------ ------- ------- -------- ------- -------- ----- ------ ----- ------ ---- ----- ---- ----- -------- -------- ---- ----- ---- ----- -------- -------- -------- -------- -------- -------- -------- -------- ------- ------- ------- ------- ------- -------- ------- -------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------- -------- ------- -------- -------- -------- -------- --------
163 1 7.00 7.00 6 6 . .429 . .429 . .286 . .286 . .429 . .429 . 0 0 . .714 . .714 . 5 5 . 5 5 . 2.29 . 0 0 6.00 7.00 6.00 7.00 1.00 .00 1.00 .00 5 6 5 6 1 0 1 0 . 42.9 . 42.9 . 28.6 . 28.6 . 42.9 . 42.9 . 71.4 . 71.4 . 1.80 . 16.00
164 2 5.00 5.00 4 4 . . . 1.000 . . . .000 . . . .000 . . 4 . . . 1.000 . . 8 . . 8 . . . . 4 3.00 3.00 3.00 5.00 2.00 2.00 2.00 .00 3 3 3 4 1 1 1 0 . . . 100.0 . . . .0 . . . .0 . . . 100.0 . . . .
165 3 2.00 2.00 1 1 .000 .000 .000 .000 .000 .000 .000 .000 1.000 1.000 1.000 1.000 1 1 1 1 1.000 1.000 1.000 1.000 1 1 1 1 1 1 1 1 1.00 1.00 1 1 1 1 2.00 2.00 2.00 2.00 .00 .00 .00 .00 1 1 1 1 0 0 0 0 .0 .0 .0 .0 .0 .0 .0 .0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 .00 .00 2.00 2.00
166 4 1.00 1.00 1 1 . . . 1.000 . . . .000 . . . .000 . . 4 . . . 1.000 . . 4 . . 4 . . . . 4 .00 .00 .00 1.00 1.00 1.00 1.00 .00 0 0 0 1 1 1 1 0 . . . 100.0 . . . .0 . . . .0 . . . 100.0 . . . .
169 for outfile in scratch active external; do
170 for sort in presorted unsorted; do
171 for missing in itemwise columnwise; do
172 name=$outfile-$sort-$missing
174 activity="create $name.pspp"
176 echo "data list notable file='aggregate.data' /G N 1-2 S 3(a) W 4."
178 echo "missing values n(4) s('4')."
179 if [ "$sort" = "presorted" ]; then
180 echo "sort cases by g."
183 if [ "$outfile" = "active" ]; then
185 elif [ "$outfile" = "external" ]; then
186 echo " outfile='aggregate.sys'"
188 echo " outfile=#AGGREGATE"
190 if [ "$sort" = "presorted" ]; then
193 if [ "$missing" = "columnwise" ]; then
194 echo " /missing=columnwise"
197 if [ "$outfile" = "external" ]; then
198 echo "get file='aggregate.sys'."
199 elif [ "$outfile" = "scratch" ]; then
200 echo "get file=#AGGREGATE."
204 if [ $? -ne 0 ] ; then no_result ; fi
206 activity="run $name.pspp"
207 $SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii $name.pspp >/dev/null 2>&1
208 if [ $? -ne 0 ] ; then no_result ; fi
210 activity="check $name output"
211 perl -pi -e 's/^\s*$//g' pspp.list agg-$missing.out
212 diff -b -w pspp.list agg-$missing.out
213 if [ $? -ne 0 ] ; then fail ; fi