Example #1
0
def test_defaults():
    prob, xvars = example()
    prox = Prox(prob, xvars)

    assert prox.settings == dict(eps=1e-3, max_iters=100, verbose=False)

    # make sure the CySCS settings are set to the correct defaults
    assert prox._work.settings['eps'] == 1e-3
    assert prox._work.settings['max_iters'] == 100
    assert prox._work.settings['verbose'] == False
Example #2
0
def test_defaults():
    prob, xvars = example()
    prox = Prox(prob, xvars)

    assert prox.settings == dict(eps=1e-3, max_iters=100, verbose=False)

    # make sure the CySCS settings are set to the correct defaults
    assert prox._work.settings['eps'] == 1e-3
    assert prox._work.settings['max_iters'] == 100
    assert not prox._work.settings['verbose']
Example #3
0
def test():
    prob, x_vars = example()
    data, indmap, solmap = stuffed_prox(prob, x_vars)

    x = 3
    rho = 2  # x should decrease by 1/rho
    x0_vals = dict(x=x)

    x_vals = do_prox(data, indmap, solmap, x0_vals, rho)

    assert np.allclose(x_vals['x'], x - 1.0 / rho, atol=1e-3)
Example #4
0
def test():
    prob, x_vars = example()
    data, indmap, solmap = stuffed_prox(prob, x_vars)

    x = 3
    rho = 2 # x should decrease by 1/rho
    x0_vals = dict(x=x)

    x_vals = do_prox(data, indmap, solmap, x0_vals, rho)

    assert np.allclose(x_vals['x'], x-1.0/rho, atol=1e-3)
Example #5
0
def test1():
    prob, xvars = example()
    prox = Prox(prob, xvars)

    assert prox.settings == dict(eps=1e-3, max_iters=100, verbose=False)

    prox.update_settings(eps=1e-7)
    assert prox.settings['eps'] == 1e-7

    with pytest.raises(ValueError):
        prox.update_settings(cows=17)

    # won't catch the bad key here
    prox.settings['cows'] = 17
    # but will catch it when prox is run
    with pytest.raises(ValueError):
        prox()
Example #6
0
def test_1():

    # todo: test that it works on the boundary...

    prob, x_vars = example()

    pxprob, x0_vars = form_prox(prob, x_vars)

    x = 3
    rho = 2  # x should decrease by 1/rho

    x0_vars['x'].value = x
    x0_vars['__tau'].value = rho / 2.0

    pxprob.solve()

    assert np.allclose(x_vars['x'].value, x - 1.0 / rho)
Example #7
0
def test_1():

    # todo: test that it works on the boundary...

    prob, x_vars = example()

    pxprob, x0_vars = form_prox(prob, x_vars)

    x = 3
    rho = 2 # x should decrease by 1/rho

    x0_vars['x'].value = x    
    x0_vars['__tau'].value = rho/2.0

    pxprob.solve()

    assert np.allclose(x_vars['x'].value, x-1.0/rho)
Example #8
0
def test1():
    prob, xvars = example()
    prox = Prox(prob, xvars)

    assert prox.settings == dict(eps=1e-3, max_iters=100, verbose=False)

    prox.update_settings(eps=1e-7)
    assert prox.settings['eps'] == 1e-7

    with pytest.raises(ValueError):
        prox.update_settings(cows=17)

    # won't catch the bad key here
    prox.settings['cows'] = 17
    # but will catch it when prox is run
    with pytest.raises(ValueError):
        prox()
Example #9
0
def test1():
    prob, xvars = example()
    prox = Prox(prob, xvars)

    x = prox()
    # assert that info has correct keys
    for key in 'status', 'iter', 'time':
        assert key in prox.info

    assert 'x' in x

    # test that SCS settings get passed down
    prox.update_settings(eps=4.5, max_iters=123)
    assert prox.settings['eps'] == 4.5
    assert prox.settings['max_iters'] == 123

    # note: settings don't actually get passed to CySCS until we call the CySCS solve internally, i.e., compute the prox
    assert prox._work.settings['eps'] != 4.5
    assert prox._work.settings['max_iters'] != 123
    prox()
    assert prox._work.settings['eps'] == 4.5
    assert prox._work.settings['max_iters'] == 123
Example #10
0
def test1():
    prob, xvars = example()
    prox = Prox(prob, xvars)

    x = prox()
    # assert that info has correct keys
    for key in 'status', 'iter', 'time':
        assert key in prox.info

    assert 'x' in x

    # test that SCS settings get passed down
    prox.update_settings(eps=4.5, max_iters=123)
    assert prox.settings['eps'] == 4.5
    assert prox.settings['max_iters'] == 123

    # note: settings don't actually get passed to CySCS until we call the CySCS solve internally, i.e., compute the prox
    assert prox._work.settings['eps'] != 4.5
    assert prox._work.settings['max_iters'] != 123
    prox()
    assert prox._work.settings['eps'] == 4.5
    assert prox._work.settings['max_iters'] == 123
Example #11
0
def test1():
    prob, xvars = example()
    prox = CVXPYProx(prob, xvars)
    prox()