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/>.
17 m4_define([SPREADSHEET_TEST_PREP],[dnl
19 AT_CHECK([gzip -c $top_srcdir/tests/language/data-io/Book1.gnm.unzipped > Book1.gnumeric])dnl
20 m4_define([testsheet],[Book1.gnumeric])dnl
21 AT_SKIP_IF([test n$GNM_READ_SUPPORT != nyes])dnl
24 AT_CHECK([cp $top_srcdir/tests/language/data-io/test.ods test.ods])dnl
25 m4_define([testsheet],[test.ods])dnl
26 AT_SKIP_IF([test n$ODF_READ_SUPPORT != nyes])dnl
30 m4_define([CHECK_SPREADSHEET_READER],
32 AT_SETUP([GET DATA /TYPE=$1 with CELLRANGE])
33 SPREADSHEET_TEST_PREP($1)
34 AT_DATA([get-data.sps], [dnl
35 GET DATA /TYPE=$1 /FILE='testsheet' /READNAMES=off /SHEET=name 'This' /CELLRANGE=range 'g9:i13' .
39 AT_CHECK([pspp -o pspp.csv get-data.sps])
40 AT_CHECK([cat pspp.csv], [0], [dnl
41 Variable,Description,Position
56 AT_SETUP([GET DATA /TYPE=$1 with CELLRANGE and READNAMES])
57 SPREADSHEET_TEST_PREP($1)
58 AT_DATA([get-data.sps], [dnl
59 GET DATA /TYPE=$1 /FILE='testsheet' /READNAMES=on /SHEET=name 'This' /CELLRANGE=range 'g8:i13' .
63 AT_CHECK([pspp -o pspp.csv get-data.sps])
64 AT_CHECK([cat pspp.csv], [0], [dnl
65 Variable,Description,Position
80 AT_SETUP([GET DATA /TYPE=$1 without CELLRANGE])
81 SPREADSHEET_TEST_PREP($1)
82 AT_DATA([get-data.sps], [dnl
83 GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=index 3.
87 AT_CHECK([pspp -O format=csv get-data.sps], [0], [dnl
88 Variable,Description,Position
93 warning: Cannot convert the value in the spreadsheet cell C4 to format (F8.2): Field contents are not numeric.
104 AT_SETUP([GET DATA /TYPE=$1 with missing data])
105 SPREADSHEET_TEST_PREP($1)
106 AT_DATA([get-data.sps], [dnl
107 * This sheet has no data in one of its variables
108 GET DATA /TYPE=$1 /FILE='testsheet' /READNAMES=on /SHEET=index 5.
112 AT_CHECK([pspp -o pspp.csv get-data.sps])
113 AT_CHECK([cat pspp.csv], [0], [dnl
114 Variable,Description,Position
127 dnl This syntax doesn't do anything particularly useful.
128 dnl It has been seen to cause a few crashes, so we check here that it
129 dnl doesn't do anthing bad.
130 AT_SETUP([GET DATA /TYPE=$1 with no options])
131 SPREADSHEET_TEST_PREP($1)
132 AT_DATA([get-data.sps], [dnl
133 * This sheet is empty
134 GET DATA /TYPE=$1 /FILE='testsheet'.
138 AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [ignore])
143 AT_SETUP([GET DATA /TYPE=$1 with empty sheet])
144 SPREADSHEET_TEST_PREP($1)
145 AT_DATA([get-data.sps], [dnl
146 * This sheet is empty
147 GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=name 'Empty'.
149 AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [dnl
150 warning: Selected sheet or range of spreadsheet `testsheet' is empty.
154 AT_SETUP([GET DATA /TYPE=$1 with nonexistent sheet])
155 SPREADSHEET_TEST_PREP($1)
156 AT_DATA([get-data.sps], [dnl
157 * This sheet doesnt exist.
158 GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=name 'foobarxx'.
160 AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [dnl
161 warning: Selected sheet or range of spreadsheet `testsheet' is empty.
167 AT_BANNER([GET DATA Spreadsheet /TYPE=GNM])
169 CHECK_SPREADSHEET_READER([GNM])
171 dnl Check for a bug where gnumeric files were interpreted incorrectly
172 AT_SETUP([GET DATA /TYPE=GNM sheet index bug])
173 AT_SKIP_IF([test n$GNM_READ_SUPPORT != nyes])
174 AT_DATA([minimal3.gnumeric],[dnl
175 <?xml version="1.0" encoding="UTF-8"?>
176 <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">
177 <gnm:Version Epoch="1" Major="10" Minor="8" Full="1.10.8"/>
179 <gnm:SheetName gnm:Cols="256" gnm:Rows="65536">Sheet1</gnm:SheetName>
180 <gnm:SheetName gnm:Cols="256" gnm:Rows="65536">Sheet2</gnm:SheetName>
181 <gnm:SheetName gnm:Cols="256" gnm:Rows="65536">Sheet3</gnm:SheetName>
182 </gnm:SheetNameIndex>
184 <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">
185 <gnm:Name>Sheet1</gnm:Name>
186 <gnm:MaxCol>2</gnm:MaxCol>
187 <gnm:MaxRow>3</gnm:MaxRow>
190 <gnm:name>Print_Area</gnm:name>
191 <gnm:value>#REF!</gnm:value>
192 <gnm:position>A1</gnm:position>
195 <gnm:name>Sheet_Title</gnm:name>
196 <gnm:value>"Sheet1"</gnm:value>
197 <gnm:position>A1</gnm:position>
200 <gnm:Cols DefaultSizePts="48">
201 <gnm:ColInfo No="0" Unit="94.5" HardSize="1"/>
202 <gnm:ColInfo No="1" Unit="48" Count="2"/>
204 <gnm:Rows DefaultSizePts="12.75">
205 <gnm:RowInfo No="0" Unit="13.5" Count="4"/>
208 <gnm:Cell Row="0" Col="0" ValueType="60">Name</gnm:Cell>
209 <gnm:Cell Row="0" Col="1" ValueType="60">x</gnm:Cell>
210 <gnm:Cell Row="0" Col="2" ValueType="60">y</gnm:Cell>
211 <gnm:Cell Row="1" Col="0" ValueType="60">Sheet One</gnm:Cell>
212 <gnm:Cell Row="1" Col="1" ValueType="40">1</gnm:Cell>
213 <gnm:Cell Row="1" Col="2" ValueType="40">2</gnm:Cell>
214 <gnm:Cell Row="2" Col="0" ValueType="60">foo</gnm:Cell>
215 <gnm:Cell Row="2" Col="1" ValueType="40">3</gnm:Cell>
216 <gnm:Cell Row="2" Col="2" ValueType="40">4</gnm:Cell>
217 <gnm:Cell Row="3" Col="0" ValueType="60">bar</gnm:Cell>
218 <gnm:Cell Row="3" Col="1" ValueType="40">5</gnm:Cell>
219 <gnm:Cell Row="3" Col="2" ValueType="40">6</gnm:Cell>
222 <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">
223 <gnm:Name>Sheet2</gnm:Name>
224 <gnm:MaxCol>2</gnm:MaxCol>
225 <gnm:MaxRow>2</gnm:MaxRow>
228 <gnm:name>Print_Area</gnm:name>
229 <gnm:value>#REF!</gnm:value>
230 <gnm:position>A1</gnm:position>
233 <gnm:name>Sheet_Title</gnm:name>
234 <gnm:value>"Sheet2"</gnm:value>
235 <gnm:position>A1</gnm:position>
238 <gnm:Cols DefaultSizePts="48">
239 <gnm:ColInfo No="0" Unit="48"/>
240 <gnm:ColInfo No="1" Unit="57.75"/>
241 <gnm:ColInfo No="2" Unit="54.75"/>
243 <gnm:Rows DefaultSizePts="12.75">
244 <gnm:RowInfo No="0" Unit="13.5" Count="3"/>
247 <gnm:Cell Row="0" Col="0" ValueType="60">Comment</gnm:Cell>
248 <gnm:Cell Row="0" Col="1" ValueType="60">DOB</gnm:Cell>
249 <gnm:Cell Row="0" Col="2" ValueType="60">wealth</gnm:Cell>
250 <gnm:Cell Row="1" Col="0" ValueType="60">Sheet Two</gnm:Cell>
251 <gnm:Cell Row="1" Col="1" ValueType="60">24/5/1966</gnm:Cell>
252 <gnm:Cell Row="1" Col="2" ValueType="40" ValueFormat="_($* 0.00_);_($* (0.00);_($* "-"??_);_(@_)">0.02</gnm:Cell>
253 <gnm:Cell Row="2" Col="0" ValueType="60">wee</gnm:Cell>
254 <gnm:Cell Row="2" Col="1" ValueType="40" ValueFormat="dd/mm/yyyy">37145</gnm:Cell>
255 <gnm:Cell Row="2" Col="2" ValueType="40" ValueFormat="_($* 0.00_);_($* (0.00);_($* "-"??_);_(@_)">3000</gnm:Cell>
258 <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">
259 <gnm:Name>Sheet3</gnm:Name>
260 <gnm:MaxCol>2</gnm:MaxCol>
261 <gnm:MaxRow>2</gnm:MaxRow>
264 <gnm:name>Print_Area</gnm:name>
265 <gnm:value>#REF!</gnm:value>
266 <gnm:position>A1</gnm:position>
269 <gnm:name>Sheet_Title</gnm:name>
270 <gnm:value>"Sheet3"</gnm:value>
271 <gnm:position>A1</gnm:position>
274 <gnm:Cols DefaultSizePts="48">
275 <gnm:ColInfo No="0" Unit="48" Count="3"/>
277 <gnm:Rows DefaultSizePts="12.75">
278 <gnm:RowInfo No="0" Unit="13.5"/>
279 <gnm:RowInfo No="1" Unit="12.75" Count="2"/>
282 <gnm:Cell Row="0" Col="0" ValueType="40">3</gnm:Cell>
283 <gnm:Cell Row="0" Col="1" ValueType="40">4</gnm:Cell>
284 <gnm:Cell Row="0" Col="2" ValueType="40">5</gnm:Cell>
285 <gnm:Cell Row="1" Col="0" ValueType="40">6</gnm:Cell>
286 <gnm:Cell Row="1" Col="1" ValueType="40">7</gnm:Cell>
287 <gnm:Cell Row="1" Col="2" ValueType="40">8</gnm:Cell>
288 <gnm:Cell Row="2" Col="0" ValueType="40">9</gnm:Cell>
289 <gnm:Cell Row="2" Col="1" ValueType="40">10</gnm:Cell>
290 <gnm:Cell Row="2" Col="2" ValueType="40">11</gnm:Cell>
297 AT_DATA([gnum.sps], [dnl
300 /FILE='minimal3.gnumeric'
308 AT_CHECK([pspp -O format=csv gnum.sps], [0], [dnl
320 dnl Check for a bug where certain gnumeric files failed an assertion
321 AT_SETUP([GET DATA /TYPE=GNM assert-fail])
322 AT_SKIP_IF([test n$GNM_READ_SUPPORT != nyes])
323 AT_DATA([read.sps],[dnl
326 /FILE='crash.gnumeric'
332 AT_DATA([crash.gnumeric],[dnl
333 <?xml version="1.0" encoding="UTF-8"?>
334 <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">
335 <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">
336 </office:document-meta>
338 <gnm:SheetName gnm:Cols="256" gnm:Rows="65536">Sheet1</gnm:SheetName>
339 </gnm:SheetNameIndex>
341 <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">
342 <gnm:Name>Sheet1</gnm:Name>
343 <gnm:MaxCol>2</gnm:MaxCol>
344 <gnm:MaxRow>4</gnm:MaxRow>
346 <gnm:StyleRegion startCol="0" startRow="0" endCol="255" endRow="65535">
347 <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">
352 <gnm:Cell Row="1" Col="1" ValueType="60">one</gnm:Cell>
353 <gnm:Cell Row="1" Col="2" ValueType="60">two</gnm:Cell>
354 <gnm:Cell Row="2" Col="1" ValueType="40">1</gnm:Cell>
355 <gnm:Cell Row="2" Col="2" ValueType="40">2</gnm:Cell>
356 <gnm:Cell Row="3" Col="1" ValueType="40">1</gnm:Cell>
357 <gnm:Cell Row="3" Col="2" ValueType="40">2</gnm:Cell>
358 <gnm:Cell Row="4" Col="1" ValueType="40">1</gnm:Cell>
359 <gnm:Cell Row="4" Col="2" ValueType="40">2</gnm:Cell>
366 AT_CHECK([pspp -O format=csv read.sps], [0], [ignore])
373 AT_BANNER([GET DATA Spreadsheet /TYPE=ODS])
375 CHECK_SPREADSHEET_READER([ODS])
378 AT_SETUP([GET DATA /TYPE=ODS crash])
379 AT_SKIP_IF([test n$ODF_READ_SUPPORT != nyes])
382 AT_CHECK([cp $top_srcdir/tests/language/data-io/newone.ods this.ods])dnl
384 AT_DATA([crash.sps],[dnl
385 GET DATA /TYPE=ODS /FILE='this.ods' /CELLRANGE=RANGE 'A1:C8' /READNAMES=ON
389 AT_CHECK([pspp -O format=csv crash.sps], [0], [ignore])