U
    	Ē-e]¢  ć                   @   s  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
mZmZ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mZmZmZmZ d d	lmZ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( d dl)m*Z*m+Z+ d dl,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJ d dlKmLZL d dlMmNZNmOZO d dlPmQZQmRZR d dlSmTZTmUZU d dlVmWZW d dlXmYZYmZZZ d dl[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZe d dlfmgZg d d lhmiZimjZjmkZk d d!llmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZz d"d# Z{d$d% Z|d&d' Z}d(d) Z~d*d+ Zekd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zekd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZeidVdW ZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Z dndo Z”dpdq Z¢drds Z£ekdtdu Z¤dvdw Z„dxdy Z¦dzd{ Z§d|d} ZØd~d Z©dd ZŖejdd Z«dd Z¬dd Z­dd Z®dd ZÆdd Z°eidd Z±eid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” Zŗd¢d£ Z»d¤S )„é    )ŚSum)ŚAdd)ŚBasic)Ś	unchanged)Ś	count_opsŚdiffŚexpandŚexpand_multinomialŚFunctionŚ
Derivative)ŚMulŚ_keep_coeff)ŚGoldenRatio)ŚEŚFloatŚIŚooŚpiŚRationalŚzoo)ŚEqŚLtŚGtŚGeŚLe)ŚS)ŚSymbolŚsymbols)Śsympify)ŚbinomialŚ	factorial)ŚAbsŚsign)ŚexpŚ	exp_polarŚlog)ŚcoshŚcschŚsinh)Śsqrt)Ś	Piecewise)ŚacosŚasinŚatanŚcosŚsinŚsincŚtan)Śerf)Śgamma)Śhyper)ŚKroneckerDelta)Śrad)ŚIntegralŚ	integrate)ŚAndŚOr)ŚMatrixŚeye)ŚMatrixSymbol)ŚfactorŚPoly)
Ś
besselsimpŚ	hypersimpŚinversecombineŚ
logcombineŚ	nsimplifyŚnthrootŚposifyŚseparatevarsŚsignsimpŚsimplify)Śsolve)ŚXFAILŚslowŚ_both_exp_pow)ŚxŚyŚzŚtŚaŚbŚcŚdŚeŚfŚgŚhŚiŚnc                   C   s4   t tddttdd    ” d dk s0td S )NgėQø„@g    @ŗ@g333333'@é   gr²fa@gź-q=)ŚabsrI   r/   r6   ŚevalfŚAssertionError© r`   r`   śc/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/simplify/tests/test_simplify.pyŚtest_issue_7263%   s
     ’’rb   c                  C   sH   t d} tt| |  t| ks$tttt| tt| ksDtd S )NrN   )r   rI   r    r3   r_   ©rN   r`   r`   ra   Śtest_factorial_simplify*   s    rd   c               
   C   sf  t d\	} }}}}}}}}td}	tdd ttt| |  t t t fD sPtd|  d|  }
|
| | | |  ksxtt|
| | | |  kst|d |d  dt | |d   }
t|
|
ksČtdd|   ddd|     dd|    }
t|
d	kstd
|  |d  d|d   d| d  |  | | d  }
t|
d| ksPt|  | | | d |d   | | d | d   }
t|
d| kst| | |  |  }
t|
d| ks¾t|	| ||	|   |	|  }
t|
d| ksštdd| t	|t |   t }
t|
t	t|  d t|  d ks<tt
d| d d  |  | ”}
t|
d| d d  ksvtt
| | d d|   d  |  | ”}
t|
| | d d|   d  ksĄttd}	td| ||d   | g| |||d   gg ” }t|td	|	g d |	 d| ||d    |d |||d   d| ||d       d	ksht|  ||t   ||  |t   |t |t   t|  |t   }	t|	|t|  |t  ksĢt|  |d d  d|d  | d d  t| d |d  d   | d d t| d |d      t| d |d    | d| d  t| d  |d  | d  |d  d  t| t| d |d  d   | d t| d  |d  | d  |d  d  t| t| d d  | d |d     | d t| d  d |d d   t| d  |d  | d  |d  d  t| | d d  t| d  d |d d  | |  |d  |   t| d  |d  | d  |d  d  t| d  |d  | d  |d  d   t|  tt| d  d |d d   | d |d      t| d  |d  | d  |d  d  t| t| d |d     | d| d  t| d  |d  | d  |d  d  t	| t| d |d  d   | d t| d  |d  | d  |d  d  t	| t| d d  | d |d     | d t| d  d |d d   t| d  |d  | d  |d  d  t	| | d d  | t| d  d |d d   |  |d  |   t	| t| d  |d  | d  |d  d   t| d  d |d d  t| d  |d  | d  |d  d  t	|  tt| d  d |d d   | d |d      t| d  |d  | d  |d  d  t	| t| d |d     |t| d  d |d d   |  | t| d  |d  | d  |d  d  t| t| d |d   |d d   d|  | t| d  |d  | d  |d  d  t| t| d |d  d    | | t| d  d |d d   t| d  |d  | d  |d  d  t| |d d  | t| d  d |d d   | d  | |  t| t| d  |d  | d  |d  d   tt| d  d |d d   | d |d      t| t| d |d     || d d  d|  | | d d  t| d |d  d   d|  | t| d |d      t| d |d     || d d  |d d  |  | t| d  |d  | d  |d  d  t	| t| d |d   |d d   d|  | t| d  |d  | d  |d  d  t	| t| d |d  d    | | t| d  d |d d   t| d  |d  | d  |d  d  t	| |d d  | t| d  d |d d   | d  | |  t	| t| d  |d  | d  |d  d   tt| d  d |d d   | d |d      t	| tt| d  d |d d   | d |d     | t| d  d |d d   t| d  |d  | d  |d  d  t|d  td | d d  | d |d   |d d    | t| d  d |d d   t| d  |d  | d  |d  d  t	|d  td | d d  | d |d   |d d    }t|d|  td | d |d    ksJttdttdtdksjtt ddd\}}t|| ||  || ||  ks¤tt|d||    | | | |  ksĪtt|d|  d|   ||  ||  ksütttdtd tdkstttd|  td t| ksDtttg g | t| ksbtd S )Nzx,y,z,k,n,m,w,s,ArW   c                 s   s   | ]}t ||kV  qd S ©N©rI   )Ś.0Śtmpr`   r`   ra   Ś	<genexpr>5   s     z%test_simplify_expr.<locals>.<genexpr>é   r\   é   é   r   éü’’’éž’’’é’’’’z/((-1/2)*Boole(True)*Boole(False)-1)*Boole(True)z(2 + Boole(True)*Boole(False))z-Boole(True)/2zA,BF©Ścommutativeé   )r   r
   Śallr   r   r   r_   rI   r   r.   r8   r   r   r;   ŚinvrQ   rR   r)   r/   r   r   r%   r4   r#   )rN   rO   rP   Śkr[   ŚmŚwŚsŚArW   rV   ŚexprŚBr`   r`   ra   Śtest_simplify_expr1   s0   .$(82 ,$&8D’’
