"""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(object): 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])