a
     ¬<bÛ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s4J ‚d S )Né   é   )r   r   r<   r   r   r   © rA   rA   úl/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/simplify/tests/test_fu.pyÚtest_TR1   s    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shJ ‚d S )Nr   )r(   r   r<   r   r   r   rA   rA   rA   rB   Útest_TR2   s      rD   c                  C   sV  t dt tt  ƒdt t ks$J ‚tttƒttƒ ƒttƒksDJ ‚tttƒttƒ ttƒ ƒttƒttƒ kstJ ‚tdttƒttƒ  ƒdttƒ ksœJ ‚tdttƒttƒ ttƒ  ƒdttƒ ttƒ ksÔJ ‚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sDJ ‚ttdƒtdƒd  ddttjƒkspJ ‚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sRJ ‚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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spJ ‚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s0J ‚ttdƒd t	 tdƒt	   ddtdƒd t	 tdƒt	   kszJ ‚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sRJ ‚d S )	Nr?   r@   T)Zhalfé   é   Úi©Úinteger)r   r<   r=   r)   r   r   r   r   ÚHalfr9   r   )rG   rA   rA   rB   Ú	test_TR2i   s4    $ 0(8:6,**00..4:8JJ<:JJ@rK   c                  C   s¾   t ttttt   ƒƒtttt  t ƒks0J ‚ttd t ƒttƒ ksNJ ‚tdt d t ƒttƒ kspJ ‚tttttt	fD ]8} | tt
ddƒ ƒ}t |ƒ}t||ƒr´|j|jks€J ‚q€d S )Nr?   é   é   é   )r*   r   r=   r<   r   r   r   r   r   r   r   r8   Úfunc)ÚfrG   ÚjrA   rA   rB   Útest_TR3A   s    0"rR   c                  C   sh  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sjJ ‚t ttƒd	 tt| d	dƒttƒd  d d ksžJ ‚t ttƒd	 tt| d	d
ƒttƒd	 ksÈJ ‚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sdJ ‚d S )Nc                 S   s   d|  S ©Nr@   rA   ©r<   rA   rA   rB   Ú<lambda>M   ó    ztest__TR56.<locals>.<lambda>rM   rE   Fr?   r@   é
   é   Té   )ÚTr   r<   r   r   )ÚhrA   rA   rB   Ú
