X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fstats%2Faggregate.at;h=ae7a38ad8376129af2cbb8d7ea392dd28c9ee91b;hb=72d873a1af4914c2bfe1cdda1cb0108da243f534;hp=5e00965e2dd5b87f46cf0c1af067f6031290a1f7;hpb=f550aee00a62fe1d8baf62d83cd7efef6cc2ee92;p=pspp diff --git a/tests/language/stats/aggregate.at b/tests/language/stats/aggregate.at index 5e00965e2d..ae7a38ad83 100644 --- a/tests/language/stats/aggregate.at +++ b/tests/language/stats/aggregate.at @@ -4,7 +4,7 @@ dnl CHECK_AGGREGATE(OUTFILE, SORT, MISSING) dnl dnl Checks the AGGREGATE procedure with the specified combination of: dnl -dnl - OUTFILE: One of "scratch", "active", or "external" according to +dnl - OUTFILE: One of "dataset", "active", or "external" according to dnl where AGGREGATE's output should be directed. dnl dnl - SORT: Either "presorted" or "unsorted" according to whether @@ -33,11 +33,12 @@ m4_define([CHECK_AGGREGATE], [ [DATA LIST NOTABLE FILE='aggregate.data' /G N 1-2 S 3(a) W 4. WEIGHT BY w. MISSING VALUES n(4) s('4'). +m4_if([$1], [dataset], [DATASET DECLARE aggregate.]) m4_if([$2], [presorted], [SORT CASES BY g.]) AGGREGATE dnl m4_if([$1], [active], [OUTFILE=*], [$1], [external], [OUTFILE='aggregate.sys'], - [outfile=@%:@AGGREGATE]) dnl + [outfile=aggregate]) dnl m4_if([$2], [presorted], [/PRESORTED]) dnl m4_if([$3], [columnwise], [/MISSING=COLUMNWISE]) /DOCUMENT @@ -119,7 +120,7 @@ m4_if([$3], [columnwise], [/MISSING=COLUMNWISE]) /NSUM = sum(n) /NSUMI = sum.(n). m4_if([$1], [external], [GET FILE='aggregate.sys'.], - [$1], [scratch], [GET FILE=@%:@AGGREGATE.]) + [$1], [dataset], [DATASET ACTIVATE aggregate.]) LIST. ]) AT_CHECK([pspp -O format=csv aggregate.sps], [0], [stdout]) @@ -157,10 +158,10 @@ G,N,NI,NU,NUI,NFGT2,NFGT2I,SFGT2,SFGT2I,NFIN23,NFIN23I,SFIN23,SFIN23I,NFLT2,NFLT ])]) AT_CLEANUP]) -CHECK_AGGREGATE([scratch], [presorted], [itemwise]) -CHECK_AGGREGATE([scratch], [presorted], [columnwise]) -CHECK_AGGREGATE([scratch], [unsorted], [itemwise]) -CHECK_AGGREGATE([scratch], [unsorted], [columnwise]) +CHECK_AGGREGATE([dataset], [presorted], [itemwise]) +CHECK_AGGREGATE([dataset], [presorted], [columnwise]) +CHECK_AGGREGATE([dataset], [unsorted], [itemwise]) +CHECK_AGGREGATE([dataset], [unsorted], [columnwise]) CHECK_AGGREGATE([active], [presorted], [itemwise]) CHECK_AGGREGATE([active], [presorted], [columnwise]) CHECK_AGGREGATE([active], [unsorted], [itemwise]) @@ -210,3 +211,79 @@ AGGREGATE /BREAK=x . ]) AT_CHECK([pspp -O format=csv aggregate.sps], [1], [ignore], []) AT_CLEANUP + + +AT_SETUP([AGGREGATE mode=addvariables]) +AT_DATA([addvariables.sps], + [data list notable list /x * cn * y *. +begin data. +1 1 2 +3 2 3 +3 3 4 +5 4 6 +7 5 8 +7 6 9 +7 7 20 +9 8 11 +end data. + +aggregate outfile=* mode=addvariables + /break = x + /sum = sum(y) + /mean = mean (y) + /median = median (y). + +list. +]) + +AT_CHECK([pspp -O format=csv addvariables.sps], [0], + [Table: Data List +x,cn,y,sum,mean,median +1.00,1.00,2.00,2.00,2.00,2.00 +3.00,2.00,3.00,7.00,3.50,3.50 +3.00,3.00,4.00,7.00,3.50,3.50 +5.00,4.00,6.00,6.00,6.00,6.00 +7.00,5.00,8.00,37.00,12.33,9.00 +7.00,6.00,9.00,37.00,12.33,9.00 +7.00,7.00,20.00,37.00,12.33,9.00 +9.00,8.00,11.00,11.00,11.00,11.00 +]) + +AT_CLEANUP + + +AT_SETUP([AGGREGATE buggy duplicate variables]) +dnl Test for a bug which crashed when duplicated +dnl variables were attempted. +AT_DATA([dup-variables.sps], + [DATA LIST NOTABLE LIST /x * . +begin data +1 +1 +1 +1 +2 +2 +2 +3 +3 +3 +3 +3 +3 +end data. + +AGGREGATE OUTFILE=* MODE=ADDVARIABLES + /BREAK= x + /N_BREAK = N. + +AGGREGATE OUTFILE=* MODE=ADDVARIABLES + /BREAK= x + /N_BREAK = N. +]) + +AT_CHECK([pspp -O format=csv dup-variables.sps], [1], +["dup-variables.sps:24: error: AGGREGATE: Variable name N_BREAK is not unique within the aggregate file dictionary, which contains the aggregate variables and the break variables." +]) + +AT_CLEANUP