X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=tests%2Fdata%2Fsys-file.at;h=4c02e1c85355c1a5636ae3c856a3d58f0c0240b1;hb=fcd2c3faf2ebc7d08e3c58c746fc5946b467c075;hp=721578e6a0aadf23048adaa846ba6ce35ca41502;hpb=a258e53c63a08b0ec48aea8f03808eb651729424;p=pspp
diff --git a/tests/data/sys-file.at b/tests/data/sys-file.at
index 721578e6a0..4c02e1c853 100644
--- a/tests/data/sys-file.at
+++ b/tests/data/sys-file.at
@@ -1,9 +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
AT_BANNER([system files])
# Also tests that long variable names are preserved by SAVE and GET.
AT_SETUP([write and read numeric data])
AT_KEYWORDS([SAVE GET system file])
-AT_DATA([sysfile.sps], [dnl
+for variant in 'UNCOMPRESSED $FL2' 'ZCOMPRESSED $FL3'; do
+ set $variant
+ compression=$1 magic=$2
+ cat >sysfile.sps <sysfile.sps < /dev/null | od | sed '1q' > com.txt])
-dnl Allow big- or little-endian format.
+dnl Make sure file really was compressd, allowing big- or little-endian format.
+AT_CHECK([dd if=com.sav bs=1 skip=72 count=4 2> /dev/null > com.sav.subset])
+od com.sav.subset
AT_CHECK(
- [(echo '0000000 000000 000001' | diff com.txt -) ||
- (echo '0000000 000001 000000' | diff com.txt -)], [0],
+ [(printf '\000\000\000\001' | cmp -l com.sav.subset -) ||
+ (printf '\001\000\000\000' | cmp -l com.sav.subset -)], [0],
[ignore])
-AT_CAPTURE_FILE([com.txt])
AT_CLEANUP
AT_SETUP([overwriting system file])
@@ -196,21 +267,22 @@ LIST.
])
AT_CHECK([pspp -o pspp.csv get.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Label,,Position
-cont,continents of the world,,1
-size,sq km,,2
-pop,population,,3
-count,number of countries,,4
+Table: Variables
+Name,Position,Label
+cont,1,continents of the world
+size,2,sq km
+pop,3,population
+count,4,number of countries
Table: Data List
cont,size,pop,count
-Asia ,44579000,3.7E+009,44.00
-Africa ,30065000,7.8E+008,53.00
-North America ,24256000,4.8E+008,23.00
-South America ,17819000,3.4E+008,12.00
-Antarctica ,13209000,.00,.00
-Europe ,9938000,7.3E+008,46.00
-Australia/Oceania ,7687000,31000000,14.00
+Asia,44579000,3.7E+009,44.00
+Africa,30065000,7.8E+008,53.00
+North America,24256000,4.8E+008,23.00
+South America,17819000,3.4E+008,12.00
+Antarctica,13209000,.00,.00
+Europe,9938000,7.3E+008,46.00
+Australia/Oceania,7687000,31000000,14.00
])
AT_CLEANUP
@@ -258,29 +330,18 @@ AT_BANNER([system files -- very long strings])
AT_SETUP([read very long strings written by SPSS 13])
AT_CHECK([cp $top_srcdir/tests/data/v13.sav .])
AT_DATA([sys-file.sps], [dnl
-GET FILE='v13.sav'.
+GET FILE='v13.sav' ENCODING='utf-8'.
DISPLAY VARIABLES.
LIST.
])
AT_CHECK([pspp -o pspp.csv sys-file.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-N,Format: F8.2,,1
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 10,,
-A255,Format: A255,,2
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 32,,
-A258,Format: A258,,3
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 32,,
-A2000,Format: A2000,,4
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 32,,
+Table: Variables
+Name,Position,Print Format,Write Format,Missing Values
+N,1,F8.2,F8.2,
+A255,2,A255,A255,
+A258,3,A258,A258,
+A2000,4,A2000,A2000,
Table: Data List
N,A255,A258,A2000
@@ -292,29 +353,18 @@ AT_CLEANUP
AT_SETUP([read very long strings written by SPSS 14])
AT_CHECK([cp $top_srcdir/tests/data/v14.sav .])
AT_DATA([sys-file.sps], [dnl
-GET FILE='v14.sav'.
+GET FILE='v14.sav' ENCODING='utf-8'.
DISPLAY VARIABLES.
LIST.
])
AT_CHECK([pspp -o pspp.csv sys-file.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-vl255,Format: A255,,1
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 26,,
-vl256,Format: A256,,2
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 26,,
-vl1335,Format: A1335,,3
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 26,,
-vl2000,Format: A2000,,4
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 26,,
+Table: Variables
+Name,Position,Print Format,Write Format,Missing Values
+vl255,1,A255,A255,
+vl256,2,A256,A256,
+vl1335,3,A1335,A1335,
+vl2000,4,A2000,A2000,
Table: Data List
vl255,vl256,vl1335,vl2000
@@ -336,9 +386,9 @@ m4_define([VLS_WRITE],
vls_gen_data
AT_DATA([save.sps], [dnl
DATA LIST FIXED NOTABLE FILE='data.txt'
- /a 2-11 (a)
- b (a256)
- c (a200)
+ /a 2-11 (a)
+ b (a256)
+ c (a200)
d (a32767).
SAVE OUTFILE='foo.sav' /$1.
@@ -350,7 +400,7 @@ GET FILE='foo.sav'.
DISPLAY VARIABLES.
PRINT OUTFILE='out.txt'
- /a (a10) b (a256) c (a200)
+ /a (a10) b (a256) c (a200)
d (a32767)
.
@@ -358,25 +408,80 @@ EXECUTE.
])
AT_CHECK([pspp -o pspp.csv get.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-a,Format: A10,,1
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 10,,
-b,Format: A256,,2
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 32,,
-c,Format: A200,,3
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 32,,
-d,Format: A32767,,4
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 32,,
+Table: Variables
+Name,Position,Print Format,Write Format,Missing Values
+a,1,A10,A10,
+b,2,A256,A256,
+c,3,A200,A200,
+d,4,A32767,A32767,
])
AT_CLEANUP])
VLS_WRITE([UNCOMPRESSED])
VLS_WRITE([COMPRESSED])
+
+dnl This test writes non-ASCII characters to most of the string fields in
+dnl a .sav file and demonstrates that they are properly read back in.
+dnl XXX mrsets tests are missing.
+AT_SETUP([system file character encoding])
+AT_CHECK([i18n-test supports_encodings windows-1252])
+AT_DATA([save.sps], [dnl
+SET LOCALE='windows-1252'.
+DATA LIST LIST NOTABLE /à éîöçxyzabc * roué (A9) croûton (A1000).
+FILE LABEL 'clientèle confrère cortège crèche'.
+DOCUMENT coördinate smörgåsbord
+épée séance soufflé soirée
+jalapeño vicuña.
+VALUE LABEL
+ /à éîöçxyzabc 1 'éclair élan'
+ /roué 'abcdefghi' 'sauté précis'.
+VARIABLE LABEL
+ roué 'Provençal soupçon'.
+DATAFILE ATTRIBUTE
+ ATTRIBUTE=Furtwängler('kindergärtner').
+VARIABLE ATTRIBUTE
+ VARIABLES=à éîöçxyzabc
+ ATTRIBUTE=Atatürk('Düsseldorf Gewürztraminer').
+BEGIN DATA.
+1 a x
+2 b y
+3 c z
+END DATA.
+SAVE OUTFILE='foo.sav'.
+])
+AT_CHECK([pspp -O format=csv save.sps])
+AT_DATA([get.sps], [dnl
+GET FILE='foo.sav'.
+DISPLAY FILE LABEL.
+DISPLAY DOCUMENTS.
+DISPLAY DICTIONARY.
+DISPLAY ATTRIBUTES.
+])
+AT_CHECK([pspp -o pspp.csv get.sps])
+AT_CHECK([[sed 's/(Entered [^)]*)/(Entered )/' pspp.csv]], [0], [dnl
+Table: File Label
+Label,clientèle confrère cortège crèche
+
+Table: Documents
+"DOCUMENT coördinate smörgåsbord
+épée séance soufflé soirée
+jalapeño vicuña.
+ (Entered )"
+
+Table: Variables
+Name,Position,Label,Measurement Level,Role,Width,Alignment,Print Format,Write Format,Missing Values
+à éîöçxyzabc,1,,Scale,Input,8,Right,F8.2,F8.2,
+roué,2,Provençal soupçon,Nominal,Input,9,Left,A9,A9,
+croûton,3,,Nominal,Input,32,Left,A1000,A1000,
+
+Table: Value Labels
+Variable Value,,Label
+à éîöçxyzabc,1.00,éclair élan
+Provençal soupçon,abcdefghi,sauté précis
+
+Table: Variable and Dataset Attributes
+Variable and Name,,Value
+(dataset),Furtwängler,kindergärtner
+à éîöçxyzabc,Atatürk,Düsseldorf Gewürztraminer
+])
+AT_CLEANUP