예제 #1
0
def test_opt_2():
    f = lambda x, y, z: x**2 + y**2 + z**2
    opt = Optimizer(f)
    opt.descent()
    np.testing.assert_allclose(opt.global_optimizer,
                               np.array([0, 0, 0]),
                               atol=1e-3)
예제 #2
0
def test_descent_2_verbose_2():
    f = lambda x, y, z: x**2 + y**2 + z**2
    opt = Optimizer(f, quadratic_matrix=np.eye(3), tuning=True, verbose=2)
    opt.descent()
    optimal_point = opt.global_optimizer
    assert abs(optimal_point[0]) < 1e-3
    assert abs(optimal_point[1]) < 1e-3
    assert abs(optimal_point[2]) < 1e-3
예제 #3
0
def test_descent_1():
    f = lambda x, y, z: x**2 + y**2 + (z - 2)**2
    opt = Optimizer(f)
    opt.descent()
    optimal_point = opt.global_optimizer
    assert abs(optimal_point[0]) < 1e-3
    assert abs(optimal_point[1]) < 1e-3
    assert abs(optimal_point[2] - 2) < 1e-3
예제 #4
0
def test_init_value_error_sampling():
    f = lambda x: x
    sampling = False
    covariance_matrix = np.eye(2)
    with pytest.raises(ValueError):
        opt = Optimizer(f=f,
                        tuning=sampling,
                        quadratic_matrix=covariance_matrix)
예제 #5
0
def test_init_quad_value_error_2():
    f = lambda x, y: x + y
    init_points = [1, 2]
    sampling = True
    cov_matrix = np.eye(3)
    with pytest.raises(ValueError):
        opt = Optimizer(f=f,
                        tuning=sampling,
                        init_points=init_points,
                        quadratic_matrix=cov_matrix)
예제 #6
0
def test_init_quad_type_error():
    f = lambda x: x
    init_points = [1]
    sampling = True
    cov_matrix = [1, 2]
    with pytest.raises(TypeError):
        opt = Optimizer(f=f,
                        tuning=sampling,
                        init_points=init_points,
                        quadratic_matrix=cov_matrix)
예제 #7
0
def test_init_dimensions():
    f = lambda x: x
    init_points = [1, 2]
    sampling = True
    cov_matrix = np.eye(2)
    opt = Optimizer(f=f,
                    tuning=sampling,
                    init_points=init_points,
                    quadratic_matrix=cov_matrix)
    assert opt.vectorize == True
    assert opt.dimension == 2
예제 #8
0
def test_init_quad_value_error():
    f = lambda x, y: x + y
    init_points = [1, 2]
    sampling = True
    cov_matrix = np.array([1, 2])
    print(len(cov_matrix.shape))
    with pytest.raises(ValueError):
        opt = Optimizer(f=f,
                        tuning=sampling,
                        init_points=init_points,
                        quadratic_matrix=cov_matrix)
예제 #9
0
def test_init_without_sampling():
    f = lambda x: x
    max_iter = 10
    init_points = [1]
    tolerance = 1
    random_restarts = 2
    beta_1 = 0.5
    beta_2 = 0.1
    step_size = 1e-2
    epsilon = 1e-4
    tuning = False
    verbose = 0
    opt = Optimizer(f=f,
                    max_iter=max_iter,
                    init_points=init_points,
                    tolerance=tolerance,
                    random_restarts=random_restarts,
                    beta_1=beta_1,
                    beta_2=beta_2,
                    step_size=step_size,
                    epsilon=epsilon,
                    tuning=tuning,
                    verbose=verbose)
예제 #10
0
def test_init_type_error_init_points():
    f = lambda x, y: x + y
    init_points = 'hey'
    with pytest.raises(TypeError):
        opt = Optimizer(f=f, init_points=init_points)
예제 #11
0
def test_init_type_error_tol():
    f = lambda x: x
    tol = 'hey'
    with pytest.raises(TypeError):
        opt = Optimizer(f=f, tolerance=tol)
