
    oVhe                         d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
 d dl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m Z  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+ d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d  Z=d! Z>d" Z?d# Z@d$ ZAd% ZBe+d&        ZCd' ZDd( ZEd) ZFd* ZGd+ ZHe+d,        ZId- ZJd. ZKd/ ZLd0 ZMd1 ZNd2 ZOd3 ZPd4 ZQd5 ZRd6 ZSd7 ZTd8 ZUd9 ZVd: ZWd; ZXd< ZYd= ZZd> Z[d? Z\d@ Z]dA Z^dB Z_dC Z`dD Zae+dE        ZbdF ZcdG ZddH ZedI ZfdJ ZgdK ZhdL ZidM Zje+dN        ZkdO ZldP ZmdQ ZndR ZodS ZpdT ZqdU ZrdV ZsdW ZtdX ZudY ZvdZ Zwd[ Zxd\ Zyd] Zzd^ Z{d_ Z|d` Z}ya)b    )Mod)Ioopi)	factorial)explog)sqrt)asinsin)simplify)SymbolSRationalIntegerDummyWildPow)assumptionscheck_assumptionsfailing_assumptionscommon_assumptions_generate_assumption_rules$_load_pre_generated_assumption_rules)InconsistentAssumptions)seed)Permutation)PermutationGroup)raisesXFAILc                      t        ddd      } | 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 y )NxTrealintegerF)r   is_real
is_integeris_imaginaryis_noninteger	is_numberr"   s    Q/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_assumptions.pytest_symbol_unsetr-      sj    st,A99<<4>>U"""??e###;;%    c                     t        d      } | 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 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 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 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 sJ | j,                  du sJ y )Nr   TFr   is_commutativer'   is_rationalis_algebraicis_transcendentalr&   
is_complexr)   is_irrationalr(   is_positiveis_negativeis_nonpositiveis_nonnegativeis_evenis_odd	is_finiteis_infiniteis_comparableis_primeis_compositer*   zs    r,   	test_zerorD      s   
At###<<4==D   >>T!!!%'''99<<4??e###??e###>>U"""==E!!!==E!!!t###t###9988u;;$==E!!!??d"""::>>U""";;$r.   c                     t        d      } | 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 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 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 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 sJ | j,                  du sJ y )N   TF)r   r1   r'   r2   r3   r4   r&   r5   r)   r6   r(   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r*   rA   rB   s    r,   test_onerG   7   s   
At###<<4==D   >>T!!!%'''99<<4??e###??e###>>U"""==D   ==E!!!u$$$t###9988t;;$==E!!!??d"""::;;$>>U"""r.   c                     t        d      } | 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 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 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 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 sJ | j,                  du sJ y )NTFr0   rB   s    r,   test_negativeonerJ   Q   s   At###<<4==D   >>T!!!%'''99<<4??e###??e###>>U"""==E!!!==D   t###u$$$9988t;;$==E!!!??d"""::>>U""";;$r.   c                     t         j                  } | 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 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 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 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 sJ | j.                  du sJ | j0                  du sJ | j2                  du sJ | j4                  du sJ | j6                  du sJ | j8                  du sJ | j:                  du sJ | j<                  du sJ y NTF)r   Infinityr1   r'   r2   r3   r4   is_extended_realr&   r5   r)   r6   r(   
is_nonzeror7   r8   r9   r:   is_extended_nonzerois_extended_positiveis_extended_negativeis_extended_nonpositiveis_extended_nonnegativer;   r<   r=   r>   r?   r@   rA   r*   )r   s    r,   test_infinityrU   k   s/   	
B$$$==E!!!>>U"""??e###5((($&&&::==E!!!t###u$$$??e###==E!!!>>U""">>U"""%%%%%%!!T)))""d***""e+++%%...%%---::99<<5   >>T!!!t###;;%??e###<<4r.   c                     t         j                  } | 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 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 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 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 sJ | j.                  du sJ | j0                  du sJ | j2                  du sJ | j4                  du sJ | j6                  du sJ | j8                  du sJ | j:                  du sJ | j<                  du sJ y rL   )r   NegativeInfinityr1   r'   r2   r3   r4   rN   r&   r5   r)   r6   r(   rO   r7   r8   r9   r:   rP   rQ   rR   rS   rT   r;   r<   r=   r>   r?   r@   rA   r*   )mms    r,   test_neg_infinityrY      s1   	
		B$$$==E!!!>>U"""??e###5((($&&&::==E!!!t###u$$$??e###==E!!!>>U""">>U"""%%%%%%!!T)))""e+++""d***%%---%%...::99<<5   >>T!!!t###;;%??e###<<4r.   c                      t         j                  } | j                  du sJ | j                  du sJ | j                  du sJ y NF)r   ComplexInfinityr5   r&   r@   )zoos    r,   test_zoor^      sC    