test__TR56L   s    8*4*4,r\   c                   C   st   t ttƒd ƒttƒd  d ks&J ‚t ttƒd ƒttƒd ksFJ ‚t ttƒd ƒttƒd  d d kspJ ‚d S ©Nr?   r@   éþÿÿÿrE   )r+   r   r<   r   rA   rA   rA   rB   Útest_TR5Y   s    & r_   c                   C   st   t ttƒd ƒttƒd  d ks&J ‚t ttƒd ƒttƒd ksFJ ‚t ttƒd ƒttƒd  d d kspJ ‚d S r]   )r,   r   r<   r   rA   rA   rA   rB   Útest_TR6_   s    & r`   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@   rM   )r-   r   r<   r   rJ   r   rA   rA   rA   rB   Útest_TR7e   s    *ra   c                   C   sV  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s`J ‚t tdƒtdƒ ƒtdƒ d tdƒd  ks’J ‚t tdƒtdƒ tdƒ ƒtdƒd tdƒd  tdƒd  ksÖJ ‚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sRJ ‚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sRJ ‚d S )Nr?   rM   rF   r@   rE   rX   rW   rY   é   é   é   é   rN   é@   )r.   r   r   r   r   rA   rA   rA   rB   Útest_TR8j   s2    002D":
ÿÿÿ
*>
ÿ
ÿ
ÿÿ
ÿÿ
rg   c                  C   sž  t j} d|  }t| ƒ| ksJ ‚ttdƒtdƒ ƒdt| ƒ t|ƒ ksJJ ‚ttdƒtdƒ ƒdt| ƒ t|ƒ ksvJ ‚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ƒ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sVJ ‚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stJ ‚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rnt||jddƒrŽ|jsŽ| d j
| d j
kr||krJ ‚qqÜd S )NrM   r@   r?   r^   rE   rF   rX   é	   ©)r@   r@   )r@   éÿÿÿÿ)rj   r@   )rj   rj   c                 S   s   g | ]}t |Ž ‘qS rA   r   ©Ú.0ZairA   rA   rB   Ú
<listcomp>Œ   rV   ztest_TR9.<locals>.<listcomp>r   T©Ztrig)r   rJ   r/   r   r   r   r=   r<   Úzipr   rO   r8   ÚexpandÚis_Add)r9   r:   r;   ÚsÚsiÚargsÚexÚtrA   rA   rB   Útest_TR9w   s@    ,,,,FBB""ÿ
:TT8
ÿÿþþrw   c                   C   sD  t ttt ƒƒttƒ ttƒ ttƒttƒ  ks6J ‚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 ‚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(&ÿÿ(&ÿÿry   c                  C   s.  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s`J ‚t tdƒtdƒ tdƒtdƒ  ƒtdƒksJ ‚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rJtdƒksPn J ‚t tdƒttƒ t tdƒttƒ t  ƒdtdƒ t tttd  ƒ ks¢J ‚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sNJ ‚t tdƒtdƒ tdƒtdƒ  ƒtdƒtdƒ tdƒtdƒ  ks˜J ‚td	d
d}t tdƒttƒ | tdƒttƒ |  ƒdtdƒ tttd  ƒ | ksöJ ‚ttƒ}ttƒ}ttƒ}ttƒ}dD ]p}|| || f|| || ffD ]H}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 ]p}|| || f|| || ffD ]H}t	||ƒ}t
dd„ |D ƒŽ }	t |	ƒ}
|	|
jdd s|
jrÜJ ‚qÜq¸d S )Nr@   rM   r?   rE   rN   rF   rX   rh   ÚAF)Zcommutativeri   c                 S   s   g | ]}t |Ž ‘qS rA   r   rk   rA   rA   rB   rm   Å   rV   ztest_TR10i.<locals>.<listcomp>Trn   c                 S   s   g | ]}t |Ž ‘qS rA   r   rk   rA   rA   rB   rm   Ð   rV   )r   r   r   rp   r   r<   r   r=   r
   ro   r   rq   )Úeqrz   r;   rr   r[   Úrrs   Zargsirt   ru   rv   rA   rA   rB   Ú
test_TR10iž   s    00008B2ÿ
:ÿ
ÿÿÿ.*ÿ
 ÿÿÿ
 ÿÿ6þ
Jÿ
ÿÿ
"ÿ
*ÿ
$
&$
r}   c                   C   s2  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sjJ ‚t tttddƒ ƒƒdttd ƒd  ttd ƒd  ttd ƒ ttd ƒ  ksÂJ ‚t tdt ƒƒttƒd  ttƒd  ksðJ ‚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sZJ ‚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?   rE   rM   rN   rX   )r   r   r<   r   r   r   rA   rA   rA   rB   Ú	test_TR11Õ   s    (B<ÿ.8ÿ
V.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s¬J 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sÜJ ‚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 )NrM   r?   rE   rX   rY   r@   )r    r   r<   r   rA   rA   rA   rB   Ú
test__TR11ç   s    >&ÿ>ÿ06r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s²J ‚t ttt ƒƒttt ƒksÒJ ‚d S rS   )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szJ ‚t tdƒtdƒ tdƒ ƒtdƒ tdƒ tdƒtdƒ  d tdƒ ksÈJ ‚t tdƒtdƒ tdƒ ƒtdƒ tdƒ d tdƒtdƒ  tdƒ ksJ ‚d S )NrM   r?   rF   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s6J ‚t tdƒttƒ tdƒttƒ  ƒdtdƒ tttd  ƒ kszJ ‚ttƒd ttƒd  ttƒd  dttƒd   } t | ƒttƒd dttƒd   d ksÚJ ‚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shJ ‚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sÌJ ‚t tdƒtdƒ ƒtdƒtdƒ ksöJ ‚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shJ ‚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?   rX   rM   rE   r@   rh   é   rc   rN   rF   c                 S   s   g | ]}t d | ƒ‘qS ©r?   ©r   ©rl   rG   rA   rA   rB   rm   #  rV   ztest_fu.<locals>.<listcomp>rW   i   iòÿÿÿé#   )r4   r   r   r   r   r   r<   r=   r   rJ   r9   r:   r   r   Úrange)r{   ÚexprrA   rA   rB   Útest_fu  s4    6D4,,2ÿ
: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sXJ ‚d S )Nc                 S   s   |   ¡ S rx   ©Z	count_opsrT   rA   rA   rB   rU   .  rV   z test_objective.<locals>.<lambda>)Zmeasurec                 S   s
   |   ¡  S rx   r   rT   rA   rA   rB   rU   0  rV   )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s2J ‚d S )	Nc                 S   s   t dd„ | jD ƒŽ S )Nc                 S   s   g | ]}||d   ‘qS r†   rA   rˆ   rA   rA   rB   rm   7  rV   zAtest_process_common_addends.<locals>.<lambda>.<locals>.<listcomp>)r   rt   rT   rA   rA   rB   rU   7  rV   z-test_process_common_addends.<locals>.<lambda>)r@   r?   rM   rE   ÚevaluateFc                 S   s   | d S r‚   rA   rT   rA   rA   rB   rU   9  rV   )Úkey2Úkey1rX   )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sTJ ‚t ttƒttƒ ttƒttƒ ƒttƒddttdfksŽJ ‚t ttƒtdƒ ttƒ dd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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sxJ ‚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spJ ‚t ttƒttƒƒd u sŒJ ‚t ttƒttƒƒd u s¨J ‚t dttƒ ttƒ ƒd u sÊJ ‚t ttƒtdƒ ttƒ ƒd u sðJ ‚t ttƒttƒ ttƒttƒ ƒd u sJ ‚t ttƒttƒ ttƒttƒ ƒd u sHJ ‚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^   rj   rM   )ZtworX   FrE   rF   rN   )	r6   r   r<   r=   r   r   r   r>   r   rA   rA   rA   rB   Útest_trig_split<  sP    &. ÿÿÿÿ
&ÿ
(ÿ
$ÿ
ÿ"þ
"&,,.ÿ
(2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sbJ ‚t tƒtksrJ ‚t dt ƒdt ksŠJ ‚ttd ƒtttddƒ ƒ tttddƒ ƒ } tt | ƒƒtddƒksÔJ ‚tdd„ td
dƒD ƒŽ } tt	t | ƒƒƒtd
dƒksJ ‚ttƒttd ƒ }t |ƒ|ks2J ‚ttd ƒttd ƒ ttƒd  }t |ƒtdt ƒttƒd  d ks€J ‚d S )NrN   c                 S   s   g | ]}t |ƒ‘qS rA   r‡   rˆ   rA   rA   rB   rm   a  rV   z!test_TRmorrie.<locals>.<listcomp>rW   re   rc   rF   rh   rf   r@   rM   r?   rE   rj   rY   c                 S   s    g | ]}t d | t d ƒ‘qS )r?   é   )r   r   rˆ   rA   rA   rB   rm   g  rV   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s”J ‚tddƒD ]H} tttƒ|  t ttƒ|  ƒƒsÄJ ‚tttƒ|  t ttƒ|  ƒƒsžJ ‚qžd S )Nr@   r?   rM   rE   rY   )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sPJ ‚tttt	 ƒƒ\}}|t
|ƒƒttƒtt	ƒ ttƒtt	ƒ d  ks˜J ‚tƒ }| ttƒ|ƒttt| ƒ ksÀJ ‚| ttƒ|ƒttt| ƒ ksâJ ‚| ttƒ|ƒtt| ƒt ksJ ‚| ttƒ|ƒtt| ƒks&J ‚| ttƒ|ƒtt| ƒksFJ ‚| ttƒ|ƒtt| ƒt ksjJ ‚ttttttfD ](}|tƒ}|| ||ƒ|ƒ|kszJ ‚qz|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s0J ‚|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s¼J ‚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{   rv   rP   r–   ÚdrO   r[   rA   rA   rB   Útest_hyper_as_trigz  s,    4""$  $,000,rž   c                  C   s  dd„ t ttfD ƒ\} }}t| | |  | d  ƒtt t ƒksDJ ‚t| | | | d  ƒtt t ƒ ksnJ ‚t|  | | | d  ƒtt t ƒks˜J ‚| | |  | 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sBJ ‚| tdƒ |  | d  }t|ƒ|ksnJ ‚| | 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   s   g | ]}t |ƒ‘qS rA   )r   rˆ   rA   rA   rB   rm   ™  rV   ztest_TR12i.<locals>.<listcomp>r@   r?   éýÿÿÿrM   )	r9   r:   r;   r"   r   rp   r<   r   r   )ÚtaÚtbZtcr{   rA   rA   rB   Ú
test_TR12i˜  s"    ***:
2ÿ
*$r¢   c                  C   s  t tƒd t tƒd  } ttƒd  }t| ƒ|ks6J ‚td|  ƒd| ksNJ ‚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sVJ ‚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 sHJ ‚tttƒd ttƒd  ƒt tƒd  ksxJ ‚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?   rM   rG   TrH   iîÿÿÿrE   )r   r<   r   r$   r=   r   r   )r{   ZansrG   Úp1Úp2Zp3rA   rA   rB   Ú	test_TR14«  s.    0<< 2<$&0 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sTJ ‚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    **r¦   c                   C   sÎ   t td ƒdtdfksJ ‚t td ƒdtdfks4J ‚t t d ƒdtdfksPJ ‚t t d ƒdtdfkslJ ‚t dt d ƒdtdfksŠJ ‚t tt t ƒttdfks¨J ‚t t t t ƒt tdfksÊJ ‚d S )Nr@   rj   r?   )r7   r<   r=   rA   rA   rA   rB   Útest_as_f_sign_1Í  s    r§   N)eZsympy.core.addr   Zsympy.core.mulr   Zsympy.core.numbersr   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr	   r
   r   Z%sympy.functions.elementary.hyperbolicr   r   r   r   r   r   Z(sympy.functions.elementary.miscellaneousr   r   Z(sympy.functions.elementary.trigonometricr   r   r   r   r   r   Z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   rZ   r2   r3   r4   r5   r6   r7   Zsympy.core.randomr8   Z	sympy.abcr9   r:   r;   r<   r=   r>   rC   rD   rK   rR   r\   r_   r`   ra   rg   rw   ry   r}   r~   r   r€   r   rƒ   rŒ   rŽ   r“   r”   r—   r™   rž   r¢   r¥   r¦   r§   rA   rA   rA   rB   Ú<module>   sN     | $7	&$	