
    oVhu                     "   d dl mZ d dlmZ d dlmZ d dl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mZmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZmZ d dl m!Z! d dl"m#Z#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. d dl/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dlm<Z< d dl=m>Z>m?Z? d dl@mAZAmBZBmCZCmDZDmEZE d ZFd ZGd ZHd ZId ZJd ZKd ZLd  ZMd! ZNd" ZOd# ZPd$ ZQd% ZRd& ZSd' ZTd( ZUd) ZVd* ZWd+ ZXd, ZYd- ZZd. Z[d/ Z\d0 Z]d1 Z^d2 Z_d3 Z`d4 Zad5 Zbd6 Zcd7 Zdd8 Zed9 Zfd: Zgd; Zhd< Zid= Zjd> Zkd? Zld@ ZmdA ZndB ZodC ZpdD ZqdE ZrdF ZsdG Zte>dH        ZudI ZvdJ ZwdK ZxdL ZydM ZzdN Z{dO Z|dP Z}dQ Z~dR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZdZ Zd[ Zd\ Zy])^    )AccumBounds)Add)Basic)DictTuple)
DerivativeFunctionLambdaSubs)Mul)FloatIIntegerRationaloopizoo)Eq)S)SymbolWildsymbols)SympifyError)explog)sqrt)	Piecewise)atan2coscotsintan)Matrixzeros)
ZeroMatrix)factor)RootOf)cse)	nsimplify)_aresame)XFAILraises)axyztc                      t        d      } t        }|j                  t        |       }|t        d      k(  sJ dt        z  }|dt        z  k(  sJ |j                  t        |       }|t        d      k(  sJ y )N         )r   r.   subs)n3es     J/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_subs.py	test_subsr:      sj    	!B	A	q"A	!A!8O8	q"A    c                     t        d      } t        dd      }t        t        z  j	                  t        | t        di      | |fv sJ t        t        z  j	                  t        | t        di      dk(  sJ t        t        z  j	                  t        | t        did      | |fv sJ t        t        z   j	                  t        | t        | id      | |fv sJ t        t        z   j	                  t        | t        | i      | |fv sJ t        t        dgg      t              j	                  t        d      t        dgg      k(  sJ t        t        dgg      t              j	                  t        d      t        t        dgg      d      k(  sJ y )Nr4   r   Tsimultaneousr3          @g      @)r$   r%   r.   r/   r6   r   r#   r   )r0   z1s     r9   test_subs_MatrixrA   '   sK   aA	Aq	BaC::qAaj!aW,,,aC::qAaj!Q&&&aC::qAajt:4B???E<<Aq!4<8QGCCCE<<Aq!%!R000 vse}a %%a-#@@@vse}a %%a-VaSE]C1HHHHr;   c                  h   t         } | j                  t         t        dd            } | t        dd      k(  sJ dt         z  } | j                  t         t        dd            } | t        dd      k(  sJ t         t         dz  z   } | j                  t         t        dd            } | t        dd      k(  sJ y )N   r3   r4   r5   )r.   r6   r   r8   s    r9   test_subs_AccumBoundsrF   6   s    	A	q+a#$AAq!!!!	!A	q+a#$AAq!!!!	AqDA	q+b!$%AB""""r;   c                     t        d      } t        t              dz  j                  t              }|dt        t              z  t	        t              z  k(  sJ |j                  t        |       }|dt	        |       z  t        |       z  k(  sJ t        t              dz  j                  t              }|dt        t              z  t	        t              z  k(  sJ |j                  t        t              t	        t                    }|dt	        t              dz  z  k(  sJ t        t              j                  t        t              dk(  sJ t	        t        t                    j                  t        t              dk(  sJ t        dd      }t        j                  }t        t              j                  t        t        dz        |u sJ t        t              j                  t        t              |u sJ t        |t        z        j                  t        t              |u sJ t        |t        z        j                  t        t        dz        t        |t        z  dz        k(  sJ t        |t        z        j                  t        t        dz        j                  |d      |u sJ t        dd	      }t        |t        z        j                  t        t        dz        t        |t        z  dz        k(  sJ y )
Nr3   r4   r   rC   iT)integero)odd)r   r!   r.   diffr   r6   r   r   r   r   ComplexInfinityr"   r    )r7   r8   rH   r   rJ   s        r9   test_trigonometricrN   D   s-   	!B	QA#a&Q	q"A#b'	#b'!!!!	QA#a&Q	s1vs1vA#a&!)r7<<S!Q&&&s2w<S#&!+++sD!A


Cq6;;q"Q$3&&&q6;;q"$$$qs8==B3&&&qs8==BqD!S2a[000qs8==BqD!&&q!,333sAqs8==BqD!S2a[000r;   c                     t        dt        t              z
        j                  t        d      t        k(  sJ t        dt        dz  z
        dz  j                  t        d      dt        z  t        d      z  k(  sJ t        t	        dd      z  j                  t        d      dk(  sJ t        t	        dd      z  j                  t        d      ddt	        dd      z  z  k(  sJ t         t	        dd      z  j                  t        d      ddt	        dd      z  z  k(  sJ t        d	d
      } t        | z  j                  t        d      t        j                  u sJ t        d      j                  t        j                  d      t        j                  u sJ t        dt        z  z  j                  t        dt        z  z  |       | dz  k(  sJ dt        dz   z  j                  dd      dt        dz   z  k(  sJ y )NrC      r4   r3      irD   nT)negativer   g      @r?   )r   r.   r6   r   r   r   r   rM   r   Exp1r/   )rS   s    r9   test_powersrV   ^   s   DG!!!Q'1,,,QTNA##Aq)SU47]:::x1~##Ar*a///x1~##As+q"x1~1E/EEEER(1a. &&q"-B!Q3G1GGGGsT"AqD;;q! 1 1111r7<<"a&7&7777AJQQZ+q#v555AJQ"a!a%j000r;   c            
         t        dd      } t        d      }dd| z   z  dd| z   z  z   d| z  d| z  z   z  }|j                  d| z  |      |k7  sJ |j                  t        | t        t	        d            z        |      |k7  sJ y )Nr.   Trealwr3   rC   r4   )r   r6   r   r   r   )r.   rZ   r8   s      r9   test_logexppowr[   k   s    sAsA	
QUa!a%j	 1a4!Q$;/A66!Q$?a66#aHQK(()1-222r;   c                      t        d      } t        d      }| |z  } |j                  | t        d            t        d      |z  k(  sJ y )Nx1x2      @)r   r6   r   )r]   r^   r/   s      r9   test_bugr`   s   sD    	B	B
2A166"eCj!U3Z]222r;   c                      t         t         z  j                  t         d       t         t         z  j                  t         d       y )NrC         ?r.   r6    r;   r9   test_subbug1re   z   s&    TKK1TKK3r;   c                  ~    t        d      j                  t        t              j	                  t        d            sJ y )Ng@g)r   
epsilon_eqabsr.   r6   rd   r;   r9   test_subbug2ri      s)    :  QQ!5666r;   c                     t        t        d      \  } }}dt        dt        z        z  }|j	                  | t        |t        z        z        }|| d|dik(  sJ | |z  t        |t        z        z  }|j                  |      ||    ||   z  t        ||   t        z        z  k(  sJ |j                  |      dt        dt        z        z  dz  k(  sJ t        |j                               }|j                  |      ||    ||   z  t        ||   t        z        z  k(  sJ |j                  |      dt        dt        z        z  dz  k(  sJ |j                  |      ||    ||   z  t        ||   t        z        z  k(  sJ |j                  |      dt        dt        z        z  dz  k(  sJ t        j                  t        t        df            dk(  sJ y )Nabcr3   rP   rC   )
mapr   r   r.   matchr!   r6   setitemsr   )r-   bcfrr8   ss          r9   test_dict_setru      s   $GAq!	#ac(
A	#ac(
AAq!	!C!HA66!9!QqT	#ad1f+----66!9#ac(
Q&&&AGGIA66!9!QqT	#ad1f+----66!9#ac(
Q&&&66!9!QqT	#ad1f+----66!9#ac(
Q&&&66$1v,1$$$r;   c                     t         t        t               z  } t        t        t              z  }t         t        t        t               t        i}t        t        t        t              t        i}| j	                  |      t        dz  k(  sJ |j	                  |      t        dz  k(  sJ | j	                  t         t              j	                  t        t               t              t        t        t              z  k(  sJ | j	                  t        t               t              j	                  t         t              t        dz  k(  sJ dt         t        z  z   }|j	                  t         t        t        di      dk(  sJ t        t         dz  t        z         j	                  t        t        dz         dt         di      t        t        dz         k(  sJ y )Nr4   rC      )r.   r   r0   r/   r6   )rr   gdfdgr8   s        r9   test_dict_ambigousr{      sC   	#a&A	#a&A
QA	B
QA	B66":A66":A 66!Q<SVQ'1SV833366#a&!!!!Q'1a4/// 	
AaCA661aA,1$$$ qsQw<c!a%j!Q23s1q5zAAAr;   c                  J   t        d      } t         | t              t        t              }|j                  t        t        dz        t         | t              t        t              k(  sJ |j                  t        t        dz        t         | t              t              k7  sJ y )Nrr   r4   )r	   r   r.   r6   r/   )rr   pats     r9   test_deriv_sub_bug3r~      so    A
QqT1a
 C88Aq!t
