
    g                        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	 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mZmZmZ d d
lmZmZmZmZ d dlmZ d dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z.m/Z/ d dl0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z< d dl=m>Z>m?Z? d dl@mAZA d dlBmCZCmDZD d dlEmFZFmGZGmHZHmIZI d dlJmKZK d dlLmMZM d dlNmOZO d dlPmQZQ d dlRmSZS d dlTmUZUmVZV d dlWmXZX  e"d          \  ZYZZZ[Z\Z]Z^ e"dd !          Z_d" Z`d# Zad$ Zbd% ZceVd&             ZdeVd'             Zed( Zfd) Zgd* ZheVd+             Zid, Zjd- Zkd. Zld/ Zmd0 Znd1 Zod2 Zpd3 Zqd4 Zrd5 Zsd6 Ztd7 Zud8 Zvd9 Zwd: Zxd; Zyd< Zzd= Z{d> Z|d? Z}d@ Z~dA ZdB ZdC ZdD ZdE ZdF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZdZ Zd[ ZeVd\             Zd] Zd^ Zd_ Zd` Zda Zdb Zdc Zdd ZdeS )f    )Sum)Add)Basic)Tuple)	unchanged)Functiondiffexpand)Mul)Mod)FloatIRationaloopizoo)EqGeGtNe)S)Symbolsymbols)	factorial)Absadjointarg	conjugateimre	transpose)explog)MaxMinsqrt)	Piecewisepiecewise_foldpiecewise_exclusive	UndefinedExprCondPair)cossin)
DiracDelta	Heaviside)KroneckerDelta)Integral	integrate)AndITENotOr)MatrixSymbol)srepr)Contains)Interval)solve)raisesslow)lambdifyz	a:d, x, yzT)nonzeroc                  2(   t          t          t          dk     f                              d          sJ t          t           t	          t          t          dk               t	          dd                    sJ t          t          t          dk     fd          t          t	          t          t          dk               t	          dd                    k    sJ t          t          t          dk     fdd          t          t          t          dk     fd          k    sJ t          t          t          dk     fdddd	k    f          t          t          t          dk     f          k    sJ t          t          t          dk     fdt          dk     fd          t          t          t          dk     fd          k    sJ t          t          t          dk     fdt          d	k     fd          t          t          t          dk     fd          k    sJ t          t          t          dk     ft          t          d	k     fd          t          t          t          t          dk     t          d	k               fd          k    sJ t          t          t          dk     ft          t          d	k     ft          df          t          k    sJ t          t          df          t          k    sJ t          t          d
            t          d	t          z  t          dk     ft          df          t          d	t          z  t          dk     ft          dfd          cxk    r&t          d	t          z  t          dk     f          k    sn J t          t          df          t          k    sJ t          t          d            t          t          df          t          k    sJ t          t          d            t          t          d            t          t          d            t          d          t          dd	          k    sJ t          dt          dk     fd          t          k     } t          d| f          t          dt          t          dk     t          dk    t          d	k              f          k    sJ t          dt          dk    fd	t          t          dk    t          dk              f          t          dt          dk    fd	t          dk    f          k    sJ t          dt          dk    fd	t          dk     t          dk    z  f          t          dt          dk    f          k    sJ t          dt          t          dk    t          dk    t          t          t          j                            fd          }|                    t          t"                    dk    sJ |                    t          d	          dk    sJ |                    t          d          dk    sJ t          dt          dk     ft          d	z  t          dk     ft%          t                    t          dk    f          }t          dt          d	z  dk     ft          dz  t          d	z  dk     ft%          t          d	z            t          d	z  dk    f          }|                    t          t          d	z            |k    sJ |                    t          d          dk    sJ |                    t          d          dk    sJ |                    t          d          t%          d          k    sJ t          dt          t"          k     fdt          d	t"          z  k     fdt          d	t"          z  k    f          }t          dt'          t          d          fdt          z  df          }t          dt'          t          d          fd	dt          z  d	k    f          }|                    t          d	          dk    sJ |                    t          d          dk    sJ |                    t          d          dk    sJ |                    t          d          dk    sJ |                    t          d          dk    sJ t)          dt*                    \  }}}	t           |t                    t          dk     f |t                     |	t                    z   d	z   t          dk    f          }
t           |t                    t          dk     f |t                     |	t                    z   d	z   t          dk    f          }|                    ||          |
k    sJ t          dt'          t          d          fd                              t          d          dk    sJ t          dt'          t          d          fd                              t          d          dk    sJ t          dt'          t          t                    fd                              t          t                    dk    sJ t          dt'          t          t,                    fd                              t          t,                    dk    sJ t          dt'          t/          t                    t1          t,                              fd                              t          t,                    t          dt'          t/          t,                    t1          t,                              fd          k    sJ t          dt'          t1          t                    t          z   d          fd          }|                    t          d          t          dt'          t1          t                    d          fd          k    sJ t          dt          dk     fdt          dk     fdt'          t          d          fd                              t          d          t          dt          dk     fd          k    sJ t          dt'          t          d	z  d          fd	t          dk     f                              t          t2                    dk    sJ t          t          t          dk    f          }t)          dd          }|                    t          |          t          k    sJ |                                t          dt          dk     ft          d	z  t          dk     ft%          t                    df          k    sJ |                    t          di          dk    sJ |                    t          di          dk    sJ |                    t          di          t%          d          k    sJ |                    t          di          t          k    sJ t          t7          t          t          ddf          t          dk     f          }|                                t          t          j        t          dk     f          k    sJ t          }t          |z  }t          dt          dk     fd	t          z  t          dk     fdt          z  t          dk    f          }t          |z  |z   }t=          |t                    |k    sJ t=          ||z  t                    |k    sJ t          |z  |k    sJ t          |z  |z   |t          |z  z   k    sJ ||z   ||z   k    sJ ||z   ||z   k    sJ ||z
  ||z
   k    sJ t          dt          dk     fdt          d	z  z  t          dk     fdt          d	z  z  t          dk    f          }|d	z  |k    sJ t          t          z  d	z   }t          t          d	z  z  d z   }t          |t          dk     f|t          dk    f          }|                    t          d          |                    t          d          z
  |                    t          d          z   |                    t          d          z
  }|                    t          dd          dk    sJ |                    t          dd          |k    sJ t          |t          dk     f|df          }|                    t          dd          dk    sJ |                    t          dd          | k    sJ |                    t          dd          |                    t          d          |                    t          d          z
  k    sJ |                    t          dd          |k    sJ |                    t          d d          |                    t          d          k    sJ |                    t          dd           |                    t          d           k    sJ |                                 t          t           t          dk     ft          d z  d z  tC          dd           z   t          dk     ft          t%          t                    z  t          z
  tC          dd           z   df          k    sJ t          t          t          dk     ft          d	z  dt          k    ft          d t          k     f          }tA          |t          dd	f          tC          d!d          k    sJ tA          |t          d	df          tC          dd          k    sJ t          dt          dk     fdt          dk     fdt          d	k     fdt          d k     fd          }tA          |t          tD           tD          f          d	k    sJ t          t          t          d"k     ft          d	z  t          dk    ft          dt          k     f          }tA          |t          dd	f          t          k    sJ tG          |t                     r	|j$        du sJ d S )#Ng      ?   r   Tr   TrB   T)r   F   c                      t                      S Nr'        k/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/functions/elementary/tests/test_piecewise.py<lambda>z!test_piecewise1.<locals>.<lambda>8   s
    ikk rK   Fevaluatec                  *    t          t                    S rH   r'   xrJ   rK   rL   rM   z!test_piecewise1.<locals>.<lambda>>   s    ill rK   c                  .    t          t          df          S NrF   rQ   rJ   rK   rL   rM   z!test_piecewise1.<locals>.<lambda>@   s    iA// rK   c                  >    t          t          t          dz  f          S rT   rQ   rJ   rK   rL   rM   z!test_piecewise1.<locals>.<lambda>A   s    iAqD	22 rK   c                  &    t          dgdf          S NrB   TrI   rJ   rK   rL   rM   z!test_piecewise1.<locals>.<lambda>B   s    i!d44 rK   ))rB   rF   TrF   T         
           zf,g,h)clsn)negativeg      )subs      )%r'   rR   hasr   r+   r6   r<   	TypeErrorr*   r   yr4   r3   r9   r   Integersrc   r   r#   r   r   r   r?   r"   r,   r   evalfr1   doitHalfr	   _eval_intervalr2   r   r   
isinstanceis_commutative)condpwisepp_x2p2p3p4fghpfpgp5p6r`   f_intfpdpfp_dxdp2f1f2pevalpeval_intervalpeval2s                            rL   test_piecewise1r   $   s!    aR[!!%%c*****YQA 6 6Q8M8MNNNNNaQZ++yaQ9O9O9Ea9N9N0P 0P P P P PaQZI661a!e*i(() ) ) )aQZb!a%[991a!e*   aQZ!QUY771a!e*i(() ) ) )aQZ!QUY771a!e*i(() ) ) )aQZ!QUY771bQA&&'334 4 4 4aQZ!QUaY771<<<<aY1$$$$
9))***ac1q5\Au:..1Q3A,E
U;;;       1Q3A,            aZ  I----
9**+++aV!!!!
9//000
922333
944555^$$a3333q!a%j),,q0DaY 
 
3q1ua!eQU334556 6 6 6 aQZ!SaR%8%8!9 
 
1q5zAq2v;//0 0 0 0aa[1q1uR&8"9 
 
16{##$ $ $ $ 	
CQAx1:66778 E ::a!!!!::aq    ::aq     	2q2v,Aq1uAQ/?@@Ab!Q$)_q!tQTAX&6QTAqDAI8NOOD66!QT??d""""66!R==B66!R==A66!Q<<3q66!!!! 
Aq2v;Q2XA"H	>	>B	Ar!Qxx=1Q3+	.	.B	Ar!Qxx=1ac!e*	-	-B771a==A771a==B771b>>Q771c??a771c??a g8,,,GAq!	AAaDD!b&>AAaDD11Q44K!OQ!V#<	=	=B	AAaDD!b&>AAaDD11Q44K!OQ!V#<	=	=B771a==BaAq]I..33Aq99Q>>>>aAq]I..33Aq99Q>>>>aAq]I..33Aq99Q>>>>aAq]I..33Aq99Q>>>>aCFFCFF++,i88==aCC1bQQ(()9556 6 6 6 
Q3q66A:q))*I	6	6B771a==I2c!ffa=='99EEEEEEb!a%[1a!e*q"Q((mY 
 

$q!**	2q1u+y99: : : :aAqD"&AE
3388A>>!CCCC	Aq1u:		Bd###A771a==I%%%% 7799	4R.1a4Q-#a&&$PPPPPP77B7  D((((77B7  C''''77A73q66))))88!R8!!Y.... xAq!9--q1u566E::<<9qvq1uo777777 	
A	
1B	Aq2v;1a!eqsAFm	<	<BbD1HE1::!Q<<5     Q3"9999Q37a!A#gq5AE>>>>r6R!Vr6rAvY QBK!AqD&!a%1QT6162B
C
CCq5C<<<< 
1qB	
1a4!Br1q5kBA;//EWW	1 2!#A/13A?N1a((A----2q))^;;;;AE{RJ//F  Aq))Q....  Ar**~o====  B++rwwq"~~2/NNNNN  B**n<<<<  D!,,Aq0A0AAAAA  B--&++a2D2D1DDDDD ;;==I
QV	
Aa(1a..	 !a%(	
3q66AA	&-/ / / / / / 	1a!e*q!tR1Wo1q5z::AQB
##x1~~5555QAr
##xA66661a!e*q!a%j1a!e*q!a%j)LLAQRC%%****1a#g,AqBw!QU<<AQB
##y0000 a##@(8D(@(@(@(@(@(@rK   c                      t          t          t          dk     ft          df          } | j        t          t          t          hk    sJ d S )Nr   T)r'   rR   ari   free_symbolsrx   s    rL   test_piecewise_free_symbolsr      s<    1a!e*q$i((A>aAY&&&&&&rK   c                     t          dd          \  } }t          | dz
  dz  | dk    fd          }t          || ddf          t          dd	          k    sJ t          | d
z
  d
z  | dk    f|df          }t          || ddf          t          dd	          k    sJ t          || dd
f          t          dd          k    sJ |t          | d
z
  d
z  | dk    f|| dk     f          k    sJ t          | d
z
  d
z  d| k    f|| dk     f          }t          || ddf          t          dd	          k    sJ t          || dd
f          t          dd          k    sJ |t          | d
z
  d
z  d| k    f|df          k    sJ t          | d
z
  d
z  d| k    fd|z  df          }t          || ddf          t          dd	          k    sJ t          || dd
f          t          dd          k    sJ d S )Nx yTrealrF   r   rD   rb      rd   re   r[   +   rY   iC   i_)r   r'   r2   r   )rR   ri   rx   ry   s       rL   test_piecewise_integrate1r      s9   5t$$$DAqAEA:qAv&	22AQB
##xA6666AEA:qAv&D	22AQB
##xA6666QB
##xA6666	AEA:qAv.AE
;;;;;;AEA:qAv&AE
33AQB
##xA6666QB
##xa'8'88888	AEA:qAv.D	::::::AEA:qAv&1d44AQB
##xA6666QB
##xa'8'8888888rK   c            
      8   t          dt          dk    fdt          t          d          fdt          dk     f          } t          | t          ddf          dk    sJ t          dt          t          z
  dk     fd          } t          | t          t
           df          t          dt                     k    sJ |                     t          d                              t          t
           df          dk    sJ t          | t          dt
           f          t          dt                    k    sJ t          | t          dt
          f          t          dt                     t
          z   k    sJ t          | t          t
           df          t          dt                     dz   k    sJ t          | t          t
           t
          f          t           t
          z   k    sJ t          dt          dk     ft          t          dk    fd          } |                     t          t          df          }|                     t          dt          f          }dt          j
        d	fD ]z}|                     t          |df          |                    t          |          k    sJ |                     t          d|f          |                    t          |          k    sJ {|t          t          dt          dt                              d	z   d	z  t          j
        z   t          dk     ft           dz   d
f          k    sJ |t          t          dt          dt                              d	z  d	z  t          j
        z
  t          dk     ft          dz
  d
f          k    sJ d S )NrB   r   rE   rC   rd   *   rD   rF   T)r'   rR   r   r2   ri   r   r%   rc   r$   r   rm   )ry   gy1g1yyys       rL   test_piecewise_integrate1br      s   1a!e*q"Q((mb!a%[99AQB
##q((((1a!eai.),,AQRC$$Q
222266!R==""AsA;//14444QAs$$Aq		1111QAr
##Aq		zB6666QRC%%#b!**r)99999QRC%%!b00001a!e*q!q&k955A
++q!Qi
 
 C
++q!Qi
 
 C161o : :{{Ar1:&&#((1b//9999{{Aq":&&#((1b//99999)
aQ

Q
	q	 16	)1q51
a      )	QAq				A	a	!&	(!a%0	
Q       rK   c                  |   t          dd          } t          dt          z
  t          dd                              t                    fdt          z   t          dd                              t                    fd          }|                    t          | df          }|                    t          d| f          }|                    t          ddf          |                    | d          k    sJ |                    t          ddf          |                    | d          k    sJ |                    t          ddf          |                    | d          k    sJ |                    t          ddf          |                    | d          k    sJ |                    t          d	df          |                    | d	          k    sJ |                    t          dd	f          |                    | d	          k    sJ t          |                    t                              	                                t          d| dk    f| d	z   d	z  | z
  t          j        z   | dk    f| d	z  d	z  | z
  t          j        z   | dk     fd          k    sJ t          |                    t                              	                                t          d| dk    f| d	z  d	z  | z   t          j        z
  | dk    f| d	z   d	z  | z   t          j        z
  | dk     fd          k    sJ |t          t          dt          d|                     d	z   d	z  t          dt          d|                     z
  t          dt          d|                     d	z  z   t          j        z   | dk     fd          k    sJ |t          t          dt          d|                     d	z  d	z  t          dt          d|                     z   t          dt          d|                     d	z  z
  t          j        z
  | dk     fd          k    sJ d S )
Nri   Tr   rB   r   rE   rC   rb   rF   )r   r'   rR   r:   containsr2   rc   r(   rewritesimplifyr   rm   r%   r$   ri   ry   r   r   s       rL   test_piecewise_integrate1car      s   $A	
QA''**+	
QQ((++,	
 	
A
 ++q!Qi
 
 C
++q!Qi
 
 C;;2qz""chhq"oo5555;;1bz""chhq"oo5555;;1ay!!SXXa^^3333;;1ay!!SXXa^^3333;;1ay!!SXXa^^3333;;1ay!!SXXa^^3333#++i00 
 

(**	RLdU1Wq[16!16*T!VaZ!& !a%(	     #++i00 
 

(**	bMT!VaZ!& !q&)dU1Wq[16!1q5)	     )CAJJ""1$s1c"ajj'9'993q!99q !#$6*+,q5	2 		
 
 
 
 
 
 )3r1::!!#c!SQZZ&8&883q!99q !#$6*+,q5	2 		       rK   c                  :   t          dd          } t          dt          t          dk    t          dk              fdt          z
  t          dk    fdt          z   df          }|                    t          | df          }|                    t          d| f          }|                    t          ddf          |                    | d          k    sJ |                    t          ddf          |                    | d          k    sJ |                    t          ddf          |                    | d          k    sJ |                    t          ddf          |                    | d          k    sJ |                    t          ddf          |                    | d          k    sJ |                    t          ddf          |                    | d          k    sJ t          |                    t                                                              t          d| dk    f| dz   dz  | z
  t          j
        z   | dk    f| dz  dz  | z
  t          j
        z   | dk     fd	          k    sJ t          |                    t                                                              t          d| dk    f| dz  dz  | z   t          j
        z
  | dk    f| dz   dz  | z   t          j
        z
  | dk     fd	          k    sJ |t          t          dt          d|                     dz   dz  t          dt          d|                     z
  t          dt          d|                     dz  z   t          j
        z   | dk     fd	          k    sJ |t          t          dt          d|                     dz  dz  t          dt          d|                     z   t          dt          d|                     dz  z
  t          j
        z
  | dk     fd	          k    sJ d S )
Nri   Tr   r   rE   rB   rb   rF   rC   )r   r'   r6   rR   r2   rc   r(   r   r   r   rm   r%   r$   r   s       rL   test_piecewise_integrate1cbr     s   $A	
BqBwQ 	
QA	
Q	
 	
A
 ++q!Qi
 
 C
++q!Qi
 
 C;;2qz""chhq"oo5555;;1bz""chhq"oo5555;;1ay!!SXXa^^3333;;1ay!!SXXa^^3333;;1ay!!SXXa^^3333;;1ay!!SXXa^^3333#++i00 
 

(**	RLdU1Wq[16!16*T!VaZ!& !a%(	     #++i00 
 

(**	bMT!VaZ!& !q&)dU1Wq[16!1q5)	     )CAJJ""1$s1c"ajj'9'993q!99q !#$6*+,q5	2 		
 
 
 
 
 
 )3r1::!!#c!SQZZ&8&883q!99q !#$6*+,q5	2 		       rK   c                  2   ddl m}  t          t          t          t
                    }t          dt          t          k     fdt          t          k    fd          }|	                    |          }|t          t           dt
          z  z   dt          t
          t          t          t                              z  z
  t          t
          t          t          t          t                              z   t          t
          k     fdt          z  t
          z   dt          t          t          t          t
                              z  z   t          t          t          t          t          t
                              z
  df          k    sJ  | d          D ]}t          t          t          t          t          t
          f|                    }|                    |          	                    |                    |                    |                    |          k    sJ d S )	Nr   permutationsrB   rF   rd   Trb   T)rB   rF   rd   r[   )	itertoolsr   r   rR   cdr'   r   br2   r%   r$   dictziprc   )r   limrs   qvrs         rL   test_piecewise_integrate2r   L  s   &&&&&&
1a..C1a!e*q!a%j)44A	CA	
acAc!SAYY'''	'#aQ1*>*>	>AF	AAc!SAYY'''	'#aQ1*>*>	>EG G G G G G \,'' = =aAq\1%%&&vvayy""388A;;//166!99<<<<<= =rK   c                      t          dt          dk     fd                              t          t          df          dk    sJ d S )NrB   r[   rC   r   )r'   rR   r2   r   rJ   rK   rL   test_meijer_bypassr   Y  sA     aQZ++55q"ajAARGGGGGGrK   c                     ddl m}  t          ddf}d}t          dt          t          k    fdt          t
          k    fd          }|                    |          } | |d          D ]q\  }}t          t          t          t
          f||f                    }|	                    |          |	                    |                              |          k    sJ r|	                    t          d	          	                    t
          d          d
k    sJ t          dt          t          k    fdt          t
          k     fd          }|                    |          } | |d          D ]q\  }}t          t          t          t
          f||f                    }|	                    |          |	                    |                              |          k    sJ rd S )Nr   )cartesre   )rb   rE   r   rB   rF   re   rY   rZ   rB   rF   rC   )repeatr[   rZ   )
sympy.utilities.iterablesr   rR   r'   r   r   r2   r   r   rc   )r   r   Nrs   ansijrepss           rL   /test_piecewise_integrate3_inequality_conditionsr   _  s   000000a)C 	#A1a!e*q!a%j)44A
++c

Cq### = =1CAA''((xx~~!7!7!<!<<<<<<88Aq>>q!$$33331a!e*q!a%j)44A
++c

Cq### = =1CAA''((xx~~!7!7!<!<<<<<<= =rK   c            
         t          dd          } t          dd          }t          dd          }t          dd          }t          dt          || k     ||k              fd          }t          d|| k     fd||k    fd          }t          d||k    fd|| k     fd          }t          d|| k     fd	||k     fd
          }t          d||k    fd	|| k    fd
          }t          d	t          | |k     ||k               fd
          }	t	          |t
           |          }
||||||	fD ]}|                    |
          }t          d          D ]}| d	|d||i}|                    |          |                    |                              |
                    |                    k    sJ | d|d	||i}|                    |          |                    |                              |
                    |                    k    sJ t	          ||t
                    }
||||||	fD ]}|                    |
          }t          d          D ]}| d	|d||i}|                    |          |                    |                              |
                    |                    k    sJ | d|d	||i}|                    |          |                    |                              |
                    |                    k    sJ t          d|t          | |          k    f|t          | |          z
  ||k    f|t          | |          z
  df          }||||fD ]}|                    |          |k    sJ |                    |          t          d|| k     f|  |z   |t          | |          k    f|  t          | |          z   df          k    sJ |	                    |          t          d|| k    f|  |z   |t          | |          k    f|  t          | |          z   df          k    sJ t          d|| k     ft          j        ||k    fd          }t          t          j        ||k    fd|| k     fd          }t          d|| k     fd	||k     ft          j        df          }t          t          j        ||k    fd	|| k    fd
          }t          d	t          | |k     ||k               ft          j        ||k    fd
          }	t	          |t
           |          }
|||||	fD ]}|                    |
          }t          d          D ]}| d	|d||i}|                    |          |                    |                              |
                    |                    k    sJ | d|d	||i}|                    |          |                    |                              |
                    |                    k    sJ d S )Nr   Tr   r   rR   ri   r   rD   rB   rC   re   rd   )r   r'   r6   r3   r   r   r2   rangerc   r%   r$   r   rm   )r   r   rR   ri   p0p1ru   rv   rw   r}   r   rs   r   r   r   s                  rL   -test_piecewise_integrate4_symbolic_conditionsr   y  sA   sAsAsAsA	Ar!a%Q''()	4	4B	Aq1u:1q5z9	5	5B	Aq1u:1q5z9	5	5B	Aq1u:1q5z9	5	5B	Aq1u:1q5z9	5	5B	As1q5!a%(()9	5	5B B3

C"b"b"% L Lkk#q 	L 	LAa1a?D88D>>QVVD\\%;%;CHHTNN%K%KKKKKq!Aq#D88D>>QVVD\\%;%;CHHTNN%K%KKKKKK		L
 1b//C"b"b"% L Lkk#q 	L 	LAa1a?D88D>>QVVD\\%;%;CHHTNN%K%KKKKKa1a?D88D>>QVVD\\%;%;CHHTNN%K%KKKKKK		L 	
AQN	
SAYYQ	
SAYY C "b" % %{{1~~$$$$$<<??i	
AE

ac!Qii 
c!Qii            <<??i	
AF
ac!Qii 
c!Qii           
 
Aq1u:A		:	:B	AFAE?QAJ		:	:B	Aq1u:1q5zAFD>	:	:B	AFAE?QAJ		:	:B	As1q5!a%(()AFAE?I	F	FB B3

C"b"b! L Lkk#q 	L 	LAa1a?D88D>>QVVD\\%;%;CHHTNN%K%KKKKKq!Aq#D88D>>QVVD\\%;%;CHHTNN%K%KKKKKK		LL LrK   c                     t          dt          t          d          ft          t          z  df          } t	          | t          ddf          t          dt          t          d          fdt          z  df          k    sJ d S )Nr   TrB   rd   r[   )r'   r   ri   rR   r2   rs   s    rL   0test_piecewise_integrate5_independent_conditionsr     sj    1bAhh-!A#t--AQAq	""iBq!HH!T{&K&KKKKKKKrK   c                     t          dt          t          t          z
  dk    dt          z  dt          z  z
  dk    z  dt          t          t          z
  dk    dt          z  dz
  dk     dt          z  dt          z  z
  dk                        ft          dt          t          t          z
  dk    ddt          z  dt          z  z
  dk              fdt          dt          t          z
  dk    ft          df          z  df          df          dt          dt          t          t          z
  dk    dt          z  dt          z  z
  dk    z  dt          t          t          z
  dk    dt          z  dz
  dk     dt          z  dt          z  z
  dk                        ft          dt          t          t          z
  dk    ddt          z  dt          z  z
  dk              fdt          dt          t          z
  dk    ft          df          z  df          df          z  z   } t	          |           t          dt          t          z
  t
          j        k    t          t          z
  dk    z  fdt          z  dz   t          t          z
  dk    fdt          z  dt          z  z   df          k    sJ t	          | dk                                  t                    t          t          t          z
  t
          j        k    t          t          z
  dk    z  dt          t          t          z
  dk    dt          z  dz   dk    dt          z  dt          z  z   dk                        k    sJ d S )Nr   rB   rF   FrE   Tr[   )r'   r4   rR   ri   r(   r   rm   r   r   s    rL   test_issue_22917r     s   	AsAEAI!a%!a%-!*;<eq1uqy!a%!)b.!a%!a%-!:KLLN N Oq#a!eaiq1uq1u}q7H"I"IJ 9aQ^aY#G#GGNP PQUW
X 
X y!S!a%!)AA0A!BE!$QUQYA	BAAPQ@Q!R!RT T U#QAEAItQUQU]Q=N(O(O$P%&Aq1uqy>At9)M)M%Mt$TV VW[]^ ^ ^	
^A !	1q1uqv~!a%!).L*M+,Q37AEAI*>+,Q319d*;!= != = = = = !a%  ((--a!eafnQQR5SUY58QAaC!GaKQRSTQTWXYZWZQZ]^Q^5_5_2a 2a a a a a a arK   c                  J"   t          t          dz  dz   t          dz  z  t          t          dt          z   z  t          dz  z
  d          fdt          z  dz  df          } |                                 t          t          t          t          d          fdt          dz   z  df          k    sJ t          t
          t          t          t
          d          t          t
          t          z   d                    fd                                          t          dt          t          t
          d          t          t          d                    fd          k    sJ t          dt          z  t          t
                    z  t          t                    t          t           t
          z             z  z  t          t          d          t          t           t
          z   d          z  fdt          t
                    z  t          t                    t          t           t
          z             z  z  t          t          d          t          t           t
          z   d          z  fd                                          t          dt          z  t          t          t
          d          t          t          d                    fdt          t          t
          d          t          t          d                    fd          k    sJ dt          t          t          d          t          t          d                    ft          dff}t          |                                 t          | k    sJ dt          t          d          ft          t                    t          z  dff}t          |                                 t          | k    sJ t          dt          z   t          t          t          d          t          t          d                    ft          df                                          t          k    sJ t          dt          t          d          ft          t                    dz   t          z   df          }t          t          t                    z   dz   }t          d          }t          |                                 |k    sJ t          |                    t           |t                                                               |                    t           |t                              k    sJ t          d	d
          }t          dd
          }t          dd          }t          | d|z  z   t          d|z  d          f|dd|z  z
  z  |d|z  dz
  z  z  | d|z  z   z  df          }|                                | d|z  z   k    sJ t          d|dk     |dk     z  |dk     z  f|dz  dz   |dz   z  |dz   z  |dk     |dk     z  ft           j        |dz  z
  d|z
  z  |dz   z  |dk     |dk     z  |dk     z  f|dz   | |dz  dz   z  t           j        |dz  z
  d|z
  z  z   z  |dk     |dk     z  |dk     z  |dk     z  f|dz   t           j        |dz  z
  d|z
  z  |dz  dz   |dz   z  z   z  |dk     |dk     z  f|dz   | |dz  dz   z  t           j        |dz  z
  d|z
  z  z   z  |dk     |dk     z  |dk     z  fd|dk     |dk     z  f|dz  dz   |dz   z  |dz   z  |dk     f|dz   | |dz  dz   z  t           j        |dz  z
  |dz   z  z   z  |dk     |dk     |dk     z  z  ft           j        |dz  z
  d|z
  z  |dz   z  |dk     |dk     |dk     z  z  fd          t          d|dk     |dk     z  |dk     z  fd|z
  |dz  t           j        z   z  |dz   z  |dk     |dk     z  fd|z
  d|dz  z
  z  d|z
  z  |dk     |dk     z  |dk     z  fd|z
  d|z
  |dz  t           j        z   z  d|dz  z
  d|z
  z  z   z  |dk     |dk     z  |dk     z  |dk     z  fd|z
  d|dz  z
  d|z
  z  |dz  t           j        z   |dz   z  z   z  |dk     |dk     z  fd|z
  d|z
  |dz  t           j        z   z  d|dz  z
  d|z
  z  z   z  |dk     |dk     z  |dk     z  fd|dk     |dk     z  fd|z
  |dz  t           j        z   z  |dz   z  |dk     fd|z
  |d|dz  z
  z  d|z
  |dz  t           j        z   z  z   z  |dk     |dk     |dk     z  z  fd|z
  d|dz  z
  z  d|z
  z  |dk     |dk     |dk     z  z  fd          z   } |                                 t          d|dk     f|dz   |dz   dz  z  dz  |dk     fd|dz  z  dz  d|dz  z  dz  z
  dz   |dk     fd|dz  z  dz  d|dz  z  dz  z
  dz   |dk     fd|z
  |dz
  dz  z  dz  |dk     fd          k    sJ t$          }t          dt          dk    fdt          dk     fdt          dk    f                                          t          dt          dk    fdt          dk     fd          k    sJ t          dt          dk     fdt          dk     fd                                          t          dt          dk     fd          k    sJ t          dt          dk    f                                          t          dt          dk    f|df          k    sJ t          dt          dk    t          t&          k     z  f                                          t          dt          dk    t          t&          k     z  f|df          k    sJ t          dt          dk     fdt          dk    t          dk     z  fd                                          t          dt          dk     fdt          dk     fd          k    sJ t          dt          dk     fdt          dk    t          dk    z  fd                                          t          dt          dk     fdt          dk    fd          k    sJ t          dt          dk     fdt          dk    t          dk     z  fd                                          t          dt          dk     fdt          dk    t          dk     z  fd          k    sJ t          dt          dk     fdt          dk    t          dk    z  fd                                          t          dt          dk     fdt          dk    fd          k    sJ t          dt          dk     fdt          dk    t          dk    z  fd                                          t          dt          dk     fdt          dk    t          dk    z  fd          k    sJ t          t)          t                    t          dk    t          dk    z  ft          df                                          t          t)          t                    t          dk    t          dk    z  ft          df          k    sJ t          dt          dk    t          dk     z  fdt          dk    t          dk     z  f                                          t          dt          dk    t          dk     z  fdt          dk    t          dk     z  f|df          k    sJ t          dt          dk    t          dk    z  fdt          dk    t          dk     z  f                                          t          dt          dk    t          dk    z  fdt          dk    t          dk     z  f|df          k    sJ t          dd          }	t          |t          dk    fdt          dk    |	t          k    z  |	t          z
  dk    z  ft          |	dz  z
  |	t          k    |	t          z
  dk    z  f|	dz  t          z
  t          dk    |	t          k    z  fd|	t          k    f|df          } |                                 t          |t          dk    f|	dz  t          z
  |	t          k    f|df          k    sJ |                     |	t                                                    t          |t          dk    ft           t          dz  z   t          t+          dt                    k     fdt          t          k     f|df          k    sJ d S )NrF   rB   r   rE   TrD   rC   rx   r   integerr`   tpositiver[   rb   r   rd   re   r   L)nonnegative)r'   rR   r   r   r   r   r3   r   r   ri   r   r-   r   r   rc   r   r   rm   r*   r   r#   r$   )
rs   argsr   rx   r   r`   r   exprnanr   s
             rL   test_piecewise_simplifyr     s   AqD1Had?Bq!a%y1a4'7$;$;<7B<&	( 	(A::<<31a/R1q5M4#899: : : : 	
C1a"QUA,,''()5 55=X 6
 6
	
C1a"Q((##$i1 11 1 1 1 ac)A,,&	!YrAv5F5F(FG
1a2qb1fa== "$%illNIaLLA2
L B B 5 %!Qxx"aR!VQ--'$)*35 55=X 6
 6
qS#bAhh1a))*Bq!HHbAhh''(     s2a88R1XX&&'!T2Dd$$&&)T*:::::r!Qxx=3q66!8T**Dd$$&&)T*:::::a!eSAq2a884454y 
 

(**    !R1XXQ!a 677D
c!ff*q.CAd$$&&#----dii11Q44(()2244AAaDD8I8IIIII 	sD!!!AsD!!!AsT"""Aqb1Q3h1Q3

+a!ac'l1qsQw<.G!aPQc.RTX-YZZD==??qb1Q3h&&&& 	1q2v!b&)QU34!a!	C
 8E8VA&7(+,6AaC<!a%*@!a%*H	
RAFq1u%*'*+a%1"acAg,!&
A#CAB 3 *b&QV,A6!a%@)BEF	F
Vac\AE"acAgA%66E8:;b&Q	F
 :D1ur1Q37|qv!|a!e&<<=B	
Q@q5@ RAF 34!a!	C
 8E8F7 1ur1Q37|qv!|a	G
 7 ( !eRAE*+-011q1u/Eq
H 01u!b&QU+,/./8		: 		: =Fq	
RAEa!e$G&)*Q1qv(>A(F	
Q1q5(!ea!A#g.A6RA	E
 9!e9 Q!a%!A#,!71qs7Q	F
 ; " "fQ1q5)QU3589A	!B!eA!afq1u-A. 8/12Q1q50A7CFG	G
UQqS16\"a!A#gA%66F8:;a%A	E
 :!e:EAFq1u-.!a%!A#	; 2Q2Q1 #$q51a!A#g;!a%!A#	C : , #q5a"fQ/0"256UQ1W4Eq
H 51u!b&QU+,4./8
=: 
=:	:A( ::<<9	
AFq1uq1uqj(*AF3bAgai
AqD&(77A6!"1a4AadF1H!4q!8!a% @A	E
EA:DDQC !*, , , , , , CaQZ!QUaQZ88AA 
 
AE
QAJ	::; ; ; ;aQZ!QUY77@@ 
 
1q5z9--. . . .aQZ  ))++y!QU	d0 0    a!q&QV,- 
 

(**	1qAv!b&&9":S$KHHI I I IaQZ!a!eA%6!7 
 
8::Aq1u:1q5z9EEF F F FaQZ!a1fQ%7!8) 
 

(**	1a!e*q!q&k9EEF F F FaQZ!a!eA%6!7 
 

(**	1a!e*q1q5QU2C.D     aQZ!a1fa%8!99 
 

(**	1a!e*q!q&k9EEF F F FaQZ!a1fa%8!99 
 

(**	1a!e*q16a1f2E.F     c!ffqAv!a%01At9 
 

(**	3q66AFq1u+=">D	JJK K K K a!q&QU+,q1q5QU2C.D 
 

(**	1qAv!a%&8"9	AFq1u<!$d- -- - - - a!q&Q!V,-AEa!e3D/E 
 

(**	1qAv!q&&9":	AEa!e= #T{, ,, , , ,
 	s%%%A3Q-!a1fQ%71q5A:%F!G	
QqS1q5QUaZ()	
1q16a!e$%	
AE
S$K	! 	!A ::<<9	a1f!aQ'#t6 6 6 6 6 666!Q<<  ""i	a1fQqS!c!Qii-01a!e*sDk'K 'K K K K K K KrK   c            
      Z   t          t           t          dk    ft          t          dk    f          } |                     t          t          dz
            t          t                    dgk    sJ t          dz
  t                    ddgk    sJ t          t          dz
  dz  t          dk    fd          t          t                    dgk    sJ t          t          dz
  dz  t          dk    fdf          }t          |t                    ddgk    sJ t          t          dz
  dz  t          dk    ft          dk     f          }t          |t                    ddgk    sJ t          t          dz
  dz  t          dk    ft          dk     f          }t          |t                    dgk    sJ t          t          dz
  dz  t          dk    fdf          }t          |t                    dgk    sJ t          t          dz
  dz  t          dk    fdfd	          }t          |t                    dgk    sJ t          t          dz
  dz  t          dk    ft           dz   t          dz
  dk    ft          dz
  t          dz
  dk    f          }t          |t                    dgk    sJ t          t          t          dz
  t          dk    fdt          z
  df          dz
            d
dgk    sJ t          t          dz
  dz  t          dk    fd          t	          t
          fd           d }t          t          dz  dz
  t          t          k     ft          dz
  df          }t          |t                    } |d |D                       dgk    sJ  |d |D                       ddgk    sJ  |d |D                       ddgk    sJ |t          dt          dk    ft          j        df          t          dt          dk    ft          j        df          t          dt          dk    ft          j        df          gk    sJ t          t          dz
  dt          dz
  k    fdt          z
  dt          dz
  k    f          }t          |t          z
  t                    t          t           dz   t           dk     ft          j        df          t          t          dz   t          dk    ft          j        df          gk    sJ t          dd          }t          ||z
  t                    | dz   |dz   gk    sJ t          d          t          t           t                     t          dt          dk    fd                     t                              t          d
t          dk    fd          gk    sJ t          dt          dz  z  t          dt          k     t          dk               fd          t          dz
            dt          d          z  gk    sJ d S )Nr   rF   rB   rd   rD   re   r[   T)r]   FrE   rC   c                  .    t           t                    S rH   )r;   rR   r   s   rL   rM   z&test_piecewise_solve.<locals>.<lambda>[  s    a rK   c                 >    t          t          d |                     S )Nc                     | t           j        uS rH   )r   NaNrR   s    rL   rM   z4test_piecewise_solve.<locals>.nona.<locals>.<lambda>^  s    Qae^ rK   )listfilter)r   s    rL   nonaz"test_piecewise_solve.<locals>.nona]  s    F33S99:::rK   c                 D    g | ]}|                     t          d           S )rb   rc   ri   .0r   s     rL   
<listcomp>z(test_piecewise_solve.<locals>.<listcomp>a  s$    ,,,12,,,rK   c                 D    g | ]}|                     t          d           S )rF   r   r   s     rL   r   z(test_piecewise_solve.<locals>.<listcomp>b  $    +++!1+++rK   rb   c                 D    g | ]}|                     t          d           S )rd   r   r   s     rL   r   z(test_piecewise_solve.<locals>.<listcomp>c  r   rK   rs   r   rx   rX   )r'   rR   rc   r;   r<   NotImplementedErrorri   r   r   r   r   r   r3   r&   )abs2ry   r   rs   r   absxm3rx   s         @rL   test_piecewise_solver   ;  s   qb!q&\Aq1u:..D		!QUAA;;1#Q??q!f$$$$AEA:qAv&	22AA;;1#AEA:qAv&D	22AA;;1a&    AEA:qAv&AE
33AA;;1a&    AEA:qAv&AE
33AA;;1#AEA:qAv&D	22AA;;1#AEA:qAv&D	;??AA;;1#AEA:qAv&261q5A:&QA	(:	< 	<AA;;1# AE1q5>AE4=99A=>>2q'IIIIAEA:qAv&	22A
 3 3 3 3444; ; ;1a4!8QU#a!eT]33A
1++C4,,,,,--!44444++s+++,,Q77774++s+++,,Q77772q2v,..1a1f+t}--1a!e*qudm,,. . . . . 	
QQU
	
QAE	 F !QA26A26"QUDM221q5!q&/AE4=11$3 3 3 3 3 	sT"""A!QQBFAE?2222 	AQQqTTE9aQZ;;<<aaddCC	BA;		*	*+, , , , 	1QT63q1ua!e,,-y99AQ<<Ad1ggI;&&&&&&rK   c                  4   t          t          t          dk     fddt          k    f          } t          t          | z            t          t          dz  t          dk     ft          dt          k    f          k    sJ t          | | z             t          dt          z  t          dk     fddt          k    f          k    sJ t          t          dt          dk     fd          t          dt          dk     fd          z             t          dt          dk     fd          k    sJ t          dt          dk     ft          t          dk    fd	          }t          dt          dk     fdt          z
  t          dk    fd	          }d
|z  d|z  z   } t          t          |           t          t           t          f          t          dt          z  dz   t          ddf          k    sJ t          t          dt
          dk    ft          dt
          dk    f           df                    t          dt
          dk    fdt
          dk    f          k    sJ t          t          t          t          t          dk    t
          dk     t
          dk              f                    t          t          t          dk    t
          dk     z  t          dk    t
          dk    z  z  f          k    sJ t          dt          t          d          fd	          t          t          t          t           t
          z   d          fdt          t           t
          z   d          fd	          }}t          t          ||d                    t          t          ||d                    k    sJ d S )NrB   rF   r   rX   r]   )rf   T   )iTrC   r[   Trb   FrN   )	r'   rR   r(   r2   r   ri   r4   r   r   )rs   r   ru   r   r   s        rL   test_piecewise_foldr   ~  sG   1a!e*q!q&k**A!A#)QT1q5MAqAv;"G"GGGGG!a%  IqsAElQQK$H$HHHHH)QAJ	::%r1q5k;??@ A A2q1u+z**+ + + + 
Aq1u:16{I	6	6B	Aq1u:AqAv		:	:B	"qtAqAsB<) ),5acAg1ay,I,IJ J J J 1a1f+AqAv;!7!7 7> 	
 	
 AFb!q&\223 3 3 3 )QAE1q5!a%(@(@$ABB 
 
Q!VA.AEa!e3DEFGGH H H H q"Q((mY//1b!amm$q"aR!VQ--&8)DD 	A#aU333 
 
C1u555667 7 7 7 7 7rK   c                     t          t          t                    t          dk     fd          } t          dt          | d          f| t	          |           z  df          }|                    t          t           dz            dk    sJ |                    t          d          dk    sJ |                    t          t           dz            dk    sJ t          dt          | d          fd          }t          |          }t          dd          D ]<}|                    t          |          |                    t          |          k    sJ =dt          dt          dk     fd	          k     }t          |          }t          d          D ]<}|                    t          |          |                    t          |          k    sJ =t          dt          dk     fd	          }t          dt          dk     fd	          }t          d||k     fd          }t          |          }t          dd          D ]<}|                    t          |          |                    t          |          k    sJ =d S )
Nr   rC   TrF   rB   r[   rD   rE   r   )	r'   r,   rR   r   r   rc   r   r(   r   )	r   ru   rw   r   r   r1r}   r~   p7s	            rL   %test_piecewise_fold_piecewise_in_condr     s$   	CFFAE?I	.	.B	Ar"ayy>BRL$#7	8	8B771rc!e!!!!771a==A771rc!e!!!!	Ar"ayy>8	,	,B


C2q\\ / /xx1~~A.....	
Y1q5z9--	-B


C1XX / /xx1~~A.....	Aq1u:y	)	)B	Aq1u:y	)	)B	ArBw<	+	+B


C2q\\ / /xx1~~A...../ /rK   c            	         t          t          t                    t          dk     fd          } t          dt          | d          fd| z  df          }t          dt          dk    t          t          t                    d          z  fdt          t                    z  t          dk     ft          df          }t          |          |k    sJ d S )Nr   rC   rB   T)r'   r,   rR   r   r   r(   )r   ru   rv   s      rL   'test_piecewise_fold_piecewise_in_cond_2r     s    	CFFAE?I	.	.B	Ar"ayy>AFD>	2	2B		
Q!Vr#a&&!}}$%	
3q661q5	d
 
B "######rK   c            	         t          dt          dddd                              t                    fd          } t	          t          dt          z
  | z                      }t          dk    t          dk     z  }t	          t          dt          z
  | z            d          t          dt          z
  |ft           |fd|fdd          k    sJ t	          t          dt          z
  | z            d           t          dt          z
  |fd          k    sJ |t          dt          z
  |fd          k    sJ |t          t	          dt          z
  | z                      k    sJ d S )NrB   r   FTrC   rN   )r'   r:   r   rR   r(   r
   )r   ru   rq   s      rL   test_piecewise_fold_expandr     si   	Ax1eT22;;A>>?	K	KB	Arz**	+	+B!VAD&!a%,,u 
 
 
At}r4j1d)YQVWWWX X X X&!a%,,t 
 
 
At}i001 1 1 1AE4=)444444Arz2233333333rK   c                      t          t          t          dk     ft          dz  t          dk    ft          dt          k     f          } | t          | j         k    sJ d S )Nrf   rF   rE   rB   )r'   rR   r   r   s    rL   test_piecewise_duplicater     sM    1a#g,AqBw!QU<<A	16"""""""rK   c                  H   t          t          t          dk     ft          dz  dt          k    ft          dt          k     f          } t          t          t          dk     ft          dt          z            dt          k    ft          dt          k     f          }|                                | k    sJ |                    d          |k    sJ t	          t
          t          z  t          dt          f                                          } |                                 | k    sJ d S )NrB   rF   rE   rd   Fdeep)r'   rR   r1   rl   r   ri   r   )r   ru   s     rL   	test_doitr     s    	Aq1u:1bAgAE
	;	;B	Aq1u:Qq9Aq1u:	F	FB7799????777"$$$$	QTAr2;			$	$	&	&B7799??????rK   c                  ^   t          t          t          dd                              t                    fd          } |                     t          d          dk    sJ |                     t          d          dk    sJ |                     t                    t          dt          dd                              t                    fd          k    sJ t          | t                    t          dt          dk    ft          dz  dz  t          dk    ft          j        df          k    sJ d S )Nr   rB   rC   g            ?rF   T)	r'   rR   r:   r   rc   r	   r2   r   rm   )r   s    rL   test_piecewise_intervalr     s   	Ax1~~..q112I	>	>B771dq    771c??c!!!!771::Ax1~~'>'>q'A'A#BINNNNNNRy	
AF	
Aaa	
         rK   c            
      .   t          dt          dk     ft          j        t          dk    fd          } t	          |           t          dt          dk     ft          j        t          t          d          fdt          dk    fd          k    sJ t	          | dz             t          dt          dk     ft          j        t          t          d          fdt          dk    fd          dz   k    sJ t	          t          dt          dk    ft          dt          dk    f           df                    t          dt          dk    ft          dt          dk    ft          j        t          dk     fd           t          dk    fd          k    sJ t	          t          dt          t          k    f                    t          dt          t          k    ft          j        t          t          k    fd          k    sJ t	          t          dt          t          k    f          d          t          dt          t          k    f          k    sJ t          d	d
          \  }}t          d|dk     fdd          }t          d|dk     fd|dk    fd          }t          ||dk     fdd          }t          ||dk     fd|dk    fd          }t          ||dk     fd|dk    fd          }t	          |          |k    sJ t	          |d          |k    sJ d S )Nr   rD   rB   FrN   rF   T)skip_nanzxr, yrr   rX   r   rd   r   )	r'   rR   r   rm   r)   r   ri   r   r   )rs   xryrr   p1xru   p2xp2xxs           rL   test_piecewise_exclusiver    sZ   1a!e*qvqAv.	::Aq!!Y1q5zAFBq!HH;M011q5zE&K &K &K K K K Kq1u%%Aq1u:1a?Q011q5zE*K *K *KMN*O O O O Oy!Q!V+4aa[+A+A*A4)H J  J K K1a1f+q!q&k ua!enu> > > >?@1uFPU	W 	W 	WW W W W
 y!QU4455Aq1u:CD5!q&/KP:R :R :R R R R R y!QU44(,. . .1:Aq1u:1F1FG G G G XD)))FB	ArAv;	E	:	:	:B
QQK!R1W
>
>
>C	BQ<U	;	;	;B
RaL1bAg,
?
?
?Cc26]QaL5AAADr""d****r...#555555rK   c                     t          t          df          t          k    sJ t          dk     } t          t          | ft          dz   | f          t          t          | f          k    sJ t          t          | ft          dz   | j        f          t          t          | f          k    sJ t          dk     }d }d| ft          d| fd|f          |ffd| ft          d| fd|j        f          |ffd| ft          d| fd|f          |fdfd| ft          d| fd|fd          |ffd| ft          d| fd|fd          |fdffD ]d}d	D ]_} |t          |d
di                    t          |                     |t          |                     t          |                    k    sJ `et	          d          \  }}}}t          |k     } t          |k     }t          |k     }	t          |k     }
t          d| ft          d| fd|fd|	f          |fd|	f          t          d| fd|fd|	f          k    sJ t          d| ft          d| fd|fd|	fd          |	fd|
f          t          d| ft          d|fd|	f          |	fd|
f          k    sJ t          dt          | |
          ft          d|
fd|fd|	f          |fd|	f          t          dt          | |
          ft          d|
fd|f          |fd|	f          k    sJ t          d|	fd|	 fdt          j        f          t          d|	fdt          j        f          k    sJ t          d|	fdt          |	 |          fd          t          d|	fd|fd          k    sJ t          d|	fdt          |	 |          fd                              t          t          ||||t          fd                              dk    sJ t          d|	fd|	 f          t          d|	fd          k    sJ d S )NTrB   re   c                 L    t          | t                    rt          | j         S | S rH   )ro   r'   r   )r   s    rL   	canonicalz*test_piecewise_collapse.<locals>.canonical  s&    a## 	&af%%rK   rF   rd   r[   Tre   T)r   rF   r]   rO   Fzr1:5r[   )rY   Tr   )rB   rF   rd   r[   g      @rX   )r'   rR   reversedrc   r   r6   r   truer3   r   r   )r   r   r
  r   r   r   r2r3r4r   r   s              rL   test_piecewise_collapser    s   aY1$$$$	AAaVa!eQZ((Iq!f,=,=====aVa!eQZ011Y1v5F5FFFFF	AA  
 Q)QFQF++Q/0
Q)QFQ
O44a89
Q)QFQF++Q/;
Q)QFQFI66:;
Q)QFQFI66:IFH 	< 	<  	< 	<A940%0055a;; Yy$/44Q::;;< < < < <	< V__NBB	BA	BA	BA	BAaVi	
AAA   !"$&'V
 
1v1v1v../ / / / aVi	
AAA	+ +,-/12A
 
1v		
AA! ! V% %% % % % aAq]Y	
AAA&  & !"%$&'V
 
2a88}y	
AA( ('V% %% % % % aVa!Wq!&k 
 
1v16{++, , , ,aVaaR_h 
 
1v1vy112 2 2 2aVaQB^X 
 

$tCRR+->??@@
A
AaH H H HaVa!W%%Aq69)E)EEEEEEErK   c            
         t          t          dz  t          dk     ft          t          dddd                              t                    fdt          z
  t          dk    fd          } t	          t          |           } |d          dk    sJ  |d	          d	k    sJ  |d
          d
k    sJ  |d          d	k    sJ d S )NrF   r   rB   FTrC   g       g      @r^   r   g       @)r'   rR   r:   r   r>   )rs   rx   s     rL   test_piecewise_lambdifyr  /  s    	
Aq1u	
HQ5$''00334	
QQ		 	A 	AA1T77c>>>>1S66S====1S66S====1S66S======rK   c                     ddl m}  t          t          t                    t          dk     ft          t                    t          dk    f          }t          t           | t          dz            z   t          dk     fd | t          dz            z   t          dk    f          }|                    t          d          |k    sJ d S )Nr   )OrF   rB   )r`   )sympy.series.orderr  r'   r-   rR   r,   nseries)r  r   ru   s      rL   test_piecewise_seriesr  >  s    $$$$$$	CFFAE?SVVQUO	4	4B	A!Q$KQ'!aa1gg+q1u)=	>	>B::a1:######rK   c                     t          dt          z  t          dk    fd          } t          t          t          dk    fd          }t          dt          z  t          dk    ft          df          }t          t          t          dk    fdt          z  df          }t          dt          z  t          dk    ft          df          }t          dt          z  t          dk     ft          df          }t          t          t          dk     fdt          z  df          }t          t          t          dk    fdt          z  df          }|                     t                    dk    sJ |                    t                    dk    sJ |                    t                    t          k    sJ |                    t                    dt          z  k    sJ |                    t                    t          k    sJ |                    t                    dt          z  k    sJ |                    t                    t          k    sJ |                    t                    dt          z  k    sJ d S )NrB   rC   Tr   )r'   rR   as_leading_term)r   ru   rv   rw   r}   r~   r   p8s           rL   test_piecewise_as_leading_termr  E  s   	AaCQ<	+	+B	Aq1u:y	)	)B	AaCQ<!T	+	+B	Aq1u:!T{	+	+B	AaCQ<!T	+	+B	AaCQ<!T	+	+B	Aq1u:!T{	+	+B	Aq1u:!T{	+	+Ba  A%%%%a  A%%%%a  A%%%%a  AaC''''a  A%%%%a  AaC''''a  A%%%%a  AaC''''''rK   c                  4   t          dt          dk     fddt          k    f          } t          dt          z  t          dk     ft          dt          k    f          }t          t          t          z  t          dk    fdt          z   df          }t          t           t          t                    z  t          dk    fdt          z
  df          }t          |           | k    sJ t          |          t	          |           k    sJ t          |          |k    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 |                                 | dfk    sJ |                                dt           |z  fk    sJ d S )NrF   r   rB   TF)r'   rR   r   r   r(   is_imaginaryis_realas_real_imag)r   ru   rv   rw   s       rL   test_piecewise_complexr"  X  s   	Aq1u:16{	+	+B	AaCQ<!Q!V	-	-B	AaCQ<!a%	/	/B	QBy||OQU+a!eT]	;	;BR==BR==NB3//////R==B?e####:?d"""":?""":??Q''''??QBrE
******rK   c                     t          dd          \  } }t          | |dz  z  t          dk    f| dz  |z  df          }|                                t          t          | |dz  z            t          dk    ft          | dz  |z            df          k    sJ |                                t          t	          | |dz  z            t          dk    ft	          | dz  |z            df          k    sJ |                                t          t          | |dz  z            t          dk    ft          | dz  |z            df          k    sJ d S )NA BF)commutativerF   r   T)r   r'   rR   r   r   r!   )ABrs   s      rL   test_conjugate_transposer(  m  se   5e,,,DAq1QT61q5/AqDFD>22A99;;71QT6??AE*WQT!V__d,CDDE E E E;;==9Qq!tV$$a!e,yAa/@/@$.GHHI I I I;;==9Qq!tV$$a!e,yAa/@/@$.GHHI I I I I IrK   c                     t          t          df          t          k    sJ t          t          dfd          t          k    sJ t          dt          dt                    f          j        dt          t          d          ffk    sJ t          dt          dt                    fd          j        dt          dt                    ffk    sJ t          t          dfd          } | t          k    sJ d S )NTrN   rB   F)r'   rR   r   r   r   s    rL   test_piecewise_evaluater*  x  s    aY1$$$$aY...!3333aAq]##(aAq],<<<<<aAq]U3338	
Bq!HH=     	1d)e,,,A666666rK   c            	         t          t          t          dk    ft           t          dk    f                                          t          t          dt          dd          ft           t          t           d          fgk    sJ t          t          dz
  dz  t          dk    fd                                          t          dz
  dz  t          dt                    fdt          t           ddd          fgk    sJ d S )Nr   TrF   rC   )r'   rR   as_expr_set_pairsr:   r   rJ   rK   rL   test_as_expr_set_pairsr-    s    aQZ1"a1f..@@BB
XaT4((	)QB"a0@0@+ABC C C C q1uqj!q&)955GGIIq51*hq"oo	&HbS!T4,H,H(IJK K K K K KrK   c                      t          dt          t          d          fd          } t          t	          |                     }| |k    sJ d S )Nr]   r   )   T)r'   r   rR   r   r8   )rs   r   s     rL   test_S_srepr_is_identityr0    s?    2r!Qxx.*--A	%((A666666rK   c            	      "   t          dt          dk    fdt          t          dk    t          dk    z            fd          } |                     t          ddf          d	k    sJ t          dt          dk    fdt          t          k     fd          } t          d
df}|                     |          }t          dd          D ]O}|                    t          |          |                     t          |                              |          k    sJ Pd S )NrB   r[   rF   rd   rE   r   r\   re      r   )r'   rR   r5   r2   ri   r   rc   )rs   r   r   r   s       rL   test_issue_12587r3    s    1a!e*q#qAv!b&&9":":;YGGA;;2qz""b((((1a!e*q!a%j)44A
R(C
++c

C2q\\ = =xx1~~1!7!7!<!<<<<<<= =rK   c                     t          dt          t          t          dz  dz
            z  z  t          ddf          t          dz  k    sJ t	          dt          t          t          dk     t          dk              t          dk               fd                               t          ddf          dk    sJ t	          dt          dk    fdt          t          dz   k    fd                               t          ddf          dk    sJ t	          dt          dk    fdt          dt                    fd                               t          ddf          d	k    sJ t	          dt          dt          z  t          dz   k    t          dk               fd                               t          ddf          dk    sJ t	          dt          dt          z  t          dz   k    t          dk               fd                               t          ddf          dk    sJ t	          dt          dk    fdt          t          dz   k    fd                               t          ddf          dk    sJ t	          dt          dt          z
  t          dt          z  dz
  z            fd                               t          ddf          d	k    sJ t	          dt          t          dk     t          dk              fdt          dk    fd                               t          ddf          d	k    sJ t	          dt          t          d          fd
                               t          ddf          dk    sJ t	          t          t          dk    t          dk     z  fdt          dk     f                               t          ddf          dk    sJ t	          t          t          dk    t          dk     z  fdt          dk     f          } t          }|                      t          dt          f          }|t	          t          dz
  t          dk     ft          dt                    dz  dz  t          dt                    z
  t          dt                    z   t          j        z
  t          t          dt                    k    f|df          k    sJ |                      t          ddf          |                    t          d          k    sJ |                      t          ddf          dk    sJ |                      t          ddf          |u sJ t	          dt          dk    fdt          t          t          dk    t          dk                         fd          } |                      t          ddf          dk    sJ t	          dt          dt          k    t          dk              fdt          t          dk     t          dk              fdt          dk     f          } |                      t          ddf          dk    sJ t	          dt          dk     fdt          t          t          d          t          dk              f                               t          ddf          t          j        u sJ t	          dt          dk     fdt          t          t          d          t          dk              fd                               t          ddf          dk    sJ t	          dt          dk     fdt          t          t          d          t          dk               fd                               t          ddf          dk    sJ t	          dt          dk     fdt          t          d          t          t          k     z  fd                               t          ddf          dk    sJ d S )NrB   rF   rd   rC   r   r   re   r[   rY   rX   rE   TrZ      r]      )r2   rR   r&   r   r'   r3   r6   r   r   r*   ri   r%   r   rm   rc   r5   r   )rs   r   r   s      rL   test_issue_11045r7    s8   Q$q!tax..()Aq!955A==== aRAq1u--q1u556	 
 

)Q1I

!$ $ $ $ aQZ!QQY 
 

)Q1I

!$ $ $ $ aQZ!R1XX	 
 

)Q1I

!$ $ $ $ aQqS1q5[!a%0019 
 

)Q1I

!$ $ $ $ aAaC!a%KQ//0) 
 

)Q1I

!$ $ $ $ aQZ!QQY 
 

)Q1I

!$ $ $ $ aAE1acAg;//0) 
 

)Q1I

!$ $ $ $
 aAE1q5))*QAJ	 
 

)Q1I

!$ $ $ $ aAq]I 
 

)QAJ

1% % % % a!a%AE*+a!a%\ 
 

)Q1I

!$ $ $ $ 	1q1uQ'(1q1u,77A
C	Q1IA		
QA	QAa#a))	#c!Qii	/!&	8QN		d	     
 ;;1bz""affQmm3333;;1ay!!Q&&&&;;1ay!!S(((( 	1a!e*q#c!a%A&6&6"7"78)DDA;;1ay!!Q&&&& 		
CAq1u	
Bq1ua!e	
AE
	 	A ;;1bz""b(((( aQZ!SAq1q5%9%9!: 
 

)Q1I

!%( ( ( (aQZ!SAq1q5%9%9!:I 
 

)Q1I

!$ $ $ $aQZ!SAq1q5%9%9!:I 
 

)QAJ

1% % % % aQZ!R1XXQ%7!8) 
 

)Q1I

!$ $ $ $ $ $rK   c            
         t           } t          dt          dk     f                              t                    t          t          t          dk     f| df          k    sJ t          dt	          t          dk    t          dk               f                              t                    t          | t          dk     ft          t          dk     f| df          k    sJ t          dt	          t          dk    t          dk               f                              t          ddf          | u sJ t          dt	          t          dk    t          dk               f                              t          ddf          dk    sJ t          d          \  }}t          dd	          \  }}t          |t	          t          dk     |dk               f|t          t          dk     |dk              f                              t                    t          |t          z  |dk    ft          |t          z  t          dk     f|t          z  t          dk     f| df          |dk     ft          |t          z  t          dk     f| df          df          k    sJ d S )
NrB   rF   Tr   rd   r[   r$  za br   )r*   r'   rR   r2   r3   r   r6   )r   r&  r'  r   r   s        rL   
test_holesr9    sL   
CaQZ  **1--	
AE
S$K2! 2! ! ! ! !aQUAE**+,,66q99Y	a!eq!a%j3+>/ >/ / / / /aQUAE**+,,661ayAASHHHHaQUAE**+,,661ayAAQFFFF 5>>DAq5t$$$DAqaQUAE**+aAE1q51A1A-B 
 

)A,,)	
1q1u	AaCQ<!A#q1uT{	;	;QUC	AaCQ<#t	-	-t46 66 6 6 6 6 6rK   c                     d fd}  | d          dk    sJ t          d          }fd} ||          }|                    |d          dk    sJ t          dd	          } ||          }|                    |d          dk    sJ t          dt          d
k     fdt          d
k    f                                          t          dt          d
k     fdt          z  dz
  df          k    sJ d S )Nc                 H    t          d| dk     fd| dz  z
  | dk     fd          S )Nr   rE   rB   rF   rC   rI   r   s    rL   rx   ztest_issue_11922.<locals>.f  s-    !QVq1a4xQ&7CCCrK   c                      t                      t           | z             z                      t           ddf          S )NrE   rB   rR   r2   krx   s    rL   rM   z"test_issue_11922.<locals>.<lambda>  s5    	!qqQxxAr1:.. rK   gffffff?r   r?  c                 |    dt           dz  z
   t           | z             z                      t           ddf          S )NrB   rF   rE   r=  r>  s    rL   rM   z"test_issue_11922.<locals>.<lambda>  s6    	
QTQQq1uXXyy!R44 rK   rd   Tr   rB   r]   )r   rc   r'   rR   r2   )autocorrr?  good_autocorrr   rx   s       @rL   test_issue_11922rC    s>   D D D/ / / /H8C==1A5 5 5 5MaA66!Q<<1d###AaA66!Q<<1aQZ"qAv 
 

)++Aq1u:1r	4/@AAB B B B B BrK   c                     dt          dt          dk     fdt          z  dz   t          dk     ft          dt          dk    fd	          t          d
t          dk    fd          z   t          dk    fdt          z  dz   t          dk     fd          z  } t          | t          t           t          f          }|t	          | t          t           t          f                                          k    sJ t          |          dk    sJ t          dt          t          z
  dk     fd                              t                    t          dt          t          k    ft           t          z   df          k    sJ d S )NgJj?r   gf'vb'6TglAwg3؆P?rF   g333333?{   )gffffff?Tg?)g333333?Tg%єg%JM @g$I$w@rC   z1.00195081676351rB   T)r'   rR   r2   r   r1   rl   strri   )rx   r   s     rL   test_issue_5227rG    se   9a->)>%?	Q	!1	11q59	CS>;	/	/3A,,,
-.//	#A%(88!; $& & 	&A 	!a"b\""AQRL))..000000q66'''''aQ^Y 
 

)A,,)QQK1"q&$@@A A A A A ArK   c            
         t          dd          } t          dd          }t          dd          }t          dd          }t          dt          || k     ||k              fd          }t          dt          | |k    ||k               fd          }t          |||t          f          t          |||t          f          k    sJ t          d	t          d|k     || k               fd
          }t          d	t          | |k    |dk              fd
          }t          ||          }|t          d|dk    f||t          d|           k    ft          d|           df          k    sJ t          ||          }	|	|k    sJ |                    |ddf          t          dt          d|                     dz
  k    sJ |                    |ddf          t          dt          d|                     dz
  k    sJ d S )Nr   Tr   r   rR   ri   r   rD   rB   rC   rF   r[   )r   r'   r6   r2   r   r3   r$   r%   )
r   r   rR   ri   r   r   rv   rw   ip3ip4s
             rL   test_issue_10137rK    s   sAsAsAsA	Ar!a%Q''()	4	4B	Ar!a%Q''()	4	4BR!Q$$	"q!Rj(A(AAAAA	As1q5!a%(()9	5	5B	As1q5!a%(()9	5	5B
B

C)	
AF	
AQN	QD      B

C#::::<<Aq	""c!SAYY&7&7!&;;;;;<<Aq	""c!SAYY&7&7!&;;;;;;;rK   c                      d fd}  | t                     }|                    t           d          |                    t           d          k    sJ |                    t           d          dk    sJ t           t           t          z
             t                    z            t	          dt          dk    t          dk    z  t           t          z
  dk    z  t           t          z
  dk    z  fd	          k    sJ d S )
Nc                 <    t          d| dk    | dk    z  fd          S )NrB   rE   rC   rI   r   s    rL   rM   z-test_stackoverflow_43852159.<locals>.<lambda>1  s"    )QbQ!V 45yAA rK   c                     t           | t          z
             t                    z  t          t           t          
 f          S rH   )r2   ri   r   rR   rx   s    rL   rM   z-test_stackoverflow_43852159.<locals>.<lambda>2  s3    YqqQxx!}q2#sm<< rK   g      g      ?rd   r   rB   rE   rC   )rR   rc   r(   ri   r'   )Convcxrx   s     @rL   test_stackoverflow_43852159rR  0  s    AAA<<<<D	aB771drwwq#....771a==A!!AE((11Q44-((I	
Q"Wa AERK0AEQJ?@- -      rK   c                     t          dd          } t          ddd          }d }t           ||           | t           t          f          t          dz  k    sJ t          || z            t	          | dz            z  }t          || t           t          f          t          dd|z  z  |dz  z  d|dz  z  z
  t          |d	          ft          dz  df          k    sJ d
S )aD  
    # 3200 seconds to compute the fourier part of issue
    import sympy as sym
    x,y,z,t = sym.symbols('x y z t')
    k = sym.symbols("k", integer=True)
    fourier = sym.fourier_series(sym.cos(k*x)*sym.sqrt(x**2),
                                 (x, -sym.pi, sym.pi))
    assert fourier == FourierSeries(
    sqrt(x**2)*cos(k*x), (x, -pi, pi), (Piecewise((pi**2,
    Eq(k, 0)), (2*(-1)**k/k**2 - 2/k**2, True))/(2*pi),
    SeqFormula(Piecewise((pi**2, (Eq(_n, 0) & Eq(k, 0)) | (Eq(_n, 0) &
    Eq(_n, k) & Eq(k, 0)) | (Eq(_n, 0) & Eq(k, 0) & Eq(_n, -k)) | (Eq(_n,
    0) & Eq(_n, k) & Eq(k, 0) & Eq(_n, -k))), (pi**2/2, Eq(_n, k) | Eq(_n,
    -k) | (Eq(_n, 0) & Eq(_n, k)) | (Eq(_n, k) & Eq(k, 0)) | (Eq(_n, 0) &
    Eq(_n, -k)) | (Eq(_n, k) & Eq(_n, -k)) | (Eq(k, 0) & Eq(_n, -k)) |
    (Eq(_n, 0) & Eq(_n, k) & Eq(_n, -k)) | (Eq(_n, k) & Eq(k, 0) & Eq(_n,
    -k))), ((-1)**k*pi**2*_n**3*sin(pi*_n)/(pi*_n**4 - 2*pi*_n**2*k**2 +
    pi*k**4) - (-1)**k*pi**2*_n**3*sin(pi*_n)/(-pi*_n**4 + 2*pi*_n**2*k**2
    - pi*k**4) + (-1)**k*pi*_n**2*cos(pi*_n)/(pi*_n**4 - 2*pi*_n**2*k**2 +
    pi*k**4) - (-1)**k*pi*_n**2*cos(pi*_n)/(-pi*_n**4 + 2*pi*_n**2*k**2 -
    pi*k**4) - (-1)**k*pi**2*_n*k**2*sin(pi*_n)/(pi*_n**4 -
    2*pi*_n**2*k**2 + pi*k**4) +
    (-1)**k*pi**2*_n*k**2*sin(pi*_n)/(-pi*_n**4 + 2*pi*_n**2*k**2 -
    pi*k**4) + (-1)**k*pi*k**2*cos(pi*_n)/(pi*_n**4 - 2*pi*_n**2*k**2 +
    pi*k**4) - (-1)**k*pi*k**2*cos(pi*_n)/(-pi*_n**4 + 2*pi*_n**2*k**2 -
    pi*k**4) - (2*_n**2 + 2*k**2)/(_n**4 - 2*_n**2*k**2 + k**4),
    True))*cos(_n*x)/pi, (_n, 1, oo)), SeqFormula(0, (_k, 1, oo))))
    rR   Tr   r?  )r   finitec                 <    t          |  | dk    f| | dk    f          S Nr   rI   r   s    rL   rM   z"test_issue_12557.<locals>.<lambda>Z  s"    YAF|aQZ88 rK   rF   rE   r   N)r   r2   r   r,   r&   r'   r   )rR   r?  r   funcs       rL   test_issue_12557rX  ;  s    : 	$AT$///A88DTT!WWq2#rl++r1u4444qs88DAJJDTAsB<((I	
B71a4!AqD&	 "Q((+b!eT]-< -< < < < < < <rK   c                     ddl m}  t          d          \  }}}}t          d||k     ft          t          ||k    ||k               fd||k    f          }|                    |          }|t          d||k    f|t          z  |t          z  z
  |t          ||          k    f| t          z  t          t          ||          z  z   df          k    sJ  | t          d                    D ]}t          t          ||f|                    }t          dd          D ]k}	|                    |                              ||	          |                    |                              |                              ||	          k    sJ lt          |||          }
|                    |
          }t          | t          z  t          t          |t          ||                    z  z   ||k    fd          } | t          d                    D ]x}t          t          |||f|                    }|                    |                              |
                    |                    }||                    |          k    sJ y||k    sJ d S )	Nr   r   z
t0, t1 T tTrF   rE   rd   rC   )r   r   r   r'   rR   r3   r2   r$   r   r   r   xreplacerc   r   r%   )r   t0t1Tr   rx   ry   r   r   ttr   r   trus                rL   test_issue_6900r`  `  s   &&&&&&<((LBAq1a"f+3rQwB#7#781a2g,GGA	AA		
AG	
1r!tQ#b"++%&
Q3r2;;	%' ' ' ' ' ' \%((## : :CBOO$$1++ 	: 	:BJJt$$))!B//

4  **1--221R889 9 9 9 9	: 2q//C	CA

Q3q#b"++&&&	&B/ C \%((## ) )CBq	1%%&&jj((d););<<cll4(((((((888888rK   c            	      x   t          t          t                    t          t          dz
            z   dz
  dk    t                    t          t	          t
           t          k     t          t          j        k               t	          t          j        t          k     t          t
          k                         k    sJ d S )NrB   r   )	r;   absrR   r6   r3   r   r   ZeroOnerJ   rK   rL   test_issue_10122re  z  s    Q#a!e**$q(1,a 
 
RC!GQZ((#aeaiR*@*@AAB B B B B BrK   c                     t          dt          dk    fdt          t          k    ft          t          z  df          } | |                     t          t                    z
  dz  t          t          z
  dz  z  }t          dt                    }t          |t                                                    t          t          dt          dk    ft          dz   t          dz  t          z  t          dz  t          z  z
  z  t          t          dz  z  z   dt          z  t          t                     z  t          dz  z  z
  dt          z  t          t          t          z
            z  t          dz  z  z   t          t          dz  z  z
  t          |k    ft          dz   t          dz   t          z  t          dz  |z  z   z  dt           |z   z  z   dt          t          z
  z  z
  dt          z  t          t                     z  t          dz  z  z
  dt          z  t          t           |z             z  t          dz  z  z   t          t          dz  z  z
  |t          dz  z  z   df          t          t          k    t          dk    z  t          dk    t          t           k    z  z  ft          dt          t          z
  z  t          dk    ft          dz   t          dz  t          z  t          dz  t          z  z
  z  dt          z  t          z  t          dz  t          z  t          dz  t          z  z
  z  z   t          dz  t          dz  t          z  t          dz  t          z  z
  z  z
  dt          t                     z  t          z  z   dt          t          t          z
            z  t          z  z
  dt          z  z   t          t          dz  z  z   dt          z  t          t                     z  t          dz  z  z
  dt          z  t          t          t          z
            z  t          dz  z  z   t          t          dz  z  z
  t          |k    ft          dz   t          dz   t          z  t          dz  |z  z   z  dt          z  t          z  t          dz   t          z  t          dz  |z  z   z  z   t          dz  t          dz   t          z  t          dz  |z  z   z  z
  dt          t                     z  t          z  z   dt          t           |z             z  t          z  z
  dt          z  z   dt          z  t          t                     z  t          dz  z  z
  dt          z  t          t           |z             z  t          dz  z  z   t          t          dz  z  z
  |t          dz  z  z   df          t          t          k    ft          t          dz   t          dz  t          z  t          dz  t          z  z
  z  t          dk    ft          t          dz  z  t          t          dz  z  z   t          |k    ft          dz  t          dz   t          z  t          dz  |z  z   z  t          dz  t          dz  t          z  t          dz  t          z  z
  z  z
  dt          z  t          z  t          dz   t          z  t          dz  |z  z   z  z
  dt          z  t          z  t          dz  t          z  t          dz  t          z  z
  z  z   t          dz  t          dz   t          z  t          dz  |z  z   z  z   t          dz  t          dz  t          z  t          dz  t          z  z
  z  z
  t          t          dz  z  z   |t          dz  z  z   df          df          k    sJ d S )Nr   rB   TrF   rE   )
r'   rR   r   rc   ri   r$   r2   r
   r#   r   )ueMs      rL   test_issue_4313rj    s@   1a1f+16{QqS$K88A	
QVVAq\\	Aq1uqj(AAq		AQ""$$		QKdUAqDFQT!VO$qAv-!CGGAqD0@@!CAJJq!t#$&'1f-./1f6dUQTE!Gad1f$%A26
21q5	aCQBK1,-/0s3r8 4 4 0a40AqD&!#$QT6*+/1	
2 
2 q&Q!V	!q&Q"W!56	8 
QZa dUAqDFQT!VO$qs1uad1fq!tAvo'>>1ad1fq!tAvo&')*3r771578QU|A~F!1f s3r77{1a4/023A#c!a%jj.A2EF !Q$ Q  dUQTE!Gad1f$%!A1uQw1Q0 ) Q$Aa!Q$q& 012#qb''	!QBFmAo.01!4 !CGGAqD ! $%Q3sA26{{?1a4#78 !Q$	 1a4	  "&	'

( 

( 	
Q	 
dUAqDFQT!VO$a1f-q!tVa1f_a1f%TAqD57QT!V#$1ad1fq!tAvo&')*1QAa!Q$q&0@)AB!Aq!tAv1Q'(*+Q$Aa!Q$q&0@*AB 1ad1fq!tAvo&' *+1a40 34AqD&9 ;?@
A 
A 		+) )      rK   c            	         t          t          dz   t          t          d          f                              t                    dg fk    sJ t          dt          t          dz   k    ft          dt          t          dz   k     f          dt          z  dt          z  dz   k     fd                              t                    dt           t          ddfgfk    sJ t          dt          t          t                    fd                              t                    dt           t          ddfgfk    sJ t          t          t                     t          t                    dk    ft          t                    df                              t                    ddt          t          t                     dft           t          t          t                    dfgfk    sJ t          dt          t          dz            dk    fd                              t                    dd	d
t           t          ddfgfk    sJ d S )NrF   rd   TrB   rD   rC   r   rb   )rE   r   rB   r   )r   rB   rB   r   )r'   rR   r   
_intervalsr   r   r   r,   r-   r   r   rJ   rK   rL   test__intervalsrm    s    a!eR1XX&''22155$CCCC	
AAI	Aq1q5y>	"	"AaC!A#'M2  :a==TbS"aO+<$=> > > > aAq]I..99!<<#r1aA    s1vvgs1vv{+c!ffd^ 
 

*Q--D
R#a&&!	sBA2355 5 5 5
 aQW)*I 
 

*Q--D	sB1o688 8 8 8 8 8rK   c            	         g d\  } }}}}t          |t          dk    f|df          t          | t          t          dz
            dk     f|t          t          dz
            dk     f|df          z  }|                    t                                        t                    t          ||z  t          dk    f| |z  t          dk    f| |z  t          dk     f||z  t          dk     f||z  df          k    sJ d S )N)rB   rF   rd   r[   re   rB   TrF   r   r[   )r'   rR   r   r2   r	   )r   r   r   r   rh  rs   s         rL   test_containmentro    s    #OOMAq!Q	Aq1u:4y	)	)1c!a%jj1n%3q1u::>':QIFF
GA;;q>>q!!Y	
1a1f	
1a1f	
1a!e	
1a!e	
1d& &      rK   c                     t          t          dz
            } t          | t          t           t          f          dk    sJ t          | t          ddf          dk    sJ t	          | t          t          d          fd                              t                    dk    sJ t	          | t          dk     fd                              t                    t	          t          t          dz
            t          dk     fd          k    sJ d S )NrB   r   rF   rC   rD   )r.   rR   r2   r   r'   r   r/   )d1s    rL   test_piecewise_with_DiracDeltarr    s    	AE		BR!bS"&&!++++R!Q##q((((b"Q((^Y//99!<<AAAAb!a%[),,66q99Y	1q5		1q5!9>. >. . . . . . .rK   c                     t          dt          dk     fd          j        J t          dt          dk     fd          j        du sJ t          dd          } t          dt          dk     f| df          j        sJ t          dt          dk     f| t          d	k     f          j        J t          d          } t          dt          dk     f| df          j        J t          dt          dk     fd          j        J t          dt          dk     fd
          j        sJ t          dt          dk     ft
          df          j        J t          dt          dk     fd          j        sJ t                      }t          |t          dk     f          j        J t          dt          dk     fd
          d	k     }|dk    sJ t          |          dk    sJ d S )Nr   rB   rD   rE   Fr   T)zerord   rX   )	r'   rR   is_zeror   
is_nonzeror   	is_finiter   r(   r   r   r   s      rL   test_issue_10258ry    s   aQZ++3;;;b!a%[),,4====sAaQZ!T++3333aQZ!QU,,4<<<sAaQZ!T++3;;;aQZ++6>>>aQZ++6666aQZ"d,,6>>>aQZ++5555AaQZ  *222 	1a!e*i((1,A9999!$$$$$$rK   c                     t          t          t          dk    fd          t          t          t          dk    fd          }} | |z  }t          |          }dD ]<}|                    t          |          |                    t          |          k    sJ =| |z   }t          |          }dD ]<}|                    t          |          |                    t          |          k    sJ =d S )NrB   rX   rd   r   )r   rF   r[   )r'   rR   r(   rc   )r   r   mrx   r   s        rL   test_issue_10087r|    s    aQZ++Y1q5z9-M-MqA	!AqA , ,vva||qvva||+++++	AAqA , ,vva||qvva||+++++, ,rK   c            
      ~   t          d          } t          d          }t          | d         |dk     f| d         df          }t          | d         |t          dd          k     f| d         df          }t          ||z  |ddf          | d         | d         z  dz  d| d         z  | d         z  dz  z   | d         | d         z  z   k    sJ t          d|dk     fd	          }t          d|dk     fd
          }t          ||z  |ddf          dk    sJ t          dd          }t          dd          \  }}} }}t	          t          d||k    |dk     z  || k    z  f|df          |d|f          } |j                    }	|	t          d|| k    f|t          ||          z  |t          d|          z  z
  df          k    sJ dD ]t}
t          dd          D ]a}t          | d|          D ]L}|| k    |
f||f||fg}|	                    |           |j        |                                          k    sJ Mbud S )Nzc:5rR   rB   rF   Trd   r[   r   rX   rC   rY   ri   r   z	a,b,c,x,zr   )TF)	r   r'   r   r2   r1   rl   r%   r   rc   )r   rR   r   r   ri   r   r   r?   r   r   rq   r   zzr   s                 rL   test_issue_8919r    s   AA	AaD!a%=1Q4,	/	/B	AaD!hq!nn,-!d|	<	<BRUQ1I 
 
qT!A$Yq[1QqT6!A$;q=(1Q4!945 5 5 5	Aq1u:y	)	)B	Aq1u:y	)	)BRUQ1I&&!++++d###AKd333MAq!Q	
Q!VA!a%()	
D	 1I	 	A !&((C)QAJ3q!99qQ{)BD(IJJJJJJ > >A;; 
> 
>RbS!R(( > >a%B!R9&!&,,*;*;*=*======>
>> >rK   c                  t   t          d          } t          dt           | t                    dz
  d          fdt          dz
  dk     fd          }|                    t                    t          |t                    k    sJ |                    t          ddf          t          |t          ddf          k    sJ t          |t          ddf                               | t                    t          dz                                            dk    sJ |                    t                    t          t          t           | t                    d          t          dk     t           | t                    d          z  z  fdt          z  t          t           k    t          dk     z  fd          k    sJ d S )	Nrx   rB   r   rF   r]   rC   re   g      $@)
r   r'   r   rR   r2   r1   rc   r`   ri   r   )rx   rs   s     rL   test_unevaluated_integralsr    sp   A1b11oo&AFQJCCA;;q>>Xa^^++++;;1ay!!Xa!Q%;%;;;;; A1ay!!&&qqttQqS113355==== ;;q>>Y	
BqqttQKKAFb1qkk123	
1qB3w1r6"#Y0 0 0 0 0 0 0 0rK   c            
      :   t          d          \  } }}t          t          t          t          dk     t          dk    ft          dk    df          f          t          t          t	          t          dk    t          dk     t          dk              f          k    sJ d S )Nza:crB   r   T)r   r'   rR   ri   r4   rx  s      rL   %test_conditions_as_alternate_booleansr    s    ennGAq!aAE1q5>AE4=AAB 
 
3q1ua!eQU334556 6 6 6 6 6rK   c            
         t          d          \  } }d  t          dk     ft          dk    f          t          t          dk               k    sJ  t          dk     ft          t          k     f          t          t          dk               k    sJ  t          dk     ft	          t
          dk     t          t          k               f| t
          dk    f          t          t          dk               k    sJ  t          dk     fdf          t          t          dk               k    sJ  t          dk     ft          dk     f| df          t          t          dk     t          t          dk     |                     k    sJ  t          dk     ft
          dk     f| df          t          t          dk     t          t
          dk     |                     k    sJ  t          dk     ft          t          k     f| t
          dk     f          t          t          dk               k    sJ  t          dk     f| t
          dk     ft          t          k     f|df          t          t          dk     t          t
          dk     |                     k    sJ  t          dk     ft	          t          t          k     t
          dk               f          t          t          dk               k    sJ t          t          fd           t          t          fd           t          t          fd	           d S )
Nza:dc                  D    t          |                      t                    S rH   )r'   r   r4   )r   s    rL   _ITEz+test_Piecewise_rewrite_as_ITE.<locals>._ITE   s    $'',,,rK   rB   r   TrF   c                  P      t           dz   t           dk     ft           df          S rW   r   )r  s   rL   rM   z/test_Piecewise_rewrite_as_ITE.<locals>.<lambda>2  s#    ddAE1q5>At9== rK   c                  f      t           t           t          k     ft          t           k    f          S rH   )rR   ri   )r  r   s   rL   rM   z/test_Piecewise_rewrite_as_ITE.<locals>.<lambda>6  s#    aQZ!Q!V(E(E rK   c                  H      t           dk     ft           dk    f          S )NrF   rd   r   )r  r   r   s   rL   rM   z/test_Piecewise_rewrite_as_ITE.<locals>.<lambda>7  s#    ttQAJAE
;; rK   )
r   rR   r4   r   r6   ri   r<   rh   r   
ValueError)r   r   r  r   r   s     @@@rL   test_Piecewise_rewrite_as_ITEr    sv   JAq!Q- - - 4AE
QQK((CAq!,<,<<<<<4AE
QBK((CAq!,<,<<<<<4AE
Q1q5!b& 1 12QAJ  Aq!$$% % % %4AE
QI&&#a!eQ*:*:::::4AE
QAJD	  Aq#a!eQ"2"2334 4 4 44AE
QAJD	  Aq#a!eQ"2"2334 4 4 44AE
QBK!QU  Aq!$$% % % %4AE
QAJAFaY  Aq#a!eQ"2"2334 4 4 44AE
Q1r61q5 1 12  Aq!$$% % % %
9====>>>  E E E E EFFF
:;;;;;;<<<<<rK   c                      t          t          t          t                              t          ddt          z  f          dk    sJ d S )Nr   rF   r[   )r2   rb  r-   rR   r   rJ   rK   rL   test_issue_14052r  :  s9    SQ[[1a2,//1444444rK   c            	         t          t          dt          fdt          fd          t          dt          fd          z             t          dt          fdt          fd          k    sJ t          t          dt          fd	t          fd
          t          dt          fd          z            t          dt          fdt          fd          k    sJ t          t	          d t          d          D                        t          dt          fd          k    sJ t          t          d t          dd          D                        t          t          d          t          fd          k    sJ d S )NrB   rF   r  r5  )   T	      )r6  Trd   r  rZ   )r   Tr   !   )7   Tc                 <    g | ]}t          |t          fd           S rC   r'   r   r   s     rL   r   z$test_issue_14240.<locals>.<listcomp>H  s3      9  9  9)*	1a&)$$ 9  9  9rK   (   i  rC   c                 <    g | ]}t          |t          fd           S r  r  r   s     rL   r   z$test_issue_14240.<locals>.<listcomp>K  s3      <  <  <)*	1a&)$$ <  <  <rK   )   )r(   r'   r   r   r   r   r   r   rJ   rK   rL   test_issue_14240r  >  s   1a&1a&),,1a&*%%	&
 
 1vAw
334 4 4 4 1a&1a&),,1a&*%%	&
 
 AwQ445 5 5 5
 #  9  9.3Bii 9  9  9 : 
 
Qx++, , , , #  <  <.3Arll <  <  < = 
 
	"q)9556 6 6 6 6 6rK   c                      t          d          } t          | | dk     ft          d          dz  df          }t          |                                          dk    sJ d S )NrR   rB   :   rZ   Tz/Piecewise((x, x < 1), (8.28571428571429, True)))r   r'   r   rF  rk   rO  s     rL   test_issue_14787r  P  sY    sA1a!e*"	D122Aqwwyy>>NNNNNNNrK   c                     t          d          \  } }t          d| dk    |dk    z  | dk    | dk     z  |dk     z  z  |dk    | dk     z  t          t          |d          d          z  z  |dk    | dk    z  | dk     z  t          t          |d          d          z  z  ft          j        | dk    |dk     z  | dk    |dk    z  | dk     z  z  |dk    | dk     z  t          t          |d          d          z  z  |dk    | dk    z  | dk     z  t          t          |d          d          z  z  ft          j         t          t          |d          d          |dk    | dk     z  |dk    | dk    z  | dk     z  z  z  fd|dk    | dk     z  t          t          |d          d          z  |dk    | dk    z  | dk     z  t          t          |d          d          z  z  f          }t          dt          | d          t          |d          z  t          | d          t          t          |d          d          z  z  fdt          | d          |dk    z  fdt          | d          t          t          |d          d          z  f|t          t          |           d          t          t          |          d          z  f          }t          |          }|                                }|                                }ddt          j         dt          j        ddf}|D ]A}|D ]<}	| |||	ifd||||fD             }
t          t          |
                    dk    sJ =Bd S )Nzb erF   rB   r   rE   rb   c                 :    g | ]}|                               S rJ   )rZ  )r   r?  r   s     rL   r   z$test_issue_21481.<locals>.<listcomp>w  s#    888A!**Q--888rK   )r   r'   r   r   r   rm   r   r(   r   lenset)r   rh  Cr&  r'  sasbr   r   r   okr   s              @rL   test_issue_21481r  U  s   5>>DAq	

a%AE	
a%AE	a!e	$	&
q&QV	r#a))Q//	/	1 r'a"f	Q	'"SAYY*:*:	:	<	=
 

a%AE	
a%AE	a!e	$	&
r'a"f	3q!99a 0 0	0	2 q&QV	A	&C1IIq)9)9	9	;	<
 &
3q!99a7q2v
AFq2v#6!a%#@	A	C	D 

q&QV	r#a))Q//	/
r'a"f	Q	'"SAYY*:*:	:	<	=	 	A$ 		
Bq!HHr!Qxx2a99r#a))Q/?/?#?@A	
Bq!HHA	R2YYC1IIq)))*	
Br!uuaLL2beeQ<<'(		 	A 	qA	
B	
B	R!&!QVQ*A % % 	% 	%A1a
A8888!QB888Bs2ww<<1$$$$$	%% %rK   c            	      8   t          d          \  } }t          dt          | d          ft          |           df          }|                                t          |           k    sJ t          | t          | d          fd| z  |dz
  dz  z   t          | d          t          | |z   d          z  ft          |           df          }|                                t          |           k    sJ t          | dz   t          | d          fd| z  |dz
  dz  z   t          | d          t          | |z   d          z  ft          |           df          }|                                t          dt          | d          ft          |           df          k    sJ d S )Nr   r   Tr[   rF   rB   rE   )r   r'   r   r-   r   )rR   ri   r   ru   rv   s        rL   test_issue_8458r  {  sf   5>>DAq	Ar!Qxx=3q664.	1	1B;;==CFF""""	Ar!Qxx=1Q3!A#>2a88b1ajj3H"ICPQFFTX>	Z	ZB;;==CFF""""	AaCAr#acQqS1HnbAhhAaC6K%LsSTvvW[n	]	]B;;==Iq"Q))ns1vvtnEEEEEEEErK   c                  h   t          d          } t          t          dt          t	          t          |           d          t          t          |           d                    fd          sJ t          d          }t          t          t          j	        t          |          dk     fdt          t          |          dk    t          t          |          d                    ft          j        df          sJ t          dd          }t          t          j	        t          |          dk     fdt          t          |          dk    t          t          |          d                    ft          j        df          }|t          t          j	        |dk     fd|dk    ft          j        dfd	
          k    sJ t          |z  }t          t          j	        t          |          dk     fdt          t          |          dk    t          t          |          d                    ft          j        df          }|t          dt          t          |          d          ft          j        dfd	
          k    sJ |t          dt          |d          ft          j        dfd	
          k    sJ d S )Nr?   rB   r   rX   rR   Tr   r   FrN   )r   r   r'   r6   r   r   r   r    r   Pir   r   r   )r?   rR   r   rs   r   s        rL   test_issue_16417r    si   sAYBr"Q%%||R1q\\$B$B CYOOOOOsAYr!uuqy 1R1	2beeQ<<001%          	sA14A#R1	2beeQ<<001%	  	 A 	14Q-QU%0 0 0 0 0 0 0 	
!A14A#bABr!uuaLL1125$-	! 	!A 	1bAll+5$-%9 9 9 9 9 9 9	1bAhh-5$-%9 9 9 9 9 9 9 9 9rK   c            
         t          d          \  } }}}}}t          fd}t          dt          | |          fd          } ||          d | |          z
  k    sJ t          | t          |d          f|t          |d          f|df          } ||          | d|          z   d|          z  | d|          z  z
  | d|          z  z
  |z   |  d|          z  z   | d|          z   d|          z  z
  | d|          z  z   k    sJ t          dt	          | |          fd          }	 ||	          d | |          z
  k    sJ t          dt          | d          fd	d
          }
 ||
          dd d|           z  z
  k    sJ t          dt	          | d          fdt          |d          fd
          } ||           d|             d|          z  d d|           z  z   dz   k    sJ t          dt	          | d          t	          |d          z  fd          } ||           d|             d|          z   d|           z    d|          z   k    sJ t          dt          |d          t	          | d          z  fd          } ||           d|             d|          z   d|          z   dz   k    sJ t          dt          | d          t	          |d          z  fd          } ||          d d|          z   d|           z  d d|           z  z   dz   k    sJ t          dt          | d          t          |d          z  fd          } ||          d d|          z   d|           z  dz   k    sJ t          dt	          | d          t	          |d          z  fd          } ||          d d|           z   d|          z  dz   k    sJ t          dt          |d          t	          | d          z  fd          } ||           d|             d|          z   d|           z   dz   k    sJ t          dt          | d          t	          |d          z  fd          } ||          d d|           z   d|          z  d d|          z  z   dz
  k    sJ t          dt          | d          t          |d          z  fd          } ||          d d|           z   d|          z  d d|           z  z   d d|          z  z   dz   k    sJ t          dt	          | d          t	          |d          z  fd          } ||          d d|           z   d|          z  dz   k    sJ t          dt          | d          t	          |d          z  fdt          | d          t          |d          z  fd          } ||          d d|          z   d|           z   d|           z   d|          z   d|           d|           z  z   d d|          z   d|           z   d|          z  z    d|          z
  dz   k    sJ t          dt	          ||          fd          t          dt	          ||          fd          z  t          dt	          ||           fd          z  t          dt	          ||           fd          z
  } ||           ||           ||          z   ||           z   ||           z
  k    sJ t          dt	          ||           t	          ||          t	          ||          z  t	          ||           z  z  fdt	          ||           fdt	          ||          t	          ||          z  t	          ||           z  fd          } ||           ||           ||          z   ||           z   ||           z
  k    sJ t          dt          |d          t          | d          t          | |          z  z  fd	          } ||          d d|           z   d|          z   | |          z  d d|           z   | |          z  z
  d d|          z  z
  dz   k    sJ t          d| dk    fd          } ||          |k    sJ t          dt          | dk     | dk              fd          } ||          |k    sJ t          dt          | dk    | dk               fd          } ||          |k    sJ t          dt          |d          t	          | d          z  t	          | d          t	          |d          z  z   fd          } ||           d|           d|           z   d|           d|           z  z
   d|           z
  dz   k    sJ d S )Nzx y z n t mc                 H    t          |                                         S rH   )r
   r   )rs   Ks    rL   rM   z5test_eval_rewrite_as_KroneckerDelta.<locals>.<lambda>  s    &1&& rK   r   rD   rB   TrC   rd   r  r  r[   rF   r   rY   re   rX   rE   rb   r   r\   r5  )r   r0   r'   r   r   r3   r6   )rR   ri   r?   r`   r   r{  rx   r   ru   rv   rw   r}   r~   r   r  p9p10p11p12p13p14p15p16p17p18p19p20p21p22r  s                                @rL   #test_eval_rewrite_as_KroneckerDeltar    s   }--Aq!Q1A&&&&A	Ar!Qxx=)	,	,B1R55A!QK	Ar!Aww<!R!WW4y	9	9B1R55Aaa1ggIaa1gg%!!Aq''	1Aaa1ggI=AQQq!WW91ay1a()+,QQq!WW95 5 5 5 5 
Ar!Qxx=)	,	,B1R55A!QK	Ar!Qxx=)Y	7	7B1R55A!!Aq''	M!!!!	Ar!Qxx=1bAhh-	;	;B1R55QQq!WWHQQq!WW$q1ay0144444	Ar!Qxx"Q((*+Y	7	7B1R55QQq!WWHQQq!WW$qqAww.1a88888	Ar!Qxx"Q((*+Y	7	7B1R55QQq!WWHQQq!WW$qqAww.22222	Ar!Qxx"Q((*+Y	7	7B1R55BqqAwwJqqAww&11Q772Q66666	Ar!Qxx"Q((*+Y	7	7B1R55A!QK!!Aq'')A-----
Q1b		Bq!HH,-y
9
9C1S66R!!B((]QQq!WW,q00000
Q1a2a99,-y
9
9C1S66aaAhhYqqAww&2q1A55555
RAqBq!HH,-y
9
9C1S66R!QZ!Q'!AAaGG)3a77777
Q1a2a88+,i
8
8C1S66R!QZ!Q'!AAaGG)3a!Qi?!CCCCC
Q1a2a88+,i
8
8C1S66Q1a[11Q77*Q.....
Q1a2a88+,q"Q((R1XX2E.F	
R
RC1S66R!QZ!Q'!Q/!Q7!!Aq''!!Aq''/IQQq!WW9QQq!WWQQq!WW$%'(qAww/123 3 3 3 3 Q1aM9
-
-iBq!HHy.Q.Q
QaAq]I../1:Ar!Qxx=)1T1TUC1S66QQq!WWQQq!WW_QQq!WW,qqAww66666
Q1aBq!HHr!Qxx$7"Q(($BCD1aMB1a2a88(;bAhh(F#GT TC1S66QQq!WWQQq!WW_QQq!WW,qqAww66666
RAqR2YYAq%9:;Y
G
GC1S66QqqQxxZ!Q'!Q/!AAb!HH*QQq!WW2DDq1ayPSTTTTTT
QAJ	
*
*C1S66S====
QAE1r6**+Y
7
7C1S66S====
Q1q5!a%(()9
5
5C1S66S====
Q2a99r!Qxx/Bq!HHr!Ryy4HIJKY
W
WC1S66QQr1XXaa1gg%"a1a(8811Q77BQFFFFFFFrK   c                  f    ddl m} m}  | ddd          } | ddd          } |||z              d S )Nr   )Uniformdensityu1rB   u2)sympy.statsr  r  )r  r  r  r  s       rL   test_identical_conds_issuer    s\    ,,,,,,,,	q!		B	q!		B GBGrK   c            	          t          dt          dk    f          } t          | t          dt          dd          f          }t	          |          dk    sJ d S )NrB   i`	  r   z252.4   z252.400000000000000000000000000)r'   rR   r2   r   rF  )rx   r   s     rL   test_issue_7370r    sU    1a4i.!!A!aE'2../00Aq666666666rK   c            	      r   t          d          } t          d          }t          ddd          }||d         | |d         i}t          dt          |dk    | dk     d          f          }|                    |          t          dt          |d         dk    |d         dk     d          f          k    sJ d S )NrR   ri   inprB   )r   r   r   T)r   r7   r'   r4   rZ  )rR   ri   r  rep_dictrs   s        rL   test_issue_14933r    s    sAsA
ua
#
#C3t9aT+H1c!a%Q--.//A::h9aSY]CIPQMSW1X1X-Y#Z#ZZZZZZZrK   c                  2    t          t          d            d S )Nc                  |    t          t          t          dk     fdt          dk    f                                          S )Nr   rB   )r'   rR   ri   r,  rJ   rK   rL   rM   z"test_issue_16715.<locals>.<lambda>  s,    	1ac(Q!H(E(E(W(W(Y(Y rK   )r<   r   rJ   rK   rL   test_issue_16715r    s    
 Y YZZZZZrK   c                  h   t          dd          \  } }t          dd          }t          |t          j        z
  z  }t	          t          ||z            |d| f          }|                                dt          t          | z  d|z  dz
  z  dz            z  dz
  t          d|z  dz
  z  z  k    sJ d S )	Nzt tauTr   r`   r   r   rF   rB   )r   r   r   rm   r2   r"   r   )r   taur`   lameqs        rL   test_issue_20360r    s    W4(((FAsT"""A
AF

C	3sSy>>CA;	/	/B;;==Qs2a41q>!#3444q82qsQw<HHHHHHHrK   c                     d }  | t          t          t          t           k    t          dk     z  f                    t          t           k    t          dk     z  k    sJ  | t          t          t          t           k    t          t          k     z  f                    t          t           k    t          t          k     z  k    sJ  | t          t          t          dk    t          dk     z  f                    t          dk    t          dk     z  k    sJ  | t          t          t          dk    t          t          k     z  f                    t          dk    t          t          k     z  k    sJ  | t          t          t          dk    t          t           k    z  f                    t          dk    t          t           k    z  k    sJ  | t          t          t          dk    t          dk    z  f                    t          dk    t          dk    z  k    sJ  | t          t          t          dk    t          dk     z  f                    t          dk    t          dk     z  k    sJ  | t          t          t          dk    t          t          k     z  f                    t          dk    t          t          k     z  k    sJ  | t          t          t          dk    t          dk    z  f                    t          dk    t          dk    z  k    sJ  | t          t          t          t          k    t          t           k    z  f                    t          t           k    t          t          k    z  k    sJ  | t          t          t          t          k    t          dk    z  f                    t          dk    t          t          k    z  k    sJ  | t          t          t          t           k    t          dk     z  f                    t          dk     t          t           k    z  k    sJ  | t          t          t          t           k    t          t          k     z  f                    t          t          k     t          t           k    z  k    sJ  | t          t          t          t           k    t          dk    z  f                    t          dk    t          t           k    z  k    sJ  | t          t          t          t           k    t          t          k    z  f                    t          t          k    t          t           k    z  k    sJ  | t          t          t          dk    t          t          k    z  f                    t          dk    t          t          k    z  k    sJ  | t          t          t          t	          t
                              dk    t          t	          t
                              dk     z  f                    t          t	          t
                              dk    t          t	          t
                              dk     z  k    sJ d S )Nc                 &    | j         d         j        S rV  )r   rq   r   s    rL   rM   z%test_piecewise_eval.<locals>.<lambda>  s    !&). rK   rd   r   rB   )r'   rR   r   r   r   r   r   s    rL   test_piecewise_evalr    s    	! A1YAGA./00 
 
B3w1q5!# # # #1YAGB/011 
 
B3w1r6"$ $ $ $1YAFq1u-.// 
 
2v!a% " " " "1YAFq2v./00 
 
2v!b&!# # # #1YAFqB3w/011 
 
Av!rc'"$ $ $ $1YAFq2v./00 
 
Av!b&!# # # #1YAGA./00 
 
Bw1q5!# # # #1YAGB/011 
 
Bw1r6"$ $ $ $1YAGQ/011 
 
Bw16"$ $ $ $ 1YAGRC0122 
 
2#g!r'"# # # #1YAGB/011 
 
"fb!" " " "1YA"HQ/011 
 
!ebS!" " " "1YA"HR0122 
 
"frc"# # # #1YA"Ha0122 
 
1frc"# # # #1YA"Hb1233 
 
2g!s(#$ $ $ $1YAGR0122 
 
2g!r'"# # # #1YCAKK1,SVVqABCC 
 
#a&&kkQ3s1vv;;?34 4 4 4 4 4rK   c                      t          dd          } t          d| z  | dk    fd| z  df          }t          ||           t          t          |            | dk    ft          |           df          k    sJ d S )NrR   Tr   rE   r   rB   )r   r'   r2   r#   rO  s     rL   test_issue_22533r  G  s|    sA2616"QUDM22AQ??i#a&&!q&(9CFFD>JJJJJJJJrK   c                      t          dt          dk    fdt          dk    fdt          dk    f          t          dt          dk    fd          k    sJ d S )NrB   rF   rd   rX   rQ   rJ   rK   rL   test_issue_24072r  M  s`    aQZ!Q!Vq!q&k 
 
1q5z9--. . . . . .rK   c                  :   t          dd          } t          d| dk     ft          d| z
            df          }|                    | t                    J |                    | d          dk    sJ |                    | d          dk    sJ |                    | d          dk    sJ |                    | d	          dk    sJ |                    | t          d
                    dk    sJ |                    | t          d
d                    dk    sJ dS )z9 Issue 24127: Tests eval_is_meromorphic auxiliary method rR   Tr   rB   r   NrE   FrF   r   )r   r'   r&   is_meromorphicr   r   rO  s     rL   #test_piecewise__eval_is_meromorphicr  R  s5   $A1a!e*tAE{{D122AAq!!)))Ar""d****Aq!!T))))Aq!!U****Aq!!T))))Avc{{++t3333Avc55566$>>>>>>rK   N)sympy.concrete.summationsr   sympy.core.addr   sympy.core.basicr   sympy.core.containersr   sympy.core.exprr   sympy.core.functionr   r	   r
   sympy.core.mulr   sympy.core.modr   sympy.core.numbersr   r   r   r   r   r   sympy.core.relationalr   r   r   r   sympy.core.singletonr   sympy.core.symbolr   r   (sympy.functions.combinatorial.factorialsr   $sympy.functions.elementary.complexesr   r   r   r   r   r    r!   &sympy.functions.elementary.exponentialr"   r#   (sympy.functions.elementary.miscellaneousr$   r%   r&   $sympy.functions.elementary.piecewiser'   r(   r)   r*   r+   (sympy.functions.elementary.trigonometricr,   r-   'sympy.functions.special.delta_functionsr.   r/   (sympy.functions.special.tensor_functionsr0   sympy.integrals.integralsr1   r2   sympy.logic.boolalgr3   r4   r5   r6   "sympy.matrices.expressions.matexprr7   sympy.printingr8   sympy.sets.containsr9   sympy.sets.setsr:   sympy.solvers.solversr;   sympy.testing.pytestr<   r=   sympy.utilities.lambdifyr>   r   r   r   r   rR   ri   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-  r0  r3  r7  r9  rC  rG  rK  rR  rX  r`  re  rj  rm  ro  rr  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rJ   rK   rL   <module>r     s   ) ) ) ) ) )       " " " " " " ' ' ' ' ' ' % % % % % % 8 8 8 8 8 8 8 8 8 8             @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 2 2 2 2 2 2 2 2 2 2 2 2 " " " " " " / / / / / / / / > > > > > > b b b b b b b b b b b b b b b b b b = = = = = = = = E E E E E E E E E EB B B B B B B B B B B B B B ? ? ? ? ? ? ? ? K K K K K K K K C C C C C C ; ; ; ; ; ; ; ; 3 3 3 3 3 3 3 3 3 3 3 3 ; ; ; ; ; ;             ( ( ( ( ( ( $ $ $ $ $ $ ' ' ' ' ' ' - - - - - - - - - - - - - -7;'' 1aAqGCWA WA WAt' ' '
9 9 9.  4 & & &R * * *Z
= 
= 
=H H H= = =4 =L =L =L@L L L
a a a iK iK iKX@' @' @'F7 7 7:/ / /0% % %
4 
4 
4# # #
    6 6 6<*F *F *FZ  $ $ $( ( (&+ + +*I I I	 	 	K K K  = = =G$ G$ G$T6 6 6(B B B$A A A< < <*  #< #< #<J  4B B B
     F8 8 8$	 	 	. . .% % %*	, 	, 	,> > >20 0 0"6 6 6= = =:5 5 56 6 6$O O O
#% #% #%L
F 
F 
F9 9 9@IG IG IGX   7 7 7[ [ [[ [ [I I I)4 )4 )4XK K K. . .

? 
? 
? 
? 
?rK   