a
    lº”híM  ã                   @   s$  d dl mZ d dlmZmZmZmZ d dlmZm	Z	m
Z
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mZmZmZ d dlmZ d d	lmZ d d
lmZmZm Z m!Z! d dlm"Z"m#Z#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, d dl-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6 dd„ Z7dd„ Z8dd„ Z9dd„ Z:dd„ Z;dd„ Z<d d!„ Z=d"d#„ Z>d$d%„ Z?d&d'„ Z@d(d)„ ZAd*d+„ ZBd,d-„ ZCd.d/„ ZDd0d1„ ZEd2d3„ ZFd4d5„ ZGd6d7„ ZHd8d9„ ZId:d;„ ZJd<d=„ ZKd>d?„ ZLd@dA„ ZMdBdC„ ZNe3dDdE„ ƒZOdFdG„ ZPdHdI„ ZQdJdK„ ZRdLdM„ ZSdNS )Oé    )Úproduct)ÚSubsÚ	count_opsÚdiffÚexpand)ÚEÚIÚRationalÚpi)ÚS)ÚSymbolÚsymbols)ÚexpÚlog)ÚcoshÚcothÚsinhÚtanh)Úsqrt)Ú	Piecewise)ÚcosÚcotÚsinÚtan)ÚacosÚasinÚatan2)ÚasecÚacsc)ÚacotÚatan)Ú	integrate)ÚMatrix)Úsimplify)ÚexptrigsimpÚtrigsimp)ÚXFAIL©ÚxÚyc                  C   s|  t dƒ\} }tdt| ƒd  ƒt| ƒd ks0J ‚tdt| ƒd  ƒt| ƒd ksTJ ‚tt| ƒd t| ƒd  ƒdksxJ ‚tdt| ƒd  ƒdt| ƒd  ks J ‚tdt| ƒd  d ƒt| ƒd ksÈJ ‚tdt| ƒd  t| ƒd  ƒdksðJ ‚tdt| ƒd  ƒdt| ƒd  ksJ ‚tdt| ƒd  d ƒdt| ƒd  ksHJ ‚tdt| ƒd  t| ƒd  ƒdksrJ ‚tdt| ƒd  dt| ƒd   ƒdks J ‚tdt| d ƒd  dt| d ƒd   ƒdt| ƒ d tddƒ ksìJ ‚tt| ƒt| ƒ ƒt| ƒksJ ‚tdt| ƒ t| ƒ ƒdt| ƒ ks8J ‚tt| ƒd t| ƒd  ƒt| ƒd ksfJ ‚t|t| ƒd  t| ƒd  ƒ|t| ƒd  ksœJ ‚tt| ƒt| ƒ ƒdt| ƒ ksÂJ ‚tt| | ƒt| | ƒ ƒdt| ƒ t|ƒ ksøJ ‚tt| | ƒt| | ƒ ƒdt|ƒ t| ƒ ks.J ‚tt| | ƒt| | ƒ ƒdt| ƒ t|ƒ ksdJ ‚tt| | ƒt| | ƒ ƒdt| ƒ t|ƒ ksšJ ‚tt| | ƒt| ƒdt| ƒt|ƒ    ƒt|ƒt|ƒ t| ƒ t|ƒ  ksîJ ‚tt| | ƒt| | ƒ ƒdt| ƒ t|ƒ ks$J ‚tt| | ƒt| | ƒ ƒdt|ƒ t| ƒ ksZJ ‚tt| | ƒt| | ƒ ƒdt| ƒ t|ƒ ksJ ‚tt| | ƒt| | ƒ ƒdt| ƒ t|ƒ ksÆJ ‚tt	| | ƒt	| ƒdt	| ƒt	|ƒ    ƒt|ƒt|ƒt	| ƒ t|ƒ  ksJ ‚ttdƒd tdƒd  ƒd	ks>J ‚dt| ƒd  dt| ƒd   }tt
|ƒƒt
dƒksxJ ‚d S )
Núx,yé   é   é   é   é   éþÿÿÿç|ò°Pkš¿?ç      ð?)r   r%   r   r   r   r   r	   r   r   r   r   )r(   r)   Úe© r4   úP/var/www/auris/lib/python3.9/site-packages/sympy/simplify/tests/test_trigsimp.pyÚtest_trigsimp1   sD    $$$(((*.*.L"*.6&6666* ÿ
6666*ÿ
& r6   c                   C   s  t tdƒd tdƒ tdƒ tdƒd  ƒtdƒd tdƒ tdƒ ksLJ ‚t tdƒd 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ƒ ƒtdƒtdƒ tdƒ ksØJ ‚t tdƒtdƒ t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ƒ ks\J ‚t tdƒt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ƒ ksØJ ‚t tdƒtdƒ t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ƒ ks\J ‚t tdƒtdƒ t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ƒ ksàJ ‚t t	dƒtdƒ tdƒ tdƒ ƒtdƒtdƒ ksJ ‚d S )Nr,   r.   )
r%   r   r   r   r   r   r   r   r   r   r4   r4   r4   r5   Útest_trigsimp1aB   s    LL@BB:BBBBBr7   c                  C   sÜ   t dƒ\} }tt| ƒd t|ƒd  t| ƒd t|ƒd   t| ƒd  dddksXJ ‚tt| ƒd t|ƒd  t| ƒd t|ƒd   t| ƒd  dddks¤J ‚tt| | t|ƒd t|ƒd  ƒƒt| | dƒksØJ ‚d S )Nr*   r,   T©Ú	recursiver+   )r   r%   r   r   r   r'   r4   r4   r5   Útest_trigsimp2Q   s     <ÿÿ<ÿÿÿ
ÿr:   c                  C   s@   t dƒ} ttdt| ƒd  dt| ƒd   ƒd ƒdk s<J ‚d S )Nr(   ç       @r,   ç»½×Ùß|Û=)r   Úabsr%   r   r   ©r(   r4   r4   r5   Útest_issue_4373[   s    r?   c                  C   sb  t dƒ\} }tt| ƒt| ƒ ƒt| ƒks,J ‚tt| ƒd t| ƒd  ƒt| ƒd ksXJ ‚tt| ƒd t| ƒd  ƒt| ƒd ks„J ‚tt| ƒd t| ƒd  ƒt| ƒd ks°J ‚tt| ƒt| ƒ ƒdt| ƒ ksÔJ ‚tt| ƒd t| ƒd  ƒdt| ƒd  ksJ ‚tt| ƒd t| ƒd  ƒdt| ƒd  ks8J ‚tt| ƒƒtt| ƒt| ƒ ƒks^J ‚d S )Nr*   r,   r.   é
   r+   )r   r%   r   r   r   r'   r4   r4   r5   Útest_trigsimp3`   s     ,,,$22rA   c                  C   sn  t dƒ\} }}dt|ƒd  dt|ƒd   dt|ƒd   }t|ƒdksNJ ‚t|ƒd dt|ƒd  t|ƒd   dt|ƒd  t|ƒd   dt|ƒd   }t|ƒd  dt|ƒd   }t|| ƒdksÔJ ‚td	t|ƒd  t|ƒd  t|ƒd  ƒdks
