o
    *ήc$.                    @   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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 d d	lmZ d d
lmZ d dl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) d dl*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9m:Z:m;Z; d dl<m=Z= d dl>m?Z? d dl*m@Z@ d dlAmBZB ed\ZCZDZEZFZGedddZHdd ZId d! ZJd"d# ZKd$d% ZLd&d' ZMd(d) ZNd*d+ ZOd,d- ZPd.d/ ZQd0d1 ZRd2d3 ZSd4d5 ZTd6d7 ZUd8d9 ZVd:d; ZWd<d= ZXd>d? ZYd@dA ZZdBdC Z[dDdE Z\dFdG Z]dHdI Z^e9dJdK Z_dLdM Z`e9dNdO ZadPdQ ZbdRdS ZcdTdU ZddVdW ZedXdY ZfdZd[ Zgd\d] Zhd^d_ Zid`da Zjdbdc Zkddde Zldfdg Zmdhdi Zndjdk Zodldm Zpdndo Zqdpdq Zrdrds Zsdtdu Ztdvdw Zudxdy Zvdzd{ Zwd|d} Zxd~d Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZddÄ Zddń ZddǄ ZddɄ Zdd˄ Zdd̈́ Zddτ Zddф Zddӄ ZddՄ Zddׄ Zddل Zddۄ Zdd݄ Zdd߄ Zdd Zdd Zdd ZdS )    )Add)Basic)Mod)Mul)	FloatIIntegerRationalcompnanoopizoo)Pow)S)DummySymbolsymbols)sympify)	factorial)imresign)explog)floor)Maxsqrt)atancossin)Poly)	FiniteSet)
distribute)	unchanged)permutations)XFAILraiseswarns)SymPyDeprecationWarning)verify_numerically)asin)productz	a,c,x,y,zbTpositivec                 C   s   | |ko	| j |j kS N)_precar-    r4   A/tmp/pip-target-vg8gfxp4/lib/python/sympy/core/tests/test_arit.pysame_and_same_prec"   s   r6   c                   C   s2   t ttksJ ttdd t ttksJ d S Nr      )r   xseriesr4   r4   r4   r5   	test_bug1'   s   r;   c                  C   s  t t } | t t ksJ t t t t td  ksJ t t t t tt td   ks,J t t t t t t td   ks?J tdddd}|jd u sMJ tdddd}|jd u s[J tddd}|jsfJ tddd}|jsqJ tdddd	}|jd u sJ d S )
N   r9   TF)complexreal)r=   	imaginaryr>   r?   )r>   r?   )r3   r-   cr   is_imaginaryis_real
is_complex)er9   r4   r4   r5   test_Symbol-   s   $&

