o
    *Î®cÛH  ã                   @   s4  d dl 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mZ d dlmZmZmZmZmZmZ d dlmZmZ d dlmZmZmZmZmZmZ d d	lm Z  d d
l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? d dl@mAZA d dlBmCZCmDZDmEZEmFZFmGZGmHZH dd„ ZIdd„ ZJdd„ ZKdd„ ZLdd„ ZMdd„ ZNdd„ ZOdd„ ZPdd„ ZQdd „ ZRd!d"„ ZSd#d$„ ZTd%d&„ ZUd'd(„ ZVd)d*„ ZWd+d,„ ZXd-d.„ ZYd/d0„ ZZd1d2„ Z[d3d4„ Z\d5d6„ Z]d7d8„ Z^d9d:„ Z_d;d<„ Z`d=d>„ Zad?d@„ ZbdAdB„ ZcdCdD„ ZddES )Fé    )ÚAdd©ÚMul)ÚIÚRationalÚpi)ÚS)ÚDummyÚSymbolÚsymbols)ÚcoshÚcothÚcschÚsechÚsinhÚtanh)ÚrootÚsqrt)ÚcosÚcotÚcscÚsecÚsinÚtan)Úpowsimp)ÚLÚTR1ÚTR10ÚTR10iÚTR11Ú_TR11ÚTR12ÚTR12iÚTR13ÚTR14ÚTR15ÚTR16ÚTR111ÚTR2ÚTR2iÚTR3ÚTR5ÚTR6ÚTR7ÚTR8ÚTR9ÚTRmorrieÚ_TR56ÚTRpowerÚhyper_as_trigÚfuÚprocess_common_addendsÚ
trig_splitÚas_f_sign_1)Úverify_numerically)ÚaÚbÚcÚxÚyÚzc                   C   s8   t dttƒ ttƒ ƒdttƒ dttƒ  ksJ ‚d S )Né   é   )r   r   r<   r   r   r   © rA   rA   úC/tmp/pip-target-vg8gfxp4/lib/python/sympy/simplify/tests/test_fu.pyÚtest_TR1   s   8rC   c                   C   sl   t ttƒƒttƒttƒ ksJ ‚t ttƒƒttƒttƒ ks J ‚t tttƒttƒttƒ  ƒƒdks4J ‚d S )Nr   )r(   r   r<   r   r   r   rA   rA   rA   rB   Útest_TR2   s     ,rD   c                  C   sJ  t dt tt  ƒdt t ksJ ‚tttƒttƒ ƒttƒks"J ‚tttƒttƒ ttƒ ƒttƒttƒ ks:J ‚tdttƒttƒ  ƒdttƒ ksNJ ‚tdttƒttƒ ttƒ  ƒdttƒ ttƒ ksjJ ‚tttƒd ttƒd  ƒttƒttƒd  d ks†J ‚tttƒd ttƒd  ddttd ƒd ks J ‚ttdƒtdƒd  ddttjƒksµJ ‚ttdƒtdƒd  ddtdƒksÉJ ‚ttdƒtdƒd  ddtdƒksÝJ ‚ttdƒtdƒd  ddtdtj ƒksôJ ‚ttdƒd tdƒ dddttjƒ ksJ ‚ttdƒd tdƒ dddtdƒ ks#J ‚ttdƒd tdƒ dddtdƒ ks:J ‚ttdƒd tdƒ dddtdtj ƒ ksTJ ‚ttdƒd t	  tdƒt	  ddttjƒt	 ksqJ ‚ttdƒd t	  tdƒt	  ddtdƒt	 ksJ ‚ttdƒd t	  tdƒt	  ddtdƒd t	  tdƒt	  ks²J ‚ttdƒd t	  tdƒt	  ddtdƒd t	  tdƒt	  ks×J ‚ttdƒd t	 tdƒt	   ddttjƒt	  ksõJ ‚ttdƒd t	 tdƒt	   ddtdƒt	  ksJ ‚ttdƒd t	 tdƒt	   ddtdƒd t	 tdƒt	   ks7J ‚ttdƒd t	 tdƒt	   ddtdƒd t	 tdƒt	   ks\J ‚t
ddd} ttdƒd |  tdƒ|    ddtdtj ƒ|   ks‚J ‚tdtdƒd |  tdƒ|     ddtdtj ƒ|  ks£J ‚d S )	Nr?   r@   T)Úhalfé   é   Úi©Úinteger)r   r<   r=   r)   r   r   r   r   ÚHalfr9   r   )rH   rA   rA   rB   Ú	test_TR2i   s4   $ 0(884*((.0..4:8JJ<:JJ@FrL   c                  C   s¾   t ttttt   ƒƒtttt  t ƒksJ ‚ttd t ƒttƒ ks'J ‚tdt d t ƒttƒ ks8J ‚tttttt	fD ]} | tt
ddƒ ƒ}t |ƒ}t||ƒrZ|j|jks\J ‚q@d S )Nr?   é   é   é   )r*   r   r=   r<   r   r   r   r   r   r   r   r8   Úfunc)ÚfrH   ÚjrA   rA   rB   Útest_TR3A   s   0"ýrS   c                  C   sd  dd„ } t ttƒd tt| ddƒttƒttƒd  d  ks J ‚t ttƒd tt| ddƒttƒd ks5J ‚t ttƒd	 tt| d	dƒttƒd  d d ksOJ ‚t ttƒd	 tt| d	d
ƒttƒd	 ksdJ ‚t ttƒd tt| dd
ƒttƒd  d d ks~J ‚t ttƒt tt| dd
ƒttƒt ks“J ‚t ttƒdt d  tt| dd
ƒttƒdt d  ks°J ‚d S )Nc                 S   s   d|  S ©Nr@   rA   ©r<   rA   rA   rB   Ú<lambda>M   ó    ztest__TR56.<locals>.<lambda>rN   rF   Fr?   r@   é
   é   Té   )ÚTr   r<   r   r   )ÚhrA   rA   rB   Ú