1Q4A 666688Aq!t
1Q4 3333r;   c                      t        d      } t         | t              dz  t              }t        t        d      t              }|j	                   | t              d      |k(  sJ y )Nrr   r4      rP   )r	   r   r.   r   r6   )rr   eqress      r9   test_equality_subs1r      sK    A	AaD!GQB
WR[!
C771Q4s"""r;   c                      t        d      } t         | t              dz  d      }t        |j	                   | t              d            du sJ t        |j	                   | t              d            du sJ y )Nrr   r4   r   r3   FrP   T)r	   r   r.   boolr6   )rr   r   s     r9   test_equality_subs2r      sb    A	AaD!GRB!a !U***!a !T)))r;   c                      t        t              t        t              z  } | j	                  t        t              d      t        t              k(  sJ y )NrC   )r   r.   r   r/   r6   rE   s    r9   test_issue_3742r      s4    QAA66$q'1Q'''r;   c            
         dt         t        z  z   j                  t         t              dt        t        z  z   k(  sJ dt         t        z  z   j                  t         t        t        di      ddt        z  z   k(  sJ t	        d      \  } }}}}}}}| dz  |z  |z  |dz  |dz  z  |z  |z  z   |dz  |dz  z  |z  |z  z   |dz  |z  | z  |z  z
  |dz  |z  | z  |z  z
  }|j                  |dz  d|dz  z
  | dz  d|dz  z
  |dz  d|dz  z
  i      ||z  d|dz  z
  z  ||z  |dz  z  d|dz  z
  z  z   | |z  |z  d|dz  z
  z  z
  ||z  |dz  z  |dz  z  z   | |z  |z  |dz  z  z
  k(  sJ y )NrC   r4   zc2 c3 q1p q2p c1 s1 s2 s3r3   )r.   r/   r6   r   r   )	c2c3q1pq2pc1s1s2s3tests	            r9   test_subs_dict1r      s   !G>>!R A1H,,,!G>>1b!Q-(A"H444'./J'K$BCb"b"E#IbL2q5Q;s?2--Ab!eC0BB!eCil2o "Ac	"R0DIIr1ua"a%iQBE	2q5!b!e)LMc61r1u93r1ua"a%i 88fRiRU#$&(fRUl2q5&89;=c6"9RU?KK L Kr;   c                  x   t        d      \  } }}}}}t        dd      \  }}}| |z  |z  j                  || z  |      |dz  k(  sJ || z  j                  d| z  |      dk(  sJ | |z  |z  j                  d|z  |      || z  |z  k(  sJ | |z  |z  j                  | |z  |      ||z  k(  sJ | |z  |z  j                  ||z  |      || z  k(  sJ | |z  |z  j                  | |z  d|z        ||z  k(  sJ | |z  |z  j                  | d|z        |||z  z  k(  sJ d| z  |z  j                  d| z  |z  |      |t        dd      z  k7  sJ | |z  |z  j                  | |z  |      ||z  k(  sJ | dz  || t        dd      z  z  z  j                  | || dz  z  z  d      d	|| dz  z  z  k(  sJ | t        | dz        z  j                  | t        |       z  d      dt        |       z  k(  sJ | d|z  z  dz  j                  | |z  d      d
k(  sJ | |z  |z  j                  | |z  |      ||z  k(  sJ | |z  d| z   z  d| |z  z   z  j                  | |z  d      dd| z   z  k(  sJ d||z  z   |z  |z  j                  ||z  | |z  |z        sJ | |z  |z  j                  | |z  |      ||z  k(  sJ | dz  |z  j                  | dz  |z  |      || z  k(  sJ | dz  |z  |z  j                  | dz  |z  |      ||z  k(  sJ | dz  |z  |z  j                  | dz  |z  |      ||z  k(  sJ ||dz  z  |dz  |dz  z  z  j                  |d	z  |dz  z  |dz  z  |d	z  z  |      ||dz  z  |dz  |dz  z  z  k(  sJ d| z  j                  d| z  |      d|z  k(  sJ |t        | t        dd      z        z  j                  |t        |       z  d      dt        | dz        z  k(  sJ |t        | t        dd      z        z  j                  |t        |       z  d      dt        | dz        z  k(  sJ |dz  |z  |dz  z  |z  |dz  z  j                  ||z  |z  |      ||dz  z  |z  k(  sJ | |dz  z  j                  | |z  |      ||dz  z  k(  sJ | dz  |dz  z  j                  | |z  |      |dz  |z  k(  sJ | |dz  z  j                  | |z  |      ||dz  z  k(  sJ | |z  |z  |z  t        | |z  |z        z  j                  | |z  |      |dz  |z  t        ||z        z  k(  sJ | dz  |z  |z  |z  t        | |z  |z        z  j                  | |z  |      |dz  t        |dz        z  k(  sJ | dz  |z  t        | |z  |z        z  |z  t        | |z  |z        z  j                  | |z  |      | |z  t        |dz        z  |z  t        |dz        z  k(  sJ | |z  |z  |z  |z  |z  j                  | |z  |z  |      |dz  |z  |z  k(  sJ t         |z  |z  j                  ||z  d      dt        z  k(  sJ dt        z  |z  j                  d|z  d      d	t        z  k(  sJ t         |z  j                  | d      t        k(  sJ d	| dz  z  j                  d| z  |      |dz  k(  sJ d| dz  z  j                  d| z  |      d|dz  z  k(  sJ | dz   dz  j                  |  dz  |      |dz   | z  k(  sJ | dz   dz  j                  | dz  |      |dz   | z  k(  sJ d| dz  z  dz  j                  | dz  |      d| z  |dz  z  k(  sJ d| dz  z  dz  j                  |  dz  |      d| z  |dz  z  k(  sJ d| dz  z  dz  j                  d| z  |      || dz  z  dz  k(  sJ d| dz  z  dz  j                  d| z  |      | | dz  z  dz  k(  sJ dd| z  dz  dz  dz  z  j                  d| z  dz  |      dt        dd      dz  z  |dz  z  k(  sJ d	| z  j                  d| z  |      d	| z  k(  sJ y )Nzx y z a b czA B Cr   commutativer4   rC   rw   r3   rP   @   r5   i   	      )r   r6   r   r   r   )	r.   r/   r0   r-   rp   rq   ABCs	            r9   test_mulr      s	   }-Aq!Q1g1-GAq!aCE<<!Q1a4'''aC::ac1"""aCE<<!Q1Q3q5(((aCE<<!Q1Q3&&&aCE<<!Q1Q3&&&aCE<<!QqS!QqS(((aCE<<1Q31ac7***aCE<<!Aq!Qx1~%5555aCE<<!Q1Q3&&&qDQx1~%&&,,Qq1Q3xZ;qQqSzIIIc!A#hJQs1vXq)Qs1vX5551XM1a(B...aCE<<!Q1Q3&&&aCQKQqS!''!Q/1a!e9<<<1WaKM!QqSU+++aCE<<!Q1Q3&&&qDF==Aa#qs***qDF1H??1a461%1,,,qDF1H??1a461%1,,,adFAqDAI$$QT!Q$Yq!t^AqD%8!<	!Q$1QT	  aC::ac11$$$c!HQN"##))!CF(A6!C!H*DDDc!HQN"##))!CF(A6!C!H*DDDqDF1a4KM!Q$$$QqSUA.!AqD&(:::adF==1a AadF***qDAIAaC#q!tAv---adF==1a AadF***aCE!GC!AJ$$QqS!,1Qs1Q3x???qDF1HQJs1Q3q5z!''!Q/1a4AqD	>AAAqDF3qs1u:aAaCE
*001a8	!C1IaAqD	!" " "aCE!GAIaKac!eQ'1a46!8333BqDF==1a BqD((( qDF==Aq!QqS(((BqD;;r1""" adF==1a AqD(((1H??1Q3"a1f,,,TE!G>>1"Q$"q!teAg---TE!G>>!A#q!adU1W,,,q!tGAIAaC#r!tAqDy000q!tGAIQBqD!$1QT	111q!tGAIBqD!$!Q$q000q!tGAIAaC#r!Q$wqy000qs1uQwlN  1Q*a!Q!0C.CAqD.HHHHaC::bdA!A#%%%r;   c                     t        dd      } t        dd      }d| z  j                  dd      d| z  k(  sJ d| z  j                  dd      d| z  k(  sJ d| z  j                  | d      d	k(  sJ t        d      j                  dd      t        d      k(  sJ t        d      j                  dd      t        d      k(  sJ t        |       j                  | d      t        d      k(  sJ d|z  j                  dd      d|z  k(  sJ d|z  j                  dd      d|z  k(  sJ d|z  j                  |d      d	k(  sJ t        |      j                  |d      t        d      k(  sJ y )
Nr-   Tr   r.   Fr4   rC   r3   r5   )r   r6   r!   )r-   r.   s     r9   test_subs_simpler     s\   &A'AaC::aqs"""aC::aqs"""aC::aq   q6;;q!A&&&q6;;q!A&&&q6;;q!A&&&aC::aqs"""aC::aqs"""aC::aq   q6;;q!A&&&r;   c                  \   t        dd      \  } }t        dd      \  }}| |z  j                  d| z  d      | |z  k(  sJ d| z  |z  j                  | d      d|z  k(  sJ d| z  |z  j                  d| z  d      |k(  sJ d| z  |z  j                  d	| z  d      d| z  |z  k(  sJ ||z  j                  d|z  d      ||z  k(  sJ d|z  |z  j                  |d      d|z  k(  sJ d|z  |z  j                  d|z  d      |k(  sJ d|z  |z  j                  d	|z  d      d|z  |z  k(  sJ y )
Nza bTr   x yFr4   rC   g      ?rP   r   r6   )r-   rp   r.   r/   s       r9   test_subs_constantsr     sZ   5d+DAq5e,DAqaC::ac11$$$E!G>>!Q3q5(((aCE<<!Q1$$$aCE<<!Q1Q3q5(((aC::ac11$$$E!G>>!Q3q5(((aCE<<!Q1$$$aCE<<!Q1Q3q5(((r;   c                     t        dd      \  } }}}}| |z  j                  | |z  |      |k(  sJ | |z  | z  |z  j                  | |z  |      |dz  k(  sJ | | z  |z  |z  j                  | |z  |      |dz  k(  sJ | |z  |z  |z  j                  | |z  |z  |      ||z  k(  sJ | ||z  z  j                  | |      |||z  z  k(  sJ | ||z  z  j                  ||      | ||z  z  k(  sJ | ||z  z  j                  ||      | ||z  z  k(  sJ | |z  |z  |z  | z  j                  | |z  |      ||dz  z  k(  sJ | dz  |dz  z  | z  j                  | |z  |      | dz  |dz  z  k(  sJ y )N	a b c d KTr   r4   r3   r   )r-   rp   rq   dKs        r9   test_subs_commutativer   -  s   KT:MAq!QaC::ac1"""aCE!G>>!A#q!QT)))aCE!G>>!A#q!QT)))aCE!G>>!A#a%#qs***adF==A!AqD&(((adF==A!AqD&(((adF==A!AqD&(((aCE!GAIAaC#qAv---qDAIaKac1%Aad222r;   c                  R   t        dd      \  } }}}}t        dd      }t        ddd      }||z  j                  ||z  |      |k(  sJ | |z  |z  j                  ||z  |      | |z  |z  k(  sJ | |z  |z  |z  j                  ||z  |      | |z  |z  k(  sJ ||z  |z  |z  j                  ||z  |      |dz  k(  sJ ||z  |z  j                  ||z  |      ||z  k(  sJ ||z  |z  |z  j                  ||z  |      ||z  |z  k(  sJ | |z  |z  j                  ||z  |z  |      | |z  |z  k(  sJ |||z  z  j                  ||      |||z  z  k(  sJ |||z  z  j                  ||      |||z  z  k(  sJ |||z  z  j                  ||      |||z  z  k(  sJ | |z  |z  |z  |z  |z  j                  ||z  |z  |      | |z  |z  |z  k(  sJ | |z  |z  |z  | z  |z  |z  |z  |z  |z  |z  |z  |z  j                  ||z  |      | |z  |z  | z  |z  |dz  z  |z  |z  k(  sJ ||z  |z  j                  ||z  |      ||z  k(  sJ ||z  |z  |z  |z  |z  |z  |z  j                  ||z  |      ||z  |z  |dz  z  k(  sJ t        d	d
      D ]D  }t        d      D ]4  }|||z  z  j                  ||z  |      ||||z  z  z  |||z  z  z  k(  r4J  F |t        dd      z  j                  |t        j
                  z  |      |t        dd      z  k(  sJ |t        j
                  z  j                  |t        j
                  z  |      |k(  sJ |t        dd      z  j                  |t        j
                  z  |      |t        dd      z  k(  sJ |t        dd      z  j                  |t        dd      z  |      |k(  sJ |d|z  z  j                  ||z  |      |dz  k(  sJ |d|z  dz   z  j                  ||z  |      |dz  |dz  z  k(  sJ |d|z  dz   z  j                  ||z  |      |dz  |dz  z  k(  sJ |d|z  z  j                  |d|z  z  |      |||z  z  k(  sJ |d|z  z  j                  |d|z  z  |      |dz  k(  sJ |d|z  d	z   z  j                  |d|z  z  |      |dz  |z  k(  sJ |d|z  z  j                  |d|z  z  |      |||z  z  k(  sJ |d|z  d	z   z  j                  |d|z  z  |      |||d	z   z  z  k(  sJ |d|z  z  j                  ||z  |      |d|z  z  k(  sJ |d|z  dz   z  j                  |dz  |      |d|z  dz   z  k(  sJ d|z  |z  j                  ||z  |      d|z  |z  k(  sJ |d|z  |z  z  j                  ||z  |      |d|z  |z  z  k(  sJ |d|z  |z   z  j                  ||z  |      |d|z  |z   z  k(  sJ ||dz  dz   z  j                  ||z  |      ||dz  dz   z  k(  sJ d|z  j                  d|z  |      |dz  k(  sJ |dz  j                  |dz  |      |dz  k(  sJ |dz  j                  |dz  |      |dz  k(  sJ |dz  j                  |dz  |      |dz  k(  sJ |dz  j                  |dz  |      |dz  |dz  z  k(  sJ |dz  j                  |dz  |      |dz  |dz  z  k(  sJ |dz  j                  |dz  |      |dz  k(  sJ |dz  j                  |dz  |      |dz  k(  sJ |dz  j                  |dz  |      |k(  sJ |dz  j                  |dz  |      ||dz  z  k(  sJ |dz  j                  |dz  |      ||dz  z  k(  sJ |d	z  j                  |dz  |      |k(  sJ |dz  j                  |dz  |      |dz  k(  sJ |dz  j                  |dz  |      |dz  k(  sJ |dz  j                  |dz  |      |dz  |z  k(  sJ |d
z  j                  |dz  |      |dz  |dz  z  k(  sJ y )N	w x y z LFr   alphaTsomeint)r   rI   r4   rC   rw   
   r3   rD   rP   r   rQ   )r   r6   ranger   r   Half)	rZ   r.   r/   r0   Lr   r   pks	            r9   test_subs_noncommutativer   ;  s	   KU;MAq!QG.EiT4@GaC::ac1"""aCE<<!Q1Q3q5(((aCE!G>>!A#q!QqSU***aCE!G>>!A#q!QT)))aCE<<!Q1Q3&&&aCE!G>>!A#q!QqSU***aCE<<!Aq!QqSU***adF==A!AqD&(((adF==A!AqD&(((adF==A!AqD&(((aCE!GAIaKac!eQ'1Q3q57222aCE!GAIaKM!OAa!!#A%++AaC3qs1uQwqyA~a7G7IIII
 aCE<<!Q1Q3&&&aCE!GAIaKM!O!!!A#q)QqSU1a4Z7771a[ Jr 	JA1H??1a4+q1q!t9}q1q5z/IIII	JJ x1~##AqvvIq1QA5FFFFqvvIAqvvIq)Q...xA$$QY2a"a6HHHHxA$$QQ%7;q@@@'	N  GQ/1a4777'	A$$QZ3q!tAqDy@@@'	A$$QZ3q!tAqDy@@@'	N  QwY3q1g:~EEE'	N  QwY3q!t;;;'	A$$Q7^Q71a4!8CCC'	N  QwY3q1g:~EEE'	A$$Q7^Q71q7Q;?O;OOOO%Lq%x+q1U7|;;;%!""1a4+q1U7Q;/????qS5Lq%x+!e|;;;'	% &&q'z15QwYu_9MMMM'	E!"((GQ71qy5?P;QQQQ
 
Q%%aj!4GQJN8KKKK qD;;q!tQ1a4''' G>>!Q$"a"g---G>>!Q$"a"g---G>>!Q$"a"g---G>>!Q$"a"gB&7777G>>!Q$"a"gB&7777G>>!b'1%R000G>>!b'1%R000G>>!b'1%***G>>!b'1%QW444G>>!b'1%QW444qD;;q2w"a'''qD;;q2w"ad***qD;;q2w"a"g---qD;;q2w"a"gk111qD;;q2w"a"g1n444r;   c                     t        dd      \  } }}}}t        dd      \  }}}}}	||z   j                  ||z   |	      |	k(  sJ ||z
  j                  ||z
  |	      |	k(  sJ ||z  j                  ||	      |	|z  k(  sJ ||z  j                  ||	      |	|z  k(  sJ ||z  j                  ||	      ||	z  k(  sJ | |z
  |z  j                  ||      | |z
  |z  k(  sJ t        ||z  |z
        j                  ||z  |	      t        |	|z
        k(  sJ | t        ||z  ||z  z
        z  |t        ||z  ||z  z         z  z   j                  |d      | t        ||z        z  |t        ||z        z  z   k(  sJ | |z
  ||z  | |z  z
  z  j                  ||z  | |z  z
  |      | |z
  |z  k(  sJ |t        | |z  |z
        z  |z  |z  dz  j                  ||z  |	      |t        | |z  |z
        z  |	z  dz  k(  sJ y )Nr   Tr   r   Fr   rP   )r   r6   r   )
r-   rp   rq   r   r   rZ   r.   r/   r0   r   s
             r9   test_subs_basic_funcsr     s;   KT:MAq!QKU;MAq!QE<<Aq!Q&&&E<<Aq!Q&&&aC::aqs"""qD;;q!1$$$qD;;q!1$$$UAIAq!a!eQY...!aLqsA&#a!e*444c!A#!)nqQqS1Q3Y//55a;	#ac(
Qs1Q3xZ     UQqS1Q3Y%%acAaCi3Aqy@@@c!A#'lN1Qq &&qsA.!C!aL.2B12DDDDr;   c                  $   t        dt              \  } }}}| |z  j                  | |z  |      |k(  sJ || z  j                  | |z  |      |k(  sJ | |z   j                  | |z   |      |k(  sJ | |z  j                  | |      ||z  k(  sJ | |z  j                  ||      | |z  k(  sJ | ||z  z  j                  | |      |||z  z  k(  sJ | ||z  z  j                  ||      | ||z  z  k(  sJ | ||z  z  j                  ||      | ||z  z  k(  sJ y )NR S T Ucls)r   r   r6   )Rr   TUs       r9   test_subs_wildr     s6   -JAq!QaC::ac1"""aC::ac1"""E<<Aq!Q&&&qD;;q!1$$$qD;;q!1$$$adF==A!AqD&(((adF==A!AqD&(((adF==A!AqD&(((r;   c                  V   t        dd      \  } }}}}t        dd      \  }}}}}	t        dt              \  }
}}}| |z  |z  j                  ||z  |	      | |	z  k(  sJ | |z  |z  |z  |z  j                  ||z  |	      | |z  |	z  |z  k(  sJ |
|z  |z  t        ||z        z  j                  ||z  |	      |
|	z  t        |	      z  k(  sJ | |z  |z  |z  |z  ||z  |z  t        | |z        z  z
  j                  ||z  |	      | |	z  |z  |z  |	|z  t        | |z        z  z
  k(  sJ ||z  |z  |z  ||
|z  | |z  z
  z  z  || |
z  |z  |z  z  z
  }|j                  ||z  |	      j                  | |z  |      j                  |
|z  |      ||z  |	z  |||z
  z  z  |||z  z  z
  k(  sJ y )Nr   Tr   r   Fr   r   )r   r   r6   r   )r-   rp   rq   r   r   rZ   r.   r/   r0   r   r   r   r   r   r8   s                  r9   test_subs_mixedr     s   KT:MAq!QKU;MAq!Q-JAq!QaCE<<!Q1Q3&&&aCE!GAIAaC#qs1uQw...aCE#ac(N  1a(AaCAJ666aCE!GAI!Ac!A#h&,,QqS!4!Aa!A#c!A#h,8NNNN	!AaAaC!A#IAaCE!G,A66!A#q>qsA&++AaC3	!Aa!a%j1ac7"# # #r;   c                     t        dd      \  } }}t        dd      \  }}}d| z  j                  | |      d|z  k(  sJ d| dz  z  j                  | |      d|dz  z  k(  sJ d| dz  z  j                  | d      t        dd      k(  sJ d| dz  z   j                  | d      t        d	d      k(  sJ d|z  j                  ||      d|z  k(  sJ d|dz  z  j                  ||      d|dz  z  k(  sJ d|dz  z  j                  |d      t        dd      k(  sJ d|dz  z   j                  |d      t        d	d      k(  sJ d|z  j                  |d
      dt        j                  z  k(  sJ y )Nza b cTr   zx y zrC   r4   r   rP   rD   r   )r   r6   r   r   Zero)r-   rp   rq   r.   r/   r0   s         r9   test_divisionr     s   g40GAq!g40GAq!aC::aqs"""adF==A!AqD&(((adF==B8Aq>1111fIAr"hr1o555aC::aqs"""adF==A!AqD&(((adF==B8Aq>1111fIAr"hr1o555 aC::aqx'''r;   c                  t   t        d      \  } }}}}}}| dz  |z
  |z
  j                  | dz  |z
  |      ||z
  | dz  |z
  |z
  fv sJ | dz  |z
  j                  | dz  |z
  |      |k(  sJ | dz  |z
  |z
  j                  | dz  |z
  |      ||z
  | dz  |z
  |z
  fv sJ | dz  |z
  |z
  j                  | dz  |z
  |      ||z
  | dz  |z
  |z
  fv sJ | dz  |z
  t        |       z
  j                  | dz  t        |       z
  |      ||z
  k(  sJ | |z   t        | |z         z   j                  | |z   |      |t        |      z   k(  sJ ||z   t        ||z         z   j                  ||z   |       | t        |       z   k(  sJ | |z   |z   |z   j                  ||z   |      | |z   |z   k(  sJ | |z   |z   |z   j                  | |z
  |      | |z   |z
  k(  sJ |dz   |z  j                  |dz   |      ||z  k(  sJ | dz
  |z  j                  |dz   |      | |z  k(  sJ |dz
  |z  j                  |dz   |      ||dz
  z  k(  sJ | dz   |z  j                  |dz   |      || dz   z  k(  sJ | dz  |z
  |z
  }|j                  t	        |j
                  d d  |      ||j
                  d   z   k(  sJ |j                  | dz  |z
  |      ||z
  k(  sJ d| z   j                  dt        dd            t        dd      | z   k(  sJ | | dz   z  ||dz
  z  z
  }| |z  || z  z
  j                         }|j                  | dz   |      |k(  sJ t        |      t        |      z   j                  |t              t        k(  sJ t	        t        dd      t        g t        k(  sJ t	        t        t        dd      g t        k(  sJ y )Nza b c d x y tr4   rC   g?r   rD   )r   r6   r   r   r   argsr   expandr   r   r   )	r-   rp   rq   r   r.   r/   r1   r8   anss	            r9   test_addr     s>   !/2Aq!Q1aqD1HqLq!tax+Aq!tax!|/DDDDqD1H??1a4!8Q'1,,,qD1HqLq!tax+Aq!tax!|/DDDDqD1HqLq!tax+Aq!tax!|/DDDDqD1HtAw$$QTDG^Q71q5@@@ECAJ$$QUA.!c!f*<<<ECAJ$$QUA.!c!f*<<<EAIMAq)QUQY666EAIMQ*a!eai777UAIAE1%1,,,R!VQJQUA&1"Q$...UAIAE1%AE222R!VQJQUA&!aR!V*444 	
1q1A66#qvvbqz"A&!affQi-77766!Q$(A!a%'''
 !G>>#x2/8Ar?Q3FFFF
aR!Vq!a%y	 A2q6ArF?
"
"
$C661"q&!### FSVO!!!R(B...R#R()R///[Q'()R///r;   c                  r    t         t        d      z  j                  dd      t         t        d      z  k(  sJ y )Nr-   rC   r4   )r   r   r6   rd   r;   r9   test_subs_issue_4009r     s-    fSkM1%6#;666r;   c                     t        dt              \  } }t        t        t        ft        t              t        z         } |t        t              t        t              z   j                  ||      t        t              t        z   t        t              z   k(  sJ  | t              dz  j                  | t
              t        t              dz  k(  sJ  | t        t              j                  | t              t        t        t              k(  sJ  | t        t              j                  | t
               | t        t              k(  sJ t        t              t        t        t              z   j                  t        | gt
        |gg       | t        t               |t              z   k(  sJ  | | t        t        z   t                    j                  | |g|t        gg      t        t        t        t        t        z         z         k(  sJ y )Nf gr   r4   )r   r	   r
   r.   r/   r!   r   r6   r   r   r   )rr   rx   ls      r9   test_functions_subsr     sg   5h'DAq1vs1vz"AaGc!f""1a(CFQJQ,????aD!G>>!S!SVQY...aG>>!S!SAY...aG>>!S!Qq!W,,,FU1a[ &&
S!H'=>	!Q!A$  aAqkN  1a&1c(!34AAE
N8KKKKr;   c            	         t        d      } t        d      }t         | t              t              j                   | t              t              dk7  sJ t         | t              t              j                   | t              t              j                  t         | t              i      t         | t              t              k(  sJ t        t         | t              t               | t              z         d   d   j                  t              sJ t        t         | t        t              t              t         | t        t              t              z         d   d   j                  t              sJ t         |t               |t                    }|j                  ||       t         | t               | t                    k(  sJ |j                   |t               | t                    t         | t               | t                    k(  sJ |j                  |t              t        t        t        t              t        t        t                    k(  sJ y )Nrr   rx   r   rC   )
r	   r   r.   r6   r/   xreplacer(   hasr   r   )rr   rx   r   s      r9   test_derivative_subsr     s   AAadA##AaD!,111adA##AaD!,55q!A$i@1Q4   z!A$"QqT)*1-a044Z@@@z!Aq'1%!Aq'1%& ''(**+--0S_= = =	AaD!A$	B771a=JqtQqT2222771Q41*QqT1Q4"8888771c?d:a#3QA????r;   c            	         t        dt              \  } } | t        t        t               |t        t        t              }}t        |t        t              j                  t        |t        t              |      |k(  sJ t        |t        t              j                  t        |t        t              |      |k(  sJ t        |t        t              j                  t        |t              |      t        |t              k(  sJ t        |t        t              j                  t        |t              |      t        |t              k(  sJ t        |t        t        t              j                  t        |t        t              |      t        |t              k(  sJ t        |t        t        t              j                  t        |t        t              |      t        |t              k(  sJ t        |t        t        t              j                  t        |t        t        t              |      |k(  sJ t        |t        t        t              j                  t        |t        t              |      t        |t        t        t              k(  sJ t        |t        t        t        t              j                  t        |t        t        t        t              |      t        |t        t        t        t              k(  sJ t        |t        t              j                  t         | t              t        t              |      t        |t        t              k(  sJ y )Nr   r   )r   r	   r.   r/   r0   r   r6   )f_funcg_funcrr   rx   s       r9   test_derivative_subs2r   	  s{   U1NFF!Q?F1aOqAaA##Jq!Q$7;q@@@aA##Jq!Q$7;q@@@aA##Jq!$4a8Jq!<LLLLaA##Jq!$4a8Jq!<LLLLq!Q"''1a#Q(+5a+;< = <q!Q"''1a#Q(+5a+;< = <q!Q"''1aA&+./0 1 0 q!Q"''1a#Q(+5aAq+AB C Bq!Q1%**1aAq)1.1;Aq!Q1JK L K aA##Jvay!Q$?CzRSUVXYGZZZZr;   c                  *   t        t        t              t              } t        | t              j                  | t        t                    | k(  sJ | j                  t        t              |       t        t        t              t        t              k(  sJ y N)r   r   r.   r6   )dexs    r9   test_derivative_subs3r      sb    
SVQ
Cc1""3A/366688CFC Js1vq!$<<<<r;   c                     t        dd      \  } }t        | z  j                  t        dz  | z  |      t        | z  k(  sJ | dz  j                  | dz  |      | dz  k(  sJ | dz  j                  | dz  |      |dz  k(  sJ y )NzA BFr   r4   r3   r5   )r   r.   r6   )r   r   s     r9   test_issue_5284r   &  s    5e,DAqaC::ad1fa AaC'''qD;;q!tQ1a4'''qD;;q!tQ1a4'''r;   c                  2   t        j                  t        t         t        gg            t        k(  sJ t	        t         t        gg      } t        j                  |       t        k(  sJ t        j                  t        t         t        f            t        k(  sJ y r   )r.   r6   reversedr/   iterr   )its    r9   test_subs_iterr   -  sf    66(QF8$%***	1vhB66":??66%A- A%%%r;   c            
      v   t        d      \  } }}}}dt        z  t        z   t        z   j	                  ddd      dt        z   k(  sJ t        t              dft        dfg}t        t              j	                  |      t        t              j	                  t        |            cxk(  rdk(  sJ  J t        t              j	                  t        |            t        d      k(  sJ t        dt        z        t        t        dt        z              t        dt        z        z  t        t        t              t        z        z  z   }t        dt        z        |t        t        dt        z              | t        dt        z        |t        t              |t        |i}|j	                  |      || |z  t        ||z        z  z   k(  sJ t        dft        t        dz  fg}t        t        z   j	                  |      dt        dz  z   k(  sJ t        t        z   j	                  t        |            dk(  sJ t        t        dz   fdt        z   dft        dfg}t        dz
  dt        z  z   j	                  |      ddt        z  z   k(  sJ t        t        dz   ft        dfg}t        dz
  j	                  |      dk(  sJ y )	Nz	a b c d er4   rC   r.   r/   rP   r3      rw   )r   r.   r/   r0   r6   r!   dictr   r   r   r   )r-   rp   rq   r   r8   r   exprrepss           r9   test_subs_dictr   4  sA   K(MAq!QaC!GaKAA./1q5888
a&!q!fAF==F==a!'%&' ' ' ' 'q6;;x{#s1v---qs8d3qs8nS1X-c#a&(m;;D!HaC!H~q1Q3x1vq!	D
 99T?a!A#c!A#h,....
Q!QTAE<<?a!Q$h&&&E<<$***
 QUa!eQZ!Q(AEAaCKa A!G+++
QUaVAE<<?ar;   c                  \   t         dz   j                  t         dz   t              t        k(  sJ t         dz   j                  t         dz   t              t        dz   k(  sJ t         t        z   dz   j                  t         dz   t              t        t        z   k(  sJ t         t        z   dz   j                  t         dz   t              t        t        z   dz   k(  sJ t         dz   j                  t         dz   t              t        k(  sJ t         dz   j                  t         dz   t              t         dz   k(  sJ t         t        z   dz   j                  t         dz   t              t        t        z   k(  sJ t         t        z   dz   j                  t         dz   t              t         t        z   dz   k(  sJ y )Nr3   r4   rC   r_   r?   )r.   r6   r-   r/   rd   r;   r9   test_no_arith_subs_on_floatsr   S  sB   E<<Aq!Q&&&E<<Aq!QU***EAIAE1%Q...EAIAE1%Q222G>>!c'1%***G>>!c'1%S000ECKa#gq)QU222ECKa#gq)QUS[888r;   c                     t        dd      \  } }}}| ||z  z  j                  ||z  |      | |z  k(  sJ | |dz  |dz  z  z  j                  ||z  |      | ||dz  z  z  k(  sJ dt        t        z  z  j                  t        t        z  d      t        j
                  k(  sJ dt        t        z  z   t        t        z  z  j                  t        t        z  d      dk(  sJ t        t        z  t        z  j                  t        t        z  d      dt        z  k(  sJ dt        t        z  z   t        t        z  z  t        z  j                  t        t        z  d      dt        z  k(  sJ y )Nza b c KTr   r4   r3   rC   )r   r6   r.   r/   r   r   r0   )r-   rp   rq   r   s       r9   test_issue_5651r   a  s3   5JAq!QqsG>>!A#q!QqS(((q!tAqDyM!Q'1a1f:555qsG>>!A#q!QVV+++1WqsO!!!A#q)Q...aCE<<!Q1Q3&&&1WqsOA##AaC+qs222r;   c                  Z    t        dd      j                  dd      t        dd      k(  sJ y )NrC   Tr4   )r   r6   rd   r;   r9   test_issue_6075r   k  s)    D>q!$a666r;   c            	      &   t        t        dz   j                  dd      t        dz         sJ t        t        dz   j                  dd      t        dz         sJ t        t        dz   t        dz         rJ t        t        t	        t              t        d            t        t	        t              t        d                  rJ t        t        t              sJ t        dt
        j                        rJ t        t        t        dd            rJ y )	Nr?   r4   r3   rC   rb   r.   T)positive)r*   r.   r6   r   r   r   Oner   rd   r;   r9   test_issue_6079r   o  s    QWNN1a(!c'222QWNN3*AE222Aq3w'''c!fad+U3q61R5-ABBBC155!!!7367777r;   c                  J    t        d      } | j                  ddi      dk(  sJ y )NNr3   )r   r6   )r   s    r9   test_issue_4680r   z  s&    sA663(q   r;   c                     t         dz
  j                  dt              t         t        z
  k(  sJ t         dz
  j                  dt              t         t        z   k(  sJ t         t        z
  j                  t        t              t         t        z
  k(  sJ t         t        z
  j                  t         t              t         t        z   k(  sJ y )NrC   rD   )r.   r6   r/   r   rd   r;   r9   test_issue_6158r     s    E<<1Q&&&E<<A!a%'''F==Q1q5(((F=="a AE)))r;   c            	         t        dt              \  } }}}t         | | t        t                    t        dk  f |t              t        dk  f      }|j                  ||      t         | | t        t                    t        dk  f |t              t        dk  f      k(  sJ  | t               |t              z   j                  | |||i       |t               |t              z   k(  sJ y )Nzf g h ir   rD   rC   )r   r	   r   r.   r/   r6   )rr   rx   hrH   r   s        r9   test_Function_subsr     s    1JAq!Q1Qq!W:q2v&1qAv7A66!Q<9a!Qj!b&%9AaD!q&>JJJJaD1Q4Kq!Ql+qtad{:::r;   c                     t         dt        di} t         t        z  j                  |       t        t         z  j                  |       k7  sJ t         t        z  j                  | d      t        t         z  j                  | d      k(  sJ | j                         } t         t        z  j                  |       t        t         z  j                  |       k7  sJ t         t        z  j                  | d      t        t         z  j                  | d      k(  sJ t	        t         t        t
              j                  | d      t        t	        dt        t
              t        d      k(  sJ y )Nr   Tr=   )r.   r/   r6   ro   r   r0   r   r   s    r9   test_simultaneous_subsr     s   q!Q<DaC::d!zz$////aC::d:.	
1

4d
+, , ,::<DaC::d!zz$////aC::d:.	
1

4d
+, , ,aA##Dt#<Z1a !Q'( ( (r;   c                     ddt         t        z  z   z  j                  t         t        z  t               ddt         z   z  k(  sJ dt        z  j                  dt        z  t               t          k(  sJ t         t         z  j                  t        t         z  t               t          k(  sJ dt        z  t        dz  z  j                  dt        z  t        dz  z  t               t          t        dz  z  k(  sJ y )NrC   r   r4   rQ   rP   r3   )r.   r/   r6   r   rd   r;   r9   test_issue_6419_6421r    s    q1Q3wKac1%AE222qD;;qsA1"$$$BqD;;qsA1"$$$qDAIAaC1Ha(QBq!tG333r;   c                     dt         z  t        z   j                  t          d      dt        z   k(  sJ t        d      \  } }t	        dt        d      z  dz          dz  t	        dt        d      z  d	z         dz  z
  t        d      d	z  z   }t        |      | t        d      fg| d	z  t	        d| z  dz         dz  z
  t	        d| z  d	z         dz  z
  gfk(  sJ y )
NirC   r   zx0 x1r4         r   r3   )r.   r/   r6   r   r   r   r(   )x0r]   r8   s      r9   test_issue_6559r    s    EAIQB"b1f,,,WFB	Sa[2	r!C47
Q$7$::T!WQYFAq6
d1g"Q$SVb[!1"!44s2b519~b7HHIK K K Kr;   c                  >   t        dd      } t        | z  }t        |      j                  t        |       t              t        t        z  k(  sJ d|z  j                  d| z  t              t        t        z  k(  sJ d|z  }|j                  d| z  t              |k(  sJ y )Nr.   TrX   r4   r   )r   r   r   r6   r/   )r.   r8   r   s      r9   test_issue_5261r	    s    $A	!Aq6;;s1vq!QT)))qD;;q!tQ1a4'''
qB77B7A"$$$r;   c                      dt         z  t        d      z  j                  dt         z  t              t        d       t        z  k(  sJ y )Nr   r4   )r.   r   r6   r/   rd   r;   r9   test_issue_6923r    s7    qDaLqsA&47(1*444r;   c                      t        dd      } t        dt        dz   d      }dt        z  t        dz   z  j	                  t        dd      |k(  sJ dt        dz   | z   z  j	                  | d	d      |k(  sJ y )
Nr   Fr   r4   rC   )evaluateT)hack2r   )r   r   r/   r.   r6   )r   r   s     r9   test_2arg_hackr    sx    s&A
aQ
'CaCQKa$/3666q1uqyM1D1S888r;   c                  4    dt         dz   z  j                  sJ y)zWhen this fails, remove things labelled "2-arg hack"
    1) remove special handling in the fallback of subs that
    was added in the same commit as this test
    2) remove the special handling in Mul.flatten
    r4   rC   N)r.   is_Mulrd   r;   r9   	test_mul2r    s     q1uIr;   c                      t        dd      \  } }| |z  | z  j                  | | |z  f|| fgd      | |z  | dz  z  |z  k(  sJ y )Nzx,yFr   Tr=   r4   r   r   s     r9   test_noncommutative_subsr    sV    
%U
+CAaaCE<<!QqSAq6*<>1Q3q!t8A:NNNr;   c                      t        d      } t        | z   j                  | di      t        dz   k(  sJ d } |ddd      }t        |      dt        dz  z  dz  dt        z  z   dz   k(  sJ y )Nr?   r4   c                 F    t        | t        dz  z  |t        z  z   |z         S )Nr4   )r&   r.   )r-   rp   rq   s      r9   rs   ztest_issue_2877.<locals>.r  s"    a1fqslQ&''r;   g?r   rw   r5   )r   r.   r6   r)   )rr   rs   r8   s      r9   test_issue_2877r    sk    c
AE<<A1q5((((	%QAQ<1QT6!8bd?Q....r;   c                      t        d      } dd| z
  z  j                  | d      t        u sJ | }| dz
  }||z  j                  | d      t        u sJ | | z  j                  | d      t        u sJ y )Nr1   rC   )r   r6   r   )r1   rS   r   s      r9   test_issue_5910r    sz    sAq1uIAq!S(((	A	AAaC::as"""BrE<<1$$$r;   c                     t        d      } ddt        z  t        z  z
  }ddt        z  t        z  z   }dt        z  t        z  dz  t        z  t        z  }dt        z  t        z  | i}|j                  |      d| z   k(  sJ  |j                  |      d| z
  k(  sJ |dt        dz  z  t        dz  z  k(  sJ |j                  |      dt        dz  z  | z  k(  sJ y )Nrt   rC   r4   rP   )r   r.   r/   r6   )rt   r0   rZ   qsubs        r9   test_issue_5217r    s    sA	
QqSUA	
QqSUA	!Aa	!AQ3q5!*C66#;!a%166#;!a%!Q$q!t66#;!AqD&("""r;   c                      dt         z  j                  dt         z  t              t        dz  k(  sJ dt         z  j                  dt         z  t              t        dz  k(  sJ y )NrP   r4   r   r3   r.   r6   r/   rd   r;   r9   test_issue_10829r     sL    qD;;q!tQ1a4'''qD;;q!tQ1a4'''r;   c                      ddl m}  dt        t        dz        z  } |         |j	                  t        t        dz        t
              }|dt
        z  k(  sJ y )Nr   )clear_cacherC   r4   )sympy.core.cacher"  r   r.   r6   r/   )r"  rt   results      r9   test_pow_eval_subs_no_cacher%    sG    ,	$q!t*A M VVDAJ"FQqS==r;   c                      t        dd      } | dz  d| dz  z  z
  d| z  z   dz
  }t        |d	      }| |k  j                  | |      t        j                  u sJ y )
Nr.   TrX   r3   r  r4   Q   v   r   )r   r'   r6   r   false)r.   r   rs   s      r9   test_RootOf_issue_10092r*    s]    sA	
A1a4"Q$		$Br1AE<<1(((r;   c                      ddl m}   | d      j                  t        t        fd       t        t        fd       j                  t              du sJ y )Nr   )ReferenceFramer   c                  8    t        j                  t                S r   rc   vs   r9   <lambda>z!test_issue_8886.<locals>.<lambda>  s    1 r;   c                  0     j                   t              S r   )r6   r.   r.  s   r9   r0  z!test_issue_8886.<locals>.<lambda>  s    1 r;   F)sympy.physics.mechanicsr,  r.   r,   r   __eq__)r   r/  s    @r9   test_issue_8886r4  	  sA    ; 	
#A
<-.
<-.88A;%r;   c                     t          dft         dfg} t        t          k  j                  |       t        dk  k(  sJ t        t          k  j                  t        t	        |                   t        dk  k(  sJ t          dft         dfg} t        t         k  j                  |       t        dk  k(  sJ t        t         k  j                  t        t	        |                   t        dk  k(  sJ y )NrC   r4   )r   r.   r6   listr   r   s    r9   test_issue_12657r7    s    S!Hr1gDG>>$AE***G>>$x~./AE:::S!Hr1gDF==1q5)))F==htn-.1q5999r;   c                  J   t        t        t        ft        dt        z  dt        z  z               } t	        d      } |t         |t        t                    } | t         | t        t                    }|j                  ||       |j                  ||       cxk(  r|k(  sJ  J y )Nr4   r3   rr   )r
   r.   r/   r   r	   r6   replace)Frr   r   r   s       r9   test_recurse_Application_argsr;    sz    1vs1Q319~&AA	!Qq!WA	!Qq!WA66!Q<199Q?/a/////r;   c                     t        t        t        z  t        t              j                  t        t              t        t        t        z  t        t              k(  sJ t        t        t        z  t        t        dz         j                  t        t              t        t        t        z  t        t        dz         k(  sJ t        t        t        z  t        t        dz         j                  t        t              t        t        dz  t        t        dz         k(  sJ t        t        t        z  t        z  t        t        t        ft        dz   t        t        z   t        f      } t        t        t        z  t        z  t        t        t        ft        dz   t        t        z   t        f      } | j                  t        t              |k(  rS | j
                         j                  t        t               | j                  t        t              j                         k(  sJ t        d      }t        d      }t        d |t        t              z   |t              z    |t        t              d      j                  t        d      t        d |t        t              z   |t              z    |t        t              t        fd      k(  sJ y )NrC   r4   rr   rx   )rC   r4   )r   r.   r/   r6   r0   doitr	   )r-   rp   rr   rx   s       r9   test_Subs_subsr>  &  s   !Q?1%ac1a888!QA##Aq)QqS!QU  !QA##Aq)QT1a!e  QqSUQ1IAq1ua01AQqSUQ1IAq1ua01A166!Q<1avqvva|00223 3AA!Aq'	AaD !Aq'1-221a8D	!Aq'	AaD1Q7A,=0 0 0 0r;   c                  v    dt         z  } | j                  ddi      dk(  sJ | j                  ddi      dk(  sJ y )NrC   r.   z1/2r4   z(1/2)rc   r   s    r9   test_issue_13333rA  6  sA    	
1B77C< A%%%77C>"a'''r;   c                  P   t        dd      \  } }d| dz  z  | dz  z   d| dz  z  z
  d| dz  z  z   d| z  z
  dz   }d| dz  z  d| dz  z  z
  d| z  z
  |dz  z   d|dz  z  z   dz   }|j                  d	D cg c]  }| |z  ||z  f c}      |k(  sJ t        dd
      \  } }d| dz  z  | dz  z   d| dz  z  z
  d| dz  z  z   d| z  z
  dz   }d| dz  z  d| dz  z  z
  d| z  z
  |dz  z   d|dz  z  z   dz   }|j                  d	D cg c]  }| |z  ||z  f c}      |k(  sJ y c c}w c c}w )Nr   TrX   r5   rw   rP   r3   r4   )r4   rP   )complexr   )r.   r/   r   p_subbedrH   s        r9   test_issue_15234rE  <  s|   5t$DAq	!Q$A!Q$1a4'!A#-1AAv!Q$1$q!t+a1f4q8H660AAqD!Q$<01X===5$'DAq	!Q$A!Q$1a4'!A#-1AAv!Q$1$q!t+a1f4q8H660AAqD!Q$<01X===	 1 1s   2D D#c                  6   t        d      \  } }t        |       dz  t        |       z   | z   | dz  z   j                  t        |       |      |dz  |dz  z   |dz  z   |z   k(  sJ | dz  | dz  z   | dz  z   | z   t        |       z   j                  | dz  |      t        |       | dz  z   | z   |dz  z   |z   k(  sJ  | j                  | dz  |      | k(  sJ  | j                  | t        dd      z  |      |dz  k(  sJ t        dd      \  } }| dz  | dz  z   | dz  z   | z   t        |       z   j                  | dz  |      |t        dd      z  |t        dd      z  z   t        |      z   |dz  z   |z   k(  sJ  | j                  | dz  |      |t        dd      z  k(  sJ y )Nr   r3   r4   rP   rC   T)nonnegative)r   r   r6   r   r   s     r9   test_issue_6976rH  G  s   5>DAqGQJa 1$q!t+11$q'1=	1q!tadQ  qD1a4K!Q$"T!W,221a4;Q!Q$QT!A%& & &166!Q$?a166!Xa^#Q'1a4/// 5d+DAqqD1a4K!Q$"T!W,221a4;	8Aq>Ax1~--Q7!Q$>BC C C166!Q$?a!Q////r;   c                     dt         z  j                  t         dz  d      dt         z  k(  sJ dt         dz  z  j                  t         dz  d      t         dz  k(  sJ dt         dz  z  j                  t         dz  d      dk(  sJ dt         dz  z  j                  t         dz  d      t         dz  k(  sJ dt        dz  z  j                  t         dz  d      t        dz  k(  sJ y )NrC   r4   r3   rQ   rP   rw   r   r  rd   r;   r9   test_issue_11746rJ  W  s    aC::adA!A#%%%q!tH??1a4#q2w...q!tH??1a4#q(((q!tH??1a4#q2w...q!tH??1a4#q2w...r;   c                     ddl m}   | d      \  }}|j                         j                         dz  |z  |j                         |j                         z  z   }|t        |j                         t        t        z  t
        z  |j                         j                         t        i}|j                  |      t        t        z  t
        z  t        |t              z  t        t        dz  z  z   k(  sJ y )Nr   )dynamicsymbolszq1, q2r4   )
