metric->quartiles[2] = metric->ptl[i];
}
- metric->tukey_hinges = tukey_hinges_create (metric->n, metric->cmin);
- metric->trimmed_mean = trimmed_mean_create (metric->n, 0.05);
+ metric->tukey_hinges = tukey_hinges_create (metric->n_valid, metric->cmin);
+ metric->trimmed_mean = trimmed_mean_create (metric->n_valid, 0.05);
n_os = metric->n_ptiles + 2;
tests/bugs/get.sh \
tests/bugs/examine-crash.sh \
tests/bugs/examine-crash2.sh \
+ tests/bugs/examine-crash3.sh \
tests/bugs/examine-1sample.sh \
tests/bugs/examine-missing.sh \
tests/bugs/examine-missing2.sh \
--- /dev/null
+#!/bin/sh
+
+# This program tests for a bug which crashed pspp
+# when the /DESCRIPTIVES subcommand of EXAMINE
+# encountered missing values.
+
+TEMPDIR=/tmp/pspp-tst-$$
+TESTFILE=$TEMPDIR/`basename $0`.sps
+
+# ensure that top_srcdir and top_builddir are absolute
+if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi
+if [ -z "$top_builddir" ] ; then top_builddir=. ; fi
+top_srcdir=`cd $top_srcdir; pwd`
+top_builddir=`cd $top_builddir; pwd`
+
+PSPP=$top_builddir/src/ui/terminal/pspp
+
+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
+ 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 <<EOF > $TESTFILE
+data list list /x * y *.
+begin data.
+1 0
+2 0
+. 0
+3 1
+4 1
+end data.
+examine x by y /statistics=descriptives.
+EOF
+if [ $? -ne 0 ] ; then no_result ; fi
+
+
+activity="run program"
+$SUPERVISOR $PSPP --testing-mode -o raw-ascii $TESTFILE
+if [ $? -ne 0 ] ; then fail ; fi
+
+
+pass;