X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fcommand%2Fdata-list.sh;h=13c2a683c61cd83ac90908ca47ae9d0aaff1f8a7;hb=f51ecb48027e6b1eb46840ae25888a25b429f012;hp=814a9d225c46315e06476ca0870916fc07243fb7;hpb=92bfefccd465052e492f669ce561aa25b0110283;p=pspp diff --git a/tests/command/data-list.sh b/tests/command/data-list.sh index 814a9d225c..13c2a683c6 100755 --- a/tests/command/data-list.sh +++ b/tests/command/data-list.sh @@ -3,17 +3,28 @@ # This program tests the DATA LIST input program. TEMPDIR=/tmp/pspp-tst-$$ +TESTFILE=$TEMPDIR/`basename $0`.sps -here=`pwd`; +# ensure that top_builddir are absolute +if [ -z "$top_builddir" ] ; then top_builddir=. ; fi +if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi +top_builddir=`cd $top_builddir; pwd` +PSPP=$top_builddir/src/ui/terminal/pspp # ensure that top_srcdir is absolute -cd $top_srcdir; top_srcdir=`pwd` +top_srcdir=`cd $top_srcdir; pwd` -export STAT_CONFIG_PATH=$top_srcdir/config +STAT_CONFIG_PATH=$top_srcdir/config +export STAT_CONFIG_PATH cleanup() { + if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then + echo "NOT cleaning $TEMPDIR" + return ; + fi + cd / rm -rf $TEMPDIR } @@ -47,15 +58,25 @@ cd $TEMPDIR # Create command file. activity="create program" -cat > $TEMPDIR/data-list.stat << EOF -data list free/A B C D. +cat > $TESTFILE << EOF +data list list ('|','X') /A B C D. begin data. +1|23X45|2.03 +2X22|34|23| +3|34|34X34 +end data. + +list. + +data list free skip=1/A B C D. +begin data. +# This record is ignored. ,1,2,3 ,4,,5 6 7, 8 9 -0,1,,, +0,1 ,,, ,,,, 2 @@ -65,8 +86,10 @@ begin data. end data. list. -data list free (tab)/A B C D. +data list free (tab) skip=2/A B C D. begin data. +# These records +# are skipped. 1 2 3 4 1 2 3 1 2 4 @@ -83,6 +106,40 @@ begin data. 3 4 +end data. +list. + +* Test DATA LIST FIXED with multiple records. +data list fixed notable + /1 start 1-20 (adate) + /2 end 1-20 (adate) + /3 count 1-3. +begin data. +07-22-2007 +10-06-2007 +321 +07-14-1789 +08-26-1789 +4 +01-01-1972 +12-31-1999 +682 +end data. +list. + +* Test that DATA LIST FIXED works with an empty trailing record. +data list fixed notable records=2/x 1 y 2. +begin data. +12 + +34 + +56 + +78 + +90 + end data. list. EOF @@ -90,38 +147,65 @@ if [ $? -ne 0 ] ; then no_result ; fi activity="run program" -$SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii --testing-mode $TEMPDIR/data-list.stat # > $TEMPDIR/errs +$SUPERVISOR $PSPP -o pspp.csv $TESTFILE if [ $? -ne 0 ] ; then fail ; fi activity="compare output" -diff -b -B $TEMPDIR/pspp.list - << EOF - A B C D --------- -------- -------- -------- - . 1.00 2.00 3.00 - . 4.00 . 5.00 - 6.00 7.00 8.00 9.00 - .00 1.00 . . - . . . . - 2.00 3.00 4.00 5.00 - - A B C D --------- -------- -------- -------- - 1.00 2.00 3.00 4.00 - 1.00 2.00 3.00 . - 1.00 2.00 . 4.00 - 1.00 2.00 . . - 1.00 . 3.00 4.00 - 1.00 . 3.00 . - 1.00 . . 4.00 - 1.00 . . . - . 2.00 3.00 4.00 - . 2.00 3.00 . - . 2.00 . 4.00 - . 2.00 . . - . . 3.00 4.00 - . . 3.00 . - . . . 4.00 - . . . . +diff -c $TEMPDIR/pspp.csv - << EOF +Table: Reading free-form data from INLINE. +Variable,Format +A,F8.0 +B,F8.0 +C,F8.0 +D,F8.0 + +Table: Data List +A,B,C,D +1.00,23.00,45.00,2.03 +2.00,22.00,34.00,23.00 +3.00,34.00,34.00,34.00 + +Table: Data List +A,B,C,D +. ,1.00,2.00,3.00 +. ,4.00,. ,5.00 +6.00,7.00,8.00,9.00 +.00,1.00,. ,. +. ,. ,. ,. +2.00,3.00,4.00,5.00 + +Table: Data List +A,B,C,D +1.00,2.00,3.00,4.00 +1.00,2.00,3.00,. +1.00,2.00,. ,4.00 +1.00,2.00,. ,. +1.00,. ,3.00,4.00 +1.00,. ,3.00,. +1.00,. ,. ,4.00 +1.00,. ,. ,. +. ,2.00,3.00,4.00 +. ,2.00,3.00,. +. ,2.00,. ,4.00 +. ,2.00,. ,. +. ,. ,3.00,4.00 +. ,. ,3.00,. +. ,. ,. ,4.00 +. ,. ,. ,. + +Table: Data List +start,end,count +07/22/2007,10/06/2007,321 +07/14/1789,08/26/1789,4 +01/01/1972,12/31/1999,682 + +Table: Data List +x,y +1,2 +3,4 +5,6 +7,8 +9,0 EOF if [ $? -ne 0 ] ; then fail ; fi