rG   c                  C   s  t d} tt }|tt ksJ tt tt  }|dt t ks"J tt tt  tt  | t t  }|dt t ks>J tt tt  tt  | t t  t }|tdt t  ks^J tt }|dt ksjJ tt t }|tdt  kszJ ttt  t tt  }|dt dtd   ksJ tt d tt  t tt  |  }|ddt  dtd   ksJ ttt  t tt  |  }|ddt dtd    ksJ tt t tt t  tt t  |  }|dt t t ksJ tt t tt t  tt t  |  t dt t t  }|t dksJ t dtt  }|t dks,J tt t tt  t }|t dksAJ tt t|   }|tt td  ksVJ tt }|ttd  kseJ td d }|d	t kstJ dtd d  }|dt ksJ dt d }|t ksJ dt d }|d	t ksJ dt d }|td ksJ dtd  }|dtd  ksJ d
t  }|dt ksJ tjd
t  }|tjtd  ksJ d S )N   r<            r   2      r8   )r	   r3   r-   rB   r   Half)prF   r4   r4   r5   
test_arit0@   s^   $($  (<
rQ   c                  C   s   t t } | t td  ksJ t t td  } | t td  tdd t  ks(J dt td  } | dt  dt d  ks?J d S )NrM   r<   r8   )r3   r-   rB   r	   rF   r4   r4   r5   test_divr   s   $"rS   c            	      C   s  t d} t d}t d}tt }|td ksJ tt t }|td ks&J tt t tt d  }|td ks:J tt t tt d  tt d  }|t dksTJ ttt  }|t dksbJ tt d t t }|t dkstJ tt t | }|tt t d ksJ | dt t dt t  dt t  td  td  td  ksJ tt | }|tt d ksJ | dt t td  td  ksJ tt | |  }|ttt ksJ | ttt ksJ || |  }|tdksJ |t t |t t  }|t dksJ |t t |t t  }|dt t td ks,J |tdt td ks<J |tdt td ksLJ ttd  }|ttd  ks]J tddtd  dddtj   tj ksvJ t	d	}t	d
}|| d  |d |d  ksJ || d  |d |d  ksJ |d d| d   d|d  ksJ |d d| d   d|d  ksJ |d d| d   |d t dd ksJ |d d| d   |d t dd ksJ |||t
||   t  jdd|t |||t
||     ks#J |||t
||   t   |t ||| |t
|t
|     ksJJ t	ddd}t	ddd}t	ddd}ttd|seJ ttd|snJ d| d| ksyJ d| dksJ d| dksJ d S )Nr8   r<   rH         	   r   r9   y   rI   irM   FdeepnevenkToodd)r	   r3   r-   rB   expandr   diffr   rO   r   r   zr$   r   )	n1n2n5rF   r]   r9   rX   r`   ra   r4   r4   r5   test_pow{   sr   $H(  2&&**00"
&
rj   c                   C   s   t  tdd t tdd ksJ t  tdd t tdd  ks#J t  d tdd t  tdd d ks9J tt d t ksCJ d S )Nr<   rT   rH   rJ   r8   )r9   r	   r   r4   r4   r4   r5   	test_pow2   s   "$,rk   c                   C   s8   t dd dt d ksJ t dd t dksJ d S )Nr<   rT   rI   )r   r4   r4   r4   r5   	test_pow3   s   rl   c                  C   s  dddt dd dt dd t dd ffD ]>\} }}}tt | |||ks(J tt | t |||ks6J tt | |t ||ksDJ tt | t |t ||ksTJ qtt dt d	t dd
kseJ tttttt t kssJ ttdd  ttdd  d S )N)rN        i  )rN   rY   rn   im  )皙	@g @gffffff?g@mGd?rT   r<   rH   rU           d(	 r8   c                   S      t tdddS )NrN   13rn   powr   r4   r4   r4   r5   <lambda>       ztest_mod_pow.<locals>.<lambda>c                   S   rr   )NrN   rm   497rt   r4   r4   r4   r5   rv      rw   )r   ru   r9   rX   rf   r'   	TypeError)stuvr4   r4   r5   test_mod_pow   s   $" r~   c                  C   s  dt td  tjt  ksJ dt td d  tjt d  ks"J ddtd  tjks/J ddt  dtddt  tt    tjksHJ ddt  dtddt  tt    tjksaJ ddt  dtddt  dd tt td d    dksJ ddt  dtddt  dd   dksJ 	 t } |  \}}|rnqt	| dt|  t
|t t     tjsJ d S )Nr<   rT   r8   rY   rN   rV   )rX   r   r   Exp1r   r   r9   _randomas_real_imagr*   r   r]   )r-   rir4   r4   r5   
test_pow_E   s   &22B.6r   c                   C   s   dt dd tdksJ d S )NrN   r8   r<   )r	   r   r4   r4   r4   r5   test_pow_issue_3516   s   r   c                  C   s:  dD ]1} dD ],}| t  }tdd| d D ]}t||}|| | |   jddddks1J qqqtd	d
}dt t  | ddtdd
  t t |  ksRJ tddd}d| t  | ddtdd
  t | |  ksqJ t t t t dg}tdd
}d| }t|ddi| |ksJ t| | |ksJ t t t dg}tdd
}d| t  |  }t|ddi| |ksJ t| | |ksJ |d dt  | }t|ddi| |ksJ t| | |ksJ |d dt  | }t|ddi| |ksJ t| | |ksJ t t dg}tdd
}d| }t|ddi| |ks$J t| | |ks/J |d d| }t|ddi| |ksFJ t| | |ksQJ |d d| }t|ddi| |kshJ t| | |kssJ ttdtd
dddt t t ksJ tt tt t	j
dd tt t  ksJ d S )N)rW   rM   r<   )rT   rN   rH   r8   rN   r<   g|=)chopr   rJ   rT   r   TrA   evaluateFrY   rU   rM   irW   r   )r   ranger	   r]   r9   r   r   appendr   r   rO   r   )mdr-   r   rF   r   argsansr4   r4   r5   test_pow_im   sZ   
,
22







&.r   c                   C   sD   t dt t dksJ tt dt t jt dtthks J d S r7   )r   r   r9   setr   r4   r4   r4   r5   test_real_mul$  s   ,r   c                  C   s  t ddd} t ddd}t ddd}| | ||  ksJ | | | || |  ks*J | t | d | dt |  | | ks@J | t | d | dt | |  | ksVJ | t | d | d|  | | t kslJ | | ||  ksvJ | | | || |  ksJ || |  | || | |  ksJ | |  | d ksJ | | | |  | | d ksJ | d |  d	ksJ | |  d	ksJ | | d  d	|  ksJ | d	|   | d	|   ksJ t| | d| |   j| |d| |  hksJ d S )
NAFcommutativeBCrT   r<   rM   r8   )r   r-   r   r   r   r   r   r4   r4   r5   
test_ncmul)  s(   ,,,$ r   c                  C   s   t dd} t| tr| jdkr| jdksJ t dddd} t| t r'| jdks)J t dd} | tju s5J t dddd} t| t rF| jdksHJ tdd} | tj	u sTJ tdddd} t| tre| jdksgJ d S )Nr8   r<   Fr   r8   r<   r   )r   r8   )
r   
isinstancer	   rP   qr   r   Zeror   One)r   r4   r4   r5   test_mul_add_identityE  s   
"

r   c                  C   s  t ddd} t ddd}t ddd}t d}t d}t d}| d	 |d	  |d	 | d	  ks0J | d
 | || d	  ks>J d	|  d	|  d	| |  ksNJ d	|  d	|  d	|  d	| | |  ksdJ d	|  d	d	|    d	d|   ksvJ d	|  d	d	|    d	|   d	d|   ksJ t| t| t|t|  ksJ t| t| t| t|t|  t| ksJ t| t| t| t| | | ksJ | | | |  | ||  ksJ | | | |  | |  | || |  ksJ | d | d  | d ksJ | d | d  | d	  | d ksJ | | | d|   | d|  ks)J | | | d|   | |  | d|  ks@J d S )Nr9   Fr   rX   rf   r3   r-   rB   r<   rW   rT   rN   rJ   rV   rH   rU   )r   r   )r9   rX   rf   r3   r-   rB   r4   r4   r5   
test_ncpowT  s*   $ ,$,$4, ,&&2r   c                  C   s   t d} | d |  d ksJ | d |  d ksJ | d |  d ks%J | d |  d ks0J | d |  d ks;J | d |  d ksFJ | d |  d ksQJ | d	 |  d	 ks\J d|  d d
|  d ksjJ d S )Nr9   r8   r<   rT   rN   rH   rU         rW   r   r9   r4   r4   r5   test_powerbugm  s    r   c                  C   sR  t d} t d}ttt| t|sJ ttd|  d| s J | d | d  | d ks.J d|  d|   d|  ks<J | | | d|   | d|  ksNJ tdtd dksZJ d|  dd|    dd|   kslJ tddtdd  dtdd  d	tdd ksJ | td td  |  | | td td    tdksJ d S )
Nr9   rX   r<   rT   rH   rU   r8   rN   
   )r   r$   r   r   r   r	   r   r   )r9   rX   r4   r4   r5   test_Mul_doesnt_expand_exp|  s   $$6Dr   c               	   C   s  t ddd} t ddd}t ddd}t ddd	}t d
ddd}t ddd}t ddd}t dddd}| d jd u s;J |d jd u sDJ |d jdu sMJ |d jdu sVJ t|  | jd u saJ |d jdu sjJ |d d jdu suJ d|  jd u s~J d| d  jd u sJ d|  | jdu sJ d|  | d jdu sJ d|  | d jd u sJ || jd u sJ || jdu sJ || jdu sJ t| d|  ddjd u sJ tdtjddjd u sJ dt|  jd u sJ d| |  jd u sJ dddtdddd   }t||dd}	|	jsJ t ddd}
t ddd}|
| jd u s*J tdtdtdddddddd}|jdusCJ d S )Nr`   Tintegerr]   nrFrationalir
irrationalnzr   zerorF   r^   ra   rb   2)primer_   rT   r<   rM   r8   r          @  xqyq)r   
is_integerr9   r   r   rO   r   r   )r`   r]   r   r   r   rF   ra   i2rz   r   r   r   e_20161r4   r4   r5   test_Mul_is_integer  sF   "r   c                  C   sf  t d} t ddd}t ddd}t ddd}t ddd	}t d
ddd}| jd u s+J | jdu s3J d| jdu s<J | jdu sDJ || jdu sMJ || jdu sVJ ||  jd u s_J |||   jd u sjJ ||d  jd u suJ ||d  jd u sJ ||d  jdu sJ dtd td d  jdusJ ddtd td d   jdusJ d S )Nr9   r`   Tr   r]   nkFr   r   r   r   r<   rT   r8   )r   r   r   )r9   r`   r]   r   r   r   r4   r4   r5   test_Add_Mul_is_integer  s&   $,r   c                  C   s\  t dddd} t| jdu sJ | t|  jd u sJ | t|  jdu s&J dt|  jdu s1J t| t|  jd u s>J t| t|  jdu sKJ | t|  t|  jd u sZJ t| d jdu seJ t| t|  jdusrJ d|  jdu s{J d| d  d|  d|    jd u sJ tdd|   jdu sJ tdd|   d|   jdu sJ d S )	Nr9   TF)extended_realfinitei   C   r8   r<   )r   r    	is_finiter   r   r   r   r   r4   r4   r5   test_Add_Mul_is_finite  s   &&r   c                  C   s  t ddd} t ddd}t ddd}t ddd}t ddd	}d
|  jdu s'J d
|  jdu s0J d|  jd u s9J d|  jd u sBJ |d jd u sKJ |d jd u sTJ |d jd u s]J d
| jdu sfJ d
| jdu soJ d
| jdu sxJ d
| jdu sJ | jdu sJ | jdu sJ || jdu sJ || jdu sJ || jdu sJ || jdu sJ || | jdu sJ || | jdu sJ || |  jdu sJ || |  jdu sJ | d
 jd u sJ |d
 jdu sJ |d
 jdu sJ | | jd u sJ | |  jd u sJ | | |  jdu sJ | | |  jd u s(J | | jd u s2J | |  jd u s<J | | |  jdu sHJ | | |  jd u sTJ |d
 d
 js^J |d
 d jdu sjJ d
|d
  jdu svJ d
| jd u sJ d S )Nr9   Tr   rX   r`   rb   r]   r   r^   r<   FrT   )r   is_evenis_oddr   )r9   rX   r`   r]   r   r4   r4   r5   test_Mul_is_even_odd  sR   r   c                  C   s\   t ddd} t ddd}t ddd}| | ||  jdu sJ ||  | |  jdu s,J d S )Nr9   Tr   rX   r`   rb   r   r   r9   rX   r`   r4   r4   r5   1test_evenness_in_ternary_integer_product_with_odd  
   r   c                  C   B   t ddd} t ddd}t ddd}| | ||  jd u sJ d S Nr9   Tr   rX   r   r^   r   r9   rX   r   r4   r4   r5   2test_evenness_in_ternary_integer_product_with_even*     r   c                  C   s\   t ddd} t ddd}t ddd}| | ||  jdu sJ ||  | |  jdu s,J d S )Nr9   Tr   rX   r`   rb   Fr   r   r   r4   r4   r5   0test_oddness_in_ternary_integer_product_with_odd1  r   r   c                  C   r   r   r   r   r4   r4   r5   1test_oddness_in_ternary_integer_product_with_even=  r   r   c                  C   s   t d} t ddd}t dddd}|| jdu sJ | t jd u s#J | | jd u s,J |t jdu s5J t ddd	}t| jd u sDJ t d
