def test_ilsr_max_iter(): vals = [np.exp([-0.5, 0.5]), np.exp([-0.3, 0.3]), np.exp([-0.2, 0.2]), np.exp([-0.25, 0.25])] lsr = Mock(side_effect=vals) with pytest.raises(RuntimeError): _ilsr(2, [], alpha=0.0, params=None, max_iter=2, tol=0.01, lsr_fun=lsr) assert lsr.call_count == 2
def test_ilsr_max_iter(): """Low `max_iter` raises `RuntimeError`.""" vals = [ np.array([-0.5, 0.5]), np.array([-0.3, 0.3]), np.array([-0.2, 0.2]), np.array([-0.25, 0.25]) ] lsr = Mock(side_effect=vals) with pytest.raises(RuntimeError): _ilsr(fun=lsr, params=None, max_iter=2, tol=0.01) assert lsr.call_count == 2
def test_ilsr_tolerance(): vals = [np.exp([-0.5, 0.5]), np.exp([-0.3, 0.3]), np.exp([-0.2, 0.2]), np.exp([-0.25, 0.25])] lsr = Mock(side_effect=vals) est = _ilsr(2, [], alpha=0.0, params=None, max_iter=100, tol=0.15, lsr_fun=lsr) assert np.array_equal(est, vals[2]) assert lsr.call_count == 3
def test_ilsr_tolerance(): """Tolerance affects the number of iterations.""" vals = [ np.array([-0.5, 0.5]), np.array([-0.3, 0.3]), np.array([-0.2, 0.2]), np.array([-0.25, 0.25]) ] lsr = Mock(side_effect=vals) est = _ilsr(fun=lsr, params=None, max_iter=100, tol=0.15) assert np.array_equal(est, vals[2]) assert lsr.call_count == 3