J ‚t|ƒd
  d t|ƒ t|ƒd
 d t|ƒ  td| ƒtd| ƒ d  }t|ƒdksjJ ‚d S )Núa x yéüÿÿÿé   é   r,   é   r-   éÿÿÿÿr0   r.   r   )r   r   r   r%   r#   )Úar(   r)   ÚeqÚnÚdr4   r4   r5   Útest_issue_4661n   s    0T6NrL   c                  C   sh   t dƒ\} }t| ƒd t|ƒd  t| ƒd t|ƒd  t| ƒd   t| ƒd  }t|ƒdksdJ ‚d S )Núa br,   r+   )r   r   r   r   r%   )rH   ÚbrI   r4   r4   r5   Útest_issue_4494z   s    HrO   c                  C   sN   t dƒ\} }}tttt|ƒt|ƒd  |ƒ|ƒƒt|ƒt|ƒd  ksJJ ‚d S )NrB   r/   )r   r%   r   r!   r   r   ©rH   r(   r)   r4   r4   r5   Útest_issue_5948€   s    "ÿrQ   c                  C   s‚   t dƒ\} }}tt|ƒt|ƒ t|ƒt|ƒ  ƒt|| ƒksBJ ‚tt|ƒt|ƒ t|ƒt|ƒ  d ƒt|| ƒd ks~J ‚d S )NrB   r.   )r   r%   r   r   rP   r4   r4   r5   Útest_issue_4775†   s    4rR   c                  C   s  t dƒ\} }}tt|ƒd t|ƒd t|ƒd   t|ƒd t|ƒd   ƒdksVJ ‚t| d t|ƒd  | d t|ƒd  t|ƒd   | d t|ƒd  t|ƒd   ƒ| d ksºJ ‚t| d t|ƒd  t|ƒd  | d t|ƒd  t|ƒd   ƒ| d t|ƒd  ksJ ‚d S )NrB   r,   r+   )r   r%   r   r   rP   r4   r4   r5   Útest_issue_4280Œ   s    HdrS   c               
   C   s0  t dƒtdƒ t dƒtdƒ  t dƒ t dƒ tdƒtdƒ  t dƒtdƒ t dƒtdƒ  t dƒt dƒ tdƒtdƒ  t dƒt dƒ tdƒtdƒ  tdƒ tdƒtdƒ tdƒtdƒ  tdƒtdƒ tdƒtdƒ  f} dd„ | D ƒt dƒtdƒt dƒ tdƒtdƒtdƒ tdƒtdƒgks,J ‚d S )Nr,   r.   c                 S   s   g | ]}t |ƒ‘qS r4   ©r%   )Ú.0r3   r4   r4   r5   Ú
