+
    h\2                       ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHtHtHt ^ RIHtHtHtHtHtHtHt ^ RIHtHt ^ R	IHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t& ^ R
I'H(t( ^ RI)H*t*H+t+H,t,H-t- ^ RI.H/t/ ^ RI0H1t1 ^ RI2H3t3H4t4H5t5H6t6 ^ RI7H8t8 ^ RI9H:t: ^ RI;H<t<H=t=H>t> ^ RI?H@t@HAtA ^ RIBHCtCHDtD ^ RIEHFtF ^ RIGHHtHHItIHJtJ ^ RIKHLtLHMtM ^ RINHOtO ^ RIPHQtQ ^ RIRHStSHTtT ^ RIUHVtV ^ RIWHXtX ^ RIYHZtZH[t[H\t\ ^ RI]H^t^ ^ RI_H`t` ^ RIaHbtb ^ R IcHdtd ^ R!IeHftf ^ R"IgHhth ^ R#IiHjtjHktk ^ R$IlHmtm ^ R%InHotoHptp ^ R&IqHrtr ^ R'IsHttt ^ R(IuHvtv ^ R)IwHxtxHyty ^ R*IzH{t{H|t|H}t}H~t~HtHtHtHtHt ]4! R+]R,7      w  ttt ! R- R.4      t ! R/ R0]4      t ! R1 R2]4      t]! 4       t]! 4       t]!! ^4      ]! R34      ]]]! ]]4      ],          .t]^R4]].,           tR5 tR6 tR7 t ! R8 R94      t ! R: R;]]4      t ! R< R=4      t ! R> R?]4      tR@ tRA tRB tRC tRD tRE tRF tRG tRH tRI tRJ tRK tRL tRM tRN tRO tRP tRQ tRR tRS tRT tRU tRV tRW tRX tRY tRZ tR[ tR\ tR] t]yR^ 4       tR_ tR` tRa tRb tRc tRd tRe tRf tRg tRh tRi tRj tRk tRl tRm tRn tRo tRp tRq tRr tRs tRt tRu tRv tRw tRx tRy tRz tR{ tR| tR} tR~ tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t]yR 4       tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR Et R EtR# )    )refine)Sum)Add)Basic)Tuple)ExprBuilder	unchangedExprUnevaluatedExpr)FunctionexpandWildFunctionAppliedUndef
DerivativediffSubs)Mul_unevaluated_Mul)NumberSymbolEzooooFloatIRationalnanIntegerNumberpi_illegal)Pow)GeLtGtLe)S)default_sort_key)SymbolsymbolsDummyWild)sympify)	factorial)	exp_polarexplog)sinhtanh)sqrtMax)	Piecewise)tansincos)	Heaviside
DiracDelta)Si)gamma)	integrateIntegral)	FockState)apart)factorcancelPoly)together)O)	FiniteSet)combsimp)	gammasimp)powsimp)collectradsimp)ratsimp)simplify	nsimplify)trigsimp)Indexed)meter)raisesXFAIL)	abcntuxyzzf,g,hclsc                   l   a  ] tR t^6t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tRtV tR# )DummyNumbera  
Minimal implementation of a number that works with SymPy.

If one has a Number class (e.g. Sage Integer, or some other custom class)
that one wants to work well with SymPy, one has to implement at least the
methods of this class DummyNumber, resp. its subclasses I5 and F1_1.

Basically, one just needs to implement either __int__() or __float__() and
then one needs to make sure that the class works with Python integers and
with itself.
c                j    \        V\        \        34      '       d   WP                  ,           # \        # N
isinstanceintfloatnumberNotImplementedselfrT   s   &&</usr/lib/python3/dist-packages/sympy/core/tests/test_expr.py__radd__DummyNumber.__radd__C   %    a#u&&{{?"    c                v    \        V\        \        \        34      '       d   V P                  V,           # \
        # rb   rd   re   rf   r`   rg   rh   ri   s   &&rk   __add__DummyNumber.__add__H   *    a#uk233;;?"ro   c                j    \        V\        \        34      '       d   WP                  ,
          # \        # rb   rc   ri   s   &&rk   __rsub__DummyNumber.__rsub__M   rn   ro   c                v    \        V\        \        \        34      '       d   V P                  V,
          # \
        # rb   rq   ri   s   &&rk   __sub__DummyNumber.__sub__R   rt   ro   c                j    \        V\        \        34      '       d   WP                  ,          # \        # rb   rc   ri   s   &&rk   __rmul__DummyNumber.__rmul__W   rn   ro   c                v    \        V\        \        \        34      '       d   V P                  V,          # \
        # rb   rq   ri   s   &&rk   __mul__DummyNumber.__mul__\   rt   ro   c                j    \        V\        \        34      '       d   WP                  ,          # \        # rb   rc   ri   s   &&rk   __rtruediv__DummyNumber.__rtruediv__a   rn   ro   c                v    \        V\        \        \        34      '       d   V P                  V,          # \
        # rb   rq   ri   s   &&rk   __truediv__DummyNumber.__truediv__f   rt   ro   c                j    \        V\        \        34      '       d   WP                  ,          # \        # rb   rc   ri   s   &&rk   __rpow__DummyNumber.__rpow__k   s&    a#u&&##ro   c                v    \        V\        \        \        34      '       d   V P                  V,          # \
        # rb   rq   ri   s   &&rk   __pow__DummyNumber.__pow__p   s+    a#uk233;;!##ro   c                    V P                   # rb   rg   rj   s   &rk   __pos__DummyNumber.__pos__u       {{ro   c                    V P                   ) # rb   r   r   s   &rk   __neg__DummyNumber.__neg__x   s    }ro    N)__name__
__module____qualname____firstlineno____doc__rl   rr   rv   ry   r|   r   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @rk   r`   r`   6   sK     










 ro   r`   c                   *   a  ] tR t^|t o ^tR tRtV tR# )I5c                    V P                   # rb   r   r   s   &rk   __int__
I5.__int__   r   ro   r   N)r   r   r   r   rg   r   r   r   r   s   @rk   r   r   |   s     F ro   r   c                   *   a  ] tR t^t o RtR tRtV tR# )F1_1皙?c                    V P                   # rb   r   r   s   &rk   	__float__F1_1.__float__   r   ro   r   N)r   r   r   r   rg   r   r   r   r   s   @rk   r   r      s     F ro   r   z1.3g      @c                 J    \          F  p\          F  pV ! W4       K  	  K  	  R # )T)all_objs)sxoyos   &  rk   dotestr      s"    BbI   ro   c                  2    R  p \        V 4      '       g   Q hR# )c                 h    T pV 5pV ) pW,           pW,
          pW,          pW,          pW,          p?R # rb   r   rT   rU   rZ   s   && rk   jtest_basic.<locals>.j   s;    BBEECCDro   Nr   )r   s    rk   
test_basicr      s    	 !999ro   c                  2    R  p \        V 4      '       g   Q hR# )c                 V    T pW!,          pT pW!,          pT pW!,          pT pW!,          pR # rb   r   r   s   && rk   r   test_ibasic.<locals>.s   s2    				ro   Nr   r   s    rk   test_ibasicr      s     !999ro   c                      a  ] tR t^t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )NonBasica6  This class represents an object that knows how to implement binary
operations like +, -, etc with Expr but is not a subclass of Basic itself.
The NonExpr subclass below does subclass Basic but not Expr.

For both NonBasic and NonExpr it should be possible for them to override
Expr.__add__ etc because Expr.__add__ should be returning NotImplemented
for non Expr classes. Otherwise Expr.__add__ would create meaningless
objects like Add(Integer(1), FiniteSet(2)) and it wouldn't be possible for
other classes to override these operations when interacting with Expr.
c                    \        R W4      # +	SpecialOprj   others   &&rk   rr   NonBasic.__add__       d**ro   c                    \        R W4      # r   r   r   s   &&rk   rl   NonBasic.__radd__       e**ro   c                    \        R W4      # -r   r   s   &&rk   ry   NonBasic.__sub__   r   ro   c                    \        R W4      # r   r   r   s   &&rk   rv   NonBasic.__rsub__   r   ro   c                    \        R W4      # *r   r   s   &&rk   r   NonBasic.__mul__   r   ro   c                    \        R W4      # r   r   r   s   &&rk   r|   NonBasic.__rmul__   r   ro   c                    \        R W4      # /r   r   s   &&rk   r   NonBasic.__truediv__   r   ro   c                    \        R W4      # r   r   r   s   &&rk   r   NonBasic.__rtruediv__   r   ro   c                    \        R W4      # //r   r   s   &&rk   __floordiv__NonBasic.__floordiv__       t++ro   c                    \        R W4      # r   r   r   s   &&rk   __rfloordiv__NonBasic.__rfloordiv__       u++ro   c                    \        R W4      # %r   r   s   &&rk   __mod__NonBasic.__mod__   r   ro   c                    \        R W4      # r   r   r   s   &&rk   __rmod__NonBasic.__rmod__   r   ro   c                    \        R W4      # divmodr   r   s   &&rk   
__divmod__NonBasic.__divmod__   s    4//ro   c                    \        R W4      # r   r   r   s   &&rk   __rdivmod__NonBasic.__rdivmod__   s    5//ro   c                    \        R W4      # **r   r   s   &&rk   r   NonBasic.__pow__   r   ro   c                    \        R W4      # r   r   r   s   &&rk   r   NonBasic.__rpow__   r   ro   c                    \        R W4      # )<r   r   s   &&rk   __lt__NonBasic.__lt__   r   ro   c                    \        R W4      # )>r   r   s   &&rk   __gt__NonBasic.__gt__   r   ro   c                    \        R W4      # )<=r   r   s   &&rk   __le__NonBasic.__le__  r   ro   c                    \        R W4      # )>=r   r   s   &&rk   __ge__NonBasic.__ge__  r   ro   r   N)r   r   r   r   r   rr   rl   ry   rv   r   r|   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r   r   s   @rk   r   r      ss     	++++++++,,++00,,++,, ,ro   r   c                       ] tR tRtRtRtR# )NonExpri  zCLike NonBasic above except this is a subclass of Basic but not Exprr   Nr   r   r   r   r   r   r   ro   rk   r  r    s    Mro   r  c                   *   a  ] tR tRt o RtR tRtV tR# )r   i  z>Represents the results of operations with NonBasic and NonExprc                B    \         P                  V 4      pWV3Vn        V# rb   )object__new__args)r^   oparg1arg2objs   &&&& rk   r  SpecialOp.__new__  s!    nnS!d#
ro   r   N)r   r   r   r   r   r  r   r   r   s   @rk   r   r     s     H ro   r   c                       ] tR tRtRtRtR# )NonArithmetici  zGRepresents a Basic subclass that does not support arithmetic operationsr   Nr  r   ro   rk   r  r    s    Qro   r  c                   aa \        4       \        P                  \        P                  \        P                  \        P
                  \        P                  \        P                  \        R4      \        ^4      \        R4      \        ^\        R4      4      \        ^\        R4      4      \        ^\        R4      4      .p V  EF  o\        4       \        4       3 EFU  pVS,           RVS33SV,           RSV33VS,
          RVS33SV,
          RSV33VS,          RVS33SV,          RSV33VS,          RVS33SV,          RSV33VS,          RVS33SV,          RSV33VS,          RVS33SV,          RSV33\!        VS4      R	VS33\!        SV4      R	SV33VS,          R
VS33SV,          R
SV33SV8  RVS33VS8  RVS33SV8  RVS33VS8  RVS33SV8*  RVS33VS8*  RVS33SV8  RVS33VS8  RVS33.pV F+  w  r4\#        V4      \$        J d   VP&                  V8X  d   K+  Q h	  EKX  	  \)        4       \+        4       3 EF  o\-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R l4       \-        \.        VV3R  l4       \-        \.        VV3R! l4       \-        \.        VV3R" l4       \-        \.        VV3R# l4       \-        \.        VV3R$ l4       \-        \.        VV3R% l4       \-        \.        VV3R& l4       EK  	  EK  	  R'# )(ae  Tests that Expr uses binary operations cooperatively.

In particular it should be possible for non-Expr classes to override
binary operators like +, - etc when used with Expr instances. This should
work for non-Expr classes whether they are Basic subclasses or not. Also
non-Expr classes that do not define binary operators with Expr should give
TypeError.
      ?rZ   r   r   r   r   r   r   r   r   r  r   r
  r  c                     < S S,           # rb   r   enas   rk   <lambda>-test_cooperative_operations.<locals>.<lambda>[  	    q2vro   c                     < SS ,           # rb   r   r  s   rk   r"  r#  \  	    rAvro   c                     < S S,
          # rb   r   r  s   rk   r"  r#  ]  r$  ro   c                     < SS ,
          # rb   r   r  s   rk   r"  r#  ^  r&  ro   c                     < S S,          # rb   r   r  s   rk   r"  r#  _  r$  ro   c                     < SS ,          # rb   r   r  s   rk   r"  r#  `  r&  ro   c                     < S S,          # rb   r   r  s   rk   r"  r#  a  r$  ro   c                     < SS ,          # rb   r   r  s   rk   r"  r#  b  r&  ro   c                     < S S,          # rb   r   r  s   rk   r"  r#  c  	    qBwro   c                     < SS ,          # rb   r   r  s   rk   r"  r#  d  	    rQwro   c                     < S S,          # rb   r   r  s   rk   r"  r#  e  r$  ro   c                     < SS ,          # rb   r   r  s   rk   r"  r#  f  r&  ro   c                     < \        S S4      # rb   r   r  s   rk   r"  r#  g  s    va}ro   c                     < \        SS 4      # rb   r   r  s   rk   r"  r#  h  s    vb!}ro   c                     < S S,          # rb   r   r  s   rk   r"  r#  i  r.  ro   c                     < SS ,          # rb   r   r  s   rk   r"  r#  j  r0  ro   c                     < S S8  # rb   r   r  s   rk   r"  r#  k  	    q2vro   c                     < SS 8  # rb   r   r  s   rk   r"  r#  l  	    rAvro   c                     < S S8  # rb   r   r  s   rk   r"  r#  m  r8  ro   c                     < SS 8  # rb   r   r  s   rk   r"  r#  n  r:  ro   c                     < S S8  # rb   r   r  s   rk   r"  r#  o  	    qBwro   c                     < SS 8  # rb   r   r  s   rk   r"  r#  p  	    rQwro   c                     < S S8*  # rb   r   r  s   rk   r"  r#  q  r>  ro   c                     < SS 8*  # rb   r   r  s   rk   r"  r#  r  r@  ro   N)r
   r&   ZeroOneInfinityNegativeInfinityComplexInfinityHalfr   r   r(   r   r   r!   r   r  r   typer   r  r  r  rR   	TypeError)exprsneresultsresr  r   r!  s        @@rk   test_cooperative_operationsrO    s    				

			c

sAvc{Avc{Avc{E   :wy)B a#r1&R#q"&a#r1&R#q"&a#r1&R#q"&a#r1&R#q"&q4Q-(b4B-(a#r1&R#q"&A2q 1221b 12q4Q-(b4B-(R#r1&a#r1&R#r1&a#r1&b4Q-(q4Q-(b4Q-(q4Q-(1G6 %	CyI-#((d2BBB %; *D !?FH-B9o.9o.9o.9o.9o.9o.9o.9o.9./9./9o.9o.9459459./9./9o.9o.9o.9o.9./9./9./9./3 .K ro   c                     ^ RI Hp  \        ^8  \        P                  J g   Q h\        ^8*  \        P                  J g   Q h\        ^8  \        P
                  J g   Q h\        ^8  \        P
                  J g   Q h\        ) ^8  \        P
                  J g   Q h\        ) ^8*  \        P
                  J g   Q h\        ) ^8  \        P                  J g   Q h\        ) ^8  \        P                  J g   Q h\        RRR7      pV^,
          V^,
          8  \        P                  J g   Q hV ! \        \        ,           \        \        ,           ^,           4      P                  V 8X  g   Q hR# )r   )r#   rTrealN)
sympy.core.relationalr#   r   r&   falsetruer(   rZ   r   func)r#   rQ  s     rk   test_relationalrX  u  s   (Fqww!GFqvv!GC!GC1HC!GC1H   sAEAEMagg%%%a!eQUQY$$***ro   c                     \        R RR7      p \        RRR7      p\        RRR7      p\        RRR7      pV ^ 8  \        V ^ 4      8X  g   Q hV^ 8*  \        V^ 4      8X  g   Q hV^ 8  \        V^ 4      8X  g   Q hV^ 8  \	        V^ 4      8X  g   Q h\        R RR	R
7      p \        RRR	R7      p\        RRR	R7      p\        RRR	R7      pV ^ 8  \
        P                  J g   Q hV^ 8*  \
        P                  J g   Q hV^ 8  \
        P                  J g   Q hV^ 8  \
        P                  J g   Q h\        R R	R7      p \        RR	R7      p\        RR	R7      p\        RR	R7      pV ^ 8  \
        P                  J g   Q hV^ 8*  \
        P                  J g   Q hV^ 8  \
        P                  J g   Q hV^ 8  \
        P                  J g   Q h\        R RR	R7      p \        RRR	R7      p\        RRR	R7      p\        RRR	R
7      pV ^ 8  \
        P                  J g   Q hV^ 8*  \
        P                  J g   Q hV^ 8  \
        P                  J g   Q hV^ 8  \
        P                  J g   Q hR# )m1F)nonnegativem2positivem3)nonpositivem4)negativeT)r[  rS  r^  rS  )r`  rS  )rb  rS  N)r(   r#   r%   r$   r"   r&   rV  rU  )rZ  r\  r_  ra  s       rk   test_relational_assumptionsrd    s:   	%	(B	u	%B	%	(B	u	%BFr"ay   !G2q	!!!Fr"ay   !G2q	!!!	%d	3B	u4	0B	%d	3B	u4	0BFqvv!GFqvv!G	t	$B	$	'B	t	$B	$	'BFqvv!GFqvv!G	u4	0B	%d	3B	u4	0B	%d	3BFqww!GFqww!Gro   c                    a  \          F  o \        \        V 3R  l4       \        \        V 3R l4       S ^8X  d   S R,          R8X  g   Q hM\        \        V 3R l4       \        \        V 3R l4       \        \        V 3R l4       K  	  R# )c                     < S R ,           # 1r   r  s   rk   r"  "test_basic_nostr.<locals>.<lambda>  	    #)ro   c                     < S R ,
          # rg  r   ri  s   rk   r"  rj    rk  ro   rh  11c                     < S R ,          # rg  r   ri  s   rk   r"  rj    s	    cCiro   c                     < S R ,          # rg  r   ri  s   rk   r"  rj    rk  ro   c                     < S R ,          # rg  r   ri  s   rk   r"  rj    s	    #*ro   N)
