1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 dnl GNU General Public License for more details.
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
16 dnl AT_BANNER([MATRIX DATA])
18 AT_SETUP([Matrix data (lower file)])
20 AT_DATA([matrix-data.pspp], [dnl
24 /format = lower diagonal
31 AT_DATA([matrix.dat], [dnl
32 mean 24.3 5.4 69.7 20.1 13.4 2.7 27.9 3.7
33 sd 5.7 1.5 23.5 5.8 2.8 4.5 5.4 1.5
34 n 92 92 92 92 92 92 92 92
38 corr .36 .31 -.14 1.00
39 corr .27 .16 -.12 .22 1.00
40 corr .33 .15 -.17 .24 .21 1.00
41 corr .50 .29 -.20 .32 .12 .38 1.00
42 corr .17 .29 -.05 .20 .27 .20 .04 1.00
46 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
48 ROWTYPE_,VARNAME_,var01,var02,var03,var04,var05,var06,var07,var08
49 mean ,,24.3000,5.4000,69.7000,20.1000,13.4000,2.7000,27.9000,3.7000
50 STDDEV ,,5.7000,1.5000,23.5000,5.8000,2.8000,4.5000,5.4000,1.5000
51 n ,,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000
52 corr ,var01,1.0000,.1800,-.2200,.3600,.2700,.3300,.5000,.1700
53 corr ,var02,.1800,1.0000,-.1700,.3100,.1600,.1500,.2900,.2900
54 corr ,var03,-.2200,-.1700,1.0000,-.1400,-.1200,-.1700,-.2000,-.0500
55 corr ,var04,.3600,.3100,-.1400,1.0000,.2200,.2400,.3200,.2000
56 corr ,var05,.2700,.1600,-.1200,.2200,1.0000,.2100,.1200,.2700
57 corr ,var06,.3300,.1500,-.1700,.2400,.2100,1.0000,.3800,.2000
58 corr ,var07,.5000,.2900,-.2000,.3200,.1200,.3800,1.0000,.0400
59 corr ,var08,.1700,.2900,-.0500,.2000,.2700,.2000,.0400,1.0000
65 AT_SETUP([Matrix data (upper)])
67 AT_DATA([matrix-data.pspp], [dnl
69 variables = rowtype_ var01 var02 var03 var04
70 /format = upper diagonal.
75 n_vector 100 101 102 103
85 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
87 ROWTYPE_,VARNAME_,var01,var02,var03,var04
88 mean ,,34.0000,35.0000,36.0000,37.0000
89 STDDEV ,,22.0000,11.0000,55.0000,66.0000
90 N ,,100.0000,101.0000,102.0000,103.0000
91 corr ,var01,1.0000,9.0000,8.0000,7.0000
92 corr ,var02,9.0000,1.0000,6.0000,5.0000
93 corr ,var03,8.0000,6.0000,1.0000,4.0000
94 corr ,var04,7.0000,5.0000,4.0000,1.0000
99 AT_SETUP([Matrix data (full)])
101 dnl Just for fun, this one is in a different case.
102 AT_DATA([matrix-data.pspp], [dnl
104 variables = ROWTYPE_ var01 var02 var03 var04
105 /format = full diagonal.
121 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
123 ROWTYPE_,VARNAME_,var01,var02,var03,var04
124 MEAN ,,34.0000,35.0000,36.0000,37.0000
125 STDDEV ,,22.0000,11.0000,55.0000,66.0000
126 N ,,100.0000,101.0000,102.0000,103.0000
127 CORR ,var01,1.0000,9.0000,8.0000,7.0000
128 CORR ,var02,9.0000,1.0000,6.0000,5.0000
129 CORR ,var03,8.0000,6.0000,1.0000,4.0000
130 CORR ,var04,7.0000,5.0000,4.0000,1.0000
136 AT_SETUP([Matrix data (upper nodiagonal)])
138 AT_DATA([matrix-data.pspp], [dnl
140 variables = rowtype_ var01 var02 var03 var04
141 /format = upper nodiagonal.
155 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
157 ROWTYPE_,VARNAME_,var01,var02,var03,var04
158 mean ,,34.0000,35.0000,36.0000,37.0000
159 STDDEV ,,22.0000,11.0000,55.0000,66.0000
160 n ,,100.0000,101.0000,102.0000,103.0000
161 corr ,var01,1.0000,9.0000,8.0000,7.0000
162 corr ,var02,9.0000,1.0000,6.0000,5.0000
163 corr ,var03,8.0000,6.0000,1.0000,4.0000
164 corr ,var04,7.0000,5.0000,4.0000,1.0000
170 AT_SETUP([Matrix data (lower nodiagonal)])
172 AT_DATA([matrix-data.pspp], [dnl
174 variables = rowtype_ var01 var02 var03 var04
175 /format = lower nodiagonal.
189 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
191 ROWTYPE_,VARNAME_,var01,var02,var03,var04
192 mean ,,34.0000,35.0000,36.0000,37.0000
193 STDDEV ,,22.0000,11.0000,55.0000,66.0000
194 n ,,100.0000,101.0000,102.0000,103.0000
195 corr ,var01,1.0000,9.0000,8.0000,7.0000
196 corr ,var02,9.0000,1.0000,6.0000,5.0000
197 corr ,var03,8.0000,6.0000,1.0000,4.0000
198 corr ,var04,7.0000,5.0000,4.0000,1.0000
205 AT_SETUP([Matrix data split data])
207 AT_DATA([matrix-data.pspp], [dnl
209 variables = s1 s2 rowtype_ var01 var02 var03
213 8 0 mean 21.4 5.0 72.9
219 8 1 mean 11.4 1.0 52.9
233 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
234 Variable,Description,Position
237 ROWTYPE_,Format: A8,3
238 VARNAME_,Format: A8,4
239 var01,Format: F10.4,5
240 var02,Format: F10.4,6
241 var03,Format: F10.4,7
244 s1,s2,ROWTYPE_,VARNAME_,var01,var02,var03
245 8,0,mean ,,21.4000,5.0000,72.9000
246 8,0,STDDEV ,,6.5000,1.6000,22.8000
247 8,0,n ,,106.0000,106.0000,106.0000
248 8,0,corr ,var01,1.0000,.4100,-.1600
249 8,0,corr ,var02,.4100,1.0000,-.2200
250 8,0,corr ,var03,-.1600,-.2200,1.0000
251 8,1,mean ,,11.4000,1.0000,52.9000
252 8,1,STDDEV ,,9.5000,8.6000,12.8000
253 8,1,n ,,10.0000,11.0000,12.0000
254 8,1,corr ,var01,1.0000,.5100,.3600
255 8,1,corr ,var02,.5100,1.0000,-.4100
256 8,1,corr ,var03,.3600,-.4100,1.0000
264 AT_SETUP([Matrix data duplicate variable])
266 dnl Negative test to check for sane behaviour in the face of bad syntax
267 AT_DATA([matrix-data.pspp], [dnl
270 variables = s1 s1 rowtype_ var01 var02 var03
286 AT_CHECK([pspp -O format=csv matrix-data.pspp], [1], [dnl
287 matrix-data.pspp:3: error: MATRIX DATA: Variable s1 appears twice in variable list.
289 matrix-data.pspp:6: error: Stopping syntax file processing here to avoid a cascade of dependent command failures.
296 AT_SETUP([Matrix data - long variable names])
298 AT_DATA([matrix-data.pspp], [dnl
300 variables = rowtype_ var01 var_two variable_number_three variableFour
301 /format = upper diagonal.
306 n_vector 100 101 102 103
316 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
318 ROWTYPE_,VARNAME_,var01,var_two,variable_number_three,variableFour
319 mean ,,34.0000,35.0000,36.0000,37.0000
320 STDDEV ,,22.0000,11.0000,55.0000,66.0000
321 N ,,100.0000,101.0000,102.0000,103.0000
322 corr ,var01,1.0000,9.0000,8.0000,7.0000
323 corr ,var_two,9.0000,1.0000,6.0000,5.0000
324 corr ,variable_number_three,8.0000,6.0000,1.0000,4.0000
325 corr ,variableFour,7.0000,5.0000,4.0000,1.0000
332 AT_SETUP([Matrix reader - read integrity])
334 dnl Check that matrices presented are read correctly.
335 dnl The example below is an unlikely one since all
336 dnl covariance/correlation matrices must be symetrical
337 dnl but it serves a purpose for this test.
338 AT_DATA([matrix-reader.pspp], [dnl
340 variables = rowtype_ var01 to var9
345 sd 100 200 300 400 500 600 700 800 900
346 corr 11 12 13 14 15 16 17 18 19
347 corr 21 22 23 24 25 26 27 28 29
348 corr 31 32 33 34 35 36 37 38 39
349 corr 41 42 43 44 45 46 47 48 49
350 corr 51 52 53 54 55 56 57 58 59
351 corr 61 62 63 64 65 66 67 68 69
352 corr 71 72 73 74 75 76 77 78 79
353 corr 81 82 83 84 85 86 87 88 89
354 corr 91 92 93 94 95 96 97 98 99
357 factor /matrix = in (corr = *)
358 /analysis var02 var04 var06
359 /method = correlation
364 AT_CHECK([pspp -O format=csv matrix-reader.pspp], [0], [dnl
365 Table: Correlation Matrix
367 Correlations,var02,22.00,24.00,26.00
368 ,var04,42.00,44.00,46.00
369 ,var06,62.00,64.00,66.00
371 Table: Component Matrix
382 AT_SETUP([Matrix data - too many rows])
384 dnl Test for a crash which occurred when the matrix had more rows declared
385 dnl than variables to hold them.
386 AT_DATA([matrix-data.pspp], [dnl
389 var01 var02 var03 var04
390 / format = upper diagonal .
392 mean 21.4 5.0 72.9 17.4
395 corr 1.00 .32 .48 .28
396 corr 1.00 .72 .54 .44
397 corr 1.00 .50 .59 .64
398 corr 1.00 .62 .49 -.30
399 corr 1.00 .56 -.38 .52
400 corr 1.00 -.73 .91 .80
410 AT_CHECK([pspp -O format=csv matrix-data.pspp], [1], [dnl
411 matrix-data.pspp:13: error: MATRIX DATA: There are 4 variable declared but the data has at least 5 matrix rows.
413 matrix-data.pspp:20: error: EXECUTE: EXECUTE is allowed only after the active dataset has been defined.
422 AT_SETUP([Matrix data (badly formed)])
424 AT_DATA([data.pspp], [dnl
425 data list list /ROWTYPE_ (a8) VARNAME_(a4) v1 v2 v3 v4xxxxxxxxxxxxxxxxxxxxxzzzzzzzzzzzzzxxxxxxxxx.
432 corr v3 111 222 333 444
438 factor matrix=in(corr = *)
442 AT_CHECK([pspp -O format=csv data.pspp], [1], [ignore])
449 AT_SETUP([Matrix data (N subcommand)])
451 AT_DATA([matrix-data.pspp], [dnl
453 variables = rowtype_ var01 var02 var03 var04
455 /format = upper nodiagonal.
468 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
469 "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."
472 ROWTYPE_,VARNAME_,var01,var02,var03,var04
473 N ,,99.0000,99.0000,99.0000,99.0000
474 mean ,,34.0000,35.0000,36.0000,37.0000
475 STDDEV ,,22.0000,11.0000,55.0000,66.0000
476 corr ,var01,1.0000,9.0000,8.0000,7.0000
477 corr ,var02,9.0000,1.0000,6.0000,5.0000
478 corr ,var03,8.0000,6.0000,1.0000,4.0000
479 corr ,var04,7.0000,5.0000,4.0000,1.0000