Merge remote branch 'origin/sourceview'
[pspp] / tests / language / data-io / get-data-spreadsheet.at
1
2 m4_define([SPREADSHEET_TEST_PREP],[dnl
3  m4_if($1,[GNM],[dnl
4     AT_CHECK([gzip -c $top_srcdir/tests/language/data-io/Book1.gnm.unzipped > Book1.gnumeric])dnl
5     m4_define([testsheet],[Book1.gnumeric])dnl
6     AT_SKIP_IF([test n$GNM_SUPPORT != nyes])dnl
7     ]) dnl
8  m4_if($1,[ODS],[dnl
9     AT_CHECK([cp $top_srcdir/tests/language/data-io/test.ods test.ods])dnl
10     m4_define([testsheet],[test.ods])dnl
11     AT_SKIP_IF([test n$ODF_READ_SUPPORT != nyes])dnl
12     ])dnl
13 ])
14
15 m4_define([CHECK_SPREADSHEET_READER],
16  [dnl
17 AT_SETUP([GET DATA /TYPE=$1 with CELLRANGE])
18 SPREADSHEET_TEST_PREP($1)
19 AT_DATA([get-data.sps], [dnl
20 GET DATA /TYPE=$1 /FILE='testsheet'  /READNAMES=off /SHEET=name 'This' /CELLRANGE=range 'g9:i13' .
21 DISPLAY VARIABLES.
22 LIST.
23 ])
24 AT_CHECK([pspp -o pspp.csv get-data.sps])
25 AT_CHECK([cat pspp.csv], [0], [dnl
26 Variable,Description,,Position
27 VAR001,Format: F8.2,,1
28 ,Measure: Scale,,
29 ,Display Alignment: Right,,
30 ,Display Width: 8,,
31 VAR002,Format: A8,,2
32 ,Measure: Nominal,,
33 ,Display Alignment: Left,,
34 ,Display Width: 8,,
35 VAR003,Format: F8.2,,3
36 ,Measure: Scale,,
37 ,Display Alignment: Right,,
38 ,Display Width: 8,,
39
40 Table: Data List
41 VAR001,VAR002,VAR003
42 .00,fred    ,20.00
43 1.00,11      ,21.00
44 2.00,twelve  ,22.00
45 3.00,13      ,23.00
46 4.00,14      ,24.00
47 ])
48 AT_CLEANUP
49
50 AT_SETUP([GET DATA /TYPE=$1 with CELLRANGE and READNAMES])
51 SPREADSHEET_TEST_PREP($1)
52 AT_DATA([get-data.sps], [dnl
53 GET DATA /TYPE=$1 /FILE='testsheet'  /READNAMES=on /SHEET=name 'This' /CELLRANGE=range 'g8:i13' .
54 DISPLAY VARIABLES.
55 LIST.
56 ])
57 AT_CHECK([pspp -o pspp.csv get-data.sps])
58 AT_CHECK([cat pspp.csv], [0], [dnl
59 Variable,Description,,Position
60 V1,Format: F8.2,,1
61 ,Measure: Scale,,
62 ,Display Alignment: Right,,
63 ,Display Width: 8,,
64 V2,Format: A8,,2
65 ,Measure: Nominal,,
66 ,Display Alignment: Left,,
67 ,Display Width: 8,,
68 VAR001,Format: F8.2,,3
69 ,Measure: Scale,,
70 ,Display Alignment: Right,,
71 ,Display Width: 8,,
72
73 Table: Data List
74 V1,V2,VAR001
75 .00,fred    ,20.00
76 1.00,11      ,21.00
77 2.00,twelve  ,22.00
78 3.00,13      ,23.00
79 4.00,14      ,24.00
80 ])
81 AT_CLEANUP
82
83 AT_SETUP([GET DATA /TYPE=$1 without CELLRANGE])
84 SPREADSHEET_TEST_PREP($1)
85 AT_DATA([get-data.sps], [dnl
86 GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=index 3.
87 DISPLAY VARIABLES.
88 LIST.
89 ])
90 AT_CHECK([pspp -o pspp.csv get-data.sps])
91 AT_CHECK([cat pspp.csv], [0], [dnl
92 Variable,Description,,Position
93 name,Format: A8,,1
94 ,Measure: Nominal,,
95 ,Display Alignment: Left,,
96 ,Display Width: 8,,
97 id,Format: F8.2,,2
98 ,Measure: Scale,,
99 ,Display Alignment: Right,,
100 ,Display Width: 8,,
101 height,Format: F8.2,,3
102 ,Measure: Scale,,
103 ,Display Alignment: Right,,
104 ,Display Width: 8,,
105
106 Table: Data List
107 name,id,height
108 fred    ,.00,23.40
109 bert    ,1.00,.56
110 charlie ,2.00,.  @&t@
111 dick    ,3.00,-34.09
112 ])
113 AT_CLEANUP
114
115 AT_SETUP([GET DATA /TYPE=$1 with missing data])
116 SPREADSHEET_TEST_PREP($1)
117 AT_DATA([get-data.sps], [dnl
118 * This sheet has no data in one of its variables
119 GET DATA /TYPE=$1 /FILE='testsheet' /READNAMES=on /SHEET=index 5.
120 DISPLAY VARIABLES.
121 LIST.
122 ])
123 AT_CHECK([pspp -o pspp.csv get-data.sps])
124 AT_CHECK([cat pspp.csv], [0], [dnl
125 Variable,Description,,Position
126 vone,Format: F8.2,,1
127 ,Measure: Scale,,
128 ,Display Alignment: Right,,
129 ,Display Width: 8,,
130 vtwo,Format: F8.2,,2
131 ,Measure: Scale,,
132 ,Display Alignment: Right,,
133 ,Display Width: 8,,
134 vthree,Format: A8,,3
135 ,Measure: Nominal,,
136 ,Display Alignment: Left,,
137 ,Display Width: 8,,
138 v4,Format: F8.2,,4
139 ,Measure: Scale,,
140 ,Display Alignment: Right,,
141 ,Display Width: 8,,
142
143 Table: Data List
144 vone,vtwo,vthree,v4
145 1.00,3.00,,5.00
146 2.00,4.00,,6.00
147 ])
148 AT_CLEANUP
149
150 AT_SETUP([GET DATA /TYPE=$1 with empty sheet])
151 SPREADSHEET_TEST_PREP($1)
152 AT_DATA([get-data.sps], [dnl
153 * This sheet is empty
154 GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=name 'Empty'.
155 ])
156 AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [dnl
157 warning: Selected sheet or range of spreadsheet `testsheet' is empty.
158 ])
159 AT_CLEANUP
160
161 AT_SETUP([GET DATA /TYPE=$1 with nonexistent sheet])
162 SPREADSHEET_TEST_PREP($1)
163 AT_DATA([get-data.sps], [dnl
164 * This sheet doesnt exist.
165 GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=name 'foobarxx'.
166 ])
167 AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [dnl
168 warning: Selected sheet or range of spreadsheet `testsheet' is empty.
169 ])
170 AT_CLEANUP
171 ])
172
173
174 AT_BANNER([GET DATA Spreadsheet /TYPE=GNM])
175
176 CHECK_SPREADSHEET_READER([GNM])
177
178 AT_BANNER([GET DATA Spreadsheet /TYPE=ODS])
179
180 CHECK_SPREADSHEET_READER([ODS])
181