a
     ¬<b"  ã                   @   s\  d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZmZ dd	lmZmZ dd
lmZ ddlmZmZmZ ddlmZ ddlmZmZ ddlmZ edƒZ edƒZ!edƒZ"edƒZ#edƒZ$edƒZ%edƒZ&edƒZ'edƒZ(dd„ Z)dd„ Z*dd„ Z+dd„ Z,d d!„ Z-d"d#„ Z.d$d%„ Z/d&d'„ Z0d(d)„ Z1ed*d+„ ƒZ2d,d-„ Z3d.S )/zp
If the arbitrary constant class from issue 4435 is ever implemented, this
should serve as a set of test cases.
é    )ÚFunction)ÚI)ÚPow)ÚEq)ÚS)ÚSymbol)ÚexpÚlog)ÚcoshÚsinh)Úsqrt)ÚacosÚcosÚsin)ÚIntegral)ÚconstantsimpÚconstant_renumber)ÚXFAILÚxÚyÚzÚu2Ú_aÚC1ÚC2ÚC3Úfc                   C   s¢  t ttt tgƒƒtt ks J ‚t ttt tgƒƒtt ks@J ‚t ttt tgƒƒtt ks`J ‚t ttt tgƒƒtt ks€J ‚t tdt tgƒƒtksœJ ‚t ttd tgƒƒtks¸J ‚t ttt t ttgƒƒtt ksÞJ ‚t ttt t ttgƒƒtt ksJ ‚t ttt t ttgƒƒtt ks.J ‚t ttt t ttgƒƒtt ksVJ ‚t ttt t ttgƒƒtt ks~J ‚t ttt td  tgƒƒtt td  ks°J ‚t ttt td  tgƒƒtt td  ksâJ ‚t tttt  tgƒƒtt t ksJ ‚t tttt  tgƒƒtt t ks6J ‚t tttt  ttgƒƒtt ks^J ‚t ttt t ttgƒƒtt ks†J ‚t ttt t ttgƒƒtt ks®J ‚t tttd  t ttgƒƒtksÖJ ‚t ttt t ttgƒƒtt ksþJ ‚t tttt  ttgƒƒtt ks&J ‚t ttt t ttgƒƒtt ksNJ ‚t ttt t t t d ttgƒƒttd  ks†J ‚t ttt t t tttgƒƒtt ks´J ‚t ttt td  ttƒ tttgƒƒtt ksêJ ‚t ttt tgƒƒtksJ ‚t ttt ttgƒƒtks(J ‚t ttt ttgƒƒtksHJ ‚t ttt t ttgƒƒtkslJ ‚t ttt dt  tgƒƒtt dt  ksžJ ‚d S )Né   é   )r   r   r   r   r   r   r   r   © r   r   úu/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/solvers/tests/test_constantsimp.pyÚtest_constant_mul    s<        &((((22**(((((((8.6  $r!   c                   C   s  t ttt tgƒƒtksJ ‚t ttd tgƒƒtks8J ‚t tdt tgƒƒtksTJ ‚t ttt ttgƒƒtksrJ ‚t ttt tgƒƒtt ks’J ‚t ttt tgƒƒtks®J ‚t ttt ttgƒƒtksÌJ ‚t ttt ttgƒƒtksêJ ‚t ttt t ttgƒƒtksJ ‚d S ©Nr   )r   r   r   r   r   r   r   r   r   r    Útest_constant_addA   s     r#   c                   C   s:  t ttt tgƒƒtksJ ‚t ttttƒtgƒƒtks:J ‚t ttt tgƒƒtksVJ ‚t ttt ttgƒƒtkstJ ‚t ttt ttgƒƒtks’J ‚t ttt ttgƒƒtks°J ‚t ttt ttgƒƒtksÎJ ‚t ttt tgƒƒtt ksîJ ‚t ttd tgƒƒtksJ ‚t tttt  tgƒƒttt  ks6J ‚d S r"   )r   r   r   r   r   r   r   r   r   r   r    Útest_constant_power_as_baseM   s     ÿ
ÿr$   c                   C   sÔ  t ttt tgƒƒtt ks J ‚t ttt ttgƒƒtks>J ‚t tttt  ttgƒƒtt ksdJ ‚t ttt t tgƒƒtt t ksŒJ ‚t tttt  ttgƒƒtt ks²J ‚t tttt  ttgƒƒtt ksØJ ‚t tttt  ttgƒƒtt ksþJ ‚t ttt t tgƒƒtt t ks(J ‚t tdt tgƒƒtksFJ ‚t ttdƒt tgƒƒtkshJ ‚t tttƒtgƒƒtks†J ‚t tttt ƒtgƒƒtttƒ ks°J ‚t ttdtƒtgƒƒtksÐJ ‚d S r"   )r   r   r   r   r   r   r   r   r   r   r   r    Útest_constant_power_as_exp[   sB     &ÿ
ÿÿÿ&ÿÿÿ
ÿ
"ÿ
ÿ
r%   c                   C   sF  t tttƒtgƒƒtksJ ‚t tttƒtgƒƒtks8J ‚t ttttƒtgƒƒtksVJ ‚t ttttƒttgƒƒtksvJ ‚t ttttƒttgƒƒtks–J ‚t ttttƒttgƒƒtks¶J ‚t ttttƒtgƒƒtttƒksÚJ ‚t ttttƒttgƒƒtksúJ ‚t ttttƒttgƒƒtksJ ‚t tttttƒtttgƒƒtksBJ ‚d S ©N)r   r   r   r   r   r   r   r   r   r   r   r    Útest_constant_functionp   s       ÿÿ "r'   c                   C   s,   t tttttƒtgƒƒttttƒks(J ‚d S r&   )r   r   r   r   r   r   r   r   r    Útest_constant_function_multiple~   s
    ÿ
ÿr(   c                   C   s¾   t ttd d tgƒƒtks J ‚t ttd t tgƒƒtt ksDJ ‚t ttd d d tgƒƒtkshJ ‚t ttdt ƒt tdƒ tgƒƒtt ks˜J ‚t tdt t ttgƒƒtksºJ ‚d S r"   )r   r   r   r   r   r   r   r   r   r   r    Útest_constant_multiple…   s     $$ÿÿr)   c                   C   s$   t t t  tt t t  ƒks J ‚d S r&   )r   r   r   r   r   r   r    Útest_constant_repeated   s    r*   c                
   C   sþ  t tttdt ƒ ttƒtt   tttgƒƒt tttƒ ttdt ƒ  ƒksTJ ‚t ttttƒt	t t
td ƒ tttd ƒ  ƒttgƒƒt tttƒtt
td ƒ tttd ƒ  ƒƒksÂJ ‚t ttttƒtt ttƒ ƒƒtgƒƒtttƒttttƒ ƒƒks
J ‚t tttttƒt ƒdttttƒ ƒ  dƒtgƒƒtttttƒ ƒdttttƒ ƒ  dƒkspJ ‚t tttttdƒ tdt ƒ tttƒƒ t ƒtd dttƒd    dƒtgƒƒtttttƒ tttƒƒ ƒtd dttƒd    dƒksJ ‚t tttttƒ t ƒ tttƒt ƒ d ttt ƒ tttƒt ƒtttƒ t ƒ d  dƒtgƒƒttttƒ t ƒ tttƒt ƒ d ttt ƒ tttƒt ƒtttƒ t ƒ d  dƒksØJ ‚t tttdtdtd  ƒt  tttttƒ fƒ tttƒt ƒ dƒtgƒƒttdttdtd  ƒ  tttttƒ fƒ ttttƒ ƒ dƒksrJ ‚dd„ tttƒtt t td  ƒƒtttƒtt t td  ƒ ƒfD ƒtttƒtttt  ƒƒtttƒtttt  ƒ ƒgksúJ ‚d S )Nr   é   r   r   éÿÿÿÿc                 S   s   g | ]}t |tgƒ‘qS r   )r   r   )Ú.0Úir   r   r    Ú
<listcomp>§   ó    z&test_ode_solutions.<locals>.<listcomp>)r   r   r   r   r   r   r   r   r   r   r   r
   r   r   r	   r   r   r   r   r   r   r   r   r    Útest_ode_solutions   sx    .ÿ6ÿ,þ&ÿ
0ÿ(þ
*ÿÿÿÿ8þ
8$ÿÿÿBÿÿÿþ
ÿÿÿÿ.ÿÿþ
J4ÿr1   c                   C   s.   t tt tt  ttgƒttt  ks*J ‚d S r&   )r   r   r   r   r   r   r   r    Útest_nonlocal_simplification«   s    r2   c                   C   sl   t ttdttƒt  ƒtgƒttttƒ tƒks4J ‚t ttdttƒ t ƒtgƒtttƒt tƒkshJ ‚d S )Nr+   )r   r   r   r   r   r   r   r   r    Útest_constant_Eq°   s    4r3   N)4Ú__doc__Zsympy.core.functionr   Zsympy.core.numbersr   Zsympy.core.powerr   Zsympy.core.relationalr   Zsympy.core.singletonr   Zsympy.core.symbolr   Z&sympy.functions.elementary.exponentialr   r	   Z%sympy.functions.elementary.hyperbolicr
   r   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   r   Zsympy.integrals.integralsr   Zsympy.solvers.ode.oder   r   Zsympy.testing.pytestr   r   r   r   r   r   r   r   r   r   r!   r#   r$   r%   r'   r(   r)   r*   r1   r2   r3   r   r   r   r    Ú<module>   sD   !
