From 1052ba3732a40c731c4fe0fc3caae12f4af75535 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 31 Mar 2016 21:51:25 +0200 Subject: [PATCH] Fixed a bug where frequencies/histogram would crash when all data had missing wieghts. Found by zzuf. --- src/language/stats/frequencies.c | 2 ++ tests/language/stats/frequencies.at | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/language/stats/frequencies.c b/src/language/stats/frequencies.c index dc18ed83c7..cb96389778 100644 --- a/src/language/stats/frequencies.c +++ b/src/language/stats/frequencies.c @@ -1324,6 +1324,8 @@ freq_tab_to_hist (const struct frq_proc *frq, const struct freq_tab *ft, } } + if (valid_freq <= 0) + return NULL; iqr = calculate_iqr (frq); diff --git a/tests/language/stats/frequencies.at b/tests/language/stats/frequencies.at index 0d6433c5b9..f0d81c3210 100644 --- a/tests/language/stats/frequencies.at +++ b/tests/language/stats/frequencies.at @@ -739,3 +739,25 @@ Percentiles,,. ]) AT_CLEANUP + + +AT_SETUP([FREQUENCIES histogram no valid cases]) +AT_DATA([empty.sps], [dnl +data list notable list /x w *. +begin data. +1 . +2 . +3 . +end data. + +weight by w. + +FREQUENCIES + /VARIABLES = x + /histogram + . +]) + +AT_CHECK([pspp empty.sps -O format=csv], [0], [ignore]) + +AT_CLEANUP -- 2.30.2