def test_dtype_from_char(self): mat = np.eye(3) codes = 'efdgFDG' for c in codes: tgt = np.sum(mat, dtype=c, axis=1).dtype.type res = nansum(mat, dtype=c, axis=1).dtype.type assert_(res is tgt) # scalar case tgt = np.sum(mat, dtype=c, axis=None).dtype.type res = nansum(mat, dtype=c, axis=None).dtype.type assert_(res is tgt)
def test_dtype_from_input(self): codes = 'efdgFDG' for c in codes: mat = np.eye(3, dtype=c) tgt = np.sum(mat, axis=1).dtype.type res = nansum(mat, axis=1).dtype.type assert_(res is tgt) # scalar case tgt = np.sum(mat, axis=None).dtype.type res = nansum(mat, axis=None).dtype.type assert_(res is tgt)
def test_empty(self): mat = np.zeros((0, 3)) tgt = [0] * 3 res = nansum(mat, axis=0) assert_equal(res, tgt) tgt = [] res = nansum(mat, axis=1) assert_equal(res, tgt) tgt = 0 res = nansum(mat, axis=None) assert_equal(res, tgt)
def test_empty(self): mat = np.zeros((0, 3)) tgt = [0]*3 res = nansum(mat, axis=0) assert_equal(res, tgt) tgt = [] res = nansum(mat, axis=1) assert_equal(res, tgt) tgt = 0 res = nansum(mat, axis=None) assert_equal(res, tgt)
def test_out(self): mat = np.eye(3) resout = np.zeros(3) tgt = np.sum(mat, axis=1) res = nansum(mat, axis=1, out=resout) assert_almost_equal(res, resout) assert_almost_equal(res, tgt)
def test_allnans(self): # Check for FutureWarning and later change of return from # NaN to zero. with warnings.catch_warnings(record=True) as w: warnings.simplefilter('always') res = nansum([np.nan]*3, axis=None) if np.__version__[:3] < '1.9': assert_(np.isnan(res), 'result is not NaN') assert_(len(w) == 1, 'no warning raised') assert_(issubclass(w[0].category, FutureWarning)) # Check there is no warning for not all-nan nansum([0]*3, axis=None) assert_(len(w) == 1, 'unwanted warning raised') else: assert_(res == 0, 'result is not 0') assert_(len(w) == 0, 'warning raised')
def test_allnans(self): # Check for FutureWarning and later change of return from # NaN to zero. with warnings.catch_warnings(record=True) as w: warnings.simplefilter('always') res = nansum([np.nan] * 3, axis=None) if np.__version__[:3] < '1.9': assert_(np.isnan(res), 'result is not NaN') assert_(len(w) == 1, 'no warning raised') assert_(issubclass(w[0].category, FutureWarning)) # Check there is no warning for not all-nan nansum([0] * 3, axis=None) assert_(len(w) == 1, 'unwanted warning raised') else: assert_(res == 0, 'result is not 0') assert_(len(w) == 0, 'warning raised')
def test_allnans(self): # Check for FutureWarning and later change of return from # NaN to zero. with warnings.catch_warnings(record=True) as w: warnings.simplefilter('always') res = nansum([np.nan]*3, axis=None) assert_(res == 0, 'result is not 0') assert_(len(w) == 0, 'warning raised')
def test_allnans(self): # Check for FutureWarning and later change of return from # NaN to zero. with warnings.catch_warnings(record=True) as w: warnings.simplefilter('always') res = nansum([np.nan] * 3, axis=None) assert_(res == 0, 'result is not 0') assert_(len(w) == 0, 'warning raised')
def test_empty(self): mat = np.zeros((0, 3)) if np.__version__[:3] < '1.9': tgt = [np.nan]*3 res = nansum(mat, axis=0) assert_equal(res, tgt) tgt = [] res = nansum(mat, axis=1) assert_equal(res, tgt) tgt = np.nan res = nansum(mat, axis=None) assert_equal(res, tgt) else: tgt = [0]*3 res = nansum(mat, axis=0) assert_equal(res, tgt) tgt = [] res = nansum(mat, axis=1) assert_equal(res, tgt) tgt = 0 res = nansum(mat, axis=None) assert_equal(res, tgt)
def test_empty(self): mat = np.zeros((0, 3)) if np.__version__[:3] < '1.9': tgt = [np.nan] * 3 res = nansum(mat, axis=0) assert_equal(res, tgt) tgt = [] res = nansum(mat, axis=1) assert_equal(res, tgt) tgt = np.nan res = nansum(mat, axis=None) assert_equal(res, tgt) else: tgt = [0] * 3 res = nansum(mat, axis=0) assert_equal(res, tgt) tgt = [] res = nansum(mat, axis=1) assert_equal(res, tgt) tgt = 0 res = nansum(mat, axis=None) assert_equal(res, tgt)
def test_result_values(self): tgt = [np.sum(d) for d in _rdat] res = nansum(_ndat, axis=1) assert_almost_equal(res, tgt)
def test_mutation(self): # Check that passed array is not modified. ndat = _ndat.copy() nansum(ndat) assert_equal(ndat, _ndat)
def test_keepdims(self): mat = np.eye(3) for axis in [None, 0, 1]: tgt = np.sum(mat, axis=axis, keepdims=True) res = nansum(mat, axis=axis, keepdims=True) assert_(res.ndim == tgt.ndim)