/[pspp]/pspp/tests/command/aggregate.sh
ViewVC logotype

Diff of /pspp/tests/command/aggregate.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by blp, Sun Mar 13 07:31:54 2005 UTC revision 1.7 by blp, Sun Mar 20 22:17:30 2005 UTC
# Line 3  Line 3 
3  # This program tests the aggregate procedure  # This program tests the aggregate procedure
4    
5  TEMPDIR=/tmp/pspp-tst-$$  TEMPDIR=/tmp/pspp-tst-$$
6  TESTFILE=$TEMPDIR/`basename $0`.sps  TESTFILE=$TEMPDIR/aggregate.pspp
7    
8    
9  here=`pwd`;  here=`pwd`;
# Line 47  mkdir -p $TEMPDIR Line 47  mkdir -p $TEMPDIR
47    
48  cd $TEMPDIR  cd $TEMPDIR
49    
50  activity="program create"  activity="data create"
51  cat > $TESTFILE << EOF  cat > aggregate.data <<EOF
52    2 42
53  data list notable /x y 1-2.  1001
54  begin data.  4 41
55  13  3112
56  27  1112
57  30  2661
58  12  1221
59  26  2771
60  11  1331
61  10  1441
62  28  2881
63  29  1551
 14  
 15  
 end data.  
 sort cases by x.  
 aggregate outfile=* /missing=columnwise /document /presorted/break=x /z'label for z'=sum(y)/foo=nu.  
 list.  
64  EOF  EOF
65  if [ $? -ne 0 ] ; then no_result ; fi  if [ $? -ne 0 ] ; then no_result ; fi
66    
67  activity="run program"  activity="command skeleton create"
68  $SUPERVISOR $here/../src/pspp    -o raw-ascii $TESTFILE  cat > agg-skel.pspp <<EOF
69  if [ $? -ne 0 ] ; then no_result ; fi          /document
70            /break=g
71            /n = n
72            /ni = n./
73            nu = nu
74            /nui = nu./
75            nfgt2 = fgt(n, 2)
76            /nfgt2i = fgt.(n, 2)
77            /sfgt2 = fgt(s, '2')
78            /sfgt2i = fgt.(s, '2')
79            /nfin23 = fin(n, 2, 3)
80            /nfin23i = fin.(n, 2, 3)
81            /sfin23 = fin(s, '2', '3')
82            /sfin23i = fin.(s, '2', '3')
83            /nflt2 = flt(n, 2)
84            /nflt2i = flt.(n, 2)
85            /sflt2 = flt(s, '2')
86            /sflt2i = flt.(s, '2')
87            /nfirst = first(n)
88            /nfirsti = first.(n)
89            /sfirst = first(s)
90            /sfirsti = first.(s)
91            /nfout23 = fout(n, 3, 2)
92            /nfout23i = fout.(n, 3, 2)
93            /sfout23 = fout(s, '3', '2')
94            /sfout23i = fout.(s, '3', '2')
95            /nlast = last(n)
96            /nlasti = last.(n)
97            /slast = last(s)
98            /slasti = last.(s)
99            /nmax = max(n)
100            /nmaxi = max.(n)
101            /smax = max(s)
102            /smaxi = max.(s)
103            /nmean = mean(n)
104            /nmeani = mean.(n)
105            /nmin = min(n)
106            /nmini = min.(n)
107            /smin = min(s)
108            /smini = min.(s)
109            /nn = n(n)
110            /nni = n.(n)
111            /sn = n(s)
112            /sni = n.(s)
113            /nnmiss = nmiss(n)
114            /nnmissi = nmiss.(n)
115            /snmiss = nmiss(s)
116            /snmissi = nmiss.(s)
117            /nnu = nu(n)
118            /nnui = nu.(n)
119            /snu = nu(s)
120            /snui = nu.(s)
121            /nnumiss = numiss(n)
122            /nnumissi = numiss.(n)
123            /snumiss = numiss(s)
124            /snumissi = numiss.(s)
125            /npgt2 = pgt(n, 2)
126            /npgt2i = pgt.(n, 2)
127            /spgt2 = pgt(s, '2')
128            /spgt2i = pgt.(s, '2')
129            /npin23 = pin(n, 2, 3)
130            /npin23i = pin.(n, 2, 3)
131            /spin23 = pin(s, '2', '3')
132            /spin23i = pin.(s, '2', '3')
133            /nplt2 = plt(n, 2)
134            /nplt2i = plt.(n, 2)
135            /splt2 = plt(s, '2')
136            /splt2i = plt.(s, '2')
137            /npout23 = pout(n, 2, 3)
138            /npout23i = pout.(n, 2, 3)
139            /spout23 = pout(s, '2', '3')
140            /spout23i = pout.(s, '2', '3')
141            /nsd = sd(n)
142            /nsdi = sd.(n)
143            /nsum = sum(n)
144            /nsumi = sum.(n).
145    EOF
146    
147  activity="test result"  activity="expected output (itemwise missing) create"
148  diff  -b -w -B $TEMPDIR/pspp.list - << EOF  cat > agg-itemwise.out <<EOF
149  X        Z      FOO  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
150  - -------- --------  - -------- -------- ------- ------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------ ------- ------ ------- ------- -------- ------- -------- ----- ------ ----- ------ ---- ----- ---- ----- -------- -------- ---- ----- ---- ----- -------- -------- -------- -------- -------- -------- -------- -------- ------- ------- ------- ------- ------- -------- ------- -------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------- -------- ------- -------- -------- -------- -------- --------
151  1    15.00     6.00  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
152  2    30.00     4.00  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
153  3      .00     1.00  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
154    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      .        .        .        .  
155  EOF  EOF
 if [ $? -ne 0 ] ; then fail ; fi  
