o
    jgí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   sr  t dƒ\} }tdt| ƒd  ƒt| ƒd ksJ ‚tdt| ƒd  ƒt| ƒd ks*J ‚tt| ƒd t| ƒd  ƒdks<J ‚tdt| ƒd  ƒdt| ƒd  ksPJ ‚tdt| ƒd  d ƒt| ƒd ksdJ ‚tdt| ƒd  t| ƒd  ƒdksxJ ‚tdt| ƒd  ƒdt| ƒd  ksŒJ ‚tdt| ƒd  d ƒdt| ƒd  ks¢J ‚tdt| ƒd  t| ƒd  ƒdks¶J ‚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sJ ‚tt| ƒd t| ƒd  ƒt| ƒd ks.J ‚t|t| ƒd  t| ƒd  ƒ|t| ƒd  ksIJ ‚tt| ƒt| ƒ ƒdt| ƒ ks\J ‚tt| | ƒt| | ƒ ƒdt| ƒ t|ƒ kswJ ‚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|ƒ    ƒ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sCJ ‚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s·J ‚d S )
Núx,yé   é   é   é   é   éþÿÿÿç|ò°Pkš¿?ç      ð?)r   r%   r   r   r   r   r	   r   r   r   r   )r(   r)   Úe© r4   úZ/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/simplify/tests/test_trigsimp.pyÚtest_trigsimp1   sD   $$$((((,(,J"*.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s&J ‚t tdƒd tdƒ tdƒ tdƒd  ƒtdƒd tdƒ tdƒ ksLJ ‚t tdƒtdƒ tdƒ tdƒ ƒtdƒtdƒ tdƒ kslJ ‚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sKJ ‚t t	dƒtdƒ tdƒ tdƒ ƒtdƒtdƒ tdƒ kslJ ‚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@@@8@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s,J ‚tt| ƒd t|ƒd  t| ƒd t|ƒd   t| ƒd  dddksRJ ‚tt| | t|ƒd t|ƒd  ƒƒt| | dƒkslJ ‚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   8r?   c                  C   s\  t dƒ\} }tt| ƒt| ƒ ƒt| ƒksJ ‚tt| ƒd t| ƒd  ƒt| ƒd ks,J ‚tt| ƒd t| ƒd  ƒt| ƒd ksBJ ‚tt| ƒd t| ƒd  ƒt| ƒd ksXJ ‚tt| ƒt| ƒ ƒdt| ƒ ksjJ ‚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| ƒt| ƒ ƒks¬J ‚d S )Nr*   r,   r.   é
   r+   )r   r%   r   r   r   r'   r4   r4   r5   Útest_trigsimp3`   s    ,,,$00(rA   c                  C   sj  t dƒ\} }}dt|ƒd  dt|ƒd   dt|ƒd   }t|ƒdks'J ‚t|ƒd dt|ƒd  t|ƒd   dt|ƒd  t|ƒd   dt|ƒd   }t|ƒd  dt|ƒd   }t|| ƒdksjJ ‚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s³J ‚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4NrL   c                  C   sh   t dƒ\} }t| ƒd t|ƒd  t| ƒd t|ƒd  t| ƒd   t| ƒd  }t|ƒdks2J ‚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s%J ‚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s!J ‚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s+J ‚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   s.  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   ó   g | ]}t |ƒ‘qS r4   ©r%   )Ú.0r3   r4   r4   r5   Ú