basic_objsrR   rJ  ri  s   @rk   test_basic_nostrrr    s]    y+,y+,!89$$$9/0y+,y,- ro   c                     ^\         ,          \        ,           \         ,           P                  \         ^ ^ 4      ^\         ,          \        ^\         4      ,           8X  g   Q h^\         ,          \        ,           \         ,           P                  \         ^ ^4      ^\         ,          \        ,           \        \         4      ,           8X  g   Q h^\         ,          ^,           \         ,           P                  \         ^ ^ 4      ^\         ,          \        ^\         4      ,           8X  g   Q h^\         ,          ^,           \         ,           P                  \         ^ ^4      ^\         ,          ^,           \        \         4      ,           8X  g   Q h^\         ,          \         ,           P                  \         ^ ^ 4      ^\         ,          \        ^\         4      ,           8X  g   Q h^\         ,          \        ,           \        \         ,          ,           \         ,           P                  \         ^ ^ 4      ^\         ,          \        ^\         4      ,           8X  g   Q h^\         ,          \        ,           \        \         ,          ,           \         ,           P                  \         ^ ^4      ^\         ,          \        ,           \        \         4      ,           8X  g   Q hR#    N)rZ   r[   seriesrE   r   ro   rk   'test_series_expansion_for_uniform_orderrw    s   aC!GaK1a(AaC!Aq'M999aC!GaK1a(AaC!GadN:::aC!GaK1a(AaC!Aq'M999aC!GaK1a(AaC!GadN:::aC!GAq!$!a1g555aC!GacMA%%aA.!A#!Q-???aC!GacMA%%aA.!A#'AaD.@@@ro   c                     ^^\         \        ^4      \        ^4      ,          ^,
          ,          ,          ,           P                  \         4      R8X  g   Q h^\         ^,          ,          ^,           \         ,           \         ^,          ,           P                  \         4      ^,          R8X  g   Q h^\         ,          ^,           \         ,           \         ^,          ,           P                  \         4      ^,          R8X  g   Q h\         ^,          ^\         ,          ,           P                  \         4      ^,          R8X  g   Q h^\         ^,          ,           P                  \         4      ^,          ^ 8X  g   Q h\         ^,           P                  \         4      ^,          ^ 8X  g   Q h\         \         ^,          ,           P                  \         4      ^,          ^8X  g   Q h\         ^,          P                  \         4      ^,          ^8X  g   Q hR# )   Nry  r   )rZ   r0   leadtermr   ro   rk   test_leadtermr~    s]   !c!fSVma'(((2215???adFQJNQT!++A.q1R777aC!GaK!Q$((+A."444qD1Q3J  #A&",,,1Hq!!$)))EAq!Q&&&1Hq!!$)))qD??1a A%%%ro   c                  |   ^^\         \        ^4      \        ^4      ,          ^,
          ,          ,          ,           P                  \         4      ^8X  g   Q h^\         ^,          ,          ^,           \         ,           \         ^,          ,           P                  \         4      ^\         ^,          ,          8X  g   Q h^\         ,          ^,           \         ,           \         ^,          ,           P                  \         4      ^\         ,          8X  g   Q h\         ^,          ^\         ,          ,           P                  \         4      ^\         ,          8X  g   Q h^\         ^,          ,           P                  \         4      ^8X  g   Q h\         ^,           P                  \         4      ^8X  g   Q h\         \         ^,          ,           P                  \         4      \         8X  g   Q h\         ^,          P                  \         4      \         ^,          8X  g   Q h\         \        ,           P                  \         4      \        J g   Q h\	        \
        R 4       R\         ,          \         \        ^^4      ,           \        ^4      \        P                  ,          ^,          ,
          ^,          ,           \        ^^4      ,
          ^\        ^4      ,          \        P                  ,          ^,          ,           p V P                  \         4      \        ^4      ) \        ,          \         ,          8X  g   Q h^\         ,
          \         ^,          ,
          p ^\        ^4      ,           ^,          pV P                  \         \        ^V,          ,           4      P                  \        4      R\        ,          ^\        ^4      ,          \        ,          ,
          ^^\        ^4      ,          ,           ,          8X  g   Q h\        \        ^^d\         ,          ,          4      4      P                  \         ^R7      \        ^4      8X  g   Q hR# )ry  c                  :    \         ^,           P                  ^4      # ru  rZ   as_leading_termr   ro   rk   r"  &test_as_leading_term.<locals>.<lambda>  s    A66q9ro   )cdirNi)rZ   r0   r  r   rR   
ValueErrorr   r3   r&   ImaginaryUnitr   subsr[   r1   r2   )r   ds     rk   test_as_leading_termr    s   !c!fSVma'(((99!<AAAadFQJNQT!22151a4???aC!GaK!Q$//2ac999qD1Q3J''*ac1111H%%a(A---E""1%***1H%%a(A---qD!!!$1,,,F##A&",,,
:9: 	1HQN"T!WQ__%<Q%>>BB
1a.	T!W9Q__4Q6	7AQDG8A:a</// 	
A1A	
T!WaA66!Q1W--a0	QDGA	QtAwY/0 0 0 QAY 0010=aHHHro   c                     \         \        ^4      ,          \        ^\        ^4      ,           4      ,          \        ^\        ^4      ,           4      ,           P                  \         4      \        ^\        ^4      ,           4      ^ 38X  g   Q hR# rt  )rZ   r8   r7   r}  r   ro   rk   test_leadterm2r    s]    c!fHSSV_$s1s1v:6@@CCF
OQ     ro   c                      \         \        ,           \        ,           P                  \        4      \         \        ,           ^ 38X  g   Q hR# r   N)r[   r\   rZ   r}  r   ro   rk   test_leadterm3r    s+    EAI"q1uaj000ro   c                     \         \        ^4      ,          \        ^\        ^4      ,           4      ,          \        ^\        ^4      ,           4      ,           P                  \         4      \        ^\        ^4      ,           4      8X  g   Q hR# rt  )rZ   r8   r7   r  r   ro   rk   test_as_leading_term2r    sX    c!fHSSV_$s1s1v:6GGJAAJ  ro   c                  `   ^\         ,           \        ,           P                  \        4      ^\         ,           8X  g   Q h^\        ,          \         \        ,          ,           \        ^,          ,           P                  \        4      ^\        ,          \         \        ,          ,           8X  g   Q hR#    N)r   rZ   r  r   ro   rk   test_as_leading_term3r    sa    FQJ''*a"f444aC"Q$JA..q1QqS2a4Z???ro   c                  
   \        R RRR7      p V ^,          ) ^V ^,          ,          ^V ,          ,           ^,           ,          V ^,          V ^,          ^V ,          ,           ^,           ,          ,
          V ^,          V ^,           ,          ,           V ^V ^,          ,          ^V ,          ,           ^,           ,          ,
          W \        ,          \        ,           ,          ,           ^V ,          V ^,           ,          ,           ^,
          ^V \        ,          \        ,           ,          ,           ^V ^,           ,          ,           ^\        ,          ,
          pVP                  \        4      P                  4       V ^,          8X  g   Q hR# )rW   T)integerr^  N)r(   rZ   r  rB   )rW   rQ  s     rk   test_as_leading_term4r    s   sD40A	
AqAv!|a 1a4A!a#88	1a!e	!AqD&1Q3,*+	,./1qk	:<=aCQK	H		
qsQwK	QU)	$&'c	*A Q&&(AaC///ro   c                    a   ! R  R\         4      o S ! ^\        ,          4      P                  \        4      S ! ^\        ,          4      8X  g   Q hS ! ^4      P                  \        4      S ! ^4      8X  g   Q h\        \        V 3R l4       R# )c                       ] tR tRtRtR# )&test_as_leading_term_stub.<locals>.fooi  r   Nr   r   r   r   r   r   ro   rk   foor        ro   r  c                  B   < S ! \         4      P                  \         4      # rb   r  r  s   rk   r"  +test_as_leading_term_stub.<locals>.<lambda>  s    A(>(>q(Aro   N)r   rZ   r  rR   NotImplementedErrorr  s   @rk   test_as_leading_term_stubr    se    h qs8##A&#ac(222q6!!!$A...
 ABro   c                  :   \        \        ^,          \        4      P                  \        4      ^\        ^,          ,          8X  g   Q h\        \        ^,          \        4      P                  \        4      ^ 8X  g   Q h\	        \        ^,          \        4      P                  \        4      \        ^,          ^,          8X  g   Q h\	        \        ^,          \        4      P                  \        4      \        \        ^,          ,          8X  g   Q h\        \        \        4      \        4      P                  \        4      ^8X  g   Q h\        \        \        4      \        4      P                  \        4      ^\        ,          P                  \        4      8X  g   Q hR# ry  N)r   rZ   r  r[   r>   r/   r0   r   ro   rk   #test_as_leading_term_deriv_integralr    s   a1fa 003qAv===a1fa 003q888AFA..q1QT!V;;;AFA..q1Qq!tV;;;c!fa 003q888c!fa 003!7L7LQ7OOOOro   c                     \         P                  ! 4       \         08X  g   Q h^\         ,           P                  4       \         \        P                  08X  g   Q h^^\	        \         4      ,          ,           P                  \
        4      \         08X  g   Q h^^\	        \         4      ,          ,           P                  \
        \        4      \        P                  \        ^4      \         08X  g   Q h^\         \        \         ,          ,          ,          P                  4       \        ^4      \         \        08X  g   Q h\        P                  P                  4       \        P                  08X  g   Q h\        P                  P                  \
        4      \        4       8X  g   Q h\        \        4      P                  \        4      \        4       8X  g   Q h\        ^ \         4      P                  4       \        P                  \         08X  g   Q h\        ^\         4      P                  4       \        P                  \         08X  g   Q h\        \         \         4      P                  4       \         08X  g   Q h\        \         \         \        4      P                  4       \         \        08X  g   Q h\        \         \        ,           \         \        4      P                  4       \         \        08X  g   Q h\        \         \        ,           \         \        \        4      P                  4       \         \        \        08X  g   Q h\        \         \        \        ,          ,           \         \        \        4      P                  4       \        \         \        \        08X  g   Q h\         \"        ,          P                  \$        4      \"        08X  g   Q h\         \"        ,          P                  \$        \         4      \         \"        ,          P                  \         \$        4      u;8X  d   \"        \         08X  g   Q h Q h\'        \'        \         4      4      P                  \&        4      \'        \'        \         4      4      \'        \         4      08X  g   Q h^\         ^\        ,           ,          ,           \'        ^\        ,           4      ,           P                  \(        4      ^\         ^\        ,           ,          ,           \'        ^\        ,           4      ,           ^\        ,           ^\        ,           08X  g   Q h\+        \         4      \        \         4      ,           ^,           p V P                  \,        4      \+        \         4      08X  g   Q hV P                  \,        \.        4      \+        \         4      \        \         4      08X  g   Q hV P                  \.        4      \+        \         4      \        \         4      08X  g   Q hV P                  \,        \        4      \+        \         4      \        ^4      08X  g   Q hV P                  \.        \        4      \        ^4      \        \         4      \+        \         4      08X  g   Q hR# rt  )rZ   atomsr&   rD  r8   r(   r   r[   rH  setr7   r   rC   rC  r\   rX   r   r   r   r/   r   fr   r   r   s    rk   
test_atomsr    s   779E==?q!%%j(((#a&L'A3...#a&L/AEE1Q43CCCCq1a4yM  "qtQl22266<<>affX%%%66<<35(((r7==%%%1:!&&!,,,1:!%%+++1:!$$$1a= QF***Aq!""$A...Aq!Q%%'Aq!9444AaCAq!'')aAq\999bD<<%"---bD<<a(	
2Q%1*,a1 1 1 1 1 s1v;S!c#a&k3q6%::::1q5	MCAJ&--c2	
QAYQU	#QUAE23 3 3 
1A	A77< 	
1  77<*	
1s1v  778	
1s1v  77<(	
1qt  778V$	
1s1vqt  ro   c                     \        R RRR7      p \        ^4      P                  \        \        \
        4      RJ g   Q h\        P                  P                  \        \        \
        4      RJ g   Q h\        P                  ! \        4      RJ g   Q h\        P                  ! \        4      RJ g   Q h\        ^,          P                  \        4      RJ g   Q h\        ^,          P                  \        4      RJ g   Q h\        R,          P                  \        4      RJ g   Q h\        R,          P                  \        4      RJ g   Q h^\        ,          P                  \        4      RJ g   Q h^\        ,          P                  \        4      RJ g   Q h\        V ,          P                  \        4      RJ g   Q h\        V ,          P                  V 4      RJ g   Q h\        \        ,          P                  \        4      RJ g   Q hW ,          P                  V 4      RJ g   Q hV \        ,          P                  V 4      RJ g   Q h\        V ) ,          P                  \        4      RJ g   Q h^\        ,          V ,          P                  \        4      RJ g   Q h\        ^,          ^\        ,          ,           ^,
          P                  \        4      RJ g   Q h\        ^,          ^\        ,          ,           ^,
          P                  \        4      RJ g   Q h\        ^,          ^\        ,          ,           ^,
          P                  4       RJ g   Q h\        \        4      P                  \        4      RJ g   Q h\        \        4      ^,          P                  \        4      RJ g   Q h\        ^,          ^\        ,          \        \        4      ,          ,           ^,
          P                  \        4      RJ g   Q h\        ^,          ^\        ,          \        \        4      ,          ,           ^,
          P                  \        4      RJ g   Q h\        ^,          \        ^,          ,          \        \        ^,          ,          ,           \        \        ,          ,           \        ^4      ,           P                  4       RJ g   Q h\        ^,          \        ^,          ,          \        \        ^,          ,          ,           \        \        ,          ,           \        \        4      ,           P                  4       RJ g   Q h\        ^,          \        ^,          ,          \        \        ^,          ,          ,           \        \        ,          ,           \        ^4      ,           P                  \        \        4      RJ g   Q h\        ^,          \        ^,          ,          \        \        ^,          ,          ,           \        \        ,          ,           \        \        4      ,           P                  \        \        4      RJ g   Q h^\        \        4      ,          ^,           P                  \        \        4      4      RJ g   Q hR# )kT)r[  r  FNr{  )r(   r   is_polynomialrZ   r[   r\   r&   Pir3   r/   r  )r  s    rk   test_is_polynomialr  L  sg   sd3AA;$$Q1-555DD1a(D000??1%%%??1%%%qD"d***qD"d***G""1%...G""1%---qD"e+++qD"d***qD"e+++qD"e+++qD"e+++D"e+++qD"e+++G""1%...qS1H##A&%///qD1Q3JN))!,444qD1Q3JN))!,444qD1Q3JN))+t3337  #u,,,GQJ%%a(E111qD1Q3tAw;"11!4<<<qD1Q3tAw;"11!4===TAqDMAq!tH$qs*SV3BBDLLLTAqDMAq!tH$qs*SV3BBDMMM 
A11a4 1Q3&Q/q!1DM M M 
A11a4 1Q3&Q/q!1DN N N adFQJ%%ad+u444ro   c                  n   \        ^4      P                  4       RJ g   Q h\        ^4      P                  \        4      RJ g   Q h\        ^^64      P                  4       RJ g   Q h\        ^^64      P                  \        4      RJ g   Q h^\        ,          P                  4       RJ g   Q h^\        ,          P                  \        4      RJ g   Q h\        \        ,          P                  4       RJ g   Q h\        \        ,          P                  \        4      RJ g   Q h\        \        ,          P                  \        \        4      RJ g   Q h\        ^,          ^\        ,          \        ,          ,           P                  4       RJ g   Q h\        ^,          ^\        ,          \        ,          ,           P                  \        4      RJ g   Q h\        ^,          ^\        ,          \        ,          ,           P                  \        \        4      RJ g   Q h\        \        4      \        ,          P                  4       RJ g   Q h\        \        4      \        ,          P                  \        4      RJ g   Q h\        \        4      \        ,          P                  \        4      RJ g   Q h\        \        4      \        ,          P                  \        \        4      RJ g   Q h\         FH  p V P                  4       '       d   Q h^\        3 F!  pW,          P                  4       '       g   K!  Q h	  KJ  	  R# )ru  TFN)r   is_rational_functionrZ   r   r[   r7   r    )ir  s     rk   test_is_rational_functionr  }  sJ   1:**,4441:**1-555B002d:::B003t;;;qD&&(D000qD&&q)T111aC%%'4///aC%%a(D000aC%%a+t333qD1Q3q5L..0D888qD1Q3q5L..q1T999qD1Q3q5L..q!4<<<F1H**,555F1H**1-666F1H**1-555F1H**1a0E999))++++QA113333  ro   c                     \         \        ^,          ,          \        ,           \        ,           \        \        ^,          ,          ,           p V P	                  \        ^ 4      RJ g   Q hV P	                  \        ^4      RJ g   Q hV P	                  \        \
        4      RJ g   Q h^^\        \        ^4      \        ^4      ,          ^,
          ,          ,          ,           pVP	                  \        ^ 4      RJ g   Q hVP	                  \        ^4      RJ g   Q hVP	                  \        \
        4      RJ g   Q h\        RRR7      p\        ^\        ,          4      V,          \        ,          pVP	                  \        ^ 4      RJ g   Q hVP	                  \        ^4      RJ g   Q hVP	                  \        \
        4      RJ g   Q h\        \        4      \        ,          pVP	                  \        ^ 4      RJ g   Q hVP	                  \        ^4      RJ g   Q hVP	                  \        ^4      RJ g   Q hVP	                  \        \
        4      RJ g   Q h\        \        4      \         ,          P	                  \        ^ 4      RJ g   Q h\        \        4      \         ,          P	                  \        ^4      RJ g   Q h\         \        \        4      ,          P	                  \        ^ 4      e   Q h^\        \        4      ,          P	                  \        ^ 4      RJ g   Q h^\        \        4      ,          P	                  \        ^4      RJ g   Q hR# )r  TFrW   r  N)
rT   rZ   rU   rV   is_meromorphicr   r0   r(   r7   r   )r  grW   r   s       rk   test_is_meromorphicr    s   	!Q$
Q1a4AAq!T)))Aq!T)))As#t+++	Aa#a&Q-!#$$$AAq!U***Aq!T)))As#u,,,sD!AAaC!AAAq!U***Aq!T)))As#u,,,A
AAq!U***Aq!U***Aq!T)))As#u,,,FAI%%a+u444FAI%%a+u444s1vI%%a+333s1vI%%a+u444s1vI%%a+t333ro   c                     \        ^4      P                  \        4      RJ g   Q h\        ^4      P                  4       RJ g   Q h^\        ^,          ,           ^\        ^,          ,
          ,          \        P
                  ^,          ,          p V P                  \        4      RJ g   Q hV P                  \        4      RJ g   Q h\        \        4      \        \	        ^4      ^,          ,          ,           P                  \        4      RJ g   Q h\        \        4      \        \	        ^4      ^,          ,          ,           P                  \        4      RJ g   Q h\        \        4      \        \	        ^4      ^,          ,          ,           P                  4       RJ g   Q h\        \        4      \        \        4      ,          P                  4       RJ g   Q h\        \        4      \        \        4      ,          P                  \        4      RJ g   Q h\        \        4      \        \        4      ,          P                  \        4      RJ g   Q h\        \        4      \        \        4      ,          P                  \        \        4      RJ g   Q hR# )ry  TFN)r3   is_algebraic_exprrZ   r[   r&   rD  r8   )eqs    rk   test_is_algebraic_exprr    s   7$$Q'4///7$$&$...q!t8a!Q$h
1557	+B"d***"d***Ga!A$q&k!44Q74???Ga!A$q&k!44Q74???Ga!A$q&k!446$>>>F47N--/5888F47N--a0D888F47N--a0E999F47N--a3u<<<ro   c                     a  ! R  R4      oS! 4       p \        ^4      V ,          pV^
8X  g   Q h\        \        V3R l4       R# )c                   &   a  ] tR tRt o R tRtV tR# )test_SAGE1.<locals>.MyInti  c                    \        ^4      #    )r   r   s   &rk   _sympy_!test_SAGE1.<locals>.MyInt._sympy_  s    1:ro   r   N)r   r   r   r   r  r   r   r   s   @rk   MyIntr    s     	 	ro   r  c                  (   < \        ^4      S ,          # r  r   r  s   rk   r"  test_SAGE1.<locals>.<lambda>      hqk%/ro   N)r   rR   rJ  )mr   r  s     @rk   
test_SAGE1r    s9      	AAA7N7
9/0ro   c                     a  ! R  R4      o\        S! 4       4      ^8X  g   Q h\        ^4      S! 4       ,          p V ^
8X  g   Q h\        \        V3R l4       R# )c                   &   a  ] tR tRt o R tRtV tR# )test_SAGE2.<locals>.MyInti  c                    ^# r  r   r   s   &rk   r   !test_SAGE2.<locals>.MyInt.__int__  s    ro   r   N)r   r   r   r   r   r   r   r   s   @rk   r  r    s     	 	ro   r  c                  (   < \        ^4      S ,          # r  r  r  s   rk   r"  test_SAGE2.<locals>.<lambda>  r  ro   N)r,   r   rR   rJ  )r   r  s    @rk   
test_SAGE2r    sJ      57q   EGA7N7
9/0ro   c                  b     ! R  R4      p V ! 4       p\         V,          pVR\         V38X  g   Q hR# )c                   &   a  ] tR tRt o R tRtV tR# )test_SAGE3.<locals>.MySymbol  c                
    R W3# )mysr   r   s   &&rk   r|   %test_SAGE3.<locals>.MySymbol.__rmul__  s    5''ro   r   N)r   r   r   r   r|   r   r   r   s   @rk   MySymbolr    s     	( 	(ro   r  r  NrZ   )r  or   s      rk   