r2  rL  rL   r-   r.   r/   r0   r6   r   r1   )rL  q1q2r   r   s        r9   test_issue_17823rO  _  s    6H%FB779>>Qr!BGGIbggi$77D
aAaCE2779>>#3Q	7D99T?ac!eJr1$55!Q$>>>>r;   c                      t        t        d      D  cg c]  }  | t               c} \  }}||z  j                  |d|z   ||i      d|z   |z  k(  sJ y c c} w )NxyrC   )rl   r	   r1   r6   )rH   r.   r/   s      r9   test_issue_19326rR  g  sV    h-.QAaD.DAqaC::q!a%A&'AE19444 /s   Ac                  j   dt         z  t        t               z  dt        t               dz  z  z
  t        t               dz   dt        t               z  z   dz   dz  z  dt         t        t               z  dt        t               dz  z  z
  z  dt        t               dz  z  dt        t               z  z
  dz   dz  z  z  } | j	                  t         t
              t        t
         t
              k(  sJ t        t               t        t               z   j	                  t         t
              t        dd      k(  sJ y )Nr   r   r3   rP   r4   rC   r   )r.   r   r   r!   r6   r   r   rE   s    r9   test_issue_19558rT  l  s    	
1SVbQl	"c!faiZ!CF(%:Q%>$BB#a&1SVQY;3q619qQx!7!!;a ??	AA 66!R=KR0000FSVO!!!R(KA,>>>>r;   c                  d    t        dd      } d| z  }|j                  | dz  t              |k(  sJ y )NxrTrX   rC   r4   )r   r6   r/   )rV  r8   s     r9   test_issue_22033rW  t  s4    	4	 B	
2A66"a%q   r;   c                     t         t        z  } | j                  t         dft        t        fg      dk(  sJ | j                  t        t        ft         dfg      t        j
                  u sJ | j                  t         dt        t        i      t        j
                  u sJ | j                  t         dft        t        fgd      t        j
                  u sJ y )NrC   Tr=   )r.   r/   r6   r   r   NaNr@  s    r9   +test_guard_against_indeterminate_evaluationrZ  z  s    	