C>>U""";;%<<5   r.   c                     t         j                  } | j                  du sJ | j                  J | j                  J | j
                  J | j                  J | j                  J | j                  J | j                  J | j                  J | j                  J | j                  J | j                  J | j                  J | j                  J | j                   J | j"                  J | j$                  J | j&                  J | j(                  du sJ | j*                  J | j,                  J | j.                  du sJ y rL   )r   NaNr1   r'   r2   r3   r4   r&   r5   r)   r6   r(   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   r*   )nans    r,   test_nanrb      s   
%%C%%%>>!!!??"""###  (((;;>>!!!$$$$$$###??"""??"""%%%%%%;;::==   ??"""%%%<<###==D   r.   c                     t        dd      } | 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 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 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 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 sJ t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ | j                  du sJ t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ | j                  du sJ t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ | j                  du sJ y )N      TFrF      )r   r1   r'   r2   r3   r4   r&   r5   r)   r6   r(   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rs    r,   test_pos_rationalri      s   AAt###<<5   ==D   >>T!!!%'''99<<4??d"""??e###>>U"""==D   ==E!!!u$$$t###9988u;;$==E!!!??d"""::>>U"""AAu$$$==D   ==E!!!t###AA==E!!!==D   u$$$t###AAt###==D   ==E!!!u$$$r.   c                  d   t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ | j                  du sJ t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ | j                  du sJ t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ | j                  du sJ t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ | j                  du sJ y )Nre   FTrI   rd   )r   r7   r9   r8   r:   rg   s    r,   test_neg_rationalrm      s^   QA==E!!!t###==D   u$$$QAt###==E!!!==D   u$$$QA==D   ==E!!!t###u$$$QAu$$$==E!!!==D   t###r.   c                     t         j                  } | 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 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 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 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 sJ y rL   )r   Pir1   r'   r2   r3   r4   r&   r5   r)   r6   r(   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   s    r,   test_pirp     s   	At###<<5   ==E!!!>>U"""$&&&99<<4??d"""??d""">>U"""==D   ==E!!!u$$$t###9988u;;$==E!!!??d"""::>>U"""r.   c                     t         j                  } | 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 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 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 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 sJ y rL   )r   Exp1r1   r'   r2   r3   r4   r&   r5   r)   r6   r(   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   s    r,   test_Ers   *  s   	At###<<5   ==E!!!>>U"""$&&&99<<4??d"""??d""">>U"""==D   ==E!!!u$$$t###9988u;;$==E!!!??d"""::>>U"""r.   c                     t         j                  } | 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 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 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 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 sJ y rL   )r   ImaginaryUnitr1   r'   r2   r3   r4   r&   r5   r)   r6   r(   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   s    r,   test_Irv   C  s   	At###<<5   ==E!!!>>T!!!%'''99<<4??e###??e###>>T!!!==E!!!==E!!!u$$$u$$$9988u;;$==E!!!??e###::>>U"""r.   c                     t        dd      } | 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 sJ | j                  du sJ | j                  du sJ | j                  J | j                  J | j                  J | j                  J | j                  J y )NaFr$   r   r&   r'   is_zeror8   r7   r:   r9   rO   rR   rQ   rT   rS   rP   rx   s    r,   test_symbol_real_falser}   \  s    sA99<<5   99==E!!!==E!!!u$$$u$$$<<5   !!)))!!)))$$,,,$$,,,  (((r.   c                     t        dd      } | 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 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 sJ | j                  du sJ | j                  du sJ y )Nrx   Fextended_realrz   r|   s    r,   test_symbol_extended_real_falser   q  s   s%(A99<<5   99==E!!!==E!!!u$$$u$$$<<5   !!U***!!U***$$---$$---  E)))r.   c                     t        dd      } | 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 sJ | j                  du sJ | j                  du sJ y )Nrx   T	imaginaryF)	r   r&   r'   r8   r7   r:   r9   r{   rO   r|   s    r,   test_symbol_imaginaryr     s    sd#A99<<5   ==E!!!==E!!!u$$$u$$$99<<5   r.   c                      t        dd      } | j                  du sJ | j                  sJ | j                  du sJ | j                  sJ | j
                  du sJ | j                  du sJ | j                  du sJ y )Nr"   TzeroF)r   r7   r9   r8   r:   r{   rO   r=   r+   s    r,   test_symbol_zeror     s    sA==E!!!==E!!!99 <<5   ;;$r.   c                      t        dd      } | 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 sJ y Nr"   TpositiveFr   r7   r9   r8   r:   r{   rO   r+   s    r,   test_symbol_positiver     s~    sT"A==D   u$$$==E!!!t###99<<4r.   c                      t        dd       } | 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 sJ y r   r   r+   s    r,   test_neg_symbol_positiver     s    	d	##A==E!!!t###==D   u$$$99<<4r.   c                      t        dd      } | j                  du sJ | j                  du sJ | j                  J | j                  J | j
                  J | j                  J y Nr"   TnonpositiveFr   r+   s    r,   test_symbol_nonpositiver     sv    s%A==E!!!t###==   ###99<<r.   c                      t        dd       } | j                  J | j                  J | j                  du sJ | j                  du sJ | j
                  J | j                  J y r   r   r+   s    r,   test_neg_symbol_nonpositiver     sy    		&&A==   ###==E!!!t###99<<r.   c                      t        dd      } | j                  du sJ | j                  J | j                  J | j                  J | j
                  J | j                  J y Nr"   Fr   r   r+   s    r,   test_symbol_falsepositiver     st    sU#A==E!!!###==   ###99<<r.   c                      dt        dd      z  } | j                  du sJ | j                  J | j                  J | j                  J | j
                  J | j                  J y )N   r"   Fr   r   r+   s    r,   test_symbol_falsepositive_mulr     s{     	