test_SAGE3r    s2    ( ( 	
A	!A1ro   c                      \         \        ,          p \        V P                  4      ^8X  g   Q h\         \        ,           \        ,           p \        V P                  4      ^8X  g   Q hR# r  )rZ   r[   lenr  r\   r  s    rk   test_lenr    sD    	!Aqvv;!	A	Aqvv;!ro   c                     \        \        ^,          \        4      p \        V P                  ! 4       \         4      RJ g   Q h\        V P                  ! RR7      \         4      RJ g   Q h\        V P                  ! RR7      \         4      RJ g   Q h^\        \        \        4      ,          P                  4       \        ^,          8X  g   Q hR# )r  FT)	integralsN)r>   rZ   rd   doitrT   s    rk   	test_doitr    s    AqAaffh)U222afft,h75@@@affu-x8D@@@hq!n""$1,,,ro   c                  l    \        \        R  4       \        \        R 4       \        \        R 4       R# )c                  ,    \         P                  ! 4       # rb   )rZ   r8   r   ro   rk   r"  &test_attribute_error.<locals>.<lambda>  
    1557ro   c                  ,    \         P                  ! 4       # rb   )rZ   r7   r   ro   rk   r"  r    r  ro   c                  ,    \         P                  ! 4       # rb   )rZ   r/   r   ro   rk   r"  r     r  ro   N)rR   AttributeErrorr   ro   rk   test_attribute_errorr    s     
>?+
>?+
>?+ro   c                     \         \        ,          P                  \         \        3\        \         339   g   Q h\         \        ,           P                  \         \        3\        \         339   g   Q h\         \        ,          ^,           P                  \         \        ,          ^3^\         \        ,          339   g   Q h\        \         \        ,          4      P                  \         \        ,          38X  g   Q h\        \         \        ,          4      P                  ^ ,          \         \        ,          8X  g   Q h\         \        ,          P                  \         \        38X  g   Q h\         \        ,          P                  ^ ,          \         8X  g   Q h\         \        ,          P                  ^,          \        8X  g   Q hR# rt  )rZ   r[   r  r7   r   ro   rk   	test_argsr    s   aC::1a&1a&))))E<<QFQF++++aC!G>>qsAhAaC1111qs8==QqSF"""qs8==qs"""qD;;1a&   qD;;q>QqD;;q>Qro   c                     \        R RR7      w  rpW,          W,          ,
          ^ 8w  g   Q hW V,           ,          V,          P                  4       V ^,          V,          W^,          ,          ,           8X  g   Q hW V,           V,           ,          V,          P                  4       V ^,          V,          W^,          ,          ,           W,          V,          ,           8X  g   Q hR# A,B,CFcommutativeN)r)   r   )ABCs      rk   %test_noncommutative_expand_issue_3757r    s    g51GA!39>>1uIaK!QT!Va1f_4441uqyM!O##%Aa!qD&13q5)@@@@ro   c                     \        R 4      w  rp\        P                  ! 4       \        ^38X  g   Q h\        P                  ! 4       \        ^38X  g   Q h\        ) P                  4       \        ) ^38X  g   Q h\        P                  ! 4       \        ^38X  g   Q h\        ) P                  4       \        ^38X  g   Q h\
        P                  ! 4       \
        ^38X  g   Q h^\
        ,          P                  4       ^\
        38X  g   Q h\
        \        ,          P                  4       \
        \        38X  g   Q h\
        ^,          P                  4       \
        ^38X  g   Q h\
        \        ,          \        ,          P                  4       \
        \        ,          \        38X  g   Q h\
        \        \        ,          ,          P                  4       \
        \        \        ,          38X  g   Q h\        P                  P                  4       R	8X  g   Q h^\        ^,          ,          P                  4       ^\        ^,          38X  g   Q h\
        \        ^,          ,          P                  4       \
        \        ^,          38X  g   Q h\
        ^,          ^,           \        ,          P                  4       \
        ^,          ^,           \        38X  g   Q h\
        \        ^,           ,          \        ^,          ,          P                  4       \
        \        ^,           ,          \        ^,          38X  g   Q h\
        R
,          P                  4       ^\
        ^,          38X  g   Q hV \
        ,          V^,          \
        ,          ,           V^,          \
        ,          ,           P                  4       ^V ,          ^V,          ,           ^V,          ,           ^\
        ,          38X  g   Q hV \
        ,          V^,          \
        ,          ,           V^,          \        ,          ,           P                  4       ^V,          \
        ,          \        ^V ,          ^V,          ,           ,          ,           ^\
        ,          \        ,          38X  g   Q hV \
        ,          V^,          \
        ,          ,           VR,          \
        ,          ,           P                  4       ^V ,          V,           RV,          ,           ^\
        ,          38X  g   Q h\        \        \        \        ^R4       Uu. uF  p\        4       V,          \
        ,          NK!  	  up!  P                  4       ^,          \
        ,          4      P                  ^4      4      R8X  g   Q h\        P                   \        P"                  \        P$                  3 F9  pV\
        ^,          ,           P                  4       \
        V,           ^38X  d   K9  Q h	  \        P                   \
        ^,          ,           \        ^,          ,           P                  4       ^\
        ,          ^\        ,          ,           \        P                   ,           ^38X  g   Q h\        \
        ,          \        \        ,          ,           P                  4       \        \        ,          \        \
        ,          ,           ^38X  g   Q h\        RRR7      w  rEpWE,          VR,          ,          P                  4       WE,          VR,          ,          ^38X  g   Q hWE,          VR,          ,          \
        ,          P                  4       WE,          VR,          ,          \
        38X  g   Q hVR,          V,          V,          P                  4       VR,          V,          V,          ^38X  g   Q hVR,          V,          V,          \
        ,          P                  4       VR,          V,          V,          \
        38X  g   Q hWE,          V,          R,          P                  4       WE,          V,          R,          ^38X  g   Q hWE,          V,          R,          \
        ,          P                  4       WE,          V,          R,          \
        38X  g   Q h\        ^ \
        \        ,           \        ,          R
,          RR7      P                  4       \
        ) \        ,
          ^\        ,          38X  g   Q hR# u upi )za, b, cr        @i  r  Fr  evaluateN)ru  r  r{  r|  )r)   r   as_numer_denomr   r   rZ   r[   r\   r&   rH  re   r0   r   ranger*   rW   rE  rF  rG  )rT   rU   rV   r  r  r  r  s          rk   test_as_numer_denomr    s;   i GA!C8+++2q')))C!rc1X---C8+++D  "sAh...!Q'''aC!aV+++aC!aV+++aC!aV+++aCE!!#!Qx///qsG##%!QqS11166  "f,,,adF""$AqD	111adF""$AqD	111TAXqL((*q!taxm;;;q1uIadN**,AEAqD0AAAArE!!#1a4y000aC!A#a%K!A#a%//1	
1qsQqS!A#  aC!A#a%K!A#a%//1	
1QAaC!A#I	!A&' ' 'aC!A#a%K!B$q& 002	
1q3q5!A#   s3eAsm<m1m< ')!--./ 001!69<= = =jj!,,a.?.?@AaC'')UAJ 	  A JJ1qs"224	
1qsQZZ	$% % %qD3q5L((*	QAq   g51GA!C2I%%'AC2Iq>999C2IaK'')ac!R%i^;;;rE!GAI%%'ArE!GAIq>999rE!GAIaK'')aeAgai^;;;SURK'')qs1urk1-====SURKM))+QQ/???? q1q5!)B,/>> 
b1fac]  ) =s   !%c?c                    a aa ^ RI o \        R4      w  ooS P                  ^4      ^8X  g   Q hS P                  R4      ^8X  g   Q hS P                  R4      R8X  g   Q hS P                  \        4      ^8X  g   Q hS P                  \	        ^4      4      ^8X  g   Q hS P                  \        ^4      4      ^8X  g   Q hS P                  \        \        4      4      R	8X  g   Q hS P                  \        ^4      4      ^ 8X  g   Q h\        \        V V3R l4       \        \        V VV3R l4       \        \        V 3R l4       R# )
r   Nzx ygHzG@c                  &   < S P                  S4      # rb   trunc)mathrZ   s   rk   r"  test_trunc.<locals>.<lambda>U  s    djjmro   c                  B   < S P                  SS^,          ,           4      # r  r  r
  rZ   r[   s   rk   r"  r  V  s    djjQT2ro   c                  .   < S P                  \        4      # rb   )r	  r   )r
  s   rk   r"  r  W  s    djjnro   g)\(r|  )
r
  r)   r	  r   r0   r/   r8   r7   rR   rJ  r  s   @@@rk   
