summaryrefslogtreecommitdiff
path: root/dev-python/numpy/files/numpy-1.10.1-backport-2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/numpy/files/numpy-1.10.1-backport-2.patch')
-rw-r--r--dev-python/numpy/files/numpy-1.10.1-backport-2.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/dev-python/numpy/files/numpy-1.10.1-backport-2.patch b/dev-python/numpy/files/numpy-1.10.1-backport-2.patch
new file mode 100644
index 0000000000..9c33704f8e
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.10.1-backport-2.patch
@@ -0,0 +1,73 @@
+From 0d25dc4175e00cdaf9545e8b1b1a5b879cf67248 Mon Sep 17 00:00:00 2001
+From: Ethan Kruse <eakruse@uw.edu>
+Date: Mon, 19 Oct 2015 13:29:01 -0700
+Subject: [PATCH 1/2] Potential fix for #6462
+
+---
+ numpy/lib/function_base.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py
+index 555d083..fef69df 100644
+--- a/numpy/lib/function_base.py
++++ b/numpy/lib/function_base.py
+@@ -3339,7 +3339,7 @@ def _median(a, axis=None, out=None, overwrite_input=False):
+ indexer[axis] = slice(index-1, index+1)
+
+ # Check if the array contains any nan's
+- if np.issubdtype(a.dtype, np.inexact):
++ if np.issubdtype(a.dtype, np.inexact) and sz > 0:
+ # warn and return nans like mean would
+ rout = mean(part[indexer], axis=axis, out=out)
+ part = np.rollaxis(part, axis, part.ndim)
+
+From 59d859fb2160950ac93267d7461ad952145c8724 Mon Sep 17 00:00:00 2001
+From: Ethan Kruse <eakruse@uw.edu>
+Date: Tue, 20 Oct 2015 11:40:49 -0700
+Subject: [PATCH 2/2] Added tests for median of empty arrays
+
+---
+ numpy/lib/tests/test_function_base.py | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+
+diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py
+index 4516c92..aa41c1f 100644
+--- a/numpy/lib/tests/test_function_base.py
++++ b/numpy/lib/tests/test_function_base.py
+@@ -2597,6 +2597,36 @@ def test_nan_behavior(self):
+ assert_equal(np.median(a, (0, 2)), b)
+ assert_equal(len(w), 1)
+
++ def test_empty(self):
++ # empty arrays
++ a = np.array([], dtype=float)
++ with warnings.catch_warnings(record=True) as w:
++ warnings.filterwarnings('always', '', RuntimeWarning)
++ assert_equal(np.median(a), np.nan)
++ assert_(w[0].category is RuntimeWarning)
++
++ # multiple dimensions
++ a = np.array([], dtype=float, ndmin=3)
++ # no axis
++ with warnings.catch_warnings(record=True) as w:
++ warnings.filterwarnings('always', '', RuntimeWarning)
++ assert_equal(np.median(a), np.nan)
++ assert_(w[0].category is RuntimeWarning)
++
++ # axis 0 and 1
++ b = np.array([], dtype=float, ndmin=2)
++ with warnings.catch_warnings(record=True) as w:
++ warnings.filterwarnings('always', '', RuntimeWarning)
++ assert_equal(np.median(a, axis=0), b)
++ assert_equal(np.median(a, axis=1), b)
++
++ # axis 2
++ b = np.array(np.nan, dtype=float, ndmin=2)
++ with warnings.catch_warnings(record=True) as w:
++ warnings.filterwarnings('always', '', RuntimeWarning)
++ assert_equal(np.median(a, axis=2), b)
++ assert_(w[0].category is RuntimeWarning)
++
+ def test_object(self):
+ o = np.arange(7.)
+ assert_(type(np.median(o.astype(object))), float)