def test_arccosh_constant_results():
	a = ef.arccosh(5)
	assert a == np.arccosh(5)
	# value not defined at x < 1
	with pytest.warns(RuntimeWarning):
		a = ef.arccosh(0.9)
		assert np.isnan(a)
示例#2
0
def test_arccosh_ad_results():
    # Realue defined at positive real numbers x >= 1
    # Dualivative defined at positive real numbers x > 1
    x = Dual(1.1, 2)
    f = ef.arccosh(x)
    assert f.Real == np.arccosh(1.1)
    assert f.Dual == np.array([[((2) / np.sqrt((1.1)**2 - 1))]])

    # Realue defined at x = 1, Dualivative not defined
    with pytest.warns(RuntimeWarning):
        y = Dual(1, 2)
        f = ef.arccosh(y)
        assert np.isinf(f.Dual)

    # neither Realue nor Dualivative defined at x < 1
    with pytest.warns(RuntimeWarning):
        z = Dual(0, 2)
        f = ef.arccosh(z)
        assert np.isnan(f.Real)
        assert np.isnan(f.Dual)
def test_arccosh_ad_results():
	# value defined at positive real numbers x >= 1
	# derivative defined at positive real numbers x > 1
	x = AutoDiff(1.1, 2)
	f = ef.arccosh(x)
	assert f.val == np.arccosh(1.1)
	assert f.der == np.array([[((2)/np.sqrt((1.1)**2 - 1))]])
	assert f.jacobian == np.array([[((1)/np.sqrt((1.1)**2 - 1))]])
	# value defined at x = 1, derivative not defined
	with pytest.warns(RuntimeWarning):
		y = AutoDiff(1, 2)
		f = ef.arccosh(y)
		assert np.isinf(f.der)
		assert np.isinf(f.jacobian)
	# neither value nor derivative defined at x < 1
	with pytest.warns(RuntimeWarning):
		z = AutoDiff(0, 2)
		f = ef.arccosh(z)
		assert np.isnan(f.val)
		assert np.isnan(f.der)
		assert np.isnan(f.jacobian)
def test_arccosh_types():
	with pytest.raises(TypeError):
		ef.arccosh('x')
	with pytest.raises(TypeError):
		ef.arccosh("1234")