test_truncr  I  s    5>DAq::a=A::dq   ::e"""::b>Q::c!f"""::c!f$$$::c"g"$$$::c!f"""
9+,
923
9,-ro   c                     \         P                  P                  \        R R7      R8X  g   Q h\         P                  P                  \        RR7      R8X  g   Q h^\        ,          \	        \        4      ,          \
        ,           \        ,           P                  \        4      \
        \        ^\        ,          \	        \        4      ,          ,           38X  g   Q h^\        ,          \	        \        4      ,          \
        ,           \        ,           P                  \
        4      \        ^\        ,          \	        \        4      ,          ,           \
        38X  g   Q h^\        ,          \	        \        4      ,          \
        ,           \        ,           P                  \        \
        4      ^ \
        \        ,           ^\        ,          \	        \        4      ,          ,           38X  g   Q h\        \	        \        4      ,          \        \
        4      ,          P                  \        4      \        \
        4      \        \	        \        4      ,          38X  g   Q h\        \	        \        4      ,          \        \
        4      ,          P                  \
        4      \        \	        \        4      ,          \        \
        4      38X  g   Q h\        \	        \        4      ,          \        \
        4      ,          P                  \        \
        4      ^\        \	        \        4      ,          \        \
        4      ,          38X  g   Q h\	        \        4      P                  \        4      ^\	        \        4      38X  g   Q h\	        \        4      P                  \
        4      \	        \        4      ^38X  g   Q h^\	        \        4      ,          P                  \        4      ^\	        \        4      38X  g   Q h^\	        \        4      ,          P                  \
        4      ^\	        \        4      ,          ^38X  g   Q h\        RRR7      w  rpW V,          ,           P                  V4      W V,          38X  g   Q hW,          W,          ,           P                  V4      ^ W,          W,          ,           38X  g   Q hW,          V ,          P                  V4      WV ,          38X  g   Q hW,          V ,          P                  V 4      ^W,          V ,          38X  g   Q h^\        ,          P                  \        R R7      ^ ^\        ,          38X  g   Q h^\        ,          P                  \        RR7      ^\        38X  g   Q h^\        ,           P                  \        R R7      ^\        38X  g   Q h^\        ,           P                  \        RR7      ^^\        ,           38X  g   Q h^\        ,          P                  \        4      ^\        38X  g   Q hV \        ,          \
        ,          P                  \        4      V \
        ,          \        38X  g   Q h\        V ,           \        \
        ,
          ,          P                  \        4      ^\        V ,           \        \
        ,
          ,          38X  g   Q h\        V ,           \        \
        ,
          ,          P                  \
        4      \        V ,           \        \
        ,
          38X  g   Q h\        \        V ,
          4      \        \        \
        ,
          4      ,          P                  \        4      ^\        \        V ,
          4      \        \        \
        ,
          4      ,          38X  g   Q h\        \
        ,          V ,          V,          V,          P                  V4      \        \
        ,          V ,          W,          38X  g   Q h\        \
        ,          V ,          V,          V,          P                  V 4      \        \
        ,          W,          V,          38X  g   Q h\        \
        ,          V ,          V,          V,          P                  V4      \        \
        ,          V ,          V,          V38X  g   Q h\        \        V ,
          4      \        \
        V ,
          4      ,          \        \        V,
          4      ,          P                  \
        4      \        \        V ,
          4      \        \        V,
          4      ,          \        \
        V ,
          4      38X  g   Q h\        \        \        \        ^^34      ,           P                  \        R R7      \        \        \        ^^34      \        38X  g   Q h\        \        \        ) ^R	RR7      pVP                  \        4      R
\        \        \        ) RR7      38X  g   Q h\        \        ^\        ,          ^R	RR7      pVP                  \        4      R\        \        ^\        ,          RR7      38X  g   Q h\        \
        ,          P                  \        R R7      \        \
        ,          ^ 38X  g   Q hR# )T)as_AddFzn1 n2 n3r  )strictr  Nr   r   r  r|  )r&   rC  as_independentrZ   r7   r[   r8   r)   r(   r:   r>   r   r   r\   )n1n2n3r  s       rk   test_as_independentr  Z  s   66  4 0F:::66  5 1V;;;aCAJNQ..q1aQqSQZ5HHHHaCAJNQ..q1a!A#c!f*na5HHHHaCAJNQ..q!4AEAaCAJ<N8OOOOc!fHSVO++A.3q61SV82DDDDc!fHSVO++A.1SV8SV2DDDDc!fHSVO++Aq1a3q6#a&5IIIIF""1%!SV444F""1%#a&!444c!fH$$Q'As1v;666c!fH$$Q'Ac!fHa=888 7JBBBJ&&r*rb5k999EBEM))"-!RURU]1CCCCE"H$$R(RBK777E"H$$R(QbM999aC$/Aqs8;;;aC%0QF:::E!!!D!1aV;;;E!!!E!2q!a%j@@@ aC'Aq6111 qDF""1%"Q$222Va!e,,Q/ABQ7G3HHHHVa!e,,Q/AFAE?BBBq2vz!a%00@@Cz!b&!*QU"3345 5 5aCF2IbL((,1R???aCF2IbL((,1beBh???aCF2IbL((,1RB???q2vz!b&11*QV2DDTTUVWq2vz!b&11:a"f3EFG G G Q1I&&66q6FQAq	"A&' ' ' 
QArE	*BQBArE(B#CCCC	Q!QU	+BQBAqsU(C#DDDDaC$/AaC8;;;ro   c                  j    ^\         ,          ! \        4      ^\        \        4      ,          8X  g   Q hR# r  )r  rZ   r   ro   rk   test_call_2r    s"     aC8q1vro   c                  $   \        \        \        4      4      \        \        \        ^,          4      4      ,           p V P	                  \        \
        4      \        \        \        4      4      \        \        \        ^,          4      4      ,           8X  g   Q hV P	                  \        R 4      \        \        ^\        ,          4      4      \        \        ^\        ^,          ,          4      4      ,           8X  g   Q h\        R4      p\        R4      pV P	                  \        V4      \        V4      4      \        \        \        4      4      \        \        \        ^,          4      4      ,           8X  g   Q hV P	                  \        V4      R 4      \        \        ^\        ,          4      4      \        \        ^\        ^,          ,          4      4      ,           8X  g   Q h^\        ,          P	                  V\        ,          V,           W!,
          RR7      ^\        ,          8X  g   Q h^\        ,          P	                  V\        ,          V,           W!,
          4      ^\        ,          8X  g   Q h^\        ,          P	                  V\        ,          V,           W!,
          RR7      ^\        ,          8X  g   Q h^\        ,          P	                  V\        ,          V,           R RR7      ^\        ,          8X  g   Q h^\        ,          P	                  V\        ,          V,           R	 4      ^\        ,          8X  g   Q h^\        ,          P	                  V\        ,          V,           R
 RR7      ^\        ,          8X  g   Q h^\        \        ^,          4      ,          pVP	                  R R 4      ^\        \        ^	,          4      ,          8X  g   Q h\        \        4      P	                  \
        \        RR7      \        \        4      \        \        4      \        \        4      /38X  g   Q h\        \        4      P	                  \
        \        4      \        \        4      8X  g   Q hR R rT\        \        ,          P	                  WERR7      ^\        ,          \        ,          \        \        ,          ^\        ,          \        ,          /38X  g   Q h\        ^\        \        ,          ,           ,          P	                  WERR7      ^\        ,          ^\        ,          \        ,          ^,           ,          \        ^\        ,          \        ,          ^,           ,          ^\        ,          ^\        ,          \        ,          ^,           ,          \        \        ,          ^\        ,          \        ,          /38X  g   Q h\        \        \        4      ,          P	                  \        R RR7      \        \        4      \        \        4      \        \        4      \        ,          /38X  g   Q h\        \        \        4      ,          P	                  \        R RR7      \        \        4      \        ,          8X  g   Q h\        ^,          \        \        ^,          4      ,           P	                  \        R 4      \        ^,          ^,          \        \        ^,          4      ,           8X  g   Q h\        ^,          \        \        ^,          4      ,           P	                  \        R RR7      \        ^,          ^,          \        \        ^,          4      ,           8X  g   Q h\        \        \        ,          ^,           ,          P	                  R R 4      \        \        \        ,          ^,           ,          ^,           8X  g   Q h\        \        ,          ^,           ^\        ,          \        ,          ^,           ,          ^,           p V P	                  WERR7      ^^\        ,          \        ,          ^,           ^\        ,          \        ,          ^,           ,          ,          ^,           ^\        ,          \        ,          ^\        ,          \        ,          \        \        ,          ^\        ,          \        ,          ^\        ,          \        ,          ^,           ^\        ,          \        ,          ^,           ,          ^^\        ,          \        ,          ^,           ^\        ,          \        ,          ^,           ,          ,          /38X  g   Q h\        P                  ! \        \        4      \        8X  g   Q h\        ^,           P	                  ^^4      \        ^,           8X  g   Q h\        RRR7      w  rgpV\        V4      ,          P	                  \        R 4      Wg,          8X  g   Q hV\        V4      ,          P	                  \        R 4      W,          8X  g   Q h\        P                  P	                  \        R4      ^4      ^8X  g   Q h\        P                  P	                  \        R4      ^RR7      ^ 8X  g   Q hR# )r  c                 &    \        ^V ,          4      # r  r7   r  s   &rk   r"  test_replace.<locals>.<lambda>  s    s1Q3xro   rT   rU   c                 &    \        ^V ,          4      # r  r  r  s   &rk   r"  r     s    #ac(ro   T)exactFc                     W,
          # rb   r   rT   rU   s   &&rk   r"  r         quro   c                     W,
          # rb   r   r$  s   &&rk   r"  r     r%  ro   c                     W,
          # rb   r   r$  s   &&rk   r"  r     r%  ro   c                     V P                   # rb   )	is_Numberexprs   &rk   r"  r     s    T^^ro   c                     V ^,          # r  r   r*  s   &rk   r"  r     s    $'ro   )mapc                     V P                   # rb   is_Mulr  s   &rk   r"  r     s    188ro   c                     ^V ,          # r  r   r  s   &rk   r"  r     s    qsro   c                 .    \        V 4      \        ,          # rb   r7   r[   r*  s   &rk   r"  r         D	!ro   c                 .    \        V 4      \        ,          # rb   r3  r*  s   &rk   r"  r     r4  ro   )simultaneousc                      W,          V,          # rb   r   rU   r   s   &&rk   r"  r     
    ad1fro   c                      W,          V,          # rb   r   r8  s   &&rk   r"  r     r9  ro   c                     V P                   # rb   r/  r  s   &rk   r"  r     s    188ro   c                     ^V ,           # r  r   r  s   &rk   r"  r     s    q1uro   zn1:4r  c                     V # rb   r   r  s   &rk   r"  r         1ro   c                     V # rb   r   r  s   &rk   r"  r     r>  ro   rZ   N)r0   r7   rZ   r6   replacer8   r+   r[   rE   r!   r)   r  r&   rC  )	r   rT   rU   r  condrW  r  r  r  s	            rk   test_replacerB    s   CFc#ad)n$A99S##c!f+C1I">>>>99!$'AaCMCAadF4D$DE E E 	S	AS	A99SVSV$CFc#ad)n(DDDD99A"$'*3qs8}s3qAv;7G'GH H H aC==1q!%t=4!;;;aC==1q!%(AaC///aC==1q!%u=51<<<aC==1q"4D=AQqSHHHaC==1q"451<<<aC==1q"4E=BacIII	#ad)A99#%9;>?AqD	kJ J J q6>>#s>-#a&3q63q6:J1KKKKq6>>#s#s1v---#]$aC===.1Q3q51Q3!A,2GGGGq1Q3wK   6	
1ac!eai1ac!eai=!A#qs1uqy/1Q3!AFGH H Hc!fHc#;F	Q#a&#a&(#$% % % c!fHc#;  "1vax( ( (qD1QT7N##C)< 
T!Va1g  qD1QT7N##C)< $  !tAv!Q$/0 0 0qsQwK  !3_E	1Q37a  	
1q1Q3q519!A99TT9*	AaCEAI!A	"#a'	
1Q!AqsAaCEAaCEAI!A	#:	AaCEAI!A	"#	%/& & & & 99Q?aE??1a AE))) U3JBBquHa-666quHa-666 66>>$s)Q'1,,,66>>$s)Qd>3q888ro   c                      \        R \        R7      w  rr#\        R4      w  rErg\        WE,           WVV34      p\        WW#34      p	VP                  W4      WE,           8X  g   Q hR# )zq p s tr]   za b c dN)r)   r+   r>   r@  )
qpr   rX   rT   rU   rV   r  r  patterns
             rk   test_replace_integralrG    sY    -JA!#JA!q	"Aqa)$G99W AE)))ro   c                     \         \        ,           ^,           \        ^\         ,          4      ,           p V P                  R 4      \	        ^4      \	        ^4      08X  g   Q hV P                  R 4      \         \        08X  g   Q hV P                  R RR7      \	        ^4      ^\	        ^4      ^/8X  g   Q hV P                  R RR7      \         ^\        ^/8X  g   Q hV P                  \
        4      \	        ^4      \	        ^4      08X  g   Q hV P                  \        4      \         \        08X  g   Q hV P                  \
        RR7      \	        ^4      ^\	        ^4      ^/8X  g   Q hV P                  \        RR7      \         ^\        ^/8X  g   Q h\        R4      p\        \        \         4      4      \        \         4      ,           \        \         4      ,           \         ,           p V P                  R 4      \        \         4      \        \        \         4      4      08X  g   Q hV P                  R	 RR7      \        \         4      ^\        \        \         4      4      ^/8X  g   Q hV P                  \        V4      4      \        \         4      \        \        \         4      4      08X  g   Q hV P                  \        V4      RR7      \        \         4      ^\        \        \         4      4      ^/8X  g   Q hV P                  \        4      \        \         4      \        \        \         4      4      08X  g   Q hV P                  \        RR7      \        \         4      ^\        \        \         4      4      ^/8X  g   Q hR
# )r  c                     V P                   # rb   
is_IntegerrY   s   &rk   r"  test_find.<locals>.<lambda>      q||ro   c                     V P                   # rb   	is_SymbolrL  s   &rk   r"  rM        q{{ro   c                     V P                   # rb   rJ  rL  s   &rk   r"  rM    rN  ro   T)groupc                     V P                   # rb   rP  rL  s   &rk   r"  rM    rR  ro   rT   c                 $    \        V 4      \        J # rb   rI  r7   rL  s   &rk   r"  rM    s    tAw#~ro   c                 $    \        V 4      \        J # rb   rW  rL  s   &rk   r"  rM    s    $q'S.ro   N)	rZ   r[   r7   findr&   r   r(   r+   r8   r+  rT   s     rk   	test_findr[    s   EAIAaC D99+,1qt<<<99*+1v55599+498QqT1adA<NNNN99*$97Aq!Q<GGG99W!A$!---99VA&&&99WD9)adAqtQ-????99V49(Q1aL888S	As1v;Q#a&(1,D99-.3q63s1v;2GGGG99   .25a&!SQ[!1LM M M 99SVQSV 555599SV49(SVQCFQ,GGGG99S>c!fc#a&k222299S9%#a&!SQ[!)DDDDro   c                     \         \        ,           ^,           \        ^\         ,          4      ,           p V P                  R 4      ^8X  g   Q hV P                  R 4      ^8X  g   Q hV P                  \        4      ^8X  g   Q hV P                  \
        4      ^8X  g   Q hV P                  ^4      ^8X  g   Q h\        R4      pV P                  \        4      ^8X  g   Q hV P                  \        V4      4      ^8X  g   Q hV P                  R 4      ^8X  g   Q h\        \         4      P                  \        \         4      4      ^8X  g   Q h\        \         4      P                  \         4      P                  \        \         4      4      ^8X  g   Q h\        \         4      P                  \         4      P                  \         4      ^8X  g   Q hR# )r  c                     V P                   # rb   rJ  rL  s   &rk   r"  test_count.<locals>.<lambda>  s    ro   c                     V P                   # rb   rP  rL  s   &rk   r"  r^    s    ro   rT   c                 $    \        V 4      \        J # rb   rW  rL  s   &rk   r"  r^    s    Q3ro   N)	rZ   r[   r7   countr   r(   r+   r  r   rZ  s     rk   
test_countrb    sO   EAIAaC D::,-222::+,111::g!###::f"""::a=AS	A::c?a::c!f"""::./1444Q4::adq   Q499Q<ad#q(((Q499Q<a A%%%ro   c                  J   \        R 4      p \        \        4      P                  \        4      '       g   Q h\        \        4      P                  \        4      '       g   Q h\        \        4      P                  \        4      '       d   Q h\        \        4      P                  \
        4      '       d   Q h\        \        4      P                  \        4      '       g   Q h\        \        4      P                  \        4      '       g   Q h\        \        4      P                  \        4      '       d   Q h\        \        4      P                  \        4      '       d   Q h\        \        4      P                  \        4      P                  \        4      '       g   Q h\        \        4      P                  \        4      P                  \        4      '       g   Q h\        \        4      P                  \        4      P                  \        4      '       g   Q h\        \        4      P                  \        4      P                  \        4      '       d   Q h\        \        4      P                  \        4      P                  \        4      '       d   Q h\        \        4      P                  \        4      P                  \        4      '       d   Q h\        ^,          P                  \        4      '       g   Q h\        ^,          P                  \         4      '       d   Q h^V ,          P                  \         4      '       g   Q h\        P                  ! 4       '       d   Q h\        ^4      P                  \         4      '       d   Q h\        P                  ! \         4      '       d   Q hR# )rE  N)r+   r7   rZ   hasr[   r8   r  r  r   r   r(   r&   )rE  s    rk   test_has_basicsre    s   S	Aq6::a===q6::c???1vzz!}}1vzz#Q488A;;;Q488A;;;txx{{?txx{{?Q499Q<AQ499Q<AQ499Q<J''''tyy|""""tyy|""""tyy|$$$$qD::f1zz$aC99T???uuww; txx~~uuT{{?{ro   c                  L   \         ^,          \        ,          \        ^\        ,          \	        \
        4      ,           4      ,           p V P                  \         4      '       g   Q hV P                  \        4      '       g   Q hV P                  \
        4      '       g   Q hV P                  \        4      '       g   Q hV P                  \        4      '       d   Q hV P                  \         \        \
        \        4      '       g   Q hV P                  \         \        \
        \        \        4      '       g   Q h\        R4      pVP                  \         4      '       d   Q hV\         V,          ,          P                  \         4      '       g   Q hV\        V,          ,          P                  \         4      '       d   Q hV\        V,          ,          P                  \         \        4      '       g   Q hV\        V,          ,          P                  \         \
        4      '       d   Q hR# )r  i0  N)	rZ   r[   r7   rX   r0   r\   rd  rY   r   )r  r  s     rk   test_has_multiplerg  2  sD   	1QQTCF]##A5588O85588O85588O85588O8uuQxx<55Aq!55Aq!QAuuQxx<adF<<???!Q$||AadF<<1!Q$||Aq!!!!!ro   c                     \         \        ,          ^\        ,          ,           ^,          p \        \        \         4      \         R8  3^\         ^8*  3V R34      pVP	                  \         4      '       g   Q hVP	                  \        4      '       g   Q hVP	                  \
        4      '       d   Q hVP	                  ^4      '       g   Q hVP	                  ^4      '       g   Q hVP	                  ^4      '       d   Q hVP	                  V 4      '       g   Q hVP	                  \        4      '       g   Q hVP	                  \        4      '       d   Q hR# )ry  TNr|  )rZ   r[   r5   r  rd  r\   hr  rE  s     rk   test_has_piecewiserk  I  s    	
1qseA1Q4R.1a1f+4y9A5588O85588O8uuQxx<5588O85588O8uuQxx<5588O85588O8uuQxx<xro   c                  $   \        R RR7      w  rp\        \        \        4      ,          \        \        4      ,          \	        \        \
        ,          4      ,          V ,          V,          V,          \        \        V ,          V,          4      ,          pVP                  \        4      '       g   Q hVP                  \        \
        ,          4      '       g   Q hVP                  \        \        \        4      ,          4      '       g   Q hVP                  \        \        \
        4      ,          4      '       d   Q hVP                  \        V ,          4      '       g   Q hVP                  \        V ,          V,          4      '       g   Q hVP                  \        V ,          V,          4      '       d   Q hVP                  \        V ,          V,          V,          4      '       g   Q hVP                  \        V ,          V,          V,          4      '       d   Q hVP                  \        \        \        4      ,          V ,          V,          V,          4      '       g   Q hVP                  \        \        \        4      ,          V ,          V,          V,          4      '       d   Q hVP                  \        \        \
        4      ,          V ,          V,          V,          4      '       d   Q hVP                  \        \        \        4      ,          4      '       g   Q hVP                  \        \        \        4      ,           4      '       d   Q h\        \
        ,          \        ,          P                  \        \        ,          4      '       g   Q hR# r  )	r)   rZ   r<   r7   r/   r[   r8   rd  r\   )r  r  r  r  s       rk   test_has_iterativerm  X  s   g51GA!	%(
3q6#ac("1$Q&q(QqSU3A5588O8551:::553q6???uuQs1vX551:::551Q<<<uuQqSU||551Qq>>>uuQqSU1W~~553q6!Aa    uuQs1vXaZ\!^$$$$uuQs1vXaZ\!^$$$$5558uuQQZ    EAI??1q5!!!!ro   c                  f   \        \        ^,          \        \        \        ,          \        ,          4      ,           \        ^ \        \        ,           \        ,           34      p V P                  \        \        ,           4      '       g   Q hV P                  \        \        ,           4      '       g   Q hV P                  \        \        ,           4      '       g   Q hV P                  \        \        ,          4      '       g   Q hV P                  \        \        ,          4      '       g   Q hV P                  \        \        ,          4      '       g   Q hV P                  ^\        ,          \        ,           4      '       d   Q hV P                  ^\        ,          \        ,          4      '       d   Q hR# r  )r>   rZ   r7   r[   r\   rd  )r  s    rk   test_has_integralsro  n  s    AAaCE
"Q1q519$56A55Q<<<55Q<<<55Q<<<551:::551:::551:::uuQqS1W~~uuQqSU|||ro   c                     \        \        \        4      P                  \        4      '       g   Q h\        \        \        4      P                  \        4      '       d   Q h\        \        \        4      \        \        4      4      P                  \        4      '       g   Q h\        \        \        4      \        \        4      4      P                  \        4      '       d   Q h\        \        \        4      \        \        4      4      P                  \
        4      '       g   Q h\        \        \        4      \        \        4      4      P                  \        \        4      4      '       g   Q h\        R 4      P                  R 4      '       g   Q h\        R 4      P                  \        P                  4      '       g   Q h\        R 4      P                  ^4      '       d   Q hR# )TN)	r   rZ   r[   rd  r\   r  r  r&   rV  r   ro   rk   test_has_tuplerq  }  s(   A;??1Q{q!!!!1qt  ####QqT1Q4 $$Q''''1qt  ####1qt  1&&&&
 ;??4    ;??166""""T{q!!!!!ro   c                      ^ RI Hp Hp \        V ,          V,          P	                  \        4      '       g   Q h\        V ,          V,          P	                  \
        \        4      RJ g   Q hR# )r   r  r   FN)sympy.physics.unitsr  r   rZ   rd  r[   r\   rs  s     rk   test_has_unitsru    s@    (aCE;;q>>>aCE;;q!%%%ro   c                     \        \        ^,          \        \        ,          \        \        4      ,          ,           \        \        \
        4      p V P                  \        4      '       g   Q hV P                  \        \        \        4      '       g   Q hV P                  \        \        \        \
        4      '       g   Q hR# r  )rC   rZ   r[   r7   r\   rX   rd  )polys    rk   test_has_polysrx    sm    1qs3q6z!1a+D88A;;;88Aq!88Aq!Qro   c                  f    \        \        \        34      P                  \        4      '       g   Q hR # rb   )r?   rZ   r[   rd  r   ro   rk   test_has_physicsrz    s"    aV  ####ro   c                  z   \         ^,          ^\         ,          \        ,          ,           p V P                  4       P                  4       V 8X  g   Q hV P                  \         \        4      P                  4       V 8X  g   Q hV \	        \         4      ,           P                  \         \        4      e   Q h\        V \         \        4      pVP                  4       V8X  g   Q h\        ^4      P                  4       e   Q h\        ^4      P                  RR7      e   Q h\        \        R 4       \        \        R 4       R# )r  NT)	extensionc                  P    \        \        \        4      P                  \        4      # rb   )r   rZ   as_polyr   ro   rk   r"  &test_as_poly_as_expr.<locals>.<lambda>  s    5A;#6#6q#9ro   c                  h    \        \        ^,          \        \        4      P                  \        4      # r  )r   rZ   r[   r~  r   ro   rk   r"  r    s    5aA#6#>#>q#Aro   )
rZ   r[   r~  as_exprr7   rC   r&   r3   rR   r  rj  s     rk   test_as_poly_as_exprr    s    	1qs1uA99; A%%%99Q?""$)))AJ1%---Q1A99;! Q4<<>!!!7??T?*222
>9:
>ABro   c                     \        \        P                  4      R J g   Q h\        \        P                  4      RJ g   Q h\        \        4      RJ g   Q h\        \        \
        ,           4      RJ g   Q h\        \        \        ,
          4      R J g   Q h\        \        \
        ,          4      RJ g   Q h\        \        ^,          4      RJ g   Q h\        \        ^ ,          4      R J g   Q hR# )FTN)boolr&   rC  rD  rZ   r[   r   ro   rk   test_nonzeror    s    <5   ;$7d??A;$A;%!9!9!9ro   c                     \        R 4      P                  RJ g   Q h\        R4      P                  RJ g   Q h\        ^^4      P                  RJ g   Q h\        ^4      P                  RJ g   Q h\        P                  RJ g   Q h^\        ,          P                  RJ g   Q h\        \
        ,           P                  RJ g   Q h\        ^4      P                  RJ g   Q h\        \        4      P                  RJ g   Q h^\        ^4      ,           P                  RJ g   Q h^\        ^4      ,           P                  RJ g   Q h^\        \        4      ,           P                  RJ g   Q h^\        ^4      ,           \        ,           P                  RJ g   Q h^\        ^,          \        ,          ,           \        ,
          P                  RJ g   Q h\        \        ^4      4      P                  RJ g   Q h\        ^\        4      P                  RJ g   Q h\        ^^4      P                  RJ g   Q h\        \        ^4      ^4      P                  RJ g   Q h\        P                  RJ g   Q h\        R4      p V P                  RJ g   Q h^V ,          P                  RJ g   Q h\        ^,          P                  \        ^4      P                  RJ g   Q h ! R R\        4      pV! 4       pVP                  RJ g   Q hR# )gQ	@Tr  Fr  c                       ] tR tRtRtR# )test_is_number.<locals>.Ai  r   Nr  r   ro   rk   r  r    r  ro   r  N)r   	is_numberr   r   rZ   r[   r0   r   r   r   r!   r   r   r  r   )r  r  rT   s      rk   test_is_numberr    sg   ;  D(((3<!!T)))Aq>##t+++A;  D(((;;%aC??e###E%%%q6t###q6u$$$AJ!!T)))AJ!!T)))AJ!!U***AJN%%...1QJN%%---&&%///q!9%'''q!9$&&&s1vq>##t+++<<4SA;;%aC??e###qD;;q!&&$...E 	A;;%ro   c                  t   \        ^4      P                  4       R8X  g   Q h\        R4      P                  4       ^ \        R4      338X  g   Q h\        R4      P                  4       ^ \        R4      338X  g   Q h\        P                  ! 4       ^ \        338X  g   Q h\        ^,
          P                  4       R\        338X  g   Q h\        ^,           P                  4       ^\        338X  g   Q h\        ^,           P                  4       ^\        338X  g   Q h\        \        ,           P                  \        4      \        \        338X  g   Q h^\        ,          P                  \        4      ^\        ,          R38X  g   Q h\        \        ,           ^,          p V P                  \        4      ^ V 338X  g   Q hR# )r        @Nr   r  r         r|  )r&   as_coeff_addrZ   r[   r  s    rk   test_as_coeff_addr    sW   Q4')))S6 Q3	N222T7!a!D'_444>>A4y(((E!b1$Z///E!a!Y...E!a!Y...E"q1$i///aCa QqS"I---	
Q
A>>!QD	)))ro   c                  X   \        ^4      P                  4       R8X  g   Q h\        R4      P                  4       ^\        R4      338X  g   Q h\        R	4      P                  4       R
\        R4      338X  g   Q h\        R	4      P                  RR7      \        R4      ) R38X  g   Q h\        P                  ! 4       ^\        338X  g   Q h\        ) P                  4       R
\        338X  g   Q h^\        ,          P                  4       ^\        338X  g   Q h\        \        ,          P                  \        4      \        \        338X  g   Q h^\        ,           P                  4       ^^\        ,           338X  g   Q h^\        ,           P                  \        4      ^\        ,           R38X  g   Q h\	        \        \        ,           4      p V P                  \        4      ^V 338X  g   Q h^\        \        ,           ,          p V P                  \        4      ^V 338X  g   Q hR\        ,          P                  RR7      R\        338X  g   Q hR\        ,          P                  4       ^R\        338X  g   Q h\
        ) \        ,          P                  RR7      R
\
        \        338X  g   Q hR# )r  r  Frationalr   TNr   r  r  r|  )r&   as_coeff_mulrZ   r[   r/   r   r  s    rk   test_as_coeff_mulr    s    Q4')))S6 Q3	N222T7!b1S6)_444T7/QsVGR=@@@>>A4y(((B2t*,,,aCAt9,,,aCa QI---E!a!a%]222E"q1ubk111AE