&u
%%A==E!!!###==   ###99<<r.   c                  >    t        ddd      } |  j                  J y )NixT)infiniter   )r   rQ   )r   s    r,   test_symbol_infinitereal_mulr     s$    	t4	8BC%%---r.   c                      t        dd       } | j                  J | j                  J | j                  du sJ | j                  J | j
                  J | j                  J y r   r   r+   s    r,   test_neg_symbol_falsepositiver     sw    	e	$$A==   ###==E!!!###99<<r.   c                      t        dd       } | j                  du sJ | j                  J | j                  J | j                  J | j
                  J | j                  J y )Nr"   Fnegativer   r+   s    r,   test_neg_symbol_falsenegativer     sy     
e	$$A==E!!!###==   ###99<<r.   c                      t        ddd      } | j                  du sJ | j                  du sJ | j                  J | j                  J | j
                  J | j                  J y Nr"   FT)r   r$   r   r+   s    r,   test_symbol_falsepositive_realr     sx    sU.A==E!!!t###==   ###99<<r.   c                      t        ddd       } | j                  J | j                  J | j                  du sJ | j                  du sJ | j
                  J | j                  J y r   r   r+   s    r,   "test_neg_symbol_falsepositive_realr     s{    	e$	//A==   ###==E!!!t###99<<r.   c                      t        dd      } | j                  du sJ | j                  J | j                  J | j                  du sJ | j
                  du sJ | j                  J y )Nr"   Fnonnegativer   r+   s    r,   test_symbol_falsenonnegativer     sx    s&A==E!!!###==   u$$$99<<r.   c                      t        dd       } | j                  J | j                  du sJ | j                  du sJ | j                  J | j
                  du sJ | j                  du sJ y )Nr"   Fr   Tr   r+   s    r,    test_neg_symbol_falsenonnegativer     s}    		''A==   u$$$==E!!!###99<<4r.   c                      t        ddd      } | 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 sJ y Nr"   FT)r   r$   r   r+   s    r,   !test_symbol_falsenonnegative_realr   #  s    sD1A==E!!!t###==D   u$$$99<<4r.   c                      t        ddd       } | 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 sJ y r   r   r+   s    r,   %test_neg_symbol_falsenonnegative_realr   -  s    	T	22A==D   u$$$==E!!!t###99<<4r.   c                     t         j                  j                  du sJ t        d      j                  du sJ t        d      j                  du sJ t         j                  j                  du sJ t         j                  j                  du sJ t        d      j                  du sJ t        d      j                  du sJ t        d      j                  du sJ y )NFr   T   re   )r   NegativeOner@   ZeroOne r.   r,   