dd}t ddd}|| jdu sYJ t dddd}|| jdu siJ d S )Nr9   r]   Tr   r   r   nonzeroFr   r   rf   r   r   rA   )r?   r   )r   is_rationalr   is_zero)r9   r]   r   r   rf   r   bir4   r4   r5   test_Mul_is_rationalD  s   r   c                  C   sl   t d} t ddd}t ddd}|| jdu sJ | t jd u s"J | | jd u s+J |t jdu s4J d S )Nr9   r]   Tr   r   F)r   r   r   )r9   r]   r   r4   r4   r5   test_Add_is_rationalY  s   r   c                  C   st  t ddd} t ddd}t ddd}t ddd}|d	 jdu s!J |d	 jd
u s*J | d	 jdu s4J | d	 jd
u s>J |d jd
u sGJ |d jdu sPJ | d jd
u sZJ | d jdu sdJ || jdu smJ || jd
u svJ || jd
u sJ || jdu sJ || | jdu sJ || | jd
u sJ || |  | jd u sJ || |  | jd u sJ d S )Nr9   Tr   r`   rb   r]   r   r^   rJ   F   )r   r   r   )r9   r`   r]   r   r4   r4   r5   test_Add_is_even_oddd  s(   r   c                  C   s  t ddd} t dddd}t ddd}d	| }|jr$|jdu r$|jdu s&J t d
dd}t ddd}t ddd}t ddd}|jdu sEJ | jdu sMJ d	| jdu sVJ d	|  du s`J d	| jdu siJ |jdu spJ | jdu sxJ d	| jdu sJ || jdu sJ d	| | jdu sJ | | jdu sJ || | jdu sJ |jdu sJ | jd u sJ d	| jdu sJ |jd u sJ | jdu sJ d	| jd u sJ || jd u sJ || jd u sJ || jdu sJ || jdu sJ || jd u sJ || | jdu sJ || | jd u s J | | | jd u s-J | | | jdu s:J d| | | jdu sHJ d| | | jd u sVJ || | | jdu sdJ | | jd u snJ || | |  | jd u s~J |jdu sJ | jdu sJ d	| jdu sJ |jdu sJ | jdu sJ d	| jdu sJ || jdu sJ d	| | jdu sJ | | jdu sJ | | | jdu sJ |jd u sJ | jdu sJ d	| jd u sJ |jdu sJ | jd u sJ d	| jdu sJ || jdu s"J || jdu s,J || jd u s6J || jd u s@J || jdu sJJ || | jd u sVJ || | jdu sbJ | | | jdu soJ | | | jd u s|J d| | | jd u sJ d| | | jdu sJ || | | jd u sJ | | jd u sJ || | |  | jd u sJ d S )Nr9   Tr@   rX   F)r   r=   rf   r   r<   negnegativeposr.   nnegnonnegativenposnonpositive   )r   is_Mulis_positiveis_negative_eval_is_extended_negative)r9   rX   rf   rF   r   r   r   r   r4   r4   r5   test_Mul_is_negative_positive  s    $r   c                  C   s  t ddd} t ddd}t ddd}t ddd}| | jdu s!J | | jdu s*J | | jd u s3J | | jd u s<J || jdu sEJ || jdu sNJ || jd u sWJ || jd u s`J | | jdu siJ | | jdu srJ | | jd u s{J | | jd u sJ d S )	Nr3   Tr   r-   rB   r   r   F)r   is_nonnegativer   r   r   is_nonpositiver3   r-   rB   r   r4   r4   r5   test_Mul_is_negative_positive_2  s    r   c                  C   s  t ddd} t ddd}t ddd}t ddd	}t d
dd}|jdu s%J | jdu s-J d| jdu s6J |jdu s=J | jdu sEJ d| jdu sNJ || jdu sWJ d| | jdu sbJ | | jdu slJ |jd u ssJ | jdu s{J d| jd u sJ |jdu sJ | jd u sJ d| jdu sJ || jdu sJ || jdu sJ || jd u sJ || jd u sJ || jdu sJ || | jd u sJ || | jdu sJ | | | jdu sJ | | | jd u sJ d| | | jd u sJ d| | | jdu sJ || | | jd u s!J | | jd u s+J || | |  | jd u s;J |jdu sCJ | jdu sLJ d| jdu sVJ |jdu s^J | jdu sgJ d| jdu sqJ || jdu s{J d| | jdu sJ | | jdu sJ |jdu sJ | jd u sJ d| jdu sJ |jd u sJ | jdu sJ d| jd u sJ || jd u sJ || jd u sJ || jdu sJ || jdu sJ || jd u sJ || | jdu sJ || | jd u sJ | | | jd u sJ | | | jdu s,J d| | | jdu s:J d| | | jd u sHJ || | | jdu sVJ | | jd u s`J || | |  | jd u spJ d S )Nr9   Tr@   r`   r   r]   r.   r|   r   r}   r   Fr<   r   r   r   r   r9   r`   r]   r|   r}   r4   r4   r5   #test_Mul_is_nonpositive_nonnegative  s~    $r   c                  C   sn  t ddd} t ddd}t ddd}t ddd	}t d
dd}|d jdu s'J |d jd u s0J | d jd u s:J | d jdu sDJ || jdu sMJ || jd u sVJ | | jd u s`J | | jdu sjJ || d jdu suJ || d jd u sJ | | d jd u sJ | | d jdu sJ d| d|  d jdu sJ || jd u sJ || jdu sJ || jdu sJ || jd u sJ || jdu sJ || jd u sJ | | jd u sJ | | jd u sJ || | d jdu sJ || | d jd u sJ | | | d jd u sJ | | | d jd u s*J ||  jd u s4J ||  | jd u s@J |d jdu sJJ |d jd u sTJ | d jd u s_J | d jdu sjJ || jdu stJ || jd u s~J | | jd u sJ | | jdu sJ || d jdu sJ || d jd u sJ | | d jd u sJ | | d jdu sJ d| d|  d jdu sJ || jd u sJ || jdu sJ || jdu sJ || jd u sJ || jd u sJ || jd u sJ | | jd u sJ | | jdu s(J || | d jd u s6J || | d jd u sDJ | | | d jd u sSJ | | | d jdu sbJ ||  jd u slJ ||  | jd u sxJ dtd td d tdd  d  }|jsJ tdtd tddtd   tddtd   }|jsJ d S )Nr9   Tr@   r`   r   r]   r.   r|   r   r}   r   r<   r   rH   {   FrW   rY   r   r8   rT   rU   )r   r   r   r   r   )r9   r`   r]   r|   r}   rf   r4   r4   r5   test_Add_is_negative_positive^  s~    *8r   c                  C   s  t ddd} t ddd}t ddd}t ddd	}t d
dd}|d jd u s'J |d jdu s0J | d jdu s:J | d jd u sDJ || jd u sMJ || jd u sVJ | | jd u s`J | | jdu sjJ || d jd u suJ || d jd u sJ | | d jd u sJ | | d jdu sJ d| d|  d jdu sJ || jd u sJ || jdu sJ || jdu sJ || jd u sJ || jdu sJ || jd u sJ | | jd u sJ | | jdu sJ || | d jd u sJ || | d jd u sJ | | | d jd u sJ | | | d jdu s*J ||  jd u s4J ||  | jd u s@J |d jd u sJJ |d jdu sTJ | d jdu s_J | d jd u sjJ || jdu stJ || jd u s~J | | jd u sJ | | jd u sJ || d jdu sJ || d jd u sJ | | d jd u sJ | | d jdu sJ d| d|  d jdu sJ || jd u sJ || jdu sJ || jdu sJ || jd u sJ || jdu sJ || jd u sJ | | jd u sJ | | jdu s(J || | d jdu s6J || | d jd u sDJ | | | d jd u sSJ | | | d jd u sbJ ||  jd u slJ ||  | jd u sxJ d S )Nr9   Tr@   r`   r   r]   r.   r|   r   r}   r   r<   r   FrH   r   rW   r   r   r4   r4   r5   #test_Add_is_nonpositive_nonnegative  sv    r   c                  C   s  t d} t ddd}t dddd}t dddd}|d	 jdu s!J |d
 jd u s*J |d d
 jdu s5J |d jd u s>J d	| jd u sGJ d	|  jd u sQJ d	| jdu sZJ d	|  jd u sdJ d	| jdu smJ d	|  jdu swJ | d	 jd u sJ d	|  jd u sJ || jdu sJ ||  jd u sJ ||  jd u sJ | | jd u sJ |||  jdu sJ || |  jd u sJ tdjdu sJ tdjdu sJ tdd	ddjdu sJ tddddjdu sJ tdd