A>>!QD	)))	AE
A>>!QD	)))E/C!;>>>E!a#q]222CE.2Aw-???ro   c                     ^\         ^,          ,          P                  \         4      R8X  g   Q h^\         ^,          ,          P                  \         4      R8X  g   Q h^\         ^,          ,          P                  \         4      R8X  g   Q h^\         ^,          ,          P                  \         4      R8X  g   Q h^\         ^ ,          ,          P                  \         4      R8X  g   Q h^\         ^ ,          ,          P                  \         4      R8X  g   Q h^\         ^ ,          ,          P                  \         4      R8X  g   Q h^ \         ^ ,          ,          P                  \         4      R	8X  g   Q hR
\         ^ ,          ,          P                  \         4      R8X  g   Q hR\         ^ ,          ,          P                  \         4      R8X  g   Q h^\         ^,          ,          \        \         ^,          ,          ,           P                  \         4      ^\        ,           ^38X  g   Q h\         \        ^4      ,          ^\         ,          \        \         ,          ,           ,          P                  \         4      \        ^4      ^\        ,           ,          ^ 38X  g   Q h\        p V ! \        \         4      \         4      pVP                  \        \         4      4      V^ 38X  g   Q hR# )ry  N)ry     )r  ry  )r  r  )   ru  rz  )r  r   )ru  r   r  r|  )r|  r   r{  )r{  r   )rZ   as_coeff_exponentr   r0   r   r  )Dfxs     rk   test_as_coeff_exponentr    s   adF%%a(F222adF%%a(F222adF%%a(F222adF%%a(F222adF%%a(F222adF%%a(F222adF%%a(F222adF%%a(F222q!tG&&q)W444q!tG&&q)W444adFR1W//2q2vqkAAAc!fHacBqDj!44Q7	QR!   	A	
1Q4B!%"a000ro   c                  H    ^\         P                  3 F  p \        V \        ,          ^RR7      P	                  V \        ,          4      V ^\        ,          ,          8X  g   Q hV ^\        ,          ,          P	                  V ^\        ,          ,          4      V ^\        ,          ,          8X  d   K  Q h	  \        \
        ,          ^,          P	                  \        ^,          \
        ,          4      \        \
        ^,          ,          8X  g   Q h\        \
        ,          ^,          P	                  \        ^,          \
        ,          4      e   Q h^\        ,          P	                  ^4      \        8X  g   Q h^\        ,          P	                  ^4      e   Q h^\        ,          P	                  R
4      e   Q h\         P                  \        ,          P	                  ^4      \        ^,          8X  g   Q h\        \        4      P	                  \        4      e   Q h\        \        4      P	                  ^\        ,          4      e   Q h\        P                  ! \        ) 4      e   Q hR^\        ,          ,
          P	                  R4      ^^\        ,          ,           8X  g   Q hR^\        ,          ,
          P	                  ^4      e   Q hR\        ,          ^\
        ,          ,
          ^,
          P	                  R4      \        ^\
        ,          ,           ^,           8X  g   Q hR\        ,          \
        ,          ^\        ^,          ,          \
        ,          ,
          P	                  R\
        ,          4      ^\        ^,          ,          \        ,           8X  g   Q h^\        ,          \
        ,          ^\        ^,          ,          \
        ,          ,           P	                  ^\
        ,          4      ^\        ^,          ,          \        ,           8X  g   Q hR\
        ^,          ,          \        ,          P	                  R\
        ,          4      e   Q h^\        ,          P	                  ^4      ^\        ,          8X  g   Q h\        ) P	                  ^4      \        ) J g   Q h\        P                  ! ^4      \        J g   Q h\        \
        ,          ^,          P                  ^4      e   Q h\        ^,           P                  \        4      ^8X  g   Q h\        ^,           P                  ^\        ,          4      e   Q h\        ^,           P                  \        ) 4      e   Q h\        ) ^,           P                  ^\        ,          4      e   Q h^\        ,          ^,           P                  \        4      \        ^,           8X  g   Q h^\        ,          ^,           P                  ^4      ^\        ,          ^,           8X  g   Q h^\        ,          ^,           P                  ^4      ^\        ,          8X  g   Q h^\        ,          ^,           P                  R4      e   Q h^\        ,          ^,           P                  ^\        ,          4      e   Q h^\        ,          ^,           P                  ^\        ,          4      ^8X  g   Q h\        P                  ! ^ 4      \        8X  g   Q h\        ^4      P                  \        4      e   Q h\        R4      P                  R4      \         P                  J g   Q h\        R4      P                  ^4      \         P                  J g   Q h\        ^\        ,          ^,           4      P                  \        ^,           4      \        ^,           8X  g   Q h\        ^\        ,          ^,           4      P                  \
        ^,           4      e   Q h\        ^\        ,          ^,
          4      P                  \        ^,           4      e   Q h\        ^\        ,          ^,
          4      P                  \
        \        ,           4      e   Q h\        ^,           \        ,          ^,          \
        ,           P                  \        4      P                  4       ^\        ,          \        ,          ^\        ,          ,           \
        ,           8X  g   Q h\        ^,           \        ,          ^,          ^\
        ,          ,           P                  \        ^\
        ,          ,           4      P                  4       ^\        ,          \        ,          ^\        ,          ,           \
        ,           8X  g   Q h\
        \        ^,           ,          P                  \        ^,           4      e   Q h\
        ^,           \        ^,           ,          ^,           P                  \        ^,           4      \
        \        ^,           ,          ^,           8X  g   Q h\        \
        ,           \        ^,           ,          \        ,           \
        ,           ^,           P                  \        \
        ,           4      \        \        \
        ,           ,          ^,           8X  g   Q h\        \
        ,           ^\        \
        ,           \        ^,           ,          ,          ,           ^,           P                  \        \
        ,           \        ^,           ,          4      \        \
        ,           \        ^,           \        \
        ,           ,          ,           ^,           8X  g   Q h\
        ^,           \        ^\
        ,          ,           ^,           ,          ^,           P                  \
        ^,           4      \        ^\
        ,          ,           \
        ^,           ,          ^,           8X  g   Q h\        ) \        \        ,          ,
          P                  \        ) 4      \        ) \        ,          8X  g   Q h^\        ,          \
        ^,           ,          \
        ,           P                  \        4      \        ^\
        ,          ^,           ,          \
        ,           8X  g   Q h\        RRR7      p\!        R4      P#                  4       RJ g   Q hV) \        ,          \        ,           P#                  4       V\        ,          \        ,
          P#                  4       8w  g   Q h\        \
        ,
          P#                  4       \        ) \
        ,           P#                  4       8w  g   Q h^\        ,
          \
        ,
          P#                  4       RJ g   Q h^\        ,
          \
        ,           P#                  4       RJ g   Q h\        ) \        \
        ,          ,
          \
        ,          P#                  4       RJ g   Q h\        \        \
        ,          ,           \
        ) ,          P#                  4       RJ g   Q h\        \        \
        ,          ,           \
        ,          P#                  4       RJ g   Q h\        ) \
        ,
          \        \
        ,           ,          P#                  4       RJ g   Q h ! R R	\$        \&        4      pV! \        4      pW3) 8X  g   Q hVP#                  4       RJ g   Q h\        \
        ,
          P#                  4       RJ g   Q h\        ) \
        ,           P#                  4       RJ g   Q h\        ^,
          P#                  4       RJ g   Q h^\        ,
          P#                  4       RJ g   Q h\        ^4      ^,
          P#                  4       RJ g   Q h^\        ^4      ,
          P#                  4       RJ g   Q h^\        ,          ^\
        ,          ,           P	                  ^4      pVP(                  VP*                  ! VP(                  !  P(                  8X  g   Q hR# )r  Fr  N       @rW   Tr  c                   *   a  ] tR tRt o ^tR tRtV tR# )(test_extractions.<locals>.sign_invariantib  c                    V # rb   r   r   s   &rk   r   0test_extractions.<locals>.sign_invariant.__neg__d  s    Kro   r   N)r   r   r   r   nargsr   r   r   r   s   @rk   sign_invariantr  b  s     	 	ro   r  r|  r{  r  )r&   Exp1r!   rZ   extract_multiplicativelyr[   rH  r3   r   r   extract_additivelyrC  r\   rT   r   r(   r   could_extract_minus_signr   r
   r  rW  )baserW   r  r  r  s        rk   test_extractionsr    s
   AFF47A &&tQw/4!A#;? 	? ?qs551Q3K 1Q3K( 	( ( 
 qS1H..q!tax8AadFBBBqS1H..q!tax8@@@aC))!,111aC))!,444aC))"-555FF1H..q1QqS888G--a0888G--ac2:::%%qb)1111H..r2a!A#g===1H..q1999qD1Q3JN44R8A!GaKGGGqDFQq!tVAX771=1a4!KKKaCEAadF1H66qs;qAvzIIIq!tGAI//15===aC))!,!333C))!,333((+r111qS1H((+333E%%a(A---E%%ac*222E%%qb)111BF&&qs+333aC!G''*a!e333aC!G''*acAg555aC!G''*ac111aC!G''+333aC!G''!,444aC!G''!,111"a'''Q4""1%---R5##B'166111R5##A&!&&000QqS1W:((Q/1q5888QqS1W:((Q/777QqS1W:((Q/777QqS1W:((Q/777UAIaK!O//299;	!A!a  UAIaK!A#11!ac':AAC	!A!a  q1uI))!a%0888UQUOa33AE:	1q5	A  UQUOa!#a';;AEB	1q5	A  EAAA''!+??QQP	AQQ!#$ $ $UQ1Wq[!A%99!a%@	
QqS1q5A  B1H((!,1444aCQK!O//2a1qkAoEEEsD!ABK113t;;;BqD1H..0	
1q**,- - -E++-
a))+, , ,EAI//1T999EAI//1U:::R!A#XqL224===1WrN446$>>>1WaK113u<<<R!Va!e668EAAA4  
C$;;'')U222E++-666BF,,.$666E++-666E++-555GaK113t;;;QK113u<<<
A#1*	.	.q	1B77bggrww',,,,,ro   c                      ^^ \         \        3 F7  p \        P                  ! V 4      e   Q h\        P                  ! V 4      f   K7  Q h	  R# rt  )r   r   r  r  )rQ  s    rk   test_nan_extractionsr  t  sB    As^%%a(000++A.666 ro   c                  !   \         ^,           P                  \         ^,           4      ^8X  g   Q h^\         ,          P                  ^ 4      ^ 8X  g   Q h\        ^\         ,           ,          \         ^,          ,          P                  ^\         ,           4      \        \         ^,          ,          8X  g   Q h^^\         ,          \         ^\         ,           ,          ,          ,           P                  \         \         ^\         ,           ,          ,          4      ^8X  g   Q h^^\         \        \        ,           ,          ,          ,           P                  \         \        \        ,           ,          4      ^8X  g   Q h^^\         ,          ,           ^\         ^,          ,          ,           P                  ^4      ^ 8X  g   Q h^^\         ,          ,           ^\         ^,          ,          ,           P                  R4      ^ 8X  g   Q h^^\         ,          ,           ^\         ^,          ,          ,           P                  \         4      ^8X  g   Q h^^\         ,          ,           ^\         ^,          ,          ,           P                  \         ^,          4      ^8X  g   Q h^^\         ,          ,           ^\         ^,          ,          ,           P                  \         ^,          4      ^ 8X  g   Q h\         ) ^,          \         \        ,          ,           P                  \         4      \	        R^4      \        ,           8X  g   Q h\         ) ^,          \         \        ,          ,           P                  \         ) 4      \
        P                  ^,          8X  g   Q h^\         ,          P                  ^\         ,          4      ^ 8X  g   Q h^\         ,          P                  ^\         ,          4      ^8X  g   Q h\        ) \         ,          P                  \         \        ,          4      R8X  g   Q h^
\         ,          P                  \         ^ 4      ^ 8X  g   Q h^
\         ,          P                  ^
\         ,          ^ 4      ^ 8X  g   Q h\        RRR7      w  rW,          P                  V 4      ^8X  g   Q hW,          P                  V4      V 8X  g   Q hW,          \         V ,          ,           P                  V 4      ^8X  g   Q hW,          \         V ,          ,           P                  V 4      V\         ,           8X  g   Q hW,          \         V ^,          ,          ,           P                  V 4      V8X  g   Q hV \         ,          P                  V 4      ^ 8X  g   Q hW,          W,          ,           P                  V 4      ^ 8X  g   Q h^W,           ,          V,          P                  W,           ^R7      V8X  g   Q h^W,           ,          V,          P                  W,           ^ R7      ^8X  g   Q h^\        \         4      ,          ^\        \         4      P                  \         4      ,          ,           P                  \        \         4      4      ^8X  g   Q h\        \         \        ,           ^,          ,          p\        \         \        ,           ^,          ,          \        ^\         ,          ^\        ,          ,           ^,          ,          ,           pVP                  \        4      \         \        ,           ^,          8X  g   Q hVP                  \         \        ,           4      ^ 8X  g   Q hVP                  \        4      \         \        ,           ^,          ^\         ,          ^\        ,          ,           ^,          ,           8X  g   Q h\         \        ,           ^\        ,          ,           P                  ^4      \         \        ,           8X  g   Q h\         ) ^\        ,          ,           P                  R4      \         8X  g   Q h\         ^\        ,          ,
          P                  R4      ^\        ,          8X  g   Q h^^\         ,          ,           ^\         ^,          ,          ,           P                  ^4      ^ 8X  g   Q h\         ) ^\        ,          ,
          P                  ^4      \        ) 8X  g   Q h\         \        ^4      \         ,          ,           P                  \        ^4      4      \         8X  g   Q h^^\         ,          ,           ^\         ^,          ,          ,           P                  \         4      ^8X  g   Q h^^\         ,          ,           ^\         ^,          ,          ,           P                  \         ^,          4      ^8X  g   Q h^^\         ,          ,           ^\         ^,          ,          ,           P                  \         ^,          4      ^ 8X  g   Q h\        \         \        ,           ^,          ,          P                  \         \        ,           ^,          4      \        8X  g   Q h\        \         \        ,           ^,          ,          P                  \         \        ,           4      ^ 8X  g   Q h^^\         ,          ,           \         ^,           \        ,          ,           P                  \         ^,           4      \        8X  g   Q h\         ^\        ,          ,           ^,           P                  ^4      \         8X  g   Q h\         ^\        ,          ,           ^,           P                  \         ^ 4      ^\        ,          ^,           8X  g   Q h\         ^,          ^\        ,          ,           ^\         ,          ,           P                  \         ^,          ^ 4      ^\        ,          ^\         ,          ,           8X  g   Q h\         P                  ! ^ ^ 4      ^ 8X  g   Q h\         P                  ! \         ^ 4      ^ 8X  g   Q h\        RRR7      w  rErgVP                  ! V4      ^8X  g   Q h\        P                  ! V4      ^ 8X  g   Q h^V,          P                  V4      ^8X  g   Q h^V,           P                  \         V,          4      ^ 8X  g   Q h^\         ,          V,          V,          P                  \         4      ^V,          V,          8X  g   Q h^V,           P                  \         V,          V,          \        ,           4      ^ 8X  g   Q h^\         ,          V,          V,          P                  ^V,          4      ^ 8X  g   Q hWE,          WT,          V,          ,           P                  V4      ^V,           8X  g   Q hWE,          WT,          V,          ,           P                  VRR7      V8X  g   Q hWE,          WT,          ,           P                  V4      ^ 8X  g   Q hWE,          We,          V,          ,           P                  WT,          4      V8X  g   Q hWE,          We,          V,          ,           P                  WT,          RR7      ^8X  g   Q hWE,          WE,          V,          ,           P                  WE,          RR7      ^V,           8X  g   Q h\         \        ,          P                  \        ^ 4      \         \        ,          8X  g   Q h\         V,          \        V,          ,           \        V,          ,           P                  V4      \         \        ,           8X  g   Q hWE,          WF,          ,           Wg,          ,           P                  VRR7      WV,           8X  g   Q h\         V,          V,          V,          \        V,          V,          V,          ,           \        V,          ,           P                  VRR7      \         V,          \        V,          ,           8X  g   Q h\         V,          V,          V,          \         V,          V,          V,          ,           \        V,          ,           P                  VRR7      WF,           8X  g   Q h\         V,          V,          V,          \         V,          V,          V,          ,           \        V,          ,           P                  V4      \         V,          8X  g   Q hR# )	ru  zn1 n2Fr  )rightzn m o lTNr|  )rZ   coeffr\   r[   r   r&   rD  r   r)   r  r   r3   )r  r  r+  expr2rW   r  r  ls           rk   
test_coeffr  z  s
   E==Q1$$$aC;;q>Qq1uIadN!!!a%(AadF222!AAJ%%aAE
l3q888!a!e*##AAJ/1444!Ga1f##A&!+++!Ga1f##B'1,,,!Ga1f##A&!+++!Ga1f##AqD)Q...!Ga1f##AqD)Q...BqD1Q3Ja HROa$7777BqD1Q3Jqb!QUU1W,,,aC;;qsq   aC;;qsq   CE==2"$$$qD<<1"""qD<<1a A%%%W%0FBE==!!!E=="""EAbDL#q(((EAbDL#rAv---EAb!eGO""2&",,,E==!!!EBEM  $)))rwKN!!"'!3r999rwKN!!"'!3q888adFQqtyy|^#**1Q40A555a!eaZ<Dq1uqjL1acAaCi!^++E::a=QUQJ&&&::a!e!!!;;q>a!eaZ1Q319q.8888EAaCKq!QU***B1HB1$$$!G??2!A#%%%!Ga1f##A&!+++B1HA1"$$$Q	M  a)Q...!Ga1f##A&!+++!Ga1f##AqD)Q...!Ga1f##AqD)Q...q1uqjLQ
+q000q1uqjLA&!+++!Gq1uai&&q1u-222!GaKq!Q&&&!GaKq!$!a///qD1Q3J1##AqD!,!ac	999771a=A771a=A6JA!771:??771:??aC;;q>QE==1"""aCE!G??11Q&&&E==1Q#q(((aCE!G??1Q31$$$C!#a%Kq!QU***C!#a%Kq-222C!#IQ1$$$C!#a%Kqs#q(((C!#a%Kqs$/1444C!#a%Kqs$/1q5888aC;;q!!###aC!A#I!O""1%Q...C!#IO""1D"1QU:::aCE!Gac!eAg!#**1D*9QqS1Q3YFFFaCE!Gac!eAg!#**1D*9QUBBBaCE!Gac!eAg!#**1-1444ro   c                     \        R 4      w  r\        R4      p^V ^,          ,          ^V ,          V! V 4      P                  V ^4      ,          V ^,          V! V 4      P                  V ^4      ,          ,           ,          pVP                  4       pVP	                  V! V 4      P                  V 4      4      ^V ,          8X  g   Q hR# zr, kappapsiNr)   r   r   r   r  rQ  kappar  r  s       rk   test_coeff2r    s    z"HA
5/C	!Q$!A#c!fkk!Q''!Q$QQ1B*BBCA	
A773q6;;q>"ac)))ro   c                  ~   \        R 4      w  r\        R4      p^V ^,          ,          ^V ,          V! V 4      P                  V ^4      ,          V ^,          V! V 4      P                  V ^4      ,          ,           ,          pVP                  4       pVP	                  V! V 4      P                  V ^4      4      ^8X  g   Q hR# r  r  r  s       rk   test_coeff2_0r    s    z"HA
5/C	!Q$!A#c!fkk!Q''!Q$QQ1B*BBCA	
A773q6;;q!$%***ro   c                     \         \        \        ,           ^,          ,          p \         \        \        ,           ^,          ,          \         ^\        ,          ^\        ,          ,           ^,          ,          ,           pV P                  \         4      \        \        ,           ^,          8X  g   Q hVP                  \         4      \        \        ,           ^,          ^\        ,          ^\        ,          ,           ^,          ,           8X  g   Q hR# r  )r\   rZ   r[   r  )r+  r  s     rk   test_coeff_expandr    s    a!eaZ<Dq1uqjL1acAaCi!^++E::a=QUQJ&&&;;q>a!eaZ1Q319q.8888ro   c                      \         P                  ! \         4      \         ^,          ^,          8X  g   Q h\         P                  ! \         ^ ^34      \        P                  8X  g   Q hR# r  )rZ   r=   r&   rH  r   ro   rk   test_integrater    sA    ;;q>QT!V###;;1ay!QVV+++ro   c                     \         P                  ! 4       \         \        P                  38X  g   Q h\         \        ,          \
        ,          P                  4       \         \        ,          \
        ,          \        P                  38X  g   Q h\         \        ,           \
        ,           P                  4       \         \        ,           \
        ,           \        P                  38X  g   Q h\         \        ,           \
        ,          P                  4       \         \        ,           \
        38X  g   Q h\         ^,          \        ^,          ,          P                  4       \         \        ,          ^38X  g   Q h\         \
        ,          \        \
        ,          ,          P                  4       \         \
        ,          \        \
        ,          ,          \        P                  38X  g   Q hR# r  )rZ   as_base_expr&   rD  r[   r\   r   ro   rk   test_as_base_expr    s   ==?q!%%j(((aCE QqSUAEEN222EAI""$QAEE(::::UQJ##%!a%333qDAI""$1a000qDAI""$AadAEE(::::ro   c                     \        \        \        \        4      R 4      '       g   Q h\        \        \        \        RR7      R 4      '       g   Q h\        \	        \        \        4      R 4      '       g   Q h\        \	        \        \        RR7      R 4      '       g   Q h\        \	        ^^RR7      ^RR7      ^,           p \        V R 4      '       g   Q hR# )is_commutativeFr  N)hasattrr   rZ   r[   r!   r*  s    rk   test_issue_4963r    s    3q!9.////3q!e,.>????3q!9.////3q!e,.>????s1a%(!e<q@D4)****ro   c                     \        ^\        ^\        ,          \        ,          ^,          4      ^,           ,          4      ^\        ^\        ,          \        ,          ^,          4      ^,           ,          P                  4       8X  g   Q h\	        ^\        ,          ^\
        ,          ,           4      ^\        ,          ^\
        ,          ,           P	                  4       8X  g   Q h\        \        \        4      RR7      \        \        4      P                  RR7      8X  g   Q h\        ^^\        ^4      ,           ,          4      ^^\        ^4      ,           ,          P                  4       8X  g   Q h\        ^\        \        \        \        4      ,          ,           ,          RR7      ^\        \        \        \        4      ,          ,           ,          P                  RR7      8X  g   Q h\        \        \
        ,          \        \        ,          ,          \
        \        ,          ,          RR7      \        \
        ,          \        \        ,          ,          \
        \        ,          ,          P                  RR7      8X  g   Q h\        \        ,          \
        \        ,          ,          P                  RR7      \        \
        ,          \        ,          8X  g   Q h\!        \        \
        ,          \        \        ,          ,          \
        \        ,          ,          4      \        \
        ,          \        \        ,          ,          \
        \        ,          ,          P!                  4       8X  g   Q h\#        ^\        ,          ^\
        ,          ,           4      ^\        ,          ^\
        ,          ,           P#                  4       8X  g   Q h\%        \        \        ^,          ,          \        \        ^,          ,          ,           \        \        ,          ,           \        \        ,          ,
          \        ,           \        4      \        \        ^,          ,          \        \        ^,          ,          ,           \        \        ,          ,           \        \        ,          ,
          \        ,           P%                  \        4      8X  g   Q h\'        \
        \
        ^,           ,          \
        ^,           ,          \
        4      \
        \
        ^,           ,          \
        ^,           ,          P'                  \
        4      8X  g   Q h\)        \
        \        ^,           ,          \        ^,           ,          4      \
        \        ^,           ,          \        ^,           ,          P)                  4       8X  g   Q h\+        \-        \        4      \-        \        ^,
          4      ,          4      \-        \        4      \-        \        ^,
          4      ,          P+                  4       8X  g   Q h\/        \        ^,          ^\        ,          ,           ^,           4      \        ^,          ^\        ,          ,           ^,           P/                  4       8X  g   Q h\1        \        \        ^,          4      4      \        \        ^,          4      P1                  4       8X  g   Q h\3        \        ^,          ^\        ,          ,           ^,           \        ^,           ,          4      \        ^,          ^\        ,          ,           ^,           \        ^,           ,          P3                  4       8X  g   Q hR# )	ru  TdeepF)symbolicall)combine)forceN)rN   r/   r   rZ   rL   r[   rO   r0   rK   r3   rT   rU   rV   rI   r\   rX   rM   rD   rJ   r@   rG   rH   r<   rA   r   rB   r   ro   rk   test_action_verbsr    s#   QAbDF1H)*+	
C"QqMA	))+, , ,1Q319!A#!)!4!4!6666CF&3q6*;*;*;*FFFF1a$q'k?#1tAw;'@'@'BBBB1a!DG)m$u5	
A$q'	M	##U#34 4 41a419QT>51	
Aad1a4   /0 0 0qDAIT*qsQh666AqDAIadN#1QT	!Q$'@'@'BBBBAaC!A#I1Q319"6"6"88881QT6AadF?QqS(1Q3.2A6	
1a4!AqD&1Q3	1	$q	(11!45 5 5AEAE"A&1a!e9a!e+<*C*CA*FFFFAq1uIq1u%&1a!e9a!e+<*F*F*HHHHU1XeAaCj()eAhuQqSz.A-L-L-NNNN!Q$1*q.!adQqSj1n%<%<%>>>>$q!t*ad!2!2!44441a4!A#:>AE*+A!a!a%0H/P/P/RRRRro   c                     \         P                  ! 4       \         ^/8X  g   Q h\         \        ,          \        ,          P                  4       \         \        \        ^/8X  g   Q h\	        ^^RR7      P                  4       \        ^4      \        ^4      /8X  g   Q h\         \        ,          P                  4       \        ,          ^ 8X  g   Q h\         \        ,           P                  4       \        ,          ^ 8X  g   Q hR# )ru  Fr  N)rZ   as_powers_dictr[   r\   r   r&   r   ro   rk   test_as_powers_dictr    s    !Q'''qDF""$Aq!444q!e$335!A$!EEEaC!!$)))E!!#A&!+++ro   c                     \         P                  \        \        \        \        ,          ^.p V  Uu. uF@  p\	        ^\        ,          ^\        ,          \        ^4      P                  4       V,          NKB  	  up. RO8X  g   Q hV  Uu. uFB  p\	        ^\        ,          ^\        ,          \        ^RR7      P                  4       V,          NKD  	  up. RO8X  g   Q hV  Uu. uF0  p^\        ,          \        ,          P                  4       V,          NK2  	  up. RO8X  g   Q hV  Uu. uF0  pR\        ,          \        ,          P                  4       V,          NK2  	  up. RO8X  g   Q hR\        ,          \        ,          P                  4       R\        ,          \        ,          ,          ^ 8X  g   Q h\        \        ^,           ,          \        ,          \        \        ,          ,           \        \        ,          ,           pVP                  \        4      \        \        ^\        ,          \        \        \        ^,           ,          \        /8X  g   Q hVP                  4       P                  \        4      \        ^,          \        \        \        \        ,           ^\        ,          \        /8X  g   Q h\        P
                  ! 4       \        \         P                  /8X  g   Q hR# u upi u upi u upi u upi )ru  Fr  r  N)ry  r  ru  r   ry  )r   r   r   ry  r   )r   r   r   r  r   )