B"H’’&’’’’ ’’’’’
’(’’
’’6’(’’ž’
’’żž(śś’ś’@’:
’’’.’’’’’
’’’’(’’
’
’(’’ž’
’’żž(ś’śłų2’’’’’’$’’’’ 
’(’’’’L’’’ž0żž’ūśń4’’’ė’R’L’’F’’
’4’(’’ ’žž’ś0śźL’’.’ć
’(’
’’
’’ā!.’
**."&r|   c                  C   sų   t t tt  tt  d } t t tt  tt  d }t t	 tt
  tt  d }t| ||gt ttdd}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 t
  tt t  tt t	   ksōtd S )Nrj   Frf   )rN   rR   rO   rS   rP   rT   rU   rV   rW   rX   rY   rZ   rJ   rI   r_   )Zf_1Zf_2Zf_3Z	solutionsr`   r`   ra   Śtest_issue_3557   s    
.F’’r}   c               	   C   s\  t ttd ttd  dks$tt ttd tt tksDtt ttd ttd  tttt  dt ks|tt tttd ttd  tttt ttdksøttddd} t tt|   td|   ksätt	t
 t tt	t
 tdd t	td  dt    tttt	t
 tdd  dtt   dtt  t
t tt	t
 tdd t	td  dt    dtt    tt	 td  dt   tt
t  t	tt
 tttt	t
 d  dtt   d  tt	t
 d  dtt   }t |dtd	d  tt
 tt ks6tt ddt  d dt ksXtd S )
Nr\   rj   ŚncFrp   éż’’’rk   ro   rl   )rI   r/   rN   r.   r_   r3   r    r   r   r   r   r#   r   rQ   r2   r)   )r~   Śansr`   r`   ra   Śtest_simplify_other   sB    $ 8(’’ N
’
’0
’’ž
ž
(’’
’ž.r   c                  C   s~   t t t”} tt t”}t| | ttks4ttttddgddggtt dtd gtdt dggksztd S )Nr   ro   rj   )	r.   rN   Z_eval_rewrite_as_expr1   rI   r/   r_   r#   r;   )ZcosAsExpZtanAsExpr`   r`   ra   Śtest_simplify_complex²   s    "’’r   c                  C   sP   dddg} | D ]<}t |}tt|ddt|ks6tt|td|k	stqd S )Nza(1/2 - sqrt(3)*I/2)*(sqrt(21)/2 + 5/2)**(1/3) + 1/((1/2 - sqrt(3)*I/2)*(sqrt(21)/2 + 5/2)**(1/3))za1/((1/2 + sqrt(3)*I/2)*(sqrt(21)/2 + 5/2)**(1/3)) + (1/2 + sqrt(3)*I/2)*(sqrt(21)/2 + 5/2)**(1/3)z8-(sqrt(21)/2 + 5/2)**(1/3) - 1/(sqrt(21)/2 + 5/2)**(1/3)rj   )Śratio)r   r   rI   r_   r   )ŚrootsŚrr`   r`   ra   Śtest_simplify_ratio½   s    ür   c                  C   sĘ   dd } dd }t d t tt d  tt d   }| t|| d| |ksPt|t||d||ksltttt d tt d  d}| t|| d| |ks¦t|t||d||ksĀtd S )Nc                 S   s   t t| S re   )ŚlenŚstr©rz   r`   r`   ra   Ś<lambda>Ķ   ó    z'test_simplify_measure.<locals>.<lambda>c                 S   s
   t |  S re   )r   r   r`   r`   ra   r   Ī   r   rj   r\   )Śmeasure)rN   r/   r.   rI   r_   r   )Zmeasure1Zmeasure2rz   Zexpr2r`   r`   ra   Śtest_simplify_measureĢ   s    $r   c                  C   st   dt  dt  } t| dddt t  ks,tt| d ddt t  ksHtt| dd| ks\ttddddksptd S )Nr\   ē       @T©ŚrationalFz0.9 - 0.8 - 0.1r   )rN   rO   rI   r_   r   r`   r`   ra   Śtest_simplify_rationalŁ   s
    r   c                   C   s>   t ttddttdd dt ttdd ks:td S )Nro   r\   r   rj   )rI   r#   r   r   r_   r`   r`   r`   ra   Śtest_simplify_issue_1308į   s    ’r   c                  C   sX   t ttt  tt t ks$ttddd} t | | |    | | |    ksTtd S )Nr[   Frp   )rI   r   r#   r_   r   ©r[   r`   r`   ra   Śtest_issue_5652ę   s    $r   c                  C   sd   t d} t d}| | d d|  |d  d|d   d| d  |   }t|dd|  ks`td S )NrN   rO   r\   rm   rl   rj   rn   )r   rI   r_   )rN   rO   rV   r`   r`   ra   Śtest_simplify_fail1ģ   s    8r   c                  C   sÜ  t ddtd  dtdd ks&tdtd dtd  td td } t t| d d| kshtt dd	td  d
