Rewrite PSPP output engine.
[pspp-builds.git] / tests / command / count.sh
index 351d636fdef0b5ede2ef5e0f658a082d11bd7422..d6fd1db85e23a82fc1a420c2be9f0486091b022c 100755 (executable)
@@ -5,17 +5,27 @@
 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`
 
 STAT_CONFIG_PATH=$top_srcdir/config
 export STAT_CONFIG_PATH
 
+LANG=C
+export LANG
 
 cleanup()
 {
+     if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
+       echo "NOT cleaning $TEMPDIR" 
+       return ; 
+     fi
      cd /
      rm -rf $TEMPDIR
 }
@@ -48,6 +58,7 @@ mkdir -p $TEMPDIR
 
 cd $TEMPDIR
 
+activity="Create File 1"
 cat > $TESTFILE <<EOF
 title 'Test COUNT transformation'.
 
@@ -68,32 +79,73 @@ EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
 
-$SUPERVISOR $here/../src/pspp -o raw-ascii $TESTFILE
+activity="Run pspp 1"
+$SUPERVISOR $PSPP --testing-mode $TESTFILE
 if [ $? -ne 0 ] ; then no_result ; fi
 
 
-activity="compare results"
-perl -pi -e s/^\s*\$//g $TEMPDIR/pspp.list
-diff -b  $TEMPDIR/pspp.list - <<EOF | perl -e 's/^\s*$//g'
-1.1 DATA LIST.  Reading 1 record from the command file.
-+--------+------+-------+------+
-|Variable|Record|Columns|Format|
-#========#======#=======#======#
-|V1      |     1|  1-  2|A2    |
-|V2      |     1|  3-  4|A2    |
-+--------+------+-------+------+
-
-V1 V2        C
--- -- --------
-12 34      .00 
-32 1      1.00 
-2  13     1.00 
-41 21      .00 
-11 04      .00 
-03  4     1.00 
-01 93      .00 
+activity="compare results 1"
+diff -c $TEMPDIR/pspp.csv - <<EOF
+Title: Test COUNT transformation
+
+Table: Reading 1 record from INLINE.
+Variable,Record,Columns,Format
+V1,1,1-  2,A2
+V2,1,3-  4,A2
+
+Table: Data List
+V1,V2,C
+12,34,.00
+32,1 ,1.00
+2 ,13,1.00
+41,21,.00
+11,04,.00
+03,4,1.00
+01,93,.00
 EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
 
+
+
+activity="Create file 2"
+cat > $TESTFILE <<EOF
+data list list /x * y *.
+begin data.
+1 2
+2 3
+4 5
+2 2
+5 6
+end data.
+
+count C=x y (2).
+
+list.
+EOF
+if [ $? -ne 0 ] ; then no_result ; fi
+
+
+activity="Run pspp 2"
+$SUPERVISOR $PSPP --testing-mode $TESTFILE
+if [ $? -ne 0 ] ; then no_result ; fi
+
+
+activity="compare results"
+diff -c $TEMPDIR/pspp.csv - <<EOF
+Table: Reading free-form data from INLINE.
+Variable,Format
+x,F8.0
+y,F8.0
+
+Table: Data List
+x,y,C
+1.00,2.00,1.00
+2.00,3.00,1.00
+4.00,5.00,.00
+2.00,2.00,2.00
+5.00,6.00,.00
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
 pass;