test__TR56L   s   8*4*4*>r]   c                   C   ót   t ttƒd ƒttƒd  d ksJ ‚t ttƒd ƒttƒd ks#J ‚t ttƒd ƒttƒd  d d ks8J ‚d S ©Nr?   r@   éþÿÿÿrF   )r+   r   r<   r   rA   rA   rA   rB   Útest_TR5Y   ó   & .ra   c                   C   r^   r_   )r,   r   r<   r   rA   rA   rA   rB   Útest_TR6_   rb   rc   c                   C   s`   t ttƒd ƒtdt ƒd tj ksJ ‚t ttƒd d ƒtdt ƒd tddƒ ks.J ‚d S )Nr?   r@   rN   )r-   r   r<   r   rK   r   rA   rA   rA   rB   Útest_TR7e   s   *6rd   c                   C   sR  t tdƒtdƒ ƒtdƒd tdƒd  ksJ ‚t tdƒtdƒ ƒtdƒd tdƒd  ks0J ‚t tdƒtdƒ ƒtdƒ d tdƒd  ksIJ ‚t tdƒtdƒ tdƒ ƒtdƒd tdƒd  tdƒd  kskJ ‚t tdƒtdƒ tdƒ tdƒ ƒtdƒd tdƒd  tdƒd  tdƒd  td	ƒd  tdƒd  tddƒ ks¨J ‚t tdƒtdƒ tdƒ tdƒ tdƒ ƒtdƒd tdƒd  dtdƒ d
  td
ƒd
  tdƒd  td	ƒd
  tdƒd
  tdƒd
  tdd
