From 5a9b8fee44e81c206c1e12aca02aa287cf8b7e45 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Thu, 13 Jun 2019 12:44:07 +0930
Subject: [PATCH] TEST: Expand naninfrange test to cover weird data

---
 tests/test_naninfrange.py | 41 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/tests/test_naninfrange.py b/tests/test_naninfrange.py
index dee79948a..0c232d008 100644
--- a/tests/test_naninfrange.py
+++ b/tests/test_naninfrange.py
@@ -50,3 +50,44 @@ def test_naninfrange():
         if   np.isfinite(expected[1]): assert result[1] == expected[1]
         elif np.isnan(   expected[1]): assert np.isnan(result[1])
         elif np.isinf(   expected[1]): assert np.isinf(result[1])
+
+
+def test_naninfrange_structured_ordered_contiguous():
+
+    data = np.random.random((4, 5, 6))
+
+    cdata = data.copy(order='C')
+    fdata = data.copy(order='F')
+
+    sdtype = np.dtype([('R', 'float64'), ('G', 'float64'), ('B', 'float64')])
+    sdata = np.zeros(data.shape, dtype=sdtype)
+    sdata['R'] = data
+    sdata['G'] = data
+    sdata['B'] = data
+
+    csdata = sdata.copy(order='C')
+    fsdata = sdata.copy(order='F')
+
+    tests = [
+        cdata,
+        cdata.transpose(1, 0, 2),
+        cdata[2:4, 1:3, 0:4],
+        fdata,
+        fdata.transpose(1, 0, 2),
+        fdata[2:4, 1:3, 0:4],
+        csdata,
+        csdata.transpose(1, 0, 2),
+        csdata[2:4, 1:3, 0:4],
+        fsdata,
+        fsdata.transpose(1, 0, 2),
+        fsdata[2:4, 1:3, 0:4]
+    ]
+
+    for t in tests:
+        if len(t.dtype) > 0:
+            expmin = np.min([t[n].min() for n in t.dtype.names])
+            expmax = np.max([t[n].max() for n in t.dtype.names])
+        else:
+            expmin, expmax = np.min(t), np.max(t)
+        result = naninfrange.naninfrange(t)
+        assert np.all(np.isclose(result, (expmin, expmax)))
-- 
GitLab