def test_arcsin():
    x = AD(0.5, 3, 'x')
    z = x.arcsin()
    print('x=', x)
    print(z)
    assert z.val == [np.arcsin(0.5)]
    # np.testing.assert_array_equal(z.der, np.array([-3/np.sqrt(1 - 0.5**2)]))
    assert z.der == [3 * (1 - 0.5**2)**(-0.5)]
def test_arcsin_val_err_2():
    x = AD(-2, 1, 'x')
    with pytest.raises(ValueError):
        x.arcsin()