156    
157    activity="expected output (columnwise missing) create"
158    cat > agg-columnwise.out <<EOF
159    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
160    - -------- -------- ------- ------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------ ------- ------ ------- ------- -------- ------- -------- ----- ------ ----- ------ ---- ----- ---- ----- -------- -------- ---- ----- ---- ----- -------- -------- -------- -------- -------- -------- -------- -------- ------- ------- ------- ------- ------- -------- ------- -------- ----- ------ ----- ------ ------ ------- ------ ------- ----- ------ ----- ------ ------- -------- ------- -------- -------- -------- -------- --------
161    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
162    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      .        .        .        .  
163    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
164    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      .        .        .        .  
165    EOF
166    
167    for outfile in active external; do
168        for sort in presorted unsorted; do
169            for missing in itemwise columnwise; do
170                name=$outfile-$sort-$missing
171    
172                activity="create $name.pspp"
173                {
174                    echo "data list notable file='aggregate.data' /g n 1-2 s 3(a) w 4."
175                    echo "weight by w."
176                    echo "missing values n(4) s('4')."
177                    if [ "$sort" = "presorted" ]; then
178                        echo "sort cases by g."
179                    fi
180                    echo "aggregate"
181                    if [ "$outfile" = "active" ]; then
182                        echo "      outfile=*"
183                    else
184                        echo "      outfile='aggregate.sys'"
185                    fi
186                    if [ "$sort" = "presorted" ]; then
187                        echo "      /presorted"
188                    fi
189                    if [ "$missing" = "columnwise" ]; then
190                        echo "      /missing=columnwise"
191                    fi
192                    cat agg-skel.pspp
193                    if [ "$outfile" = "external" ]; then
194                        echo "get file='aggregate.sys'."
195                    fi
196                    echo "list."
197                } > $name.pspp
198                if [ $? -ne 0 ] ; then no_result ; fi
199                
200                activity="run $name.pspp"
201                $SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii $name.pspp >/dev/null 2>&1
202                if [ $? -ne 0 ] ; then no_result ; fi
203    
204                activity="check $name output"
205                diff -b -w -B pspp.list agg-$missing.out
206                if [ $? -ne 0 ] ; then fail ; fi
207            done
208        done
209    done
210    
211    exit 0
212  pass;  pass;

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26