<listcomp>œ   ó    z#test_issue_3210.<locals>.<listcomp>r-   r+   )r   r   r   r   )Zeqsr4   r4   r5   Útest_issue_3210“   s"     &úùrX   c                  C   sV  t dƒ\} }}tt|ƒd t|ƒd t|ƒ  ƒt|ƒks>J ‚tttt|ƒt|ƒd  |ƒ|ƒƒt|ƒt|ƒd  kszJ ‚tttt|ƒt|ƒd  |ƒ|ƒƒt|ƒt|ƒd  ks¶J ‚t|ƒ| t|ƒ|  }t|ƒ|ksÞJ ‚t| |d¡ƒt|ƒd ksþJ ‚t| |d¡ƒtdƒ| ks J ‚t|ƒd t|ƒd  t|ƒd  t|ƒd   ¡ dt|ƒd  t|ƒd  ksvJ ‚tt|ƒt|ƒ t|| ƒ t|| ƒ ƒdt|ƒt|| ƒ  ksÀJ ‚tdƒtdƒd d  tdƒd d  }t|ƒ| ¡ ksþJ ‚ttdƒtdƒd d  tdƒd d  ƒtdƒtdƒd  ksDJ ‚t	|ƒ 
t|ƒ¡du s`J ‚t|ƒd t|ƒd  d }t|ƒd dt	|ƒd   }d||  }tt|ƒƒtdƒks¾J ‚||d  ||  }t|ƒtju sæJ ‚t|ddtju sþJ ‚tdƒjsJ ‚tt|ƒd  dt|ƒd  t|ƒd   t|ƒd  ƒd	ksRJ ‚d S )
NrB   r.   r,   r+   rD   FTr8   rG   )r   r%   r   r   r   r!   Úsubsr   Zfactorr   Úequalsr   ÚNaNZ
is_Integer)rH   r(   r)   r3   rI   ÚzZz1rJ   r4   r4   r5   Útest_trigsimp_issues§   sB    0"ÿ"ÿ "2ÿ
*ÿ
(*ÿ
r]   c                  C   sZ   t dƒ} t| t| ƒ t| ƒ ƒ| t| ƒ ks0J ‚tt| ƒ t| ƒt| ƒ  ƒdksVJ ‚d S )Nr(   r   )r   r%   r   r   r   r>   r4   r4   r5   Útest_trigsimp_issue_2515Õ   s    (r^   c                   C   s,   t tdt ƒjddƒtdt ƒks(J ‚d S )Nr,   T)Ztrig)r%   r   r(   r   r4   r4   r4   r5   Útest_trigsimp_issue_3826Û   s    r_   c                  C   sv   t dddd} td| d  tt|  d ƒ d d| d  d  ƒd| d  tt|  d ƒ d d|  d  ksrJ ‚d S )NrJ   T)ÚintegerZpositiver,   rD   r+   )r   r%   r   r
   )rJ   r4   r4   r5   Útest_trigsimp_issue_4032ß   s    2*ÿra   c                   C   s$   t ttd ƒƒttd ƒks J ‚d S )NrD   )r%   r   r
   r4   r4   r4   r5   Útest_trigsimp_issue_7761å   s    rb   c                  C   s"  t dƒ\} }t ddd\}}t||t| ƒd   ƒ|t| ƒd  ksHJ ‚t||t| ƒd   ƒ|t| ƒd  kstJ ‚t|t| ƒd  |t| ƒd   ƒ|ks J ‚t||t| ƒd   ƒ|t| ƒd  ksÌJ ‚t|t| ƒd  | ƒ|t| ƒd  ksøJ ‚t|t| ƒd  |t| ƒd   ƒ|ks&J ‚t||t| ƒd   ƒ|t| ƒd  ksTJ ‚t|t| ƒd  | ƒ|t| ƒd  ks‚J ‚t|t| ƒd  |t| ƒd   ƒ|ks°J ‚t|| t| ƒd  || t| ƒd   ƒ|| ksêJ ‚t|t| ƒ t| ƒ ƒ|t| ƒ ksJ ‚t|t| ƒ t| ƒ ƒ|t| ƒ ks>J ‚t|t| ƒd  t| ƒd  ƒ|t| ƒd  kstJ ‚t|| t| ƒd  t| ƒd  ƒ|| t| ƒd  ks²J ‚t|t| ƒ t| ƒ ƒ|t| ƒ ksÜJ ‚t|t| | ƒ |t| | ƒ  ƒd| t| ƒ t|ƒ ksJ ‚t|t| | ƒ |t| | ƒ  ƒd| t|ƒ t| ƒ ks`J ‚t|t| | ƒ |t| | ƒ  ƒd| t| ƒ t|ƒ ks¢J ‚t|t| | ƒ |t| | ƒ  ƒd| t| ƒ t|ƒ ksäJ ‚t|t| | ƒ |t| | ƒ  ƒd| t| ƒ t|ƒ ks&J ‚t|t| | ƒ |t| | ƒ  ƒd| t|ƒ t| ƒ kshJ ‚t|t| | ƒ |t| | ƒ  ƒd| t| ƒ t|ƒ ksªJ ‚t|t| | ƒ |t| | ƒ  ƒd| t| ƒ t|ƒ ksìJ ‚t|tdƒd  |tdƒd   ƒd	| ksJ ‚d S )
