X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fdata-io%2Fmatrix-data.at;h=8f503f62f285aa430028b550c3b1ddfc542835a9;hb=ccd1837ed5df23149584f88f6cc907cda0faaea9;hp=2f39f5817f27f5f059be228a96644f20dcbc4694;hpb=fe55889f4dbca132c99c17fcaf9604acd2a26593;p=pspp diff --git a/tests/language/data-io/matrix-data.at b/tests/language/data-io/matrix-data.at index 2f39f5817f..8f503f62f2 100644 --- a/tests/language/data-io/matrix-data.at +++ b/tests/language/data-io/matrix-data.at @@ -1,3 +1,19 @@ +dnl PSPP - a program for statistical analysis. +dnl Copyright (C) 2017, 2020 Free Software Foundation, Inc. +dnl +dnl This program is free software: you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation, either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program. If not, see . +dnl AT_BANNER([MATRIX DATA]) AT_SETUP([Matrix data (lower file)]) @@ -31,17 +47,17 @@ corr .17 .29 -.05 .20 .27 .20 .04 1.00 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl Table: Data List ROWTYPE_,VARNAME_,var01,var02,var03,var04,var05,var06,var07,var08 -mean ,,24.3000,5.4000,69.7000,20.1000,13.4000,2.7000,27.9000,3.7000 -STDDEV ,,5.7000,1.5000,23.5000,5.8000,2.8000,4.5000,5.4000,1.5000 -n ,,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000 -corr ,var01,1.0000,.1800,-.2200,.3600,.2700,.3300,.5000,.1700 -corr ,var02,.1800,1.0000,-.1700,.3100,.1600,.1500,.2900,.2900 -corr ,var03,-.2200,-.1700,1.0000,-.1400,-.1200,-.1700,-.2000,-.0500 -corr ,var04,.3600,.3100,-.1400,1.0000,.2200,.2400,.3200,.2000 -corr ,var05,.2700,.1600,-.1200,.2200,1.0000,.2100,.1200,.2700 -corr ,var06,.3300,.1500,-.1700,.2400,.2100,1.0000,.3800,.2000 -corr ,var07,.5000,.2900,-.2000,.3200,.1200,.3800,1.0000,.0400 -corr ,var08,.1700,.2900,-.0500,.2000,.2700,.2000,.0400,1.0000 +mean,,24.3000,5.4000,69.7000,20.1000,13.4000,2.7000,27.9000,3.7000 +STDDEV,,5.7000,1.5000,23.5000,5.8000,2.8000,4.5000,5.4000,1.5000 +n,,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000 +corr,var01,1.0000,.1800,-.2200,.3600,.2700,.3300,.5000,.1700 +corr,var02,.1800,1.0000,-.1700,.3100,.1600,.1500,.2900,.2900 +corr,var03,-.2200,-.1700,1.0000,-.1400,-.1200,-.1700,-.2000,-.0500 +corr,var04,.3600,.3100,-.1400,1.0000,.2200,.2400,.3200,.2000 +corr,var05,.2700,.1600,-.1200,.2200,1.0000,.2100,.1200,.2700 +corr,var06,.3300,.1500,-.1700,.2400,.2100,1.0000,.3800,.2000 +corr,var07,.5000,.2900,-.2000,.3200,.1200,.3800,1.0000,.0400 +corr,var08,.1700,.2900,-.0500,.2000,.2700,.2000,.0400,1.0000 ]) AT_CLEANUP @@ -70,13 +86,13 @@ list. AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl Table: Data List ROWTYPE_,VARNAME_,var01,var02,var03,var04 -mean ,,34.0000,35.0000,36.0000,37.0000 -STDDEV ,,22.0000,11.0000,55.0000,66.0000 -N ,,100.0000,101.0000,102.0000,103.0000 -corr ,var01,1.0000,9.0000,8.0000,7.0000 -corr ,var02,9.0000,1.0000,6.0000,5.0000 -corr ,var03,8.0000,6.0000,1.0000,4.0000 -corr ,var04,7.0000,5.0000,4.0000,1.0000 +mean,,34.0000,35.0000,36.0000,37.0000 +STDDEV,,22.0000,11.0000,55.0000,66.0000 +N,,100.0000,101.0000,102.0000,103.0000 +corr,var01,1.0000,9.0000,8.0000,7.0000 +corr,var02,9.0000,1.0000,6.0000,5.0000 +corr,var03,8.0000,6.0000,1.0000,4.0000 +corr,var04,7.0000,5.0000,4.0000,1.0000 ]) AT_CLEANUP @@ -106,13 +122,13 @@ list. AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl Table: Data List ROWTYPE_,VARNAME_,var01,var02,var03,var04 -MEAN ,,34.0000,35.0000,36.0000,37.0000 -STDDEV ,,22.0000,11.0000,55.0000,66.0000 -N ,,100.0000,101.0000,102.0000,103.0000 -CORR ,var01,1.0000,9.0000,8.0000,7.0000 -CORR ,var02,9.0000,1.0000,6.0000,5.0000 -CORR ,var03,8.0000,6.0000,1.0000,4.0000 -CORR ,var04,7.0000,5.0000,4.0000,1.0000 +MEAN,,34.0000,35.0000,36.0000,37.0000 +STDDEV,,22.0000,11.0000,55.0000,66.0000 +N,,100.0000,101.0000,102.0000,103.0000 +CORR,var01,1.0000,9.0000,8.0000,7.0000 +CORR,var02,9.0000,1.0000,6.0000,5.0000 +CORR,var03,8.0000,6.0000,1.0000,4.0000 +CORR,var04,7.0000,5.0000,4.0000,1.0000 ]) AT_CLEANUP @@ -140,13 +156,13 @@ list. AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl Table: Data List ROWTYPE_,VARNAME_,var01,var02,var03,var04 -mean ,,34.0000,35.0000,36.0000,37.0000 -STDDEV ,,22.0000,11.0000,55.0000,66.0000 -n ,,100.0000,101.0000,102.0000,103.0000 -corr ,var01,1.0000,9.0000,8.0000,7.0000 -corr ,var02,9.0000,1.0000,6.0000,5.0000 -corr ,var03,8.0000,6.0000,1.0000,4.0000 -corr ,var04,7.0000,5.0000,4.0000,1.0000 +mean,,34.0000,35.0000,36.0000,37.0000 +STDDEV,,22.0000,11.0000,55.0000,66.0000 +n,,100.0000,101.0000,102.0000,103.0000 +corr,var01,1.0000,9.0000,8.0000,7.0000 +corr,var02,9.0000,1.0000,6.0000,5.0000 +corr,var03,8.0000,6.0000,1.0000,4.0000 +corr,var04,7.0000,5.0000,4.0000,1.0000 ]) AT_CLEANUP @@ -174,13 +190,13 @@ list. AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl Table: Data List ROWTYPE_,VARNAME_,var01,var02,var03,var04 -mean ,,34.0000,35.0000,36.0000,37.0000 -STDDEV ,,22.0000,11.0000,55.0000,66.0000 -n ,,100.0000,101.0000,102.0000,103.0000 -corr ,var01,1.0000,9.0000,8.0000,7.0000 -corr ,var02,9.0000,1.0000,6.0000,5.0000 -corr ,var03,8.0000,6.0000,1.0000,4.0000 -corr ,var04,7.0000,5.0000,4.0000,1.0000 +mean,,34.0000,35.0000,36.0000,37.0000 +STDDEV,,22.0000,11.0000,55.0000,66.0000 +n,,100.0000,101.0000,102.0000,103.0000 +corr,var01,1.0000,9.0000,8.0000,7.0000 +corr,var02,9.0000,1.0000,6.0000,5.0000 +corr,var03,8.0000,6.0000,1.0000,4.0000 +corr,var04,7.0000,5.0000,4.0000,1.0000 ]) AT_CLEANUP @@ -216,29 +232,30 @@ list. AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl -Variable,Description,Position -s1,Format: F4.0,1 -s2,Format: F4.0,2 -ROWTYPE_,Format: A8,3 -VARNAME_,Format: A8,4 -var01,Format: F10.4,5 -var02,Format: F10.4,6 -var03,Format: F10.4,7 +Table: Variables +Name,Position,Label,Measurement Level,Role,Width,Alignment,Print Format,Write Format,Missing Values +s1,1,,Scale,Input,8,Right,F4.0,F4.0, +s2,2,,Scale,Input,8,Right,F4.0,F4.0, +ROWTYPE_,3,,Nominal,Input,8,Left,A8,A8, +VARNAME_,4,,Nominal,Input,8,Left,A8,A8, +var01,5,,Scale,Input,8,Right,F10.4,F10.4, +var02,6,,Scale,Input,8,Right,F10.4,F10.4, +var03,7,,Scale,Input,8,Right,F10.4,F10.4, Table: Data List s1,s2,ROWTYPE_,VARNAME_,var01,var02,var03 -8,0,mean ,,21.4000,5.0000,72.9000 -8,0,STDDEV ,,6.5000,1.6000,22.8000 -8,0,n ,,106.0000,106.0000,106.0000 -8,0,corr ,var01,1.0000,.4100,-.1600 -8,0,corr ,var02,.4100,1.0000,-.2200 -8,0,corr ,var03,-.1600,-.2200,1.0000 -8,1,mean ,,11.4000,1.0000,52.9000 -8,1,STDDEV ,,9.5000,8.6000,12.8000 -8,1,n ,,10.0000,11.0000,12.0000 -8,1,corr ,var01,1.0000,.5100,.3600 -8,1,corr ,var02,.5100,1.0000,-.4100 -8,1,corr ,var03,.3600,-.4100,1.0000 +8,0,mean,,21.4000,5.0000,72.9000 +8,0,STDDEV,,6.5000,1.6000,22.8000 +8,0,n,,106.0000,106.0000,106.0000 +8,0,corr,var01,1.0000,.4100,-.1600 +8,0,corr,var02,.4100,1.0000,-.2200 +8,0,corr,var03,-.1600,-.2200,1.0000 +8,1,mean,,11.4000,1.0000,52.9000 +8,1,STDDEV,,9.5000,8.6000,12.8000 +8,1,n,,10.0000,11.0000,12.0000 +8,1,corr,var01,1.0000,.5100,.3600 +8,1,corr,var02,.5100,1.0000,-.4100 +8,1,corr,var03,.3600,-.4100,1.0000 ]) AT_CLEANUP @@ -301,13 +318,13 @@ list. AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl Table: Data List ROWTYPE_,VARNAME_,var01,var_two,variable_number_three,variableFour -mean ,,34.0000,35.0000,36.0000,37.0000 -STDDEV ,,22.0000,11.0000,55.0000,66.0000 -N ,,100.0000,101.0000,102.0000,103.0000 -corr ,var01,1.0000,9.0000,8.0000,7.0000 -corr ,var_two,9.0000,1.0000,6.0000,5.0000 -corr ,variable_number_three,8.0000,6.0000,1.0000,4.0000 -corr ,variableFour,7.0000,5.0000,4.0000,1.0000 +mean,,34.0000,35.0000,36.0000,37.0000 +STDDEV,,22.0000,11.0000,55.0000,66.0000 +N,,100.0000,101.0000,102.0000,103.0000 +corr,var01,1.0000,9.0000,8.0000,7.0000 +corr,var_two,9.0000,1.0000,6.0000,5.0000 +corr,variable_number_three,8.0000,6.0000,1.0000,4.0000 +corr,variableFour,7.0000,5.0000,4.0000,1.0000 ]) AT_CLEANUP @@ -318,7 +335,7 @@ AT_SETUP([Matrix reader - read integrity]) dnl Check that matrices presented are read correctly. dnl The example below is an unlikely one since all -dnl covariance/correlation matrices must be symetrical +dnl covariance/correlation matrices must be symmetrical dnl but it serves a purpose for this test. AT_DATA([matrix-reader.pspp], [dnl matrix data @@ -349,9 +366,9 @@ factor /matrix = in (corr = *) AT_CHECK([pspp -O format=csv matrix-reader.pspp], [0], [dnl Table: Correlation Matrix ,,var02,var04,var06 -Correlations,var02,22.00,24.00,26.00 -,var04,42.00,44.00,46.00 -,var06,62.00,64.00,66.00 +Correlation,var02,22.000,24.000,26.000 +,var04,42.000,44.000,46.000 +,var06,62.000,64.000,66.000 Table: Component Matrix ,Component, @@ -362,3 +379,132 @@ var06,9.22,.01 ]) AT_CLEANUP + + +AT_SETUP([Matrix data - too many rows]) + +dnl Test for a crash which occurred when the matrix had more rows declared +dnl than variables to hold them. +AT_DATA([matrix-data.pspp], [dnl +matrix data + variables = rowtype_ + var01 var02 var03 var04 + / format = upper diagonal . +begin data + mean 21.4 5.0 72.9 17.4 + sd 6.5 1.6 22.8 5.7 + n 106 106 106 106 + corr 1.00 .32 .48 .28 + corr 1.00 .72 .54 .44 + corr 1.00 .50 .59 .64 + corr 1.00 .62 .49 -.30 + corr 1.00 .56 -.38 .52 + corr 1.00 -.73 .91 .80 + corr 1.00 -.65 -.60 + corr 1.00 .70 + corr 1.00 +end data . + +execute. +]) + + +AT_CHECK([pspp -O format=csv matrix-data.pspp], [1], [dnl +matrix-data.pspp:13: error: MATRIX DATA: There are 4 variable declared but the data has at least 5 matrix rows. + +matrix-data.pspp:20: error: EXECUTE: EXECUTE is allowed only after the active dataset has been defined. +]) + + +AT_CLEANUP + + + + +AT_SETUP([Matrix data (badly formed)]) + +AT_DATA([data.pspp], [dnl +data list list /ROWTYPE_ (a8) VARNAME_(a4) v1 v2 v3 v4xxxxxxxxxxxxxxxxxxxxxzzzzzzzzzzzzzxxxxxxxxx. +begin data +mean "" 1 2 3 4 +sd "" 5 6 7 8 +n "" 2 3 4 5 +corr v1 11 22 33 44 +corr v2 55 66 77 88 +corr v3 111 222 333 444 +corr v4 4 3 21 1 +end data. + +list. + +factor matrix=in(corr = *) + . +]) + +AT_CHECK([pspp -O format=csv data.pspp], [1], [ignore]) + +AT_CLEANUP + + + + +AT_SETUP([Matrix data (N subcommand)]) + +AT_DATA([matrix-data.pspp], [dnl +matrix data + variables = rowtype_ var01 var02 var03 var04 + /n = 99 + /format = upper nodiagonal. +begin data +mean 34 35 36 37 +sd 22 11 55 66 +n_vector 1 2 3 4 +corr 9 8 7 +corr 6 5 +corr 4 +end data. + +list. +]) + +AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl +"matrix-data.pspp:12: warning: MATRIX DATA: The N subcommand was specified, but a N record was also found in the data. The N record will be ignored." + +Table: Data List +ROWTYPE_,VARNAME_,var01,var02,var03,var04 +N,,99.0000,99.0000,99.0000,99.0000 +mean,,34.0000,35.0000,36.0000,37.0000 +STDDEV,,22.0000,11.0000,55.0000,66.0000 +corr,var01,1.0000,9.0000,8.0000,7.0000 +corr,var02,9.0000,1.0000,6.0000,5.0000 +corr,var03,8.0000,6.0000,1.0000,4.0000 +corr,var04,7.0000,5.0000,4.0000,1.0000 +]) + +AT_CLEANUP + + + +dnl A "no-crash" test. This was observed to cause problems. +dnl See bug #58596 +AT_SETUP([Matrix data crash]) + +AT_DATA([matrix-data.pspp], [dnl +begin data +corr 31 + +matrix data + var1 +begin data + corr 1.00 +end data . + +matrix data + variables = roxtype_ var01 + /format = upper nodiagonal. +begin data +]) + +AT_CHECK([pspp -O format=csv matrix-data.pspp], [1], [ignore]) + +AT_CLEANUP