r&   rD  rZ   r[   r   as_coefficients_dictrT   rU   rV   r   )checkr  r  s      rk   test_as_coefficients_dictr    s#   UUAq!A#q!ECHI5aC!QqS!Q446q995I    !QqS!Q/DDFqII./ / /7<=u!QqSU((*1--u=  9>?ASU1W**,Q//?  E!G))+CE!G4999	
AE1qs	QqS	 B""1%!Q!Q	1q5	1*   99;++A.1a4Aq1uac12MMMM!!#155z111 J=?s   AK&AK+6K0%6K5c                     \        R RR7      p \        V ,           P                  4       . \        V ,           ..8X  g   Q h\        \        ,           P                  4       \        \        ,           .. .8X  g   Q h\        \        ,          P                  4       \        \        .. .8X  g   Q h\        \        ,          V ,          V ^,           ,          P                  RR7      \        \        0V ^V ,           ..8X  g   Q h\        \        \        RR7      P                  RRR7      \        0. .8X  g   Q h\        \        \        ^,          RR7      P                  RRR7      \        \        ^,          0. .8X  g   Q h\        \        R 4       \        \        \        \        RR7      P                  4       \        \        \        .. .8X  g   Q hR
\        ,          P                  4       RR\        .. .8X  g   Q hR	# )r  Fr  Tcsetr  )r  warnc                  N    \        \        \        R R7      P                  RR7      # )Fr  Tr  )r   rZ   args_cncr   ro   rk   r"  test_args_cnc.<locals>.<lambda>:  s    s1a%8AAtALro         ?N      r|  )r)   rZ   r  rT   r[   r   rR   r  )r  s    rk   test_args_cncr  ,  s   'AE	a!eW  E
a%"  aC>>
Q  aCE1q5M###.
Q!QU  q!e$--4e-D
b	  q!Q$'00d0G
QTB  
:LMq!Q'002
QB   E2sA,!3333ro   c                  ,   \        R RR7      p \        V ,           pVP                  RJ g   Q hVP                  ! \        4      P                  '       g   Q hVP                  ! \        \        4      P                  '       g   Q hVP                  ! \        V 4      P                  RJ g   Q hVP                  ! \        \        V 4      P                  RJ g   Q h\        V ,          pVP                  RJ g   Q hVP                  \        4      P                  '       g   Q hVP                  V 4      P                  RJ g   Q hVP                  \        \        4      P                  '       g   Q hVP                  \        V 4      P                  RJ g   Q hVP                  \        \        V 4      P                  RJ g   Q hVP                  \        V RR7      P                  RJ g   Q hVP                  \
        P                  4      \
        P                  J g   Q hR# )rW   Fr  )reevalN)r(   rZ   r  _new_rawargsr[   r&   rD  )rW   rT   r  s      rk   test_new_rawargsr  A  s   s&A	AAu$$$>>!+++++>>!Q.....>>!Q..%777>>!Q"11U:::	!Au$$$>>!+++++>>!++u444>>!Q.....>>!Q..%777>>!Q"11U:::>>!Qu>-<<EEE>>!%% AEE)))ro   c                      \        R R7      ^ 8X  g   Q h\        R R7      ^8X  g   Q h\        \        \        ,           R R7      P                  '       g   Q hR# )Fr  N)r   r   rZ   r[   is_Addr   ro   rk   test_issue_5226r  U  sE    !###!###q1uu%,,,,,ro   c                     \         P                  P                  \        4       8X  g   Q h\        P                  \        08X  g   Q h\        \        \        ^\        34      P                  \        08X  g   Q h\        \        \        ^\        34      ) P                  \        08X  g   Q h\        P                  \        4       8X  g   Q h\        \        ,          P                  \        08X  g   Q hR# rt  )r&   rD  free_symbolsr  rZ   r>   r[   rQ   r   ro   rk   test_free_symbolsr  [  s    55&&&>>aS   A1ay!..1#555a!Q##11aS888&&&1H""qc)))ro   c                  :   \         P                  ! \         4      '       g   Q h\         P                  ! \        4      '       d   Q h\         \        ,           P                  \         4      '       g   Q h\         \        ,           P                  ! \         \        3!  '       g   Q h\	        \         4      P                  \         4      '       g   Q h\	        \         4      P                  \	        \         4      4      '       g   Q h\        \	        \         4      \	        \         4      ^\        34      P                  \        4      '       g   Q h\        \	        \         4      \	        \         4      ^\        34      P                  \         4      '       d   Q h\        \	        \         4      \	        \         4      ^\        34      P                  \	        \         4      4      '       d   Q h\         ^,           \        ,           P                  \         ^,           4      '       g   Q h\         ^,           \        ,           P                  \         ^,           4      '       d   Q h^^\         ,          \        ,          ,           P                  ^\         ,          4      '       g   Q h\        \        R 4       \        ^^4      p \        V \         ^8  3R4      P                  V 4      '       g   Q h\        ^\         ^8  3R4      P                  V 4      '       d   Q h\        \        R 4       R# )ru  c                  B    \         P                  ! \         \        04      # rb   rZ   has_freer[   r   ro   rk   r"  test_has_free.<locals>.<lambda>s  s    ajj!Q0ro   c                  8    \         P                  ! \        . 4      # rb   r  r   ro   rk   r"  r  x  s    ajjB/ro   N)r  T)
rZ   r  r[   r\   r  r>   rR   rJ  rF   r5   r   s    rk   test_has_freer  e  s   ::a===zz!}}EAEaV$$$$Q4==Q4==1AaD1Q4A,'003333!qtQl+44Q7777!qtQl+44QqT::::EAIA&&&&A	##AE****!AI!$$$$
901!QAaQZ+44Q7777!QUY/88;;;;
9/0ro   c                     \         ^,           P                  \         04      '       g   Q h\         ^,           ^,          P                  \         ^,           04      '       g   Q h\         \        ,           ^,           P                  \         ^,           04      '       d   Q h\        \        R 4       \        \        R 4       R# )ru  c                  6    \         P                  ! \         4      # rb   rZ   	has_xfreer   ro   rk   r"   test_has_xfree.<locals>.<lambda>  s    akk!nro   c                  8    \         P                  ! \         .4      # rb   r  r   ro   rk   r"  r    s    akk1#.ro   N)rZ   r  r[   rR   rJ  r   ro   rk   test_has_xfreer  {  s    EaS!!!!UQJ!!1q5'****A	$$a!eW----
9,-
9./ro   c                      \        R RR7      p V \        ^4      ,          \        ^4      ,          V \        ^4      ,          ^,          8X  g   Q hR# )rZ   Fr  N)r(   r3   r  s    rk   test_issue_5300r    s9    s&AT!W9T!W$q'	!+++ro   c                  l    ^ RI Hp  \        \        ,          V ! \        \        ,          4      8X  g   Q hR# )r   floorN)#sympy.functions.elementary.integersr  rZ   r[   r  s    rk   test_floordivr    s    96U1q5\!!!ro   c                  L   \        ^4      P                  4       \        ^4      \        ^4      38X  g   Q h\        ^^4      P                  4       \        ^^4      \        ^4      38X  g   Q h\        R4      P                  4       \        R4      \        ^4      38X  g   Q h\        R4      P                  4       \        R4      \        ^4      38X  g   Q h\        ^4      \        ,          P                  4       \        ^4      \        38X  g   Q h\        ^^4      \        ,          P                  4       \        ^^4      \        38X  g   Q h\        R4      \        ,          P                  4       \        R4      \        38X  g   Q h\        ^4      \        ,          \
        ,          P                  4       \        ^4      \        \
        ,          38X  g   Q h\        ^^4      \        ,          \
        ,          P                  4       \        ^^4      \        \
        ,          38X  g   Q h\        R4      \        ,          \
        ,          P                  4       \        R4      \        \
        ,          38X  g   Q h\        P                  ! 4       \        P                  \        38X  g   Q h\        \
        ,          P                  4       \        P                  \        \
        ,          38X  g   Q h\        ) \        ,          P                  RR7      R\        \        ,          38X  g   Q hR# )ry        @        Tr  Nr|  )	r   as_coeff_Mulr   r   rZ   r[   r&   rD  r   r   ro   rk   test_as_coeff_Mulr    s'   1:""$WQZ(@@@@Aq>&&(Xa^WQZ,HHHH:""$sWQZ(@@@@:""$sWQZ(@@@@AJqL&&(WQZO;;;QN1**,!Q0CCCC#JqL&&(U3ZO;;;AJqLN((*wqz1Q3.????QN1Q,,.8Aq>1Q32GGGG#JqLN((*uSz1Q3.????!%%+++aCAEE1Q3<///CE.2r!t*<<<ro   c                     \        ^4      P                  4       \        ^4      \        ^ 4      38X  g   Q h\        ^^4      P                  4       \        ^^4      \        ^ 4      38X  g   Q h\        R4      P                  4       \        R4      \        ^ 4      38X  g   Q h\        ^4      \        ,           P                  4       \        ^4      \        38X  g   Q h\        ^^4      \        ,           P                  4       \        ^^4      \        38X  g   Q h\        R4      \        ,           P                  4       \        R4      \        38X  g   Q h\        R4      \        ,           P                  RR7      ^ \        R4      \        ,           38X  g   Q h\        ^4      \        ,           \
        ,           P                  4       \        ^4      \        \
        ,           38X  g   Q h\        ^^4      \        ,           \
        ,           P                  4       \        ^^4      \        \
        ,           38X  g   Q h\        R4      \        ,           \
        ,           P                  4       \        R4      \        \
        ,           38X  g   Q h\        P                  ! 4       \        P                  \        38X  g   Q h\        \
        ,          P                  4       \        P                  \        \
        ,          38X  g   Q hR# )ry  r  Tr  N)r   as_coeff_Addr   r   rZ   r[   r&   rC  r   ro   rk   test_as_coeff_Addr    s   1:""$WQZ(@@@@Aq>&&(Xa^WQZ,HHHH:""$sWQZ(@@@@AJN((*wqz1o===QNQ,,.8Aq>12EEEE#JN((*uSz1o===#JN(($(7AuSzA~;NNNNAJNQ,,.71:q1u2EEEEQNQ"002x1~q1u6MMMM#JNQ,,.5:q1u2EEEE!&&!,,,aCAFFAaC=000ro   c                  $	   ^\         ^,          ,          ^\         ,          \        \        \         4      4      \        \         4      \         \        \         4      ^,          \         ^,          .p \        V \        R7      V 8X  g   Q h\         ^\         ,          ^\         ^,          ,          ^\         ^,          ,          \         \        ,          ^\         \        ,          ,          \        \         4      \        \         4      \        ,          \        \         ^,          4      \        \         4      \        \         ^,          4      \        \         4      .p \        V \        R7      V 8X  g   Q h\         ^,           \         ^,          \         ,           ^,           \         ^,          \         ^,          ,           \         ,           ^,           .p \        V \        R7      V 8X  g   Q h\        ^4      \         ^\        ,          ^,          ,
          \         ^\        ,          ^,          ,           \         ^\        ,          ,
          ^,           \         ^\        ,          ,           ^,           .p \        V \        R7      V 8X  g   Q h\        ^4      \        ^4      \        ^4      \        ^^^4      \        ^4      \        ^4      \        ^4      \        ^^^4      .p \        V \        R7      V 8X  g   Q h\        \         4      \        \         4      \        \         4      \        \         4      \        \         4      \        \         4      .p \        V \        R7      V 8X  g   Q h\        \         \        4      \        \         \         4      \        \         \        \         4      .p \        V \        R7      V 8X  g   Q h^.^^..p \        V \        R7      V 8X  g   Q h^^.^^..p \        V \        R7      V 8X  g   Q h^^.. RO.p \        V \        R7      V 8X  g   Q h\         \        ) /\         \        /.p \        V \        R7      V 8X  g   Q h^0^^0.p \        V \        R7      V 8X  g   Q h\#        R4      \#        R4      .;w  rp \        W!.\        R7      V 8X  g   Q hR# )ru  keyrZ   N)ru  r  ry  )rZ   r3   sortedr'   rW   r7   r8   r6   r&   r   r  r  r/   r-   r   r[   r\   r*   )rK  rT   rU   s      rk   test_expr_sortingr    s'   q!tVQqS$tAw-a!T!WaZAFE%-.%777!Qq!tVQq!tVQT1QT63q63q619AYAAqD	3q63E%-.%777UAqD1HqL!Q$A+/A"56E%-.%777qT1qs1u9a!A#a%iQqS1a!A#gkBE%-.%777qT1Q41qAqz1Q41qtQq!QZHE%-.%777qT1Q4QQQ1>E%-.%7771a[%1+uQ1~6E%-.%777S1a&ME%-.%777VaVE%-.%777VYE%-.%777!Wq!fE%-.%777S1a&ME%-.%777#Jc
