Skip to content

Commit b19a68a

Browse files
authored
Merge pull request #30273 from QuLogic/mlab32
Fix mlab fallback for 32-bit systems
2 parents 784dcb9 + f5b6029 commit b19a68a

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

lib/matplotlib/mlab.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -212,16 +212,8 @@ def detrend_linear(y):
212212

213213

214214
def _stride_windows(x, n, noverlap=0):
215-
x = np.asarray(x)
216-
217215
_api.check_isinstance(Integral, n=n, noverlap=noverlap)
218-
if not (1 <= n <= x.size and n < noverlap):
219-
raise ValueError(f'n ({n}) and noverlap ({noverlap}) must be positive integers '
220-
f'with n < noverlap and n <= x.size ({x.size})')
221-
222-
if n == 1 and noverlap == 0:
223-
return x[np.newaxis]
224-
216+
x = np.asarray(x)
225217
step = n - noverlap
226218
shape = (n, (x.shape[-1]-noverlap)//step)
227219
strides = (x.strides[0], step*x.strides[0])
@@ -257,7 +249,7 @@ def _spectral_helper(x, y=None, NFFT=None, Fs=None, detrend_func=None,
257249
if NFFT is None:
258250
NFFT = 256
259251

260-
if noverlap >= NFFT:
252+
if not (0 <= noverlap < NFFT):
261253
raise ValueError('noverlap must be less than NFFT')
262254

263255
if mode is None or mode == 'default':

lib/matplotlib/tests/test_mlab.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import sys
2+
13
from numpy.testing import (assert_allclose, assert_almost_equal,
24
assert_array_equal, assert_array_almost_equal_nulp)
35
import numpy as np
@@ -429,7 +431,16 @@ def test_spectral_helper_psd(self, mode, case):
429431
assert spec.shape[0] == freqs.shape[0]
430432
assert spec.shape[1] == getattr(self, f"t_{case}").shape[0]
431433

432-
def test_csd(self):
434+
@pytest.mark.parametrize('bitsize', [
435+
pytest.param(None, id='default'),
436+
pytest.param(32,
437+
marks=pytest.mark.skipif(sys.maxsize <= 2**32,
438+
reason='System is already 32-bit'),
439+
id='32-bit')
440+
])
441+
def test_csd(self, bitsize, monkeypatch):
442+
if bitsize is not None:
443+
monkeypatch.setattr(sys, 'maxsize', 2**bitsize)
433444
freqs = self.freqs_density
434445
spec, fsp = mlab.csd(x=self.y, y=self.y+1,
435446
NFFT=self.NFFT_density,

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy