
    oVhX                        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mZmZmZmZmZ d dlmZ d dlmZmZmZ d d	lmZmZ d d
lmZ d dlmZm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4e*d        Z5d Z6d Z7d Z8d Z9d  Z:d! Z;d" Z<d# Z=d$ Z>d% Z?d& Z@d' ZAd( ZBd) ZCd* ZDd+ ZEd, ZFd- ZGd. ZHd/ ZId0 ZJd1 ZKe*d2        ZLd3 ZMd4 ZNd5 ZOd6 ZPd7 ZQd8 ZRd9 ZSd: ZTd; ZUd< ZVd= ZWy>)?    )abc)Sum)Add)
DerivativeFunctiondiff)Mul)FloatIIntegerRationaloopi)S)SymbolWildsymbols)explog)sqrt)cossin)meijerg)Poly)collect)signsimp)XFAILc                  p   t        d      } t        t        d      \  }}}}}| }|j                  |       i k(  sJ |j	                  |       i k(  sJ |j                  |      || ik(  sJ t        d      }|j                  |      |dik(  sJ |j                  |      i k(  sJ |j                  |dz         J y )Nxabcpq      )r   mapr   matchmatchesr   )r   abcpqes          K/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_match.pytest_symbolr-      s    sAg&MAq!Q	A771:99Q<2771:!QA771:!Q771:771q5>!!!    c                     t        t        d      \  } }}}}t        t        d      \  }}}||z   }|j                  ||z         ||ik(  sJ |j                  ||z         ||ik(  sJ d|z   }|j                  ||z         |dik(  sJ ||z   |z   }|j                  ||z   |z         ||ik(  sJ |j                  ||z   |z         ||ik(  sJ ||z   |z   | z   }|j                  ||z   | z   |z         ||ik(  sJ |j                  ||z   |z   | z         ||ik(  sJ |j                  |      J |j                  ||z         |||z   | z   ik(  sJ |j                  ||z   |z         ||| z   ik(  sJ |j                  ||z   |z         ||| z   ik(  sJ d| z  dz   }|j                  d| z  |z         |dik(  sJ |j                  d| z  |z         || dz   ik(  sJ |j                  || z  dz         |dik(  sJ y )Nxyabcpqrr"      r!      )r#   r   r   r$   	r   yr&   r'   r(   r)   r*   rr+   s	            r,   test_addr7   #   sJ   (MAq!Q$GAq!	AA771q5>aV###771q5>aV###	AA771q5>aV###	A	A771q519!Q'''771q519!Q'''	A	AA771q519q=!aV+++771q519q=!aV+++771:771q5>aQ^+++771q519!QU+++771q519!QU+++	!aA771Q371v%%%771Q371q5z)))771Q371v%%%r.   c                     t        t        d      \  } }}}}t        t        d      \  }}}| |z   |z  }|j                  ||z        || |z   ||ik(  sJ |j                  ||z        J | |z   | |z   z  }|j                  ||z        || |z   ik(  sJ |j                  ||z        || |z   || |z   ik(  sJ d| z  dz  }|j                  |||z  z        |d|| |dik(  sJ t	        d      }|j                  | |z        |dik(  sJ y )Nr0   r1      r2   r"   r   )r#   r   r   r$   r   r4   s	            r,   
test_powerr:   @   s4   (MAq!Q$GAq!	
Q
A771a4=QAq!,,,,771a4=   	
Q!a%A771a4=QAJ&&&771a4=QAq!a%0000	
1qA771QT6?q!Q1a0000
A771a4=QF"""r.   c                     t        d      } t        d      }t        d      }t        d      }t        d      }t        d      }|j                  d|z        |dik(  sJ dd	| z  d
z   z  }|j                  d|| z  |z   z        |d	|d
ik(  sJ dd	| z  d
z   z  }|j                  ||| z  |z   z        |d|d	|d
ik(  sJ d| dz   z  }|j                  ||| z  |z   z        |d|d|dik(  sJ d| dz   z  }|j                  ||| z  |z   z        |d|d|dik(  sJ d	| z  d
z   }|j                  || z  |z         |d	|d
ik(  sJ d	| z  d
|z  z   dz   }|j                  || z  ||z  z   |z         |d	|d
|dik(  sJ t        d| g      }d| z  }|j                  || z        |dik(  sJ |j                  || z        |dik(  sJ d| dz  z  }|j                  || z        |d| z  ik(  sJ |j                  || z        J d| z  dz   d| z  z   }|j                  || dz  z  || z  z   d|z  z         |d| z  ik(  sJ |j                  || dz  z  || z  z   d|z  z         J y )Nr   r5   r)   r*   r6      r9   r3   r2   r!   r"   r&   exclude)r   r   r   r$   )r   r5   r)   r*   r6   r+   r&   s          r,   test_match_excluder?   S   s   sAsAS	AS	AS	AA771Q3<Aq6!!!	1Q37A771acAg;Aq!Q<///	1Q37A771acAg;Aq!Q1#5555	1q5	A771acAg;Aq!Q1#5555	1q5	A771acAg;Aq!Q1#5555	!aA771Q371a|+++	!ac	AA771Q319q=!aAq!Q%7777S1#A	!A771Q3<Aq6!!!771Q3<Aq6!!!	!Q$A771Q3<Aqs8###771Q3<	!a!A#A771QT6AaC<!A#%&1ac(222771QT6AaC<!A#%&...r.   c                     t        t        d      \  } }}}}t        t        d      \  }}d| z  }|j                  || z        |dik(  sJ |j                  ||z        J |j                  |||z  z         |dik(  sJ || z  |z  |z  }|j                  || z        |||z  |z  ik(  sJ |j                  ||z  | z        |||z  ik(  sJ ||z   ||z   z  }|j                  ||z   ||z   z        ||ik(  sJ | }|j                  || z        |dik(  sJ t	        |       }|j                  | |z  t	        | |z        z        |d|dik(  sJ t
        t        | |       z  }|j                  t
        |z        || ik(  sJ y )Nr0   pqr2   r   r"   )r#   r   r   r$   r   r   r   )r   r5   r&   r'   r(   r)   r*   r+   s           r,   test_mulrB   ~   s   (MAq!QtT?DAq	!A771Q3<Aq6!!!771Q3<771qs71v%%%	!AaA771Q3<Aqs1u:%%%771Q3q5>a1X%%%	
QQA77AEAE?#1v---	A771Q3<Aq6!!!AA771a4AaC=!aAq\111	$q!*A771Q3<Aq6!!!r.   c                     t        d      \  } }t        dd      \  }}}t        dt              \  }}t        dt        d      \  }}||z  j                  |       || |d	i|| |d	ifv sJ ||z  j                  | |z        |||| i|||| ifv sJ ||z  j                  |      J ||z  j                  ||z        J ||z  j                  | |z        J ||z  j                  | |z  |z        J ||z  j                  | |z  |z        J ||z  j                  | |z  |z  |z        J ||z  j                  |       J ||z  j                  | |z        J ||z  j                  |      |||d	ik(  sJ ||z  j                  ||z        |||z  |d	ik(  sJ ||z  j                  | |z        |||| ik(  sJ ||z  j                  | |z  |z        |||| |z  ik(  sJ ||z  j                  | |z  |z        |||z  || ik(  sJ ||z  j                  | |z  |z  |z        |||z  || |z  ik(  sJ ||z  j                  |        J ||z  j                  |  |z        J ||z  j                  |       |||d
ik(  sJ ||z  j                  | |z        |||z  |d
ik(  sJ ||z  j                  |  |z        ||||  ik(  sJ ||z  j                  |  |z  |z        ||||  |z  ik(  sJ ||z  j                  |  |z  |z        |||z  ||  ik(  sJ ||z  j                  |  |z  |z  |z        |||z  ||  |z  ik(  sJ ||z  j                  |       J ||z  j                  | |z        J ||z  j                  |      J ||z  j                  ||z        ||||ik(  sJ ||z  j                  ||z        ||||ik(  sJ ||z  j                  ||z  |z        |||||z  i|||z  ||ifv sJ ||z  j                  | |z        J ||z  j                  | |z  |z        J ||z  j                  | |z  |z        J ||z  j                  | |z  |z  |z        J ||z  j                  |      J ||z  |z  j                  ||z        J ||z  |z  j                  |       J ||z  |z  j                  | |z        J ||z  |z  j                  |      J ||z  |z  j                  ||z        |d	||||ik(  sJ ||z  |z  j                  ||z        |d	||||ik(  sJ ||z  |z  j                  | |z        J ||z  |z  j                  | |z  |z        J ||z  |z  j                  | |z  |z        || ||||ik(  sJ ||z  |z  j                  | |z  |z        || ||||ik(  sJ ||z  |z  j                  | |z  |z  |z        || |z  ||||ik(  sJ ||z  |z  j                  | |z  |z  |z        || |z  ||||ik(  sJ ||z  j                  | |z        || ik(  sJ ||z  j                  | |z  |z        J ||z  j                  | |z        J ||z  |z  j                  | |z  |z        || ik(  sJ ||z  |z  j                  | |z  |z        J ||z  |z  j                  | |z        J ||z  |z  j                  | |z  |z        J ||z  |z  j                  | |z  |z        || ||ik(  sJ ||z  |z  |z  j                  | |z  |z        || |d	i|| |d	ifv sJ ||z  |z  |z  j                  | |z  |z        J ||z  |z  |z  j                  ||z  |z  |z        J y )Nx yA B CFcommutativezu vclszw zrI   rG   r"   r   r   r%   )	r   r5   ABCuvwzs	            r,   test_mul_noncommutativerT      s9	   5>DAqg51GAq!5d#DAq5d6DAqaC==Aq!q!Ql;;;;aC==11aA,Aq!!====aC==###aC==1%%%aC==1%%%aC==1Q'''aC==1Q'''aC==1Qq!)))aC==###aC==1%%%aC==1a|+++aC==1!QqS!Q///aC==1!Q1---aC==1QAq!QqS>111aC==1QAqsAq>111aC==1Qq!a1a1%5555aC==!$$$aC==!A&&&aC==!Aq"---aC==!A1ac1b/111aC==!A1aQB-///aC==!Aa Q1qbdO333aC==!Aa Q!QO333aC==!Aa"q!A#q1"Q$&7777aC==###aC==1%%%aC==###aC==1!Q1---aC==1!Q1---aC==1QQ1acNQ!QN#CCCCaC==1%%%aC==1Q'''aC==1Q'''aC==1Qq!)))aC==###aCE??1Q3'''aCE??1%%%aCE??1Q3'''aCE??1%%%aCE??1Q3Aq!Q1#5555aCE??1Q3Aq!Q1#5555aCE??1Q3'''aCE??1Q3q5!)))aCE??1Q3q5!aAq!Q%7777aCE??1Q3q5!aAq!Q%7777aCE??1Q3q57#1Q31a';;;;aCE??1Q3q57#1Q31a';;;;aC==1!Q'''aC==1Q'''aC==1%%%aCE??1Q3q5!aV+++aCE??1Q3q5!)))aCE??1Q3'''aCE??1Q3q5!)))aCE??1Q3q5!aAq\111aCE!GQqSU#Aq!q!Ql'CCCCaCE!GQqSU#+++aCE!GQqSU1W%---r.   c                     t        dd      \  } }}t        dt        d      }||z  |z  j                  | |z  | z        || ik(  sJ ||z  |z  j                  | |z  |z  | z  |z        || |z  ik(  sJ ||z  |z  j                  | |z  |z  | z  |z        J ||z  |z  j                  | |z  |z        J ||z  |z  j                  | |z  |z        J y )NrE   FrF   rR   rJ   rL   rM   rN   rO   rR   s       r,    test_mul_noncommutative_mismatchrW      s    g51GAq!51AaCE??1Q3q5!aV+++aCE??1Q3q5719%!QqS111aCE??1Q3q5719%---aCE??1Q3q5!)))aCE??1Q3q5!)))r.   c                  
   t        dd      \  } }}t        dt        d      }| |z  |z  j                  | |dz  z        ||ik(  sJ | |dz  z  |z  |dz  z  j                  | |dz  z        ||dz  ik(  sJ | |z  |z  |z  j                  | |d	z  z  |z        ||dz  ik(  sJ | |z  |d
z  z  j                  | |z  |d
z  z        ||ik(  sJ | ||z  d
z  z  |z  j                  | ||z  d
z  z  |z        ||ik(  sJ |dz  |z  |z  j                  | dz  |z  |z        || ik(  sJ |dz  |z  |dz  z  j                  | dz  |z  | dz  z        || ik(  sJ |dz  |z  |d	z  z  j                  | dz  |z  | dz  z        J y )NrE   FrF   rR   rJ   r9   r3      r2   rK   rL   rV   s       r,   test_mul_noncommutative_powrZ      s   g51GAq!51AaCE??1QT6"q!f,,,q!tHQJ1&&qAv.1ad);;;aCE!GQ1XaZ(Q1I555aCRM""1Q3B=1aV;;;qsbkM!O$$Q!r{]1_5!Q???T1HQJAq
+1v555T1HadO$$adAXq!t_5!Q???T1HadO$$adAXq!t_5===r.   c                  ~   t        t        d      \  } }}t        t        d      \  }}dt        z   j	                  |t        z         |dik(  sJ | t        z   j	                  |t        z         || ik(  sJ dt        z  j	                  |t        z        |dik(  sJ | t        z  j	                  |t        z        || ik(  sJ | t        z  j	                  ||z        |t        || ik(  sJ dt        z  j	                  ||z        |d|t        ik(  sJ | |t        z  z   j	                  ||t        z  z         || ||ik(  sJ y )Nr   xyr"   r9   )r#   r   r   r   r$   )r&   r'   r(   r   r5   s        r,   test_complexr]      s,   &% GAq!tT?DAqE==QAq6)))E==QAq6)))aC;;qs1v%%%aC;;qs1v%%%aC;;qs1a|+++aC;;qs1a|+++!G??1qs7#1a|333r.   c                  L   ddl m}  t        d      } | d      }t        d      }t        d      }t	        d|z        }|}|j                  |t	        ||z        z        |d|dik(  sJ |j                  ||z        |d|t	        d|z        ik(  sJ |j                  |      J y 	Nr   )WildFunctionr   gr)   r*   r!   r"   sympy.core.functionr`   r   r   r   r$   )r`   r   ra   r)   r*   fnotfs          r,   test_functionsrf   	  s    0sASAS	AS	AAaCAD771S1X:1aA,...771Q3<Aq!S1X....::a=   r.   c                      ddl m}  t        d      } | d      }t        d      }t        d      }t	        d|z        }|j                  | |||z        z        |d|t        |dik(  sJ y r_   rb   )r`   r   ra   r)   r*   rd   s         r,   test_functions_X1rh     sg    0sASAS	AS	AAaCA771QqsV8Aq#q! 4444r.   c                  d   t        t        d      \  } }t        t        d      \  }}| dz   j                  |dz         || ik(  sJ | dz  j                  |dz        || ik(  sJ | dz  j                  |dz        || ik(  sJ | t	        |      z  j                  |t	        |      z        || ||ik(  sJ | |z  j                  ||z        || ||i|||| ifv sJ | |z   j                  ||z         || ||i|||| ifv sJ | |z  dz   j                  ||z        |d|d| |z  z   i|d| |z  z   |difv sJ y )Nr\   rA   r"   r3   )r#   r   r   r$   r   )r   r5   r)   r*   s       r,   test_interfacerj   #  sm   vtDAqtT?DAqE==QAq6)))aC;;qs1v%%%qD<<1!Q'''c!fHAc!fH%!Q1555aC;;qs1a
Qq!AJ7777E==QQq!AJ1a
#;;;;aC!G??1Q3Qq!A!G$4qQqS!A6F#GGGGr.   c                     t        t        d      \  } }t        t        d      \  }}t        dd      }t	         ||       |       }|j                  |      ||ik(  sJ |dz   j                  |dz         ||ik(  sJ |j                  |      i k(  sJ d|z  j                  ||z        J d|z  dz
  j                  ||z  |z         |d|dik(  sJ y )Nr\   rA   rd   r"   )nargsr3   rK   )r#   r   r   r   r   r$   )r   r5   r)   r*   rd   fds         r,   test_derivative1rn   1  s    vtDAqtT?DAqAA	AaD!	B88A;1b'!!!F>>!a% QG+++::b>RbD<<")))bD1HAbD1H%!Q2666r.   c                  $   t        d      } t        d      }t        d| |g      }t        d| g      }|t         | |      ||      z  |z   }t         | |      |      |dz  z   }||dz  i}|j	                  |      j                  ||      }|J y )Nrd   r   r&   r=   r'   r9   )r   r   r   r   xreplacer%   )rd   r   r&   r'   patternexprd1d2s           r,   test_derivative_bug1ru   ?  s    AsAS1a&!AS1#A*QqT1a((1,GadAA%D
QTB			"		%	%dB	/B::r.   c                     t        d      } t        d      }t        d| |g      }t        d| g      }t         | |      |      }|j	                  t         | |      |            i k(  sJ |j	                  t         | |      ||            J t         | |      ||      }|j	                  t         | |      |            J |j	                  t         | |      ||            i k(  sJ t         | |      |      |dz  z   }|j	                  |t         | |      |      z  |z         |d||dz  ik(  sJ |j	                  |t         | |      ||      z  |z         J t         | |      ||      |dz  z   }|j	                  |t         | |      |      z  |z         J |j	                  |t         | |      ||      z  |z         |d||dz  ik(  sJ y )Nrd   r   r&   r=   r'   r9   r"   )r   r   r   r   r$   )rd   r   r&   r'   r+   s        r,   test_derivative2rw   K  s   AsAS1a&!AS1#A1Q4A77:adA&'2---77:adAq)*2221Q4AA77:adA&'///77:adAq)*b0001Q4ad"A771Z!a((1,-!Q1a4@@@771Z!a++a/08881Q4AA%A771Z!a((1,-555771Z!a++a/0Q1adOCCCr.   c                  ^   t        d      } t        d      }t        d      }t        d      }t         ||      |      |z  t        t         | |      |      |      dz  z
  t         | |      |      dz  dz  z
  t         | |      |      t         ||      |      z  dz  z   }|j	                   | |       ||             j                         }|t         ||             z  }|j                  ||      |z  }|j                  ||z  j                               |t        dd      ik(  sJ y )Nnlr   r)   r9   r2   rK   )
r   r   r   r   subsdoitr   r$   expandr   )ry   rz   r   r)   r+   tt2s          r,   test_match_deriv_bug1r   ^  s   AAsAS	AQqT1a$tAaD!}a022QqT1q	!!A$]4!a=8:	;A	qtadU  "A	#qte*A	
1aB77QrTMMO%!Xb!_)====r.   c                      t        t        d      \  } }t        t        d      \  }}}| |z   j                  ||z   |z         }||z   |z   j	                  |      | |z   k(  sJ y )Nr\   r1   )r#   r   r   r$   r{   )r   r5   r)   r*   r6   ress         r,   test_match_bug2r   m  sc    vtDAq$GAq!q5--A	
"CEAIC AE)))r.   c                      t        t        d      \  } }}t        d      }|| z  t        || z        z  j	                  | t        || z        z        J y )Nxabr)   )r#   r   r   r   r$   )r   r&   r'   r)   s       r,   test_match_bug3r   t  sP    &% GAq!S	AaCAaCL#ac(
+333r.   c                  l    t        d      } t        d      }| }|j                  | | z        |dik(  sJ y )Nr   r)   rK   r   r   r$   r   r)   r+   s      r,   test_match_bug4r   z  s9    sAS	A	A77A2a4=QG###r.   c                  n    t        d      } t        d      }|  }|j                  | | z        |dik(  sJ y )Nr   r)   r"   r   r   s      r,   test_match_bug5r     s;    sAS	A	
A77A2a4=QF"""r.   c                      t        d      } t        d      }| }|j                  d|z  | z        |t        d      dz  ik(  sJ y )Nr   r)   r3   r"   )r   r   r$   r   r   s      r,   test_match_bug6r     sD    sAS	A	A771Q3q5>a!Q////r.   c            	         t        d      } t        d| g      }t        d| g      }t        d| g      }t        d| g      }d| dz  z  d| d	z  z  z   d	| z  z   d
z   }|| dz  z  || d	z  z  z   || z  z   |z   }|j                  |      |d|d|d	|d
ik(  sJ |d| d	z  z  z
  j                  |      |d|d|d	|d
ik(  sJ | t        d	      z   dz   j                  ||| z  z   || d	z  z  z         |d
|t        d	      dz   |dik(  sJ y )Nr   r&   r=   r'   r(   dr2   r3   r9   r"   r   )r   r   r$   r   )r   r&   r'   r(   r   eqrq   s          r,   test_match_polynomialr     sE   sAS1#AS1#AS1#AS1#A	
1a4!AqD&1Q3		"B1fqAvo!#a'G88GAq!Q1a 88881a4Kw'Aq!Q1a+CCCCQK!O""1qs7Qq!tV#34	
Aq$q'A+q!$% % %r.   c                     t        t        d      \  } }}t        dd| g      }t        d      }t        dt        |g      }t        |       j	                  |      J t        |      j	                  |      J d| dz  z  || z  z   |z   }|j	                  || dz  z  || z  z   |z         |d||||ik(  sJ | dz   }|j	                  | |z         J |j	                  |dz         J |j	                  | dz   |z         |d	ik(  sJ t        |       d
t        |      z  z   }|j	                  |      J |j	                  t        |      |z         J |j	                  ||t        |      z  z         |t        |       |d
||ik(  sJ y )Nxyar)   r"   r=   r*   r6   r3   r9   r   r!   )r#   r   r   r   r$   r   )r   r5   r&   r)   r*   r6   r+   s          r,   test_excluder     s   &% GAq!S1a&!AS	AS3(#Aq6<<?"""q6<<?"""	!Q$1qA771QT6AaC<!#$Aq!Q(::::	AA771q5>!!!771q5>!!!771q519!Q'''A3q6A771:773q6A:&&&771qQx< QA1a$;;;;r.   c                      t        t        d      \  } }t        dd      dz  }|j                  | t        |      dz  z        }|| d|t	        d      ik(  sJ y )Nabg|Pk?F)evaluater9   r"   )r#   r   r   r$   r
   )r&   r'   r+   r6   s       r,   test_floatsr     sW    tT?DAqGe$a'A	#a&!)AAq%.))))r.   c                     t        d      } t        j                  }t        d | |      g      }t        d | |      g      } | |      j	                  |      }|j                  |t         | |      |      z  |z         |d|dik(  sJ y )Nrd   r&   r=   r'   r"   r   )r   r   r   r   r   r$   r   )rd   r   r&   r'   r   s        r,   test_Derivative_bug1r     s}    AAS1Q4&!AS1Q4&!A	
11B88Aj1q))A-.1aA,>>>r.   c                  0   t        d      } t        d      }t        d      }| j                  ||z         || |di|d|| ifv sJ | j                  ||z        || |di|d|| ifv sJ t        d      } t        d| g      }t        d      }| j                  ||z         |d|| ik(  sJ | j                  ||z        |d|| ik(  sJ t        d      } t        d| g      }t        d| g      }| j                  ||z         J | j                  ||z        J y )Nr)   r*   r6   r   r"   r=   )r   r$   )r)   r*   r6   s      r,   test_match_wild_wildr     s4   S	AS	AS	A771q5>1a|aAq\;;;;771Q3<aAq\Aq!Q<9999S	AS1#AS	A771q5>aAq\)))771Q3<Aq!Q<'''S	AS1#AS1#A771q5>!!!771Q3<r.   c                     t        d      \  } }t        j                  | t        z  |z  | t        z        |k(  sJ t        j                  | | d|z   z  z  | d|z   z        | k(  sJ t        j                  | t        z  |z  |t        z        | k(  sJ t        j                  t        t        z  |z  |t        z        t        u sJ t        j                  t        t        z  |z  t        t        z        |k(  sJ t        j                  t        t        z  |z  t        t        z        |k(  sJ t        j                  t        |z  t               | k(  sJ t        j                  t         |z  t              | k(  sJ t        j                  dt        | |z        z
  t        | |z        dz
        dk(  sJ t        j                  t        t              t        j                  u sJ t        j                  t        t        z  t        t        z        t        j                  u sJ t        j                  | t        z  | t        z        t        j                  u sJ t        j                  |  t        z  |  t        z        t        j                  u sJ t        j                  | t        z
  | t        z   z  t               sJ y )NrD   r"   rK   )	r   r	   _combine_inverser   r   r   r   r   Zero)r   r5   s     r,   test__combine_inverser     s7   5>DAq!Aqs+q000!a!e*a!a%j9Q>>>!Aqs+q0001Q!,2221Q1-2221Q1-2221rc*qb000Ar*qb0003qs8c!A#hqj:b@@@B'1661111bd+qvv555"ad+qvv5552r"u-777R!b& 1B3777r.   c                  r   t        d      } t        d      \  }}}t        dt              \  }}}}t        dd      }|t        d|z        z  |d	z  z  }	|t        ||z        |z  z  ||z  z  t        |      |z  z  }
|	j	                  |
      |||d
|d|d	|dik(  sJ |	 j	                  |
      || |d
|d|d	|dik(  sJ | |	z  j	                  |
      || |z  |d
|d|d	|dik(  sJ d| z  |	z  j	                  |
      |d| z  |z  |d
|d|d	|dik(  sJ |t        ||z        |z  z  ||z  z  }
|	j	                  |
      |||d
|d|d	ik(  sJ |	 j	                  |
      || |d
|d|d	ik(  sJ | |	z  j	                  |
      || |z  |d
|d|d	ik(  sJ d| z  |	z  j	                  |
      |d| z  |z  |d
|d|d	ik(  sJ y )Nr   zz phi rzc A B NrH   rz   r   r=   r9      r"   r   i)r   r   r   r   r$   )r   rS   phir6   r(   rM   rN   Nrz   r   matchers              r,   test_issue_3773r     s'   A	"IAsA-JAq!QS$A	
S3Z!Q$	B#c!e*a-!Q$&Q2G88GAq!Q1aA >>>>C;;wAr1aAq!Q#BBBBbD<< Q!Q1aAq!$DDDDqDG??7#2a461aAq!Q'JJJJCE
Ao1$G88GAq!Q1a 8888C;;wAr1aAq!#<<<<bD<< Q!Q1aA$>>>>qDG??7#2a461aAq!'DDDDr.   c            
         ddl m} m}m} |  ||z
  dz  z  t	        |       z
  t	        dt
        z        z   dz  }t        dt        | f      \  }}}|j                  |t	        |       z  || z  z   |z         |t        dd      || |z   dz   dz  |t	        dt
        z        dz  ik(  sJ |j                         j                  |       j                  |t	        |       z  || z  z   |z         |t        dd      |||z
  dz   dz  j                         |t	        dt
        z        dz  j                         ik(  sJ t        d| g      }t        d	| g      }t        d
| g      }	|j                         j                  |t	        |       z  || z  z   |	z         |	t	        d      dz  t	        t
              dz  z   |t        dd      ||dz   dz  ||z  z   |dz  dz  z
  ik(  sJ y )Nr   )gammamur   r9   a b crI   r>   rK   g1r=   g2g3)	sympy.abcr   r   r   r   r   r   r   r$   r   r}   r   )
r   r   r   rd   r&   r'   r(   r   r   r   s
             r,   test_issue_3883r     s   &&
1r6A+	E
	*S2Y	69Ag4%:GAq!771s5z>AI-12	
HROQ2#'AaC"IaK@A A A88:e$**1s5z>AI+E+IJ	
HROQ1r6A+a 7 7 91s1R4y{>R>R>TUV V V	dUG	$B	dUG	$B	dUG	$B88:BUOb5j82=>QCGAI	r8B?BQq2a4!Q$q&8PQR R Rr.   c                     t        d      } t        dt        | f      \  }}}t        dt              \  }}t	         ||        ||       j	                  |       z  |       }|j                   ||       j	                  |        ||       j	                  |       z   ||        ||       j	                  | |       z  z   |z         |dik(  sJ |j                  | ||       j	                  |       z   ||       j	                  |       z  | ||       z   ||       j	                  | |       z  z   |z         |d|d|dik(  sJ y )Nr   r   r   zf grH   r   r"   )r   r   r   r   r   r$   )r   r&   r'   r(   rd   ra   r   s          r,   test_issue_4418r     s>   sAg4!6GAq!5h'DAq	ad1Q499Q<	#B88	!		!QqTYYq\!AaD11a$881<>BCQH H H88Aadii	 Q499Q<AaD&11a01345 6:;Q1a9KL L Lr.   c                  0   t        d      } t        d      }t        dt         | |      f      \  }}| | |      z  |z   }t	        |      } | |      t	        |      z   } | |      |z   t	        |      z   }|t	        |      z   }|j                  |      |d|t	        |      ik(  sJ |j                  |      |d|t	        |      ik(  sJ |j                  |      |d||t	        |      z   ik(  sJ |j                  |      |d||t	        |      z   ik(  sJ y )Nrd   r   a br   r   r"   )r   r   r   r   r   r$   )	rd   r   r&   r'   r)   eq1eq2eq3eq4s	            r,   test_issue_4700r   "  s   AsA5dQqTG4DAq	!A$
A
a&C
A$Q-C
A$(SV
C
c!f*C99Q<Aq!SV,,,,99Q<Aq!SV,,,,99Q<Aq!QQZ000099Q<Aq!QQZ0000r.   c                     t        dt              \  } }}t        d      }t        d      }|j	                  |       | |ik(  sJ |j	                  |  ||      |z  z        | ||dik(  sJ |j	                  | |z        | d||ik(  sJ |j	                  | |z   ||      |z  z        | d|||dik(  sJ | j	                  |       | | ik(  sJ | j	                  |  ||      |z  z        | | |dik(  sJ | j	                  | |z        | d||ik(  sJ | j	                  | |z   ||      |z  z        | d|||dik(  sJ d|z  j	                  |       | d|z  ik(  sJ d|z  j	                  |  ||      |z  z        | d|z  |dik(  sJ d|z  j	                  | |z        | d||ik(  sJ d|z  j	                  | |z   ||      |z  z        | d|||dik(  sJ d	|z  j	                  |       | d	|z  ik(  sJ d	|z  j	                  |  ||      |z  z        | d	|z  |dik(  sJ d	|z  j	                  | |z        | d	||ik(  sJ d	|z  j	                  | |z   ||      |z  z        | d	|||dik(  sJ y )
Nr   rH   r   rd   r   r"   rK   r9   )r   r   r   r   r$   )r&   r'   r(   r   rd   s        r,   test_issue_5168r   3  s   g4(GAq!sAA771:!Q771QqT1W9!Q1---771Q3<Aq!Q<'''771Q3qtQw;Aq!Q1#5555B::a=QG###B::a!ai QAqM111B::ac?q"am+++B::ac!A$'k"q"aAq&9999aC;;q>a1X%%%aC;;q1qy!a1a^333aC;;qs1a|+++aC;;qs1Q47{#1aAq'9999qD<<?q"Q$i'''qD<<!A$'	"q"Q$1o555qD<<!B1---qD<<!AaD!G$B1a(;;;;r.   c                     t        d      } t        d      }t        d| g      }t        d      }d| z  j                  ||z        |d|| ik(  sJ d| z  j                  ||z        |d|| ik(  sJ | dz  j                  ||z        |d|| ik(  sJ d| z  j                  ||z        |t        j                  dz  || ik(  sJ d| z  j                  ||z        |t        dd      || ik(  sJ | dz  j                  ||z        |t        j                  dz  |d| z  ik(  sJ d| z  j                  ||z        |d|d| z  ik(  sJ d| z  j                  ||z        |d|d| z  ik(  sJ t        dd	
      }| |z  j                  |dz        || |dz  z  ik(  sJ | |z  j                  |dz        |t        | |z        ik(  sJ t        d      }t        j                  }|j                  |      ||ik(  sJ |j                  d|z        J |j                  |dz        J t        d      }|j                  d|z        |d|z  ik(  sJ |j                  d|dz  z        |dt        |      z  ik(  sJ t        }|j                  d|z        |d|z  ik(  sJ |j                  d|dz  z        |dt        |      z  ik(  sJ | j                  t        |            J | j                  |dz        |t        t        t              z  ik(  sJ y )Nr   r+   rR   r=   r5   r3   r"   r6   T)rationalr9   r&   g333333?)
r   r   r$   r   Oner   r   r   r   r   )r   r+   rR   r5   r6   r&   s         r,   test_issue_4559r   M  s8   sAsAS1#AS	A aC;;qs1a|+++aC;;qs1a|+++aC;;qs1a|+++aC;;qs1557Aq1111aC;;qs8Aq>1a8888 aC;;qs1557Aqs3333aC;;qs1a1~---aC;;qs1a1~--- 	sT"AqD<<1!Q1X...qD<<1!T!Q$Z000 	S	A	A771:!Q771Q3<771b5>!!!	!A771Q3<Aqs8###771QT6?q!DG)n,,,
A771Q3<Aqs8###771QT6?q!DG)n,,,B::d1g&&&B::ad1T"X:...r.   c                      t        d      } t        d      }|dz
  d|z
  fD cg c]  }|dz  	 }}|| z
  | |z
  fD cg c]  }|dz  	 }}|D ]!  }|D ]  }|j                  |      | dik(  rJ  # y c c}w c c}w )Nr&   r   r9   r   r   r$   )r&   r   ir+   r)   r   pats          r,   test_issue_4883r     s    S	AsAAq1u~&!A&A&Aq!t}%!A%A% + 	+C88C=QF***	++ 	'%s
   A2A7c                     t        d      \  } }|  t        j                  dz  |z
  z  t        j                  |t        j                  dz  z
  hfd} |t	        d| g      | z  t	        d      z           |t	        d| g      | z  t	        d      z           |t	        d| g      | z  t	        d      z           |t	        d| g      | z  t	        d      z           |t	        d| g      | z  t	        d      z           |t	        d	| g      | z  t	        d      z           |t	        d
| g      | z  t	        d      z          y )NrD   rY   c                 `    t        j                  |       j                               k(  sJ y )N)setr$   values)r   ansr)   s    r,   okztest_issue_4319.<locals>.ok  s'    1773<&&()S000r.   coeffr=   restrR   r+   ressresu)r   r   r   r   r   )r   r5   r   r   r)   s      @@r,   test_issue_4319r     s"   5>DAq	
AEE!GaKA661quuQw;
C1 tGaS!!#d6l23tC!a$v,./tGaS!!#d6l23tC!a$v,./tC!a$v,./tFQC "T&\12tFQC "T&\12r.   c                  D   t        dt              \  } }}t        d      }t        |      dz  j	                  t        |       t        |      z  |z        |||d| |ik(  sJ dt        |      z  j	                  t        |       t        |      z   |z         |||d| |ik(  sJ y )Nzp c qrH   r   r9   r"   r   )r   r   r   r   r$   )r)   r(   r*   r   s       r,   test_issue_3778r     s    g4(GAq!sAFAISVCF]1_-!Q1a1CCCCc!fHCFSVOa/0Q1aA4FFFFr.   c                      t        d      } t        d      }t         | z  t        z  j	                  t        |z  t        z        ||  ik(  sJ y )Nr   r&   )r   r   r   r   r$   )r   r&   s     r,   test_issue_6103r     sC    sAS	ABqDG??1Q3r6"q1"g---r.   c                      t        d      } t        d      }|dz
  j                  | |z
        J d|z  j                  | |z        J d|dz  z  j                  | |z        | d|z  ik(  sJ y )Nr&   r   r9   r<   r   )r&   r   s     r,   test_issue_3539r     sy    S	AsAE==Q'''aC;;qs###adF>>!A#1ac(***r.   c                  (   t        d      } t        dd|       }t        d      }t        d      }|j                  |      t        j
                  fdt        j
                  fdf| t        j
                  dt        dt        j
                  fdf|       hk(  sJ |j                  ||z         t        dt        j
                  fdf|       | t        j
                  hk(  sJ |j                  |dz        t        dt        j
                  fdf|       | hk(  sJ y )Nr   ) r   )r   r   r&   r'   r   r9   )r   r   r   findr   r   )r   rd   r&   r'   s       r,   test_gh_issue_2711r     s    sA*a(AS	AS	A66!9!&&Hy"oq!&&QVVIr?A!FH H H H66!a%=	QVVIr?A	.166:; ; ;66!Q$<GHy"oqA1EEEEr.   c                      ddl m} m}  |dd      \  }} |d|       \  }}d|k  j                  ||k  z  j	                  d|z  |k  ||k  z        J y )	Nr   )r   r   rD   T)realr   rH   r"   )sympy.core.symbolr   r   reversedr$   )r   r   r   r5   r&   r'   s         r,   test_issue_17354r     s`    15t$DAq5d#DAq!Va(//1a1f0EFNNNr.   c            	         t        d      } t        d      }t        d | |       | |      j                  |       | |      j                  |d      g      }t        d | |       | |      j                  |       | |      j                  |d      g      }t        d | |       | |      j                  |       | |      j                  |d      g      }| | |      j                  |d      z  | | |      j                  |      z  z   | | |      z  z   }|dz
  dz   | |      j                  |d      z  |dz
   | |      j                  |      z  z   |dz
  dz  dz
   | |      z  z   }t	        | | |      j                  |d       | |      j                  |       | |      g      j                  |      }|||dz
  dz  ||dz
  dz  dz
  ||dz
  ik(  sJ | | |      z  |t         | |      |df      z  z   d | |      z  z
  t         | |      |      z   dt         | |      |df      z  z
  dt         | |      |      z  |z  z
  dt         | |      |df      z  |z  z   }t	        | | |      j                  |d       | |      j                  |       | |      g      j                  |      }|||dz
  d|z  z   |d	d|z  z
  ||dz
  ik(  sJ y )
Nrd   r   a3r9   r=   b3c3r2   r"   )r   r   r   r   r   r$   r   )rd   r   r   r   r   deqr   r6   s           r,   test_match_issue_17397r     s   AsA	dQqT1Q499Q<11aA	BB	dQqT1Q499Q<11aA	BB	dQqT1Q499Q<11aA	BB
adii1o
AaDIIaL
02ad7
:C
A#1Q499Q?	#qsQqTYYq\&:	:qsQhlAaD=P	PBQqTYYq!_adiilAaD9:@@EAa!eaZa!eaZ!^RQ????	!A$:adQF+++a!f4z!A$7JJ
JqtaV$
$	%'(AaD!)<'<Q'>	?AB:aPQdUVXYTZC[A[\]A]	^BQqTYYq!_adiilAaD9:@@EAQUQqS["a!A#gr1q59999r.   c                  ~   t        dd      \  } }}t        dd      }t        d      }|dd|z
  z  z  }| |d|z
  z  z  |d|z
  z  d| z
  z  z   dd|z
  z  z  }|| |d|z
  z  z  |d|z
  z  d| z
  z  z   i}|j                  |      |k(  sJ | j                  |       |k(  sJ |j                  t        |            J y )Nza, r, wT)nonnegativer)   )positivera   r"   )r   r   r%   r   )r&   r6   rR   r)   g_rq   r   ms           r,   test_match_issue_21942r     s    iT2GAq!d#A	cBQ!a%[!G
aAEl
Q1q5\QU3
3a!e	EB	Qq1ua!eA 667A??2!###Hrc"a'''??8B<(000r.   c            	         t        t        d      \  } }t        d      \  }}}d|z  |z
  j                  d| z  |z
        | |||ik(  sJ ||dz
  |z  z   j                  || |z  z         | |dz
  ik(  sJ |t	        ||z        dt        ||z        z
  z  z
  j                  |t	        | |z        dt        ||z        z
  z  z
        | |ik(  sJ y )NXYzx y zr!   r"   )r#   r   r   r$   r   r   )XYr   r5   rS   s        r,   test_match_termsr     s    tT?DAqgGAq!aC!G??1Q37#1a|333Q	M  QqS)aQZ777AaC!C!H*%%,,QQqS1S1X:1F-FGAq6QQQr.   c                  l   t        t        d      \  } }t        d      \  }}t        ||ddf      j	                  t        ||d|f            J t        ||ddf      j	                  t        | | d|f            |d| |ik(  sJ t        ||ddf      j	                  t        | | ddf            | |ik(  sJ y )NVWrD   r"   r9   )r#   r   r   r   r$   )VWr   r5   s       r,   test_match_boundr     s    tT?DAq5>DAqq1a)""3q1a)#45===q1a)""3q1a)#45!Q!DDDq1a)""3q1a)#45!A>>>r.   c                      t        d      t        d      }} t        dt              \  }}|  ||       |z  z  }d ||       dz  z  }|j                  |      |d|dik(  sJ y )Nr   rd   zn QrH   r!   r9   )r   r   r   r%   )r   rd   ry   Qrq   r   s         r,   test_issue_22462r     sf    3<#qA5d#DAqb1qjG	
1Q47B??21aB-///r.   N)Xsympyr   sympy.concrete.summationsr   sympy.core.addr   rc   r   r   r   sympy.core.mulr	   sympy.core.numbersr
   r   r   r   r   r   sympy.core.singletonr   r   r   r   r   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.functions.special.hyperr   sympy.polys.polytoolsr   sympy.simplify.radsimpr   sympy.simplify.simplifyr   sympy.testing.pytestr   r-   r7   r:   r?   rB   rT   rW   rZ   r]   rf   rh   rj   rn   ru   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   r,   <module>r
     sJ    )  < <  D D " 5 5 = 9 ? 1 & * , &"&:#&(/V"4G.T*>
4! 5 5H7	D&>*4$#0%<.*? .8$E,R 
L1"<40/j + +3$G.+
FO:$	1R?0r.   