| """Regression tests for optimize. | |
| """ | |
| import numpy as np | |
| from numpy.testing import assert_almost_equal | |
| from pytest import raises as assert_raises | |
| import scipy.optimize | |
| class TestRegression: | |
| def test_newton_x0_is_0(self): | |
| # Regression test for gh-1601 | |
| tgt = 1 | |
| res = scipy.optimize.newton(lambda x: x - 1, 0) | |
| assert_almost_equal(res, tgt) | |
| def test_newton_integers(self): | |
| # Regression test for gh-1741 | |
| root = scipy.optimize.newton(lambda x: x**2 - 1, x0=2, | |
| fprime=lambda x: 2*x) | |
| assert_almost_equal(root, 1.0) | |
| def test_lmdif_errmsg(self): | |
| # This shouldn't cause a crash on Python 3 | |
| class SomeError(Exception): | |
| pass | |
| counter = [0] | |
| def func(x): | |
| counter[0] += 1 | |
| if counter[0] < 3: | |
| return x**2 - np.array([9, 10, 11]) | |
| else: | |
| raise SomeError() | |
| assert_raises(SomeError, | |
| scipy.optimize.leastsq, | |
| func, [1, 2, 3]) | |