<listcomp>œ   ó    z#test_issue_3210.<locals>.<listcomp>r-   r+   )r   r   r   r   )Úeqsr4   r4   r5   Útest_issue_3210“   s"    &úùrZ   c                  C   sN  t dƒ\} }}tt|ƒd t|ƒd t|ƒ  ƒt|ƒksJ ‚tttt|ƒt|ƒd  |ƒ|ƒƒt|ƒt|ƒd  ks=J ‚tttt|ƒt|ƒd  |ƒ|ƒƒt|ƒt|ƒd  ks[J ‚t|ƒ| t|ƒ|  }t|ƒ|ksoJ ‚t| |d¡ƒt|ƒd ksJ ‚t| |d¡ƒtdƒ| ksJ ‚t|ƒd t|ƒd  t|ƒd  t|ƒd   ¡ dt|ƒd  t|ƒd  ks¹J ‚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sJ ‚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 soJ ‚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s¥J ‚d S )
NrB   r.   r,   r+   rD   FTr8   rG   )r   r%   r   r   r   r!   Úsubsr   Úfactorr   Úequalsr   ÚNaNÚ
is_Integer)rH   r(   r)   r3   rI   ÚzÚz1rJ   r4   r4   r5   Útest_trigsimp_issues§   sB   0"ÿ"ÿ  2ÿ*ÿ(*
ÿHrb   c                  C   sZ   t dƒ} t| t| ƒ t| ƒ ƒ| t| ƒ ksJ ‚tt| ƒ t| ƒt| ƒ  ƒdks+J ‚d S )Nr(   r   )r   r%   r   r   r   r>   r4   r4   r5   Útest_trigsimp_issue_2515Õ   s   (*rc   c                   C   s,   t tdt ƒjddƒtdt ƒksJ ‚d S )Nr,   T)Útrig)r%   r   r(   r   r4   r4   r4   r5   Útest_trigsimp_issue_3826Û   ó   ,re   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s9J ‚d S )NrJ   T)ÚintegerÚpositiver,   rD   r+   )r   r%   r   r
   )rJ   r4   r4   r5   Útest_trigsimp_issue_4032ß   s   2*ÿri   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   $rj   c                  C   s  t dƒ\} }t ddd\}}t||t| ƒd   ƒ|t| ƒd  ks$J ‚t||t| ƒd   ƒ|t| ƒd  ks:J ‚t|t| ƒd  |t| ƒd   ƒ|ksPJ ‚t||t| ƒd   ƒ|t| ƒd  ksfJ ‚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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s5J ‚t|| t| ƒd  t| ƒd  ƒ|| t| ƒd  ksTJ ‚t|t| ƒ t| ƒ ƒ|t| ƒ ksiJ ‚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s/J ‚t|t| | ƒ |t| | ƒ  ƒd| t| ƒ t|ƒ ksPJ ‚t|t| | ƒ |t| | ƒ  ƒd| t| ƒ t|ƒ ksqJ ‚t|tdƒd  |tdƒd   ƒd	| ksŠJ ‚d S )