dtd kstt dd	td  d
dtd ks“tdtd d dtd  dtd  }t |d
dtd td ksžtdtd td td
 } tt t| d
 d
| ks:tdtd dtd  dtd  } t t| d
 d
d| ks|tdtd dtd  dtd  } t t| d d| ks¼tt t| d d| ksŲtd S )NéZ   é"   é   rl   rj   r\   rr   é)   é   é   i×’’’ro   i(  é
   ix  i
  ih  é   é   i  )rE   r)   r_   r	   )Śqrz   r`   r`   ra   Śtest_nthrootó   s    &(&&(" $$r    c                  C   s|   dt d t d tjd  } t| d }t|d| ks<tdt d t d tjd  } t| d }t|d| ksxtd S )Nrj   r\   rl   l      Fµx:^V r   l       ©7§3Me')r)   r   ŚOner	   rE   r_   )r   Śpr`   r`   ra   Śtest_nthroot1  s    r£   c            
      C   sD  t d\} }}}td| |  | d|  | |  d|  | ||  ksLtt| | | | |  | | d|  ksxttt|  | t|  | |  t|  | d|  ks°tt| |d  t|  | t|  t|  | t||d   t|  ksütt| t| |  | t|   | dt|  t|  ks:tt| |d  | jsVttd|  | | |  | d |d  kstt|t t||   t|  |t| t|  t| t|  t ksÖtt| | | |  |d  d|   d | d d ksttddd}tt	|d | |d   |t	d|   ksNttt	||d | |d    |t	|d|    ksttt	||d | |d    dd|t	| t	d|   ksŹttt	| | jsāttt	| | ddt	| t	| ksttd|  d | ddd	d
d| d|  d ||iksDttd|  d | d| gd	d
|| d|  d ikszttd|  d | dg d	d
d| d|  d ||iks²ttd|  d | ddd
d| d|  d ||iksčttd|  d | dd d	d
|d|  d  iksttdddd ks2ttd|  | ddd	d ksRttd|  | ddd kspttd|  | dd d	d
d|  | ikstt ddd\}}t|||  d| | ksĪtt| | |  | d|  ksštt
d}t|| | ||   || | ||   ks*t| dtdd||   }t||ksTttt| | }|t| t| kr|jsttdd tdd  d }t| | }	t|	}|	jsÜ|jrÜ|t| t| ksąttt| | | }|t| t| t| ksttt| | | t| | | ks@td S )Nzx,y,z,nr\   rj   r¢   T©Śpositive©Śforcer`   )Śdictr   Zcoeff)rØ   rl   zn,mFrp   rW   )r   rG   r_   r   r/   r#   Śis_Powr.   r   r)   r
   r4   r]   Zis_Mul)
rN   rO   rP   r[   r¢   rv   rW   Śeqrx   rR   r`   r`   ra   Śtest_separatevars  sr    <,8*’>. (’
:2:"’
*’
’
’
’
’
 ,""2"*"r«   c                  C   s&  t d\} }}tdt| t|  t|  t| t| d t|d  ksRttd|  t| | t|  t|t|  | t| t|  | t|  t| | d t|d  t|d   ksŠtt ddd\} }tdt| t|  t| |  t| d t|d  ks"td S )Nzx,y,zrj   śx,yTr¤   )r   rG   r%   r_   r#   ©rN   rO   rP   r`   r`   ra   Ś!test_separatevars_advanced_factorO  s"    &’,’
’’ ž"’r®   c                  C   sŽ  t ddd\} }tt|||d ks*ttt|d |d ksDttdt| |d|d  ksfttd| t|d  |d|d d  ksttt| ||| | |d  ksøttt| d ||| | d |d  ksätd| d t| td| d  }t||tjd| d dd	|  d
|d     ksBtdd| d td| d   }t|||tj |d d| d  d| d   kstt| |d|  t| }t||||  |d d  ksŚtd S )Nzn,kT©Śintegerrj   r\   rk   r   rl   é   r   ro   )r   rA   r    r_   r   r   ŚHalf)r[   ru   Śtermr`   r`   ra   Śtest_hypersimp[  s    ".$,$: :r“   c                  C   sę  t d} tddksttddks(ttddks8ttd|  d|  ksPttdtddksfttdt dtd d	 ksttdtd d
 tgtd	 ksŖttd	t tgd	t d	 ksŹttttt tdd ddt	dksōttt
ttdd ddt	dksttttdddd	t  tgttttd	 t  ksZttd	td	td t  t	dkstttddtddks tttddtddks¼ttdddtddksŲttdddtddksōttdddd d	tdd kstt| d! dd"tj|  ks6ttd#|  dd"tdd|  ksZtttd ” dd"t	d$ks|tttd%ttd	gttd	 d& ksØtttd% d”ttd	gt d
 td	 tdd
 ksętt| d' | d ks tttd( td) kstttd( dd"td( ks8tttd* d+t ksRtttd,td	  td	 d-  dtd	 d.    t”rt| d/ }|jr°t| d/ dks“ttd0d1dd2tddksŅttd0ddd2tddksšttd3d1dd2td4dksttd3ddd2td4dks,ttd5ddd2td5ksHttd6ddd2td7ksdttd8ddd2td9ksttd:td;dksttd<ddtddks“ttd=ddtddksŠttd>ddtd?d@ksģttdAddtdBd@kstttdCtddDks$ttdEdd"dks:ttdF}t t|| f}|D ]>}t|t }t||ksxtt||  | | ksVtqVtdGddHdItdGks²ttt d)”|  dHdJ d)”t d)”|  ksātd S )KNrN   r   ro   rj   g@é   r   r   r\   rk   rl   F©Śevaluatez1/2 - sqrt(3)*I/2zsqrt(sqrt(5)/8 + 5/8)Ś1z1/4z49/17 + 8*I/17g{®Gįz?)Ś	toleranceé   r   gü©ńŅMbP?ic  éq   g¾¤1ZGUÕ?g-Cėā6?grł¢(ō?i{  ių  T)r¹   Śfullē      ą?r   g«ŖŖŖŖŖ
@z109861228866811/100000000000000g² A²kŃ?r   ē      @g      Y@éd   gHÆ¼ņ×z>i g      Ąg      Ąg      ųæē        g©kķ}ŖŖ
@g¹?)r¹   r   gR×ŚūTU@é   é!   g
×£p=Ŗ@@é   gįz®GįB@é(   g33333ciĄių’’gÉ?gÉægāé²qĢ?iW  i  gāé²qĢæi©ū’’g:0āyU>išśg9(£żL67ŚinfgŚĮQUUÕ?Śexact)r   Śrational_conversion)rĒ   )r   rD   r_   r   r   r)   r#   r   r   r   r/   r-   r   r²   r%   r[   r   r>   rP   Zatomsr©   r   r"   r^   )rN   rV   rÅ   ZinfsZzir   r`   r`   ra   Śtest_nsimplifyr  s     $ ’’
’
*’
 $’
,’
*’’
rČ   c                  C   s   t d} t| tjkstd S )NzE1/(1 - (-1)**(2/3) - (-1)**(1/3)) + 1/(1 + (-1)**(2/3) + (-1)**(1/3)))r   rD   r   r²   r_   )rh   r`   r`   ra   Śtest_issue_9448¶  s    rÉ   c                  C   sģ   t d} t d}t d}t d}t|  |  | | ks<tt|  | |  | ksXtt| | | | ksptt| |  |  | kstt|  d t|  ks¦tttddtks¼tt| |  | |  ||  ||  ksčtd S )NrN   rO   rR   rS   r   éū’’’)r   rI   r_   r   r   )rN   rO   rR   rS   r`   r`   ra   Śtest_extract_minus_sign»  s    rĖ   c                  C   s  t d} t d}td}td}t||  | ”||  | ” ||  | ”||  | ”  dksdttd||  ||  | ” t|| d |  dkstttd||  | ||  | ”|| d   dksŌtt||  | |”||  || ” dkstd S )NrN   rO   rW   rX   r   r\   rj   )r   r
   rI   r   r_   )rN   rO   rW   rX   r`   r`   ra   Ś	test_diffÉ  s    D88rĢ   c                  C   sV  t d\} }td}t ddd\}}tddd}tt| dt|  t| dt|  ks`ttt| dt|  dd	t| |d  kstt|t| t| |t| t| ksĄtt|t| |t|   t|| |t|   ksųtt|t| t| t|| | ks&ttt| t| t| t| ksPttt|t|  t|t|  ksztttd