ddjdu sJ ttjdddjdu s	J tdtjddjdu sJ tdtjddjdu s%J tdtjddjdu s3J ttjd
ddjdu sAJ d| jsIJ t dddd} | d	 jd u sZJ t ddd} d| d  jdu slJ d|  d  jdu syJ d| d  jdu sJ | d	 d	 jd u sJ t ddd}|d d	 jsJ |d d jsJ |d d jd u sJ d	| jd u sJ d	|d	  jdu sJ t ddd}|| jd u sJ t dddd}|| jdu sJ d S )Nr9   r`   Tr   r]   r   r   r   r   r/   r<   rW   r8   FrM   rT   333333?r   r   rN   )r>   r   r.   r^   rI      ra   rb   )rc   r   )r   r   r   r   r   rO   )r9   r`   r]   r   ra   r4   r4   r5   test_Pow_is_integer  sd   r   c            
      C   s  t ddd} t ddd}| d jdu sJ | d jdu sJ | |  jd u s'J ||  jdu s0J | tdd jd u s<J |tdd jdu sHJ td	td jd
u sUJ t ddd}|| jd u sdJ t| jdu smJ t | jdu swJ d| jd u sJ dt jd
u sJ dt  jd
u sJ |d jdu sJ |d jd
u sJ ||  jd u sJ t ddd}t ddd}t ddd}|| jdu sJ || jd
u sJ || jd u sJ |d|  jdu sJ t ddd} t ddd}t| | jddtj	u sJ | | jdu sJ t ddd}t
|t jdu sJ tt
|jd u s*J t ddd}t|jd u s:J tt
|jd u sFJ t dd
d}t|jd u sVJ t ddd}t|jd u sfJ tt jd
u sqJ t ddd}d|d  jd u sJ d|d  jd u sJ ddlm} td	} |d
 | jdu sJ W d    n	1 sw   Y  t| d	}	|d
 |	jd
u sJ W d    d S 1 sw   Y  d S )Nr9   Tr@   rX   r.   r<   rT   r8   rM   Fr   rA   rF   r^   ra   rb   r`   r   rN   r   )r=   rB   r]   r   r   r   )r   rD   r	   r   r   is_extended_realr   rd   r   r   r   r   rC   sympy.core.parametersr   r   r   )
r9   rX   r   rF   ra   r`   rB   r]   r   fr4   r4   r5   test_Pow_is_realI  sj    


$r   c                  C   s,   t dddd} | tt t|   jsJ d S )Nr`   Tr   )r   r   r   r   rD   )r`   r4   r4   r5   test_real_Pow  s   r   c                  C   s  t ddd} t ddd}t ddd}t ddd	}t d
dd}| d jd u s'J |d jdu s0J | |  jd u s9J ||  jd u sBJ | | jd u sKJ || jd u sTJ ||  jd u s]J || jdu sfJ ||  jd u soJ || jdu sxJ t| d jdu sJ t|d jdu sJ t| |  jd u sJ t|| jd u sJ t| t|  jd u sJ t|t| jdu sJ dt|  jd u sJ dt| jd u sJ dt|  jd u sJ dt| jdu sJ dtj jdu sJ d|d  jd u sJ d S )NxeTr   xrr@   rP   r.   r]   r   r   r   r<   r8   )r   r   r    r   r   Pi)r  r  rP   r]   r   r4   r4   r5   test_Pow_is_finite  s6   r  c                  C   s^  t d} t ddd}t ddd}t dddd}t d	ddd
}d| js%J d| js,J d||  js5J |d jdu s>J |d jdu sGJ d| jd u sPJ | d jd u sYJ || jd u sbJ || jdu skJ || jdu stJ || jdu s}J || jd u sJ || jd u sJ || jd u sJ || jd u sJ ||  jd u sJ ||  jd u sJ |d jdu sJ |d jdu sJ d| jd u sJ || jd u sJ || jdu sJ || jdu sJ || jdu sJ || jd u sJ || jd u sJ || jd u sJ || jd u sJ ||  jd u s#J ||  jd u s-J d S )Nr9   r`   Tr^   r]   rb   r   r   rP   r   rM   r<   FrT   )r   r   r   )r9   r`   r]   r   rP   r4   r4   r5   test_Pow_is_even_odd  sF   r  c                  C   s  t ddd} t dddd}t ddd}t ddd	}t d
}d|  jdu s&J d|  jd u s/J d| jdu s8J d| jdu sAJ |d jdu sJJ |d jdu sSJ ||  jdu s\J | |  jd u sfJ | | jdu spJ | | jdu szJ d|  jdu sJ d|  jd u sJ d| jdu sJ d| jdu sJ |d jdu sJ |d jdu sJ ||  jdu sJ | |  jd u sJ | | jdu sJ | | jdu sJ d| jd u sJ d| jd u sJ d S )Nr   Tr@   r`   r   r]   r^   r   rb   r9   r<   rW   F)r   r   r   )r   r`   r]   r   r9   r4   r4   r5   test_Pow_is_negative_positive  s6   r  c            ,   #   C   s  t ddd} | d }|jsJ |jdu sJ |jdu sJ tddddjdu s)J tddddjs3J tdtddjs=J tdd	ddjdu sIJ tdt ddjdu sVJ tddddjdu sbJ t d
dd}t|djdu srJ tdtddjdu s~J tdt ddjsJ ttjtddjsJ ttjt ddjdu sJ tj}d}d}d }dd|dd| dddt t d td dt tt t	gd||||||||||||||g|||||||||||||||gd||||||||||||||gd||||||||||||||g| ||||||||||||||gd||||||||||||||gd||||||||||||||gdt ||||||||||||||gt d ||||||||||||||gtd ||||||||||||||gdt ||||||||||||||gt||||||||||||||gt ||||||||||||||gt	||||||||||||||gg}dd }|| t
ddd\}	}
t
ddd\}}t
ddd\}}t
ddd\}}t
ddd\}}t
ddd\}}t
ddd\}}t
ddd\}}t
ddd \}}t
d!\}}t
d"dd\}}t
d#dd$\}} t
d%ddd&\}!}"t
d'dd(\}#}$t
d)dd*\}%}&t
d+dd,\}'}(t
d-dd.\})}*d|	||||||||||||!|#|%|'|)g|
|||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g| |||||||||||||||||g|"|||||||||||||||||g|$|||||||||||||||||g|&|||||||||||||||||g|(|||||||||||||||||g|*|||||||||||||||||gg}+||+ |	|	 jdu sJ || jdu sJ || jdu sJ || jdu sJ || jdu sJ || jd u sJ || jd u sJ || jdu sJ || jd u sJ || jd u sJ || jd u sJ || jd u sJ |!|! jd u s J |#|# jdu s*J |%|% jdu s4J |'|' jd u s>J |)|) jd u sHJ d S )/Nrf   Tr   r<   Fr   r   rT   rY   r3   z**r8   rM   rW   c                 S   sl   t | d }td|D ](}| | d }td|D ]}| d | }| | | }t||ddj|u s2J qqd S )Nr   r8   Fr   )lenr   r   r   )tabler]   rowbasecolr   r   r4   r4   r5   
test_tableC  s   z$test_Pow_is_zero.<locals>.test_tablezzo, zo2zzf, zf2r   zwf, wf2r   zxf, xf2r@   zyf, yf2zaf, af2r.   zbf, bf2r   zcf, cf2r   zdf, df2r   zzi, zi2zwi, wi2zxi, xi2r  zyi, yi2)r   r   zai, ai2extended_positivezbi, bi2)extended_nonnegativezci, ci2)extended_negativezdi, di2)extended_nonpositive)r   r   r   r   r   r   r   rO   r   r   r   ),rf   rF   r3   hTFN
pow_iszeror  zozo2zfzf2wfwf2xfxf2yfyf2afaf2bfbf2cfcf2dfdf2zizi2wiwi2xixi2yiyi2aiai2r   bi2cici2didi2pow_iszero_symr4   r4   r5   test_Pow_is_zero  s   
6    "  $&$$ " 
&&&&&&&&&&&&&&&&&&r<  c                  C   s  t ddd} t dddd}t dddd}t ddd	}t d
dd}| d|  jdu s+J d|  jdu s4J d|  jd u s=J d| jdu sFJ d| jdu sOJ |d jdu sXJ |d jd u saJ || jdu sjJ ||  jd u ssJ ||  jdu s|J ||  jdu sJ | |  jd u sJ | | jd u sJ d|  jdu sJ d|  jd u sJ d| jdu sJ d| jdu sJ |d jd u sJ |d jd u sJ ||  jd u sJ | |  jd u sJ | | jd u sJ | d jdu sJ tddd}|d jdu sJ |d jdu sJ |d jdu sJ t| jdu s#J tt| jdu s/J | | jdu s:J | | jdu sEJ | | jd u sPJ | | jd u s[J d S )Nr9   Tr@   r`   r   lr   r]   r^   r   rb   rN   r<   rW   Fr   rA   rT   )r   r   r   r   r   r   r   )r9   r`   r=  r]   r   r   r4   r4   r5   #test_Pow_is_nonpositive_nonnegative  sL   r>  c                  C   sV  t ddd} t ddd}t ddd}t ddd}t d	}tjdu s#J tjd
u s*J t jdu s2J t jd
u s:J dt jdu sCJ dt jd
u sLJ tt jd
u sUJ tt jdu s^J ||t  }t ddd
d}|| jd u stJ |d|  jd u sJ || jd u sJ |d|  jd u sJ |d jd
u sJ |d jsJ |d jd
u sJ |d jd
u sJ |d jd
u sJ |d jd
u sJ |d jd
u sJ |d jd
u sJ |d jdu sJ |d jd
u sJ |d jsJ | | jd u sJ | | jd u sJ || jd u sJ || jd u sJ || jd
u s#J || jdu s-J | | | jd
u s9J | | | jdu sEJ t dd
dd}t dddd}t ddd}	|| jd u scJ || jd
u smJ |	| jd u swJ t dd
dd}
t dddd}t ddd}	||
 jd
