コード例 #1
0
def test_jacobian_self():
    q = Array((num2, num3))
    jac = q.jacobian(q)
    assert jac[0, 0] == 1
    assert jac[0, 1] == 0
    assert jac[1, 0] == 0
    assert jac[1, 1] == 1
コード例 #2
0
def test_steepest_descent_armijo():
    """Should trigger the line search
    """
    initial_guess = Array([Number(2), Number(1)])
    _, xstar, _, _ = optimizations.steepest_descent(rosenbrock,
                                                    initial_guess,
                                                    iterations=50)
コード例 #3
0
def test_iter():
    q = Array((num2, num3))
    q_ = []
    for el in q:
        q_.append(el)

    assert q_ == [num2, num3]
コード例 #4
0
def test_steepest_descent():

    initial_guess = Array([Number(1.1), Number(1.1)])
    _, xstar, _, _ = optimizations.steepest_descent(bowl,
                                                    initial_guess,
                                                    iterations=400)
    # print(xstar)
    assert xstar[0].val == pytest.approx(1, abs=1e-3)
    assert xstar[1].val == pytest.approx(1, abs=1e-3)
コード例 #5
0
        def inner_func(*args, **kwargs):
            # Check if args[0] has len. If so, apply the function elementwise and return an array
            # rather than a Number
            try:
                value = func(*args, **kwargs)
                deriv = deriv_func(*args, **kwargs)
                return Number(value, deriv)

            except AttributeError:

                vals = [func(element, *args[1:], **kwargs) for element in args[0]]
                derivs = [deriv_func(element, *args[1:], **kwargs) for element in args[0]]
                numbers = [Number(val, deriv) for val, deriv in zip(vals, derivs)]
                return Array(numbers)
コード例 #6
0
def test_str():
    q = Array((num2, num3))
    assert str(q) == '[Number(val=2) Number(val=3)]'
コード例 #7
0
def test_indexing():
    q = Array((num2, num3))
    assert q[0] == num2
コード例 #8
0
def test_mul_array():
    q = Array((num2, num3))
    w = q * q
    assert w[0].val == 4
    assert w[1].val == 9
コード例 #9
0
def test_len():
    q = Array((num2, num3))
    assert len(q) == 2
コード例 #10
0
def test_radd_scalar():
    q = Array((num2, num3))
    w = 2 + q
    assert w[0].val == 4
    assert w[1].val == 5
コード例 #11
0
def test_rsub_scalar():
    q = Array((num2, num3))
    w = 10 - q
    assert w[0].val == 8
    assert w[1].val == 7
コード例 #12
0
def test_array_converts_to_number():
    q = Array((Number(0), 0))
    assert q[0].val == 0
    assert q[1].val == 0
コード例 #13
0
def test_add():
    q = Array((num2, num3))
    w = q + q
    assert w[0].val == 4
    assert w[1].val == 6
コード例 #14
0
def test_array_func():
    q = Array((Number(0), Number(1)))

    w = operations.exp(q)
    assert w[0].val == pytest.approx(1)
    assert w[1].val == pytest.approx(np.exp(1))
コード例 #15
0
def test_jacobian_scalar():
    q = Array((num2, num3))
    jac = q.jacobian(q[0])
    assert jac[0] == 1
    assert jac[1] == 0
コード例 #16
0
def test_neg():
    q = Array((num2, num3))
    w = -q
    assert w[0].val == -2
    assert w[1].val == -3
コード例 #17
0
def test_rpow():
    q = Array((num2, num3))
    v = [2, 2]
    w = v**q
    assert w[0].val == 4
    assert w[1].val == 8
コード例 #18
0
def test_pow():
    q = Array((num2, num3))
    w = q**2
    assert w[0].val == 4
    assert w[1].val == 9
コード例 #19
0
def test_div_scalar():
    q = Array((num2, num3))
    w = q / 2
    assert w[0].val == pytest.approx(1)
    assert w[1].val == pytest.approx(3 / 2)
コード例 #20
0
def test_eq():
    q = Array((Number(0), 0))
    assert q == q
コード例 #21
0
def test_setitem():
    q = Array((num2, num3))
    q[0] = num2
    assert q[0] == num2
コード例 #22
0
def test_repr():
    q = Array((num2, num3))
    assert repr(q) == 'Array([Number(val=2) Number(val=3)])'
コード例 #23
0
def test_add_scalar():
    q = Array((num2, num3))
    w = q + 1
    assert w[0].val == 3
    assert w[1].val == 4
コード例 #24
0
def test_rdiv():
    q = Array((num2, num3))
    w = 12 / q
    assert w[0].val == pytest.approx(6)
    assert w[1].val == pytest.approx(4)
コード例 #25
0
def test_sub_array():
    q = Array((num2, num3))
    w = q - q
    assert w[0].val == 0
    assert w[1].val == 0
コード例 #26
0
def test_neq():
    q = Array((Number(0), 0))

    w = Array((Number(0), 1))

    assert q != w
コード例 #27
0
def test_sub_scalar():
    q = Array((num2, num3))
    w = q - 1
    assert w[0].val == 1
    assert w[1].val == 2
コード例 #28
0
def test_dot():
    q = Array((Number(0), 0))
    assert q.dot(q).val == 0
コード例 #29
0
def test_neq_mixed():
    q = Array((Number(0), 0))
    assert q != 'a'
    assert q != 1
コード例 #30
0
def test_array_only_number():
    q = Array((num2, num2))
    with pytest.raises(ValueError):
        q[0] = 1