Nr*   zA,BF©Úcommutativer,   r.   r0   r1   r2   ©r   r%   r   r   r   r   r   r   )r(   r)   ÚAÚBr4   r4   r5   Útest_trigsimp_noncommutativeé   s4   ,,,,,,,,,8**6>*BBBBBBBB6rp   c                  C   sä  t dƒ\} }tt| ƒd d ƒt| ƒd ksJ ‚tt| ƒd d ƒt| ƒd ks*J ‚tt| ƒd t| ƒd  ƒdks<J ‚tdt| ƒd  ƒdt| ƒd  ksPJ ‚tddt| ƒd   ƒt| ƒd ksdJ ‚tt| ƒd dt| ƒd   ƒdksxJ ‚tt| ƒd d ƒdt| ƒd  ksŒJ ‚tdt| ƒd  d ƒdt| ƒd  ks¢J ‚tt| ƒd dt| ƒd   ƒdks¶J ‚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sJ ‚tt| ƒt| ƒ ƒdt| ƒ ks(J ‚tdt| ƒ t| ƒ ƒdt| ƒ ks=J ‚tt| ƒd t| ƒd  ƒt| ƒd ksTJ ‚t|t| ƒd  t| ƒd  ƒ|t| ƒd  ksoJ ‚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| | ƒks°J ‚tt|ƒ t| ƒ t|ƒt| ƒ  ƒt| | ƒksÌJ ‚q“d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sPJ ‚ttdt| ƒd  dt| ƒd   ƒd ƒdk skJ ‚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s°J ‚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s#J ‚tt| ƒ t| ƒt| ƒ  ƒdks7J ‚t| ƒdt| ƒ ksDJ ‚tt| ƒdt| ƒ  ƒdksUJ ‚tdt| ƒd  dt| ƒd   ƒt| ƒd kspJ ‚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`   $$$((((,(,J"&&*.6&&6< .<ÿ
ÿ<ÿ
ÿ6...2&22*(":rq   c                  C   s&  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 sqJ ‚| || tgdttƒks€J ‚| || ƒ|| ksŒJ ‚t| d | || d   ddd| ks¤J ‚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sJ ‚d S )Nr   )Útrigsimp_groebnerrD   é   r-   r.   é   r,   é   é   r/   é   é%   r+   rE   rF   )ÚhintsÚgroebner©ÚmethodT)r|   Ú
polynomial)Úsympy.simplify.trigsimprr   r   r(   r   r   r%   Úintr   r   r)   )rr   ÚcÚsÚexÚresnumÚresdenomÚresultsr4   r4   r5   Útest_trigsimp_groebnerG  s<   6Dÿÿÿÿÿ2$
ÿ
ÿr†   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s:J ‚t d¡‰ t‡ fdd	„d
 ¡ D ƒƒsNJ ‚dtt	ƒ t	 }t
