pspp-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pspp-cvs] Changes to pspp/tests/command/aggregate.sh


From: Ben Pfaff
Subject: [Pspp-cvs] Changes to pspp/tests/command/aggregate.sh
Date: Sun, 20 Mar 2005 17:17:30 -0500

Index: pspp/tests/command/aggregate.sh
diff -u pspp/tests/command/aggregate.sh:1.6 pspp/tests/command/aggregate.sh:1.7
--- pspp/tests/command/aggregate.sh:1.6 Sun Mar 13 07:31:54 2005
+++ pspp/tests/command/aggregate.sh     Sun Mar 20 22:17:30 2005
@@ -3,7 +3,7 @@
 # This program tests the aggregate procedure
 
 TEMPDIR=/tmp/pspp-tst-$$
-TESTFILE=$TEMPDIR/`basename $0`.sps
+TESTFILE=$TEMPDIR/aggregate.pspp
 
 
 here=`pwd`;
@@ -47,41 +47,166 @@
 
 cd $TEMPDIR
 
-activity="program create"
-cat > $TESTFILE << EOF
-
-data list notable /x y 1-2.
-begin data.
-13
-27
-30
-12
-26
-11
-10
-28
-29
-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.
+activity="data create"
+cat > aggregate.data <<EOF
+2 42
+1001
+4 41
+3112
+1112
+2661
+1221
+2771
+1331
+1441
+2881
+1551
 EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
-activity="run program"
-$SUPERVISOR $here/../src/pspp    -o raw-ascii $TESTFILE
-if [ $? -ne 0 ] ; then no_result ; fi
+activity="command skeleton create"
+cat > agg-skel.pspp <<EOF
+       /document
+       /break=g
+       /n = n
+       /ni = n./
+       nu = nu
+       /nui = nu./
+       nfgt2 = fgt(n, 2)
+       /nfgt2i = fgt.(n, 2)
+       /sfgt2 = fgt(s, '2')
+       /sfgt2i = fgt.(s, '2')
+       /nfin23 = fin(n, 2, 3)
+       /nfin23i = fin.(n, 2, 3)
+       /sfin23 = fin(s, '2', '3')
+       /sfin23i = fin.(s, '2', '3')
+       /nflt2 = flt(n, 2)
+       /nflt2i = flt.(n, 2)
+       /sflt2 = flt(s, '2')
+       /sflt2i = flt.(s, '2')
+       /nfirst = first(n)
+       /nfirsti = first.(n)
+       /sfirst = first(s)
+       /sfirsti = first.(s)
+       /nfout23 = fout(n, 3, 2)
+       /nfout23i = fout.(n, 3, 2)
+       /sfout23 = fout(s, '3', '2')
+       /sfout23i = fout.(s, '3', '2')
+       /nlast = last(n)
+       /nlasti = last.(n)
+       /slast = last(s)
+       /slasti = last.(s)
+       /nmax = max(n)
+       /nmaxi = max.(n)
+       /smax = max(s)
+       /smaxi = max.(s)
+       /nmean = mean(n)
+       /nmeani = mean.(n)
+       /nmin = min(n)
+       /nmini = min.(n)
+       /smin = min(s)
+       /smini = min.(s)
+       /nn = n(n)
+       /nni = n.(n)
+       /sn = n(s)
+       /sni = n.(s)
+       /nnmiss = nmiss(n)
+       /nnmissi = nmiss.(n)
+       /snmiss = nmiss(s)
+       /snmissi = nmiss.(s)
+       /nnu = nu(n)
+       /nnui = nu.(n)
+       /snu = nu(s)
+       /snui = nu.(s)
+       /nnumiss = numiss(n)
+       /nnumissi = numiss.(n)
+       /snumiss = numiss(s)
+       /snumissi = numiss.(s)
+       /npgt2 = pgt(n, 2)
+       /npgt2i = pgt.(n, 2)
+       /spgt2 = pgt(s, '2')
+       /spgt2i = pgt.(s, '2')
+       /npin23 = pin(n, 2, 3)
+       /npin23i = pin.(n, 2, 3)
+       /spin23 = pin(s, '2', '3')
+       /spin23i = pin.(s, '2', '3')
+       /nplt2 = plt(n, 2)
+       /nplt2i = plt.(n, 2)
+       /splt2 = plt(s, '2')
+       /splt2i = plt.(s, '2')
+       /npout23 = pout(n, 2, 3)
+       /npout23i = pout.(n, 2, 3)
+       /spout23 = pout(s, '2', '3')
+       /spout23i = pout.(s, '2', '3')
+       /nsd = sd(n)
+       /nsdi = sd.(n)
+       /nsum = sum(n)
+       /nsumi = sum.(n).
+EOF
 