++DA51&./5888ro   c                      \         P                  ! 4       \         .8X  g   Q h^\         ,          \         \        ,          ,          \        \         4      ,          \	        \         4      ,          P                  4       \        ^4      \         \         \        ,          \        \         4      \	        \         4      .8X  g   Q h\        ^4      \        ^4      \        ^4      \        ^^^4      \        ^4      \        ^4      \        ^4      \        ^^^4      .p \        V !  pVP                  4       V 8X  g   Q h\        RRR7      w  r#W#,          P                  4       W#.8X  g   Q hW2,          P                  4       W2.8X  g   Q hR# )r  zA,BFr  N)
rZ   as_ordered_factorsrW   r7   r8   r   r  r  r   r)   )r  r+  r  r  s       rk   test_as_ordered_factorsr    s   !aS(((aC1HSVOCF"668AJ1a4QQ01 1 1 aD!A$!a1aj!A$!adAaAJGD:D""$,,,5e,DAC##%!///C##%!///ro   c                  
   \         P                  ! 4       \         .8X  g   Q h\        \         4      ^,          \        \         4      ,          \        \         4      \        \         4      ^,          ,          ,           ^,           P                  4       \        \         4      ^,          \        \         4      ,          \        \         4      \        \         4      ^,          ,          ^.8X  g   Q h\	        ^4      \	        ^4      \	        ^4      \	        ^^^4      \        ^4      \        ^4      \        ^4      \        ^^^4      .p \        V !  pVP                  4       V 8X  g   Q h^^\        ^4      ,          \        ,          \         ,          ,           P                  4       ^\        ,          \         ,          \        ^4      ,          ^.8X  g   Q h^^\        ,          ,           P                  4       ^^\        ,          .8X  g   Q hR
^\        ,          ,           P                  4       R
^\        ,          .8X  g   Q h^^\        ,          ,
          P                  4       ^R\        ,          .8X  g   Q hR
^\        ,          ,
          P                  4       R
R\        ,          .8X  g   Q h^^\        ,          ,           P                  4       ^^\        ,          .8X  g   Q hR^\        ,          ,           P                  4       R^\        ,          .8X  g   Q h^^\        ,          ,
          P                  4       ^R\        ,          .8X  g   Q hR^\        ,          ,
          P                  4       RR\        ,          .8X  g   Q h\         ^,          \        ^,          ,          \         \        ^,          ,          ,           \        ,           ^,           pVP                  RR7      \         ^,          \        ^,          ,          \         \        ^,          ,          \        ^.8X  g   Q hVP                  RR7      \         \        ^,          ,          \         ^,          \        ^,          ,          \        ^.8X  g   Q hVP                  RR7      ^\        \         \        ^,          ,          \         ^,          \        ^,          ,          .8X  g   Q hVP                  RR7      ^\        \         ^,          \        ^,          ,          \         \        ^,          ,          .8X  g   Q h\        R4      pVP                  RR7      VR3.V.38X  g   Q hR	# )r  lex)ordergrlexzrev-lexz	rev-grlexr  T)dataNr{  r  r  ))r  r  r  r   )rZ   as_ordered_termsr7   r8   r  r  r   r3   r   r   r[   r)   )r  r+  r   r  s       rk   test_as_ordered_termsr    s   A3&&&FAIc!fs1vc!fai//!3EEGFAIc!fc!fSVQY.23 3 3 aD!A$!a1aj!A$!adAaAJGD:D  "d***$q'	"Q002qtAvd1g~q6IIII1W&&(Q!H4441H&&(R1I5551W&&(Q1I5551H&&(RAJ6661W&&(Q!H4441H&&(R1I5551W&&(Q1I5551H&&(RAJ666	1QT	AadFQ"AE*q!tAqDy!AqD&!Q.GGGGG,1a4AadAq0IIIII.1a1a4Aad2KKKKK0Q1a419a1f4MMMMA4(q2H.I-JQC,PPPPro   c                  L    ^ RI Hp Hp \        V ) V.R R7      V ) V.8X  g   Q hR# )r   rs  c                 "    V P                  4       # rb   )sort_key)args   &rk   r"  +test_sort_key_atomic_expr.<locals>.<lambda>  s
    3<<>ro   r	  N)rt  r  r   r  rs  s     rk   test_sort_key_atomic_exprr    s'    (A2q'9:r1gEEEro   c                  |  a  \        \        4      P                  ! \        \        ^ ^4      !  \        ^4      \        ^ 4      ,
          8X  g   Q h\        \        ,          o \        \        V 3R l4       \        \        V 3R l4       \        \        ,
          o \        \        V 3R l4       \        \        R 4       \        ) \        \        \        ,
          4      ,          o S P                  ! \        \        ) \        4      \        ) 8X  g   Q hS P                  ! \        \        \        ) 4      \        8X  g   Q hR# )r   c                     < S P                   ! \        \        P                  \        4      P                  \
        \        \        P                  4      # rb   _eval_intervalrZ   r&   rC  r   r[   r  s   rk   r"  $test_eval_interval.<locals>.<lambda>  s0    (8(8AFFB(G(V(VWXZ\^_^d^d(ero   c                     < S P                   ! \        \        P                  \        4      P                  \
        \        P                  \        4      # rb   r  r  s   rk   r"  r!    s0    (8(8AFFB(G(V(VWXZ[Z`Z`bd(ero   c                     < S P                   ! \        \        P                  \        4      P                  \
        \        \        P                  4      # rb   )r   rZ   r&   rD  r   r[   r  s   rk   r"  r!    s0    (8(8AEE2(F(U(UVWY[]^]b]b(cro   c                  :    \         P                  ! \         R R 4      # rb   )rZ   r   r   ro   rk   r"  r!    s    q//4>ro   N)
r/   rZ   r   r   r[   rR   r  r  r9   r   r  s   @rk   test_eval_intervalr%    s    q6  %1a.1SVc!f_DDD 	
!A
 ef
 ef	AA
 cd
:>?	
9QUAAsB'A2---ArB3'1,,,ro   c                      \        ^\        ,          4      P                  \        \        P                  \        P
                  4      \        ) ^,          \        ^4      ,           8X  g   Q hR# rt  )r;   rZ   r   r&   rC  rD  r   r   ro   rk   test_eval_interval_zoor'  $  s=    ac7!!!QVVQUU3s1ur!u}DDDro   c                     ^\         ^,           ^,          ,          P                  4       ^\         ^,           ^,          38X  g   Q h^\         ,          ^,           P                  4       ^^\         ,          ^,           38X  g   Q h\         ^,          ^,           P                  4       \        P                  \         ^,           38X  g   Q h^\         ,          ^,           \         ^,          ^,           ,          p V P                  4       ^ ,          ^8X  g   Q h^^\         ,          ,           ^,          p V P                  4       ^ ,          ^8X  g   Q hR\         ,          P                  4       ^R\         ,          38X  g   Q hR\         ,          \        ^,          ,           P                  4       \        P                  R\         ,          \        ,           38X  g   Q hR\         ,          P                  4       ^\         ) 38X  g   Q h\        ^\        ,          ^,          R\         ,          ^\        ,          ^,          RR7      P                  4       \        P                  ^,          R\         ,          ^\        ,          ,           ^
\        ,          ,           38X  g   Q h\        P                  \        P                  \        P                  3 FN  pV\         ^,          ,           P                  4       \        P                  ^,          V\         ,           38X  d   KN  Q h	  \        P                  ^\         ,          ^,          ,           ^\        ,          ^,          ,           P                  4       \        P                  ^,          ^\         ,          ^\        ,          ,           \        ,           38X  g   Q h\        P                  P                  4       \        P                  \        P                  38X  g   Q hR# )	ry  r   g       @r  Fr  g      @Nr{  )rZ   	primitiver&   rH  r[   r   r\   rD  rE  rF  rG  r   rC  )r  r  s     rk   test_primitiver*  )  s   q1uqjL##%!a!eaZ888aC!G Q!aL000aC!G QVVQUO333
A#'AaC!G	B<<>!!!!
ac'AB<<>!!!!E1c!e*,,,EAaCK""$Q(;;;;qD!aR(((qs1uc!eQqSUU3==?	
r3q52a4<"Q$&'( ( (jj!,,a.?.?@AaC""$UU1Wa!e 	  A JJ1Q1Q&113	
r2a4"Q$;#$% % %66!%%000ro   c                     ^\         ,           p ^V ,          P                  V 4      ^8X  g   Q h^V ,          P                  ^V ,          4      ^8X  g   Q h^V ,          ^V ,          ,          P                  V 4      ^V ,          8X  g   Q hR# rt  )rZ   r  r  s    rk   test_issue_5843r,  >  sr    	AAaC))!,111aC))!A#.!333qS1Q3K11!4!;;;ro   c            
      .   ^ RI Hp  \        \        \        ^^
34      P	                  4       RJ g   Q h\        \        \        ^\
        34      P	                  4       RJ g   Q h\        \        \        ^\
        34      P	                  \        4      RJ g   Q h\        \        \        ^\
        34      P	                  \
        4      RJ g   Q h\        \        \        ^\
        34      P	                  \        4      RJ g   Q h\        \        \        4      ^,          ,          \        \        \        4      ^,          ,          ,           \        ,
          pVP	                  4       RJ g   Q hVP                  \        \        \        ^/4      VP                  \        \        \        ^/4      u;8X  d	   ^ 8X  g   Q h Q h\        P                  ! 4       RJ g   Q h\        P                  ! \        4      RJ g   Q h\        \        \        ,          4      P	                  4       RJ g   Q hV ! \        \        \        \        \        ^\
        34      4      RJ g   Q hV ! \        \        \        \        \        ^\
        34      4      RJ g   Q h\        ^4      P                  '       g   Q hV ! \        \        \        \        4      4      RJ g   Q h\        \        \        P                   RR7      P	                  4       RJ g   Q h\        \        P                   \        RR7      P	                  4       RJ g   Q h^\        ,          P	                  4       RJ g   Q h\        \        ^4      \        ^4      RR7      P	                  4       RJ g   Q h\#        RRR7      w  r#V^V,          ,           P	                  4       RJ g   Q h\$        P                  ! 4       RJ g   Q h^\$        ,          P	                  4       RJ g   Q h\        \$        ,          P	                  4       RJ g   Q hR# )r   )checksolTFr  zz1 z2)zeroN)sympy.solvers.solversr.  r   rZ   is_constantrW   r[   rT   r8   r7   r  r   r0   r  r!   r&   rC  r)   rQ   )r.  r  z1z2s       rk   test_is_constantr4  E  s   .q1a*))+t333q1a)((*e333q1a)((+t333q1a)((+u444q1a)((+t333	
3q619qQ{	"Q	&B>>t###77Ar1a=!RWWaQ]%;@q@@@@@==?e###==t###qs8!U***Aq#a!Q+,555Aq#a!Q+,555Q4Aq!A$5(((q!&&5)5574???qvvq5)5575@@@qD5(((qtQqTE*668D@@@W4(FB2I""$,,,$&&&eG  "d***eG  "e+++ro   c                     R	\        ^4      ,
          \        ^
4      ) ^,          \        ^4      ^,          ,
          ^,          ,           P                  ^ 4      '       g   Q h\        ^,          ^,
          P                  \        ^,           \        ^,
          ,          4      '       g   Q h\        \        4      ^,          \	        \        4      ^,          ,           P                  ^4      '       g   Q h\
        \        \        4      ^,          ,          \
        \	        \        4      ^,          ,          ,           P                  \
        4      '       g   Q h\        ^4      p R
W \        ,          ,           ,          ^V ,          ^\        ,           ,          ,           P                  ^ 4      '       g   Q h\        \        ^,           4      P                  \        ^,           \        \        4      ,          4      '       g   Q h\        ^4      P                  ^\        ^4      ,          4      RJ g   Q h\        ^4      \        ^4      ,          P                  \        ^4      4      RJ g   Q h\        ^4      \        ^4      ,           P                  ^ 4      RJ g   Q h\        ^4      \        ,           P                  ^ 4      RJ g   Q h\        P                  ! ^ 4      RJ g   Q h^\        ^,          ,          P                  ^ 4      RJ g   Q hR
\        ^4      ^,          ,          ) ^\        P                  ^,          ,          ,          R\        P                  ^,          ,          \        ,          ,           pV^ 8w  d   VP                  ^ 4      '       g   Q h\        \        4      P                  ^ 4      RJ g   Q h^\        ^4      ,          \        \        ^4      ^,          ,          ,          ^^^\        ,          ,          ,           \        ^4      ^,          ,          ,          ^,          ^\        ^4      ,          \        \        ^4      ^,          ,          ,          ^^^\        ,          ,          ,           \        ^4      ^,          ,          ,          R^\        ,          ,
          ,          ,           p\        ^\        ,          ^,           4      ^\        ^,          ,          \        ,           ^,
          ,          ^,          pW#,
          pVP                  ! ^ 4      e   Q hVP                  ! \        \        R
^4      ^,          4      ^\        ^4      ,          ^x,          8X  g   Q h\        RRR7      pVP                  ! \        V4      P                  ^ 4      RJ g   Q hVP                  ! \        R
4      P                  ^ 4      RJ g   Q h\        ^\        ^4      ,           4      \        ^^\        ^4      ,          ,           4      ,           \        ^
^\        ^4      ,          ,           4      ,
          pVP                  ^ 4      '       g   Q h^\        ^^4      ,          ^,           p\        V^,          4      \        ^^4      ,          pWV,
          P                  ^ 4      '       g   Q h\!        R4      pV\        RV\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          \        ^4      ^,          ,
          4      ) ^,          \        ^V,          \        ^4      ^,          ,
          \        RV\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          \        ^4      ^,          ,
          4      ,          ^V\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          ,           \        ^4      ^,          ,
          4      ^,          ,
          \        P                  ^,          ,
          ,          V^,          ,           \        RV\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          \        ^4      ^,          ,
          4      ) ^,          \        ^V,          \        ^4      ^,          ,
          \        RV\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          \        ^4      ^,          ,
          4      ,          ^V\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          ,           \        ^4      ^,          ,
          4      ^,          ,
          \        P                  ^,          ,
          ^,          ,           \        RV\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          \        ^4      ^,          ,
          4      ) ^,          \        ^V,          \        ^4      ^,          ,
          \        RV\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          \        ^4      ^,          ,
          4      ,          ^V\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          ,           \        ^4      ^,          ,
          4      ^,          ,
          \        P                  ^,          ,
          ^,          ,           ^\        RV\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          \        ^4      ^,          ,
          4      ) ^,          \        ^V,          \        ^4      ^,          ,
          \        RV\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          \        ^4      ^,          ,
          4      ,          ^V\        ^4      ^,          ,
          \        ^4      ,          ) ^,          \        R4      R,          ,
          \        P                  ^,          ,          ,          ,           \        ^4      ^,          ,
          4      ^,          ,
          \        P                  ^,          ,
          ^,          ,          ,           \        ^^4      ,
          pVP                  ! ^ 4      '       g   Q hR# )ry  FNrE  Tr]  rD  i  i 6  r  r|  r  r{  )r3   equalsrZ   r8   r7   rT   r-   r   rQ   r&   rD  r   r  r   r(   r   r)   )rQ  r  r  ansr   rE  rD  r\   s           rk   test_equalsr8  e  sn
   aLT"XIaK$q'!)3a77??BBBBqD1Ha!ea!e_----FAIA	!))!,,,,c!faiK!CFAI+%--a0000QAaCL1Q3A;&..q1111QU""AE9Q<#788887>>!DG)$---GDGO##DG,555Gd1g%%a(E111GbL  #u,,,<<?e###eQhJq!U***1a.QUU1W	%quuQw(9	9B	Qwyy|||7>>!%%% 	
