2 m4_define([SPREADSHEET_TEST_PREP],[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
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
15 m4_define([CHECK_SPREADSHEET_READER],
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' .
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
29 ,Display Alignment: Right,,
33 ,Display Alignment: Left,,
35 VAR003,Format: F8.2,,3
37 ,Display Alignment: Right,,
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' .
57 AT_CHECK([pspp -o pspp.csv get-data.sps])
58 AT_CHECK([cat pspp.csv], [0], [dnl
59 Variable,Description,,Position
62 ,Display Alignment: Right,,
66 ,Display Alignment: Left,,
68 VAR001,Format: F8.2,,3
70 ,Display Alignment: Right,,
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.
90 AT_CHECK([pspp -o pspp.csv get-data.sps])
91 AT_CHECK([cat pspp.csv], [0], [dnl
92 Variable,Description,,Position
95 ,Display Alignment: Left,,
99 ,Display Alignment: Right,,
101 height,Format: F8.2,,3
103 ,Display Alignment: Right,,
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.
123 AT_CHECK([pspp -o pspp.csv get-data.sps])
124 AT_CHECK([cat pspp.csv], [0], [dnl
125 Variable,Description,,Position
128 ,Display Alignment: Right,,
132 ,Display Alignment: Right,,
136 ,Display Alignment: Left,,
140 ,Display Alignment: Right,,
150 dnl This syntax doesn't do anything particularly useful.
151 dnl It has been seen to cause a few crashes, so we check here that it
152 dnl doesn't do anthing bad.
153 AT_SETUP([GET DATA /TYPE=$1 with no options])
154 SPREADSHEET_TEST_PREP($1)
155 AT_DATA([get-data.sps], [dnl
156 * This sheet is empty
157 GET DATA /TYPE=$1 /FILE='testsheet'.
161 AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [ignore])
166 AT_SETUP([GET DATA /TYPE=$1 with empty sheet])
167 SPREADSHEET_TEST_PREP($1)
168 AT_DATA([get-data.sps], [dnl
169 * This sheet is empty
170 GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=name 'Empty'.
172 AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [dnl
173 warning: Selected sheet or range of spreadsheet `testsheet' is empty.
177 AT_SETUP([GET DATA /TYPE=$1 with nonexistent sheet])
178 SPREADSHEET_TEST_PREP($1)
179 AT_DATA([get-data.sps], [dnl
180 * This sheet doesnt exist.
181 GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=name 'foobarxx'.
183 AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [dnl
184 warning: Selected sheet or range of spreadsheet `testsheet' is empty.
190 AT_BANNER([GET DATA Spreadsheet /TYPE=GNM])
192 CHECK_SPREADSHEET_READER([GNM])
194 dnl Check for a bug where gnumeric files were interpreted incorrectly
195 AT_SETUP([GET DATA /TYPE=GNM sheet index bug])
196 AT_DATA([minimal3.gnumeric],[dnl
197 <?xml version="1.0" encoding="UTF-8"?>
198 <gnm:Workbook xmlns:gnm="http://www.gnumeric.org/v10.dtd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gnumeric.org/v9.xsd">
199 <gnm:Version Epoch="1" Major="10" Minor="8" Full="1.10.8"/>
201 <gnm:SheetName gnm:Cols="256" gnm:Rows="65536">Sheet1</gnm:SheetName>
202 <gnm:SheetName gnm:Cols="256" gnm:Rows="65536">Sheet2</gnm:SheetName>
203 <gnm:SheetName gnm:Cols="256" gnm:Rows="65536">Sheet3</gnm:SheetName>
204 </gnm:SheetNameIndex>
206 <gnm:Sheet DisplayFormulas="0" HideZero="0" HideGrid="0" HideColHeader="0" HideRowHeader="0" DisplayOutlines="1" OutlineSymbolsBelow="1" OutlineSymbolsRight="1" Visibility="GNM_SHEET_VISIBILITY_VISIBLE" GridColor="0:0:0">
207 <gnm:Name>Sheet1</gnm:Name>
208 <gnm:MaxCol>2</gnm:MaxCol>
209 <gnm:MaxRow>3</gnm:MaxRow>
212 <gnm:name>Print_Area</gnm:name>
213 <gnm:value>#REF!</gnm:value>
214 <gnm:position>A1</gnm:position>
217 <gnm:name>Sheet_Title</gnm:name>
218 <gnm:value>"Sheet1"</gnm:value>
219 <gnm:position>A1</gnm:position>
222 <gnm:Cols DefaultSizePts="48">
223 <gnm:ColInfo No="0" Unit="94.5" HardSize="1"/>
224 <gnm:ColInfo No="1" Unit="48" Count="2"/>
226 <gnm:Rows DefaultSizePts="12.75">
227 <gnm:RowInfo No="0" Unit="13.5" Count="4"/>
230 <gnm:Cell Row="0" Col="0" ValueType="60">Name</gnm:Cell>
231 <gnm:Cell Row="0" Col="1" ValueType="60">x</gnm:Cell>
232 <gnm:Cell Row="0" Col="2" ValueType="60">y</gnm:Cell>
233 <gnm:Cell Row="1" Col="0" ValueType="60">Sheet One</gnm:Cell>
234 <gnm:Cell Row="1" Col="1" ValueType="40">1</gnm:Cell>
235 <gnm:Cell Row="1" Col="2" ValueType="40">2</gnm:Cell>
236 <gnm:Cell Row="2" Col="0" ValueType="60">foo</gnm:Cell>
237 <gnm:Cell Row="2" Col="1" ValueType="40">3</gnm:Cell>
238 <gnm:Cell Row="2" Col="2" ValueType="40">4</gnm:Cell>
239 <gnm:Cell Row="3" Col="0" ValueType="60">bar</gnm:Cell>
240 <gnm:Cell Row="3" Col="1" ValueType="40">5</gnm:Cell>
241 <gnm:Cell Row="3" Col="2" ValueType="40">6</gnm:Cell>
244 <gnm:Sheet DisplayFormulas="0" HideZero="0" HideGrid="0" HideColHeader="0" HideRowHeader="0" DisplayOutlines="1" OutlineSymbolsBelow="1" OutlineSymbolsRight="1" Visibility="GNM_SHEET_VISIBILITY_VISIBLE" GridColor="0:0:0">
245 <gnm:Name>Sheet2</gnm:Name>
246 <gnm:MaxCol>2</gnm:MaxCol>
247 <gnm:MaxRow>2</gnm:MaxRow>
250 <gnm:name>Print_Area</gnm:name>
251 <gnm:value>#REF!</gnm:value>
252 <gnm:position>A1</gnm:position>
255 <gnm:name>Sheet_Title</gnm:name>
256 <gnm:value>"Sheet2"</gnm:value>
257 <gnm:position>A1</gnm:position>
260 <gnm:Cols DefaultSizePts="48">
261 <gnm:ColInfo No="0" Unit="48"/>
262 <gnm:ColInfo No="1" Unit="57.75"/>
263 <gnm:ColInfo No="2" Unit="54.75"/>
265 <gnm:Rows DefaultSizePts="12.75">
266 <gnm:RowInfo No="0" Unit="13.5" Count="3"/>
269 <gnm:Cell Row="0" Col="0" ValueType="60">Comment</gnm:Cell>
270 <gnm:Cell Row="0" Col="1" ValueType="60">DOB</gnm:Cell>
271 <gnm:Cell Row="0" Col="2" ValueType="60">wealth</gnm:Cell>
272 <gnm:Cell Row="1" Col="0" ValueType="60">Sheet Two</gnm:Cell>
273 <gnm:Cell Row="1" Col="1" ValueType="60">24/5/1966</gnm:Cell>
274 <gnm:Cell Row="1" Col="2" ValueType="40" ValueFormat="_($* 0.00_);_($* (0.00);_($* "-"??_);_(@_)">0.02</gnm:Cell>
275 <gnm:Cell Row="2" Col="0" ValueType="60">wee</gnm:Cell>
276 <gnm:Cell Row="2" Col="1" ValueType="40" ValueFormat="dd/mm/yyyy">37145</gnm:Cell>
277 <gnm:Cell Row="2" Col="2" ValueType="40" ValueFormat="_($* 0.00_);_($* (0.00);_($* "-"??_);_(@_)">3000</gnm:Cell>
280 <gnm:Sheet DisplayFormulas="0" HideZero="0" HideGrid="0" HideColHeader="0" HideRowHeader="0" DisplayOutlines="1" OutlineSymbolsBelow="1" OutlineSymbolsRight="1" Visibility="GNM_SHEET_VISIBILITY_VISIBLE" GridColor="0:0:0">
281 <gnm:Name>Sheet3</gnm:Name>
282 <gnm:MaxCol>2</gnm:MaxCol>
283 <gnm:MaxRow>2</gnm:MaxRow>
286 <gnm:name>Print_Area</gnm:name>
287 <gnm:value>#REF!</gnm:value>
288 <gnm:position>A1</gnm:position>
291 <gnm:name>Sheet_Title</gnm:name>
292 <gnm:value>"Sheet3"</gnm:value>
293 <gnm:position>A1</gnm:position>
296 <gnm:Cols DefaultSizePts="48">
297 <gnm:ColInfo No="0" Unit="48" Count="3"/>
299 <gnm:Rows DefaultSizePts="12.75">
300 <gnm:RowInfo No="0" Unit="13.5"/>
301 <gnm:RowInfo No="1" Unit="12.75" Count="2"/>
304 <gnm:Cell Row="0" Col="0" ValueType="40">3</gnm:Cell>
305 <gnm:Cell Row="0" Col="1" ValueType="40">4</gnm:Cell>
306 <gnm:Cell Row="0" Col="2" ValueType="40">5</gnm:Cell>
307 <gnm:Cell Row="1" Col="0" ValueType="40">6</gnm:Cell>
308 <gnm:Cell Row="1" Col="1" ValueType="40">7</gnm:Cell>
309 <gnm:Cell Row="1" Col="2" ValueType="40">8</gnm:Cell>
310 <gnm:Cell Row="2" Col="0" ValueType="40">9</gnm:Cell>
311 <gnm:Cell Row="2" Col="1" ValueType="40">10</gnm:Cell>
312 <gnm:Cell Row="2" Col="2" ValueType="40">11</gnm:Cell>
319 AT_DATA([gnum.sps], [dnl
322 /FILE='minimal3.gnumeric'
330 AT_CHECK([pspp -O format=csv gnum.sps], [0], [dnl
342 dnl Check for a bug where certain gnumeric files failed an assertion
343 AT_SETUP([GET DATA /TYPE=GNM assert-fail])
344 AT_DATA([read.sps],[dnl
347 /FILE='crash.gnumeric'
353 AT_DATA([crash.gnumeric],[dnl
354 <?xml version="1.0" encoding="UTF-8"?>
355 <gnm:Workbook xmlns:gnm="http://www.gnumeric.org/v10.dtd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gnumeric.org/v9.xsd">
356 <office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:ooo="http://openoffice.org/2004/office" office:version="1.1">
357 </office:document-meta>
359 <gnm:SheetName gnm:Cols="256" gnm:Rows="65536">Sheet1</gnm:SheetName>
360 </gnm:SheetNameIndex>
362 <gnm:Sheet DisplayFormulas="0" HideZero="0" HideGrid="0" HideColHeader="0" HideRowHeader="0" DisplayOutlines="1" OutlineSymbolsBelow="1" OutlineSymbolsRight="1" Visibility="GNM_SHEET_VISIBILITY_VISIBLE" GridColor="0:0:0">
363 <gnm:Name>Sheet1</gnm:Name>
364 <gnm:MaxCol>2</gnm:MaxCol>
365 <gnm:MaxRow>4</gnm:MaxRow>
367 <gnm:StyleRegion startCol="0" startRow="0" endCol="255" endRow="65535">
368 <gnm:Style HAlign="1" VAlign="2" WrapText="0" ShrinkToFit="0" Rotation="0" Shade="0" Indent="0" Locked="1" Hidden="0" Fore="0:0:0" Back="FFFF:FFFF:FFFF" PatternColor="0:0:0" Format="General">
373 <gnm:Cell Row="1" Col="1" ValueType="60">one</gnm:Cell>
374 <gnm:Cell Row="1" Col="2" ValueType="60">two</gnm:Cell>
375 <gnm:Cell Row="2" Col="1" ValueType="40">1</gnm:Cell>
376 <gnm:Cell Row="2" Col="2" ValueType="40">2</gnm:Cell>
377 <gnm:Cell Row="3" Col="1" ValueType="40">1</gnm:Cell>
378 <gnm:Cell Row="3" Col="2" ValueType="40">2</gnm:Cell>
379 <gnm:Cell Row="4" Col="1" ValueType="40">1</gnm:Cell>
380 <gnm:Cell Row="4" Col="2" ValueType="40">2</gnm:Cell>
387 AT_CHECK([pspp -O format=csv read.sps], [0], [ignore])
394 AT_BANNER([GET DATA Spreadsheet /TYPE=ODS])
396 CHECK_SPREADSHEET_READER([ODS])