def test_log10_constant_results(): a = ef.log10(0.5) print(a,"a") print(np.log10(0.5),"b") assert a == np.log10(0.5) with pytest.warns(RuntimeWarning): b = ef.log10(0) assert np.isinf(b) with pytest.warns(RuntimeWarning): b = ef.log10(-0.5) assert np.isnan(b)
def test_log10_results(): # Realue defined at positive real numbers x > 0 # Dualivative defined at positive real numbers x > 0 X = Dual(0.5, 2) f = ef.log10(X) assert f.Real == np.log10(0.5) assert f.Dual == np.array([[(1 / ((0.5) * np.log(10))) * 2]]) # neither Realue nor Dualivative defined at x = 0 with pytest.warns(RuntimeWarning): Y = Dual(0, 2) f = ef.log10(Y) assert np.isinf(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.log10(Y) assert np.isnan(f.Real) assert f.Dual == np.array([[(2 / (-0.5 * np.log(10)))]])
def test_log10_results(): # value defined at positive real numbers x > 0 # derivative defined at positive real numbers x > 0 X = AutoDiff(0.5, 2) f = ef.log10(X) assert f.val == np.log10(0.5) assert f.der == np.array([[(1/((0.5)*np.log(10)))*2]]) assert f.jacobian == np.array([[(1/((0.5)*np.log(10)))*1]]) # neither value nor derivative defined at x = 0 with pytest.warns(RuntimeWarning): Y = AutoDiff(0, 2) f = ef.log10(Y) assert np.isinf(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.log10(Y) assert np.isnan(f.val) assert f.der == np.array([[(2/(-0.5*np.log(10)))]]) assert f.jacobian == np.array([[1/(-0.5*np.log(10))]])
def test_log10_types(): with pytest.raises(TypeError): ef.log10('x') with pytest.raises(TypeError): ef.log10("1234")