1 AT_BANNER([MATRIX DATA])
3 AT_SETUP([Matrix data (lower file)])
5 AT_DATA([matrix-data.pspp], [dnl
9 /format = lower diagonal
16 AT_DATA([matrix.dat], [dnl
17 mean 24.3 5.4 69.7 20.1 13.4 2.7 27.9 3.7
18 sd 5.7 1.5 23.5 5.8 2.8 4.5 5.4 1.5
19 n 92 92 92 92 92 92 92 92
23 corr .36 .31 -.14 1.00
24 corr .27 .16 -.12 .22 1.00
25 corr .33 .15 -.17 .24 .21 1.00
26 corr .50 .29 -.20 .32 .12 .38 1.00
27 corr .17 .29 -.05 .20 .27 .20 .04 1.00
31 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
33 ROWTYPE_,VARNAME_,var01,var02,var03,var04,var05,var06,var07,var08
34 mean ,,24.3000,5.4000,69.7000,20.1000,13.4000,2.7000,27.9000,3.7000
35 STDDEV ,,5.7000,1.5000,23.5000,5.8000,2.8000,4.5000,5.4000,1.5000
36 n ,,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000,92.0000
37 corr ,var01,1.0000,.1800,-.2200,.3600,.2700,.3300,.5000,.1700
38 corr ,var02,.1800,1.0000,-.1700,.3100,.1600,.1500,.2900,.2900
39 corr ,var03,-.2200,-.1700,1.0000,-.1400,-.1200,-.1700,-.2000,-.0500
40 corr ,var04,.3600,.3100,-.1400,1.0000,.2200,.2400,.3200,.2000
41 corr ,var05,.2700,.1600,-.1200,.2200,1.0000,.2100,.1200,.2700
42 corr ,var06,.3300,.1500,-.1700,.2400,.2100,1.0000,.3800,.2000
43 corr ,var07,.5000,.2900,-.2000,.3200,.1200,.3800,1.0000,.0400
44 corr ,var08,.1700,.2900,-.0500,.2000,.2700,.2000,.0400,1.0000
50 AT_SETUP([Matrix data (upper)])
52 AT_DATA([matrix-data.pspp], [dnl
54 variables = rowtype_ var01 var02 var03 var04
55 /format = upper diagonal.
60 n_vector 100 101 102 103
70 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
72 ROWTYPE_,VARNAME_,var01,var02,var03,var04
73 mean ,,34.0000,35.0000,36.0000,37.0000
74 STDDEV ,,22.0000,11.0000,55.0000,66.0000
75 N ,,100.0000,101.0000,102.0000,103.0000
76 corr ,var01,1.0000,9.0000,8.0000,7.0000
77 corr ,var02,9.0000,1.0000,6.0000,5.0000
78 corr ,var03,8.0000,6.0000,1.0000,4.0000
79 corr ,var04,7.0000,5.0000,4.0000,1.0000
84 AT_SETUP([Matrix data (full)])
86 dnl Just for fun, this one is in a different case.
87 AT_DATA([matrix-data.pspp], [dnl
89 variables = ROWTYPE_ var01 var02 var03 var04
90 /format = full diagonal.
106 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
108 ROWTYPE_,VARNAME_,var01,var02,var03,var04
109 MEAN ,,34.0000,35.0000,36.0000,37.0000
110 STDDEV ,,22.0000,11.0000,55.0000,66.0000
111 N ,,100.0000,101.0000,102.0000,103.0000
112 CORR ,var01,1.0000,9.0000,8.0000,7.0000
113 CORR ,var02,9.0000,1.0000,6.0000,5.0000
114 CORR ,var03,8.0000,6.0000,1.0000,4.0000
115 CORR ,var04,7.0000,5.0000,4.0000,1.0000
121 AT_SETUP([Matrix data (upper nodiagonal)])
123 AT_DATA([matrix-data.pspp], [dnl
125 variables = rowtype_ var01 var02 var03 var04
126 /format = upper nodiagonal.
140 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
142 ROWTYPE_,VARNAME_,var01,var02,var03,var04
143 mean ,,34.0000,35.0000,36.0000,37.0000
144 STDDEV ,,22.0000,11.0000,55.0000,66.0000
145 n ,,100.0000,101.0000,102.0000,103.0000
146 corr ,var01,1.0000,9.0000,8.0000,7.0000
147 corr ,var02,9.0000,1.0000,6.0000,5.0000
148 corr ,var03,8.0000,6.0000,1.0000,4.0000
149 corr ,var04,7.0000,5.0000,4.0000,1.0000
155 AT_SETUP([Matrix data (lower nodiagonal)])
157 AT_DATA([matrix-data.pspp], [dnl
159 variables = rowtype_ var01 var02 var03 var04
160 /format = lower nodiagonal.
174 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
176 ROWTYPE_,VARNAME_,var01,var02,var03,var04
177 mean ,,34.0000,35.0000,36.0000,37.0000
178 STDDEV ,,22.0000,11.0000,55.0000,66.0000
179 n ,,100.0000,101.0000,102.0000,103.0000
180 corr ,var01,1.0000,9.0000,8.0000,7.0000
181 corr ,var02,9.0000,1.0000,6.0000,5.0000
182 corr ,var03,8.0000,6.0000,1.0000,4.0000
183 corr ,var04,7.0000,5.0000,4.0000,1.0000
190 AT_SETUP([Matrix data split data])
192 AT_DATA([matrix-data.pspp], [dnl
194 variables = s1 s2 rowtype_ var01 var02 var03
198 8 0 mean 21.4 5.0 72.9
204 8 1 mean 11.4 1.0 52.9
218 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
219 Variable,Description,Position
222 ROWTYPE_,Format: A8,3
223 VARNAME_,Format: A8,4
224 var01,Format: F10.4,5
225 var02,Format: F10.4,6
226 var03,Format: F10.4,7
229 s1,s2,ROWTYPE_,VARNAME_,var01,var02,var03
230 8,0,mean ,,21.4000,5.0000,72.9000
231 8,0,STDDEV ,,6.5000,1.6000,22.8000
232 8,0,n ,,106.0000,106.0000,106.0000
233 8,0,corr ,var01,1.0000,.4100,-.1600
234 8,0,corr ,var02,.4100,1.0000,-.2200
235 8,0,corr ,var03,-.1600,-.2200,1.0000
236 8,1,mean ,,11.4000,1.0000,52.9000
237 8,1,STDDEV ,,9.5000,8.6000,12.8000
238 8,1,n ,,10.0000,11.0000,12.0000
239 8,1,corr ,var01,1.0000,.5100,.3600
240 8,1,corr ,var02,.5100,1.0000,-.4100
241 8,1,corr ,var03,.3600,-.4100,1.0000
249 AT_SETUP([Matrix data duplicate variable])
251 dnl Negative test to check for sane behaviour in the face of bad syntax
252 AT_DATA([matrix-data.pspp], [dnl
255 variables = s1 s1 rowtype_ var01 var02 var03
271 AT_CHECK([pspp -O format=csv matrix-data.pspp], [1], [dnl
272 matrix-data.pspp:3: error: MATRIX DATA: Variable s1 appears twice in variable list.
274 matrix-data.pspp:6: error: Stopping syntax file processing here to avoid a cascade of dependent command failures.
281 AT_SETUP([Matrix data - long variable names])
283 AT_DATA([matrix-data.pspp], [dnl
285 variables = rowtype_ var01 var_two variable_number_three variableFour
286 /format = upper diagonal.
291 n_vector 100 101 102 103
301 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
303 ROWTYPE_,VARNAME_,var01,var_two,variable_number_three,variableFour
304 mean ,,34.0000,35.0000,36.0000,37.0000
305 STDDEV ,,22.0000,11.0000,55.0000,66.0000
306 N ,,100.0000,101.0000,102.0000,103.0000
307 corr ,var01,1.0000,9.0000,8.0000,7.0000
308 corr ,var_two,9.0000,1.0000,6.0000,5.0000
309 corr ,variable_number_three,8.0000,6.0000,1.0000,4.0000
310 corr ,variableFour,7.0000,5.0000,4.0000,1.0000
317 AT_SETUP([Matrix reader - read integrity])
319 dnl Check that matrices presented are read correctly.
320 dnl The example below is an unlikely one since all
321 dnl covariance/correlation matrices must be symetrical
322 dnl but it serves a purpose for this test.
323 AT_DATA([matrix-reader.pspp], [dnl
325 variables = rowtype_ var01 to var9
330 sd 100 200 300 400 500 600 700 800 900
331 corr 11 12 13 14 15 16 17 18 19
332 corr 21 22 23 24 25 26 27 28 29
333 corr 31 32 33 34 35 36 37 38 39
334 corr 41 42 43 44 45 46 47 48 49
335 corr 51 52 53 54 55 56 57 58 59
336 corr 61 62 63 64 65 66 67 68 69
337 corr 71 72 73 74 75 76 77 78 79
338 corr 81 82 83 84 85 86 87 88 89
339 corr 91 92 93 94 95 96 97 98 99
342 factor /matrix = in (corr = *)
343 /analysis var02 var04 var06
344 /method = correlation
349 AT_CHECK([pspp -O format=csv matrix-reader.pspp], [0], [dnl
350 Table: Correlation Matrix
352 Correlations,var02,22.00,24.00,26.00
353 ,var04,42.00,44.00,46.00
354 ,var06,62.00,64.00,66.00
356 Table: Component Matrix
367 AT_SETUP([Matrix data - too many rows])
369 dnl Test for a crash which occurred when the matrix had more rows declared
370 dnl than variables to hold them.
371 AT_DATA([matrix-data.pspp], [dnl
374 var01 var02 var03 var04
375 / format = upper diagonal .
377 mean 21.4 5.0 72.9 17.4
380 corr 1.00 .32 .48 .28
381 corr 1.00 .72 .54 .44
382 corr 1.00 .50 .59 .64
383 corr 1.00 .62 .49 -.30
384 corr 1.00 .56 -.38 .52
385 corr 1.00 -.73 .91 .80
395 AT_CHECK([pspp -O format=csv matrix-data.pspp], [1], [dnl
396 matrix-data.pspp:13: error: MATRIX DATA: There are 4 variable declared but the data has at least 5 matrix rows.
398 matrix-data.pspp:20: error: EXECUTE: EXECUTE is allowed only after the active dataset has been defined.
407 AT_SETUP([Matrix data (badly formed)])
409 AT_DATA([data.pspp], [dnl
410 data list list /ROWTYPE_ (a8) VARNAME_(a4) v1 v2 v3 v4xxxxxxxxxxxxxxxxxxxxxzzzzzzzzzzzzzxxxxxxxxx.
417 corr v3 111 222 333 444
423 factor matrix=in(corr = *)
427 AT_CHECK([pspp -O format=csv data.pspp], [1], [ignore])
434 AT_SETUP([Matrix data (N subcommand)])
436 AT_DATA([matrix-data.pspp], [dnl
438 variables = rowtype_ var01 var02 var03 var04
440 /format = upper nodiagonal.
453 AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
454 "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."
457 ROWTYPE_,VARNAME_,var01,var02,var03,var04
458 N ,,99.0000,99.0000,99.0000,99.0000
459 mean ,,34.0000,35.0000,36.0000,37.0000
460 STDDEV ,,22.0000,11.0000,55.0000,66.0000
461 corr ,var01,1.0000,9.0000,8.0000,7.0000
462 corr ,var02,9.0000,1.0000,6.0000,5.0000
463 corr ,var03,8.0000,6.0000,1.0000,4.0000
464 corr ,var04,7.0000,5.0000,4.0000,1.0000