output: Introduce pivot tables.
[pspp] / tests / language / data-io / matrix-data.at
index 058dc3f08e4c3acbf16b36ee5ef08a1b8779d5cd..b590061efbd2fcfa39efee4aedd31c0155c4cc34 100644 (file)
@@ -1,3 +1,19 @@
+dnl PSPP - a program for statistical analysis.
+dnl Copyright (C) 2017 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 <http://www.gnu.org/licenses/>.
+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,
@@ -400,3 +417,68 @@ matrix-data.pspp:20: error: EXECUTE: EXECUTE is allowed only after the active da
 
 
 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