X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fstats%2Fmoments.sh;h=89854285a0f0cde4fc9b7ad801a7db58e9970249;hb=64322c8ee0af7bf5ecc825ccc90513118732f335;hp=e262e82fb02d44b3b35e1490b87914bb6be7802a;hpb=b9e28aa5614a079548c616bcf97aa804024ad647;p=pspp-builds.git diff --git a/tests/stats/moments.sh b/tests/stats/moments.sh index e262e82f..89854285 100755 --- a/tests/stats/moments.sh +++ b/tests/stats/moments.sh @@ -4,18 +4,27 @@ TEMPDIR=/tmp/pspp-tst-$$ -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 - : } @@ -58,14 +67,15 @@ sed -ne 's/#.*//;/^[ ]*$/!p' > $TEMPDIR/moments-list-1p <<'EOF' 1*3 => W=3.000 M1=1.000 M2=0.000 M3=sysmis M4=sysmis 1*2 3 => W=3.000 M1=1.667 M2=1.333 M3=1.732 M4=sysmis 1 1.00000001 => W=2.000 M1=1.000 M2=0.000 M3=sysmis M4=sysmis +1000001 1000002 1000003 1000004 => W=4.000 M1=1000002.500 M2=1.667 M3=0.000 M4=-1.200 EOF if [ $? -ne 0 ] ; then no_result ; fi cp $TEMPDIR/moments-list-1p $TEMPDIR/moments-list-2p sed -ne 's/#.*//;/^[ ]*$/!p' >> $TEMPDIR/moments-list-2p <<'EOF' -# Only the two-pass algorithm can be expected to produce -# proper third and fourth moments here. -1000001 1000002 1000003 1000004 => W=4.000 M1=1000002.500 M2=1.667 M3=0.000 M4=-1.200 +# We used to have an example for which only the two-pass algorithm +# produced reasonable results, but the provisional means algorithm +# does better, so there aren't any extra tests here. EOF activity="create two-pass input file" @@ -73,12 +83,13 @@ sed < $TEMPDIR/moments-list-2p >> $TEMPDIR/moments-2p.stat \ -e 's#^\(.*\) => \(.*\)$#DEBUG MOMENTS/\1.#' if [ $? -ne 0 ] ; then no_result ; fi -activity="run program" -$SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii \ +activity="run two-pass program" +$SUPERVISOR $PSPP --testing-mode \ $TEMPDIR/moments-2p.stat >$TEMPDIR/moments-2p.err 2> $TEMPDIR/moments-2p.out -activity="compare output" -diff -B -b $TEMPDIR/moments-list-2p $TEMPDIR/moments-2p.out +activity="compare two-pass output" +perl -pi -e 's/^\s*$//g' $TEMPDIR/moments-list-2p $TEMPDIR/moments-2p.out +diff -b $TEMPDIR/moments-list-2p $TEMPDIR/moments-2p.out if [ $? -ne 0 ] ; then fail ; fi activity="create input file" @@ -86,12 +97,13 @@ sed < $TEMPDIR/moments-list-1p >> $TEMPDIR/moments-1p.stat \ -e 's#^\(.*\) => \(.*\)$#DEBUG MOMENTS ONEPASS/\1.#' if [ $? -ne 0 ] ; then no_result ; fi -activity="run program" -$SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii \ +activity="run one-pass program" +$SUPERVISOR $PSPP --testing-mode \ $TEMPDIR/moments-1p.stat >$TEMPDIR/moments-1p.err 2> $TEMPDIR/moments-1p.out -activity="compare output" -diff -B -b $TEMPDIR/moments-list-1p $TEMPDIR/moments-1p.out +activity="compare one-pass output" +perl -pi -e 's/^\s*$//g' $TEMPDIR/moments-list-1p $TEMPDIR/moments-1p.out +diff -b $TEMPDIR/moments-list-1p $TEMPDIR/moments-1p.out if [ $? -ne 0 ] ; then fail ; fi pass