def test_add2():
    ad1 = ad.AD_eval('x + x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (2,4)
def test_rtruediv():
    ad1 = ad.AD_eval('3/x', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (-3/4,3/2)
def test_pow2():
    ad1 = ad.AD_eval('x**x','x',2)
    assert (ad1.derivative('x'), ad1.val) == (4+ 4*math.log(2),4)
def test_rmul():
    ad1 = ad.AD_eval('2 * x', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (2,4)
def test_truediv2():
    ad1 = ad.AD_eval('(x+2)/x', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (-1/2,2)
def test_ln_with_negative():
    with pytest.raises(ValueError):
        ad.AD_eval('log(-1*x)', 'x', 3)
def test_rsub():
    ad1 = ad.AD_eval('2 - x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (-1,0)
def test_AD_eval_multiple1_var2():
    with pytest.raises(AssertionError):
        ad.AD_eval('2*x+y', ['x', 'y'],[1, '2'])
def test_AD_eval_multiple1_var3():
    with pytest.raises(NameError):
        ad.AD_eval('exp(x)+y', ['x', 'y'],[1,2])
Ejemplo n.º 10
0
def test_sqrt():
    ad0 = ad.AD_eval('sqrt(x)','x', 4)
    ad1 = ad.AD_Object(4, 'x').sqrt()
    assert (ad0.derivative('x'), ad0.val) == (1/4,2)
    assert (ad1.der['x'], ad1.val) == (1/4,2)
Ejemplo n.º 11
0
def test_repr_AD_eval():
     ad1 = repr(ad.AD_eval('x', 'x', 1))
     val = 1
     der = 1
     assert ad1 == "AD Object: Value = %.3f, Derivative: d(x)= %.3f ; "%(val, der)
Ejemplo n.º 12
0
def test_sigmoid():
    ad1 = ad.AD_eval('sigmoid(x)','x',2)
    val = 1.0/(1.0 + math.exp(-2))
    assert (round(ad1.derivative('x'),5), ad1.val) == (round(val*(1-val),5),val)
Ejemplo n.º 13
0
def test_log2():
    with pytest.raises(ValueError):
        ad.AD_eval('log(x)','x',0)
Ejemplo n.º 14
0
def test_tanh():
    ad1 = ad.AD_eval('tanh(x)','x',2)
    assert (ad1.derivative('x'), ad1.val) == (2 / (1 + math.cosh(4)),math.tanh(2))
Ejemplo n.º 15
0
def test_division_by_zero():
    with pytest.raises(ValueError):
        ad.AD_eval('x/0', 'x', 3)
Ejemplo n.º 16
0
def test_AD_eval_multiple1_var4():
    ad1 = ad.AD_eval('x**2+y', ['x', 'y'],[1,2])
    assert (ad1.der['x'], ad1.der['y'], ad1.val) == (2,1,3)
Ejemplo n.º 17
0
def test_division_by_zero3():
    with pytest.raises(ValueError):
        ad.AD_eval('(x+1)/x', 'x', 0)
Ejemplo n.º 18
0
def test_radd():
    ad1 = ad.AD_eval('2 + x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (1,4)
Ejemplo n.º 19
0
def test_exponential_function_name():
    with pytest.raises(NameError):
        ad.AD_eval('3*log(5)/exp(x)', 'x', 3)
Ejemplo n.º 20
0
def test_sub():
    ad1 = ad.AD_eval('x - 2', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (1,0)
Ejemplo n.º 21
0
def test_mul2():
    ad1 = ad.AD_eval('x * x', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (4,4)
Ejemplo n.º 22
0
def test_sub2():
    ad1 = ad.AD_eval('x - 2*x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (-1,-2)
Ejemplo n.º 23
0
def test_truediv():
    ad1 = ad.AD_eval('x/2', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (1/2,1)
Ejemplo n.º 24
0
def test_input_function_types():
    x = 2
    with pytest.raises(AssertionError):
        ad.AD_eval(3*x+2, "x", 2)
Ejemplo n.º 25
0
def test_negation():
    ad1 = ad.AD_eval('-x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (-1, -2)
Ejemplo n.º 26
0
def test_input_label_types():
    x = 2
    with pytest.raises(AssertionError):
        ad.AD_eval('3x+2', x, 2)
Ejemplo n.º 27
0
def test_pow():
    ad1 = ad.AD_eval('x**3', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (12,8)
Ejemplo n.º 28
0
def test_input_value_types():
    with pytest.raises(AssertionError):
        ad.AD_eval('3x+2', 'x', '3')
Ejemplo n.º 29
0
def test_rpow():
    ad1 = ad.AD_eval('3**x','x', 2)
    assert (ad1.derivative('x'), ad1.val) == (9*math.log(3),9)
Ejemplo n.º 30
0
def test_arctan():
    ad1 = ad.AD_eval('arctan(x)','x', 2)
    assert (ad1.derivative('x'), ad1.val) == (1 / 5,math.atan(2))