Nr*   zA,BF©Zcommutativer,   r.   r0   r1   r2   ©r   r%   r   r   r   r   r   r   )r(   r)   ÚAÚBr4   r4   r5   Útest_trigsimp_noncommutativeé   s4    ,,,,,....:**6>*BBBBBBBBrg   c                  C   sî  t dƒ\} }tt| ƒd d ƒt| ƒd ks0J ‚tt| ƒd d ƒt| ƒd ksTJ ‚tt| ƒd t| ƒd  ƒdksxJ ‚tdt| ƒd  ƒdt| ƒd  ks J ‚tddt| ƒd   ƒt| ƒd ksÈJ ‚tt| ƒd dt| ƒd   ƒdksðJ ‚tt| ƒd d ƒdt| ƒd  ksJ ‚tdt| ƒd  d ƒdt| ƒd  ksHJ ‚tt| ƒd dt| ƒd   ƒdksrJ ‚tdt| ƒd  dt| ƒd   ƒdks J ‚tdt| d ƒd  dt| d ƒd   ƒdt| ƒ d tddƒ ksìJ ‚tt| ƒt| ƒ ƒt| ƒksJ ‚tt| ƒƒtt| ƒt| ƒ ƒks4J ‚tt| ƒt| ƒ ƒdt| ƒ ksZJ ‚tdt| ƒ t| ƒ ƒdt| ƒ ks„J ‚tt| ƒd t| ƒd  ƒt| ƒd ks²J ‚t|t| ƒd  t| ƒd  ƒ|t| ƒd  ksèJ ‚tt| ƒt| ƒ ƒdt| ƒ ksJ ‚td t td t td t fD ]t}tt|ƒt| ƒ t|ƒt| ƒ  ƒt| | ƒksjJ ‚tt|ƒ t| ƒ t|ƒt| ƒ  ƒt| | ƒks0J ‚q0dt| ƒd  dt| ƒd   }tt	|ƒƒt	dƒksàJ ‚tt
t| ƒd d ƒƒt
t| ƒd ƒksJ ‚tt| ƒd t|ƒd  t| ƒd t|ƒd   t| ƒd  d	d
dks\J ‚tt| ƒd t|ƒd  t| ƒd t|ƒd   t| ƒd  d	d
dksªJ ‚ttdt| ƒd  dt| ƒd   ƒd ƒdk sàJ ‚tt| ƒd t| ƒd  ƒt| ƒd ksJ ‚tt| ƒd t| ƒd  ƒt| ƒd ks<J ‚tt| ƒd t| ƒd  ƒt| ƒd ksjJ ‚tt| ƒd t| ƒd  ƒdt| ƒd  ksœJ ‚tt| ƒt| ƒ ƒdt| ƒ ksÂJ ‚tt| ƒd t| ƒd  ƒdt| ƒd  ksôJ ‚tt| ƒd t| ƒd  ƒdt| ƒd  ks&J ‚t| t| ƒ t| ƒ ƒ| t| ƒ ksPJ ‚tt| ƒ t| ƒt| ƒ  ƒdksxJ ‚t| ƒdt| ƒ ks’J ‚tt| ƒdt| ƒ  ƒdks´J ‚tdt| ƒd  dt| ƒd   ƒt| ƒd ksêJ ‚d S )Nr*   r,   r+   r-   r.   r/   rF   rD   Tr8   r;   r<   r@   r   )r   r%   r   r   r   r   r	   r
   r   r   r   r=   r   r   )r(   r)   rH   r3   r4   r4   r5   Útest_hyperbolic_simp  s`    $$$(((*.*.L"&&*.6&&6< .<ÿÿ
<ÿÿ
6...2&22*("rh   c                  C   s4  ddl m}  ttƒ}ttƒ}d| | d|  d|d   d|d   d	|  d
 | |d  d| |  d
|  d|d   d|d   d|  d  }d| d|  d }d| d|  }|| | |  g}| |ƒ|v sâJ ‚| || tgdttƒksJ ‚| || ƒ|| ksJ ‚t| d | || d   ddd| ksNJ ‚t| d | || d   dddd| ks‚J ‚| |dgd|v sšJ ‚| |tdƒgd|v s¶J ‚| ttt ƒttt ƒ t	gdtt	tƒ ksêJ ‚| t	tƒt	t
ƒ dt	tƒt	t
ƒ   t	tt
fgdt	tt
 ƒks0J ‚d S )Nr   )Útrigsimp_groebnerrD   é   r-   r.   é   r,   é   é   r/   é   é%   r+   rE   rF   )ÚhintsÚgroebner©ÚmethodT)rs   Z
polynomial)Úsympy.simplify.trigsimpri   r   r(   r   r   r%   Úintr   r   r)   )ri   ÚcÚsÚexZresnumZresdenomÚresultsr4   r4   r5   Útest_trigsimp_groebnerG  s<    6Dÿ ÿÿ
ÿÿ
4$
ÿ
ÿrz   c                     sÀ   dd„ } dd„ }t d t tt ƒd  tt ƒd   }tdgƒ}t|gƒ‰ tˆ d| d|ks^J ‚tˆ d|d|kstJ ‚t d¡‰ t‡ fdd	„d
 ¡ D ƒƒsœJ ‚dtt	ƒ t	 }t
|ƒ|ks¼J ‚d S )Nc                 S   s   t t| ƒƒS ©N)ÚlenÚstr©Úexprr4   r4   r5   Ú<lambda>f  rW   z2test_issue_2827_trigsimp_methods.<locals>.<lambda>c                 S   s
   t | ƒ S r{   )r   r~   r4   r4   r5   r€   g  rW   r+   r,   Zfu)rs   Zmeasurec                 3   s   | ]}t ˆ |d ˆ kV  qdS )rr   NrT   )rU   Úm©ÚMr4   r5   Ú	<genexpr>q  rW   z3test_issue_2827_trigsimp_methods.<locals>.<genexpr>zfu matching groebner old)r(   r   r   r"   r%   ZeyeÚallÚsplitr   r   r$   )Zmeasure1Zmeasure2r   ZansrI   r4   r‚   r5   Ú test_issue_2827_trigsimp_methodse  s    $


ÿr‡   c                  C   s²   t ttddƒƒttddƒƒdgƒ} t ttddƒƒttddƒƒdgƒ}t ttddƒƒttddƒƒdgƒ}|  |¡}|  |¡}t|ƒttddƒƒks”J ‚t|ƒttddƒƒks®J ‚d S )Nr+   é2   r   é   r.   )r"   r   r	   r   Údotr%   )Út1Út2Út3Zr1Zr2r4   r4   r5   Ú!test_issue_15129_trigsimp_methodsw  s    """

rŽ   c                     sn  dd„ ‰ t ttƒtt ƒ ƒdttƒ ks.J ‚t ttƒtt ƒ ƒdttƒ ksTJ ‚t dttƒ dtt ƒ  ttƒtt ƒ  ƒdttƒ ks”J ‚t dtdt ƒ d tdt ƒd  ƒdttƒ ksÌJ ‚ttƒtttƒ  ttƒtttƒ  ttƒttƒ ttƒttƒ g} ttt ƒtt t ƒtt ƒttƒg}t	‡ fdd„t
dd„ | D ƒ|ƒD ƒƒsdJ ‚ttƒttƒ ttƒttƒ ttƒtttƒ  ttƒtttƒ  g}d	d„ |D ƒs¼J ‚g }ttdƒ dttdƒ  tt tdƒ t ttdƒ  tttƒ dtttƒ  tt ttƒ t tttƒ  ttdt ƒ dttdt ƒ  g
}dtttt dt fD ]J}t|ƒ}t|d|   |d|   }| t|ƒ¡ | td| ƒ¡ qft	‡ fd
d„t
||ƒD ƒƒsÔJ ‚tddƒD ]Š}t|ƒ}|d|  } t| ƒ}|t | ƒksJ ‚ˆ |dt|ƒ ƒs(J ‚|d|  } t| ƒ}|t | ƒksNJ ‚ˆ |dt|ƒ ƒsÞJ ‚qÞd S )Nc                 S   s&   ddl m} || |ƒr| |ks"dS dS )Nr   )Úverify_numericallyFT)Zsympy.core.randomr   )rH   rN   Útnr4   r4   r5   Úvalid  s    ztest_exptrigsimp.<locals>.validr,   r+   c                 3   s   | ]\}}ˆ ||ƒV  qd S r{   r4   ©rU   ÚiÚj©r‘   r4   r5   r„   Ž  rW   z#test_exptrigsimp.<locals>.<genexpr>c                 S   s   g | ]}t |ƒ‘qS r4   ©r$   ©rU   Úeir4   r4   r5   rV     rW   z$test_exptrigsimp.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ|k‘qS r4   r–   r—   r4   r4   r5   rV   “  rW   c                 3   s   | ]\}}ˆ ||ƒV  qd S r{   r4   r’   r•   r4   r5   r„   ž  rW   r.   )r$   r   r(   r   r   r   r   r   r   r…   Úzipr)   r   Úappendr#   Úrange)r3   ÚokZueÚresrH   ÚwrI   rw   r4   r•   r5   Útest_exptrigsimp€  sJ    &&@8$ÿ(ÿ$ÿ66 þ"rŸ   c                  C   s‚   t ddd\} }tddd}t| | ƒtt| ƒt|ƒ ƒks@J ‚t| ƒt|ƒ t|ƒt| ƒ  }|t|ƒ  krxdks~n J ‚d S )NrM   Frc   r(   Tr   )r   r   r   r$   )rH   rN   r(   Úpr4   r4   r5   Útest_exptrigsimp_noncommutative«  s
    $ r¡   c                   C   s,   dt ddƒd  dt ddƒ d ks(J ‚d S )Nr,   r+   r.   rD   )r	   r4   r4   r4   r5   Útest_powsimp_on_numbers²  s    r¢   c                  C   s´   t dƒ\} }}}ddt|ƒ | dtd| ƒ |  dtd| ƒ |  d|   |  d	t|ƒ dtd| ƒ   }t|ƒd
dt|ƒ t|ƒ | d|   |  t|ƒ ks°J ‚d S )Nzxp, y, x, zrD   iíÿÿÿr-   r.   rm   r,   rk   é	   r0   )r   r   r   r%   r   )Zxpr)   r(   r\   rI   r4   r4   r5   Útest_issue_6811_fail¶  s    dr¤   c                  C   s„   t t t  tt t   } tt ƒd tt ƒd  }tt t t t  ƒ}t|ƒ}tt| ||k f|dfƒƒt| ||k f|dfƒks€J ‚d S )Nr,   T)r(   r)   r   r   r   r#   r%   r   )Úe1Úe2Ze3Ús2r4   r4   r5   Útest_PiecewiseÁ  s    ÿr¨   c                   C   s6   t ttddƒƒttddƒƒ ƒttjƒd ks2J ‚d S )Nr+   r,   rG   )r#   r   r	   r   r   ZHalfr4   r4   r4   r5   Útest_issue_21594Î  s    r©   c                  C   sD  t dƒ\} }tdt| ƒd  ddt| ƒd ks4J ‚tdt| ƒd  ddt| ƒd ks\J ‚tt| ƒd t| ƒd  dddks„J ‚tdt| ƒd  dddt| ƒd  ks°J ‚tdt| ƒd  d ddt| ƒd ksÜJ ‚tdt| ƒd  t| ƒd  dddks
J ‚tdt| ƒd  dddt| ƒd  ks8J ‚tdt| ƒd  t| ƒd  dddksfJ ‚tdt| ƒd  dt| ƒd   dddks˜J ‚tt| ƒt| ƒ ddt| ƒks¾J ‚tdt| ƒ t| ƒ dddt| ƒ ksìJ ‚tt| ƒd t| ƒd  ddt| ƒd ksJ ‚t|t| ƒd  t| ƒd  dd|t| ƒd  ksXJ ‚tt| ƒt| ƒ dddt| ƒ ks‚J ‚tt| | ƒt| | ƒ dddt| ƒ t|ƒ ks¼J ‚tt| | ƒt| | ƒ dddt|ƒ t| ƒ ksöJ ‚tt| | ƒt| | ƒ dddt| ƒ t|ƒ ks0J ‚tt| | ƒt| | ƒ dddt| ƒ t|ƒ ksjJ ‚tt| | ƒt| | ƒ dddt| ƒ t|ƒ ks¤J ‚tt| | ƒt| | ƒ dddt|ƒ t| ƒ ksÞJ ‚tt| | ƒt| | ƒ dddt| ƒ t|ƒ ksJ ‚tt| | ƒt| | ƒ dddt| ƒ t|ƒ ksRJ ‚ttd	ƒd td	ƒd  ddd
ks|J ‚tt| ƒt| ƒ dddt| ƒks¤J ‚tt| ƒt| ƒ dddt| ƒt| ƒ ksÔJ ‚tt| ƒt| ƒ ddtgdt| ƒks J ‚tdtt| ƒd t| ƒd  ƒd  dddtdƒd ks@J ‚d S )Nr*   r+   r,   T)Úoldr-   r.   r0   r1   r2   Zcombined)rª   rs   rq   )rª   rs   rp   )rª   Údeeprd   r'   r4   r4   r5   Útest_trigsimp_oldÒ  s8    (((,,...2&.2:*::::::::*(0,r¬   c                  C   sè   t dƒ} t| ƒt| ƒ }}ttttttfD ]*}| 	d ¡}| t
||| ƒƒddks*J ‚q*||g||gfD ]|\}}tddgddD ]b\}}t|| || ƒ}	t
|	dd}
|
|	ks°J ‚t|
ƒt
t|	ƒƒksÈJ ‚t|
ƒt
t|	ƒƒks~J ‚q~qfd S )NÚalphaT)ÚinverserG   r+   r,   )Úrepeat)r   r   r   r   r   r   r   r    r   r®   r%   r   r   )r­   rw   rv   ZfinvÚfrH   rN   r“   r”   ZangleZangle_invertedr4   r4   r5   Útest_trigsimp_inverseù  s    
r±   N)TÚ	itertoolsr   Zsympy.core.functionr   r   r   r   Zsympy.core.numbersr   r   r	   r
   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z&sympy.functions.elementary.exponentialr   r   Z%sympy.functions.elementary.hyperbolicr   r   r   r   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z(sympy.functions.elementary.trigonometricr   r   r   r   r   r   r   r   r   r   r    Zsympy.integrals.integralsr!   Zsympy.matrices.denser"   Zsympy.simplify.simplifyr#   rt   r$   r%   Zsympy.testing.pytestr&   Z	sympy.abcr(   r)   r6   r7   r:   r?   rA   rL   rO   rQ   rR   rS   rX   r]   r^   r_   ra   rb   rg   rh   rz   r‡   rŽ   rŸ   r¡   r¢   r¤   r¨   r©   r¬   r±   r4   r4   r4   r5   Ú<module>   s`   )
.#;	+

'