예제 #12
0
def test_descenterror_cov():
    f = lambda x, y, z: x**2 + y**2 + z**2
    with pytest.raises(ValueError):
        opt = Optimizer(f, quadratic_matrix=None, tuning=True, verbose=2)
        opt.descent()
        optimal_point = opt.global_optimizer
예제 #13
0
def test_init_value_error_init_points():
    f = lambda x, y: x + y
    init_points = [1]
    with pytest.raises(ValueError):
        opt = Optimizer(f=f, init_points=init_points)
예제 #14
0
def test_init_epochs_value_error():
    f = lambda x: x
    epochs = -1
    with pytest.raises(ValueError):
        opt = Optimizer(f=f, max_epochs=epochs)
예제 #15
0
def test_init_epochs_type_error():
    f = lambda x: x
    epochs = 'hey'
    with pytest.raises(TypeError):
        opt = Optimizer(f=f, max_epochs=epochs)
예제 #16
0
def test_init_type_error_beta2():
    f = lambda x: x
    beta_2 = 'hey'
    with pytest.raises(TypeError):
        opt = Optimizer(f=f, beta_2=beta_2)
예제 #17
0
def test_init_type_error_sampling():
    f = lambda x: x
    sampling = 'hey'
    with pytest.raises(TypeError):
        opt = Optimizer(f=f, tuning=sampling)
예제 #18
0
def test_init_type_error_lr():
    f = lambda x: x
    lr = 'hey'
    with pytest.raises(TypeError):
        opt = Optimizer(f=f, step_size=lr)
예제 #19
0
def test_init_type_error_restarts():
    f = lambda x: x
    restarts = 'hey'
    with pytest.raises(TypeError):
        opt = Optimizer(f=f, random_restarts=restarts)
예제 #20
0
def test_init_type_error_iter():
    f = lambda x: x
    max_iter = 'hey'
    with pytest.raises(TypeError):
        opt = Optimizer(f=f, max_iter=max_iter)
예제 #21
0
def test_init_verbose_value_error():
    f = lambda x: x
    verbose = -1
    with pytest.raises(ValueError):
        opt = Optimizer(f=f, verbose=verbose)
예제 #22
0
def test_init_verbose_type_error():
    f = lambda x: x
    verbose = 'hey'
    with pytest.raises(TypeError):
        opt = Optimizer(f=f, verbose=verbose)
예제 #23
0
def test_init_value_error_tol():
    f = lambda x: x
    tol = -1
    with pytest.raises(ValueError):
        opt = Optimizer(f=f, tolerance=tol)
예제 #24
0
def test_produce_random_sample():
    f = lambda x: x**2
    Opt = Optimizer(f)
    init_points = Opt.produce_random_points()
    assert init_points.shape[0] == 1
예제 #25
0
def test_init_value_error_restarts():
    f = lambda x: x
    restarts = -1
    with pytest.raises(ValueError):
        opt = Optimizer(f=f, random_restarts=restarts)
예제 #26
0
def test_dimensionality_2():
    f = lambda x, y: x + y
    Opt = Optimizer(f)
    init_points = Opt.produce_random_points()
    assert init_points.shape[0] == 2
예제 #27
0
def test_init_value_error_lr():
    f = lambda x: x
    lr = -1
    with pytest.raises(ValueError):
        opt = Optimizer(f=f, step_size=lr)
예제 #28
0
def test_produce_random_sample_2():
    f = lambda x, y, z: x * y + z
    opt = Optimizer(f)
    init_points = opt.produce_random_points()
    assert init_points.shape[0] == 3
예제 #29
0
def test_init_value_error_beta1():
    f = lambda x: x
    beta_1 = -1
    with pytest.raises(ValueError):
        opt = Optimizer(f=f, beta_1=beta_1)
예제 #30
0
def test_init_without_list():
    f = lambda x: x
    init_point = 2
    opt = Optimizer(f=f, init_points=init_point)