AT_BANNER([MATRIX DATA]) AT_SETUP([Matrix data (lower file)]) AT_DATA([matrix-data.pspp], [dnl matrix data variables = rowtype_ var01 TO var08 /format = lower diagonal /file = 'matrix.dat' . list. ]) AT_DATA([matrix.dat], [dnl mean 24.3 5.4 69.7 20.1 13.4 2.7 27.9 3.7 sd 5.7 1.5 23.5 5.8 2.8 4.5 5.4 1.5 n 92 92 92 92 92 92 92 92 corr 1.00 corr .18 1.00 corr -.22 -.17 1.00 corr .36 .31 -.14 1.00 corr .27 .16 -.12 .22 1.00 corr .33 .15 -.17 .24 .21 1.00 corr .50 .29 -.20 .32 .12 .38 1.00 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 ]) AT_CLEANUP AT_SETUP([Matrix data (upper)]) AT_DATA([matrix-data.pspp], [dnl matrix data variables = rowtype_ var01 var02 var03 var04 /format = upper diagonal. begin data mean 34 35 36 37 sd 22 11 55 66 n_vector 100 101 102 103 corr 1 9 8 7 corr 1 6 5 corr 1 4 corr 1 end data. 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 ]) AT_CLEANUP AT_SETUP([Matrix data (full)]) dnl Just for fun, this one is in a different case. AT_DATA([matrix-data.pspp], [dnl matrix data variables = ROWTYPE_ var01 var02 var03 var04 /format = full diagonal. begin data MEAN 34 35 36 37 SD 22 11 55 66 N 100 101 102 103 CORR 1 9 8 7 CORR 9 1 6 5 CORR 8 6 1 4 CORR 7 5 4 1 end data. 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 ]) AT_CLEANUP AT_SETUP([Matrix data (upper nodiagonal)]) AT_DATA([matrix-data.pspp], [dnl matrix data variables = rowtype_ var01 var02 var03 var04 /format = upper nodiagonal. begin data mean 34 35 36 37 sd 22 11 55 66 n 100 101 102 103 corr 9 8 7 corr 6 5 corr 4 end data. 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 ]) AT_CLEANUP AT_SETUP([Matrix data (lower nodiagonal)]) AT_DATA([matrix-data.pspp], [dnl matrix data variables = rowtype_ var01 var02 var03 var04 /format = lower nodiagonal. begin data mean 34 35 36 37 sd 22 11 55 66 n 100 101 102 103 corr 9 corr 8 6 corr 7 5 4 end data. 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 ]) AT_CLEANUP AT_SETUP([Matrix data split data]) AT_DATA([matrix-data.pspp], [dnl matrix data variables = s1 s2 rowtype_ var01 var02 var03 /split=s1 s2. begin data 8 0 mean 21.4 5.0 72.9 8 0 sd 6.5 1.6 22.8 8 0 n 106 106 106 8 0 corr 1 8 0 corr .41 1 8 0 corr -.16 -.22 1 8 1 mean 11.4 1.0 52.9 8 1 sd 9.5 8.6 12.8 8 1 n 10 11 12 8 1 corr 1 8 1 corr .51 1 8 1 corr .36 -.41 1 end data. display dictionary. 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: 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 ]) AT_CLEANUP AT_SETUP([Matrix data duplicate variable]) dnl Negative test to check for sane behaviour in the face of bad syntax AT_DATA([matrix-data.pspp], [dnl set decimal = dot . matrix data variables = s1 s1 rowtype_ var01 var02 var03 /split=s1. begin data 0 mean 21.4 5.0 72.9 0 sd 6.5 1.6 22.8 0 n 106 106 106 0 corr 1 0 corr .41 1 0 corr -.16 -.22 1 end data . list. ]) AT_CHECK([pspp -O format=csv matrix-data.pspp], [1], [dnl matrix-data.pspp:3: error: MATRIX DATA: Variable s1 appears twice in variable list. matrix-data.pspp:6: error: Stopping syntax file processing here to avoid a cascade of dependent command failures. ]) AT_CLEANUP