t| |t|  tt|| |d  tt|d ||  fksŠtttt| t| t| dd	tt| | | ksttdt t|  dd	dt t|  ks<tt| d t|  t| | |  dd	| d t| |  | |  ksttt| d t| t| dd	t||t| d   ksČtt| | t| d |d   t|  t| t| t	dd  t|d   dd	| | t| d |d   t| |  t| t	dd  |t	dd   kshttt
t| |  tt| |   dd	tt| |  t
t| |   ks¾ttdt| t| t|  t| t| t|t|d  t|  t||  ksttdt| dt|  t|d |d  ksRtt| |d  td td | |d  td kstt| | t| |  | td  | | t|d  ksĢttt| td td|  ksņttt| tt| }t||kst| d|di}tt| t|  |”| |”ksRtd S )Nr¬   rR   zz,wTr¤   rS   ©Śrealr\   r¦   rn   rk   rl   rj   rr   r   )r   r   rC   r%   r_   r.   r   r)   r   r   r3   r+   r]   Śsubs)rN   rO   rR   rP   rw   rS   rŖ   Śrepsr`   r`   ra   Śtest_logcombine_1Ō  s^    0008.**4’"’
.&’
"’
<
’’& ’’
*"’
.&’
6:@&rŃ   c                  C   sf   t ttd ttd  t t} t| dd| ks6tt| dtt  dd| ttd  ksbtd S )Nr\   rl   Tr¦   )r7   r/   rN   r.   rC   r_   r%   )rZ   r`   r`   ra   Śtest_logcombine_complex_coeffž  s
    "’rŅ   c                  C   s   t ddd\} }ttdtd ttddddks:ttt| t| t| | ks^ttttddddtd ttddddkstd S )	Nr¬   Tr¤   rl   r\   Fr¶   rk   )r   rC   r%   r   r_   ©rN   rO   r`   r`   ra   Śtest_issue_5950  s    *$’rŌ   c                     s  t d} tt| tddd tddd dks4ttd|  \}}t| ”  |”t|  ksdttt| d|  gd	kstt ddd}t ddd}| ||g}t|\} t|d
