for scale in [1e-2, 1e-1, 5e-1, 1, 10]:
A = scale * eye(3, dtype=dtype)
observed = expm(A)
- expected = exp(scale) * eye(3, dtype=dtype)
+ expected = exp(scale, dtype=dtype) * eye(3, dtype=dtype)
assert_array_almost_equal_nulp(observed, expected, nulp=100)
def test_padecases_dtype_complex(self):
for scale in [1e-2, 1e-1, 5e-1, 1, 10]:
A = scale * eye(3, dtype=dtype)
observed = expm(A)
- expected = exp(scale) * eye(3, dtype=dtype)
+ expected = exp(scale, dtype=dtype) * eye(3, dtype=dtype)
assert_array_almost_equal_nulp(observed, expected, nulp=100)
def test_padecases_dtype_sparse_float(self):
dtype = np.float64
for scale in [1e-2, 1e-1, 5e-1, 1, 10]:
a = scale * speye(3, 3, dtype=dtype, format='csc')
- e = exp(scale) * eye(3, dtype=dtype)
+ e = exp(scale, dtype=dtype) * eye(3, dtype=dtype)
with suppress_warnings() as sup:
sup.filter(SparseEfficiencyWarning,
"Changing the sparsity structure of a csc_matrix is expensive.")
"""
if maxval_limit is None:
- maxval_limit = 10
+ maxval_limit = np.int64(10)
+ else:
+ # Ensure we use numpy scalars rather than Python scalars (matters for
+ # NEP 50 casting rule changes)
+ maxval_limit = np.int64(maxval_limit)
if assert_32bit:
def new_get_index_dtype(arrays=(), maxval=None, check_contents=False):
assert_array_equal_dtype(dat < dat2, datsp < dat2)
assert_array_equal_dtype(datcomplex < dat2, datspcomplex < dat2)
# sparse/scalar
- assert_array_equal_dtype((datsp < 2).toarray(), dat < 2)
- assert_array_equal_dtype((datsp < 1).toarray(), dat < 1)
- assert_array_equal_dtype((datsp < 0).toarray(), dat < 0)
- assert_array_equal_dtype((datsp < -1).toarray(), dat < -1)
- assert_array_equal_dtype((datsp < -2).toarray(), dat < -2)
+ for val in [2, 1, 0, -1, -2]:
+ val = np.int64(val) # avoid Python scalar (due to NEP 50 changes)
+ assert_array_equal_dtype((datsp < val).toarray(), dat < val)
+ assert_array_equal_dtype((val < datsp).toarray(), val < dat)
+
with np.errstate(invalid='ignore'):
assert_array_equal_dtype((datsp < np.nan).toarray(),
dat < np.nan)
- assert_array_equal_dtype((2 < datsp).toarray(), 2 < dat)
- assert_array_equal_dtype((1 < datsp).toarray(), 1 < dat)
- assert_array_equal_dtype((0 < datsp).toarray(), 0 < dat)
- assert_array_equal_dtype((-1 < datsp).toarray(), -1 < dat)
- assert_array_equal_dtype((-2 < datsp).toarray(), -2 < dat)
-
# data
dat = self.dat_dtypes[dtype]
datsp = self.datsp_dtypes[dtype]
assert_array_equal_dtype(dat > dat2, datsp > dat2)
assert_array_equal_dtype(datcomplex > dat2, datspcomplex > dat2)
# sparse/scalar
- assert_array_equal_dtype((datsp > 2).toarray(), dat > 2)
- assert_array_equal_dtype((datsp > 1).toarray(), dat > 1)
- assert_array_equal_dtype((datsp > 0).toarray(), dat > 0)
- assert_array_equal_dtype((datsp > -1).toarray(), dat > -1)
- assert_array_equal_dtype((datsp > -2).toarray(), dat > -2)
+ for val in [2, 1, 0, -1, -2]:
+ val = np.int64(val) # avoid Python scalar (due to NEP 50 changes)
+ assert_array_equal_dtype((datsp > val).toarray(), dat > val)
+ assert_array_equal_dtype((val > datsp).toarray(), val > dat)
+
with np.errstate(invalid='ignore'):
assert_array_equal_dtype((datsp > np.nan).toarray(),
dat > np.nan)
- assert_array_equal_dtype((2 > datsp).toarray(), 2 > dat)
- assert_array_equal_dtype((1 > datsp).toarray(), 1 > dat)
- assert_array_equal_dtype((0 > datsp).toarray(), 0 > dat)
- assert_array_equal_dtype((-1 > datsp).toarray(), -1 > dat)
- assert_array_equal_dtype((-2 > datsp).toarray(), -2 > dat)
-
# data
dat = self.dat_dtypes[dtype]
datsp = self.datsp_dtypes[dtype]
assert_array_equal_dtype(datsp <= dat2, dat <= dat2)
assert_array_equal_dtype(datspcomplex <= dat2, datcomplex <= dat2)
# sparse/scalar
- assert_array_equal_dtype((datsp <= 2).toarray(), dat <= 2)
- assert_array_equal_dtype((datsp <= 1).toarray(), dat <= 1)
- assert_array_equal_dtype((datsp <= -1).toarray(), dat <= -1)
- assert_array_equal_dtype((datsp <= -2).toarray(), dat <= -2)
-
- assert_array_equal_dtype((2 <= datsp).toarray(), 2 <= dat)
- assert_array_equal_dtype((1 <= datsp).toarray(), 1 <= dat)
- assert_array_equal_dtype((-1 <= datsp).toarray(), -1 <= dat)
- assert_array_equal_dtype((-2 <= datsp).toarray(), -2 <= dat)
+ for val in [2, 1, -1, -2]:
+ val = np.int64(val) # avoid Python scalar (due to NEP 50 changes)
+ assert_array_equal_dtype((datsp <= val).toarray(), dat <= val)
+ assert_array_equal_dtype((val <= datsp).toarray(), val <= dat)
# data
dat = self.dat_dtypes[dtype]
assert_array_equal_dtype(datsp >= dat2, dat >= dat2)
assert_array_equal_dtype(datspcomplex >= dat2, datcomplex >= dat2)
# sparse/scalar
- assert_array_equal_dtype((datsp >= 2).toarray(), dat >= 2)
- assert_array_equal_dtype((datsp >= 1).toarray(), dat >= 1)
- assert_array_equal_dtype((datsp >= -1).toarray(), dat >= -1)
- assert_array_equal_dtype((datsp >= -2).toarray(), dat >= -2)
-
- assert_array_equal_dtype((2 >= datsp).toarray(), 2 >= dat)
- assert_array_equal_dtype((1 >= datsp).toarray(), 1 >= dat)
- assert_array_equal_dtype((-1 >= datsp).toarray(), -1 >= dat)
- assert_array_equal_dtype((-2 >= datsp).toarray(), -2 >= dat)
+ for val in [2, 1, -1, -2]:
+ val = np.int64(val) # avoid Python scalar (due to NEP 50 changes)
+ assert_array_equal_dtype((datsp >= val).toarray(), dat >= val)
+ assert_array_equal_dtype((val >= datsp).toarray(), val >= dat)
# dense data
dat = self.dat_dtypes[dtype]