X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fdata-io%2Fget-data-spreadsheet.at;h=54486f02f08f842ba046538a22d0fb903d8c3fd5;hb=0200682d517fd4b7cfc4e333378de03bcf74be43;hp=c9060aef5f7a4bf29c0604dab0e2165bca149772;hpb=f758c0c7097e197d7b6fb9bb3c3d9d6e9138e0a7;p=pspp diff --git a/tests/language/data-io/get-data-spreadsheet.at b/tests/language/data-io/get-data-spreadsheet.at index c9060aef5f..54486f02f0 100644 --- a/tests/language/data-io/get-data-spreadsheet.at +++ b/tests/language/data-io/get-data-spreadsheet.at @@ -1,14 +1,28 @@ - +dnl PSPP - a program for statistical analysis. +dnl Copyright (C) 2017 Free Software Foundation, Inc. +dnl +dnl This program is free software: you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation, either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program. If not, see . +dnl m4_define([SPREADSHEET_TEST_PREP],[dnl + AT_KEYWORDS([spreadsheet]) m4_if($1,[GNM],[dnl AT_CHECK([gzip -c $top_srcdir/tests/language/data-io/Book1.gnm.unzipped > Book1.gnumeric])dnl m4_define([testsheet],[Book1.gnumeric])dnl - AT_SKIP_IF([test n$GNM_SUPPORT != nyes])dnl ]) dnl m4_if($1,[ODS],[dnl AT_CHECK([cp $top_srcdir/tests/language/data-io/test.ods test.ods])dnl m4_define([testsheet],[test.ods])dnl - AT_SKIP_IF([test n$ODF_READ_SUPPORT != nyes])dnl ])dnl ]) @@ -23,27 +37,19 @@ LIST. ]) AT_CHECK([pspp -o pspp.csv get-data.sps]) AT_CHECK([cat pspp.csv], [0], [dnl -Variable,Description,,Position -VAR001,Format: F8.2,,1 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 8,, -VAR002,Format: A8,,2 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 8,, -VAR003,Format: F8.2,,3 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 8,, +Table: Variables +Name,Position,Print Format,Write Format +VAR001,1,F8.2,F8.2 +VAR002,2,A8,A8 +VAR003,3,F8.2,F8.2 Table: Data List VAR001,VAR002,VAR003 -.00,fred ,20.00 -1.00,11 ,21.00 -2.00,twelve ,22.00 -3.00,13 ,23.00 -4.00,14 ,24.00 +.00,fred,20.00 +1.00,11,21.00 +2.00,twelve,22.00 +3.00,13,23.00 +4.00,14,24.00 ]) AT_CLEANUP @@ -56,27 +62,19 @@ LIST. ]) AT_CHECK([pspp -o pspp.csv get-data.sps]) AT_CHECK([cat pspp.csv], [0], [dnl -Variable,Description,,Position -V1,Format: F8.2,,1 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 8,, -V2,Format: A8,,2 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 8,, -VAR001,Format: F8.2,,3 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 8,, +Table: Variables +Name,Position,Print Format,Write Format +V1,1,F8.2,F8.2 +V2,2,A8,A8 +VAR001,3,F8.2,F8.2 Table: Data List V1,V2,VAR001 -.00,fred ,20.00 -1.00,11 ,21.00 -2.00,twelve ,22.00 -3.00,13 ,23.00 -4.00,14 ,24.00 +.00,fred,20.00 +1.00,11,21.00 +2.00,twelve,22.00 +3.00,13,23.00 +4.00,14,24.00 ]) AT_CLEANUP @@ -87,28 +85,21 @@ GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=index 3. DISPLAY VARIABLES. LIST. ]) -AT_CHECK([pspp -o pspp.csv get-data.sps]) -AT_CHECK([cat pspp.csv], [0], [dnl -Variable,Description,,Position -name,Format: A8,,1 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 8,, -id,Format: F8.2,,2 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 8,, -height,Format: F8.2,,3 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 8,, +AT_CHECK([pspp -O format=csv get-data.sps], [0], [dnl +Table: Variables +Name,Position,Print Format,Write Format +name,1,A8,A8 +id,2,F8.2,F8.2 +height,3,F8.2,F8.2 + +warning: Cannot convert the value in the spreadsheet cell C4 to format (F8.2): Field contents are not numeric. Table: Data List name,id,height -fred ,.00,23.40 -bert ,1.00,.56 -charlie ,2.00,. @&t@ -dick ,3.00,-34.09 +fred,.00,23.40 +bert,1.00,.56 +charlie,2.00,. @&t@ +dick,3.00,-34.09 ]) AT_CLEANUP @@ -122,23 +113,12 @@ LIST. ]) AT_CHECK([pspp -o pspp.csv get-data.sps]) AT_CHECK([cat pspp.csv], [0], [dnl -Variable,Description,,Position -vone,Format: F8.2,,1 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 8,, -vtwo,Format: F8.2,,2 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 8,, -vthree,Format: A8,,3 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 8,, -v4,Format: F8.2,,4 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 8,, +Table: Variables +Name,Position,Print Format,Write Format +vone,1,F8.2,F8.2 +vtwo,2,F8.2,F8.2 +vthree,3,A8,A8 +v4,4,F8.2,F8.2 Table: Data List vone,vtwo,vthree,v4 @@ -147,6 +127,22 @@ vone,vtwo,vthree,v4 ]) AT_CLEANUP +dnl This syntax doesn't do anything particularly useful. +dnl It has been seen to cause a few crashes, so we check here that it +dnl doesn't do anthing bad. +AT_SETUP([GET DATA /TYPE=$1 with no options]) +SPREADSHEET_TEST_PREP($1) +AT_DATA([get-data.sps], [dnl +* This sheet is empty +GET DATA /TYPE=$1 /FILE='testsheet'. +DISPLAY DICTIONARY. +LIST. +]) +AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [ignore]) +AT_CLEANUP + + + AT_SETUP([GET DATA /TYPE=$1 with empty sheet]) SPREADSHEET_TEST_PREP($1) AT_DATA([get-data.sps], [dnl @@ -177,6 +173,7 @@ CHECK_SPREADSHEET_READER([GNM]) dnl Check for a bug where gnumeric files were interpreted incorrectly AT_SETUP([GET DATA /TYPE=GNM sheet index bug]) +AT_KEYWORDS([spreadsheet]) AT_DATA([minimal3.gnumeric],[dnl @@ -301,7 +298,7 @@ AT_DATA([minimal3.gnumeric],[dnl ]) AT_DATA([gnum.sps], [dnl -GET DATA +GET DATA /TYPE=GNM /FILE='minimal3.gnumeric' /SHEET=index 3 @@ -314,15 +311,119 @@ LIST. AT_CHECK([pspp -O format=csv gnum.sps], [0], [dnl Table: Data List VAR001,VAR002,VAR003 -3 ,4.00,5.00 -6 ,7.00,8.00 -9 ,10.00,11.00 +3,4.00,5.00 +6,7.00,8.00 +9,10.00,11.00 +]) + + +AT_CLEANUP + + +dnl Check for a bug where certain gnumeric files failed an assertion +AT_SETUP([GET DATA /TYPE=GNM assert-fail]) +AT_KEYWORDS([spreadsheet]) +AT_DATA([read.sps],[dnl +GET DATA + /TYPE=GNM + /FILE='crash.gnumeric' + . +list. +]) + + +AT_DATA([crash.gnumeric],[dnl + + + + + + Sheet1 + + + + Sheet1 + 2 + 4 + + + + + + + one + two + 1 + 2 + 1 + 2 + 1 + 2 + + + + ]) +AT_CHECK([pspp -O format=csv read.sps], [0], [ignore]) + AT_CLEANUP + + AT_BANNER([GET DATA Spreadsheet /TYPE=ODS]) CHECK_SPREADSHEET_READER([ODS]) + +AT_SETUP([GET DATA /TYPE=ODS crash]) +AT_KEYWORDS([spreadsheet]) + + +AT_CHECK([cp $top_srcdir/tests/language/data-io/newone.ods this.ods])dnl + +AT_DATA([crash.sps],[dnl +GET DATA /TYPE=ODS /FILE='this.ods' /CELLRANGE=RANGE 'A1:C8' /READNAMES=ON +LIST. +]) + +AT_CHECK([pspp -O format=csv crash.sps], [0], [ignore]) + +AT_CLEANUP + + +AT_SETUP([GET DATA /TYPE=ODS readnames]) +AT_KEYWORDS([spreadsheet]) + +dnl Check for a bug where in the ODS reader /READNAMES incorrectly +dnl dealt with repeated names. +AT_CHECK([cp $top_srcdir/tests/language/data-io/readnames.ods this.ods])dnl + +AT_DATA([readnames.sps],[dnl +GET DATA /TYPE=ODS /FILE='this.ods' /CELLRANGE=RANGE 'A1:H8' /READNAMES=ON +DISPLAY DICTIONARY. +LIST. +]) + + +AT_CHECK([pspp -O format=csv readnames.sps], [0], [dnl +Table: Variables +Name,Position,Measurement Level,Role,Width,Alignment,Print Format,Write Format +freda,1,Scale,Input,8,Right,F8.2,F8.2 +fred,2,Scale,Input,8,Right,F8.2,F8.2 +fred_A,3,Scale,Input,8,Right,F8.2,F8.2 +fred_B,4,Scale,Input,8,Right,F8.2,F8.2 +fred_C,5,Scale,Input,8,Right,F8.2,F8.2 +fred_D,6,Scale,Input,8,Right,F8.2,F8.2 +fred_E,7,Scale,Input,8,Right,F8.2,F8.2 + +Table: Data List +freda,fred,fred_A,fred_B,fred_C,fred_D,fred_E +1.00,2.00,3.00,4.00,5.00,6.00,7.00 +8.00,9.00,10.00,11.00,12.00,13.00,14.00 +]) + +AT_CLEANUP +