AB77QFQG$%***77QGaV$%...77Aq!R=!QUU***77QFQG$478AEEAAAr;   N)!sympy.calculus.accumulationboundsr   sympy.core.addr   sympy.core.basicr   sympy.core.containersr   r   sympy.core.functionr   r	   r
   r   sympy.core.mulr   sympy.core.numbersr   r   r   r   r   r   r   sympy.core.relationalr   sympy.core.singletonr   sympy.core.symbolr   r   r   sympy.core.sympifyr   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.piecewiser   (sympy.functions.elementary.trigonometricr   r   r    r!   r"   sympy.matrices.denser#   r$   "sympy.matrices.expressions.specialr%   sympy.polys.polytoolsr&   sympy.polys.rootoftoolsr'   sympy.simplify.cse_mainr(   sympy.simplify.simplifyr)   r*   sympy.testing.pytestr+   r,   	sympy.abcr-   r.   r/   r0   r1   r:   rA   rF   rN   rV   r[   r`   re   ri   ru   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r  r  r  r   r%  r*  r4  r7  r;  r>  rA  rE  rH  rJ  rO  rR  rT  rW  rZ  rd   r;   r9   <module>rr     s   9  " / D D  I I I $ " 5 5 + = 9 : P P 0 9 ( * ' - % . # #	I#14
1337
%$B24#*(
	L4&n'")3G5TE"
)#($"0J7	L@"[.=(& >9378!
*;
(4K%59  O
/%	#(
 ) :00 (>0 /?5
?!Br;   