ks¾t fdd|D |ksŲttttd|  t	 d t	ddf ” dks
ttt
td| |  d |ddf ” dks<ttddd}t|\}}|jddddddddddddddddddddkstd S )NrN   r¢   Tr¤   r[   ©Śnegativez(_x + n + p, {_x: x})rj   z([_x, _x + 1], {_x: x})z
[_x, n, p]c                    s   g | ]}|   ”qS r`   )rĻ   )rg   rw   ©rŠ   r`   ra   Ś
<listcomp>  s     ztest_posify.<locals>.<listcomp>r   rl   z3Integral(1/_x, (y, 1, 3)) + Integral(_y, (y, 1, 3))zSum(_x**(-n), (n, 1, 3))ru   )ŚfiniteF)r„   ŚzeroZ	imaginaryŚnonpositiverq   Z	hermitianrĪ   ZnonzeroZnonnegativerÖ   ŚcomplexrŁ   ZinfiniteZextended_realZextended_negativeZextended_nonnegativeZextended_nonpositiveZextended_nonzeroZextended_positive)r   r   rF   r   r_   r%   r   rĻ   r7   rO   r   Zassumptions0)rN   rŖ   Śrepr¢   r[   ŚorigŚmodifiedru   r`   r×   ra   Śtest_posify  sZ    
’
ž’ż 
&’
&’

           ūrą   c                  C   s@   t d} tdt d| t  dt d| t   dks<td S )NrW   rk   rr   r\   rl   )r
   rI   rN   rO   r_   ©rW   r`   r`   ra   Śtest_issue_41940  s    rā   c                   C   s<   t td td  dkstt td td  dks8td S )Nr   r\   r   )rI   rN   r_   r`   r`   r`   ra   Śtest_simplify_float_vs_integer6  s    rć   c                  C   s¾  t d t  ” tjt dt  fks&tt d t jddtjt d t fksPttt d t   ” tjtt dt   fks~ttt d t  jddtjtt d t  fks°tt ddt    dt  d d   ” dt t d d  fksģtddt   dt ddt     ” dt dt td   d fks2tddt   d  ” ddt  d d fks`tddt   dt   ” dttddt  d dt  fks td	d
t   dt ddt     ” dd
t  dt td   d	 fksźtd	t dt   dt  ddt     ” dt td  fks(td	t dt   dt  ddt    d  ” dt d td d  fksrttd  ” dtd fksttj ” dt	fksØtt dt  } |  ” d| fksŹttjdt    ” t
dddt   fksött
dddt    ” t
ddt
ddt  fks*tt
dddt    ” t
ddt
ddt  fks^tddt d   ” ddtd  fkstddt d   ” ddttjdt dd fks¾td	t
dd  ” dd	t
dd fksčtd	t
dd  ” d	d	t
dd fkstttt
d	d dt  tt
dd dd ” t
dddt  dt  d
t  fksftdt
dd dt
dd td  jddddt
dd tdtd  fksŗtd S )Nr\   F)Śclearrl   é   rj   rr   rk   r   r   rĮ   éy   ro   r¶   r   r½   r±   r¾   é   T)Śradical)rN   rO   Zas_content_primitiver   r²   r_   r”   r   ŚInfinityr   r   r   r   rP   r)   ©rŖ   r`   r`   ra   Śtest_as_content_primitive>  sd    &*.2"’"’
’
 ’
"’
&’
*’


’
,’
’
*’
*** ’
* ’rė   c                  C   s   t t  d  t t d   } tt| dtjks2ttt d tdt  ksNtttt  tt  ksftttt  ddtdt t ddkstd S )Nrj   r   Fr¶   ro   )	rN   rH   r   r   Śtruer_   r!   rO   r   )rV   r`   r`   ra   Śtest_signsimpj  s
    rķ   c                  C   sō  ddl m} m}m} ddlm} ttt t	 t
 d | t
tttt	 d   |t
tksbtttt t	 t d | tdtt ttt	 d   |tdtt ks“tttdtt	 ttdd  ttt	 d  tt t	 t d  | tddttttt	 d   | tttttt	 d   d |tttttt ksbtt| tddttdtt tt	tt  kstt| tttt t	 d  tt t	 t d |tt ksāt|dt ttt  tt
tdtt	 |ddtt tt
  d ks2tttd td|d	t t |dd	t  t |dd	t  t  td|d	t t |dd	t  t |dd	t  t    d tt|dd	t  td |dd	t  td   t|dd	t  td |dd	t  td      td d
 t|d	t t t|d	t t    dksTttdtd  t|tdddt d|tdddt   |tdddt   t|tdddt d|tdddt   |tdddt     d ttd|tdddt  d d|tdddt  d   td|tdddt  d d|tdddt  d      dtd  tdd t|tdddt  t|tdddt     dks¼tt|td t|td t dt |tt t  dksütt|td t|td t |tt dt t |tt t ksFtttd |tt td |td t  |td t dt t |td t td |td t  td |td t  dt |td t  |td t ksštd S )Nr   )ŚbesseliŚbesseljŚbessely)Ścosine_transformr\   rj   rk   ro   rn   r   é   éQ   rŹ   rl   é	   r   )Zsympy.functions.special.besselrī   rļ   rš   Zsympy.integrals.transformsrń   r@   r#   r   r   rO   rP   r$   r_   rR   r)   rN   r   r.   r&   rQ   r/   rS   )rī   rļ   rš   rń   r`   r`   ra   Śtest_besselsimpr  s    2’:’D"’žžż
’
’
,’
,’$’’ž0.’ž’żü
NB’’’:’’Dżż
@J8h’rõ   c                  C   s   t t t  tt t   } tt d tt d  }tt t t t  }t| }t|}t|}tt| t |k f|dft|t |k f|dfkstd S )Nr\   T)rN   rO   r/   r.   r   rI   r*   r_   )Śe1Śe2Ze3Śs1Śs2Zs3r`   r`   ra   Śtest_Piecewise  s    ’rś   c                  C   s6   G dd dt } | tdtd}t|dks2td S )Nc                   @   s   e Zd Zdd ZdS )ztest_polymorphism.<locals>.Ac                 [   s   t jS re   )r   r”   )rN   Śkwargsr`   r`   ra   Ś_eval_simplify£  s    z+test_polymorphism.<locals>.A._eval_simplifyN)Ś__name__Ś
__module__Ś__qualname__rü   r`   r`   r`   ra   ry   ¢  s   ry   r   r\   rj   )r   r   rI   r_   )ry   rR   r`   r`   ra   Śtest_polymorphism”  s    r   c                  C   s8   t ddd\} }}}ttt|  t|   ks4td S )Nzn1 n2 n3 n4TrÕ   )r   rI   r   r)   r_   )Zn1Zn2Zn3Zn4r`   r`   ra   Śtest_issue_from_PR1599Ŗ  s    r  c                  C   sx   t dt  dt  d  } t| t d t dt   d ks<tt|  ” dt d  dt  t  dt   dt  ksttd S )Nr\   rj   rk   )rN   rO   rI   r_   r   rź   r`   r`   ra   Śtest_issue_6811Æ  s
    $
