[gnumeric] PERCENTRANK: Fix error return for empty dataset.



commit d2b547eec86624e0955dda0fe55f5654b636451a
Author: Morten Welinder <terra gnome org>
Date:   Thu Jan 28 12:20:34 2016 -0500

    PERCENTRANK: Fix error return for empty dataset.

 plugins/fn-stat/ChangeLog   |    5 +++++
 plugins/fn-stat/functions.c |   11 ++++++++++-
 2 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/plugins/fn-stat/ChangeLog b/plugins/fn-stat/ChangeLog
index fc12b47..752fdb4 100644
--- a/plugins/fn-stat/ChangeLog
+++ b/plugins/fn-stat/ChangeLog
@@ -1,3 +1,8 @@
+2016-01-28  Morten Welinder  <terra gnome org>
+
+       * functions.c (gnumeric_percentrank): Return #NUM for empty
+       dataset as per docs.  Keep #NA for out-of-range.
+
 2015-12-28  Morten Welinder <terra gnome org>
 
        * Release 1.12.26
diff --git a/plugins/fn-stat/functions.c b/plugins/fn-stat/functions.c
index 777e385..584f1a0 100644
--- a/plugins/fn-stat/functions.c
+++ b/plugins/fn-stat/functions.c
@@ -2867,6 +2867,11 @@ gnumeric_percentrank (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
        if (result)
                goto done;
 
+       if (n == 0) {
+               result = value_new_error_NUM (ei->pos);
+               goto done;
+       }
+
        n_equal = n_smaller = n_larger = 0;
        x_larger = x_smaller = 42;
        for (i = 0; i < n; i++) {
@@ -2966,6 +2971,11 @@ gnumeric_percentrank_exc (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
        if (result)
                goto done;
 
+       if (n == 0) {
+               result = value_new_error_NUM (ei->pos);
+               goto done;
+       }
+
        n_equal = n_smaller = n_larger = 0;
        x_larger = x_smaller = 42;
        for (i = 0; i < n; i++) {
@@ -3004,7 +3014,6 @@ gnumeric_percentrank_exc (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
                        goto done;
                }
 
-
                if (n_equal > 0)
                        r = (n_smaller + 1) / (gnm_float)(n + 1);
                else {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]