$q'	!ad1f+q1ac7{ad1f55a7	$q'	!ad1f+q1ac7{ad1f55rAaCx@	AA
qsQw-1a4!a
(
+C7D;;q>!!!99QQ)*aQim;;; 	sT"A99Q?!!!$,,,99Q""1%--- 
a$q'k	T!aQi-0	04QtAwY3G	GB99Q<<<	8Aq>AAq!thq!n$AE>>!
 	A	
T"AaDF
QqT))!+agem;quuQwGGbE"H  !ad1fd2QqT!Vad0B/B1/DdGEM0UU1W/ , !"b,) '* *,-QqT!Vad0B/B1/DdGEM0UU1W/ - !"a( ))*++ ./UU1W5 
6 9:!
< AER1d1fLtK JJ$J&)*qI2 F245bE"HF= A> @>>?@@BF!d1fI2QqT!Vad**1,qwu}<aHHbE"H HQ1aZ!A$&&q(1T75=8AEE!GDDHE bE!GH C C@ q	@ 	?
 "&bA!QJ1+=*=a*?dGEM+UU1W* ' !"b') "* !**+!,.2AaCaDF5q1Q46zAaD((*QtWU]:aeeAgFFbE"H 4Q1aZ!A$&&q(1T75=8AEE!GDD4E bE!G4 / /! q	! 	 
  !4a!A$q&j1Q4-?,?,AdGEM-UU1W, ) !"b)) $* #**+#,.2AaCaDF5q1Q46zAaD((*QtWU]:aeeAgFFbE"H 4Q1aZ!A$&&q(1T75=8AEE!GDD4E bE!G4 / /# q	# 	"  
  (1~
.A  88A;;;ro   c                     ^ RI Hp  ^ RIHp V! \        4      ^ ,          P                  4       f   Q hV ! \        4      P                  ^R^ R^4      e   Q h\        \        \        \        4      \        34      P                  4       e   Q hR# )r   )lucas)posifyNr{  r|  )%sympy.functions.combinatorial.numbersr:  sympy.simplify.simplifyr;  rZ   _randomrW   r5   r4   r[   r\   )r:  r;  s     rk   test_randomr?    sn    ;.!9Q<!---8Ar1b!,444 c!Qi^$,,.666ro   c            
      r  aa \        \        R 4      P                  ^4      4      R8X  g   Q hRp \        V 4      P                  ^4      pVP                  '       d   W8X  g   Q h\        V 4      P                  R54      pVP                  '       d   VR8X  g   Q h\        \        R4      P                  ^4      4      R8X  g   Q h\        \        R4      P                  ^4      4      R8X  g   Q h\        \        R4      P                  ^4      4      R	8X  g   Q h\        R
4      pVP                  ! 4       pVP                  '       g   Q hW8X  g   Q hVP                  ! ^4      pVP                  '       g   Q hW8X  g   Q hVP                  ! ^4      pVP                  '       g   Q hW8X  g   Q hVP                  ! R64      R8X  g   Q h\        \        V4      4      P                  R74      pVR8X  g   Q hVP                  ! R84      ^ 8X  g   Q h\        \
        \        ^4      ,           P                  ^4      4      R8X  g   Q h^
\
        \        ^4      ,           ,          P                  R64      R8X  g   Q h\        \        R 4       \        \        R4      P                  ^4      4      R8X  g   Q h\        R9^d4       F  o\        \        S4      4      p\        V4      pRV,          pV^,           pS^ 8  d   V^,          pRV,           p\        \        V4      P                  V4      4      RV pVP                  R4      '       d   K  \        VR6,          4      pV^,          ^ 8X  d   K  Q VRV34       h	  \        R^4      ^\
        ,          ,           P                  4       ^8X  g   Q h\        R^4      ^\
        ,          ^d,          ,           P                  4       R8X  g   Q h\
        ^\        ,          \        ,          ,           P                  4       ^^\        ,          ,           8X  g   Q h\        \        R^4      ^\
        ,          ^d,          ,           P                  ^4      4      R8X  g   Q h\        \        R^4      ^\
        ,          ^d,          ,           P                  ^4      4      R8X  g   Q h\        P                   P                  4       ^ 8X  g   Q h\#        ^\        R:R4      RR7      p	V	P                  ! ^
4      \        RR4      8X  g   Q hV	P                  ! ^4      \        RR4      8X  g   Q hV	P                  ! ^4      \        RR4      8X  g   Q hV	P                  ! ^4      \        RR4      8X  g   Q hV	P                  ! ^4      \        RR4      8X  g   Q h\        \        R  4       \        \        R! 4       \        \        P$                  P                  4       4      R"8X  g   Q h\        \        ^d4      P                  4       4      R#8X  g   Q h^\
        ,          \        \        ,          ,           P                  4       ^^\        ,          ,           8X  g   Q h^\
        ,          \        ^
,          ,           P                  4       ^8X  g   Q h\
        ^
,          ^\        ,          ,           P                  4       ^\        ,          8X  g   Q h\        \
        ^
,          \        \        ,          ,           P                  ^4      4      R$8X  g   Q h\        \
        ^
,          \        \        ,          ,           P                  ^4      P'                  4       4      R%8X  g   Q h\        \
        ^
,          \        \        ,          ,           P                  ^4      4      R$8X  g   Q h\        \        ^,           ,          P                  ^4      \        R&R4      \        ,          8X  g   Q h\        R;4      P                  4       R<8X  g   Q h\        R=4      P                  4       R58X  g   Q h\        R>4      P                  4       R?8X  g   Q h\        R=R'\        ,          ,
          4      P                  4       R5^
\        ,          ,
          8X  g   Q h\        \        R(4      P                  ^4      4      R)8X  g   Q h\        \        R*4      P                  ^4      4      R+8X  g   Q h\        P(                  P                  4       \        P(                  J g   Q h\        P*                  P                  4       \        P*                  J g   Q h\        P,                  P                  4       \        P,                  J g   Q h\        P.                  P                  4       \        P.                  J g   Q h\        ^4       EF  o\1        S4      o\2        ;QJ d    V3R, lR@ 4       F  '       d   K   RM	  R-M! V3R, lR@ 4       4      '       g   Q h\2        ;QJ d    V3R. lR@ 4       F  '       d   K   RM	  R-M! V3R. lR@ 4       4      '       g   Q h\2        ;QJ d    V3R/ lR@ 4       F  '       d   K   RM	  R-M! V3R/ lR@ 4       4      '       g   Q h\2        ;QJ d    V3R0 lR@ 4       F  '       d   K   RM	  R-M! V3R0 lR@ 4       4      '       g   Q h\5        \        S4      4      \        J g   Q h\        S4      P                  4       P                  '       g   Q h\5        \        S4      4      \        J g   Q h\        S4      P                  4       P                  '       g   Q hR1p\        V\7        V4      \7        \7        V4      4      ,           ,          4      R28X  g   Q h\9        ^4      ^,          \;        ^4      ^,          ,           p
\=        V
\        ,          \
        ,          4      pVP'                  4       w  rVP                  ^4      R38X  g   Q hVP                  ^4      RA8X  g   Q hV
^\        ^
^x,          4      ,          ,
          p\        P>                  V^8  V^8  39  g   Q h\        V4      \        R44      u;8X  d	   ^ 8X  g   Q h Q h\        V) 4      \        RB4      u;8X  d   ^ 8X  d   EK  Q h Q h	  R# )Cz	0.1249999z0.12l   
>V3&Z
 l   
>V3&Z
 z1/7z0.1429z.[12345]z0.1235z.1349z0.13i90  i40  g     @z4.56g      I@c                  0    \        \        ^,           ^4      # r  )roundrZ   r   ro   rk   r"  test_round.<locals>.<lambda>  s    eAE1oro   gffffff@z2.3z0.%s5r   N.z->g333333?iu  gQ?z0.0928 Fr  z3.000000000000000000000000000z2.999999999999999999999999999c                  ,    \         P                  ! 4       # rb   )rZ   rB  r   ro   rk   r"  rC     s
    aggiro   c                  4    \        ^4      P                  4       # r  )r  rB  r   ro   rk   r"  rC    s    adjjlro   rh  100z0.31 + 2.72*Iz(0.31, 2.72)z-0.208g      %@g~jtx?z0.01gR\U]Q?z0.0011c              3   Z   <"   T F   p\        \        SV4      4      \        J x  K"  	  R # 5irb   )rI  rB  re   .0rE  r  s   & rk   	<genexpr>test_round.<locals>.<genexpr>+  s!     @Z4a$+Z   (+Tc              3   l   <"   T F)  p\        S4      P                  V4      P                  x  K+  	  R # 5irb   )r&   rB  rK  rJ  s   & rk   rL  rM  ,  s#     @Z1Q4::a=++Z   14c              3   Z   <"   T F   p\        \        SV4      4      \        J x  K"  	  R # 5irb   )rI  rB  rf   rK  rE  fis   & rk   rL  rM  -  s!     C
14b!%.
rN  c              3   l   <"   T F)  p\        S4      P                  V4      P                  x  K+  	  R # 5irb   )r&   rB  is_FloatrR  s   & rk   rL  rM  .  s#     ?Jq1R5;;q>**JrP  i[ isr  g?r{  r|  r  r  iz1.999999999999999999999999999gfffff^ig      g      Yi)r|  r   ru  r  g) strr   rB  r&   rK  r   r3   rR   rJ  r  absr  endswithre   r   r   rC  r   rD  as_real_imagNaNrE  rF  rG  rf   r  rI  r0   r8   r7   r/   rV  )d20r7  rW   rQ  r   rE  r   vLrT   oner  qrqirS  r  s                 @@rk   
test_roundra    sK	   u[!''*+v555
C
C&,,q/C>>>cj((
C&,,r
C>>>c%9999qx~~a !X---q}""1%&(222qz"#v---	%A
'')C>>>>8O8
''!*C>>>>8O8
''!*C>>>>8O8772;%c!fBA<<772;!T!W##A&'6111T!W$$R(D000
9-.qv||A5(((
 3_AKFaKEq5FAaAaq!"2A&::c??"J1uz'AtQ<'z  "aL1R4&&(A---"aL1R48#**,3331QJ1qs7*** c1"S(//23x???c1"S(//23x???66<<>Q	QmR(5	9A772;% ?DDDD772;% ?DDDD772;% ?DDDD772;% ?DDDD772;% ?DDDD" 9'(
9*+ quu{{}$$$qv||~%''' bD1Q3J1qs7***bD1R4K A%%%rEAaCK AaC''' 2!""1%&/9992!""1%2245GGG2!""1%&/999 AJa E(B$7$9999 V9??$$$T7==?b   V9??$$$TDF]!!#rBqDy000 qx~~a !V+++qz"#x/// 55;;=AEE!!!::+++##%););;;;""$(9(9999 1X1Xs@Z@sss@Z@@@@@s@Z@sss@Z@@@@@sC
CsssC
CCCCCs?J?sss?J?????E!H~$$$tzz|&&&&&E"I#%%%u{{}''''' 1c!fs3q6{*+,	999!fai#a&!)#Qr]"xx{c!!!xx{d"""1Qr3wZ<vvb1fb1f----2w#b'&Q&&&&&B3x3s8(q(((((1 ro   c                  .   \        R 4      p \        ^V ,          4      pW,          p\        V\        4      '       g   Q hVP                  W38X  g   Q hVP                  4       ^8X  g   Q h\        \        W 4      4      P                  RR7      \        W 4      8X  g   Q h\        \        W 4      4      P                  4       ^8X  g   Q h\        W RR7      pW0^,          8w  g   Q h\        V4      p\        V\        4      '       g   Q hVP                  V38X  g   Q hVP                  4       V ^,          8X  g   Q hVP                  RR7      V8X  g   Q h\        ^4      ^,          p\        V4      \        J g   Q hVP                  ^\        ^4      38X  g   Q hR# )rZ   Fr  r  N)r)   r   rd   r   r  r  r   rI  )rZ   hee1xxue2x2s         rk   $test_held_expression_UnevaluatedExprrh  C  se   A	1	B	
Bb#77qg779>>:a+,11u1 
  :a+,113q888	QE	"BA::
"
Cc?++++88u88:A8882%%%		A	B8s??77q/!,----ro   c                      \        R 4      p  V P                  4        \        R4      h  \         d   pR \	        T4      9  g   Q h Rp?R# Rp?ii ; i)badzDid not raiseN)r(   rB  AssertionErrorrJ  rV  )r   r   s     rk   test_round_exception_nostrrl  \  sL     	uA.		
 _--	  #CF"""#s   ( AAAc                  r    \        R \        ,          \        ,          4      P                  4       R8X  g   Q hR# )r  N)ru  ru  )r.   r   r   extract_branch_factorr   ro   rk   test_extract_branch_factorro  i  s&    SU2X446&@@@ro   c                      \         P                  ! \        ^ ,           4      \        38X  g   Q h\        P                  ! \        ^,          4      \        38X  g   Q hR# r  )r   	make_argsrZ   r   r   ro   rk   test_identity_removalrr  m  s<    ==QA4'''==1!%%%ro   c                  J    \        R 4      ^,           \        R4      8X  g   Q hR# )r  r  N)r   r   ro   rk   test_float_0rt  r  s    :>U3Z'''ro   c                      \        R 4      \        ,          \        R 4      8X  g   Q h\        \        R 4      ,           P                  '       g   Q hR# )r  N)r   rZ   r  r   ro   rk   test_float_0_failrv  v  s6    :a<5:%%%c
N"""""ro   c                     \         ^,          \        ^,          ,           \         \        \         \        ,          ,           ,          \        \        \        \        ,          ,           ,          ,           ^,          \        \         \        ,          ,           ^,          \        \        \        ,          ,           ^,          ,           ,          ,
          \        \        \         \        ,          ,           ^,          \        \        \        ,          ,           ^,          ,           4      ,          p \        \        \         \        ,          ,           ^,          \        \        \        ,          ,           ^,          ,           4      p\        V\        ^4      V 8X  g   Q hVP                  \        ^4      V 8X  g   Q h\        V\        ^RR7      V 8w  g   Q hR# )r  F)rM   N)rU   r\   rT   rX   rV   r3   r   )r7  r   s     rk   test_issue_6325rx  |  s    a4!Q$;!Q1W+1qs73a7	
QqS1AaC!|#% %&*A!Ga<1qs7Q,+F&GHCa!A#g\Q1WqL()A1a=C66!Q<31a%(C///ro   c                  t    \         \        ,          p \        \        ,          pV P	                  V4      e   Q hR # rb   )rT   rV   rZ   r\   r6  )f1f2s     rk   test_issue_7426r|    s(    	
QB	
QB99R=   ro   c                      \        R RR7      p \        \        V ^ 4      '       g   Q h\        R RRR7      p V ^ 8  \        P                  J g   Q hR# )rZ   F)extended_positiveTrc  N)r(   r	   r$   r&   rU  r  s    rk   test_issue_11122r    sI    se,ARA 	sU.AEaggro   c                     \        R RR7      p RV ,           ^V ,
          ,          p^V ^,          ,          ^,
          ^V ,
          ^V ,           ,          ,          p^\        V 4      ^,          ,          \        V 4      ^,          ,
          p\        R RR7      p ^V ,           V ,          pVP                  4       e   Q hVP                  4       e   Q hVP                  4       e   Q hVP                  4       RJ g   Q hR# )rZ   TrR  r]  NFr|  )r(   r8   r6   r1  )rZ   rd  e3e4e5s        rk   test_issue_10651r    s    sA
q&1q5	B
AqD&1*AA	'B	
CFAI#a&1	$BsT"A
a%B>>###>>###>>###>>u$$$ro   c                      \        R RR7      p V \        V 4      ,          \        V 4      ,          V ^,          8X  g   Q hR# )rZ   TrR  N)r)   rW  r  s    rk   test_issue_10161r    s0    $ASV8CF?ad"""ro   c                  n   a  \        R 4      o \        \        V 3R l4       \        \        V 3R l4       R# )rZ   c                  ,   < \        \        S 4      4      # rb   )re   r0   r  s   rk   r"  "test_issue_10755.<locals>.<lambda>  s    c#a&kro   c                  8   < \        S 4      P                  ^4      # r  )r0   rB  r  s   rk   r"  r    s    c!fll1oro   Nr)   rR   rJ  r  s   @rk   test_issue_10755r    s"    A
9)*
9-.ro   c                      \        R 4      p \        \        \        P                  V ,
          4      V ^ \        P                  34      \        R^4      \        ^4      ^,          ,
          8X  g   Q hR# )rZ   Nr|  )r)   r=   r0   r&   rH  r   r  s    rk   test_issue_11877r    sJ    AS!_q!QVVn5"a#a&QR(9RRRRro   c                      \        R 4      p \        \        P                  ^V ,           RR7      pVP	                  4       V8X  g   Q hR# )rZ   Fr  N)r)   r   r&   rH  normal)rZ   r   s     rk   test_normalr    s3    AAFFAEE*A88:??ro   c                  F   a  \        R 4      o \        \        V 3R l4       R# )rZ   c                  F   < \        S 4      P                  S ^\        R4      # )r  r   )r6   rv  r   r  s   rk   r"  test_expr.<locals>.<lambda>  s    c!fmmAq"c:ro   Nr  r  s   @rk   	test_exprr    s    A
9:;ro   c                      \        \        4      p V P                  P                  \        \        .4       V P                  4       \        ^,          8X  g   Q hR# r  )r   r   r  extendrZ   build)ebs    rk   test_ExprBuilderr    s8    	S	BGGNNAq688:Aro   c                  b    ^ RI Hp  V ! R4      pV ! R4      pVP                  ! V4      RJ g   Q hR# )r   )
parse_exprzlog((2*V/3-V)/C)/-(R+r)*Czlog((2*V/3-V)/C)/-(R+r)*2FN)sympy.parsing.sympy_parserr  r6  )r  rZ   r[   s      rk   test_issue_22020r    s1    5./A./A88A;%ro   c                  "   \        R 4      p \        ^4      pV R 8H  RJ g   Q hV R 8g  RJ g   Q hVR8H  RJ g   Q hVR8g  RJ g   Q hV ^,           R8H  RJ g   Q hV ^,           R8g  RJ g   Q h ! R R4      pW! 4       8H  RJ g   Q hW! 4       8g  RJ g   Q hR# )rZ   FTrh  zx + 1c                   &   a  ] tR tRt o R tRtV tR# ))test_non_string_equality.<locals>.BadRepri  c                    \         hrb   )RuntimeErrorr   s   &rk   __repr__2test_non_string_equality.<locals>.BadRepr.__repr__  s    ro   r   N)r   r   r   r   r  r   r   r   s   @rk   BadReprr    s     	 	ro   r  N)r)   r,   )rZ   r^  r  s      rk   test_non_string_equalityr    s    A
!*CHH3J5   3J4EW&&&EW%%%
  Nu$$$Nt###ro   c                  T   ^ RI Hp  V ! 4       ;_uu_ 4        \        P                  \        08X  g   Q h RRR4       V ! 4       ;_uu_ 4        \	        4       P                  \        4       8X  g   Q h RRR4       V ! 4       ;_uu_ 4        \        ^4      P                  \        ^4      08X  g   Q h RRR4       V ! 4       ;_uu_ 4        \        R\        4      P                  \        R\        4      08X  g   Q h RRR4       V ! 4       ;_uu_ 4        \        \        \        ^ 4      P                  \        4       8X  g   Q h RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r   warns_deprecated_sympyNr  )	sympy.testing.pytestr  rZ   expr_free_symbolsr   r  r&   rP   r   r  s    rk   
test_21494r    s   ;		!	!""qc))) 
" 
 	!	!w((CE111 
" 
 	!	!t%%!A$/// 
" 
 	!	!sA00WS!_4EEEE 
" 
 	!	!Aq!}..#%777 
"	! 
"	!	! 
"	! 
"	! 
"	! 
"	!	!s;   E	$E'E01F/F	E	E-	0F 	F	F'	c                  2    \         \        ^4      8w  g   Q hR# r  )rZ   r  r   ro   rk    test_Expr__eq__iterable_handlingr    s    a==ro   c                      R P                  \        P                  4      R8X  g   Q hRP                  \        ^4      4      R8X  g   Q hRP                  \        4      R8X  g   Q hRP                  \	        \        ^4      4      4      R8X  g   Q hR# )	z{:1.2f}z0.00z{:+3.0f}z +3z	{:23.20f}z 3.14159265358979323846z	{:50.48f}z22.319776824715853173956590377503266813254904772376N)formatr&   rC  r   r/   r7   r   ro   rk   test_formatr    sx    AFF#v---QqT"e+++b!%>>>>c#a&k*.bbbbro   c                  6   \        \        \        4      \        \        ,          \        \        ,          ,
          \        R 4      \        ,          \        ,          \        R 4      \        ,          \        ,          ,
          ,          ,          4      '       g   Q hR# )r  N)rI   r/   rT   rV   rU   r   r   ro   rk   test_issue_24045r    sJ    3q6AaC!A#Ic
1QsAa(GHIJJJJro   c                     \        R RR7      w  r\        \        W\        ^4      V 4      P                  ^\        WV 38X  g   Q h\        \        ) V ,          V,          \        ^4      V 4      P                  R\        WV 38X  g   Q hR# )zA BFr  Nr{  )r)   r   rZ   r&   r  )r  r  s     rk   test__unevaluated_Mulr  	  so    5e,DAAqQqT1-22q!Q1oEEEQBqDFAaD!,11b!Q15EEEEro   c                  Z    \        R 4      P                  ^4      \        ^ 4      8X  g   Q hR# )z1.7567e-1417N)r   rB  r   ro   rk   test_Float_zero_division_errorr  	  s$     &&r*eAh666ro   N(  sympy.assumptions.refiner   sympy.concrete.summationsr   sympy.core.addr   sympy.core.basicr   sympy.core.containersr   sympy.core.exprr   r	   r
   r   sympy.core.functionr   r   r   r   r   r   r   sympy.core.mulr   r   sympy.core.numbersr   r   r   r   r   r   r   r   r   r   r   r    sympy.core.powerr!   rT  r"   r#   r$   r%   sympy.core.singletonr&   sympy.core.sortingr'   sympy.core.symbolr(   r)   r*   r+   sympy.core.sympifyr,   (sympy.functions.combinatorial.factorialsr-   &sympy.functions.elementary.exponentialr.   r/   r0   %sympy.functions.elementary.hyperbolicr1   r2   (sympy.functions.elementary.miscellaneousr3   r4   $sympy.functions.elementary.piecewiser5   (sympy.functions.elementary.trigonometricr6   r7   r8   'sympy.functions.special.delta_functionsr9   r:   'sympy.functions.special.error_functionsr;   'sympy.functions.special.gamma_functionsr<   sympy.integrals.integralsr=   r>   sympy.physics.secondquantr?   sympy.polys.partfracr@   sympy.polys.polytoolsrA   rB   rC   sympy.polys.rationaltoolsrD   sympy.series.orderrE   sympy.sets.setsrF   sympy.simplify.combsimprG   sympy.simplify.gammasimprH   sympy.simplify.powsimprI   sympy.simplify.radsimprJ   rK   sympy.simplify.ratsimprL   r=  rM   rN   sympy.simplify.trigsimprO   sympy.tensor.indexedrP   rt  rQ   r  rR   rS   	sympy.abcrT   rU   rV   rW   rX   rY   rZ   r[   r\   r  r  ri  r`   r   r   i5f1_1powrq  r   r   r   r   r   r  r   r  rO  rX  rd  rr  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  rB  rG  r[  rb  re  rg  rk  rm  ro  rq  ru  rx  rz  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  r8  r?  ra  rh  rl  ro  rr  rt  rv  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   ro   rk   <module>r     s   + )  " ' * * * 02 2 2 2   0 0 " / : : & > F F < > : B B 6 9 9 / & 6 6 .   % , . * 3 * 7 , ( % . / / / 'x
(1aC CL ;  Tv QK	%L1IaK
 	 
E, E,P	eX 	
 	E 	
X0v+  Z	.A	&I8 
1
@
0C	P*Z.5b4:4:=$	11-,A1h."7<r  
<9~*E<&*<"."," & $C( B*@*1(Y-x7O5d*+9,
;+S.,2$4**(-*1,0,
"
=&1$(9V0"QDF
-E
1*<,@<~7R)j.2
.A&
( # #
0!
%#
/S
<
 $,8&cKF7ro   