&’r  c                     s   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d  fdd| D |kstd S )NrW   c                    s   g | ]}t  |jd  qS )r   )rI   Śargs)rg   Śeirį   r`   ra   rŲ   ½  s     z#test_issue_6920.<locals>.<listcomp>)	r.   rN   r   r/   r&   r(   r#   r
   r_   )rV   Śokr`   rį   ra   Śtest_issue_6920·  s    $ ’(r  c               	   C   sø   ddl m} m} t| tttdd | |kfdt |d  d| d   df dtt|  tdd | |kfdt |d  d| d   df   dt |   td| |kfd	ks“td S )
Nr   ©r   ŚRrk   rl   ių’’’Tr\   ro   ©r   T)Ś	sympy.abcr   r  rI   r*   r   r   r_   r  r`   r`   ra   Śtest_issue_7001Ą  s    ’’’
žżr  c                  C   sH   t td ttd  } d}t| |dd}|tjk	s8tt|sDtd S )Nr\   Fr¶   )r.   rN   r/   r   r   rģ   r_   rI   )ŚlhsŚrhsrV   r`   r`   ra   Ś test_inequality_no_auto_simplifyČ  s
    r  c                  C   sx  ddl m}  ddlm} |ddks(t|dt dks<ttddksLttdt dks`tt| d | d| d   ” dkst|ddkst|dt dks¬ttddks¼ttdt dksŠt|d	dksąt|d	t dksōttd	dksttd	t dksttd
}||dks6t||t dksLtt|dks^tt|t dksttd S )Nr   )ŚNumber)Ścancelg+”=g      š?r   iņ’’’g#B”Ē;g0ä.’++z1e-1000)Śsympy.core.numbersr  Śsympy.polys.polytoolsr  r_   r   rI   r   )r  r  rW   r`   r`   ra   Śtest_issue_9398Ń  s(    (r  c                  C   s4   t ddd} | d | d  d }t||ks0td S )NŚMr   )r   r   )r   rk   i  )r=   rI   r_   )r  rV   r`   r`   ra   Śtest_issue_9324_simplifyš  s    r  c                  C   s~   ddl m} m} tddd}tddd}tdd tdD }| d}|j| | }t|| ”  	||||i”d	kszt
d S )
Nr   )ŚIdentityŚtraceŚvrl   rj   ry   c                 S   s   g | ]}|d  qS )rj   r`   )rg   rZ   r`   r`   ra   rŲ   ż  s     z,test_issue_9817_simplify.<locals>.<listcomp>r±   )Śsympy.matrices.expressionsr  r  r=   r;   ŚrangeŚTrI   Zas_explicitZxreplacer_   )r  r  r  ry   rN   ŚXZ	quadraticr`   r`   ra   Śtest_issue_9817_simplifyö  s    r  c                  C   s4   t d} t| ttd | ttd ks0td S )NrN   rj   )r   rI   r'   r0   r_   rc   r`   r`   ra   Śtest_issue_13474  s    r  c                     sč  t d\} }td G  fdddt}t| | | | ksHtt| | | ks`tt| | dd| ks|tt| t| d t| d  dddks¬tt| | |dd| | |ksŌtttt| sętttt| tt| ksttdttd	|   ddd
|  ks2ttt	t
| t	t
| ksTttt	t
| dd| ksrttt
t	| dd| ksttt	t
| ddd| t	d ksøttt	t
| ddddd| t	d ksätd S )Nzx, yrX   c                       s   e Zd Zd fdd	ZdS )z)test_simplify_function_inverse.<locals>.frj   c                    s    S re   r`   )ŚselfZargindex©rX   r`   ra   Śinverse  s    z1test_simplify_function_inverse.<locals>.f.inverseN)rj   )rż   rž   r’   r!  r`   r   r`   ra   rW     s   rW   T)r!  r\   rj   rl   rr   Fr¶   )r   r
   rI   r_   rB   r/   r.   r   r,   r%   r#   )rN   rO   rW   r`   r   ra   Śtest_simplify_function_inverse  s      0("*"(r"  c                  C   s  ddl m}  | dt dt d  tdt d  dfks<t| dt dt d  d tdt d  tddfksvt| dt dt d  d ttdt d  td tdd fksŗt| tdd tddfksŚt| dtd d tdtjfkst| tdtdtd fks"t| tj	ttj	tfks>t| tj
 ttj
