示例#1
0
def test_div():
    x1 = ad.Variable(1)
    x2 = x1/5
    x3 = 3/x1
    assert x2.val == 1/5
    assert x2.der == {'x': 1/5}
    assert x3.val == 3
    assert x3.der == {'x': -3}
示例#2
0
def test_pow():
    x1 = ad.Variable(3)
    x2 = x1**2
    x3 = 3**x1
    print(x3.der)
    print(x3.val)
    assert x2.val == 9
    assert x2.der == {'x': 6}
    assert x3.val == 27
    assert x3.der == {'x': np.log(3)*3**3}
示例#3
0
def test_mul():
    x1 = ad.Variable(4)
    x2 = 3*x1
    x3 = x1*x2
    x4 = x1*4
    assert x2.val == 12
    assert x2.der == {'x': 3}
    assert x3.val == 48
    assert x3.der == {'x': 24}
    assert x4.val == 16
    assert x4.der == {'x': 4}
示例#4
0
def test_neg():
    x1 = ad.Variable(2)
    x2 = -x1
    assert x2.val == -2
    assert x2.der == {'x': -1}

# test_add()
# test_sub()
# test_mul()
# test_div()
# test_pow()
# test_neg()
# test_div_zero_division()
示例#5
0
def test_add():
    x1 = ad.Variable(1)
    x2 = x1 + 2
    x3 = x1 + x2
    x4 = 3 + x1
    assert x1.val == 1
    assert x1.der == {'x': 1.0}
    assert x2.val == 3
    assert x2.der == {'x': 1.0}
    assert x3.val == 4
    assert x3.der == {'x': 2.0}
    assert x4.val == 4
    assert x4.der == {'x': 1.0}
示例#6
0
def test_sub():
    x1 = ad.Variable(4)
    x2 = x1 - 4
    x3 = x2 - x1
    x4 = 4 - x1
    x5 = x1 - 4
    assert x2.val == 0
    assert x2.der == {'x': 1}
    assert x3.val == -4
    assert x3.der == {'x': 0}
    assert x4.val == 0
    assert x4.der == {'x': -1}
    assert x5.val == 0
    assert x5.der == {'x': 1}
示例#7
0
def test_pow_of_variable():
    with pytest.raises(Exception):
        x1 = ad.Variable(1)
        x3 = x1**x1