You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.1 KiB

from sympy.core.numbers import I
from sympy.core.symbol import symbols
from sympy.functions.elementary.exponential import exp
from sympy.functions.elementary.trigonometric import (cos, cot, sin)
from sympy.testing.pytest import _both_exp_pow
x, y, z, n = symbols('x,y,z,n')
@_both_exp_pow
def test_has():
assert cot(x).has(x)
assert cot(x).has(cot)
assert not cot(x).has(sin)
assert sin(x).has(x)
assert sin(x).has(sin)
assert not sin(x).has(cot)
assert exp(x).has(exp)
@_both_exp_pow
def test_sin_exp_rewrite():
assert sin(x).rewrite(sin, exp) == -I/2*(exp(I*x) - exp(-I*x))
assert sin(x).rewrite(sin, exp).rewrite(exp, sin) == sin(x)
assert cos(x).rewrite(cos, exp).rewrite(exp, cos) == cos(x)
assert (sin(5*y) - sin(
2*x)).rewrite(sin, exp).rewrite(exp, sin) == sin(5*y) - sin(2*x)
assert sin(x + y).rewrite(sin, exp).rewrite(exp, sin) == sin(x + y)
assert cos(x + y).rewrite(cos, exp).rewrite(exp, cos) == cos(x + y)
# This next test currently passes... not clear whether it should or not?
assert cos(x).rewrite(cos, exp).rewrite(exp, sin) == cos(x)