t fks^t| dtj
d  ttd	t d fkstd S )
Nr   ©Śclear_coefficientsrk   rr   rl   r\   rj   é   r   )Śsympy.simplify.simplifyr$  rO   rN   r_   r   r)   r   r²   ré   ŚPir   r#  r`   r`   ra   Śtest_clear_coefficients#  s    0:D (  r(  c                     sę  ddl m ddlmm  ddlm ddlm t	ddd\} }}}t
d	td
}td}td}td}| |||||||itdd tdd i fddd!fdd	}|| | |  | |  | | | | d  | | | d | d  || | | | d  |  | d || d | |  | |  | | | d  | | | d  dd |||  |d  |  |d  |  |d  || |d  d   || | | d  | | d  | | d  | | |  d | d   || d | | d  | | d  | | d  | d | | d  d  || d | | d  | | d  | |  | d || d  d  | d   || | |  | | | |  |  | |  | | d | | | d    || | |  | | |  | |  | | | | d | d  ||d | d  | | d  | |  || d | |d  ||d  |  d  | d | | d  | | d  | | d  | | d  || d  d  | | d  | | d  }	tdD ]}
|	| | 9 }	qČ||	| d || d  d  || d  d  | | d   || | |  | d | | |  | d dd  || | || d  | | || d   |d | d |d  | d | |d   d  | d  }	|	d| d ksĄtdd  dd  ksātd S )"Nr   )Śnc_simplify)ŚMatPowr  )ŚPow)Średuceza b c dFrp   rN   ry   r{   ŚCŚDc                 S   s   | | S re   r`   rÓ   r`   r`   ra   r   <  r   z"test_nc_simplify.<locals>.<lambda>c                 S   s   | | S re   r`   rÓ   r`   r`   ra   r   <  r   c                    sr   | kr|  S t | r4| jd | jd S t | ttfrb| j fdd| jD S |   S d S )Nr   rj   c                    s   g | ]} |qS r`   r`   )rg   rR   )Ś
_to_matrixr`   ra   rŲ   D  s     z8test_nc_simplify.<locals>._to_matrix.<locals>.<listcomp>)Ś
isinstancer  r   r   Śfuncr   )r  r*  r+  r/  Śfuncsr,  ŚsubstrN   r`   ra   r/  >  s    
 z$test_nc_simplify.<locals>._to_matrixTc                    sX   | |d|kst t| t|ks(t |rT |jdd} | |d|ksTt d S )N©ŚdeepF)Z
inv_expand)r_   r   Śdoit)rz   Z
simplifiedr5  ŚmatrixZm_simp)r/  r)  r`   ra   Ś_checkH  s
    z test_nc_simplify.<locals>._checkrl   r\   rn   rj   ro   )r7  rk   r   r   rr   r4  )TT)r&  r)  r  r*  r  Ś