ƒ tdƒd  ksýJ ‚t tttddƒ ƒd tttddƒ ƒd  d
ttd ƒd   ƒtddƒks'J ‚d S )Nr?   rN   rG   r@   rF   rY   rX   rZ   é   é   é   é   rO   é@   )r.   r   r   r   r   rA   rA   rA   rB   Útest_TR8j   s2   002D":
ÿÿÿ*>
ÿ
ÿ
ÿÿ
ÿÿXrj   c                  C   s–  t j} d|  }t| ƒ| ksJ ‚ttdƒtdƒ ƒdt| ƒ t|ƒ ks%J ‚ttdƒtdƒ ƒdt| ƒ t|ƒ ks;J ‚ttdƒtdƒ ƒdt| ƒ t|ƒ ksQJ ‚ttdƒtdƒ ƒdt|ƒ t| ƒ ksgJ ‚ttdƒdtdƒ  dtdƒ  ƒtdƒdt|ƒ t| ƒ  ks‰J ‚ttdƒtdƒ dtdƒ tdƒ  ƒdtdƒ tdƒ ks©J ‚ttdƒtdƒ tdƒ d tdƒ ƒdtdƒ tdƒ ksÉJ ‚ttdƒtdƒ tdƒ tdƒ ƒdtt jƒ tdƒ ttddƒƒ ksïJ ‚ttdƒtdƒtdƒ  ƒtdƒtdƒtdƒ  ksJ ‚tttƒ ttt ƒ ƒdttt d td  ƒ ttt d td  ƒ ks6J ‚tttƒ ttt ƒ ƒdttt d td  ƒ ttt d td  ƒ ks`J ‚ttƒ}ttƒ}d	D ]^}||f||fttƒttt ƒfttƒttt ƒffD ]@} t|| ƒ}t	d
d„ |D ƒŽ }t|ƒ}| d j
| d j
kr³t||jddƒrÃ|jsÃ| d j
| d j
krÅ||krÅJ ‚q†qjd S )NrN   r@   r?   r`   rF   rG   rY   é	   ©)r@   r@   )r@   éÿÿÿÿ)rm   r@   )rm   rm   c                 S   ó   g | ]}t |Ž ‘qS rA   r   ©Ú.0ÚairA   rA   rB   Ú
<listcomp>Œ   ó    ztest_TR9.<locals>.<listcomp>r   T©Útrig)r   rK   r/   r   r   r   r=   r<   Úzipr   rP   r8   ÚexpandÚis_Add)r9   r:   r;   ÚsÚsiÚargsÚexÚtrA   rA   rB   Útest_TR9w   sF   ,,,,D@@""ÿ:TT8
ÿÿþþ€üÿr~   c                   C   sB  t ttt ƒƒttƒ ttƒ ttƒttƒ  ksJ ‚t ttt ƒƒttƒttƒ ttƒttƒ  ks5J ‚t ttt t ƒƒttƒ ttƒ ttƒttƒ  ttƒ ttƒttƒ ttƒttƒ  ttƒ  ksjJ ‚t ttt t ƒƒttƒ ttƒ ttƒttƒ  ttƒ ttƒttƒ ttƒttƒ  ttƒ  ksŸJ ‚d S ©N)r   r   r9   r:   r   r;   rA   rA   rA   rB   Ú	test_TR10“   s   64(&ÿÿ(&ÿÿr€   c                  C   s*  t tdƒtdƒ tdƒtdƒ  ƒtdƒksJ ‚t tdƒtdƒ tdƒtdƒ  ƒtdƒks0J ‚t tdƒtdƒ tdƒtdƒ  ƒtdƒksHJ ‚t tdƒtdƒ tdƒtdƒ  ƒtdƒks`J ‚t tdƒtdƒ tdƒtdƒ  d ƒtdƒd ks|J ‚t tdƒtdƒ tdƒtdƒ  tdƒ ƒtdƒtdƒ ksœJ ‚t dtdƒ tdƒ dtdƒ tdƒ  tdƒ ƒdtdƒ tdƒ ksÂJ ‚t tdƒtdƒ tdƒtdƒtdƒ tdƒtdƒ    ƒtdƒksæJ ‚tdƒtdƒ tdƒtdƒtdƒ tdƒtdƒ    tdƒ tdƒtdƒ  } t | ƒt |  ¡ ƒ  kr#tdƒks&J ‚ J ‚t tdƒttƒ t tdƒttƒ t  ƒdtdƒ t tttd  ƒ ksOJ ‚t ttƒtdƒ ttƒtdƒ  ttƒtdƒ d  ttƒtdƒ d  ƒdtdƒ tttd  ƒ d ksˆJ ‚t ttƒtdƒ ttƒtdƒ  ttƒtdƒ d  ttƒtdƒ d  ƒtdƒtttd  ƒ d tdƒtttd  ƒ d  ksÍJ ‚t ttƒtdƒttƒ  dtdƒ tttd  ƒ  ƒdttƒ ksòJ ‚t ttƒtdƒttƒ  dtdƒ tttd  ƒ  dttƒ  ƒdtdƒ tttd  ƒ ks%J ‚t tdƒtdƒ tdƒtdƒ  ƒtdƒtdƒ tdƒtdƒ  ksJJ ‚td	d
d}t tdƒttƒ | tdƒttƒ |  ƒdtdƒ tttd  ƒ | ksyJ ‚ttƒ}ttƒ}ttƒ}ttƒ}dD ]8}|| || f|| || ffD ]$}t	||ƒ}t
dd„ |D ƒŽ }	t |	ƒ}
|	|
jdd s¾|
jrÀJ ‚qq‹ttƒ}ttƒ}ttd ƒ}ttd ƒ}dD ]8}|| || f|| || ffD ]$}t	||ƒ}t
dd„ |D ƒŽ }	t |	ƒ}
|	|
jdd s|
jrJ ‚qìqÚd S )Nr@   rN   r?   rF   rO   rG   rY   rk   ÚAF)Úcommutativerl   c                 S   rn   rA   r   ro   rA   rA   rB   rr   Å   rs   ztest_TR10i.<locals>.<listcomp>Trt   c                 S   rn   rA   r   ro   rA   rA   rB   rr   Ð   rs   )r   r   r   rw   r   r<   r   r=   r
   rv   r   rx   )Úeqr   r;   ry   r\   Úrrz   Úargsir{   r|   r}   rA   rA   rB   Ú
test_TR10iž   s–   00008@2ÿ:ÿÿÿÿ0*
ÿ ÿÿ
ÿ ÿÿ6
þJÿ
ÿ
ÿ"
ÿ*
ÿ$
"ü$
"üÿr†   c                   C   s(  t tdt ƒƒdttƒ ttƒ ksJ ‚t tdt ƒƒdttƒd  ttƒd  ttƒ ttƒ  ks5J ‚t tttddƒ ƒƒdttd ƒd  ttd ƒd  ttd ƒ ttd ƒ  ksaJ ‚t tdt ƒƒttƒd  ttƒd  ksxJ ‚t tdt ƒƒttƒd  ttƒd  d dttƒd  ttƒd   ksŸJ ‚t tdƒƒtdƒks«J ‚t tttddƒ ƒttddƒ ƒtttddƒ ƒd  tttddƒ ƒd  ksÕJ ‚t tdƒdƒtdƒd  tdƒd  ksëJ ‚t tdƒdƒtdƒksøJ ‚t ttƒttd ƒ td ƒdttd ƒ ksJ ‚d S )Nr?   rF   rN   rO   rY   )r   r   r<   r   r   r   rA   rA   rA   rB   Ú	test_TR11Õ   s   (B<ÿ.8ÿT,8r‡   c                   C   s°  t ttd ƒtdt ƒ ttd ƒ ttd ƒttd ƒ  ƒdttd ƒ ttd ƒ tdt ƒ ksVJ t ttd ƒtdt ƒ ttd ƒ ttd ƒttd ƒ  ƒƒ‚t ttd ƒttd ƒ ƒdttd ƒ ksnJ ‚t ttd ƒttd ƒ ƒddttd ƒ  ksˆJ ‚t tdt ƒttd ƒ ttd ƒ ƒtdt ƒdttd ƒ  ksÀJ t tdt ƒttd ƒ ttd ƒ ƒƒ‚t ttƒttd ƒ ƒdttd ƒ ksÖJ ‚d S )NrN   r?   rF   rY   rZ   r@   )r    r   r<   r   rA   rA   rA   rB   Ú
test__TR11ç   s   >&ÿ>ÿ04p0rˆ   c                   C   sÖ   t ttt ƒƒttƒttƒ ttƒ ttƒ d  ksJ ‚t ttt t ƒƒttƒttƒttƒ ttƒ ttƒ d   dttƒttƒ ttƒ ttƒ ttƒ d    ksYJ ‚t ttt ƒƒttt ƒksiJ ‚d S rT   )r!   r   r<   r=   r>   rA   rA   rA   rB   Ú	test_TR12ò   s   :,0ÿÿ$r‰   c                   C   s  t tdƒtdƒ ƒtdƒ tdƒ tdƒtdƒ  d ksJ ‚t tdƒtdƒ ƒdtdƒtdƒ  tdƒtdƒ  ks=J ‚t tdƒtdƒ tdƒ ƒtdƒ tdƒ tdƒtdƒ  d tdƒ ksdJ ‚t tdƒtdƒ tdƒ ƒtdƒ tdƒ d tdƒtdƒ  tdƒ ks‹J ‚d S )NrN   r?   rG   r@   )r#   r   r   rA   rA   rA   rB   Ú	test_TR13ú   s   ><,ÿ,ÿrŠ   c                   C   s    t ttƒttƒ ƒdksJ ‚d S ©Nr?   )r   r   r<   r   rA   rA   rA   rB   Útest_L  s    rŒ   c                  C   sæ  t tdƒd tdƒd  ttd ƒ ƒtddƒksJ ‚t tdƒttƒ tdƒttƒ  ƒdtdƒ tttd  ƒ ks=J ‚ttƒd ttƒd  ttƒd  dttƒd   } t | ƒttƒd dttƒd   d ksmJ ‚t tj	tdt ƒd  ƒttƒd ks‚J ‚t tt
ƒttƒttƒ  tt
ƒttƒttƒ   ƒtdƒtt
t td  ƒ ks¬J ‚t tdƒttƒ d ttƒd  ƒtttd  ƒksÈJ ‚t dtdt ƒd d  ttƒd  ttƒd  ƒttƒd  ttƒd  ksñJ ‚t tttddƒ ƒƒttd ƒksJ ‚t ttd ƒtttddƒ ƒ tttddƒ ƒ tttddƒ ƒ ƒtdd	ƒks0J ‚t tttd
dƒ ƒtttddƒ ƒ tdƒtttddƒ ƒ tttd
dƒ ƒ  ƒtdƒ ksbJ ‚t tdƒtdƒ ƒtdƒtdƒ kswJ ‚tdd„ tdƒD ƒŽ }t |ƒtdƒdtdƒ  ks“J ‚t ttƒtttƒd ƒ ƒttƒtttƒd ƒ ks°J ‚t dttƒd  dttƒ  dtdƒ ttƒd   dtdƒ ttƒ  tdt ƒd  ƒd
ttƒ dtdƒ ttƒ  ksñJ ‚d S )Né2   r?   rY   rN   rF   r@   rk   é   rf   rO   rG   c                 S   s   g | ]}t d | ƒ‘qS ©r?   ©r   ©rp   rH   rA   rA   rB   rr   #  ó    ztest_fu.<locals>.<listcomp>rX   i   iòÿÿÿé#   )r4   r   r   r   r   r   r<   r=   r   rK   r9   r:   r   r   Úrange)rƒ   ÚexprrA   rA   rB   Útest_fu  s4   6D4,*2ÿ82ÿ(VNÿ
þ*":Zÿr–   c                   C   s\   t ttƒttƒ dd„ dttƒksJ ‚t ttƒttƒ dd„ dttƒttƒ ks,J ‚d S )Nc                 S   s   |   ¡ S r   ©Ú	count_opsrU   rA   rA   rB   rV   .  rW   z test_objective.<locals>.<lambda>)Úmeasurec                 S   s
   |   ¡  S r   r—   rU   rA   rA   rB   rV   0  s   
 )r4   r   r<   r   r   rA   rA   rA   rB   Útest_objective-  s   ÿÿrš   c                  C   s6   dd„ } t tg d¢ddiŽ| dd„ dddksJ ‚d S )	Nc                 S   s   t dd„ | jD ƒŽ S )Nc                 S   s   g | ]}||d   ‘qS r   rA   r‘   rA   rA   rB   rr   7  r’   zAtest_process_common_addends.<locals>.<lambda>.<locals>.<listcomp>)r   r{   rU   rA   rA   rB   rV   7  rs   z-test_process_common_addends.<locals>.<lambda>)r@   r?   rN   rF   ÚevaluateFc                 S   s   | d S r‹   rA   rU   rA   rA   rB   rV   9  rW   )Úkey2Úkey1rY   )r5   r   )ÚdorA   rA   rB   Útest_process_common_addends4  s   ÿÿrŸ   c                   C   s
  t ttƒttƒƒdddttdfksJ ‚t dttƒ dttƒ ƒdddttdfks*J ‚t ttƒttƒ ttƒttƒ ƒttƒddttdfksGJ ‚t ttƒtdƒ ttƒ dddddttd d	fkscJ ‚t ttƒttƒddtdƒddttd
 d	fks|J ‚t ttƒttƒ ddtdƒddttd
 d	fks–J ‚t tdƒttƒ tdƒ ttƒ dddtdƒ ddttd d	fksºJ ‚t tdƒ ttƒ tdƒ ttƒ dddtdƒ ddttd d	fksßJ ‚t ttƒtdƒ ttƒtdƒ ddtdƒd ddttd d	fksJ ‚t tdƒ ttƒ ttƒ tdƒ ttƒ ttƒ dddtdƒ ttƒ ddttd d	fks5J ‚t ttƒttƒƒd u sCJ ‚t ttƒttƒƒd u sQJ ‚t dttƒ ttƒ ƒd u sbJ ‚t ttƒtdƒ ttƒ ƒd u suJ ‚t ttƒttƒ ttƒttƒ ƒd u s‹J ‚t ttƒttƒ ttƒttƒ ƒd u s¡J ‚t tdƒ ttƒ tdƒttƒ ttƒ ddd u s¾J ‚t tdƒttƒ tdƒddd u sÒJ ‚t tdƒttdƒ tdƒtdƒ ddd u sëJ ‚t tdƒtdƒ tdƒtdƒ ddd u sJ ‚d S )Nr@   Tr?   r`   rm   rN   )ÚtworY   FrF   rG   rO   )	r6   r   r<   r=   r   r   r   r>   r   rA   rA   rA   rB   Útest_trig_split<  sP   &. ÿÿÿÿ&ÿ(ÿ$
ÿÿ"
þ"&,,.
ÿ(24r¡   c                  C   s~  t dtdd„ tdƒD ƒŽ  ƒdtdƒ tdƒ tdƒ tdƒ tdƒ d	td
ƒ tdƒ  ks1J ‚t tƒtks9J ‚t dt ƒdt ksEJ ‚ttd ƒtttddƒ ƒ tttddƒ ƒ } tt | ƒƒtddƒksjJ ‚tdd„ td
dƒD ƒŽ } tt	t | ƒƒƒtd
dƒks…J ‚ttƒttd ƒ }t |ƒ|ks—J ‚ttd ƒttd ƒ ttƒd  }t |ƒtdt ƒttƒd  d ks½J ‚d S )NrO   c                 S   ó   g | ]}t |ƒ‘qS rA   r   r‘   rA   rA   rB   rr   a  rs   z!test_TRmorrie.<locals>.<listcomp>rX   rh   rf   rG   rk   ri   r@   rN   r?   rF   rm   rZ   c                 S   s    g | ]}t d | t d ƒ‘qS )r?   é   )r   r   r‘   rA   rA   rB   rr   g  s     r£   i   )
r0   r   r”   r   r   r<   r   r   r.   r*   )Úerƒ   rA   rA   rB   Útest_TRmorrie`  s   >ÿ0$,r¥   c                  C   sì   t dttƒd  ƒdttƒd  ksJ ‚t ttƒd ttd ƒd  ƒdttƒ d tdt ƒd  ttƒ d tdt ƒd  tddƒ  ksJJ ‚tddƒD ]$} tttƒ|  t ttƒ|  ƒƒsbJ ‚tttƒ|  t ttƒ|  ƒƒssJ ‚qOd S )Nr@   r?   rN   rF   rZ   )r2   r   r<   r   r   r”   r8   )ÚkrA   rA   rB   Útest_TRpowerq  s   (Fÿ"$þr§   c            	      C   s°  ddl m} m} ttƒd ttƒd  }t|ƒ\}}|t|ƒƒtdt ƒks(J ‚tttt	 ƒƒ\}}|t
|ƒƒttƒtt	ƒ ttƒtt	ƒ d  ksLJ ‚tƒ }| ttƒ|ƒttt| ƒ ks`J ‚| ttƒ|ƒttt| ƒ ksqJ ‚| ttƒ|ƒtt| ƒt ks‚J ‚| ttƒ|ƒtt| ƒks‘J ‚| ttƒ|ƒtt| ƒks J ‚| ttƒ|ƒtt| ƒt ks±J ‚ttttttfD ]}|tƒ}|| ||ƒ|ƒ|ksËJ ‚q¹|ttt	 t ƒt	ƒtttt  ƒksáJ ‚|ttt	 t ƒt	ƒtttt  ƒt ksøJ ‚|ttt	 t ƒt	ƒtttt  ƒt ksJ ‚|ttt	 t ƒt	ƒtttt  ƒt ks(J ‚|ttt	 t ƒt	ƒtttt  ƒks>J ‚|ttt	 t ƒt	ƒtttt  ƒt ksVJ ‚d S )Nr   )Ú_osborneÚ	_osborneir?   r@   )Úsympy.simplify.fur¨   r©   r   r<   r   r3   r4   r   r=   r!   r	   r   r   r   r   r   r   r   r   r   r   r   r>   )	r¨   r©   rƒ   r}   rQ   r¤   ÚdrP   r\   rA   rA   rB   Útest_hyper_as_trigz  s,   4""""*.00,4r¬   c                  C   s  dd„ t ttfD ƒ\} }}t| | |  | d  ƒtt t ƒks"J ‚t| | | | d  ƒtt t ƒ ks7J ‚t|  | | | d  ƒtt t ƒksLJ ‚| | |  | d d  d|  d|   d| | d   }t| ¡ ƒdtt t ƒ tt t ƒ tt ƒttƒ d  d ks‹J ‚tttƒttƒ ƒttƒttƒ ksŸJ ‚| tdƒ |  | d  }t|ƒ|ks´J ‚| | d d |  | d  }t|ƒ|ksËJ ‚| |  | d  }t|ƒ|ksÜJ ‚| | t d   ¡ d | | d  }t|ƒt d d  tt t ƒ ksJ ‚d S )Nc                 S   r¢   rA   )r   r‘   rA   rA   rB   rr   ™  rs   ztest_TR12i.<locals>.<listcomp>r@   r?   éýÿÿÿrN   )	r9   r:   r;   r"   r   rw   r<   r   r   )ÚtaÚtbÚtcrƒ   rA   rA   rB   Ú
test_TR12i˜  s"   ***:
2ÿ($,r±   c                  C   s  t tƒd t tƒd  } ttƒd  }t| ƒ|ksJ ‚td|  ƒd| ks'J ‚tt tƒd d t tƒd d  ƒ|d ks?J ‚tt tƒd d t tƒd d  ƒ|d t tƒd  ks]J ‚tt tƒd d t tƒd d  ƒ|d t tƒd  ks{J ‚t tƒd t t tƒd t  } t| ƒ| ks“J ‚t tƒd t t tƒd  } t| ƒ| ks©J ‚ttƒd d t tƒd  } t| ƒ| ks¿J ‚tddd}tt tƒd | t tƒd |  ƒ|| ksÝJ ‚tttƒd | ttƒd |  ƒt tƒd  | ksúJ ‚t tƒd |d  t tƒd |  } t| ƒt tƒd ||  | fv sJ ‚tttƒd ttƒd  ƒt tƒd  ks7J ‚t tƒd t tƒd  }t tƒd d t tƒd  }dt tƒd  dt tƒd   }t|| | td  ƒdtd ttƒd  ttƒd   ks‚J ‚d S )	Nr@   r?   rN   rH   TrI   iîÿÿÿrF   )r   r<   r   r$   r=   r   r   )rƒ   ÚansrH   Úp1Úp2Úp3rA   rA   rB   Ú	test_TR14«  s.   0<< 0:$&0 Fr¶   c                   C   s„   t ddttƒd   ƒttƒd  ksJ ‚tddttƒd   ƒttƒd  ks*J ‚tddttƒd   ƒdttƒd  ks@J ‚d S )Nr@   r?   )r%   r   r<   r   r&   r   r   r'   rA   rA   rA   rB   Útest_TR15_16_17Ç  s   **0r·   c                   C   sÎ   t td ƒdtdfksJ ‚t td ƒdtdfksJ ‚t t d ƒdtdfks(J ‚t t d ƒdtdfks6J ‚t dt d ƒdtdfksEJ ‚t tt t ƒttdfksTJ ‚t t t t ƒt tdfkseJ ‚d S )Nr@   rm   r?   )r7   r<   r=   rA   rA   rA   rB   Útest_as_f_sign_1Í  s   &r¸   N)eÚsympy.core.addr   Úsympy.core.mulr   Úsympy.core.numbersr   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr	   r
   r   Ú%sympy.functions.elementary.hyperbolicr   r   r   r   r   r   Ú(sympy.functions.elementary.miscellaneousr   r   Ú(sympy.functions.elementary.trigonometricr   r   r   r   r   r   Úsympy.simplify.powsimpr   rª   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r[   r2   r3   r4   r5   r6   r7   Úsympy.core.randomr8   Ú	sympy.abcr9   r:   r;   r<   r=   r>   rC   rD   rL   rS   r]   ra   rc   rd   rj   r~   r€   r†   r‡   rˆ   r‰   rŠ   rŒ   r–   rš   rŸ   r¡   r¥   r§   r¬   r±   r¶   r·   r¸   rA   rA   rA   rB   Ú<module>   sP      | $7	&$	