From 731a9abeeefbb9ac53e93a58a22a17bc06b4fdc0 Mon Sep 17 00:00:00 2001 From: Ben Pfaff <blp@cs.stanford.edu> Date: Fri, 2 Apr 2010 16:53:07 -0700 Subject: [PATCH] AUTORECODE: Use Autotest for test suite. --- tests/automake.mk | 2 +- tests/command/autorecod.sh | 129 ----------------------------- tests/language/stats/autorecode.at | 55 ++++++++++++ tests/testsuite.at | 1 + 4 files changed, 57 insertions(+), 130 deletions(-) delete mode 100755 tests/command/autorecod.sh create mode 100644 tests/language/stats/autorecode.at diff --git a/tests/automake.mk b/tests/automake.mk index 3b3f14a7..e392270e 100644 --- a/tests/automake.mk +++ b/tests/automake.mk @@ -12,7 +12,6 @@ dist_TESTS = \ tests/command/add-files.sh \ tests/command/aggregate.sh \ tests/command/attributes.sh \ - tests/command/autorecod.sh \ tests/command/beg-data.sh \ tests/command/bignum.sh \ tests/command/count.sh \ @@ -417,6 +416,7 @@ EXTRA_DIST += \ $(TESTSUITE) TESTSUITE_AT = \ tests/testsuite.at \ + tests/language/stats/autorecode.at \ tests/language/stats/crosstabs.at \ tests/language/stats/frequencies.at \ tests/output/render.at diff --git a/tests/command/autorecod.sh b/tests/command/autorecod.sh deleted file mode 100755 index 6aaf8722..00000000 --- a/tests/command/autorecod.sh +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/sh - -# This program tests the autorecode command - -TEMPDIR=/tmp/pspp-tst-$$ -TESTFILE=$TEMPDIR/`basename $0`.sps - - -# 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 -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 -} - - -fail() -{ - echo $activity - echo FAILED - cleanup; - exit 1; -} - - -no_result() -{ - echo $activity - echo NO RESULT; - cleanup; - exit 2; -} - -pass() -{ - cleanup; - exit 0; -} - -mkdir -p $TEMPDIR - -cd $TEMPDIR - -activity="create program" -cat > $TESTFILE <<EOF -/* Tries AUTORECODE on some random but similar strings of characters. -data list /X 1-5(a) Y 7. -begin data. -lasdj 1 1 3 -asdfk 0 3 <---- These are the numbers that should be produced for a 4 -asdfj 2 4 2 -asdfj 1 4 3 -asdfk 2 3 2 -asdfj 9 4 1 -lajks 9 2 1 -asdfk 0 3 These are the numbers that should be produced for b ----> 4 -asdfk 1 3 3 -end data. - -autorecode x y into A B/descend. - -list. -/* Just to make sure it works on second & subsequent executions, -/* try it again. -compute Z=trunc(y/2). -autorecode z into W. -list. -EOF -if [ $? -ne 0 ] ; then no_result ; fi - -activity="run program" -$SUPERVISOR $PSPP -o pspp.csv $TESTFILE -if [ $? -ne 0 ] ; then no_result ; fi - -activity="test output" -diff -b $TEMPDIR/pspp.csv - <<EOF -Table: Reading 1 record from INLINE. -Variable,Record,Columns,Format -X,1,1- 5,A5 -Y,1,7- 7,F1.0 - -Table: Data List -X,Y,A,B -lasdj,1,1.00,3.00 -asdfk,0,3.00,4.00 -asdfj,2,4.00,2.00 -asdfj,1,4.00,3.00 -asdfk,2,3.00,2.00 -asdfj,9,4.00,1.00 -lajks,9,2.00,1.00 -asdfk,0,3.00,4.00 -asdfk,1,3.00,3.00 - -Table: Data List -X,Y,A,B,Z,W -lasdj,1,1.00,3.00,.00,1.00 -asdfk,0,3.00,4.00,.00,1.00 -asdfj,2,4.00,2.00,1.00,2.00 -asdfj,1,4.00,3.00,.00,1.00 -asdfk,2,3.00,2.00,1.00,2.00 -asdfj,9,4.00,1.00,4.00,3.00 -lajks,9,2.00,1.00,4.00,3.00 -asdfk,0,3.00,4.00,.00,1.00 -asdfk,1,3.00,3.00,.00,1.00 -EOF -if [ $? -ne 0 ] ; then fail ; fi - -pass - - - diff --git a/tests/language/stats/autorecode.at b/tests/language/stats/autorecode.at new file mode 100644 index 00000000..b4e9d41f --- /dev/null +++ b/tests/language/stats/autorecode.at @@ -0,0 +1,55 @@ +AT_BANNER([AUTORECODE procedure]) + +AT_SETUP([AUTORECODE numbers and short strings]) +AT_DATA([autorecode.sps], + [data list /X 1-5(a) Y 7. +begin data. +lasdj 1 +asdfk 0 +asdfj 2 +asdfj 1 +asdfk 2 +asdfj 9 +lajks 9 +asdfk 0 +asdfk 1 +end data. + +autorecode x y into A B/descend. + +list. +compute Z=trunc(y/2). +autorecode z into W. +list. +]) +AT_CHECK([pspp -O format=csv autorecode.sps], [0], + [Table: Reading 1 record from INLINE. +Variable,Record,Columns,Format +X,1,1- 5,A5 +Y,1,7- 7,F1.0 + +Table: Data List +X,Y,A,B +lasdj,1,1.00,3.00 +asdfk,0,3.00,4.00 +asdfj,2,4.00,2.00 +asdfj,1,4.00,3.00 +asdfk,2,3.00,2.00 +asdfj,9,4.00,1.00 +lajks,9,2.00,1.00 +asdfk,0,3.00,4.00 +asdfk,1,3.00,3.00 + +Table: Data List +X,Y,A,B,Z,W +lasdj,1,1.00,3.00,.00,1.00 +asdfk,0,3.00,4.00,.00,1.00 +asdfj,2,4.00,2.00,1.00,2.00 +asdfj,1,4.00,3.00,.00,1.00 +asdfk,2,3.00,2.00,1.00,2.00 +asdfj,9,4.00,1.00,4.00,3.00 +lajks,9,2.00,1.00,4.00,3.00 +asdfk,0,3.00,4.00,.00,1.00 +asdfk,1,3.00,3.00,.00,1.00 +]) +AT_CLEANUP diff --git a/tests/testsuite.at b/tests/testsuite.at index 5595de73..9bdc99bf 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -1,5 +1,6 @@ AT_INIT +m4_include([tests/language/stats/autorecode.at]) m4_include([tests/language/stats/crosstabs.at]) m4_include([tests/language/stats/frequencies.at]) m4_include([tests/output/render.at]) -- 2.30.2