u sJ ||
 jd u sJ |	|
 jd u sJ d S )Nr   Tr@   rP   r.   i1rA   r   r9   FrT   jr   r<   rM   rN   rH   r   r>   r=   r3   )r>   r   r-   ni)r?   r=   )r   r   rC   rD   rE   )r   rP   r?  r   r9   rF   r@  r   r3   r-   rB  r4   r4   r5   test_Mul_is_imaginary_real  sd   rC  c                  C   s8  t dddd\} }t ddddd\}}t ddddd\}}t d	ddddd
\}}| | jdu s1J | | jdu s:J | | jdu sCJ | | jdu sLJ || jd u sUJ || jd u s^J || jdu sgJ || jdu spJ || jdu syJ || jdu sJ || jdu sJ || jdu sJ tdddd}tddd}	tddd}
tddd}t||	|
dd}t|	||
dd}t||	|
|dd}t|	||
|dd}t||
dd}t||
|dd}|jd u sJ |jd u sJ |jd u sJ |jd u sJ |jd u sJ |jd u s
J |jd u sJ |jd u sJ d S )Nzxz, yzT)r   antihermitianzxf, yfF)	hermitianrD  r   zxh, yh)rE  rD  r   zxa, ya)rE  rD  r   r   r3   )rE  r   r-   )rE  rB   r   )rD  r   )r   is_hermitianis_antihermitianr   r   )xzyzr   r"  xhyhxayar3   r-   rB   r   e1e2e3e4e5e6r4   r4   r5    test_Mul_hermitian_antihermitian  sD   rT  c                   C   sD   t t jdu s	J t d jdu sJ tddtd jdu s J d S )NFr8   rT   rI   T)r9   rX   is_comparabler	   r   r4   r4   r4   r5   test_Add_is_comparable+      rV  c                   C   sD   t t jdu s	J t d jdu sJ tdtdd jdu s J d S NFr<   r8   rT   Tr9   rX   rU  r   r	   r4   r4   r4   r5   test_Mul_is_comparable1  rW  rZ  c                   C   s@   t t jdu s	J t d jdu sJ ttddjdu sJ d S rX  rY  r4   r4   r4   r5   test_Pow_is_comparable7  s   r[  c                  C   sV   t ddtd } | jdu sJ | jdu sJ td } | jdu s"J | jdu s)J d S )Nr8   rT   rI   FT)r	   r   r   r   r   rR   r4   r4   r5   test_Add_is_positive_2=  s   r\  c                  C   sP   t ddd} | jdu sJ | jdu sJ | d jdu sJ | d jdu s&J d S )Nr   Tr   Fr8   )r   is_irrationalr   r   r4   r4   r5   test_Add_is_irrationalG  s
   r_  c                  C   sb   t ddddd} | jdu sJ t dttdd} | jd u sJ t tdttdd} | jd u s/J d S )Nr8   r<   rT   Fr   )r   r]  r   r   r   exprr4   r4   r5   test_Mul_is_irrationalQ  s   rb  c                  C   s,   G dd dt } td| d dksJ d S )Nc                   @   s   e Zd Zdd ZdS )z&test_issue_3531.<locals>.MightyNumericc                 S   s   dS )N	somethingr4   selfotherr4   r4   r5   __rtruediv__a  s   z3test_issue_3531.<locals>.MightyNumeric.__rtruediv__N)__name__