test_primer   7  s    ==!!U***R5>>U"""R5>>U"""66??e###55>>U"""Q4==D   R5>>T!!!Q4==E!!!r.   c                  ,   t         j                  j                  du sJ t        d      j                  du sJ t        d      j                  du sJ t         j                  j                  du sJ t        d      j                  du sJ t        d      j                  du sJ t        d      j                  du sJ t	        ddd      } | j                  J | d	z   j                  J t	        ddd
      } | j
                  du sJ | j                  du sJ y )NFr   r   r   r   re   T)r%   r   primerF   )r   evenr   )r   r   rA   r   r   r'   r+   s    r,   test_compositer   B  s   ==%%...R5&&&R5&&&66%'''Q4%%%R5&&&Q4$$$dT7A>>!!!E'''t$e4A<<4>>T!!!r.   c                     t        dd      } | 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 sJ t        dd      } | j                  du sJ | j                  J | j                  J | j                  J | j
                  J | j                  J y )Nr"   Tr   F)r   r@   r'   r7   r8   r9   r:   r+   s    r,   test_prime_symbolr   R  s    s$A::<<4==D   ==E!!!u$$$t###s% A::<<==   ==   ######r.   c                     t        dd      } | j                  J t        dd      } | 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 sJ y )Nr"   TcommutativeF)r   r5   r'   r2   r3   r6   r&   r+   s    r,   test_symbol_noncommutativer   d  s    s%A<<s&A<<5   ==E!!!>>U"""??e###99<<5   r.   c                     t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ t        ddd      } | j                  du sJ | j                  du sJ | j
                  du sJ | j                  J | j                  du sJ t        ddd      } | j                  du sJ | j                  du sJ | j                  du sJ | j
                  J | j                  du sJ t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ | j                  du sJ t        dd      } | j                  du sJ | j                  J | j                  J | j                  J t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ | j                  du sJ t        dd      } | j                  du sJ | j                  J | j                  J | j                  J t        ddd      } | j                  du sJ | j                  du sJ | j                  du sJ t        ddd      } | j                  du sJ | j                  du sJ | j                  du sJ t        dd	      } | j                  du sJ | j                  du sJ t        dd	      } | j                  J | j                  J t        dd
      } | j                  du sJ | j                  du sJ t        dd
      } | j                  J | j                  J t        t              5  d| _        d d d        t        dd      } | j                  du sJ t        dd      } | j                  du sJ | j                  du sJ | j                  du sJ y # 1 sw Y   dxY w)Nr"   Tr%   r%   r   F)r%   r   )oddr   rational
irrational	algebraic)transcendental)r   r'   r&   r=   r:   r8   r7   r9   r<   r;   r   AttributeErrorr4   r3   r2   r+   s    r,   test_other_symbolr   q  s$   sD!A<<499;;$sDd3A<<4t###==E!!!==   ;;$sDd3A<<4t###==E!!!==   ;;$sA88t99<<4;;$sA88u99<<;;sA9988u<<4;;$sA9988<<;;sDd3A<<4t###;;$sDd3A<<4t###;;$sT"A99;;$sU#A99;;st$A99;;$su%A99;;		 	 	sd#A%'''s4(A>>U"""==E!!!<<5    s   O  O	c                      ddl m}  ddlm}m} d|dz  z  } | d      5  |j                  |||z   i      }|j                  j                  J 	 d d d        y # 1 sw Y   y xY w)Nr   evaluate)r"   hr      F)sympy.core.parametersr   	sympy.abcr"   r   xreplacer   r2   )r   r"   r   ffhs        r,   test_evaluate_falser     s_     /	1a4A	% *ZZAaC!vv!!)))* * *s   /AA!c                      t        d      } t        d      }| |z   }|| z   }|j                   t        |      }t        |      }||k(  sJ y)zcatch: hash instabilityr"   yN)r   r?   hash)r"   r   a1a2h1h2s         r,   test_issue_3825r     sL    sAsA	
QB	
QB	bB	bB8O8r.   c                  n    dt        dd      z  dt        t        d      z  z
  z  } | j                  dv sJ y )NrI   rF   rd   )TN)r   r   r
   r&   rB   s    r,   test_issue_4822r     s5    	hq!na!DG)m,A99$$$r.   c                  z    t        dd      } t        ddd      }t        |       t        |      k(  sJ | |k(  sJ y)z/seemingly different typeinfo, but in fact equalr"   Tr   F)r%   r   Nr   r   )x1x2s     r,   test_hash_vs_typeinfor     s?     
$	B	Tu	-B8tBx8O8r.   c                  t    t        d      } t        dd      }| |k7  sJ t        |       t        |      k7  sJ y)z"different typeinfo should mean !eqr"   Tr   Nr   )r"   r   s     r,   test_hash_vs_typeinfo_2r     s:     	sA	$	B7N77d2hr.   c                      dt         j                  z   } t        |       }| j                   | j                  du sJ |t        |       k(  sJ | j	                  d      }t        |      }| |k(  sJ ||k(  sJ y)z'catch: different hash for equal objectsrF   T)trigN)r   ro   r   r7   expand)rx   habhbs       r,   test_hash_vs_eqr     st    	ADDA	aBMM==D    a== 	
dA	aB6M68O8r.   c                     t        ddd      } t        ddd      }t        ddd      }t        ddd      }t        dd	      }t        d
      }t        dd      }| |z   j                  J | |z   j                  J ||z   j                  J | |z   j                  J | |z   j                  J ||z   j                  J | |z   j                  du sJ ||z   j                  du sJ | |z   j                  du sJ ||z   j                  du sJ |t        j
                  z
  j                  J ||z   j                  sJ | |z   j                  sJ ||z   j                  J y )NnT)extended_negativer   )extended_nonnegativer   )extended_nonpositiver   p)extended_positiver   Fr   finiter"   xfr  )r   r   rQ   rR   r   rM   )r   nnnpr  rh   r"   r  s          r,   test_Add_is_pos_negr    s   sdT:A	$	>B	$	>BsdT:AD/AsA	T	"BE''///E''///E''///E''///E''///E''///F((E111F((D000F((D000F((E111

N00888F((((F((((E''///r.   c                  T    t        d      } t        | z  t        z   j                  sJ y )NTr   )r   r   r(   )r	  s    r,   test_Add_is_imaginaryr  $  s#    	4	 BbD1H""""r.   c                  0   t        dd      } t        dd      }t        dd      }t        dd      }t        d      }| |z   j                  sJ ||z   j                  J | |z   j                  du sJ | |z   j                  J ||z   j                  J y )Nrx   Tr   naFnbr"   r   r3   )rx   r   r  r  r"   s        r,   test_Add_is_algebraicr  )  s    sd#Asd#A		&B		&BsAEG!!)))F  E)))E'''F  (((r.   c                  r   t        dd      } t        dd      }t        dd      }t        ddd      }t        d	d      }t        d
      }| |z  j                  du sJ ||z  j                  J | |z  j                  J ||z  j                  du sJ | |z  j                  J ||z  j                  J y )Nrx   Tr   r   r  Fan)r   nonzeror  r"   r  )rx   r   r  r  r  r"   s         r,   test_Mul_is_algebraicr  6  s    sd#Asd#A		&B	d	3B		&BsAaC%%%rE'''bD&&&rE5(((aC%%%qD&&&r.   c                     t        dd      } t        d| d      j                  sJ t        d| d      j                  sJ t        dd      }t        d	dd
      }t        dd      }t        ddd      }t        ddd      }t        dd      }t        d      }|dz  j                  du sJ ||z  j                  J ||z  j                  du sJ ||z  j                  J ||z  j                  J ||z  j                  du sJ ||z  j                  du sJ || z  j                  J t        dt        d      d      j                  du sJ t        t        j
                  t        d      d      j                  du sJ t        ddd      }t        dd      }	||	z  j                  J ||	z  j                  J t        dz  j                  du sJ t        dd      }t        |z  j                  du sJ y )NeTr   rF   Fr   r   rx   azf)r   r   r  ia)r   r   ibrh   r   r"   r   rd   t)r$   r   r   r   r   )r   r   r3   r
   r   GoldenRatior'   r   )
