X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fdata-io%2Fdata-list.at;h=b0582c6c47a7fd141395c41cc85a05a7aa22f958;hb=9ade26c8349b4434008c46cf09bc7473ec743972;hp=746ea774b21737b3ee47e874008061bb6851910e;hpb=e0cd0149b4b578632eb263a52e93c8a1fed3daba;p=pspp-builds.git diff --git a/tests/language/data-io/data-list.at b/tests/language/data-io/data-list.at index 746ea774..b0582c6c 100644 --- a/tests/language/data-io/data-list.at +++ b/tests/language/data-io/data-list.at @@ -1,10 +1,40 @@ AT_BANNER([DATA LIST]) +AT_SETUP([DATA LIST LIST with empty fields]) +AT_DATA([data-list.pspp], [dnl +DATA LIST LIST NOTABLE /A B C (F1.0). +BEGIN DATA. +,, +,,3 +,2, +,2,3 +1,, +1,,3 +1,2, +1,2,3 +END DATA. + +LIST. +]) +AT_CHECK([pspp -O format=csv data-list.pspp], [0], [dnl +Table: Data List +A,B,C +.,.,. +.,.,3 +.,2,. +.,2,3 +1,.,. +1,.,3 +1,2,. +1,2,3 +]) +AT_CLEANUP + AT_SETUP([DATA LIST LIST with explicit delimiters]) AT_DATA([data-list.pspp], [dnl data list list ('|','X') /A B C D. begin data. -1|23X45|2.03 +1|23X45|2.03x 2X22|34|23| 3|34|34X34 end data. @@ -19,9 +49,11 @@ B,F8.0 C,F8.0 D,F8.0 +data-list.pspp:3.9-3.13: warning: Data for variable D is not valid as format F: Number followed by garbage. + Table: Data List A,B,C,D -1.00,23.00,45.00,2.03 +1.00,23.00,45.00,. @&t@ 2.00,22.00,34.00,23.00 3.00,34.00,34.00,34.00 ]) @@ -32,7 +64,7 @@ AT_DATA([data-list.pspp], [dnl data list free skip=1/A B C D. begin data. # This record is ignored. -,1,2,3 +,1,2,x ,4,,5 6 7, @@ -48,9 +80,11 @@ end data. list. ]) AT_CHECK([pspp -O format=csv data-list.pspp], [0], [dnl +data-list.pspp:4.6: warning: Data for variable D is not valid as format F: Field contents are not numeric. + Table: Data List A,B,C,D -. ,1.00,2.00,3.00 +. ,1.00,2.00,. @&t@ . ,4.00,. ,5.00 6.00,7.00,8.00,9.00 .00,1.00,. ,. @&t@ @@ -115,10 +149,10 @@ data list fixed notable begin data. 07-22-2007 10-06-2007 -321 +x 07-14-1789 08-26-1789 -4 +xy 01-01-1972 12-31-1999 682 @@ -126,10 +160,14 @@ end data. list. ]) AT_CHECK([pspp -O format=csv data-list.pspp], [0], [dnl +data-list.pspp:8.1-8.3: warning: Data for variable count is not valid as format F: Field contents are not numeric. + +data-list.pspp:11.1-11.3: warning: Data for variable count is not valid as format F: Field contents are not numeric. + Table: Data List start,end,count -07/22/2007,10/06/2007,321 -07/14/1789,08/26/1789,4 +07/22/2007,10/06/2007,. +07/14/1789,08/26/1789,. 01/01/1972,12/31/1999,682 ]) AT_CLEANUP @@ -161,3 +199,59 @@ x,y 9,0 ]) AT_CLEANUP + +dnl Test that PSPP accepts LF and CR LF as line ends, but +dnl treats isolated CR as linear whitespace. +AT_SETUP([DATA LIST with various line-ends]) +AT_DATA([data-list.sps], [dnl +data list list notable file='input.txt'/a b c. +list. +]) +printf '1 2 3\n4 5 6\r\n7\r8\r9\r\n10 11 12\n13 14 15 \r\n16\r\r17\r18\n' > input.txt +dnl Make sure that input.txt actually received the data that we expect. +dnl It might not have, if we're running on a system that translates \n +dnl into some other sequence. +AT_CHECK([cksum input.txt], [0], [1732021750 50 input.txt +]) +AT_CHECK([pspp -o pspp.csv data-list.sps]) +AT_CHECK([cat pspp.csv], [0], [dnl +Table: Data List +a,b,c +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,15.00 +16.00,17.00,18.00 +]) +AT_CLEANUP + +AT_SETUP([DATA LIST properly expands tabs in input]) +AT_DATA([data-list.sps], [dnl +data list notable /X 1-50 (a). +begin data. + 1 12 123 1234 12345 . +end data. +print /x. +print outfile='print.txt' /x. +write outfile='write.txt' /x. +execute. +]) +AT_CHECK([sed -n '/12345/l' data-list.sps], [0], [dnl +\t1\t12\t123\t1234\t12345 .$ +]) +AT_CHECK([pspp -o pspp.csv data-list.sps]) +dnl The CSV driver drops leading spaces so they don't appear here: +AT_CHECK([cat pspp.csv], [0], [dnl +1 12 123 1234 12345 . @&t@ +]) +dnl But they do appear in print.txt. The PRINT command also puts a space +dnl at the beginning of the line and after the variable: +AT_CHECK([cat print.txt], [0], [dnl + 1 12 123 1234 12345 . @&t@ +]) +dnl WRITE doesn't add spaces at the beginning or end of lines: +AT_CHECK([cat write.txt], [0], [dnl + 1 12 123 1234 12345 . +]) +AT_CLEANUP