__module____qualname__rg  r4   r4   r4   r5   MightyNumeric`  s    rk  r8   r   rc  )tupler   )rk  r4   r4   r5   test_issue_3531]  s   rm  c                  C   s4   G dd d} |  }t d}|| || ksJ d S )Nc                   @   s$   e Zd Zdd Zdd Zdd ZdS )ztest_issue_3531b.<locals>.Fooc                 S   s
   d| _ d S )N      ?field)re  r4   r4   r5   __init__i  s   
z&test_issue_3531b.<locals>.Foo.__init__c                 S   s   | j | | _ d S r0   ro  rd  r4   r4   r5   __mul__l     z%test_issue_3531b.<locals>.Foo.__mul__c                 S   s   || j  | _ d S r0   ro  rd  r4   r4   r5   __rmul__o  rs  z&test_issue_3531b.<locals>.Foo.__rmul__N)rh  ri  rj  rq  rr  rt  r4   r4   r4   r5   Fooh  s    ru  r9   r   )ru  r   r9   r4   r4   r5   test_issue_3531bg  s   	rv  c                  C   s<   t d} t ddd}d|  | }|d|   }||ksJ d S )Nr3   r-   Tr.   r<   r   )r3   r-   rF   r   r4   r4   r5   	test_bug3v  s
   rw  c                  C   s   t ddddd} tddddd}tdddd}| dksJ | jt u s$J | jdks+J |dks1J |jtu s8J |jd	ks?J |d
ksEJ |jtu sLJ |jdksSJ d S )Nr   rT   r<   Fr   r8   rU   )r   rT   r<   )r8   rT   r<   rV   )rT   r<   )r   r   r   funcr   )r3   r-   rB   r4   r4   r5   test_suppressed_evaluation~  s   ry  c                  C   s  t ttdd} tttdd}t ||dd}t| | dd}|jddjtks'J |jddjdttfks5J | jtks>J | jdttdfksLJ |jddjtksWJ |jddj| dtj	 fksgJ | jtkspJ | jdtj	 ttdfksJ d S )NFr   r[   r<   rN   )
r   r9   r   rX   doitrx  r   r   r   r   r   r4   r4   r5   test_AssocOp_doit  s    &r{  c               
   C   sh   t  tttttg} ttfD ]"}| D ]}ttdd ||d W d    n1 s+w   Y  qqd S )NF)test_stacklevelr8   )r   r!   r9   r"   r   r   r(   r)   )nonexprtypobjr4   r4   r5   test_Add_Mul_Expr_args  s   r  c                  C   sx  t d  dt d ffksJ t d  dt d ffksJ t d  dt d ffks-J t d  dt d ffks<J t d  dt d ffksKJ t d  dt d ffksZJ tddd} | d  d| d ffksoJ | d  d| d ffks~J | d  d| d ffksJ | d  d| d ffksJ | d  d| d ffksJ | d  d| d ffksJ d S )Nr8   r<   rT   r]   Tr   )r9   as_coeff_mulr   )r]   r4   r4   r5   test_Add_as_coeff_mul  s   "r  c                   C   sZ   t tt  dt tt ffksJ t tt tt  t tt tt t  ks+J d S )Nr8   )r   r9   rX   r  r4   r4   r4   r5   #test_Pow_as_coeff_mul_doesnt_expand  s   &4r  c                   C   s   t tjt d dt d d ksJ tjt d t d t dks$J t dd t d t dks4J t dt d d t dksDJ t dtdd dksQJ d S )NrU   r<   rT   rI   )r   r   rO   r	   r4   r4   r4   r5   test_issue_3514_18626  s
   &"  r  c                   C   s  t ttfks
J tttfksJ t tt t tt t fks&J ttt t tt t jks8J t tt t tt t jksJJ ttt t tt t fks\J t tt t tt t fksnJ ttt t tt t fksJ d S r0   )r   	make_argsr9   r   rX   rf   r   r4   r4   r4   r5   test_make_args  s   $$$$$(r  c                  C   sH   dt  dt   dt  ksJ tddd} d|  d|   d|  ks"J d S )NrW   rY   rU   r   r8   r   )r9   r   r^  r4   r4   r5   test_issue_5126  s    r  c                  C   sP   t jt j} }| |  | |fksJ t jt j} }| |  | |fks&J d S r0   )r   r   r   as_content_primitiverO   )rB   rP   r4   r4   r5   "test_Rational_as_content_primitive  s   r  c                  C   s  t d  dt d fksJ dt  d  ddt  d fks J dt  d  dt d fks0J dt  d  dt d fks@J dt  dt   ddt  dt  fksVJ dt  dt   dt t fkshJ dt  dt   dt dt  fks|J dt  dt  t td    ddt  dt  t td   fksJ dt  dt  t td    ddt  t t td   fksJ dt  dt  t td    ddt  dt  t td   fksJ dt  d dt d   tdddt  dt  fksJ dt  d dt   tdddt  dt  fksJ dt  t } d|    d| fks.J d	|    dd	|  fks?J | d
9 } d|    d| fksRJ d S )Nr<   r8   rT   rU   rN   rV         @g      @r   rM   )r9   r  rX   rf   r	   rd   rP   r4   r4   r5   test_Add_as_content_primitive  s*   $  ,$(D@D
""r  c                   C   s   dt   dt fksJ t ddt     dt dt   fks J t ddt   dt  d d   dt dt  t d d  fksBJ ddt   d ddt    tj  tjdt d d  dt  d  d fksjJ d S )Nr<   r8   rT      rU      )r9   r  rX   r   rO   r4   r4   r4   r5   test_Mul_as_content_primitive  s   ("$$r  c                   C   sz   t t  dt t fksJ dt  d t  dtdt d ddt fks'J dt  d d  dt d d fks;J d S )Nr8   r<   Fr   rT   rI   )r9   rX   r  r   r4   r4   r4   r5   test_Pow_as_content_primitive  s
   ,r  c                  C   s,   t ddt dd} d|  jd| fksJ d S )Nr<   r8   Fr   )r   r9   r   )r|   r4   r4   r5   test_issue_5460  s   r  c                   C   s(   t t jdu s	J t t jdu sJ d S NF)r   r   r]  r   r4   r4   r4   r5   test_product_irrational  s   r  c                   C   s,   t tdt    t td t  ksJ d S )Nr8   r<   )r9   rX   rd   r4   r4   r4   r5   test_issue_5919  s   ,r  c                  C   s  t tdjt u s
J tt tju sJ t dddksJ t dddks%J t dddks.J t dddks7J tt d	dd
dt ksDJ dt t dtksOJ td t tdksZJ tt t ttkseJ tt tdtdidkstJ t t	dt	u s}J t dt	t	u sJ t t	t	t	u sJ t dtdksJ t
t t td W d    n1 sw   Y  tddd} tdddd}t| t jt u sJ | |  |  jt u sJ | | |  dksJ d|  | |  dksJ tdd }td d t dt d | dksJ t ddd| ksJ t ddtdksJ t dd}t|dr,|js.J t dd}t|dr=|js?J t dtdd}t|drQ|jsSJ t tddd}t|dre|jsgJ t tddtdd}t|dr||js~J td}td}| | ||fD ]}| | ||fD ]}t|| | |  sJ qqtdD ]*}tdD ]"}	t|ft|	fg}
t dt t d|
d| |	 d ksJ qqtddd}t t t||t t|ksJ 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s=J t t t| d| t t| ksQJ d D ]?}d D ]9}tdD ]1} t t t||t| i| | | ksuJ t t t| |t| i| |  | ksJ q]qWqSt dtd tddtd dtd  ksJ td!dd"}t d|d dksJ t d|d |d ksJ t d| d | d ksJ t d| d dksJ t |d |d dksJ t | d |d |d ks	J t |d | d | d ksJ t | d | d dks+J t |d |d jt u s:J td d t tdksHJ td# d t dt dksXJ ttd$d  d t ttdd  dkspJ t dt t dt }t d%t dt  dt }d&}t|jd |jd  tdtdi|k sJ t|jd |jd  tdtdi|k sJ td t dt ksJ tt t tt ksJ tt d t td t ksJ |dt  d dt  t |t d dt ksJ d't d(t  dt  dt d)t t ksJ dt dt  t dt dt  ks,J dt dt t  dt t dt ksBJ dt d*t t  tt dd*t  ksXJ d)t dt t  dt t d+t ksnJ d)t d*t t  tt d)d*t  ksJ d)t d,t t  tt d)d,t  ksJ d't dt  dt d)t t ksJ d't d-t  dt dt dt  ksJ d't d-t t  dt t ddt  ksJ dt dt  tksJ dt d td  dksJ ttd  td  td t td ksJ t d.t d%t d%t d/t t ks#J td0dd}d| t d| t  |t dt dt  ksCJ t d| ddksOJ td1ddd}t|| dksaJ t|d | dksnJ t|d |d  jt u s~J td2d
dd3 d2ksJ td1dd4}t|d | |d ksJ t|d |  dksJ tdd
dd  dksJ td1ddd5}t|d | dksJ td1dd6}t |ddksJ td1dd7}t |ddksJ td8 d9 jd d9ksJ t t td dd dt tdksJ t t td dtd  dt ttd  dks-J t t td dd ddks>J td:ddd\}}t d| dt |dksVJ t d;| | ddt d| | d ksmJ t d;| ddksyJ t tttttttt   ksJ tt tt t tttt ksJ dd<lm} dd=lm } td>dd\}}||||kf|dft! d sJ t"|||||kf|dft! }|ddi |||||kf|dft!d?  j# d S )@Nr8   rH   rT   r<   rY   rM   rW   ro   Fr   r   r`   Tr   r   r   gffffff
@rn  gffffff
gffffff?g?r   g333333?rJ   r   rm   rN   rV   r{   r@   )r   rW   r<   rN   rP   r.         @!   g?g+=r   r  rU   gףp=
?   gzG?rK   g      @rL   r   r]   izF  i{F  )r   )	compositerc   r^   rb   ip  i  zi jrI   )sinh)	Piecewisezx_r y_r      )$r   r9   rx  r   r   r   typerX   subsr   r'   ZeroDivisionErrorr   r   r
   is_Floatr	   is_Rationalr   r*   r]   r   r   absr   r   rz  rewriter   %sympy.functions.elementary.hyperbolicr  $sympy.functions.elementary.piecewiser  rf   r   r   )r`   r   point3rF   r2r3r   r@  _x_yrepsr{   rP   r3   r-   epsr]   r  r  x_ry_rra  r4   r4   r5   test_Mod  s  
(

$2 $$($(,44 "$  000"40*,,,,,(,0,*4 (4".**$"(r  c                  C   s  t ttdddddtsJ ttdddddttdddks#J ttdddddd	ks1J ttd
dd dddtd
dd dksGJ ttddd dddtddd dks]J ttddd dddtddd dkssJ tdddd} td| dd} t| ddksJ td| dd} t| ddksJ td| dd} t| ddksJ td| dd} t| ddksJ td| dd} t| ddksJ tdddd} t| ddd} t| ddksJ t| ddd} t| ddksJ t| ddd} t| ddksJ t| ddd} t| ddksJ t| ddd} t| ddks$J tdddd} t| | dd} t| ddks<J t| | dd} t| ddksMJ t| | dd} t| dd ks^J t| | dd} t| dd!ksoJ t| | dd} t| dd"ksJ d S )#Nr<   Fr   rT   rN   rm   rn   rq   r8   l    .Wv rV   i@B l    J)l   [, r   i  l   ;xc}l   1{0I iM  i+  l     g i  r   iW  i}  i`F  i     i  i8>  i$  ild  ig  i  )r   r   r   r   ru   r`  r4   r4   r5   test_Mod_Pow  sZ   (r  c                  C   sv   t ddd} t ddd}t dddd}tttjd u sJ t| |jd u s'J tt|jd u s1J t| |js9J d S )NrP   Tr   q1q2r   )r   r   r9   rX   r   )rP   r  r  r4   r4   r5   test_Mod_is_integer  s   r  c                  C   sr   t ddd} t dddd}| d jsJ t| djsJ t| |js$J t| | js-J t|| jd u s7J d S )Nr]   Tr   r`   r   rT   rY   )r   r   r   r   )r]   r`   r4   r4   r5   test_Mod_is_nonposneg  s   r  c                  C   s   t ddd} | | d  }|j|d j  kr| d jks!J  J t ddd}td|  jdu s2J td|  | jdu s?J d S )Nr   Fr   r<   r8   r   )r   is_commutativer   )r   eqr   r4   r4   r5   test_issue_6001  s   r  c                  C   s,  ddl m}  tddd}td}|jsJ |jd u sJ tjjd u s$J || jdu s-J || jd u s6J d| | jdu sAJ d| jdu sJJ d| jdusSJ | d| jdu s^J td	dd}|| d |d |d  kstJ d| d d
|d  ksJ || |  || ||  ksJ d S )Nr   )
polar_liftrP   T)polarr9   r<   rW   r   rN   )$sympy.functions.elementary.complexesr  r   is_polarr   r   rd   )r  rP   r9   r   r4   r4   r5   
test_polar  s    
 (r  c                  C   sJ   t ddddtj} }| |ksJ || ksJ | |krJ || kr#J d S )Nr8   r<   Fr   )r   r   r   r2   r4   r4   r5   test_issue_60403  s
   r  c                   C   s|   t ttdttdt ttdttd ksJ t ttdttddks+J t tdttdtfdks<J d S )Nr8   r<   r   )r   comparer   r9   	frozensetr4   r4   r4   r5   test_issue_6082;  s
    &r  c                   C   s   t d t  t d ksJ t t d  t d ksJ t t d  t d ks$J t d t d  t d ks2J ddt   dt   ddt   ksDJ dt  ddt    ddt   ksVJ dt  ddt    ddt   kshJ ddt   ddt    ddt   ks|J d S )	Nr   rn  r  r  g      ?r  g      @r<   r   r4   r4   r4   r5   test_issue_6077E  s   $$$,r  c                  C   sv   t ddd} t ddd\}}t ddd}|t t u sJ || t tu s'J | t tu s/J |t tt ks9J d S )NrP   Tr.   zn,mr   x_imrA   )r   r   r   )rP   r]   r   r  r4   r4   r5   test_mul_flatten_ooQ  s   r  c                  C   sZ   t tt   } t tt   }| | tu sJ | | tu sJ tdddd} | |  dks+J d S )Nr<   rT   Fr   r   )r   r   r   r   r2   r4   r4   r5   test_add_flatten[  s   r  c                  C   s2  dt  tt  d ddt  tt  d  dksJ tddd\} }}d| | d	 d
|| d	  ks8J d| | d	 d|| d	  ksJJ d| | d d|| d  ks\J tdt  dtt   kskJ tdt  dtt  ksyJ dt  t |  | d dt d  td  | | d  ksJ d S )NrW   ro   r<   gu溆a"@zA,B,CFr   r   rT   g       @       g       rN   r  rn  )r9   rX   r]   r   r   r   r4   r4   r5   test_issue_5160_6087_6089_6090k  s   :$$$@r  c                   C   s  t ttdt tdksJ t td d dksJ t tddt dks)J t tddt dks6J t td	dd
ksAJ t tdddksLJ ttdddksWJ ttdddksbJ ttd	dd
ksmJ ttdddksxJ ttddtddsJ ttddtddsJ t dtd dksJ t td dksJ t dtd  dksJ t tddddt dksJ t tddddt dksJ t tdtdd dddksJ t	t
dd  t	t
dd  t dtdd  tdd  d ksJ d S )!Nr   r   r<   z#1.123456789012345678901234567890e20 l   
^8a z#1.123456789012345678901234567890e25l   y_2U*20)z#1.123456789012345678901234567890e35l    0c3@dWfXtD
 123456789012345678901234567890e5l   @/c |,0z	123000e-2z1230.00123000e212300000r8   z.9999999999999999999999999g@xDr   g333333?rW   Fr   gro   z.99999999999999999c                   S   s   t tS r0   )floatr9   r4   r4   r4   r5   rv     s    z&test_float_int_round.<locals>.<lambda>c                   S   s   t tdS )NrM   )r  r   r4   r4   r4   r5   rv     s    l   
>V3&Z
 l   
>V3&Z
 )intr  r   r   r   r   r6   r	   r   r'   ry   r   r    r4   r4   r4   r5   test_float_int_roundz  sN    "r  c                   C   sV   t dtdd ttdd tddddgtdddtdd gg d fks)J d S )NrT   r8   rV   r<   Fr   rM   )r   flattenr	   r   r4   r4   r4   r5   test_issue_6611a  s
   r  c                  C   s   t d } t| ddd} t| ddd} t| j t d ksJ t d } t| ddd} t| ddd} t| j dt  ks:J tdt d dd} d|  tdt d ddksRJ |  tdt d ddks`J d S )	Nr8   r<   Fr   rH   rI   rW   r   )r9   r   r   r   r  r4   r4   r5   test_denest_add_mul  s    r  c                  C   sH   t tt d } | d t |  t |  t | d  td t ks"J d S )NrT   r<   )r   r   r   r9   rX   r  r4   r4   r5   test_mul_coeff  s   8r  c                  C   s  t ddd} t dd}t ddd}t ddd}t dd}| | | }|jd u s)J |jd u s0J | | }|jd u s;J |jdu sBJ | | | }|jdu sOJ |jd u sVJ | | | | }|jd u seJ |jd u slJ dd }tg d	gd
  D ]6\}}t d|d}	t d|d}