sympy.corer+  Ś	functoolsr,  r   r   r=   r   r   r  r_   )rR   rS   rT   rU   ry   r{   r-  r.  r8  rz   Ś_r`   )	r  r*  r+  r/  r2  r)  r,  r3  rN   ra   Śtest_nc_simplify/  sD    
B">>BFJN>&*`:.*8r<  c                  C   sØ   t ttt  tdtf} tt tt tdtf }ttt t}td t d }t| | || ksftt| |ksvtt||kstt|ddtttt ks¤td S )Nrj   r\   F)r6  )r   rP   rN   rO   rR   r7   rI   r_   )ry   Zanewr{   Zbdor`   r`   ra   Śtest_issue_15965e  s    r=  c                   C   sT   t ttt ttt ks tt ttddt   ttddt   ksPtd S )Nr\   rl   )rI   r.   rN   r   r_   r`   r`   r`   ra   Śtest_issue_17137p  s     r>  c                  C   s   t ddd} t ddd}tt| d dt| |}| ” |ksBttt| d dt| d}| ” t| dksrttt| d | d t| d}| ” t| dks¦tttt| | d t| d	}| ” t| d	ksŚttt| d | d t| d}| ” tjksttt|| d t| d}| ” tt|dt| dksJttt|d dt|| d t| d}| ” tt|dt| dksttt|d dt|d| d  t| d}| ” tt|dt| dksāttt|d dt|| d t| d}| ” tjkstd S )
NrN   TrĶ   rO   r\   rk   rl   rj   r   )	r   r9   r   r   rI   r_   r/   r   Śfalse)rN   rO   rz   r`   r`   ra   Śtest_issue_21869u  s(    $&$*$&r@  c                  C   sh   t ttddf} | dkstt| tjks.tttjtjksBtttd} | tjk	r`| dksdtd S )Nrj   r   rĄ   )r7   rN   r_   rI   r   ZZeror   )rP   r`   r`   ra   Śtest_issue_7971_21740  s    rA  c                
   C   sZ   t dttd d   d”dtdt tdtddt   t   d d  ksVtd S )Nr\   rj   r%   ro   rk   )rI   r+   r   Śrewriter   r%   r)   r_   r`   r`   r`   ra   Śtest_issue_17141_slow  s    *’’’’rC  c               	   C   s  t tdtt  tdtdt tdtd     ks<tt tt d ttd  tdtd d td tdtd d  d  td d  kstt dttd  dtdt tdtd   d d  ksŽtdttd d  } t | | kstd S )Nrj   r\   rk   é   )rI   rN   r+   r   r   r%   r)   r_   )r¢   r`   r`   ra   Śtest_issue_17141¤  s    <>’@rE  c                     sī  t d\} }t t | | | |ks,tt d| d|ksHtt | d | dksdtt d| t” d| dkstt d| tdt|dfd  d|  d| ksÄtt d| d| dksättdddt d d dksttd	d	 fd
d}t|d t dd ddgd dd dgdd ddgddd dggksttt	dtd td tdggksĄttt
jtd td t
jksźtd S )Nzi jr   rj   r\   r	  r[   TrÆ   rk   c                    s   | |kr ||  S dS )Nr   r`   )rZ   Śj©ŚKr[   r`   ra   r   æ  r   z.test_simplify_kroneckerdelta.<locals>.<lambda>)r   r5   rI   r_   rB  r*   r   r   r;   r<   r   ré   ŚNaN)rZ   rF  r  r`   rG  ra   Śtest_simplify_kroneckerdelta®  s4    &: ""ż’
’
’’rJ  c                   C   s`   t ttttd  dtt ks(tt dttd d td   dttd  ks\td S )Nr\   rj   r   )rI   r]   rN   r_   r!   r`   r`   r`   ra   Śtest_issue_17292Ė  s    (rK  c                  C   s4   t ttd dttd} t| ttdks0td S )Nr\   rj   rl   )r9   r   r[   rI   r_   r   r`   r`   ra   Śtest_issue_19822Ń  s    rL  c                  C   s\   t ttdttd} t| ttdks,tt ttdttd} t| ttdksXtd S )Nrl   )r9   r   rN   r   rI   r   r_   r   r`   r`   ra   Śtest_issue_18645Ö  s    rM  c                  C   sP   t ddd} t ddd}tt| d| t| d| d }t|tjksLtd S )NrZ   TrÆ   r[   r\   rj   )r   r9   r   r   rI   r   r?  r_   )rZ   r[   rz   r`   r`   ra   Śtest_issue_18642Ż  s    "rN  c                  C   s8   t ddd} t| d| dkB }t|t| dks4td S )Nr[   TrÆ   r   rj   )r   r   rI   r   r_   )r[   rz   r`   r`   ra   Śtest_issue_18389å  s    rO  c                  C   s0   t ddd} tt| dk | dktjks,td S )NrN   TrĶ   rj   )r   rI   r:   r   rģ   r_   rc   r`   r`   ra   Śtest_issue_8373ģ  s    rP  c                  C   s,   t ttdttd} t| tjks(td S )Nrj   r\   )r9   r   rN   rI   r   r?  r_   r   r`   r`   ra   Śtest_issue_7950ń  s    rQ  c                  C   s$   t t d t } t| | ks td S ©Nr\   )r   r   r   rI   r_   r   r`   r`   ra   Śtest_issue_22020ö  s    rS  c                  C   s2  t tttt tkstttttd   } t tttd  |  td tttd t   t kslttd ttd d  } t ttd d |  td td ttd d   d ksÄttd}ttt|td   } t tt|td  |  ttt|td   t |td  ks.td S )Nrl   r\   rj   rW   )rI   r"   rN   r!   r_   r
   )rV   rW   r`   r`   ra   Śtest_issue_19484ü  s    <@rT  c                  C   sB   t ddd\} }}| ||d    ” | d| |  d ks>td S )Nzx y zFrp   r\   )r   rI   r_   r­   r`   r`   ra   Śtest_issue_23543
  s    rU  c                     sĘ   dd   fddfdd} t d\}}tdd	}t| t|| t|d
  jdd}t| t|” d	”}||| t| || t|d
   |t|  |t|d
   tdd	 ksĀtd S )Nc                 S   s   t dt |  | t |   S rR  )r)   r   r   r   r`   r`   ra   rW     s    ztest_issue_11004.<locals>.fc                    s    |  | | |  S re   r`   ©r[   ru   rį   r`   ra   rv     s    ztest_issue_11004.<locals>.mc                    s    | |||   S re   r`   rV  )rv   r`   ra   r¢     s    ztest_issue_11004.<locals>.pzN kz0.5rk   rj   Tr¦   gśńņĻgķ?)r   r   r%   r[   r   rI   rĻ   r_   )r¢   ŚNru   ZhalfrP   r   r`   )rW   rv   ra   Śtest_issue_11004  s$    
$’
žżü’rX  c                  C   s(   t d ” } | td   ” dks$td S )Nzx**2r\   r   )r?   rI   rN   r_   )Z
polynomialr`   r`   ra   Śtest_issue_19161(  s    rY  c                  C   s6   t ddd} dtttt| f }| ” |ks2td S )NrU   TrÆ   r\   )r   r   r/   rN   rI   r_   )rU   rz   r`   r`   ra   Śtest_issue_22210-  s    rZ  c                  C   sĢ   t ddd\} }t ddd}td| ||  d| ||  ksDtt| | ||  | | ||  ksltt ddd\} }t| | | | | ||  ks tt| | ||  t| | | ksČtd S )Nzx yTrp   ŚZFr\   r¤   )r   rI   r_   r   )rN   rO   r[  r`   r`   ra   Śtest_reduce_inverses_nc_pow3  s    (($r\  N)¼Zsympy.concrete.summationsr   Zsympy.core.addr   Zsympy.core.basicr   Zsympy.core.exprr   Zsympy.core.functionr   r   r   r	   r
   r   Zsympy.core.mulr   r   r9  r   r  r   r   r   r   r   r   r   Zsympy.core.relationalr   r   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Zsympy.core.sympifyr   Z(sympy.functions.combinatorial.factorialsr   r    Z$sympy.functions.elementary.complexesr!   r"   Z&sympy.functions.elementary.exponentialr#   r$   r%   Z%sympy.functions.elementary.hyperbolicr&   r'   r(   Z(sympy.functions.elementary.miscellaneousr)   Z$sympy.functions.elementary.piecewiser*   Z(sympy.functions.elementary.trigonometricr+   r,   r-   r.   r/   r0   r1   Z'sympy.functions.special.error_functionsr2   Z'sympy.functions.special.gamma_functionsr3   Zsympy.functions.special.hyperr4   Z(sympy.functions.special.tensor_functionsr5   Zsympy.geometry.polygonr6   Zsympy.integrals.integralsr7   r8   Zsympy.logic.boolalgr9   r:   Zsympy.matrices.denser;   r<   Z"sympy.matrices.expressions.matexprr=   r  r>   r?   r&  r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   Zsympy.solvers.solversrJ   Zsympy.testing.pytestrK   rL   rM   r
  rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   rb   rd   r|   r}   r   r   r   r   r   r   r   r   r    r£   r«   r®   r“   rČ   rÉ   rĖ   rĢ   rŃ   rŅ   rŌ   rą   rā   rć   rė   rķ   rõ   rś   r   r  r  r  r  r  r  r  r  r  r"  r(  r<  r=  r>  r@  rA  rC  rE  rJ  rK  rL  rM  rN  rO  rP  rQ  rS  rT  rU  rX  rY  rZ  r\  r`   r`   r`   ra   Ś<module>   sŠ    $$0@a

	
AD*#
,$			
6	