r  rx   r  r  r  r  rh   r"   r  r   s
             r,   test_Pow_is_algebraicr  E  s   sd#Aq!e$1111q!e$1111sd#A
$U
3C		&B		6B		6BsT"AsAqD$&&&qD&&&F  D(((qD&&&E'''E4'''F  E)))qD&&& q$q'E*775@@@q}}d1g6CCuLLL 	sd3AsD!AqD&&&qD$$$E5(((sAE4'''r.   c                  8   t        ddd      } t        ddd      }| |z  j                  J | dz   |dz   z  j                  du sJ | dz   |dz   z  j                  du sJ t        dd      } | dz   |dz   z  j                  J | dz   |dz   z  j                  J y )Nr"   Tr   r%   r   rF   Fr   r   r@   rA   r"   r   s     r,   test_Mul_is_prime_compositer#  l  s    sT40AsT40AaC>>!!!cAaC[##u,,,cAaC[''4///sT"AcAaC[##+++cAaC[''///r.   c                     t        dd      } t        dd      }t        j                  t        d      z  j                  du sJ t        j                  | z  j                  du sJ t        j                  t        d      z  j                  du sJ t        j
                  t        j
                  z  j                  du sJ |t        d      z  j                  du sJ |t        d      z  j                  J t        dz  j                  du sJ t        d	z  j                  du sJ t        d
d      }t        ddd      }t        ddd      }t        dd      }t        dd      }||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ y )NrC   Try   wr   r   rd   Fre   r  r   q)r   r$   j)r   r   r"   r   )r   r   r   r7   r   r   r   r8   )rC   r%  r  r&  r'  r"   r   s          r,   test_Pow_is_pos_negr(  x  s   sAs%AMM1Q4,,444EE1H!!T)))MM1Q4,,555FFAFFN''4///qtG  E)))qtG  (((qD&&&qD%%% 	sAsT*AsT*AsAsAqD&&&qD&&&qD&&&qD%%%qD&&&r.   c                  T   t        ddd      } t        ddd      }| |z  j                  J | |dz   z  j                  du sJ | |dz   z  j                  J | dz   |dz   z  j                  du sJ |  dz
  d|z  z  j                  du sJ t        dd      } | |z  j                  J y )	Nr"   Tr   r   rF   Fr   r   r!  r"  s     r,   test_Pow_is_prime_compositer*    s    sT40AsT40AqD??"""1X  E)))1X$$,,,cQqS\((D000bdac]))T111sT"AqD??"""r.   c                     t        d      } t        dd      }t        dd      }t        d      }t        dd	      }d
dlm} | |z  j                  J | |z  j                  J ||z  j                  J | |z  |z  j                  J ||z  j                  J ||z  j                  du sJ ||z  j                  du sJ  |d
|d      j                  du sJ  |d
|d      j                  J | |z  j
                  J | |z  j
                  J ||z  j
                  J | |z  |z  j
                  J ||z  j
                  t        j                  j
                  u sJ ||z  j
                  du sJ ||z  j
                  du sJ  |d
|d      j
                  du sJ  |d
|d      j
                  t        j                  j
                  u sJ y )Nr"   r   Tr  ir   r   Fr  r   r   )Mulr   )r   r   sympy.core.mulr/  r=   r>   r   r`   )r"   r   r,  rC   nzfr/  s         r,   test_Mul_is_infiniter2    s   sAs4 AsT"A4A
t%
(C"aC??"""aC??"""aC??"""aCE$$$aC??"""E%%%aC??d"""q!e$..$666q!e$..666aC$$$aC$$$aC$$$aCE&&&aC 1 1111E$&&&aC%%%q!e$00E999q!e$00AEE4E4EEEEr.   c                     t        d      } t        dd      }t        dd      }t        dd      }t        d      }t        dd	
      }ddlm} | |z   j                  J | |z   j                  J ||z   j                  d	u sJ | |z   |z   j                  J ||z   j                  d	u sJ ||z   j                  d	u sJ ||z   j                  du sJ ||z   j                  J  |d|d	      j                  du sJ  |d|d	      j                  d	u sJ | |z   j
                  J | |z   j
                  J ||z   j
                  du sJ | |z   |z   j
                  J ||z   j
                  du sJ ||z   j
                  du sJ ||z   j
                  d	u sJ ||z   j
                  J  |d|d	      j
                  d	u sJ  |d|d	      j
                  du sJ y )Nr"   r   Tr  r,  r-  i2r   Fr.  r   )Addr   )r   r   sympy.core.addr5  r=   r>   )r"   r   r,  r4  rC   r1  r5  s          r,   test_Add_is_infiniter7    s*   sAs4 AsT"A	t	$B4A
