+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 <http://www.gnu.org/licenses/>.
+dnl
AT_BANNER([GET DATA /TYPE=TXT])
dnl These tests exercise features of GET DATA /TYPE=TXT that
AT_SETUP([GET DATA /TYPE=TXT with empty trailing record])
AT_DATA([get-data.sps], [dnl
get data /type=txt /file=inline /arrangement=fixed /fixcase=2 /variables=
- /1 x 0 f
+ /1 x 0 f
y 1 f.
begin data.
12
AT_CHECK([cat pspp.csv], [0], [dnl
Table: Data List
username,password,uid,gid,gecos,home,shell
-root ,$1$nyeSP5gD$pDq/ ,0,0,",,, ",/root ,/bin/bash @&t@
-blp ,$1$BrP/pFg4$g7OG ,1000,1000,"Ben Pfaff,,, ",/home/blp ,/bin/bash @&t@
-john ,$1$JBuq/Fioq$g4A ,1001,1001,"John Darrington,,, ",/home/john ,/bin/bash @&t@
-jhs ,$1$D3li4hPL$88X1 ,1002,1002,"Jason Stover,,, ",/home/jhs ,/bin/csh @&t@
+root,$1$nyeSP5gD$pDq/,0,0,",,,",/root,/bin/bash
+blp,$1$BrP/pFg4$g7OG,1000,1000,"Ben Pfaff,,,",/home/blp,/bin/bash
+john,$1$JBuq/Fioq$g4A,1001,1001,"John Darrington,,,",/home/john,/bin/bash
+jhs,$1$D3li4hPL$88X1,1002,1002,"Jason Stover,,,",/home/jhs,/bin/csh
])
AT_CLEANUP
AT_CHECK([cat pspp.csv], [0], [dnl
Table: Data List
model,year,mileage,price,type,age
-Civic ,2002,29883,15900,Si ,2
-Civic ,2003,13415,15900,EX ,1
-Civic ,1992,107000,3800,n/a ,12
-Accord ,2002,26613,17900,EX ,1
+Civic,2002,29883,15900,Si,2
+Civic,2003,13415,15900,EX,1
+Civic,1992,107000,3800,n/a,12
+Accord,2002,26613,17900,EX,1
Table: Data List
model,year,mileage,price,type,age
-Civic ,2002,29883,15900,Si ,2
-Civic ,2003,13415,15900,EX ,1
-Civic ,1992,107000,3800,n/a ,12
-Accord ,2002,26613,17900,EX ,1
+Civic,2002,29883,15900,Si,2
+Civic,2003,13415,15900,EX,1
+Civic,1992,107000,3800,n/a,12
+Accord,2002,26613,17900,EX,1
])
AT_CLEANUP
AT_CHECK([cat pspp.csv], [0], [dnl
Table: Data List
name,age,color,received,price,height,type
-Rover ,4.5,Brown,12.02.2004,80.00,"1'4"" ",Dog @&t@
-Charlie ,. ,Gold ,05.04.2007,12.30,"3"" ",Fish @&t@
-Molly ,2.0,Black,12.12.2006,25.00,"5"" ",Cat @&t@
-Gilly ,. ,White,10.04.2007,10.00,"3"" ",Guinea Pig
+Rover,4.5,Brown,12.02.2004,80.00,"1'4""",Dog
+Charlie,. ,Gold,05.04.2007,12.30,"3""",Fish
+Molly,2.0,Black,12.12.2006,25.00,"5""",Cat
+Gilly,. ,White,10.04.2007,10.00,"3""",Guinea Pig
])
AT_CLEANUP
dnl " (fixes Emacs highlighting)
AT_SETUP([GET DATA /TYPE=TXT with IMPORTCASE])
-AT_CHECK([$PERL > test.data <<'EOF'
-for ($i = 1; $i <= 100; $i++) {
- printf "%02d\n", $i;
-}
-EOF
-])
+AT_CHECK([$PYTHON3 > test.data -c '
+for i in range(1, 101):
+ print("%02d" % i)
+'])
AT_DATA([get-data.sps], [dnl
get data /type=txt /file='test.data' /importcase=first 10 /variables x f8.0.
get data /type=txt /file='test.data' /importcase=percent 1 /variables x f8.0.
get data /type=txt /file='test.data' /importcase=percent 100 /variables x f8.0.
])
AT_CHECK([pspp -O format=csv get-data.sps], [0], [dnl
-get-data.sps:1: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.)
+"get-data.sps:1.39-1.57: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.).
+ 1 | get data /type=txt /file='test.data' /importcase=first 10 /variables x f8.0.
+ | ^~~~~~~~~~~~~~~~~~~"
-get-data.sps:2: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.)
+"get-data.sps:2.39-2.58: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.).
+ 2 | get data /type=txt /file='test.data' /importcase=percent 1 /variables x f8.0.
+ | ^~~~~~~~~~~~~~~~~~~~"
-get-data.sps:3: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.)
+"get-data.sps:3.39-3.59: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.).
+ 3 | get data /type=txt /file='test.data' /importcase=percent 35 /variables x f8.0.
+ | ^~~~~~~~~~~~~~~~~~~~~"
-get-data.sps:4: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.)
+"get-data.sps:4.39-4.59: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.).
+ 4 | get data /type=txt /file='test.data' /importcase=percent 95 /variables x f8.0.
+ | ^~~~~~~~~~~~~~~~~~~~~"
-get-data.sps:5: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.)
+"get-data.sps:5.39-5.60: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.).
+ 5 | get data /type=txt /file='test.data' /importcase=percent 100 /variables x f8.0.
+ | ^~~~~~~~~~~~~~~~~~~~~~"
])
AT_CLEANUP
AT_CHECK([cat pspp.csv], [0], [dnl
Table: Data List
s
-é @&t@
+é
])
AT_CLEANUP
AT_CHECK([pspp -O format=csv x.sps], [0], [dnl
Table: Data List
foo,title,last
-1,this ,1
-2,that ,2
-3,other ,3
+1,this,1
+2,that,2
+3,other,3
])
AT_CLEANUP
+
+AT_SETUP([GET DATA /TYPE=txt another bug])
+
+AT_DATA([crash.sps], [dnl
+get data /type=txt /file=inline /variables=C f7.2 D f7>2.
+begin data.
+3 2
+4 2
+5 2
+end data.
+])
+
+AT_CHECK([pspp -O format=csv crash.sps], [1], [ignore])
+
+AT_CLEANUP
+
+
+
+
+
+