-activity="test result"
-diff  -b -w -B $TEMPDIR/pspp.list - << EOF
-X        Z      FOO
-- -------- --------
-1    15.00     6.00 
-2    30.00     4.00 
-3      .00     1.00 
+activity="expected output (itemwise missing) create"
+cat > agg-itemwise.out <<EOF
+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
+- -------- -------- ------- ------- ----- ------ ----- ------ ------ ------- 
------ ------- ----- ------ ----- ------ ------ ------- ------ ------- ------- 
-------- ------- -------- ----- ------ ----- ------ ---- ----- ---- ----- 
-------- -------- ---- ----- ---- ----- -------- -------- -------- -------- 
-------- -------- -------- -------- ------- ------- ------- ------- ------- 
-------- ------- -------- ----- ------ ----- ------ ------ ------- ------ 
------- ----- ------ ----- ------ ------- -------- ------- -------- -------- 
-------- -------- --------
+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 
+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 
+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 
+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      .        .        .        .  
 
 EOF
-if [ $? -ne 0 ] ; then fail ; fi
 
+activity="expected output (columnwise missing) create"
+cat > agg-columnwise.out <<EOF
+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
+- -------- -------- ------- ------- ----- ------ ----- ------ ------ ------- 
------ ------- ----- ------ ----- ------ ------ ------- ------ ------- ------- 
-------- ------- -------- ----- ------ ----- ------ ---- ----- ---- ----- 
-------- -------- ---- ----- ---- ----- -------- -------- -------- -------- 
-------- -------- -------- -------- ------- ------- ------- ------- ------- 
-------- ------- -------- ----- ------ ----- ------ ------ ------- ------ 
------- ----- ------ ----- ------ ------- -------- ------- -------- -------- 
-------- -------- --------
+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 
+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      .        .        .        .  
 
+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 
+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      .        .        .        .  
 
+EOF
+
+for outfile in active external; do
+    for sort in presorted unsorted; do
+       for missing in itemwise columnwise; do
+           name=$outfile-$sort-$missing
+
+           activity="create $name.pspp"
+           {
+               echo "data list notable file='aggregate.data' /g n 1-2 s 3(a) w 
4."
+               echo "weight by w."
+               echo "missing values n(4) s('4')."
+               if [ "$sort" = "presorted" ]; then
+                   echo "sort cases by g."
+               fi
+               echo "aggregate"
+               if [ "$outfile" = "active" ]; then
+                   echo "      outfile=*"
+               else
+                   echo "      outfile='aggregate.sys'"
+               fi
+               if [ "$sort" = "presorted" ]; then
+                   echo "      /presorted"
+               fi
+               if [ "$missing" = "columnwise" ]; then
+                   echo "      /missing=columnwise"
+               fi
+               cat agg-skel.pspp
+               if [ "$outfile" = "external" ]; then
+                   echo "get file='aggregate.sys'."
+               fi
+               echo "list."
+           } > $name.pspp
+           if [ $? -ne 0 ] ; then no_result ; fi
+           
+           activity="run $name.pspp"
+           $SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii 
$name.pspp >/dev/null 2>&1
+           if [ $? -ne 0 ] ; then no_result ; fi
+
+           activity="check $name output"
+           diff -b -w -B pspp.list agg-$missing.out
+           if [ $? -ne 0 ] ; then fail ; fi
+       done
+    done
+done
+
+exit 0
 pass;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]