t%
(C"aC??"""aC??"""aC??e###aCE$$$aC??e###E%%%aC??d"""bD###q!e$..$666q!e$..%777aC$$$aC$$$aC$$$aCE&&&aC$$$E$&&&aC%%%bD%%%q!e$00E999q!e$00D888r.   c                     t        dd      } t        dd      }t        ddd      }t        dd      }t        ddd	      }t        d
d      }t        d      }t        d      j                  du sJ dt        d      z   j                  du sJ dt        d      z  j                  du sJ t        d      j                  du sJ t        |      j                  du sJ t        |      j                  du sJ t        |      j                  J t        t	        d      d      j                  du sJ t	        t        d      d      j                  du sJ t	        d      j                  du sJ t	        |dz         j                  du sJ t	        |dz         j                  du sJ t	        |      j                  J t        d      t        d      z   j                  J t        d      t
        j                  z   j                  du sJ || z  j                  J | | z  j                  du sJ | |z  j                  J || z  j                  J ||z  j                  J ||z  j                  J || z  j                  J |t        dd      z  j                  sJ t        d      j                  du sJ t        |      j                  du sJ t        |      j                  du sJ t        |      j                  J t        |      j                  du sJ t        t        d      d      j                  du sJ y )Nr,  Tr   r4  ni)r%   r  rh   r   )r   r  nrr   r"   rd   Fr   rF   rf   rC   r   )	r   r
   r2   r   r	   r   ro   r   r   )r,  r4  r9  rh   rnr:  r"   s          r,   test_special_is_rationalr<    s4   sD!A	d	#B	dD	1BsT"A	dD	1B		&BsA7%'''QK$$---d1gI""e+++q6&&&r7%'''r7%'''q6%%%s1v&22d:::s1v&22d:::q6&&&rAv;""e+++rAv;""e+++q6%%%Gd1g**222GaddN''5000qD%%%qD%%%rE&&&qD%%%qD%%%qD%%%E&&&s&&3333q6&&&r7%'''r7%'''q6%%%7%'''tAw'33t;;;r.   c                      t        d      } t        | dz  t        dt        j                  z              sJ dt        j                  z  t        j
                  u rt        dd       }|dz  j                  J y y )Nr"   r   r   r  )r   
isinstancetyper   rM   r`   r{   )r"   r   s     r,   test_issue_6275r@    sg    sA ac4!**-...|quu3t$!}}$$$ r.   c                      t         t        t        fD ]W   ddd      } | j                  du sJ | j                  du sJ  ddd       j                  J t        t        fd       Y t        t        d	        y )
Nr"   rF   r   )r$   r   TF c                        dd       S )NrB  r   r   )clss   r,   <lambda>z+test_sanitize_assumptions.<locals>.<lambda>  s    3rt#< r.   c                  0    t        j                  dd i      S )Nr   )r   	_sanitizer   r.   r,   rE  z+test_sanitize_assumptions.<locals>.<lambda>  s    v//0EF r.   )r   r   r   r&   r7   r   
ValueError)r"   rD  s    @r,   test_sanitize_assumptionsrI    s~    t$ >!a(yyD   }}%%%2D40<<DDDz<=> :FGr.   c                      dt        d      z
  t        d       dz  t        d      dz  z
  dz  z   } t        | dk        t        j                  u sJ t        | dkD        t        j                  u sJ | dk(  du sJ | j	                  d      du sJ y )Nrk   rf   
   r   r   FT)r
   r   r   falseequals)r  s    r,   test_special_assumptionsrN    s    
T!Wb	!d1gai/!33AAE?agg%%%AE?agg%%%Fu88A;$r.   c                  &    t        t        d        y )Nc                      t        ddd      S )Nr"   TF)r$   r   )r   r   r.   r,   rE  z#test_inconsistent.<locals>.<lambda>!  s    F3T- r.   r   r   r   r.   r,   test_inconsistentrR    s    
" % r.   c                  &   dt         z  j                  du sJ dt         dz  z  j                  du sJ dt         dz  z  j                  du sJ dt         t        j                  z  z  j                  du sJ t         t         dz   z  j                  du sJ y )NrI   Tr   )r   r&   r   ro   r   r.   r,   test_issue_6631rT  %  s    1I$&&&1Q3K  D(((1Q3K  D(((1QTT6N##t+++AJ4'''r.   c                  8    ddt         z   z  j                  du sJ y )NrF   F)r   r&   r   r.   r,   test_issue_2730rV  -  s    q1uI%'''r.   c                     dt         z   j                  sJ dt         z   j                  du sJ dt         z  t        j                  t         z  z   j                  sJ t        dd      } dt         z  t        j                  t         z  z   | t         z  z   j                  J t        dd      }dt         z  t        j                  t         z  z   |t         z  z   j                  sJ t        dd	      }d
t         z  t        j                  t         z  z
  |t         z  z   j                  sJ t        dd      }t        d      D cg c]  }||z  j                   c}g dk(  sJ t        d      }|j                  du sJ |j                  sJ y c c}w )Nrd   Fr   Try   r  r   r   r   rk   r,  r   re   )FTFTz"-sqrt(3)*I/2 + 0.866025403784439*I)r   r5   r(   r   ro   r   ranger&   )r   r  r   r,  rx   r  s         r,   test_issue_4149rY  1  sU   EE5(((aC!$$q&L&&&&sAaC!$$q&L1Q3,,444sT"AaC!$$q&L1Q3,,,,sT"AqD1446MAaC----sd#A*/(3Qad  3&' ( ' 	

./A99>>> 4s    F
c                  L    t        dd      } t        |       j                  sJ y )Nr   Tr   )r   r
   r(   r   s    r,   test_issue_2920r\  G  s!    sT"A7r.   c                      t        dd      } t        | z  j                  J | t        z
  | dz
  z  j                  J | t        z
  | dz
  z  j                  J y )Nr"   Try   rF   )r   r   r&   r{   r+   s    r,   test_issue_7899r^  L  s^    sAaC==   UQUO$$,,,UQUO$$,,,r.   c                  Z    t        d      } t        d      }| |z
  j                  du sJ y )NTr   )
nonintegerF)r   r{   r"  s     r,   test_issue_7993ra  S  s,    dAAE??e###r.   c                  H    t        t        d        t        t        d        y )Nc                      t        dd      S )NTF)r   r  r   r   r.   r,   rE  z!test_issue_8075.<locals>.<lambda>[  s    EtE,J r.   c                      t        dd      S )NT)r   r   rd  r   r.   r,   rE  z!test_issue_8075.<locals>.<lambda>\  s    Etd,K r.   rQ  r   r.   r,   test_issue_8075rf  Z  s    
"$JK
"$KLr.   c                  f    t        ddd      } | dz  j                  J | dz  j                         y )Nr"   TFr#   r   r   r'   r+   s    r,   test_issue_8642ri  _  s5    su-AaC#5ac%5%55#r.   c                  d   t        dd      } t        dd      }| t        j                  z
  j                  sJ | dz
  j                  sJ |dz   j                  sJ |  dz   j
                  sJ | dz
  j                  sJ t        d      }|dz
  j                  sJ |dz
  j                  J t        dd      }|dz
  j                  sJ t        d	      } | | dz   z  dz
  j                  sJ | dz   dz  t        j                  z
  j                  sJ t        d
      }|dz
  j
                  sJ y )NT)r%   r   r   rF   r   r   rd   )r   r   r   r   )r   r   Halfr7   r:   r9   r8   )r  r	  r   r   r   s        r,   $test_issues_8632_8633_8638_8675_8992rl  d  s5   dT*A	t	.BJ####E!!!!FBF""""C!G    EAI%%%%AI%%---$T*D1H$$$$tAq1uIM&&&&UQJ,,,,tAE!!!!r.   c                      t        ddd      } t        |       dk\  dk(  sJ t        |       dk  dk(  sJ t        | dz         j                  J t        | dz         j                  du sJ t        | dz         dk\  sJ y )Nr   Tr   rF   Fr   )r   r   r;   r[  s    r,   test_issue_9115_9150rn  y  s    c4T2AaLA$&&&aL1&&&QU##+++QU##t+++QUq   r.   c                      t        dd      } t        dd      }d| z  t        j                  u sJ dd| z  z  t        j                  u sJ d|z  t        j                  u sJ y )	NrC   Tr   r   Fr  r   rF   )r   r   r`   )rC   r   s     r,   test_issue_9165rp    s\    sAs5!AQ3!%%<<ac7aeeQ3!%%<<r.   c                  X    t        d      } t        | dt        z        j                  J y )Nr"   r   )r   r   r   r{   r+   s    r,   test_issue_10024rr    s'    c