t|	|
dd}||	|
| t d|d}	t d|d}
t|
|	dd}||	|
| qydd }tg d	gd
  D ]:\}}t d|dd}	t d|dd}
t|	|
dd}||	|
| t d|dd}	t d|dd}
t|
|	dd}||	|
| qd S )NTF)r>   r   r  rA  rA   c                 S   s   | j r|jr|jr|j sJ d S |jd u sJ |jr-| j r$|j s"J d S |j d u s+J d S |jdu rG| j d u r@|j d u s>J d S |j du sIJ d S d S r  r   r   r   rf   r-   rF   r4   r4   r5   test  s   

z%test_mul_zero_detection.<locals>.test)TFNr<   rf   r  r   r  r   r   c                 S   s0   | j r|js|jd u sJ d S |jdu sJ d S )NTr  r  r4   r4   r5   r    s   )r   r   r-   )r   r   )r   rC   r   r,   r   )r   r   rB   c2r   rF   r  izibrf   r-   r4   r4   r5   test_mul_zero_detection  sL   

r  c                  C   sl   t dd} t dd}t| |dd}|jd u sJ |jd u sJ t|| dd}|jd u s-J |jd u s4J d S )NTr   Fr  r   )r   r   is_extended_positiverF  )zerinfrF   r4   r4   r5   test_Mul_with_zero_infinite	  s   

