コード例 #1
0
def test_add2():
    ad1 = ad.AD_eval('x + x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (2,4)
コード例 #2
0
def test_rtruediv():
    ad1 = ad.AD_eval('3/x', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (-3/4,3/2)
コード例 #3
0
def test_pow2():
    ad1 = ad.AD_eval('x**x','x',2)
    assert (ad1.derivative('x'), ad1.val) == (4+ 4*math.log(2),4)
コード例 #4
0
def test_rmul():
    ad1 = ad.AD_eval('2 * x', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (2,4)
コード例 #5
0
def test_truediv2():
    ad1 = ad.AD_eval('(x+2)/x', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (-1/2,2)
コード例 #6
0
def test_ln_with_negative():
    with pytest.raises(ValueError):
        ad.AD_eval('log(-1*x)', 'x', 3)
コード例 #7
0
def test_rsub():
    ad1 = ad.AD_eval('2 - x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (-1,0)
コード例 #8
0
def test_AD_eval_multiple1_var2():
    with pytest.raises(AssertionError):
        ad.AD_eval('2*x+y', ['x', 'y'],[1, '2'])
コード例 #9
0
def test_AD_eval_multiple1_var3():
    with pytest.raises(NameError):
        ad.AD_eval('exp(x)+y', ['x', 'y'],[1,2])
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #13
0
def test_log2():
    with pytest.raises(ValueError):
        ad.AD_eval('log(x)','x',0)
コード例 #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))
コード例 #15
0
def test_division_by_zero():
    with pytest.raises(ValueError):
        ad.AD_eval('x/0', 'x', 3)
コード例 #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)
コード例 #17
0
def test_division_by_zero3():
    with pytest.raises(ValueError):
        ad.AD_eval('(x+1)/x', 'x', 0)
コード例 #18
0
def test_radd():
    ad1 = ad.AD_eval('2 + x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (1,4)
コード例 #19
0
def test_exponential_function_name():
    with pytest.raises(NameError):
        ad.AD_eval('3*log(5)/exp(x)', 'x', 3)
コード例 #20
0
def test_sub():
    ad1 = ad.AD_eval('x - 2', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (1,0)
コード例 #21
0
def test_mul2():
    ad1 = ad.AD_eval('x * x', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (4,4)
コード例 #22
0
def test_sub2():
    ad1 = ad.AD_eval('x - 2*x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (-1,-2)
コード例 #23
0
def test_truediv():
    ad1 = ad.AD_eval('x/2', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (1/2,1)
コード例 #24
0
def test_input_function_types():
    x = 2
    with pytest.raises(AssertionError):
        ad.AD_eval(3*x+2, "x", 2)
コード例 #25
0
def test_negation():
    ad1 = ad.AD_eval('-x', "x", 2)
    assert (ad1.derivative('x'), ad1.val) == (-1, -2)
コード例 #26
0
def test_input_label_types():
    x = 2
    with pytest.raises(AssertionError):
        ad.AD_eval('3x+2', x, 2)
コード例 #27
0
def test_pow():
    ad1 = ad.AD_eval('x**3', 'x', 2)
    assert (ad1.derivative('x'), ad1.val) == (12,8)
コード例 #28
0
def test_input_value_types():
    with pytest.raises(AssertionError):
        ad.AD_eval('3x+2', 'x', '3')
コード例 #29
0
def test_rpow():
    ad1 = ad.AD_eval('3**x','x', 2)
    assert (ad1.derivative('x'), ad1.val) == (9*math.log(3),9)
コード例 #30
0
def test_arctan():
    ad1 = ad.AD_eval('arctan(x)','x', 2)
    assert (ad1.derivative('x'), ad1.val) == (1 / 5,math.atan(2))