def test_log_constant_results():
	a = ef.log(0.5)
	assert a == np.log(0.5)
	with pytest.warns(RuntimeWarning):
		b = ef.log(0)
		assert np.isneginf(b)
	with pytest.warns(RuntimeWarning):
		b = ef.log(-0.5)
		assert np.isnan(b)
Example #2
0
def test_log_results():
    # Realue defined at positive real numbers x > 0
    # Dualivative defined at real numbers x ≠ 0
    X = Dual(0.5, 2)
    f = ef.log(X)
    assert f.Real == np.log(0.5)
    assert f.Dual == np.array([[2 / 0.5]])

    # Dualivative not defined at x = 0
    Y = Dual(0, 2)
    f = ef.log(Y)
    assert np.isneginf(f.Real)
    assert np.isinf(f.Dual)

    # Realue not defined at x < 0, Dualivative defined
    with pytest.warns(RuntimeWarning):
        Y = Dual(-0.5, 2)
        f = ef.log(Y)
        assert np.isnan(f.Real)
        assert f.Dual == np.array([[2 / -0.5]])
def test_log_results():
	# value defined at positive real numbers x > 0
	# derivative defined at real numbers x ≠ 0
	X = AutoDiff(0.5, 2)
	f = ef.log(X)
	assert f.val == np.log(0.5)
	assert f.der == np.array([[2/0.5]])
	assert f.jacobian == np.array([[1/0.5]])
	# derivative not defined at x = 0
	with pytest.warns(RuntimeWarning):
		Y = AutoDiff(0, 2)
		f = ef.log(Y)
		assert np.isneginf(f.val)
		assert np.isinf(f.der)
		assert np.isinf(f.jacobian)
	# value not defined at x < 0, derivative defined
	with pytest.warns(RuntimeWarning):
		Y = AutoDiff(-0.5, 2)
		f = ef.log(Y)
		assert np.isnan(f.val)
		assert f.der == np.array([[2/-0.5]])
		assert f.jacobian == np.array([[1/-0.5]])
def test_log_types():
	with pytest.raises(TypeError):
		ef.log('x')
	with pytest.raises(TypeError):
		ef.log("1234")