|ƒ|ks^J ‚d S )Nc                 S   s   t t| ƒƒS ©N)ÚlenÚstr©Úexprr4   r4   r5   Ú<lambda>f  s    z2test_issue_2827_trigsimp_methods.<locals>.<lambda>c                 S   s
   t | ƒ S r‡   )r   rŠ   r4   r4   r5   rŒ   g  s   
 r+   r,   Úfu)r|   Úmeasurec                 3   s     | ]}t ˆ |d ˆ kV  qdS )r{   NrU   )rV   Úm©ÚMr4   r5   Ú	<genexpr>q  s   € z3test_issue_2827_trigsimp_methods.<locals>.<genexpr>zfu matching groebner old)r(   r   r   r"   r%   ÚeyeÚallÚsplitr   r   r$   )Úmeasure1Úmeasure2r‹   Ú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sJJ ‚t|ƒttddƒƒksWJ ‚d S )Nr+   é2   r   é   r.   )r"   r   r	   r   Údotr%   )Út1Út2Út3Úr1Úr2r4   r4   r5   Ú!test_issue_15129_trigsimp_methodsw  s   """

r¢   c                     sj  dd„ ‰ t ttƒtt ƒ ƒdttƒ ksJ ‚t ttƒtt ƒ ƒdttƒ ks*J ‚t dttƒ dtt ƒ  ttƒtt ƒ  ƒdttƒ ksJJ ‚t dtdt ƒ d tdt ƒd  ƒdttƒ ksfJ ‚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 ƒƒs±J ‚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 ]%}t|ƒ}t|d|   |d|   }| t|ƒ¡ | td| ƒ¡ q1t	‡ fd
d„t
||ƒD ƒƒshJ ‚tddƒD ]E}t|ƒ}|d|  } t| ƒ}|t | ƒks†J ‚ˆ |dt|ƒ ƒs’J ‚|d|  } t| ƒ}|t | ƒks¥J ‚ˆ |dt|ƒ ƒs±J ‚qmd S )Nc                 S   s&   ddl m} || |ƒr| |ksdS dS )Nr   )Úverify_numericallyFT)Úsympy.core.randomr£   )rH   rN   Útnr4   r4   r5   Úvalid  s   ztest_exptrigsimp.<locals>.validr,   r+   c                 3   ó    | ]
\}}ˆ ||ƒV  qd S r‡   r4   ©rV   ÚiÚj©r¦   r4   r5   r’   Ž  ó   € z#test_exptrigsimp.<locals>.<genexpr>c                 S   rT   r4   ©r$   ©rV   Úeir4   r4   r5   rW     rX   z$test_exptrigsimp.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ|k‘qS r4   r­   r®   r4   r4   r5   rW   “  s    c                 3   r§   r‡   r4   r¨   r«   r4   r5   r’   ž  r¬   r.   )r$   r   r(   r   r   r   r   r   r   r”   Úzipr)   r   Úappendr#   Úrange)r3   ÚokÚueÚresrH   ÚwrI   r   r4   r«   r5   Útest_exptrigsimp€  sL   &&@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r=dks@J ‚ J ‚d S )NrM   Frk   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²  rf   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sXJ ‚d S )Nzxp, y, x, zrD   iíÿÿÿr-   r.   rv   r,   rt   é	   r0   )r   r   r   r%   r   )Ú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Úe2Ú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sJ ‚d S )Nr+   r,   rG   )r#   r   r	   r   r   ÚHalfr4   r4   r4   r5   Útest_issue_21594Î  s   6rÄ   c                  C   s8  t dƒ\} }tdt| ƒd  ddt| ƒd ksJ ‚tdt| ƒd  ddt| ƒd ks.J ‚tt| ƒd t| ƒd  dddksBJ ‚tdt| ƒd  dddt| ƒd  ksXJ ‚tdt| ƒd  d ddt| ƒd ksnJ ‚td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  t| ƒd  dddks°J ‚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s&J ‚tt| ƒt| ƒ dddt| ƒ ks;J ‚tt| | ƒt| | ƒ dddt| ƒ t|ƒ ksXJ ‚tt| | ƒt| | ƒ dddt|ƒ t| ƒ ksuJ ‚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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d	ƒd td	ƒd  ddd
ks8J ‚tt| ƒt| ƒ dddt| ƒksLJ ‚tt| ƒt| ƒ dddt| ƒt| ƒ ksdJ ‚tt| ƒt| ƒ ddtgdt| ƒkszJ ‚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   Úcombined)rÅ   r|   rz   )rÅ   r|   ry   )rÅ   Údeeprm   r'   r4   r4   r5   Útest_trigsimp_oldÒ  s8   (((,,,,,0$,2:*::::::::*(0,D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 ]1\}}t|| || ƒ}	t
|	dd}
|
|	ksXJ ‚t|
ƒt
t|	ƒƒksdJ ‚t|
ƒt
t|	ƒƒkspJ ‚q?q3d S )NÚalphaT)ÚinverserG   r+   r,   )Úrepeat)r   r   r   r   r   r   r   r    r   rÊ   r%   r   r   )rÉ   r   r€   ÚfinvÚfrH   rN   r©   rª   ÚangleÚangle_invertedr4   r4   r5   Útest_trigsimp_inverseù  s   
ûÿrÐ   N)TÚ	itertoolsr   Úsympy.core.functionr   r   r   r   Úsympy.core.numbersr   r   r	   r
   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú&sympy.functions.elementary.exponentialr   r   Ú%sympy.functions.elementary.hyperbolicr   r   r   r   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.piecewiser   Ú(sympy.functions.elementary.trigonometricr   r   r   r   r   r   r   r   r   r   r    Úsympy.integrals.integralsr!   Úsympy.matrices.denser"   Úsympy.simplify.simplifyr#   r~   r$   r%   Úsympy.testing.pytestr&   Ú	sympy.abcr(   r)   r6   r7   r:   r?   rA   rL   rO   rQ   rR   rS   rZ   rb   rc   re   ri   rj   rp   rq   r†   r™   r¢   r·   r¹   rº   r½   rÂ   rÄ   rÈ   rÐ   r4   r4   r4   r5   Ú<module>   sb    )
.#;	+

'