r  c                  C   s   t d\} }td|   d|  t  tu sJ |t |t  tu s"J d| |  d| |   d| |  d| |    }||| tu sDJ d S )Na brT   r8   )r   r   r   r   r  )r3   r-   ra  r4   r4   r5   #test_Mul_does_not_cancel_infinities	  s
    0r  c                  C   s   t d\} }dt t jsJ | | t  jsJ | d t js"J dt t jdu s-J dt t }dt |  tu s?J d S )Nr  r8   F)r   r   r   r   r   r   rd   )r3   r-   rf   r4   r4   r5   %test_Mul_does_not_distribute_infinity	  s   r  c                  C   s   ddl m}  tdtd tddtd   tddtd   }|jdu s)J td}|jdu s4J d	d
| dt d  td  tdt d  tdt d  tdd
dtdt d d	     }|jdusmJ td}|jdu sxJ d S )Nr   )tanr8   rT   r   rU   Fz-2**(1/3)*(3*sqrt(93) + 29)**2 - 4*(3*sqrt(93) + 29)**(4/3) +
        12*sqrt(93)*(3*sqrt(93) + 29)**(1/3) + 116*(3*sqrt(93) + 29)**(1/3) +
        174*2**(1/3)*sqrt(93) + 1678*2**(1/3)r<   rY      Z      rN   Ta,  9*(3*sqrt(93) + 29)**(2/3)*((3*sqrt(93) +
        29)**(1/3)*(-2**(2/3)*(3*sqrt(93) + 29)**(1/3) - 2) - 2*2**(1/3))**3 +
        72*(3*sqrt(93) + 29)**(2/3)*(81*sqrt(93) + 783) + (162*sqrt(93) +
        1566)*((3*sqrt(93) + 29)**(1/3)*(-2**(2/3)*(3*sqrt(93) + 29)**(1/3) -
        2) - 2*2**(1/3))**2)(sympy.functions.elementary.trigonometricr  r   r   r   r   r   )r  rf   r4   r4   r5   test_issue_8247_8354%	  s   8>"r  c                  C   sD   t ddd\} }| | jsJ dt dt d  }|jd u s J d S )Nzx yTr   rW   r8   r<   )r   r   r   )r9   rX   rF   r4   r4   r5   test_Add_is_zero8	  s   r  c                   C   s    t td  ttfksJ d S )Nr<   )r    r   r   r   r4   r4   r4   r5   test_issue_14392A	  s    r  c                   C   s^   t tttt tt fksJ t tdtd td fksJ t dtdt dt fks-J d S )NrT   )divmodr9   rX   r4   r4   r4   r5   test_divmodE	  s   "r  c                  C   s   t t  t  t ksJ t  t  t t ksJ dt   dt  ks#J dt   dt  ks.J dt   dt  ks9J dt   dt  ksDJ td t t  } | jrZ| jdt t fks\J W d    d S 1 sgw   Y  d S )Nrn  r  r   r  FrM   )r9   rX   r#   r   r   r  r4   r4   r5   test__neg__K	  s   

"r  c                   C   s   t ttdtu s
J d S )Nr   )r   r   r   r4   r4   r4   r5   test_issue_18507W	  s   r  c                  C   s(   t tt tt dd} | jd u sJ d S )NFr   )r   r-   r   r   rR   r4   r4   r5   test_issue_17130[	  s   r  c                  C   s`   t  tttdt ttd  tttdd ttdd    t } | ds.J d S )NrH   r<   )r   r   r   r+   r   r   r   roundrR   r4   r4   r5   test_issue_21034`	  s   Nr  c                  C   s   ddl m}  ddlm}m}m} |d}|d|}|d|g\}}|||| }| d| ks2J tt }| d| ks?J | dd	}	|	t }| d| ksQJ tt|	tfD ]}
t	|
d
di}| d| ksjJ qXd	t	dttdd dt d	 ks}J d S )Nr   )AccumBounds)TensorIndexTypetensor_indicestensor_headsLr   zA BrM   r8   r<   r   Fr   rN   )
!sympy.calculus.accumulationboundsr  sympy.tensor.tensorr  r  r  r   r9   r%   r   )r  r  r  r  r  r   r   r   rF   r3   r   r4   r4   r5   test_issue_22021e	  s    

(r  c                   C   s   t t  t t ksJ d S r0   )r   r9   r4   r4   r4   r5   test_issue_22244y	  s   r  c                  C   s  ddl m}  tddd}| tt dggd  D ]4\}}||  kr%dkr(n nq|t|  }|d|  tju s9J ||  tju sCJ tt	||sKJ qdttt   tju sYJ d	d
 t
dD \}}d|t|   tju sqJ ddt|   tju s~J d|td   tju sJ d S )Nr   )cartesrF   Tr  rT   r<   r8   c                 S   s   g | ]}t d d dqS )T)infiniter   )r   ).0_r4   r4   r5   
<listcomp>	  s    z$test_issue_22453.<locals>.<listcomp>)sympy.utilities.iterablesr  r   r   r   r   ComplexInfinityr   r$   r   r   )r  rF   r3   r-   r   r   r4   r4   r5   test_issue_22453}	  s   r  c                   C   sL   dt d   ddt d  fksJ dt d   ddt d  fks$J d S )Nr   r<   r8   )r9   r  r4   r4   r4   r5   test_issue_22613	  s   $(r  N)sympy.core.addr   sympy.core.basicr   sympy.core.modr   sympy.core.mulr   sympy.core.numbersr   r   r   r	   r
   r   r   r   r   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr   r   r   sympy.core.sympifyr   (sympy.functions.combinatorial.factorialsr   r  r   r   r   &sympy.functions.elementary.exponentialr   r   #sympy.functions.elementary.integersr   (sympy.functions.elementary.miscellaneousr   r   r  r   r   r    sympy.polys.polytoolsr!   sympy.sets.setsr"   r   r#   sympy.core.exprr$   r  r%   sympy.testing.pytestr&   r'   r(   sympy.utilities.exceptionsr)   sympy.core.randomr*   r+   	itertoolsr,   r3   rB   r9   rX   rf   r-   r6   r;   rG   rQ   rS   rj   rk   rl   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>  rC  rT  rV  rZ  r[  r\  r_  rb  rm  rv  rw  ry  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  r  r4   r4   r4   r5   <module>   s   ,2	F
1*=

 g]TOH@,4'}4?&


		 )5



%I	
	