Bug fix #3593 - approx method in a single element of numpy array
If the user pass as a expected value a numpy array created like numpy.array(5); it will creates an array with one element without shape, when used with approx it will raise an error 'TypeError: iteration over a 0-d array'
This commit is contained in:
@@ -27,8 +27,11 @@ class MyDocTestRunner(doctest.DocTestRunner):
|
||||
|
||||
class TestApprox(object):
|
||||
|
||||
def test_repr_string(self):
|
||||
plus_minus = u"\u00b1" if sys.version_info[0] > 2 else u"+-"
|
||||
@pytest.fixture
|
||||
def plus_minus(self):
|
||||
return u"\u00b1" if sys.version_info[0] > 2 else u"+-"
|
||||
|
||||
def test_repr_string(self, plus_minus):
|
||||
tol1, tol2, infr = "1.0e-06", "2.0e-06", "inf"
|
||||
assert repr(approx(1.0)) == "1.0 {pm} {tol1}".format(pm=plus_minus, tol1=tol1)
|
||||
assert (
|
||||
@@ -61,6 +64,18 @@ class TestApprox(object):
|
||||
),
|
||||
)
|
||||
|
||||
def test_repr_0d_array(self, plus_minus):
|
||||
np = pytest.importorskip("numpy")
|
||||
np_array = np.array(5.)
|
||||
assert approx(np_array) == 5.0
|
||||
string_expected = "approx([5.0 {} 5.0e-06])".format(plus_minus)
|
||||
|
||||
assert repr(approx(np_array)) == string_expected
|
||||
|
||||
np_array = np.array([5.])
|
||||
assert approx(np_array) == 5.0
|
||||
assert repr(approx(np_array)) == string_expected
|
||||
|
||||
def test_operator_overloading(self):
|
||||
assert 1 == approx(1, rel=1e-6, abs=1e-12)
|
||||
assert not (1 != approx(1, rel=1e-6, abs=1e-12))
|
||||
|
||||
Reference in New Issue
Block a user