Aq!B$<'''r.   c                     t        d      } t        dd      }ddt        z  z  dt        z  z   dddt        z  z  z  z   }||t        z  z   }|j                  J ||z   j                  J d|z   j                  du sJ t        d	d
      }|t        z   j                  du sJ ||t        z  z   j                  J |t        z   j                  sJ || z   t        z   j                  J ||t        z  z   t        z   j                  J y )Nr"   rh   Try   rd   r   rF   Frx   r   )r   r   r   r&   r{   r   r(   )r"   rh   ur,  rx   s        r,   test_issue_10302ru    s   sAsA
ArE'QrT	Qq1R4y[(A	AaCA99E??"""E??e###cAE??e###!G$$$EEAI##+++!GaK%%---r.   c                  >    dddt         z  z   z  j                  du sJ y )NrF   re   rd   F)r   r(   r   r.   r,   !test_complex_reciprocal_imaginaryrw    s"    QqSM''5000r.   c                     t        dd      } t        dd      }t        ddd      }|  j                  du sJ || z  j                  J || z  j                  du sJ || z  | z  j                  J |  j                  du sJ y )	Nr"   Fr   kTry   l)r$   r   )r   r&   r7   )r"   ry  rz  s      r,   test_issue_16313r{    s    s%(AsAsE*AB<<5   aC==   aC==E!!!aCE??"""Bu$$$r.   c                     t        ddd      } t        ddd      }| j                  du sJ |j                  du sJ t        dd      }|j                  du sJ t        t        d	        t        d
d      }|j                  du sJ y )Nr"   TF)r   r   r   r  c)complexc                      t        dd      S )NTF)r~  r  rd  r   r.   r,   rE  z"test_issue_16579.<locals>.<lambda>  s    E$u,M r.   nfr  )r   r=   r>   r   r   )r"   r   r}  r  s       r,   test_issue_16579r    s    s$7As$u5A;;$==D    	sD!A;;$
"$MN 
U	#B>>T!!!r.   c                  ^    t         t        z  } | j                  du sJ | j                  du sJ y r[   )r   r   r(   r=   rB   s    r,   test_issue_17556r    s/    	"A>>U""";;%r.   c                  N    t        ddd      } dd|  z  z  }|j                  J y )Nry  Tr   r   rh  )ry  r   s     r,   test_issue_21651r    s/    sT40A
AG)C>>!!!r.   c                     t        t        d      ddi      ddik(  sJ t        t        d      dg      i k(  sJ t        t        d      dg      ddik(  sJ t        t        d            ddik(  sJ t        d      d   sJ t        dt        z         i 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k(  sJ y )Nr"   r   Tr%   rF   r   rd   r   r~  	compositeFr   r   r  r  extended_nonzeror  r   r  r   r   r   r   )r`  r   r   r  r   r   r   r   r$   r   r   )r   r   r   r   r.   r,   test_assumptions_copyr    s   vc{]D$9 
T"# # #vc{YK0B666vc{]O 
T"# # #vc{#t'<<<<q>*%%%q1u "T"t" 	4" 	U	"
 	" 	U" 	" 	" 	E" 	U" 	" 	$" 	U" 	E" 	5"  	e!"" 	E#"$ 9"   r.   c                     t        dd      du sJ t        dd      t        d      du sJ t        dd      du sJ t        dd      du sJ t        dd	      } t        | d      J t        t        d 	      d	      J t        t        d 	      d	      J t        t        d	      d	      du sJ t        t        d	      d	      du sJ t        t        d	      d 	      du sJ t        t        fd
       y )NrF   r   Fr"   Tr   rI   r,  r   c                  &    t        d z   d      S )Nr   Tr   )r   r+   s   r,   rE  z(test_check_assumptions.<locals>.<lambda>  s    01a$G r.   )r   r   r   r   rH  )r,  r"   s    @r,   test_check_assumptionsr    s   Q"e+++sT"AQ"d***Q"d***R#u,,,sD!AQ"***U40$?GGGU40%@HHHU514@EIIIU40%@EIIIU514@DHHH
:GHr.   c                      t        dd      } t        d      }t        d| z  |z   fi | j                  i 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 ik(  sJ y )Nr"   Tr   r      r$   r   r~  	hermitianr   r   r   r  r   r   r   r  r   r   r  r  r  r  )r   r   assumptions0r"  s     r,   test_failing_assumptionsr    s   sT"AsAqsQw9!..9 VT  ;  i  {D   #T +8$ @I4  d $3T ;CT    *4  2H  D	  #5d	 
       r.   c                  R   t        g d      i 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k(  sJ t        g ddj                               ddik(  sJ t        g dg       i k(  sJ t        g dg      i k(  sJ t        dgdg      ddik(  sJ y )N)r   rF   r   r   Tr   Fr  r   r$   r   r  r%   r   r   r~  r   r`  r  r   r   r  )r   r   zpositive integerr   )r   splitr   r.   r,   test_common_assumptionsr    s`   i 
3k4 3u 3k3t3%+T33F3%t3-63 	D3 &u3 /83 	t	3 )%	3 2=e	3
 	E3
 )$3
 19$3  E33 3 3 i);)A)A)C 
  i,222b9+."444qcI;/It3DDDDr.   c                  |    t               } t               }| j                         |j                         k(  sJ d       y )Nz\pre-generated assumptions are invalid, see sympy.core.assumptions._generate_assumption_rules)r   r   
_to_python)pre_generated_assumptionsgenerated_assumptionss     r,   -test_pre_generated_assumption_rules_are_validr  "  sH      DE57$//15J5U5U5WW  x  Zx  xWr.   c                  H   t        t        ddd      t        ddd            } t        d       | j                         }t        d       t	        t
               | j                         }t        d       t	        t
                | j                         }||cxk(  r|k(  sJ  J y )NrF   r   r   rd   {   )r   r   r   randomr   r   )grpfirstsecondthirds       r,   test_ask_shuffler  +  s    
;q!Q/Q11E
FCIJJLEIQKZZ\FIaRLJJLEF#e#####r.   N)~sympy.core.modr   sympy.core.numbersr   r   r   (sympy.functions.combinatorial.factorialsr   &sympy.functions.elementary.exponentialr   r	   (sympy.functions.elementary.miscellaneousr
   (sympy.functions.elementary.trigonometricr   r   sympy.simplify.simplifyr   
sympy.corer   r   r   r   r   r   r   sympy.core.assumptionsr   r   r   r   r   r   sympy.core.factsr   sympy.core.randomr   sympy.combinatoricsr   sympy.combinatorics.perm_groupsr   sympy.testing.pytestr   r    r-   rD   rG   rJ   rU   rY   r^   rb   ri   rm   rp   rs   rv   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*  r2  r7  r<  r@  rI  rN  rR  rT  rV  rY  r\  r^  ra  rf  ri  rl  rn  rp  rr  ru  rw  r{  r  r  r  r  r  r  r  r  r  r   r.   r,   <module>r     s%    * * > = 9 @ , E E E* * 5 " + < . 4#44 D D!!6&%R$.#2#2#2)***
!
     	  . .
 	          "" $$
!N!b	*
%
&08#

)'$(N	0'4
#F89>$<N % %H((, 
- $ $M
6
"*!(
.$1%"" "$NI$	 Ex$r.   