
    wg D                    	   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZmZmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lmZm Z m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@ d dlAmBZB d dlCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ d dlRmSZSmTZTmUZUmVZV d dlWmXZX d dlYmZZ[ d dl\m]Z] d dl^m_Z_ d dl`maZa d dlbmcZc d dldmeZe d dlfmgZgmhZh d dlimjZjmkZkmlZlmmZmmnZnmoZompZp d dlqmrZr d dlsmtZt d dlumvZv d dlwmxZxmyZymzZzm{Z{m|Z|m}Z} d d l~mZ d d!lmZ d d"lmZ d d#lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d d$lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d% Zd& Zd' Ze}d(        Zd) Zd* Zd+ Zd, Zd- Zexd.        Zd/ Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zexd:        Ze{d;        Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZdE ZdF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW Ze}dX        ZdY ZdZ Zd[ Zd\ Zd] Zd^ Zexd_        Zexd`        Zexda        Ze}db        Ze}dc        Zdd Zde Zexdf        Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq Z dr Zds Zdt Zdu Zdv Zdw Zexdx        Zdy Zdz Z	d{ Z
d| Zd} Zd~ Zexd        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z e|d      d        Z e|d      d        Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*exd        Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd ZEd ZFd ZGd ZHd ZId ZJd ZKd ZLd ZMd ZNd ZOdÄ ZPexdĄ        ZQdń ZRdƄ ZSdǄ ZTexdȄ        ZUexdɄ        ZVdʄ ZWd˄ ZXd̄ ZYexd̈́        ZZd΄ Z[dτ Z\dЄ Z]dф Z^d҄ Z_dӄ Z`dԄ ZadՄ Zbdք Zcdׄ Zdd؄ Zedل Zfdڄ Zgdۄ Zhd܄ Zid݄ Zjdބ Zkd߄ Zld Zmd Znd Zod Zpd Zqd Zrd Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z|y)    isclose)stationary_points)Tuple)FunctionLambdanfloatdiff)Mod)EIRationaloopiInteger	all_close)EqGtNeGe)S)ordered)DummySymbolsymbolssympify)Absargimresign	conjugate)LambertWexplog)HyperbolicFunctionsinhcoshtanhcothsechcschasinhacoshatanhacothasechacsch)sqrtMinMax)	Piecewise)TrigonometricFunctionacosacotacscasecasinatanatan2coscotcscsecsintan)erferfcerfcinverfinv)And)MutableDenseMatrix)ImmutableDenseMatrix)Poly)CRootOf)Contains)ConditionSet)ImageSetRange)
Complement	FiniteSetIntersectionIntervalUnionimageset
ProductSet)simplify)Indexed)numbered_symbols)XFAILraisesskipslowSKIP_both_exp_pow)verify_numerically)cm)solve)solveset_realdomain_checksolveset_complexlinear_eq_to_matrixlinsolve_is_function_class_equationinvert_realinvert_complex_invert_trig_hyp_realsolvesetsolve_decompositionsubstitutionnonlinsolvesolvify_is_finite_with_finite_vars
_transolve_is_exponential_solve_exponential_is_logarithmic_is_lambert_solve_logarithm_term_factors_is_modularNonlinearError)abcdefghijklmnqrtwxyzc                     t        |       t        t        fv rt        d t	        | |      D              S | |k(  xs  | j
                  |      S )Nc              3   :   K   | ]  \  }}t        ||        y wN)dumeq).0r   r   s      f/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/solvers/tests/test_solveset.py	<genexpr>zdumeq.<locals>.<genexpr>:   s     541a5A;5   )typelisttupleallzipdummy_eq)r   r   s     r   r   r   8   sB    Aw4-53q!95556"ZQZZ]"    c                     t        |       } t        |      }t        | t              sJ t        |t              sJ t        |       t        |      k(  sJ t	        d t        | |      D              sJ y)z2Test solutions with floats from solveset are closec              3   :   K   | ]  \  }}t        ||        y wr   r   r   v1v2s      r   r   z"assert_close_ss.<locals>.<genexpr>E   s     =62rwr2=r   N)r   
isinstancerT   lenr   r   )sol1sol2s     r   assert_close_ssr   >   sd    4=D4=DdI&&&dI&&&t9D	!!!=St_====r   c                 @   t        |       } t        |      }t        | t              sJ t        |t              sJ t        |       t        |      k(  sJ t	        | |      D ]<  \  }}t        |      t        |      k(  sJ t        d t	        ||      D              r<J  y)z5Test solutions with floats from nonlinsolve are closec              3   :   K   | ]  \  }}t        ||        y wr   r   r   s      r   r   z"assert_close_nl.<locals>.<genexpr>Q   s     =vr272r?=r   N)r   r   rT   r   r   r   )r   r   s1s2s       r   assert_close_nlr   H   s    4=D4=DdI&&&dI&&&t9D	!!!dD/ >B2w#b'!!!=R====>r   c                  "   t        dd      t        j                  fd} t        t	              t
               | t        t        t
                          fk(  sJ t        dd      t        dd      }t        dz         t        dz
        fk(  sJ t        dz        t        dz        fk(  sJ t        t	                    t        t                    fk(  sJ t        t	        dz              t        t              dz        fk(  sJ t        t	        dz               t        t              dz
        fk(  sJ t        t	              dz          | t        t        dz
                    fk(  sJ t        t	              dz        t        t        dz              fk(  sJ t        t                    t        t	                    fk(  sJ t        t        dz              t        t	              dz        fk(  sJ t        t        dz               t        t	              dz
        fk(  sJ t        t                    t               fk(  sJ t        d	z        t        t              t        d	      z        fk(  sJ t        d	t	              z         | t        t        t              t        d	      z                    fk(  sJ t        d	z        t        t              t                     fk(  sJ t        t        j                  z        t        d	z        fk(  sJ t        t        fd
       t        t        z        t        dt        z  z        fk(  sJ t        t        z  t               t        j                  fk(  sJ t        t!        d      z  d      t        d      fk(  sJ t        dz  d      dz  t        d      fk(  sJ t        t        fd       t        dz  z         dz  z   t              fk(  sJ dz  z   }t        dz
   dz
        }t        t        dz  z   dz               ||fk(  sJ t#        t        t%                    t'        t        d      k  t        d      k  z  t)        t+        t-        |d	|z  t        z  t/              z         t        j0                        t+        t-        |t        d	z  |z  t        z   t/              z
        t        j0                                    f      sJ t#        t        t%        t	                          t'        t        d      k  t        d      k  z  t)        t+        t-        |t        d	|z  t        z  t/              z               t        j0                        t+        t-        |t        t        d	z  |z  t        z   t/              z
              t        j0                                    f      sJ t#        t        t3                    t'        t        d      k  t4        k  z  t4         k  t        d      k  z  z  t)        t+        t-        |d	|z  t        z  t7              z         t        j0                        t+        t-        |d	|z  t        z  t7              z
  t        z         t        j0                                    f      sJ t#        t        t3        t	                          t'        t        d      k  t4        k  z  t4         k  t        d      k  z  z  t)        t+        t-        |t        d	|z  t        z  t7              z               t        j0                        t+        t-        |t        d	|z  t        z  t7              z
  t        z               t        j0                                    f      sJ t#        t        t9                    t'        t        d      k  t        d      k  z  t)        t+        t-        |d	|z  t        z  t;              z         t        j0                        t+        t-        |d	|z  t        z  t;              z
        t        j0                                    f      sJ t#        t        t9        t	                          t'        t        d      k  t        d      k  z  t)        t+        t-        |t        d	|z  t        z  t;              z               t        j0                        t+        t-        |t        d	|z  t        z  t;              z
              t        j0                                    f      sJ t#        t        t=                    t'        t        d      k  t4        k  z  t4         k  t        d      k  z  z  t)        t+        t-        |d	|z  t        z  t?              z         t        j0                        t+        t-        |d	|z  t        z  t?              z
        t        j0                                    f      sJ t#        t        t=        t	                          t'        t        d      k  t4        k  z  t4         k  t        d      k  z  z  t)        t+        t-        |t        d	|z  t        z  t?              z
              t        j0                        t+        t-        |t        d	|z  t        z  t?              z               t        j0                                    f      sJ t#        t        tA                    t'        t4         k  t4        k  z  t+        t-        ||t        z  tC              z         t        j0                              f      sJ t#        t        tA        t	                          t'        t4         k  t4        k  z  t+        t-        |t        |t        z  tC              z               t        j0                              f      sJ t#        t        tE                    t'        t4         k  t4        k  z  t+        t-        ||t        z  tG              z         t        j0                              f      sJ t#        t        tE        t	                          t'        t4         k  t4        k  z  t+        t-        |t        |t        z  tG              z               t        j0                              f      sJ t#        t        tA        tA                          t'        tI        tA        tA                          t        j                        f      sJ t        dd      t        t        z        t        dt        z  z        fk(  sJ t        dd      }t        dd      }t        tK              |      t        tM        |            fk(  sJ t        tK        t                    |      t        t	        tM        |                  fk(  sJ t        tO              |      tQ        t        tS        |       tS        |            t        j                        fk(  sJ t        tO              |dz         t        tS        |dz          tS        |dz               fk(  sJ t        tU              |      tQ        t        tW        |            t        j                        fk(  sJ t        tY              |dz         t        t[        |dz               fk(  sJ t        t]              |      tQ        t        t_        |       t_        |            t        j                        fk(  sJ t        ta              |      t        tc        |            fk(  sJ t#        t        tU        t%                    |      t'        t        d      tW        |      k  tW        |      t        d      k  z  t)        t+        t-        |d	|z  t        z  t/        tW        |            z         t        j0                        t+        t-        |d	|z  t        z  t/        tW        |            z
  t        z         t        j0                                    f      sJ y )Nr   Trealc                     t        ||       S r   )rU   )r   ss     r   irealztest_invert_real.<locals>.irealX   s    Aq!!r   r   positiver         c                      t                 S r   )rl   r   s   r   <lambda>z"test_invert_real.<locals>.<lambda>u   s    {1a3 r      g      ?  d         ?c                  :    t        t        j                         S r   )rl   r   Oner   r   s   r   r   z"test_invert_real.<locals>.<lambda>}   s    {155!Q7 r      r   p)2r   r   Realsrl   r%   r   rT   r&   r   r4   Halfr^   
ValueErrorr   r   EmptySetr   r   rD   rP   rW   rQ   r   r=   IntegersrB   r   r;   r@   r9   rC   r<   rE   r>   rA   r:   r   r(   r.   r)   rU   r/   r*   r0   r+   r1   r,   r2   r-   r3   )r   r   lhsbase_valuesr   r   r   r   s         @@r   test_invert_realr   T   s   sA77 " s1vq!$E)CF2C,D(EEEEsT"AsAq1ua#9QU+;'<<<<qsAq!a1q5)9%::::s1vq!$Ic!f,=(>>>>s1Q3xA&1iA
.C*DDDDs1q5z1a(Q	#a&1*0E,FFFFs1vz1a(QiAE
6K0L,MMMMs1vaxA&1iAE
.C*DDDDs1vq!$Ic!f,=(>>>>s1Q3xA&1iA
.C*DDDDs1q5z1a(Q	#a&1*0E,FFFFs1vq!$Ia!,<(====q!tQ"q)CF3q6M*B&CCCCq#a&y!Q'AuYs3q6#a&=?Q5R/S+TTTTq!tQ"q)DGd1gX*F&GGGGq!&&y!Q'AyA+????
:34 q"ua#9Q2Y+?'@@@@q"uqb!$AJJ777q(3-'q1a35HHHHq#vq!$C1(>>>>
:78q"uqy!Q'ArEAIy|+DDDD
R%!)CQUQBF+Ks1b519q=)1a0S+4FFFFSVQ*QQ2!QqT	2EVAqs2vQ/0!**=VAr!tAv{T!W45qzzB5D 	E-F G G G
 SQ[!Q/!Q2!QqT	2EVAs1Q3r6DG#345qzzBVAs2a46B;a#89:AJJG5I 	J2K L L L
 SVQ*QQ!A$!)B/bS1Wae4LM(6!QqSVd1g%56

C1Q3r6DG#3b#891::FH	I-J K K K
 SQ[!Q/!Q!A$!)B/bS1Wae4LM(6!S1R$q')9%:;QZZH3qs2vQ'7"'<#=>

KM	N2O P P P
 SVQ*QQ2!QqT	2EVAqs2vQ/0!**=VAqs2vQ/0!**=5? 	@-A B B B
 SQ[!Q/!Q2!QqT	2EVAs1Q3r6DG#345qzzBVAs1Q3r6DG#345qzzB5D 	E2F G G G
 SVQ*QQ!A$!)B/bS1Wae4LM(6!QqSVd1g%56

C1Q3r6DG#34ajjAC	D-E F F F
 SQ[!Q/!Q!A$!)B/bS1Wae4LM(6!S1R$q')9%:;QZZH3qs2vQ'7#891::FH	I2J K K K
 SVQ*QQ"qQV,VAqtd1g~.

;	=-> ? ? ? SQ[!Q/!Q"qQV,VAs1R4$q'>23QZZ@	B2C D D D SVQ*QQ"qQV,VAqtd1g~.

;	=-> ? ? ? SQ[!Q/!Q"qQV,VAs1R4$q'>23QZZ@	B2C D D D SQ[!Q/	
LBs3q6{A.89; ; ;
 	sT"Aq"ua#9Q2Y+?'@@@@sAsT"AtAw1%!YuQx-@)AAAAtCF|Q*q)CaM2J.KKKKtAw1%!\58)U1X&.1 *2 2 2 2tAwAq)a5Q<-q1u..0 0 0 0 tAw1%!\)E!H:Mqww-W)XXXXtAw!Q'Ayqs/D+EEEEtAw1%!\58)U1X&.1 *2 2 2 2tAw1%!YuQx-@)AAAAT#a&\1a01Q2%(*uQx1Q4/?@%VAqs2vU1X67DVAqs2vU1X6;<ajjICK 	L3M N N Nr   c                  H   t        d      } t        t        t              t	        ddd      t              d   j                  t        t        t        | t        |              t	        ddd            t        t        | t        |             t	        ddd                        sJ t        t        t              t        dd      t              t        t        t        t         t        d             t        t        d      t                    fk(  sJ t        t        t              t        t        j                    d      t              t        t        t#        t        j                          t              fk(  sJ t        t%        t              t'        | t        j                   | dz  z   t        j(                        t              t        t+        t-        t        d      dz         t-        t        d      dz        t-        t        d      d	z         t-        t        d      d	z              fk(  sJ t        t/        t              t        j0                  t              t        t        t        j2                  t         d
      t        j2                  d
t                    fk(  sJ y )Nr   
   r   r   r         r   )r   rn   r)   r   rR   r   rW   rQ   r   r/   r+   rV   r   r1   r*   r   r   r0   r,   rX   	Naturals0rT   r2   r-   r   openr   s    r   test_invert_trig_hyp_realr      s   c
A a%B*:A>qAJJ5E!H9%uQA758$eAr1o6L8 9 9 9 !a(2q/1=!U"uQxi (58R"8F: B; ; ; ; a(AFF7A*>Bq%-$G& & & & a(1affqslAKK*PRST	
IuQqT!V}neAaDFmeAaDFm^U1Q4PQ6]STU U U a!''15!hmmRC#X]]1b%9::< < < <r   c                     t        t        dz   t        t              t        t        t        dz
        fk(  sJ t        t        dz  t        t              t        t        t        dz        fk(  sJ t        t        dz
  dz  dt              t        t        d      fk(  sJ t	        t        t        t              t        t              t        t        t        t        t        dt        z  t        z  t        t              z   z  t        t        t                    z         t        j                        f      sJ t        t        t              t        t              t        t        t        t                    fk(  sJ t!        t"        d        t!        t"        d        t!        t"        d        t	        t        t%        t              t        t              t        t'        t)        t        t        dt        z  t        z  t        t        dt+        d      z         z  z         t        j                        t)        t        t        dt        z  t        z  t        z   t        t        dt+        d      z         z  z
        t        j                              f      sJ t	        t        t-        t              dt        z   t              t        t'        t)        t        t        dt        z  t        z  t/        dt        z         z
        t        j                        t)        t        t        dt        z  t        z  t/        dt        z         z         t        j                              f      sJ t	        t        t1        dt        z        dt              t        t)        t        t        t        t        z  dz  t        dz  z         t        j                        f      sJ t	        t        t3        t              dt        z  t              t        t)        t        t        t        t        z  t        t5        d      z  z
        t        j                        f      sJ t	        t        t7        t              dt              t        t'        t)        t        t        dt        z  t        z  t        z        t        j                        t)        t        t        dt        z  t        z  t        z  t        t        z  z         t        j                              f      sJ t	        t        t9        t              dt              t        t'        t)        t        t        dt        z  t        z  t        z  t        t        z  dz  z         t        j                        t)        t        t        dt        z  t        z  t        z  dt        z  t        z  dz  z         t        j                              f      sJ t        t;        t              dt              t        t        j<                  fk(  sJ t	        t        t;        t              t>        t              t        tA        t        tC        t>        d	      tC        t>        d      z  t)        t        t        t        t        z  t        z  tE        t>              z         t        j                              f      sJ t        tG        t              dt              t        t        j<                  fk(  sJ t	        t        tG        t              t>        t              t        tA        t        tC        t>        d	      tC        t>        d      z  t)        t        t        t        t        z  t        z  t5        t>              z         t        j                              f      sJ t	        t        tI        t              dt              t        t'        t)        t        t        dt        z  t        z  t        z  t        t        z  dz  z         t        j                        t)        t        t        dt        z  t        z  t        z  d
t        z  t        z  dz  z         t        j                              f      sJ y )Nr   r   r   r   c                  ,    t        dt        t              S Nr   )rl   r   r    r   r   r   z%test_invert_complex.<locals>.<lambda>   s    {1a3 r   c                  4    t        t        t        t              S r   rm   r   r   r   r   r   z%test_invert_complex.<locals>.<lambda>   s    ~aA6 r   c                  ,    t        t        t        d      S r   r   r   r   r   r   z%test_invert_complex.<locals>.<lambda>   s    ~aA6 r      r   r   )%rm   r   r   rT   r   r%   rX   r   r   r   r   r   r&   r   r   r   r^   r   rD   rW   rQ   r4   r@   r9   rE   rA   r1   r(   r)   r*   r   r~   rP   r   r0   r+   r,   r   r   r   test_invert_complexr      s   !a%A&1iA.>*????!A#q!$Ia!e,<(====1q51*a+9Q</@@@@A1-	
HVAq!B$q&3q6/2SQ[@A1::NOQ Q Q #a&!Q'AyQ/@+AAAA
:34
:67
:67A1-51Q3r6Ac!d1g+&6$667D1Q3r6B;3q47{+;);;<ajjI4K 0L M M M A!Q/!U1Q3r6DQK/0!**=1Q3r6DQK/0!**=6? 2@ A A A AaC!Q/!1R46BqD=)1::628 9 9 9A!Q/!1R4!E!H*,-qzz:2< = = = QA.E1Q3q58$ajj11Q3q58ad?+QZZ85: 1; < < < QA.E1Q3q58ad1f,-qzz:1Q3q58ac"fQh./<5> 1? @ @ @ $q'1a(Q

O;;;QA.Q1b	Bq!H,1Q3r6E!H,-qzz:	<1= > > > $q'1a(Q

O;;;QA.Q1b	Bq!H,1Q3r6E!H,-qzz:	<1= > > > QA.E1Q3q58ad1f,-qzz:1Q3q58ac"fQh./<5> 1? @ @ @r   c                      t        dddt        dz   z  dz  z   z  t        d      du sJ t        t        dz  t        d      du sJ t        t        t        t              du sJ t        dt        t              du sJ y )Nr   r   r   Fr   T)rg   r   r   r   r   r   test_domain_checkr     sx    11Q3!|+,a4===1a#t+++1b!U***1b!U***r   c                      t        dt        z  dz
  t        t        j                        t        j                  k(  sJ t        dt        z  dz
  t        t        j                        t        d      k(  sJ y )Nr   r   r   )ro   r   r   r   r   rT   r   r   r   test_issue_11536r     sP    AqD3J177+qzz999AqD1Ha)Yq\999r   c                     t         dz  t        dz  z   dz  t         dz  t        dz  z   dz  z   ddt         dz  z  t        dz  z   t        dz  z   z  z
  }  | j                  t               } | j                  t              } | j                  t              }t	        |||gt         t        t        g      }t        |      dk\  rt        |      dk  sJ y )Nr         )r   r   r   r
   rr   r   )r   fxfyfzsols        r   test_issue_17479r   #  s    	
A1qAqD1a4K!++a1a4!Q$A1E.FFA	B	B	B
r2rlQ1I
.Cs8q=SX^++^r   c                  X   t        d      \  } }}| dz  |dz  z   dz  | dz  |dz  z   dz  z   dd| dz  z  |dz  z   |dz  z   z  z
  }t        ||       }t        ||      }t        ||      }t        |||g| ||g      }|D ]*  \  }}	}
| |||	||
it        fd|||fD              dk(  r*J  y )Nx, y, zr   c              3   \   K   | ]#  }|j                        j                          % y wr   )subsrZ   )r   _r   s     r   r   z#test_issue_18449.<locals>.<genexpr><  s"     @aQVVAY'')@s   ),)r   r   r   )r   r
   rr   r   )r   r   r   r   r   r   r   r   xsyszsr   s              @r   test_issue_18449r   2  s    i GAq!	
A1qAqD1a4K!++a1a4!Q$A1E.FFA	aB	aB	aB
r2rlQ1I
.C NRAr1b!@BB<@@IMMMNr   c                  <   dt         z
  dz  t        t         dz
        dz
  dz  z   } t        | t         t        j                        t        d      k(  sJ t        t               dz
  dz  t        t               dz   dz  z   dt         dz  z  z
  t        d      z   } t        | t         t        j                        t        t        j                  t        dt        d      z  dz         dz  z
  t        j                  t        dt        d      z  dz         dz  z         k(  sJ y )Nr   r   r   r   )r   r4   ro   r   r   rT   r   r   s    r   test_issue_21047r   F  s    	
Q
d1q5kAo))AAq!''"il222	aQ$q'!)a'1a4/$q'9AAq!''"i	aQi!m$Q&&aQi!m1DQ1F(F'H H H Hr   c                  L   t        t        t        t              t              du sJ t        t        t        t              dz
  t              du sJ t        t        t        t              t	        t              z   t              du sJ t        t        t        t              t	        t              z   t
        z
  t              du sJ t        t        t	        t              t        t              z  t	        t              z   t              du sJ t        t        t	        t              t        t        t
        z         z  t	        t              z   t              du sJ t        t        t	        t              t        t        t
        z        z  t	        t              z   t              du sJ t        t        t
        t        t              z  dz
  t              du sJ t        t        t        t              dz  t	        t              z   dz
  t              du sJ t        t        t        t              t        z   t              du sJ t        t        t        t        dz        t              du sJ t        t        t        t        dz        t	        t              z   t              du sJ t        t        t        t              t	        t              z  t              du sJ t        t        t        t	        t                    t	        t              z   t              du sJ t        t        t        t              t              du sJ t        t        t        t              dz
  t              du sJ t        t        t        t              t        t              z   t              du sJ t        t        t        t              t        t              z   t
        z
  t              du sJ t        t        t        t              t        t              z  t        t              z   t              du sJ t        t        t        t              t        t        t
        z         z  t        t              z   t              du sJ t        t        t        t              t        t        t
        z        z  t        t              z   t              du sJ t        t        t
        t        t              z  dz
  t              du sJ t        t        t        t              dz  t        t              z   dz
  t              du sJ t        t        t        t              t        z   t              du sJ t        t        t        t        dz        t              du sJ t        t        t        t        dz        t        t              z   t              du sJ t        t        t        t              t        t              z  t              du sJ t        t        t        t        t                    t        t              z   t              du sJ y )NTr   r   F)	rk   r8   rE   r   rD   r~   r'   r*   r(   r   r   r   test_is_function_class_equationr   O  s   &'<'*1vq259: : :&'<'*1vz169=> > >&'<'*1vA;>BC C C&'<'*1vA':A?BFG G G&'<'*1vc!f}s1v'=qBEIJ J J&'<'*1vc!a%j'83q6'A1FIMN N N&'<'*1vc!A#hQ'?DGKL L L&'<'(Qx!|Q8;?@ @ @&'<'*1vqy3q6'9A'=qBEIJ J J&'<'*1vz169>? ? ?&'<'*1a4y!58=> > >&'<'*1a4y3q6'91>AFG G G&'<'*1vs1v~q:=BC C C&'<'*3q6{SV';Q@CHI I I&'9'+Aw36:; ; ;&'9'+Aw{A7:>? ? ?&'9'+Awa'8!=@DE E E&'9'+Awa'81'<aADHI I I&'9'+AwtAwa'@!EHLM M M&'9'+AwtAE{':T!W'DaILPQ Q Q&'9'+AwtAaCy'847'BAGJNO O O&'9'(ay1}a9<@A A A&'9'+AwzDG';a'?DGKL L L&'9'+Aw{A7:?@ @ @&'9'+AqDz169>? ? ?&'9'+AqDzDG';Q@CHI I I&'9'+AwQ'7<?DE E E&'9'+DG}tAw'>CFKL L Lr   c                  "    t        t        d        t        dd       t         d      t        j
                  k(  sJ t         dz
  d      t               k(  sJ t         t              t        j
                  k(  sJ t          dz        t        j
                  k(  sJ t        t         fd       t         t              t        j
                  k(  sJ t        t         fd       t        t         fd	       t        t         fd
       y )Nc                  ,    t        t        gt              S r   )rf   r   r   r   r   r   z$test_garbage_input.<locals>.<lambda>  s    }aS!4 r   r   Tr   r   r   c                      t         g       S r   )rh   r   s   r   r   z$test_garbage_input.<locals>.<lambda>  s    /Q7 r   c                  (    t         t        f       S r   )ro   r   r   s   r   r   z$test_garbage_input.<locals>.<lambda>  s    xA2 r   c                  >    t         dz   t        j                        S r   )ro   r   r   r   s   r   r   z$test_garbage_input.<locals>.<lambda>  s    xAqww7 r   c                  $    t         dz    d      S Nr   r   )ro   r   s   r   r   z$test_garbage_input.<locals>.<lambda>  s    xAq!4 r   )	r^   r   r   rf   r   r   rT   r   rh   r   s   @r   test_garbage_inputr    s    
:45sAA!**,,,Q"il222B1::---AqD!QZZ///
:78Ar"ajj000
:23
:78
:45r   c                     t        t        t        z  t        z   t	        t              dz
  z  t              t        t        d      ht        t         t        z  ht        j                              k(  sJ t        dd      } t        dd      }t        | t        z  |z   t	        t              dz
  z  t              t        | | z  t        d            k(  sJ t        dt        z  dz   dt	        t              z   z  t              t        t        d	            k(  sJ t        t        t        t              z  t              t        j                  u sJ y )
Nr   anzT)nonzerobbr   r   r   )rf   r~   r   r   r%   rW   r&   rU   r   r   r   rT   r   )r  r  s     r   test_solve_mulr
    s   !A#'CFQJ/3s1vhqbdVQWW567 7 7

%C	4	 B#a%"*s1vz2A62#c'3q6"# # #!A#'AAJ/3y27GGGG3q61%333r   c                     t        t        t              dz
  t              t        t	        d            k(  sJ t        t	        t              dz
  t              t        t        d            k(  sJ t        dt        dz   z  t              t               k(  sJ t        ddt        z
  z  t              t               k(  sJ t        t
        t        t        t        t        z        z  z
  t              t        t        j                  t        t        t	        t
        t        z        z              k(  sJ t        dt        z  dz
  t              t        dt	        d      t	        d      z  z         k(  sJ y )Nr   r   r   r   r   )rf   r%   r   rT   r&   r   r   r~   rU   r   r   r   r   r   test_solve_invertr    s   Q!Q'9SV+<<<<Q!Q'9SV+<<<<QUQ'9;666QUQ'9;666Qs1Q3xZ+|	1S1X:&0( ( ( ( AA&)AAs1v4E*FFFFr   c                     t        t        t        t              t        j
                  z
  t              t        t        t        t        t        dz  t        z  t        dz  z         t        j                        t        t        t        t        dz  t        z  t        dz  dz  z         t        j                                    sJ t        t        t              dz
  t              j                  d      } t        t        t              t        j
                  z
  t              j                  d      }| |fD cg c]  } |j                  d d        }}t        | s	J | |f       y c c}w )Nr   r   r         ?c                     | j                   S r   )is_Floatr   s    r   r   z"test_issue_25768.<locals>.<lambda>  s
     r   c                 6    t        |       j                  d      S )Nr   )r   limit_denominatorr   s    r   r   z"test_issue_25768.<locals>.<lambda>  s    !..t4 r   )r   rf   rD   r   r   r   rW   rQ   r   r   r   r   replace)n1n2r   eqs       r   test_issue_25768r    s   s1v2E2a46BqD=)1::62a46BqDF?+QZZ85: ; ; ; 
s1v|Q	'	)	)!	,B	s1v	*	,	,Q	/B ACBx
I:; !))46 
IB 
I ":r"g:
Is   6E&c                  ,   t        t        t              t        j                  z
  t              t        t        t        j                              k(  sJ t        t        t              dz
  t              t        t        d            k(  sJ t        t        t              t        j                  z
  t              t        t        t        j                              k(  sJ t        t        t              dz
  t              t        t        d            k(  sJ y Nr   )
rf   rF   r   r   r   rT   rI   rG   r   rH   r   r   r   test_errorinversesr    s    Q!&&!,&.!" " "Q*#a&  a155!,'!%%.!" " "a+ya/AAAAr   c                  L   t        dd      } t        dd      }t        d| z  dz
  |       t        t        dd            k(  sJ t        | dz  dz
  |       t        t        j
                   t        j
                        k(  sJ t        | |dz  z
  |       t        |dz        k(  sJ t        | dz  d| z  z
  d	z
  |       t        d
dt        j                  z  z   t	        d	      d
dt        j                  z  z
        k(  sJ t        t        |       dz
  |       t        d      k(  sJ t        t        |       dz
  |       t        d	      k(  sJ t        | t        dd	      z  dz
  |       t        d      k(  sJ t        | t        dd      z  dz
  |       t        d      k(  sJ t        t        | dz  | dz  z   dz   |             dk(  sJ t        t        d
| dz  z  d	| dz  z  z   d| z  z
  dz   |             dkD  sJ t        | dz  | d	z  z   t        z   |       t        j                  u sJ y )Nr   Tr   r   r   r   r      r         r   r   r   )r   rf   rT   r   r   r   r   r4   r   r   r   r   s     r   test_solve_polynomialr     s   sAsA1q!$	(1a.(AAAAA1%AEE6155)AAAAQT1%16)::::A1q!,	
Q!&&[	!
Q!&&[1   
 a1a(IaL888a1a(IaL888HQN*Q.2imCCCHQN*Q.2imCCC}QTAqD[1_a01Q666}R1WqAv-!3a7;<q@@@A1q!,

:::r   c                     t         dz  dt         dz  z  z
  dt         dz  z  z
  dt         z  z   dz   } t        t        | t                     }|D ]  }|j                  t        k(  rJ  t        t        t        t         dz  dt         dz  z  z   dz   t                     d   d	
      t	        t         dz  dt         dz  z  z   dz   d      j                         k(  sJ t        t        t         dz  dt         z  z
  dz   t                     }t        d |D              rt        |      dk(  sJ t         dz  dt         dz  z  z
  dt         dz  z  z
  dt         z  z   dz   } t        t        | t                     }|D ]  }|j                  t        k(  rJ  t         dz  dt         dz  z  z   dt         dz  z  z   t        dd      z   }t        |t               t        t        |dz  d      j                          k(  sJ t         t         dz
  dz  z  t         dz   z  t         dz  t         z
  dz   z  }t        |t               t        dddt	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      	      k(  sJ y )Nr   r  r   r   r   r      r   F)exponentr   c              3   <   K   | ]  }t        |t                y wr   )r   rN   r   r   s     r   r   z&test_return_root_of.<locals>.<genexpr>  s     3!z!W%3s   r   ZZdomainr   r   )r   r   rh   funcrN   r	   r   r   r   r   rT   rM   	all_roots)r   r   rootr   r  s        r   test_return_root_ofr,    s   	1r!Q$w1a4"Q$&+Aa#$A $yyG###$ $'1qAv(91=>qA "%,QTAadF]Q->%B%D%D%FG G G 1qs
Q2
3C3s33CAEE	1r!Q$w1a4"Q$&+Aa#$A $yyG###$ 	
1qAv!Q$!Q/AAq!4!D)33567 7 7 
AEA:q1u	q!tax!|	,BB""aGAqD1HqL!4q!tax!|Q/q!tax!|Q/q!tax!|Q/q!tax!|Q/q!tax!|Q/	11 1 1r   c                     t        t        dt        z  dz         dz
  t        z
  t              t        t        j
                   t	        d            k(  sJ t        t        t        dz
        t        z
  dz   t              t        d      k(  sJ t        t        t        dz
        dz
  t              t        d      k(  sJ t        t        t              dz
  dz
  t              t        d      k(  sJ t        t        t        d	z        t              t        d
      k(  sJ t        t        t        dz
        t              t        d      k(  sJ t        t        t        d	z
  t        z        t              t        d	      k(  sJ t        t        t        d	z
  t        z        t        dd      z
  t              t        d      k(  sJ y )Nr   r   r   r   r"  r   r  1   r   r   r   )rf   r4   r   rT   r   r   r   r   r   r   test_solveset_sqrt_1r/    sW   acAg*Q.2155&!A$     a!eq1,a0IbMAAAa!eq!,	"===a1q!,	"===adQ'9Q<777a!ea(IaL888qsAg*il:::qsAgx1~5q9!  r   c            	      P   t        dd      t        dd      } t        t        dz  dz
        t        dz
        z
  dz
        t        t	        d      t	        d	            k(  sJ t        t        d
z         dz   t        dz
        z
        t        d      k(  sJ t        t        dz  t        dz  dz
        z
        d
z
        t        d      k(  sJ dz   dz  ddz  z  z   z
  t        dd      z  z
  t              t        t        dd      t        dd            k(  sJ t        dz  dz         t        dz         z
  t        dz         z
  t              t        d      k(  sJ t        dz         t        dz  dz
        z   dt        dz
        z  z
  t              t        d      k(  sJ t              t        d
z
        z  dz
  t              t        d      k(  sJ t        dz
        t              z   dz
  t              t        d      k(  sJ t        ddz  z  d
z
        dz
  z
  t              t        t	        d       t	        d            k(  sJ t        ddz  z  dz         dz  dz   z
  t              t        d      k(  sJ t        t        dz
        t              z
  dz
        t               k(  sJ dz  dz
  t        dd      z  dz
  t              t        d      k(  sJ t        t              t        t                    z   dz
        t        t        dd      t        d      dz  z   dz        k(  sJ t              t        dz
        z
  t        t                    z   t              t               k(  sJ dz
  dz  t              dz
  dz  z   t              t        dd      k(  sJ t              t        dz         z   t        dz
        z   dt        d      z  dz  z
  t              }t	        d      }t        dd      }t        fd||fD              rSt        |      dk(  rE|D ch c]  } |j                  d       c}||fD ch c]  } |j                  d       c}k(  sJ t        t              t        dd      z  z   t        dd      z  z         t        d      k(  sJ t        t        dz  dz         z        t        d      k(  sJ | dz  z
  | dz  t        d| dz  z
        z  z  t              t        | dz        k(  sJ t        ddz   t        dd      z  z  dz
        t        t        dd            k(  sJ y c c}w c c}w )Nr   Tr   r   r   r   r   r      r"  r      r   	   r      r  r   r	  r   z-1484/375 - 4*(-S(1)/2 + sqrt(3)*I/2)*(-12459439/52734375 +
    114*sqrt(12657)/78125)**(S(1)/3) - 172564/(140625*(-S(1)/2 +
    sqrt(3)*I/2)*(-12459439/52734375 + 114*sqrt(12657)/78125)**(S(1)/3))c              3   v   K   | ]0  }t        j                  |      j                               d k   2 yw)g|=N)absr   r   )r   r   r  r   s     r   r   z'test_solveset_sqrt_2.<locals>.<genexpr>J  s,     @!s2771a=??$%-@s   69)chopi~i  )	r   rf   r4   rT   r   r   r   r   r   )r   ansrarbr   r  r   s        @@r   test_solveset_sqrt_2r<    s   sAsAacAga!e4q8!<!A$"  a!eq4A;6:"   bdT!Q$(^34q8!<!   
Q!Q$1a4-!#hq!n4	4BQ9Xb!_hr1o#NNNN	acAga!e	$tAE{	2BQ9Q<///	a!etAaC!G}	$qa!e}	4BQ9Q<///	aa!e	r	!BQ9R=000	a!etAw		"BQ9Q<///	a1fqj	QU	#BQ9adUAaD#9999 
a1fqj	QqS1W	%BQ9Q<///a!etAw.2A6)+EEE
A#'HQN	"Q	&BQ9R=000a4Q=014a88B?T"XaZ/!345 5 5 
a4A;	d1g	.BQ9;...
a%!tAw{Q&	&BQ9R#3333
q'DQK
$q1u+
-$q'	!
;B
A
C	
 L 
MB 
!QB@Bx@@CA!$%A$%"$b*A$*	++ +
 a1hq!n#44!"HQN!23457:CA,G G G 41q>)1-1===
ad(adDQTN*	+BQ9QT?222 AEHQN22Q6:(7E*+, , , 	&*s   4VV#c                      t         dz  dt         dz  z  z
  t        dd      z  dz   t         z
  } t        | t               t        t        dd            k(  sJ y )Nr   r   r   )r   r   rf   rT   r  s    r   test_solve_sqrt_failr?  \  sN     Q$1a4-(1a.	(1	,q	0BQ9Xa^#<<<<r   c                     t        d      } t        d      | z  t        d| dz   z        z  | dz   t        d      t        d| dz   z        z  dz
  z  z   }t        ||       }t        dd      dt        d      z  t	        t        dt        d      z  d	z        dz        z  dz  z   t        d       t	        t        dt        d      z  d	z        dz        z  dz  d
t        dt        dd      t        d      t        z  dz  z
  t        d	d      t        d      t        z  dz  z   t        dd      z  z  z        z  dz  z   t        d      t        t        dt        d      z  d	z        dz        z  dz  z   t        dd      z   t        t        d       t	        t        dt        d      z  d	z        dz        z  dz  t        d      t        t        dt        d      z  d	z        dz        z  dz  z
  d
t        dt        dd      t        d      t        z  dz  z
  t        d	d      t        d      t        z  dz  z   t        dd      z  z  z        z  dz  z   z  z   g}d
t        dt        dd      t        d      t        z  dz  z   t        d	d      t        d      t        z  dz  z   t        dd      z  z  z        z  dz  t        d      t	        t        dt        d      z  d	z        dz        z  dz  z
  t        d      t        t        dt        d      z  d	z        dz        z  dz  z
  t        dd      z   t        d
t        dt        dd      t        d      t        z  dz  z   t        d	d      t        d      t        z  dz  z   t        dd      z  z  z        z  dz  t        d      t        t        dt        d      z  d	z        dz        z  dz  z
  t        d      t	        t        dt        d      z  d	z        dz        z  dz  z   z  z   g}t        | }t        | t        |d      t        |       }||dhz
  |dhz
  z  k(  sJ t        t        t        z
  dz  t         dt        z  z  t        j                   z   dz  z          t        t        dz   dz  t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz         dz  z
  t        dd      z
  dz  t        dz  dz  t        z
  t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz         dz  z
  t        dd      z
  dz  z         z   }t        t        t        t        t        t        z
  dz  t         dt        z  z  t        j                   z   dz  z         t        t        dz   dz  t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz         dz  z
  t        dd      z
  dz  t        dz  dz  t        z
  t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz         dz  z
  t        dd      z
  dz  z         z
  d      t        j"                        }t%        |t              |k(  sJ y )NRr   r   r   r   r   r   o      (   r   r  r4     r   r   )r   r4   rh   r   r@   r>   r!   r   rD   r    rT   rP   r   r   r   r   r   r   rf   )rA  r  r   fsetcsetfscsunsolved_objects           r   test_solve_sqrt_3rK  d  sZ   sA	a41q5	?	"a!ed1gd1a!e9o.E.I%J	JB
2q
!CQNQtBxZD49S,A!,C(DDQFF"XIc$qc{3/12214r!hr1oQ	!3hsB6G$s)TU+VW-6WZbcdfgZh5hhijjkllmHSaS	k#o.q011!346>q!nE RyT!DI+c/21455a7BxD49S1!344Q67"Q"a4719Q;6#r9JTRUYWX[YZ]9Z]efgij]k8kklmmnoop qqrD r!hr1oQ	!3hsB6G$s)TU+VW-6WZbcdfgZh5hhijjkllHSaS	k#o.q011!346:2hs4$s)TWCXYZCZ?[6[\]6]^QN r"Q"a4719Q;6#r9JTRUYWX[YZ]9Z]efgij]k8kklmmnooBxD49S1!344Q67BxD49S1!344Q67 88 9D 
D	B	aBIt$4	5B29rd++++ AzaR1X.22
3	3dQTE!Gd	!Q$1a4!A#!G##$G% =%'/1~=689<:=>T!VaZ$adFQq!tVOac!A%K''(K) >)+3Aq>>:<==><> 7? 
?B #1bq1uqjQB!Hqvv<MPQ;Q.Q)Rq!teAgQq!tVa1f_qs2Q6799HQNJQNRSUVRVWXRX[\R\Qq!tVa1f_qs"Q&')S*,4QNS;=>R? ? 	@*@AB'DEFWWNO Q?222r   c                     t        t        dz  dz
  dz  t        z
  t              t        t	        dt	        t              z         t	        dt	        t              z          t	        dt	        t              z
        t	        dt	        t              z
               k(  sJ t        t
        t        dt        t        z  z   z  z
  t              t        t        t
        z  dz
  t        z        t        dt        z        z
  k(  sJ t        t
        t        t        z  t        t        z   z  z
  t              t        t         t
        z  t
        t        z
  z        t        t               z
  k(  sJ y )Nr   r   r   )rh   r   r~   rT   r4   r   r   r   r   r   $test_solve_polynomial_symbolic_paramrM    s   QTAXMA-q1$q47{#d1tAw;&7%7q47{#d1tAw;&7%7	99 9 9
 A1qs7OQ/1Q37A+2a401 1 1 A!QUOQ/1"Q$A,)QB-/0 0 0r   c                  J   t        dt        z  dz   t              t        t        j                         k(  sJ t        dt        t              z  dz
  t              t        d      k(  sJ t        t        ddt        z  z
  z  t              t        d      k(  sJ t        dt        z  t        dz   z  dz
  t              t        d      k(  sJ t        t        dz  dt        z
  z  j                  t              t              t        t        j                  t        d            k(  sJ y )Nr   r   r   r   r"     )rf   r   rT   r   r   r%   r
   Zeror   r   r   test_solve_rationalrQ    s    1q!$	155&(99993q6Aq)Yq\999A!Ga(IaL8881a!eq!,	!<<<!Q$A,,,Q/3!&&!B% ! ! !r   c                  `    t        t        d      dz   t              t        j                  u sJ y r   )rf   r4   r   r   r   r   r   r   test_solveset_real_gen_is_powrS    s#    a1a(AJJ666r   c                  b   t        dt        t        z  z
        t        j                  u sJ t        t        t        z  t              t        j                  u sJ t        t        t        z  t        z
  t              t        j                  u sJ t        dt              t        j                  u sJ t        t        t              t              t        j                  u sJ t        t        dz  dz   t              t        j                  u sJ t        dt        z  t        t              z  t              t        j                  u sJ t        dt        z  t              t        j                  u sJ t        dt        z    dt        z   dz  z  ddt        z   z  z   t              t        j                  u sJ y )Nr   r   r   r   )	ro   r   r   r   r   rf   r%   r~   r4   r   r   r   test_no_solrU    s:   A1H+++BqD!

***BqD2Iq!QZZ///A!**,,,Q#qzz111A1%333Ad1gq)QZZ7771a AJJ...1q51q51*,q!a%y8! 
ZZ  r   c                  (   t        dt              t        j                  k(  sJ t	        dt        t        dd            t        dd      k(  sJ t        t        dz   dt        z  z
  t        dz   dz  z   dz
  t              t        j                  k(  sJ y )Nr   r   r   )rf   r   r   r   ro   rV   r   r   r   test_sol_zero_realrW    sw    A!'')))Aq(1a.)Xa^;;;!Q$1Az1A5q9QWWDDDr   c                      t        t        t        dz   z  dz   dz  t              t        j                  u sJ t        t        dz
  ddt        dz
  z  z   z  t              t        j                  u sJ y )Nr   r   r  )rf   r   r   r   r   r   r    test_no_sol_rational_extragenousrY    sZ    !QU)a-2.2ajj@@@!a%!aQi-0!4

BBBr   c                  4   t        t        t              dz
  t              t        d      k(  sJ t        t        t              dz
  t              t        d      k(  sJ t        t        t	        dd      z  dz
  t              t        d      k(  sJ t        t        t	        dd      z  dz
  t              t        d      k(  sJ t        t        t        t
        j                  dz  z  dz
  z  t              t        t
        j                  t        d            k(  sJ y)z
    Test for solving on equations that can be converted to
    a polynomial equation using the change of variable y -> x**Rational(p, q)
    r   r   r   r  r   r  N)rf   r4   r   rT   r   r   r   rP  r   r   r   test_solve_polynomial_cv_1ar[    s    
 a1a(IaL888a1a(IaL888HQN*Q.2imCCCHQN*Q.2imCCCA	NQ./3!&&!B% ! ! !r   c            	          t        dd      } t        dd      }t        | |dz  z
  |dz  t        d|dz  z
        z  z  |       t        |dz        k(  sJ t        d| z  | dz   z  dz
  |       t        d      k(  sJ y)	z)Test solveset_real for rational functionsr   Tr   r   r   r   r   N)r   rf   r4   rT   r   s     r   test_solveset_real_rationalr]    s    sAsA!ad(1d1q!t8n'<=qAQT?   1a!eq!,	!<<<r   c                      t        t        t        dz
  t        dz   z        t              t        t	        d      t	        d             k(  sJ y r  )rf   r&   r   rT   r4   r   r   r   test_solveset_real_logr_    s@    acAaC[)1-$q'DG8$% % %r   c                      t        ddt        dz  z  dt        z  z   z  dz
  t              t        t        dd      t        j
                        k(  sJ y )Nr   r   r   r   )rf   r   rT   r   r   r   r   r   r   test_poly_gensra    sI    Q1X!^,q0!4(2q/166*+ + +r   c                     t        d      } t        t        d        t        t	        t
              | z
  t
        t        j                        j                  t        t
        t        | t        dt                    |  | h            sJ t        t	        t
              dz
  t
              t        dd      k(  sJ t        t	        t
              dz   t
              t        j                  u sJ t        t	        t
        dz         dt	        t
        dz
        z  z
  t
              t        dd      k(  sJ t        dt	        t
              z  t	        t
        dz
        z
  t
              t        d	t!        dd            k(  sJ t        t
        t#        t        t$        t        dt                    t        t&        t$        z   t        dt                    t        t&        t$        z
  t        dt                          t        t&         t$        z
  dz
  t&         t$        z   dz
  t&        t$        z
  dz
  t&        t$        z   dz
              }t	        t	        t
        dz         t&        z
        t$        z
  }t)        |dt
              d   |k(  sJ t&        dt$        di}|j+                  |      }|j+                  |      D ]  }|j+                  t
        |      sJ  t-        t        t/        t1        t	        t
                    d      t
        t        j                  
      t3        t5        t        dt              t3        t5        t7        t9        | d| z  t:        z  dt:        z  dz  z         t        j<                        t        t         d            t5        t7        t9        | d| z  t:        z  t:        dz  z         t        j<                        t        dt                                            sJ y )Nr   c                  B    t        t        t              dz
  t              S r   ro   r   r   r   r   r   r   z test_solve_abs.<locals>.<lambda>  s    xA
A6 r   r   r   r  r   r   r4  r   r'  )r   r^   r   ro   r   r   r   r   r   rP   rO   rV   r   rf   rT   r   r   rJ   r   r~   rl   r   r   r   rD   rW   rU   rQ   r   r   r   )r   r   r  repseqabsis         r   test_solve_absrh    s   c
A
:67CFQJ177+44QHQO4r1g>@ @ @Q!Q'9R+;;;;Q!Q'1::555QUaAE
l2A6!Q  3q6CAJ.2"hq!n%& & & HQO,QB0QB02 qb1fqj1"q&1*a!eaiQCEC 
SQZ!^	q	 Br1a #s***q!Q<D774=Dhhtn $99Q###$"SQ[!,a@%Xa_eXfQ!B2a8!**EbS!	XfQ!BA6

CQO	' 	C  ! ! !r   c                     t        t        t        t              dz  dt        t              z  z
  dz   t              t	        t        t        dt        z  t        z  t        dz  z         t        j                              sJ t        t        t        t              dz  dt        t              z  z
  dz   t              t	        t        t        dt        z  t        z        t        j                              sJ y Nr   r   )r   ro   rD   r   rQ   r   r   r   r   r   r@   r   r   r   test_issue_9824rk    s    #a&!)aAh.2A61Q3r6TVWXTX=AY[\[e[e8fggg#a&!)aAh.2A61Q3r6ARTUT^T^8_```r   c                      t        t        t        dz
  t        dz
  z        t        dd      k  t              t	        dd      k(  sJ y )Nr   r   r   r   r   )rf   r   r   r   rV   r   r   r   test_issue_9565rm     s;    a!ea!e_-!Q?CxPRTUVVVr   c                      t        dt        dz
  z        dz
  dkD  } t        | t              t        t	        j
                  dd      t	        j
                  dd            k(  sJ y )Nr   r   r   )r7  r   rf   rW   rV   r   r>  s    r   test_issue_10069ro    sX    	QAY!	a	BQ5aX]]1a0$2 2 2 2r   c                  *   t        dd      \  } }t        t        | dz  |dz  z
        dz
  |       t        t        |dz  dz          t        |dz  dz               k(  sJ t        t        | dz  |dz  z         dz
  |       t        j
                  k7  sJ y )Nza bTr   r   r   r4  )r   rf   r4   rT   r   r   r~   r   s     r   test_real_imag_splittingrr  
  s    5t$DAqadQTk*Q.241q>/41q>23 3 3adQTk*Q.2	

  r   c                  v    t        dt        z  ddt        z  z  z
  t              t        dt        z        k(  sJ y r  )rf   r   rd   rT   r   r   r   
test_unitsrt    s/    1q!B$x+y2>>>r   c            	         t        dd      } t        t        t              | z
  t              t	        t        |             k(  sJ t        t        t              t        t               z   dz
  t              t	        t        t        d       dz         t        t        d      dz               k(  sJ t        t        t              t        t               z   | z
  t              t        j                  k7  sJ y )Nr   Tr   r   r   r   )	r   rf   r%   r   rT   r&   r4   r   r   r   s    r   test_solve_only_exp_1rw    s    sT"AQ!Q'9SV+<<<<Q#qb')A-q1#tAwhl#Sa1%567 7 7Q#qb')A-q1QZZ???r   c                      t        t        t        d      t        dz  z
  t              t	        dt        d      z        k(  sJ y Nr   r   )rf   r?   r   r   rT   r4   r   r   r   
test_atan2rz    s5     q!r!t+Q/9QtAwY3GGGGr   c            
      <   t        t        dz
  t        t        d      fdt        z
  df      dz
  } t        t	        | t                    t        t        dd            k(  sJ t        t        dz
  dt        dz
  k  fdt        z
  dt        dz
  kD  f      }t        dd      }t	        ||z
  t              t        | dz   |dz         k(  sJ t        t        dz
  dz  t        dk\  fd	      }t        |t        t        j                  
      t        t        d      t        t         ddd            k(  sJ t        t        t        dz   t        dkD  ft        df      t        z
  t        t        j                        t        t         d      k(  sJ t        t        t        dz
  t        t        t              ft        df      t              t        d      k(  sJ t        dt        dkD  fd	      }t        |dkD  t        t        j                        t        j                  dt              k(  sJ ddlm}  |       }t        |t        t        dd      
      t        dd      k(  sJ t        dt%        t        d      ft        dz  t'        t              z  df      }t        dt%        t        t(              ft        t(        z
  t+        t              z  df      }t        |t        t        j                  
      t        d      k(  sJ t        |      t        t(              k(  sJ y )Nr   Tr   r   r   r   r   r   r   Tr'  r   r   )BooleanTruer   )r7   r   r   setrf   rT   r   ro   r   r   rW   rV   r   r   r   r   sympy.logic.boolalgr}  r   r   r   rD   )r  absxm3r   r   r   r}  s         r   test_piecewise_solvesetr  $  s   	AE2a8$q1udm	4q	8B}R#$Ib!,<(====	
QQU
	
QAE	F 	sT"A!Q'9aR!VQU+CCCCAEA:qAv&	2AAq)U9Q<2#qRVX\A]-^^^^1q5!a%.1d),q0!QWW
rc1   Iq1ubAh/!T;Q?9Q<OOO 	1a"f+y)AAE1agg&(--B*????/AAq"b!12hr26FFFF 	1bAh-!Q$s1v+t!45A1bBi.AFCF?D"9:AAq)Yq\999A;)B-'''r   c                     t        t        t        dz  z  t        t        z  z   t        z   t              t        t         dt        z  z  t        dt        z  t        z  t        dz  z         dt        z  z  z
  t         dt        z  z  t        dt        z  t        z  t        dz  z         dt        z  z  z         k(  sJ t        t        t        dz  z
  t              t        t        t        dd      z   dz  t        t        d      z  t        t        dd      z  z  dz  z   t        t        dd      z  t        t        dd      z   dz  t        t        d      z  t        t        dd      z  z  dz  z
        k(  sJ t        t        dt        z  z   dz
  t              t        t        j                  t        t        d      z  dz  z   t        j                  t        t        d      z  dz  z
        k(  sJ y )Nr   r	  r   r   )rh   r~   r   r   r   rT   r4   r   r   r   r   r   r   r   r    test_solveset_complex_polynomialr  F  s   AadFQqSL1,a01"ac(T"Q$q&1a4-0!A#66"ac(T"Q$q&1a4-0!A#66	88 8 8 A1Ha(I
Xa^
	Q471hq!n+<!<Q!>>	8Aq>
Xa^
	Q471hq!n+<!<Q!>>-@ @ @ @
 A!GaK+!&&1T!W9Q;&471(<=> > >r   c                  H    t        dt              t        j                  u sJ y Nr   )rh   r   r   	Complexesr   r   r   test_sol_zero_complexr  T  s    Aq!Q[[000r   c            	         t        t        dz
  t        t        z
  z  t        dz
  z  t              t        dt              k(  sJ t        t        t        dz  z
  t        dz  t        dt        dz  z
        z  z  t              t        t        dz        k(  sJ t        t        dz   t        z
  t              t        t        d       dz  t        d      t        z  dz  z   t        d      dz  t        d      t        z  dz  z
        k(  sJ y Nr   r   r   )rh   r   r   rT   r   r4   r   r   r   test_solveset_complex_rationalr  X  s    QUQUOQU3Q7!Q   QAXAtA1H~(=>B!Q$  QTEAIq)47(1*tAwqy{*DGAIQ	!,CDE E Er   c                     t        d       t        dz  dt        dz  z  z
  dt        dz  z  z
  dt        z  z   dz   } t        | t              }|D ]C  } | j                  t        |j	                               j	                         }t        |d	      rCJ  t        dz  d
t        z  z   dz   } t        | t              }|D ]C  } | j                  t        |j	                               j	                         }t        |d	      rCJ  y )NzThis test is too slowr   n   r   7   r   i	  i  r   r  r5  )r_   r   rh   r   r   tn)r   r   r+  ress       r   test_solve_quinticsr  b  s    	 !	1s1a4x"QT'!DF*S0AAA affQ!##%#qzz 	
1r!tbAAA affQ!##%#qzzr   c                  
   t        t        t        t              dz
  t              t	        t        t        t        dz  t        z  t        z        t        j                              sJ t        t        t        t              t        z
  t              t	        t        t        t        dt        z  t        z  t        dz  z   z        t        j                              sJ t        dt        t              z  t              t        j                  k(  sJ t        t        t        t              j                  t              t              t	        t        t        t        t        z  t        z        t        j                              sJ y r  )r   rh   r%   r   rX   r   r   r   r   r   r   r   r(   rewriter   r   r   test_solveset_complex_expr  q  s    !#a&1*a01Q3q58$ajj13 3 3!#a&1*a01ac"fr!tm,-qzz:< < <Ac!fHa(AJJ666!$q'//#"6:1R46"AJJ/1 1 1r   c            
      h   t        t        dt        z  d      t        t        j                        t        d      k(  sJ t        t        dt        z   d      t        t        j                        t        j                  k(  sJ t        t        dt        z  d      t        t        j                        t        j                  k(  sJ t        t        dt        dz   z  d      t        t        j                        t        d	      k(  sJ t        t        dt        d	z
  z  d
      t        t        j                        t        j                  k(  sJ t        t        dt        d	z
  z  d      t        t        j                        t        d      k(  sJ t        t        dt        z  t              t        t        j                        t        t        j                  t        t        t              t        d      z              k(  sJ t        ddt        z  z  dz
  dt              t        t        d      fk(  sJ y )Nr  r   r   r   r  r   r   iq  r   lxpEA *   r  r   )ro   r   r   r   r   rT   r   r   rU   r&   rl   r   r   r   test_solveset_real_expr  {  s~   BQwNAqww/9Q<???B1uaL!QWW-;;;BQwOQ0AJJ>>>Bac{C(!QWW51EEEBq1Q3x%q!''2ajj@@@Ba!e}f-q!'':imKKKBq!tQKAGG,QWWiPSTUPVWZ[\W]P]F^0____ac{R'A.1il2CCCCr   c            	      4   t        t        t              t              t        d      k(  sJ t        dt        t        dt        dz  z  z         z
  t              t        t        t         t        z          dz  t        t         t        z         dz        k(  sJ y )Nr   r   r   )rh   r&   r   rT   r~   r4   r   r   r   r   test_solve_complex_logr    su    CFA&)A,666AA!Q$J/34Q<-/4Q<>23 3 3r   c                     t        t        dt        z  dz         dz
  t        z
  t              t        t        j
                   t	        d            k(  sJ t        t        dt        z  dz         ddt        z  z   z
  t        z
  t              t        t	        d       ddt        z  z
        k(  sJ t        dt        z  dt        t        t              z  z
  z  t              t        t        j                  dt        dz  z        k(  sJ y )Nr   r   r   r   r   r   )	rh   r4   r   rT   r   r   r   r~   rP  r   r   r   test_solve_complex_sqrtr    s    D1qMA-115155&!A$     D1qMQ1W591=1Q4%QqS!" " "AaCQa[115!&&!a1f*%& & &r   c                  ^   t        t        t              j                  t              t              } t        | t        t        t        t        t        z        t        j                        t        t        t        t        t        z  t        dz  z         t        j                        z
        sJ y r  )rh   rE   r   r  r%   r   rX   r   r   r   r   r   )r   s    r   test_solveset_complex_tanr    sl    Q,a0AHVAr!t_ajj92a4"Q$;'45 6 6 6r   c                  #   t        t        t        t              t              t	        t        t        t        dt        z  t        z        t        j                        t        t        t        dt        z  t        z  t        z         t        j                                    sJ t        t        t        t              dz
  t              t        t        t        dt        z  t        z  t        dz  z         t        j                              sJ t        t        t        t              t              t	        t        t        t        dt        z  t        z  t        dz  z         t        j                        t        t        t        dt        z  t        z  t        t        dd      z  z         t        j                                    sJ t        t        t        t              t        t              z   t              t	        t        t        t        dt        z  t        z  t        t        dd      z  z         t        j                        t        t        t        dt        z  t        z  t        t        dd      z  z         t        j                                    sJ t        t        t              dz  t        t              dz  z   t              t        j                  k(  sJ t        t        t        t              t        j                  z
  t              t	        t        t        t        dt        z  t        z  t        t        dd      z  z         t        j                        t        t        t        dt        z  t        z  t        dz  z         t        j                                    sJ t        t!        t        t"        t$        z         t        t"              z
  t$        t        j&                        t)        t$        t        d      t        t"              k  t        t"              t        d      k  z  t	        t+        t        t        dt        z  t        z  t"        z
  t-        t        t"                    z         t        j                        t+        t        t        dt        z  t        z  t"        z
  t-        t        t"                    z
  t        z         t        j                                          sJ t        t        t        dt        z        t        t              z  t        dt        z        t        t              z  z   dz
  t              t+        t        t        t        t        z  t        dd      z  t        d	z  z         t        j                              sJ t        t        dt/        t              z  t        t              z  dz   t              t	        t+        t        t        dt        z  t        z  t1        t3        d      t3        dt3        d
      z         z  dt3        d
      z
  z        z   t        z         t        j                        t+        t        t        dt        z  t        z  t1        t3        d      t3        dt3        d
      z         z  dt3        d
      z
  z        z
  t        z         t        j                                    sJ t        t        t        dt        z        t        dt        z        z  dz
  t              t+        t        t        t        t        z        t        j                              sJ t        t!        t        t        dz        t        dd      z         t	        t+        t        t        dt        z  t        z  dt-        t        d      dz        z  z
  dt        z  z         t        j                        t+        t        t        dt        z  t        z  dt-        t        d      dz        z  z   dt        z  z         t        j                                    sJ t        t!        t        t        dz        t        t        dz        z         t	        t+        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t+        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t+        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t+        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t+        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t+        t        t        dt        z  t        z  dt        z  dz  z         t        j                                    sJ t        t!        t5        t3        d      t        z  dz        dz         t	        t+        t        t        dt3        d      z  dt        z  t        z  t7        d      z
  z  dz        t        j                        t+        t        t        dt3        d      z  dt        z  t        z  t7        d      z   z  dz        t        j                                    sJ t        t9        t!        t/        t        t        z        t;        t        dz  t        z        z
              t	        t+        t        t        dt        z  dz         t        j                        t+        t        t        dt        z  dz         t        j                        t+        t        t        dt        z  t        dd      z         t        j                        t+        t        t        dt        z  t        dd      z         t        j                        t+        t        t        dt        z  t        dd      z         t        j                        t+        t        t        dt        z  t        dd      z         t        j                                    sJ t        t!        t        dt        z              t	        t+        t        t        dt        z  t        z  dz  t        dz  z         t        j                        t+        t        t        dt        z  t        z  dz  t        d	z  z         t        j                                    sJ t        t!        t        dt        z        t;        dt        z        z   t        t        j&                        t	        t+        t        t        t        t        z  dz  t        dz  z         t        j                        t+        t        t        t        t        z  dz  dt        z  dz  z         t        j                        t+        t        t        t        t        z  dz  dt        z  dz  z         t        j                        t+        t        t        t        t        z  dz  dt        z  dz  z         t        j                        t+        t        t        t        t        z  dz  dt        z  dz  z         t        j                        t+        t        t        t        t        z  dz  t        dz  z         t        j                                    sJ t        t        dt        t              z  t        dt        z        z  dz
  t              t	        t+        t        t        dt        z  t        z  dt1        t3        ddt        dd      z  z  ddt3        d      z  z   t        dd      z  z  ddt        dd      z  z  z   dddt3        d      z  z   t        dd      z  z  z         dddt3        d      z  z   t        dd	      z  z  z        z  z         t        j                        t+        t        t        dt        z  t        z  dt1        t3        ddt        dd      z  z  ddt3        d      z  z   t        dd      z  z  ddt        dd      z  z  z   dddt3        d      z  z   t        dd      z  z  z         dddt3        d      z  z   t        dd	      z  z  z        z  z
  dt        z  z         t        j                                    sJ t        t9        t!        t        t        dz  t        z        t        j                  z
  t        t        j&                              t	        t+        t        t        dt        z  dz         t        j                        t+        t        t        dt        z  dz         t        j                                    sJ y )Nr   r   r   r   r"  r   r'  r   r   r3  r   r   r  rE  -   K   i   r      r4     r   r5  r  r  C   9      ih     )r   rf   rD   r   rW   rX   r   r   r   r   r   r@   r   r   rh   r   ro   r   r~   r   rP   rQ   r=   rE   r>   r4   rC   r<   rZ   rA   r   r   r   test_solve_trigr    s   s1vq)hva2a(!**5va2a"-qzz:	<= = = s1vz1-1R46BqD=)1::68 8 8 s1vq)hva2a"Q$/<va2a"Xa^*;!;<ajjI	KL L L s1vA2hva1R"Xa^*;!;<ajjIva1R"Xa^*;!;<ajjI	KL L L QSVQY.2ajj@@@!#a&166/15hva1R"Xa^*;!;<ajjIva1R"Q$/<	>? ? ? #a!e*s1v-qAQ2#a&SVqt^<eVAqs2vzDQL891::FVAqs2vzDQL82=>

K?M 	NO O O
 s1Q3xAQqS#a&@BAF1R4A.A56

CE E E qQxA2A61Q3r6Dab48m1D)Db\* %  ! "#$::	/1Q3r6Dab48m1D)Db\* %  ! "#$::	/90 1 1 1 s1Q3xAaC014a8$VAqt_ajjAC C C #ad)hq!n45u2a47RQqT!V_4r"u<=qzzJ2a47RQqT!V_4r"u<=qzzJ8L M M M #ad)c!A#h./2a47RU1W,-qzz:2a47RU1W,-qzz:2a47RU1W,-qzz:2a47RU1W,-qzz:2a47SVAX-.

;2a47RU1W,-qzz:2< = = = #d1gaik*Q./1T!W9ac"ftBx&78:;QZZH1T!W9ac"ftBx&78:;QZZH2J K K K (3r!t9s2a46{#:;<e1Q37#QZZ01Q37#QZZ01Q3!Q/0!**=1Q3!Q/0!**=1Q3"a011::>1Q3!Q/0!**=?? @ @ @ #ac(#U1Q3r6!8be+,ajj91Q3r6!8bd?+QZZ8&: ; ; ; #ac(SAY.177;U1R46BqD=)1::61R46AbDF?+QZZ81R46AbDG+,ajj91R46AbDG+,ajj91R46AbDG+,ajj91R46BrE>*AJJ7>9 : : : qQxAaC014a8
1Q3r6Ad41hq!n;L8LbDH*O'1~N. 9.01!Xa^2C0C9DFH"DH*K'1~J. G.9. 4/012$r(
?XaQR^2S0S4U /V -V $V WXYXbXbd 6!QqSVaT"QA=N:NPRDH*Q'1~P. ;.01!Xa^2C0C;DFH"DH*K'1~J. G.;. 6/012$r(
?XaQR^2S0S6U 1V /V &V B$&  %&' ' ' (3quRx=166#91aggFG3q53;'43q52:&

3J5 6 6 6r   c                  >)   t        d      } t        t        dt        z  dz         t	        d      dz  z
  t              j                  t        t        t        | | t        z  t	        d      dz  z
  dt        z  dz  z         t        j                        t        t        | | t        z  t	        d      dz  z
  dt        z  dz  z         t        j                                    sJ t        t        dt        z  dz         t	        d      dz  z
  t              j                  t        t        t        | | t        z  t	        d      dz  z
  dt        z  dz  z         t        j                        t        t        | | t        z  t	        d      dz  z
  dt        z  dz  z         t        j                                    sJ t        t        t              t        t        dz        z
  t              j                  t        t        | | t        z  t        dz  z         t        j                              sJ t        t        t              t        t        dz        z
  t              j                  t        t        | | t        z  t        dz  z         t        j                              sJ t        dt        dt        z        z  d	z
  t              t        t        t	        d	      dz         dz  t        t	        d	      dz        dz        k(  sJ t        dt        dt        z        z  d	z
  t              j                  t        t        t        | | t         z  t        z  t        t	        d	      dz        dz  z
        t        j                        t        t        | | t         z  t        z  t        t	        d	      dz        dz  z         t        j                                    sJ t        t#        t        dz
        dz
  t              t        t%        d      dz         k(  sJ t        t#        t        dz
        dz
  t              j                  t        t        t        | d| z  t         z  t        z  t%        d      z   dz         t        j                        t        t        | d| z  t         z  t        z  t%        d      z
  dz   t         t        z  z         t        j                                    sJ t        t'        t#        t                    t'        t        dz        z
  t              j                  t        t        t        | t%        d| z  t        z  t        dz  z               t        j                        t        t        | t%        d| z  t        z  d
t        z  dz  z               t        j                                    sJ t)        t'        t#        t                    t'        t        dz        z
  t        t+        dd            t        t%        d
t        z  dz        t%        dt        z  dz              k(  sJ t        t        t        dz  dz
        dz
  t              t        t-        dt        d      z          t-        dt        d      z               k(  sJ t        t        t              dz
  t              t        j.                  k(  sJ t        t'        t              dz   t              t        j.                  k(  sJ t        t1        t              t              t        j.                  k(  sJ t        t3        t              t              t        j.                  k(  sJ t        t        t              dz   t              t        j.                  k(  sJ t        t5        t              t              t        j.                  k(  sJ t        t7        t              dz
  t              t        j.                  k(  sJ t        t7        t              t              t        j.                  k(  sJ t        t9        t              dz   t              t        j.                  k(  sJ t        t9        t              d      t        j.                  k(  sJ t        t5        t              d      t        j.                  k(  sJ t        t7        t              d      t        j.                  k(  sJ t        t;        t              d      t        j.                  k(  sJ t        t=        t;        t                    dz
  t              t        t?        d       t?        d            k(  sJ t        t9        t        dz  dz
        tA        d      z
  t              t        t-        tC        tA        d            dz          t-        tC        tA        d            dz               k(  sJ t        t5        tE        t                    dz   t              t        tA        tG        d                   k(  sJ t        t5        tA        t                    dz   t              t        j.                  k(  sJ t        t#        t              t         dz  z
  t              j                  t        t        t        | dt         z  t        z  | z  d	t         z  t        z  dz  z         t        j                        t        t        | dt         z  t        z  | z  t         t        z  dz  z         t        j                                    sJ t        t#        t        dz        tI        dd      z   t              j                  t        t        t        | d| z  t         z  t        z  dt%        t	        d      dz        z  z
        t        j                        t        t        | d| z  t         z  t        z  dt%        t	        d      dz        z  z   dt         z  t        z  z         t        j                                    sJ t        t7        t-        d      t        z  dz        d	z   t              j                  t        t        t        | dt-        d      z  d| z  t         z  t        z  tK        d      z
  z  dz        t        j                        t        t        | dt-        d      z  d| z  t         z  t        z  tK        d      z   z  dz        t        j                                    sJ t        t        dt        z        t              j                  t        t        t        | d| z  t         z  t        z  dz  t         t        z  dz  z         t        j                        t        t        | d| z  t         z  t        z  dz  t         t        z  dz  z         t        j                                    sJ t        d	z  dt        z  z
  dz   jM                  t        t5        tN                    }t)        |tN        t        jP                        j                  t        t        t        | | t         z  t        z  tG        tS        t        d	z  dt        z  z
  dz   d            z         t        j                        t        t        | | t         z  t        z  tG        tS        t        d	z  dt        z  z
  dz   d            z         t        j                        t        t        | | t         z  t        z  tG        tS        t        d	z  dt        z  z
  dz   d            z         t        j                        t        t        | | t         z  t        z  tG        tS        t        d	z  dt        z  z
  dz   d            z         t        j                        t        t        | | t         z  t        z  tG        tS        t        d	z  dt        z  z
  dz   d            z         t        j                                    sJ t)        |tN        t        jT                        t        tG        tS        t        d	z  dt        z  z
  dz   d            tG        tS        t        d	z  dt        z  z
  dz   d                  k(  sJ t        t-        d      dz  z
  t        dz   z  jW                         jM                  t        t'        t                    }t)        |t        t        jP                        j                  t        t        t        | d| z  t        z  tY        d      z
        t        j                        t        t        | d| z  t        z  tY        d      z         t        j                        t        t        | d| z  t        z  t        dz  z         t        j                        t        t        | d| z  t        z  dt        z  dz  z         t        j                                    sJ t)        |t        t        jT                        j                  t        t        t        | d| z  t        z  t        dz  z         t        j                        t        t        | d| z  t        z  dt        z  dz  z         t        j                                    sJ t)        dt1        t-        d      t        z  dz         dz  z   dt1        t-        d      t        z  dz         z
  z        j                  t        t        t        | t-        d      d| z  t        z  dz
  t[        t               z
  z  dz        t        j                        t        t        | t-        d      d| z  t        z  dz
  t[        t               z   z  dz        t        j                        t        t        | t-        d      d| z  t        z  dz
  t[        t                z
  z  dz        t        j                        t        t        | t-        d      d| z  t        z  dz
  t[        t                z   z  dz        t        j                                    sJ t]        t)        t        dt        z        t	        d      dz  z  dz
  t        t+        dd            t        dddt        z  z   ddt        z  z               sJ y )Nr   r   r   r   r1  r5  r3  r   r         r   r   r   r   r   r   r4  r  r  r  gQ	@gʡE@g|^z?ga?ga?)/r   rf   rD   r   r   r   rW   rQ   r   r   r   rh   rE   r)   rT   r/   r   r(   r.   r@   ro   rV   r4   r   rC   rB   r+   r,   r*   r-   r7  r3   r%   r0   r&   r1   r   r2   r   r   r  rN   r   expandr9   r<   r   )r   r  s     r    test_solve_trig_hyp_by_inversionr    sH   c
AQqS1W!Q.2;;E1R4!A$q&=2b5834ajjA1R4!A$q&=2b5834ajjA=C D D D C!aL1Q46115>>u1R4!A$q&=2b5834ajjA1R4!A$q&=2b5834ajjA@C D D D Q#be*,a0991R4"R%<(!**57 7 7CFSBZ/3<<1R4"R%<(!**57 7 7 4!9q!,		qtAvq%!Q-/1+ + + +Ad1Q3iK!OQ/881Q3r6E!A$q&M!O34ajjA1Q3r6E!A$q&M!O34ajjA:C D D D a!eq!,	a11   DQK!OQ/881Q3q58eAh.23QZZ@1Q3q58eAh.2QrT9:AJJG:I J J J T!Wc"R%j0!4==e51R"R%011::>51R"R%(!234ajjA?C D D D CQLRU+Q1>%2b/5Br?34 4 4ad1fa+y	a%(l	T!eAh,/01 1 1 1 Q!Q'1::555Q!Q'1::555Q#qzz111Q#qzz111a1a(AJJ666a!$

222a1a(AJJ666a!$

222a1a(AJJ666DGQ'1::555DGR(AJJ666DGQ'1::555DGQ'1::555T!W)1-E!H9eAh1OOOOadQh#b'115	eCGnq 	!!4c"g(:#;:= = = = c!f)1-3ay>1JJJJc!f)1-;;;DGacM1-66u1Q3r6!8ac"fQh./<1Q3r6!8ad1f,-qzz:8< = = = D2J!Q7;DDU2a46"9r%!Q-'778!**E2a46"9r%!Q-'77"Q$r'ABAJJOFQ R R R Da1-115>>u1T!W9ac!eBhr&:;A=>

K1T!W9ac!eBhr&:;A=>

K@M N N N D1Iq)2251Q3q58A:"R/0!**=1Q3q58A:"Q./<4> ? ? ? Q$!)a-		aa	)BB1;;'001Q3r6E'!Q$!)a-*C$DDEqzzR1Q3r6E'!Q$!)a-*C$DDEqzzR1Q3r6E'!Q$!)a-*C$DDEqzzR1Q3r6E'!Q$!)a-*C$DDEqzzR1Q3r6E'!Q$!)a-*C$DDEqzzR2T U U U B177#ygadQqSj1na()5A!a1K+L(N N N N T!WQY;1
	%	%	'	,	,QA	7BB1;;'001Q3r6DH,-qzz:1Q3r6DH,-qzz:1Q3r6BqD=)1::61Q3r6BrE!G+,ajj9	2; < < <
 B177#,,U1Q3r6BqD=)1::61Q3r6BrE!G+,ajj9.; < < < Qs4719Q;'**Qs4719Q;/?-?@AJJ547AaCFQJa$89!;<ajjI47AaCFQJa$89!;<ajjI47AaCFQJqb$9:1<=qzzJ47AaCFQJqb$9:1<=qzzJ	LL M M M Xc$q&kAaDF3E91hq!nM#%69J29M%M!$5b$88	:; ; ;r   c                     t        t        t              t        t        j                        t        d      k(  sJ t        t        t              t        t        j                        j                  t        t        t        t        dt        z  t        z  t        z        t        j                        t        t        t        dt        z  t        z  t        z  t        t        z  z         t        j                                    sJ t        t        t        t        z        t        t        j                        j                  t        t        t        t        dt        z  t        z  t        z   t        z        t        j                        t        t        t        dt        z        t        j                                    sJ t        t        t        t        z        t              j                  t        t        t        t        dt        z  t        z  t        z   t        z        t        j                        t        t        t        dt        z        t        j                                    sJ t        t        t!        dt        z  dt"        z  z
        z  t              j                  t        t        t        t        t        z  dz  dt        z  dz  z
  t"        z         t        j                              sJ t%        t        t'        dt        z        dz
  t        t)        ddt        z              t        ddt        z   ddt        z  z   dt        z               sJ t        t        t        t        t        t        z  dz
        t        j                        t        t        t        t        t        z  dz         t        j                              } t        t'        dt        z        dz
  t        t        j                        }|j+                  |j-                  t.              j1                         t              }t%        ||       sJ t        t'        dt        z        dz
  t        t        j                        }|j+                  |j-                  t.              j1                         t              }t%        ||       sJ t        t3        t              t5        d      z
  t        t)        dt        dz              t        t7        t5        d                  k(  sJ t        t3        t              t        z
  t        t)        dt        dz              t        t7        t                    k(  sJ t        t'        t              t8        z
  t        t        j                        j                  t;        t        t        d	      t8        k  t8        t        d
      k  z  t        t        t        t        dt        z  t        z  t=        t8              z
        t        j                        t        t        t        dt        z  t        z  t=        t8              z         t        j                                          sJ t        t        t?        t                    t        t)        dd
dd            j                  t        tA        t        t        t        tC        dt        z  t        z              t        j                        t)        jD                  dd
            tA        t        t        t        tC        dt        z  t        z  t        z               t        j                        t)        jD                  dd
                        sJ t        t        t              t        d
      z
  t        t        j                        j                  t        t        t        t        dt        z  t        z  d
z         t        j                        t        t        t        dt        z  t        z  d
z
  t        z         t        j                                    sJ t        t        t              t5        d      dz  z
  t        t        j                        j                  t        t        t        t        dt        z  t        z  tG        t5        d      dz        z         t        j                        t        t        t        dt        z  t        z  tG        t5        d      dz        z
  t        z         t        j                                    sJ t        t        t              tI        d      z
  t        t        j                        t        tK        tI        d                  k(  sJ t        tM        t3        t              t8              t        t        j                        j                  t;        t        tN         t8        k  t8        tN        k  z  t        t        t        t        t        z  t7        t8              z         t        j                                    sJ tQ        dd      }t        tM        t3        t              |      t        t        j                        j                  t        t        t        t        t        z  t7        |      z         t        j                              sJ y )Nr   r   r   r1  r  r  ggs-8R?ggs-8Rr   r   TFr   r   r'  r   r   ))ro   r(   r   r   r   rT   r  r   rW   rQ   r   r   r   r   r   rD   rA   r   r   r@   rV   r   atomsr   poprE   r4   r>   r   rP   r9   r&   rU   r%   Lopenr=   r)   r.   r   r   r   )r   retr   s      r   test_old_trig_issuesr  [  s!   DGQ(IaL888DGQ,55e1Q3q58$ajj11Q3q58ad?+QZZ87: ; ; ;
 C1Iq!''*33EAaCFRK+,ajj91Q3,5. / / / C1Iq!**5AaCFRK+,ajj91Q3,,. / / /
 Ac!A#!)n$a(112a46BrE"H,q011::>@ @ @ Xc!A#hna!QrT1BCY-2QrT!#4r#9F; < < < 1R4*;#;<ajjI1R4*;#;<ajjIKC
3qs8c>1agg
.C
((399U#'')1
-CS#
3qs8c>1akk
2C
((399U#'')1
-CS# CF47NAx2a4'89YtDQRG}=UUUUCF2Iq(1bd"34	$r(8KKKK
 CF1Ha)22Q"
qAaDy15VAqs2vQ/0!**=VAqs2vQ/0!**=4? 	@A A A CAKHQq$$>?HHl8F1c!A#b&k$:AJJGXY[\I]^8F1c!A#b&2+.>$?Lhnn]^`aNbc	ef f f
 CFSVOQ099%1Q3r6A:&

31Q3r6A:?+QZZ8;: ; ; ; CFT!WQY&1773<<U1Q3r6DaO34ajjA1Q3r6DaO3b891::F>H I I I DGDGOQ0IeDGn4MMMM Bs1vqM1QWW5>>Q"qQV,fQ"tAw7D	FG G G 	sABs1vqM1QWW5>>1R4$q'>*AJJ79 9 9r   c                     t        d      } t        t        t              t	        t              z   t              t
        j                  k(  sJ t        t        t              t        t              z   t              t        t        t        t        t              t        t              z   d      t
        j                        k(  sJ t        t        t              t        t              z   t              t        t        t        t        d      dz
                    k(  sJ t        t	        dt        z        dt        t              z  z   dz
  t              t        t        dt        d      z         t        dt        d      z               k(  sJ t        t!        t              t        dt        z        z   t	        t              z  dz
  t              t        t        t
        j"                  t        d      dz  z         t        dt        d      z               k(  sJ t        t	        t              t        t              z  dz
  t              t        t        dt        d	      z         dz        k(  sJ t        t        t              t%        t              z   dz
  t              t        t        t        d      dz  t        t        d       dz  t        d      z         z               k(  sJ t'        t)        t        t              t        t              z   t              t+        t-        t/        | d| z  t0        z  t2        z  t        t        dt        d      z               z         t
        j4                        t-        t/        | t0        d| z  t2        z  t2        dz  z   z  t        t        dt        d      z               z         t
        j4                        t-        t/        | t0        d| z  t2        z  t2        z   z  t        t        dt        d      z               z         t
        j4                        t-        t/        | t0        d| z  t2        z  t2        dz  z
  z  t        t        dt        d      z               z         t
        j4                                    sJ t'        t        t	        t        d
z        t	        t        dz        z         t+        t-        t/        | d
t0        z  d| z  t2        z  t2        dz  z   z        t
        j4                        t-        t/        | d
t0        z  d| z  t2        z  t2        dz  z
  z        t
        j4                        t-        t/        | d
t0        z  d| z  t2        z  dt2        z  dz  z
  z        t
        j4                        t-        t/        | d
t0        z  d| z  t2        z  dt2        z  dz  z   z        t
        j4                        t-        t/        | d
t0        z  d| z  t2        z  t2        dz  z
  z        t
        j4                        t-        t/        | d
t0        z  d| z  t2        z  t2        dz  z   z        t
        j4                                    sJ t'        t        t%        t2        t        z        t!        t2        dz  t        z        z
        t+        t-        t/        | dt0        z  d| z  t2        z  t2        dz  z   z  t2        z        t
        j4                        t-        t/        | dt0        z  d| z  t2        z  t2        dz  z
  z  t2        z        t
        j4                                    sJ t        t	        t              t	        dt        z        z   t	        dt        z        z
  t        t
        j6                        j9                  t        t        t        t	        t              t	        dt        z        z   t	        dt        z        z
  d      t
        j6                              sJ t        t        dt        z        t!        dt        z        z         j9                  t        t        t        t        dt        z        t!        dt        z        z   d      t
        j                              sJ y )Nr   r   r   r   r  r   r   r   r3  r  r   r5  )r   ro   r(   r   r)   r   r   r@   rP   r   r  rf   r,   rT   r&   r4   r+   r   r*   r   rh   rW   rQ   r   r   r   r   r   r   r   s    r   test_solve_hyperbolicr    s1   c
ADGd1g%q)QZZ777DGc!f$a(L
3q6DGQ-. . . .a47*A.)Da13       acQtAwY.2A6)BaL3q47{+;- - - -$q'D1I-tAw6:A>)AFFT!WQYQa[!1C3 3 3 3aa1,a0IARL!5   a47*Q.2iDGAIadU1WtAw.//072 2 2 2 !$q'DG"3Q71Q3q58c$rDG|*<&==>

K1ac"fr!tm,s4DG3D/EEF

S1ac"frk?Sb47l1C-DDEqzzR1ac"fr!tm,s4DG3D/EEF

S	:U V V V $qt*tAaCy0152a41R"Q$/0!**=2a41R"Q$/0!**=2a41R!B$q&12AJJ?2a41R!B$q&12AJJ?2a41R"Q$/0!**=2a41R"Q$/0!**=4? @ @ @ $r!t*tBqDF|34e1Q3!BA.r12AJJ?1Q3!BA.r12AJJ?7A B B B
 DGd1Q3i'$qs)3Q 

(<
47T!A#Yac*A.9 :: : : D1IRT
*+44Q4!9tBqDz115q{{CE E Er   c                     t        t        t        t        t        z        t              t        t        t        t        d      t        t        t        t        dt        z  t        z  t        z   t        z        t        j                        t        t        t        dt        z  t        z  t        z        t        j                                          sJ t        t        t        t        t        z        t              t        t        t        t        d      t        t        t        t        t        dt        z  t        z  t        z  t        t        z  dz  z   z        t        j                        t        t        t        t        dt        z  t        z  t        z  dt        z  t        z  dz  z   z        t        j                                          sJ t        t        t        dt!        d      z  dz  t        dz  z  t"        t        z  z  t        z        t%        dt!        d      z  dz  t        dz  z  t"        t        z  z  t        z        z   t              t        t        t        t"        d      t        t        dz  d      z  t        t        t        t        t!        d      t        z  t"        z  dt        z  t        z  t        dz  z   z  dt        dz  z  z        t        j                        t        t        t        t!        d      t        z  t"        z  dt        z  t        z  dt        z  dz  z
  z  dt        dz  z  z        t        j                        t        t        t        t!        d      t        z  t"        z  dt        z  t        z  t        dz  z
  z  dt        dz  z  z        t        j                                          sJ t        t        t        t        dz  dz   t        z        dz
  t              t        t        t        t        dz  dz   d      t        t        t        t        dt        z  t        z  t        z  t'        d      z
  t        dz  dz   z        t        j                        t        t        t        dt        z  t        z  t        z  t'        d      z   t        dz  dz   z        t        j                                          sJ t)        dd	
      } t        t        | dz  dz   t        z        dz
  t        t        j*                        t-        t'        d       | dz  dz   z  t'        d      | dz  dz   z        k(  sJ t        t/        t        t1        dt        z   t        z        t1        ddt        z  z   t        z        z
  t                    t        t        t        t        t        dt        z
  z  dt        z  dz   z  dz        t        j                        t        t        t        t        dt        z
  z  dt        z  dz
  z  dz        t        j                                    sJ y )Nr   r   r   r   r   r   r   arTr   )r   ro   rD   r~   r   rP   r   rW   rQ   r   r   r   r   r   r)   r   r4   r   r@   r/   r   r   rT   rZ   rA   )r  s    r   test_solve_trig_hyp_symbolicr    s   #ac(A&Q1a%AaCFRK?+QZZ81Q3r6!8$ajj1C3 )4 5 5 5 $qs)Q'aAq51ac!eBh2a/011::>1ac!eBh1R123QZZ@DB *C D D D #aQik!Q$."5a78
aQik!Q$"%a'
()*+-Ar!Qx"QT1+-uF1d1gbjlAaCFRTM:AadFCDajjQF1d1gbjlAaCFQrT!VO<a1fEF

SF1d1gbjlAaCFRTM:AadFCDajjQ0S TU U U $1q!|,q0!4l	2adQh?EVA!Ab58 3adQh?@!**MVA!Ab58 3adQh?@!**MO7P Q Q Q
 
4	 BD"a%!)Q'!+Q8I	q	2q519uQxQ3=5 5 5 5 (3Aqy>CQqS!4D#DaHI52q1u:qsQw/12AJJ?2q1u:qsQw/12AJJ?LA B B Br   c                     t        t        t        t              t	        t              z   dz
  t              t        t        t        t        dt        z  t        z  t        z  t        t        d      dz  t        t        j                   t        d      z         z         z         t        j                        t        t        t        t        dt        z  t        z  t!        t        d      t        t        j                  t        d      z         z        z
  t        z   z  t        t        dt        d      z               z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  t        t        d       dz  t        t        j                   t        d      z         z         z         t        j                        t        t        t        t        dt        z  t        z  t        z
  t!        t        d      t        t        j                  t        d      z         z        z   z  t        t        dt        d      z               z         t        j                                    sJ t        t              j#                  t$              } t	        t              j#                  t$              }t        t        | |z   dz
  t              t        t'        t        t        t        t        dt        z  t        z  t        z   z  t        t        d       dz  t        t        j                   t        d      z         z         z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  dz        t        j                              t'        t        t        t        t        dt        z  t        z  t        z
  t!        t        d      t        t        j                  t        d      z         z        z   z  t        t        dt        d      z               z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  dz        t        j                              t'        t        t        t        t        dt        z  t        z  t!        t        d      t        t        j                  t        d      z         z        z
  t        z   z  t        t        dt        d      z               z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  dz        t        j                              t'        t        t        t        dt        z  t        z  t        z  t        t        d      dz  t        t        j                   t        d      z         z         z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  dz        t        j                                          sJ y r  )r   ro   r(   r   r*   rW   rQ   r   r   r   r   r&   r4   r   r   r   r>   r  r%   rS   )f1f2s     r   test_issue_9616r    sY   $q'DG+a/3U1Q3q58c$q'!)dAFF7T!W;L6M*M&NNOQRQ[Q[\1ac"ftDGD$q'9I4J,J'KKbPQ$q47{#$% &'(zz	31ac"frk?S$q'!dAFF7TRSWCT>U1U-VVWYZYcYcd1ac"frkDaafftAw>N9O1O,PPQ$q47{#$% &'(zz	364 5 5 5 q'		3	B
q'		3	B"r'A+q)581a1R"oT!WHQJqvvgQ>O9P,P(QQRTUT^T^`VAq!A#b&2+q011::>	@ 	8F1a1R"tDGDRVWXRYIYDZ<Z7[)[&\d1tAw;'(') *+,::7VAq!A#b&2+q011::>	@ 	8F1a1R$tAwtAFFTRSWDT?U7U2V)VY[)[&\d1tAw;'(') *+,::7VAq!A#b&2+q011::>	@ 	VAqs1uRx#d1gai$wa?P:Q.Q*RRSUVU_U_`VAq!A#b&2+q011::>	@,A B B Br   c                      dt        t        t              t        z  t              vsJ dt        t	        t              dz
  t        z  t              vsJ y Nr   r   )rf   rD   r   rh   r%   r   r   r   test_solve_invalid_solr    sA    M#a&(A....$c!fqj!^Q7777r   c                  N   t        d      } t        t        t        t              t              t        t        | | t        z        t        j                              sJ t        t        t        t              t              t        t        | | t        z  t        dz  z         t        j                              sJ t        t        t        t              t        t              z   t              t        t        | | t        z  t        dz  z
        t        j                              sJ y )Nr   r   r   )r   r   rf   rD   r   rX   r   r   r   r   r@   r   s    r   test_solve_trig_simplifiedr  	  s    c
As1vq)1R4!**-/ / / s1vq)1R4"Q$;'46 6 6 s1vA21R4"Q$;'46 6 6r   c                     t        t        t        t              z  dz
  t              t        t	        d            k(  sJ t        t        t              t        z   t              t        t	        d             k(  sJ t        t        dt        z  z   t              t        t	        t        d             t        d      z        k(  sJ t        dt        z  dz   ddt        z  dz   z  z   t              } | t        t        dd      t	        ddt        dd      z  z  t        d      z  dz        dt        d      z  z  z         k(  sJ ddt        z  dz   dz  z  dd	dt        z  d
z   z  z  z
  }t        |t              }t        t        d      dt	        t        d	d	dt        dd      z  z  dz  z               z  z   dt        d	      z  z  dz        } || k(  sJ t        |j                         t              |k(  sJ t        dt        z  dz
  dt        dd	t        z  z
        z  z   t              t        t        dd      t	        dt        t        dd            z  dz        d	z  z         k(  sJ t        dt        z  dz   t        dt        z  dz
        z   t              t        t        dd      t	        dt        t        dd            z  dz        dz  z         k(  sJ t        dt        z  t        dt        z        z   t              t        t	        t        dd            dz        k(  sJ t        t        t        z  dz
        t        t        t	        t        d                        k(  sJ t        d      }t        | t        z  dt        z  t        t              z  z   t              t        t        |dz              k(  sJ t        dd      }t        |t        z  t        t        dz        z   t              t        dt	        | dz        z        k(  sJ t        |t        z  t        t        dz        z   j                  t              t              t        dt	        t        d      t        |      z  dz        z        k(  sJ t        t        t        dz         t        t        dz
        z  dz
  t              t        j                  u sJ t        t        dz  dt        z  z
  dz   j                  t        t        t              dt        z  z         t              t        t	        dt        j                  z        dz        k(  sJ t        t        dz  dt        z  z
  dz   j                  t        t        t              dt        z  z   dz  dz
        t              t        t	        dt        t        d             z        dz  t	        dt        t        d            z        dz        k(  sJ t        t        dz  dt        z  z
  dz
  j                  t        t        t              dt        z  z         t              t        t	        dt        dt        d      z         z        dz  t	        dt        t        d       dz         z        dz        k(  sJ t        t        t        t              z  dt        z  z   dz   t              t        t        dt	        t        d             z               k(  sJ t        t        t              z  dz
  j                  t        t        t        t              z        }t        |t              t        t	        dt        t	        d             z              k(  sJ t        dt        |dt        z  dz   z        z  |dt        z  dz   z  z   t              t        t        |dz        t	        t        dd            z   dt        |      z  z         k(  sJ t!        dd      }t        dt        |dt        z  dz   z        z  |dt        z  dz   z  z   t              t        t        dt        dd      z   dt        dd      z  t"        z  z
  t	        t        dd            t        dd      z  z  d|t        dd      z  z  z        t        |      z  t        dt        dd      z   dt        dd      z  t"        z  z   t	        t        dd            t        dd      z  z  d|t        dd      z  z  z        t        |      z  t        dt	        t        dd            z  |dz  z  ddt        |      z  z  z              k(  sJ t        d      }dt        |dt        z  dz   z        z  |t        |dt        z  dz   z        z  z   |dt        z  dz   z  z   }t        |t              t        t        |dz        t	        d|dz   z        z   dt        |      z  z         k(  sJ t        |t        z  t        t        dz        z   j                  t        d      t              t        dt	        dt        dd      z  |t        dd      z  z  dz        z        k(  sJ t        t        dz  dt        z  z
  t              t        dt        d      z  t	        t        d       dz        z        k(  sJ t        dt%        t              z  t%        t              dz  z
        t        t'        dt	        t        d       dz        z  t        d      z              k(  sJ t        t        dz  dt        z  z
  t              t        t        dz   dt        z  z   t              k(  sJ t        dt        t              z  t        t        d      z  z
        t        dt	        t        d       dz        z  t        d      z  dt	        t        d       dz  d      z  t        d      z        k(  sJ t        t	        dt        z        t(        z
        t        t(        t        t(              z  dz        k(  sJ y )Nr   r   r   r   r   i r   r   r"  r4  ia	  r   iir~   Tr   r   r   r   r   )rf   r   r%   rT   r$   r&   r   r  r   r
   r4   r*   r   r   r   Exp1r   r   r@   r9   r   )r9  r  resultr~   r   r   s         r   test_solve_lambertr    s
   3q6Aq)Yx{-CCCCQ!Q'9hqk\+BBBBQT1%8CF##CF*+, , , !a!bdQh-/
3C)HRO$VAx1~,=%=c!f%DQ%FG3q6RS T T T T 
AaC!Ga<!A!aL.	(B2q!F
SYxQ1hq!n+<)<Q)>%?!@ @AABDEc!fHNNPQ RCS==a(F2221q1SQqS\>115(1a.8CHQN0C,CA,E#Fq#HHIJ J J 1q3qsQw</3(1a.8Ac(32B.C,CA,E#Fq#HHIJ J J 1s1Q3x+(8Aq>*1,-. . . A"iHSV4D0E&FFFFsA!A!CF
*A.)C!H2EEEEsA1s1Q3x+!HaRTN"#$ $ $!A#AaC...q115!HT!WT!W_Q.//01 1 1 a!eT!a%[014a8AJJFFF!Q$1*q...q#a&1Q3,?C(1QVV8$Q&'( ( (!Q$1*q...q3q6AaC<!2Ca2GH!L(1S$q']?+A-x#d1g,/G/IJK K K!Q$1*q...q#a&1Q3,?C(1ST!W--.q0(1S$q'A=N;N2OPQ2QRS S S3q6AaC!+Q/#b8SVG,,-./ / /
CF(Q,		Q#a&	)BQ(1S(1+../01 1 1 3q1Q37|,,q1Q37|;Q?SAY(1a.!99Ac!fHEFGH H Hd#A3q1Q37|,,q1Q37|;Q?a!Q!Xa^"3A"55xA7OQYZ[]^Q_7__abcdfnoprsftctatuvwz{|w}}a!Q!Xa^"3A"55xA7OQYZ[]^Q_7__abcdfnoprsftctatuvwz{|w}}QxA''1,1SV8=>	AA A A 	sA	
3q1Q37|	qQ1q\!22	2Q1q\	ABQ9q!t9x1q5	**Qs1vX
67$9 9 9 9 !A#AaC...q!4a8I	(B!Q'8Aq>(99!;
<<=> > > > A1a("SV)Hc!fWQY//01 1 1CFSVQY./9R#a&##CF*+4- - - - A1a(q!teadlA&' ' ' 3q6Ac!fH,-
8SVGAIs1v%
8SVGAIr""3q6)2+ + + + !A#*+y	#a&
0   r   c            
          t        dd      } t        t        | z  | t        z  z
  t              t        | |  t	        t        |        | z        z  t        |       z        k(  sJ y )Nr   r   )r   rf   r   rT   r$   r&   )r~   s    r   test_other_lambertr  m  s]    AAA1a(I	A2hAwqy!!#a&(-* * * *r   c            
      
   t        d      } t        t        d        t        t        d      t
        j                  k(  sJ t         | d      dz  t        z   dz    | d            t        t        t         dz
         t        t         dz
              k(  sJ t         | d      dz  dz
   | d      t
        j                        t        dd      k(  sJ t         | d      dz  dz    | d            t        t         t              k(  sJ t        t        dz
  d      t        t              k(  sJ t        t        t              t        t              z
  t        t                    t        t        t                    k(  sJ t        dt
        j                        t
        j                  k(  sJ t        d      t
        j                  k(  sJ t        dt
        j                        t
        j                  k(  sJ t        d	t
        j                        t
        j                  k(  sJ t        t        t              dz
  t
        j                        t        d      k(  sJ t        t        t              dz
  t        t
        j                        t        d      k(  sJ t        t        t        t              d      t        t
        j                        t        d      k(  sJ t        t        t              dz
  t        t              t
        j                        t        d      k(  sJ t!        d
t              }t        |dz
  |t
        j                        t        d      k(  sJ t        t        dz
  dk\  t        t
        j                        t#        dt$              k(  sJ t        t        t              dz
  dk\  t        t
        j                        t#        dt$              k(  sJ t'        t        t        t              dz
  t              t)        t+        t,        dt        z  t.        z  t,        z        t
        j0                              sJ t'        t        t        t        t              d      t              t)        t+        t,        dt        z  t.        z  t,        z        t
        j0                              sJ t        t        dz   | d      z   dz   t              t         | d       dz
         t         | d       dz
        hk(  sJ t        t3        t5        t                    dkD  t        t#        j6                  dt$                    t#        j6                  dt$              k(  sJ y )Nr   c                  .    t        t        t        z         S r   )ro   r   r   r   r   r   r   ztest_solveset.<locals>.<lambda>w  s    xA r   r   r   r   r   r'  TFA)r   r^   r   ro   r   r   r   r   rT   r4   r   r   rD   r@   r%   r   r[   rV   r   r   rX   r   r   r   r   r>   r&   r   )r   r  s     r   test_solvesetr  t  s   A
:./Aq>QZZ'''AaD!GaK!OQqT 
aR!V}dA26l34 4 4AaD!GaK1qww/9R3CCCCAaD!GaK1&)QB*::::AE11---CFSVOSV,	#a&0AAAAAagg&!''111A;!**$$$D)QWW444E!''*ajj888CFQJqww/9Q<???CFQJ177+y|;;;Bs1vqM1agg.)A,>>>CFQJA0IaL@@@QAAE1agg&)A,666AEQJ177+x2>>>CFQJ!OQ0HQOCCC#a&1*a((6!QqSVAX3F

*STTT"SVQ-+XfQ!Bq6I23**.> ? ? ? AqD1Q4K!OQ'T1Q4%!)_,<dAaD519o+NNNN DQL1$aa0DEWXZ\I]]]]r   c            !         t        d      \  } }}t        t        t        t        t                    dz
  t              t        t        | t        fft        d| z  t        z  t        dt        z  t        z  t        z  t        d      z         z   z  t        t        dt        z  t        z  t        z  t        d      z               z         t        t        j                  t        j                                    sJ t        t        t         t        t        t"        t        z  t$        z               z  t&        z   t              t        t        t        t$         t        z   t"        z        t)        t        | t        fft        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z         t        t        j                  t        j                                          sJ t        t        t         t        t        t        t"        t        z  t$        z                     z  t&        z   t              t        t        t        t$         t        z   t"        z        t)        t        || t        fft        d|z  t        z  t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z         z   z  t        t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z               z         t        t        j                  t        j                  t        j                                          sJ t        t        t         t        t        t        t        t"        t        z  t$        z                           z  t&        z   t              t)        t        t        t$         t        z   t"        z        t)        t        ||| t        fft        d|z  t        z  t        t        d|z  t        z  t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z         z   z  t        t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z               z         z   z  t        t        t        d|z  t        z  t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z         z   z  t        t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z               z               z         t        t        j                  t        j                  t        j                  t        j                                          sJ y )Nz
k1, k2, k3r   r   )r   r   ro   r%   r   rX   r   r   r   r   r   r&   r   rY   r   r   r   r~   r   r   rQ   )k1k2k3s      r   test_multi_expr    s   &JBB#c!f+/1-	&2q'Q"R#ac!eBhQ6G2H(H%ICPSTUVWTWXYTYZ\T\_bcd_eTePfLg%gh

AJJ/
12 2 2 1SQqS1W..2Q7QBFA:&"a
qtBwQ!BaRT 23c#ac(mCDDECPQSTUVSVWYSY\_ab`bcd`d\eSePfilmpqrstqtmuivPvLwHxx2z1::qzz2)4 	56 6 6
 1SS1q\!233a7!<QBFA:&"b!qtBwQ"R#a1R#qbd)1C.Ds3qQRs8}.T*U UVC1Q3r6C1I-.S1X>?@A B B CEHQPQRTPTUWPWZ]^_abcdadegagjmopnpqrnrjsas^tAaCM_" [# Q# N$&)#a1R#qbd)1C.Ds3qQRs8}.T*U&VNW JX FYY2Z #1::qzz1::F	)H 	IJ J J 1SSQqS1W%6!7881<qAQBFA:&"b"a8JqtBwQ"R#a2b3q!A#b&3PQrRSt9BT?UX[\_`abc`c\dXe?e;f1f.gC1Q3r6C1I-.S1X>?@/A +B !B CEHQPQRTPTUWPWZ]^_abcdadegagjmopnpqrnrjsas^tAaCM_" [# Q# N$&)#a1R#qbd)1C.Ds3qQRs8}.T*U&VNW JX FYY Z Z []`adefhijlhlmohoAqtBwQ!BaRT0B-Cc#aPQc(m-S)TTUX[\_`acdefcfgiciloqrprstptlucu`vy|  ~A  BC  DE  BE  ~F  zG  aG  ]H  YI  I  JiJ fKAqtBwQ!BaRT8J5KcRUVWXYVYRZm5[1\'\$]`cdghiklmnknoqkqtwyzxz{|x|t}k}h~  BE  FI  JK  LM  JM  FN  BO  iO  eP  aQ  %Q  !R  SfS bT ^UU2V 

AJJ

AJJG)I 	JK K Kr   c                     ddl m}  ddlm}  | t        dz  dz
  gt        gt
        j                  g      t        dd      k(  sJ  | t        t        z   t        dz   gt        t        g||g      t        d      k(  sJ  | t        t        z   t        dz   gt        t        g||g      t        d	      k(  sJ  | t        t        z   t        t        z
  dz
  gt        t        g||g      t        t        d      dz  t        d       dz  f      k(  sJ  | t        dz
  t        dz
  gt        t        g||g      t        d
      k(  sJ t         | t        t        z   gt        t        g||g      t        t        t        t        fft        t         f      t        |            t        t        t        fft         t        f      t        |                        sJ  | t        t        z   t        t        z   dz   gt        t        g||g      t
        j                  k(  sJ  | t        t        z   t        t        z
  t        dz
  gt        t        g||g      t
        j                  k(  sJ  | t        t        z   t        t        z
  t        dz
  gt        t        g||g      t
        j                  k(  sJ  | t        t        z   t        z   dz
  t        t        z   t        z
  dz
  t        t        z
  t        z
  dz
  gt        t        t        g|||g      t        dt
        j                   t
        j                   f      k(  sJ ddlm}  | t        dz  t        dz  z   dz
  t        t        z   gt        t        g||g      t        dd	      k(  sJ  | t        dz  dz
  t        gt        t        g||g      t        dd      k(  sJ t         | t        dz  t        dz  z
  gt        t        g||g      t        t        t        t        fft        t%        t               f      t        |            t        t        t        fft        t%        t              f      t        |            t        t        t        fft%        t               t        f      t        |            t        t        t        fft%        t              t        f      t        |                        sJ  | t&        t)        |      z  dz
  t&        t+        |      z  g|t&        gt-        dt.              t-        dd      g      t        dt.        df      k(  sJ  | t&        t)        |      z  dz
  t&        t+        |      z  gt&        |gt-        dd      t-        dt.              g      t        d      k(  sJ  | t&        t)        |      z  t&        z
  t&        t+        |      z  gt&        |gt-        dd      t-        dt.              g      t        t        t        t&        fft&        df      t        t        t&        t&        f      t-        dd                  t        t        |ffd|f      t        t        ||f      t-        dt.                                k(  sJ y )Nr   )_solveset_multi)r   r   r   r   r   r   r   )r   r   )r   r   r   )theta)r   r   )r   r   r   )r   r   )sympy.solvers.solvesetr  
sympy.setsr   r   r   rT   r   r   rW   rQ   r   rY   r   r   r   	sympy.abcr  r   r   r@   rD   rV   r   )r  r   r  s      r   test__solveset_multir    sb   6  AqDF8aS177)4	$8NNNN AaC1:1vu~>)GBTTTTAaC1:1vu~>)GBTTTTAaC1Q<!Q%@IqQRtTUvXYZ[X\W\]^W^N_D````AaC1:1vu~>)FBSSSS!A#A?VaTGa!W-z%/@AVaTGqb!W-z%/@ABC D D D AaC1Q<!Q%@AJJNNNAaC1ac?QFUENCqzzQQQAaC1ac?QFUENCqzzQQQ AaCE!GQqSU1Wac!eAg6Aq	EuD #Q!&&$9:; ; ;  AqDAIaK1-1vu~F)T[]dJeeeeAqDFA;A?9VU\C]]]] !Q$q!t)q!fuenEuVaTGa#a&\2Ju4EFVaTGaQ[1:e3DEVaTGs1vgq\2Ju4EFVaTGc!fa[1:e3DE	HG H H H
 Ac%jLNAc%jL9E1:a_hr1o.03<Vb"X3NO O OAc%jLNAc%jL9Au:a^Xa_-/2;F2CD D DAc%jLNAc%jL9Au:QNHQO,.16FQD7QF+F1qdOXa^46FUH;E
3F55(+Xa_=?2@@ @ @r   c                  \   t        t        t        t              dz  t	        t              dz  z   d      t        t
        j                        t
        j                  u sJ t        t        t        dz  t        t        t              z  z   d      t        t
        j                        j                  t        t        t        t        dz  t        t        t              z  z   dz
  d      t
        j                              sJ t        t        t        t         t        t        t        z        t        t         t        z        z
  z  dz  d      t              t        t        t        dt        z  t        z  t        dz  z         t
        j                               sJ t        t        t        t              z   dkD  t        t
        j                        j                  t        t        t        t        t              z   dkD  t
        j                              sJ t        t        t        t#        t                    t              t        t
        j                        j                  t        t        t        t         t        t#        t                    z   d      t
        j                              sJ t        t$        t        z  t&        z
  t        t
        j                        j                  t        t        t        t$        t        z  t&        z
  d      t
        j                              sJ y )Nr   r   r'  r   )ro   r   rD   r   r@   r   r   r   rP   r   r   r%   rX   r   r   r   r   r   r   r   r   r   r   test_conditionsetr    s(   Bs1vqy3q619,a0!AGG 
WW   Bq!taAh*Aagg 

(<2adQs1vXo&91#=qwwG
HI I I "aRQqSC1I!56q8!<a 
F1ac"fr!tm,ajj9; ; ; AAJNAagg 

(<1s1v:>177;
<= = = Bs3q6{A&!'' 

(<2qb3s1v;&6#:AGGD
EF F F AqDFAqww 

(<2adQh?AGG<
=> > >r   c            	          t        t        t        t              t              t              t        t        t        t        t              t              t        j                        k(  sJ y)z? Checking equality of different representations of ConditionSetN)ro   r   rE   r   r   rP   r   r  r   r   r   test_conditionset_equalityr    s:     Bs1vqM1%aCFA)TTTTr   c                  T   t        t        dz  t        z
  dz
  t        t        dt                    t	        d      k(  sJ t        t        dz  dz
  t        t        dt                    t	        d      k(  sJ t        t        dz  dz
  t        t        dd            t	        d      k(  sJ y )	Nr   r   r   r   r   r   r  r   ro   r   rV   r   rT   r   r   r   test_solveset_domainr    s    AqD1HqL!Xa_51EEEAqD1Ha!R1Yq\AAAAqD2Iq(1b/2ilBBBr   c            	      .   t        t        t              t        t              z   t        t        j
                        } t        t        t        t        t              t        t              z   d      t        j
                        }| j                  |      sJ y r  )	ro   r%   r   rD   r   r   rP   r   r   )solutionrJ  s     r   test_improve_coverager    sY    AQAGG4H"1bQ#a&!&<aggFO_---r   c                  j   t        dt        dz  dz
  z  t        z   dt        dz  dz
  z  dz         } t        dt        z  t        z   dt        z        }t        | t        t        j                        t        j
                  u sJ t        |t        t        j                        t        j
                  u sJ y )Nr   r   r   )r   r   ro   r   r   r   )expr1expr2s     r   test_issue_9522r  
  s    q!Q$(|aAqD1H!12EqsQw!EE1agg&!**444E1agg&!**444r   c                     t        t        dz  dz   t        t        j                        g k(  sJ t        t        dz  dz   t        t        j                        dt        j
                  t        d      t        z  dz  z
  t        j
                  t        d      t        z  dz  z   gk(  sJ t        t        t              t        t        j                        dgk(  sJ t        t        t              t        t        j                        t        dz  t        t        dd      z  gk(  sJ t        t        t              dz   t        t        j                        t        t        dd      z  gk(  sJ t        t        d        y )Nr   r   r   r   r   c                  l    t        t        t        t                    t        t        j
                        S r   )rs   rD   r%   r   r   r  r   r   r   r   ztest_solvify.<locals>.<lambda>  s    CFQ(L r   )rs   r   r   r   r  r   r4   r   r&   r@   r   r   rD   r^   NotImplementedErrorr   r   r   test_solvifyr    s   1a4"9a)R///1a4!8Q,QVVd1gaik5I12$q'!)A+1E1G G G G3q61agg&1#---3q61agg&2a4HQN1B*CCCC3q6A:q!''*r(1a./@.AAAA
 LMr   c                     t        dt        dk  ft        dz  t        dk  ft        t              df      } t        dt        dk  ft        dz  dt        z  z   dz
  t        d	k\  f      }t        dt        t        d      ft        dz  t	        t              z  df      }t        dt        t        t
              ft        t
        z
  t        t              z  df      }t        | t        t        j                        dgk(  sJ t        |t        t        j                        d
dgk(  sJ t        |t        t        j                        dgk(  sJ t        |t        t        j                        t
        gk(  sJ y )Nr   r   r   r   Tr   r   r  r2  )
r7   r   r&   r   r   r   rD   rs   r   r   )p1p2p3p4s       r   test_solvify_piecewiser    s   	Aq2v;AqAvQ	?B	Aq3w<!Q$1*q.!r'!:	;B	Ar!Qx=1a4A;"5	6B	Ar!Ry>QVSVOT#:	;B 2q!''"qc)))2q!''"r1g---2q!''"qc)))2q!''"rd***r   c                     t        dd      } t        t        t        |             | t        j
                        dt        gk(  sJ t        d      } t        t        t        |             | t        j
                        J y )Nr   Tr   r   )r   rs   rD   r   r   r   r   r   s    r   test_abs_invert_solvifyr  )  s_    sD!A3s1v;177+2w666sA3s1v;177+333r   c                  	   t        dt              t        dgg      t        dgg      fk(  sJ t        dt              t        dgg      t        dgg      fk(  sJ dt        z  t        z   dt        z  z
  dz
  t        t        z
  t        z
  t        t        z   dt        z  z   dz
  g} t        dt        z  dt        z  z   t        z
  d      t        dt        z  dt        z  z
  dt        z  z   d      dt        z  t        z   dt        z  z
  g}t        | t        t        t              \  }}|t        g d	g d
g dg      k(  sJ |t        dgdgdgg      k(  sJ t        |t        t        t              \  }}|t        g dg dg dg      k(  sJ |t        dgdgdgg      k(  sJ t        t        z  t        z  t        t        z  z   t        t        z  z   t        z
  t        t        z  t        t        z  z   t        t        z  z   t        t        z  z   t        z
  t        t        z  t        t        z  z   t         t        z  z   t"        z
  gt        t        t        t              \  }}|t        t        t        z  t        t        gt        t        z   t        t        gt        t        t         gg      k(  sJ |t        t        gt        gt"        gg      k(  sJ t%        t&        fd       t%        t&        fd       t%        t(        d        t%        t(        d        t%        t(        d        t%        t&        d        t%        t&        d        t        t        gdt        z  g      t        dgg      t        t         gg      fk(  sJ t        t        t        t        dt        z  dz   z  dz   z  z   t              t        dt        z  t        z  dz   gg      t        t         dt        z  dz   z  gg      fk(  sJ t        t        t        t        z  t        t        z  z   dz
  gdt        z  dt        z  z   t        z
  gg      t        t              t        t        t        gddgg      t        dgt        gg      fk(  sJ t        t        t        dz   d      t              t        dgg      t        dgg      fk(  sJ t%        t*        d        t%        t*        d        t%        t&        d        y )Nr   r   r   r   r   r5  r   r  )r   r   r  )r   r   r   )r   r   r   )r   r   r   )r   r  r   )r  r   r  c                      t               S r   )ri   eqns3s   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>I  s    259 r   c                  :    t         t        t        t        g      S r   ri   r   r   r  s   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>K  s    251a)D r   c                  b    t        t        dt        z  t        z   dt        z        t        g      S r   ri   r   r   r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>M  s#    #6r!A#'1Q37G!#M r   c                  4    t        t        dz  gt        g      S r  ri   r   r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>N  s    #61vs#C r   c                  F    t        t        t        z  gt        t        g      S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>O  s    #6!uq!f#E r   c                  F    t        t        t        t              t              S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>R  s    22a8Q? r   c                  L    t        t        t        t        dz         t              S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>S  s    22aQ<C r   r"  r   r   c                  .    t        g t        t        h      S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>e  s    1"q!f= r   c                  F    t        t        t        z   gt        t        h      S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>f  s    11q5'Aq6B r   c                  F    t        t        t        z   ht        t        f      S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>g  s    2AE7QFC r   )ri   r   Matrixr   r   r   r~   r   r   r   r   r   r   r   r   r   r   r   r^   r   r}   	TypeError)eqns1eqns2r  Br  s       @r   test_linear_eq_to_matrixr  1  s   q!$!u(FFFFq!$!v(GGGG qS1Wqs]QA	1q51Q3;+;<E!ac	Aq!2acAaCi!A#or#:BqD1HqsNKEuaA.DAq
K;<<<<aS2$'((((uaA.DAq
J<====bTA3'(((( qSUQqS[1Q3"AaC!A#I!Oac$9A$=qsQqSy1Q3QR?RSEuaA.DAq1aa!eQ]Q1I>????aS1#'''' :9:
:DE
>MN
>CD
>EF :?@
:CD sQqSE*vse}frdVn.MMMM q1a1qkAo#66:1Q}vAaC!G~&67?9 9 9 9v
A#!)a-1Q319q=/* ,-.3AA &1#s"4766 6 6
 r!a%|Q/uvtf~4' ' ' ' 9=>
9BC
:CDr   c                      t        t        t        dt        z  dt        z  z   z  dt        z  z   d      t        t              t        dt        z  dt        z  dz   gg      t        dgg      fk(  sJ y )Nr   r   r   r   )ri   r   r~   r   r   r  r   r   r   test_issue_16577r  j  sh    r!QqS1Q3Y-!A#"5q91a@1acAg &1#-E1 1 1 1r   c                  r    t        t        t              dt              t        t        j                  fk(  sJ y r  )rl   r%   r   r   r   r   r   r   test_issue_10085r  o  s%    s1va"q!**o555r   c                     t        d      \  } }t        g dg dg dg      }|d d d df   |d d df   fx}\  dz  z   | z   |z   dz
  dz  z   d| z  z   |z
  dz
  dz  d	z  z   d
|z  z   d	z
  gt        dz  d|z  z
  dz   d|z  dz   |f      }t        | |f      |k(  sJ t        g| |f |k(  sJ t        || |f      |k(  sJ t        |g| |f |k(  sJ t        dt              \  } }t        || |      t        dz  d|z  z
  dz   d|z  dz   |f      k(  sJ t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        d        t        t        d        t        t        t        z   dz
  t        dz  t        z   dz
  gt        t        g      t         dz   t        dz   dz   fhk(  sJ t        t        t        gt        t        gg      t        t        gt         gg      f}t        t         t         z  t        t        z  z   t        t        z  t        t        z  z
  z  t        t         z  t        t        z  z
  t        t        z  t        t        z  z
  z  f      }t        |t        t        g      |k(  sJ t        g dg dg dg      t        g d      t        ft        t        t        f      t"        j$                  u sJ t        d      \  }}t        dt&        z  |z  dt&        z  |z  d|z  gdt&        z  |z  dt&        z  |z  d|z  gdddt&        z  ||z  z  gg d g      }t        |      t        dt&        ||z  z  f      k(  sJ t        g d!g d"g      }t        |t        t        t        t        t              t        t        dt        dt        f      k(  sJ t        d#      \  }	}
t        t        g d!ddddd|
gg            t        |	d|
f      k(  sJ t        d$      \  }	}
t        t        g d!ddddd|
gg            t        |	d|
f      k(  sJ t        d%      \  }	}
t        t        g d!ddddd|
gg            t        |	d|
f      k(  sJ t        d&      \  }	}t        |t)        d'            t        |	dd|f      k(  sJ |	|d(<   t        d)      |d(<   t+        t        |t)        d't                    j,                        d	k(  sJ t/        d*      }t         |t              dz
  g |t                    t        d+      k(  sJ dd,lm}m}m} ||z  }d-|z  t        z   t        z   d.|z  |z  dt        z  |z  z   gt        t        t              ||z  t9        d/d      z  |t9        d	d      z  fhk(  sJ t        t;        t        t        t        z         gt        t        g      t        dfhk(  sJ t        t;        t        t        t        z  z   dt        z         gt        g      d0hk(  sJ t        t;        dt        z   t        t        t        z  z         gt        g      d0hk(  sJ t        t        d1        t        g t        g      t"        j$                  u sJ t        dgt        g      t        fhk(  sJ t        t        gt        t        g      dt        fhk(  sJ t        t        dgt        t        g      dt        fhk(  sJ y )2Nzx1, x2, x3, x4)r   r   r   r   r"  )r   r   r   r   r5  )r   r   r   r   r   r   r   r"  r5  r   r   r  r   r   zx:4)clsc                      t               S r   rj   )Eqnss   r   r   ztest_linsolve.<locals>.<lambda>  s    x~ r   c                      t               S r   r  x1s   r   r   ztest_linsolve.<locals>.<lambda>  s    x| r   c                      t               S r   r  )r  x2s   r   r   ztest_linsolve.<locals>.<lambda>  s    xB/ r   c                       t         f      S r   r  )r  r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    xb"5 r   c                       t               S r   r  )r  r  r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    x1b"5 r   c                       t         g        S r   r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    xb"5 r   c                  0    t         gd   fD              S )Nc              3       K   | ]  }|  y wr   r   r%  s     r   r   z2test_linsolve.<locals>.<lambda>.<locals>.<genexpr>  s     .CQq.Cs   r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    x.C2r(.CD r   c                  p    t        t        t        z   dz
  t        dz  t        z   dz
  gt        t        g      S )Nr   r   r   )rj   r   r   r   r   r   r   ztest_linsolve.<locals>.<lambda>  s*    8QUQYQ
Q,G!Q#P r   c                  p    t        t        t              t        z   t        t        z   gt        t        g      S r   )rj   r@   r   r   r   r   r   r   ztest_linsolve.<locals>.<lambda>  s"    8SVaZQ,?!Q#H r   r   r   r   r   )r   r   r   )r   r   r4  r   r   r   z	A B J1 J2r   )r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   ztau0 tau1 tau2 _tau0ztau00 tau01 tau02 tau0ztau00 tau01 tau02 tau1z
x0, x2, x4r   r   r   _x0r   )r   )meternewtonkilor      ir  c                  n    t        t        t        dz  t        dz  t        z         gt        t        g      S r  )rj   r   r   r   r   r   r   r   ztest_linsolve.<locals>.<lambda>  s+    "QT1a4!8$%1v. r   )r   r  rT   rj   r   r^   r   r}   r   r   r   r~   r   r   r   r   r   r   r   r   r\   r   free_symbolsr   sympy.physics.unitsr&  r'  r(  r   r   )x3x4Msystem1r   system2J1J2	Augmatrixx0r%  r   r&  r'  r(  kNr  r  r  r  r  s                   @@@@@r   test_linsolver7  s  s   -.NBB 	!2ODEAq#2#vY!R%((Gda2INR!#R!B$Y2%5%:R%?bD1R4K!B$"$D RUQrT\A%r1R4!8R8
9CD2r2r*+s222D,BB+,333Gb"b"-.#555G/r2r2./3666U.NBBGRR,		B2	2qtax,1. . . . :-.
:+,
:/0
:56
:56
:56
:DE >PQ
>HIQUQYQ
Q/!Q8qb1fq!teai=P<QQQQ 	AA AaSzA!fG
qbdQqSj1Q319-!ac	AaC!A#I/FG
HCGaV$+++ 		9i01AyAQFQ1I&!**444 ;'LAq"b	
1R1RB	Ab"Q$r'1R4 	
AqsBrE{	
 I Iq!$	1aBi.(AAAA *,>?@IIq!Q1-Aq!Q?1KKKK 45OBBF.Aq!Q0DEF 
Ar3+,- - -67OBBF.Aq!Q0DEF 
Ar3+,- - -67OBBF.Aq!Q0DEF 
Ar3+,- - - &JBBI/4 
Ar1b)*+ + +If  Ifx#CU355A\CFGH H H 	AQqTAXJ!%4888 87	fBbD1HqL"R%+!E	12DD!Q&[#q))2hq!n+<=$? ? ? ?
 R1q5\NQF+Ax777RAaCQ'(1#.4&888RAq1Q3w'(1#.4&888
> / 0 B

***QC!1$'''QC!Q aVH,,,QFQF#Ax///r   c                  H    d } d} | |      \  }}}t        ||      |k(  sJ y )Nc                 H   t        dj                  |             }t        dj                  |             }||z   }g }t        j                   f| z  t        j                  f| z  z   }t	        ||      D ]!  \  }}|j                  ||z   ||z
  dz   g       # ||t        |      fS )Nzx:{}zy:{}r   )r   formatr   r   r   extendrT   )r   r   r   symseqsr   xiyis           r   _mk_eqs_solz/test_linsolve_large_sparse.<locals>._mk_eqs_sol  s    V]]1%&V]]1%&Bwwj1ny1},"bk 	/FBJJRb1-.	/D)C.((r   i  r  )r@  r   r=  r<  r   s        r   test_linsolve_large_sparserA    s2    
) 	A ^NCsC#%%%r   c                      t        g dg dg dg      } t        g d      }t        | |gt        t        t        f      t        d      k(  sJ t        g dg dg      } t        |       t        d      k(  sJ y )	N)r   r   r   )r   r   r   r#  )r   r   r   )r   r   r   )r   r   r"  )r   r   r   )r   r   )rL   rj   r   r   r   rT   )r  r  s     r   test_linsolve_immutablerC    sg    iI>?AZ(AQFQ1I&)J*????i45AA;)F++++r   c                     t        d      } t        dt        z        dt        dt        z        z  z
  dt        t              z  z   dz
  }t        t              dz  dt        t              z  z
  dz   }t        t              dz  t        t              z
  }t        t        dz         }t        t        dz         dz
  }dt	        t              z  }dt        z  }t        t        | d| z  t        z        t        j                        }t        t        | d| z  t        z  t        z         t        j                        }	t        t        | d| z  t        z  t        dz  z         t        j                        }
t        t        | d| z  t        z  dz
        t        j                        }t        t        | d| z  t        z  dz
  t        z         t        j                        }t        |t        t        j                        t        dt	        d      t	        d            k(  sJ t        t        |t        t        j                        |
      sJ t        t        |t        t        j                        t        ||	|
            sJ t        t        |t        t        j                        t        ||            sJ t        |t        t        j                        t        d      k(  sJ t        |t        t        j                        t        j                  k(  sJ t        |t        t        j                        t        j                  k(  sJ t        t        t        t!        dd            t        j                  k(  sJ y )	Nr   r   r   r   r  r   r   r  )r   r%   r   rD   r&   rQ   r   r   r   r   rp   r   rT   r   rW   r   rV   )r   r  r  f3f4f5f6f7r   r   s3s4s5s                r   test_solve_decompositionrM    sj   c
A	QqSAc!A#hJ	CF	*Q	.B	QQs1vX		!B	QSV	B	QUB	QUaB	
3q6B	
1B	&AaCF#QZZ	0B	&AaCFRK(!**	5B	&AaCFRTM*AJJ	7B	&AaCFQJ'	4B	&AaCFQJO,ajj	9Br1agg.)As1vs1v2NNNN$RAGG4b999$RAGG4eBB6GHHH$RAGG4eBmDDDr1agg.)B-???r1agg.!**<<<r1agg.!**<<<q!Xa^4

BBBr   c            	      4
   t        g g       t        j                  k(  sJ t        g t        t        g      t        j                  k(  sJ t        t        t        z
  dz
  g} t        t        gt        t        g      t        dt        f      k(  sJ t        | t        g      t        j                  k(  sJ t        t        t        dt        z  t        z  t        dz  z         t        j                        f}t        t        t        t              dz
  gt        g      t        t        |                  sJ t        t        t        dt        z  t        z  t        z         t        j                        dft        t        t        dt        z  t        z        t        j                        dff}t        t        t        t              t        dz
  gt        t        g      t        |       sJ t        t        dz  dz
  gt        g      t        dd      k(  sJ t        t        t        f      }t        t        t        z
  dgt        t              |k(  sJ t        dt        t        z
  gt        t              |k(  sJ t        t        t        z
  t        t        z
  gt        t              |k(  sJ t        t        dgt        t              t        dt        f      k(  sJ t        d      }t         |t              dg |t              t              t        dt        f      k(  sJ t         |t              dg |t               |t                    t        d |t              f      k(  sJ t        dt              }t        |dg|t              t        dt        f      k(  sJ t        t        dz  dz
  gt        t              g      t        t        j                  f      k(  sJ t        t        dz  dz
  gt        t                    t        t        j                  f      k(  sJ t        t        dz  dz
  gd      t        t        dz  f      k(  sJ t        t        dz  dz
  gt        t        z         t        t        j                  f      k(  sJ t        t!        dt        t        z         t!        dt         t        z   dz
        t!        dt         t        z   dz
        gt        t              t        t        j"                   d	t        j"                  z  f      k(  sJ y )
Nr   r   r   r   r  r  r   r  r   )rr   r   r   r   r   rT   rQ   r   r   r   r   r   rD   r   r   r[   r   r   )systemsolnr   r  s       r   test_nonlinsolve_basicrQ    s   r"+++r1a&!QZZ///Q^FsAq6"iA&7777vs#qzz111VAqs2v1}-qzz:<Dc!fqj\A3/5;1GHHHfQ!B,ajj91=fQ!B'4a8:Dc!fa!e_q!f5y$7GHHH1qzA3'9UD+AAAAaVDAqz1a(D0001q5z1a(D000Aq1u~q!,4441vq!$	1a&(9999A!ay!A$*iA.????!ay!A$!-Aqt91EEEEQA1vq!$	1a&(99991ay3q6(+y!**/GGGG1ay#a&)Y

}-EEEE1ay!$	1a4'(::::1ay!a%(Iqzzm,DDDD1a!ebQBFQJ&7ArAvz9JKQPQRV_
&&!AFF(W   r   c                      t        t        t        ft         t        f      } t        t        t              t        z
  gt        t              | k(  sJ y r   )rT   r   rr   r   r   )rP  s    r   test_nonlinsolve_absrS  ;  s9    aVqb!W%DA
|Q*d222r   c                  H    t        t        d        t        t        d        y )Nc                  0    t        t        dz  dz
  gg       S rj  rr   r   r   r   r   r   z2test_raise_exception_nonlinsolve.<locals>.<lambda>A  s    {AqD!G9b9 r   c                  .    t        t        dz  dz
  g      S rj  rV  r   r   r   r   z2test_raise_exception_nonlinsolve.<locals>.<lambda>B  s    {AqD!G95 r   )r^   
IndexErrorr   r   r   r    test_raise_exception_nonlinsolverY  @  s    
:9:
:56r   c                     t        t        t              dz
  t        t              dz
  gt              t        j
                  k(  sJ t        t        t        dt        z  t        z  t        dz  z         t        j                        f} t        |       }t        t        t        t              dz
  t        t              gt              |      sJ y r  )rr   rD   r   r@   r   r   rQ   r   r   r   r   rT   r   )soln1rP  s     r   test_trig_systemr\  E  s     A
CFAI/3qzzAAAfQ!BA.

;=EUDc!fqj#a&115t<<<r   c                     t         t        z   t        dz  z
  t        t               t        t              z   dz
  g} t	        t        t        t        t        z  t        dz  z         t        j                        t	        t        t        t        t        z        t        j                        f}t        |      }t	        t        t        t        t        z        t        j                        t	        t        t        t        t        z  t        dz  z         t        j                        f}t        |      }||z   }t        t        | t         t        g      |      sJ t        t               t        t              z   t        d      dz   dz  z
  t        t               t        t              z
  t        d      dz
  dz  z
  g} t        t	        t        t        dt        z  t        z  t        dz  z         t        j                        t	        t        t        dt        z  t        z  t        t        dd      z  z         t        j                              }t        t	        t        t        dt        z  t        z  t        dz  z         t        j                        t	        t        t        dt        z  t        z  t        t        dd      z  z         t        j                              }t        t        | t         t        g      t        ||f            sJ y )Nr   r   r   r   r   )r   r   r   rD   rQ   r   r   r   r   rT   r   rr   r4   rW   r   )syssoln_1soln_2rP  soln_xsoln_ys         r   test_trig_system_failrc  N  s    q52a4<Q#a&1,
-Cva21-qzz:1R4!**-/FvFva2

31R4A:&

35FvFF?DS1a&)4000 q6CF?d1gai]*CFSVOtAw{Ao,M
NC8F1ac"fr!tm4ajjA1Q3r6Bx1~$556

CEF8F1ac"fr!tm4ajjA1Q3r6Bx1~$556

CEFS1a&)9ff5E+FGGGr   c                     t        dd      \  } }}}}}t        | |z  | |z  | z
  g| |g      t        d|f      k(  sJ |dz  ||z  z   ||z
  g}t        |||g      t        d| | f      k(  sJ ||z   |z   |z   }||z  ||z  z   ||z  z   ||z  z   }||z  |z  ||z  |z  z   ||z  |z  z   ||z  |z  z   }	||z  |z  |z  dz
  }
|||	|
g}d|z  | d|z  t        |      t        d      z
  f}d|z  | d|z  t        |      t        d      z
  f}t        ||      }t        |||||g      |k(  sJ t        | d	z  d
| dz  z  z
  || z  z   | t        dz  z  |t        z  dz
  g| |t        g      ddt        z  t        fhk(  sJ y )Nzx, y, a, b, c, dT)extended_realr   r   r   r   r   r   r   r   )r   rr   rT   r   )r   r   r~   r   r   r   rO  eq1eq2eq3eq4r   r   rP  s                 r   %test_nonlinsolve_positive_dimensionalrk  f  s   1FAq!Q1!QqS1W~1v.)QF2CCCCdQqSj!a% Fv1v&)FaR!H*EEEE q519q=C
A#!)ac/AaC
C
A#a%!A#a%-!A#a%
!A#a%
'C
A#a%'A+C3S!FqD1"ac9Q<)A,67DaC!RT9Q<)A,67DT4 Dv1a|,4441qAv!+Qq!tVQqS1W=1ayI!QK=  r   c                     t        dd      \  } }}t        | dz  |z   dz
  | dz  |z   g| |g      t        j                  k(  sJ | dz   |f}t        | |z   dz  dz
  | |z   dz
  g| |g      t	        |      k(  sJ | dz  |dz  z
  g}t	        | |f||f      }t	        t        |       |ft        |      |f      }||z   }t        || |g      |k(  sJ | dz  |dz  z
  g}t	        || f||f      }t	        |t        |       f|t        |      f      }||z   }t        ||| g      |k(  sJ | dz  |z   dz
  | |z
  dz
  g}t        || |f      t        ||| f      k7  sJ t        | dz   |dz  z
  |z   d| z  d|z  t        j                  g| ||g      t        j                  k(  sJ t        | |z   |z   t        j                  t        j                  t        j                  g| ||g      t        j                  k(  sJ | dz   |dz  z  | |z  |z  z   |dz  z   d| z  |dz  z  ||z  z   | |z  d|dz  z  z   d| dz  z  |z  | |z  z   g}t        || ||g      t	        dd|f| ddf      k(  sJ y )	Nr   Tr   r   r   r   r  r   )r   rr   r   r   rT   r   r   )r   r   r   r   rO  	soln_realsoln_complexrP  s           r   test_nonlinsolve_polysysro  }  s   id+GAq!1q1adQh/!Q8AJJFFF
aAQ
QA	2QF;y|KKKdQTk]FA2q'Aq6*Is1vgq\CFA;7L
l
"Dv1v&$...dQTk]F!aR1a&)Ia#a&\As1v;7L|#Dv1v&$...dQhlAEAI&Fv1v&+fq!f*EEEEA1q("Q$1aee<q!QiHAJJVVVA	155!%%7!QCqzzQQQ!teAqDj1Q3q5 1a4'AadQqS!A#!Q$,1a4PQ	TUVWTWXFv1ay)Y1ay1a)-LLLLr   c                     t        dd      \  } }}}| |z   |z  |dz  z
  dz   g}||z  |dz  z
  dz   |z  }| |f}t        || |g      t        |      k(  sJ |dz  | dz  z  |dz  |dz  z  t        |       z  z
  g}|| df}t        | dz         t	        |       z  | |f}t        | dz        t	        |       z  | |f}	|  t        | dz        z  | |f}
| t        | dz        z  | |f}|| |g}t        ||
|||	      }t        ||      |k(  sJ y )Nz
x, y, z, nTr   r   r   )r   rr   rT   r%   r   )r   r   r   r   rO  s_xrP  soln_real_1soln_real_2soln_real_3soln_complex_1soln_complex_2r<  s                r   #test_nonlinsolve_using_substitutionrw    sQ   d3JAq!Q1uai!Q$"#FQ3A:>1
CD!9Dv1v&)D/999d1a4i!Q$q!t)CF**+Fa)K!H9SV#Q*Kqs8CF?Aq)KbQqSk1a(NAaCj!Q'Nq!9D[..["Dvd#t+++r   c                     t        d      } t        t        t        t              t        t              z
  dt        z  dz
  gt        t        g      t        t        | d| z  t        z  t        z  t        t        t        dd                  z         t        j                        t        dd      fh      sJ t        t              t        t              z
  dt        t              z  dz
  g}t        t        |t        t        g      t        t        | t        d| z  t        z  t        z   z  t        t        t        d                  z         t        j                        t        d       ft        t        | t        d| z  t        z  t        t        d| z  t        z  t        z  t        d      z
              z   z  t        t!        t        d| z  t        z  t        z  t        d      z
                    z         t        j                        t        t        | d| z  t        z  t        z  t        d      z
        t        j                        fh      sJ t        t              t        t              z
  t        dz  dz
  g}t        t        |t        t        g      t        t        | t        d| z  t        z  t        z   z  t        t        d            z         t        j                        dft        t        | d| z  t        z  t        z  t        t        d            z         t        j                        dfh      sJ t        t              dz
  t        dz  dz
  g}t        t        |t        t        g      t        d      t#        d       ft        d      t#        d      ft        t        | d| z  t        z  t        z  t        d      z         t        j                        t#        d       ft        t        | d| z  t        z  t        z  t        d      z         t        j                        t#        d      fh      sJ y )Nr   r   r   r   r   r  )r   r   rr   r%   r   rD   r   rQ   r   r   r   r&   r   r   r   r   r   r4   )r   rO  s     r   test_nonlinsolve_complexry    sL   c
Ac!fs1voqsQw7!Q@	&AaCE"Hs3x1~+>'??@!**	MxXY[\~^C` a a a !fs1voqQx!|,FVaV,	&Aqs2v{Os3q6{+, -./jj
:<?F7	D	&Aqs2vC!Ab3q60A,B(CCDs3qs1uRx#a&'8#9:;< =>?jj
J1Q3q58c!f,-qzz:	</= > > > !fs1voq!tax(FVaV,	&Aqs2v{Oc#a&k9:AJJ	GL	&AaCE"Hs3q6{23QZZ	@!D/F G G G !fqj!q&1*%FVaV,	Q$q'SVT!W-	&AaCE"Hs1v-.

	;d1gXF	&AEAINSV34ajj	A47K/M N N Nr   c                      t        t        t              t        z
  t        z
  t        dz
  gt        t        t        g      dt        z
  dt        fhk(  sJ y r   )rr   r4   r   r   r   r   r   r   test_nonlinsolve_radicalr{    s>    Q!aQ/!Q;Q1NNNr   c                  T    ddgt        t        t        z   dz  dz
  t        dz  t        dz  z
  dz
  gt        t        g       t         fdt	        d      D              sJ t        t        t        z   dz  dz
  t        t        z   dz  dz
  gt        t        g      t
        j                  k(  sJ t        t        dz  t        dz
  dz  z   dz
  dt        z  d	z
  dt        z  gt        t        g      t
        j                  k(  sJ t        t        dz  t        z   dz
  t        t        z   dz  t        t              gt        t        t        g       g d
t         fdt	        d      D              sJ t        t        t        dz  z
  t        dz  t        z
  d	z   gt        t        g       dddt        z  z
  ddt        z  z   fddt        z  z   ddt        z  z
  fddt        z  z
  ddt        z  z
  fddt        z  z   ddt        z  z   fgt         fdt	        d      D              sJ y )N)g      g      )g      ?g      ?r   r4  g      ?c              3      K   | ];  }t        d       D ]+  }t        j                  |   |   |   |   z
        dk   - = ywr   &.>Nranger7  argsr   r   r   r  r   s      r   r   z+test_nonlinsolve_inexact.<locals>.<genexpr>  R      4%(4%& 388A;q>#a&)+,t3 43 4   AAr  g      ?r   )g[l׿g[l?r   r  )g[&,t=?g[&,t=r   c              3      K   | ];  }t        d       D ]+  }t        j                  |   |   |   |   z
        dk   - = yw)r   r  Nr  r  s      r   r   z+test_nonlinsolve_inexact.<locals>.<genexpr>  r  r  r   r   )gFgZ*4?gr2ǿgdxAW?gyU;~Fg ;W2%?gqy?g??gأ}?gZ A?c              3      K   | ];  }t        d       D ]+  }t        j                  |   |   |   |   z
        dk   - = ywr~  r  r  s      r   r   z+test_nonlinsolve_inexact.<locals>.<genexpr>  sR      4%(4%& 388A;q>CF1I-.5 45 4r  )
rr   r   r   r   r  r   r   r&   r   r   )r  r   s   @@r   test_nonlinsolve_inexactr    s)   ^
,C
AzA~q!tad{T'9:QF
CC 4a4 4 4 4 Q
QQ
T(9:QFCqzzQQQ1C!|+f4acCi1E1vN::   q!tax#~Az3q6:Q1I
FC5C  4a4 4 4 4 q1a4xAC01a&
9C0!1!!33 1! 335!1!!33 1! 335 1! 33 1! 335 1! 33 1! 3356C  4a4 4 4 4r   c            	         t        dd      \  } }t        dt        |dz        z  |f      }t        |  t        t	        |             z  |f| t        t	        |             z  |f      }t        | t	        | dz        z  | f      }t        dt        |dz        z  |      }t        | dz  |dz  t	        |       z  z
  g| |g      |k(  sJ t        | dz  |dz  t	        |       z  z
  g|| g      |k(  sJ t        | dz  |dz  t	        |       z  z
  g|| g      |k(  sJ t        | dz  |dz  t	        |       z  z
  g| |g      |k(  sJ y )Nx, yTr   r   )r   rT   r$   r4   r%   rr   )r   r   r[  soln2soln3soln4s         r   test_solve_nonlinear_transr    sU    6%DAqq!A#*+Er$s1v,*QtCF|^Q,?@EqQqSz1o&Ea1oq)E1q!tCF{*+aV4===1q!tCF{*+aV4===1q!tCF{*+aV4===1q!tCF{*+aV4===r   c                  L   t        d      \  } }}}}}| | z  ||z  z   d| z  |z  |z  z
  ||z  z
  }| | z  ||z  z   d| z  |z  |z  z
  ||z  z
  }||z  ||z  z   d|z  |z  |z  z
  | | z  z
  }t        |||g|||g      t        d|z  |z  dt        | dz  |dz  |dz  z  z   |dz  z
        z  z
  dt        | dz  |dz  |dz  z  z   |dz  z
        z  | z  d|z  |dz
  z  |dz   z  | z  d|z  t        | dz  |dz  |dz  z  z   |dz  z
        z  | z  z   fd|z  |z  dt        | dz  |dz  |dz  z  z   |dz  z
        z  z   dt        | dz  |dz  |dz  z  z   |dz  z
        z  | z  d|z  |dz
  z  |dz   z  | z  d|z  t        | dz  |dz  |dz  z  z   |dz  z
        z  | z  z
  f      k(  sJ y )Nza1, b1, c1, ca, cb, cg       @r   r   g      r   )r   rr   rT   r4   )	a1b1c1cacbcgrg  rh  ri  s	            r   test_nonlinsolve_issue_25182r    sS   $%=>BBB
R%"R%-"R%(2+
%2
-C
R%"R%-"R%(2+
%2
-C
R%"R%-"R%(2+
%2
-CS#R5	RSb!eb!eBEk1BE9::	:T"a%"a%A+%A-..r1Ra"q&!"$s2vd2q52q5Q;3FQ3N.O'OPR'RR	T 
RSb!eb!eBEk1BE9::	:DQQr1u$r1u,--b0Ra"q&!"$s2vd2q52q5Q;3FQ3N.O'OPR'RR	T	:U U U Ur   c                  z)   t        d      } d| dz  z  | dz  z   dz   t        z   }t        ||       }t        |j                  d   ddt        z  z
  z
        dk  sJ t        |j                  d	   d
dt        z  z   z
        dk  sJ t        |j                  d   ddt        z  z
  z
        dk  sJ t
        j                  | dz  z  | dz  z   t
        j                  z   t        z   }t        dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z   t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  t        d      dz  z
  dt        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  z  z
  t        dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z   t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  dt        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  z  z   z  z   t        d       dz  t        d      dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z
  dt        d	t        d	       dz  t        d      t        z  dz  z
  t        d      dz  dt        z  z   t        dddt        z  z   dz  z         dz  z   t        d	      dz  z  z  z        z  dz  z
  dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   t        dt        d	t        d	       dz  t        d      t        z  dz  z
  t        d      dz  dt        z  z   t        dddt        z  z   dz  z         dz  z   t        d	      dz  z  z  z        z  dz  dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   t        d      dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   z  z   t        d       dz  dt        d	t        d	       dz  t        d      t        z  dz  z   t        d      dz  dt        z  z   t        dddt        z  z   dz  z         dz  z   t        d	      dz  z  z  z        z  dz  z
  t        d      dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   t        t        d       dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   dt        d	t        d	       dz  t        d      t        z  dz  z   t        d      dz  dt        z  z   t        dddt        z  z   dz  z         dz  z   t        d	      dz  z  z  z        z  dz  z
  z  z         }t        ||       |k(  sJ y )Nr   r  r   r   r   g	nBg/H|n$?r  r   guӿg+N?gb?gqw?i|  r      r.  +   r  r   i 6   r	  )r   r   ro   r7  r  r   r   rT   r4   rD   r>   r@   r!   r    )r   r  r  r  s       r   test_issue_14642r    s   sA	QT!Q$s	1	BAHx}}Q#47H7J#JKLPTTTTx}}Q#58H8J#JKLPTTTTx}}Q#47H7J#JKLPTTTT 
1QT	!&&	 	"B
qay1a0T!C&)_Q5F1GGIbE!G$q'	%!A$q&/ 9#d1S6"9o? ; !! 1a! !!$T2$q'	%!A$q&/0IQsVBY!"1##$1% ,%'(ay1a'@TcF2IFF B ((eAg(&+' &(()&* "++ ,-	- 01tAv	6 9:#dBd1gIead1fo%c$qvby/!*;&<<Q>E?AB47AaDFOBQsVBY 12B334B578uQwB?D@ ?AAB?C ;D 9DEFGJAaDFOJ$$'QsVBY(9$:J;;<J=?@uQwJGIJIK!DG)EAaDFO+CQsVBY0A,BB1DDqHIILMaDMH F9		 $q'	%!A$q&/1#d1S6"9oa6G2HHJbE!G$q'	%!A$q&/ 9#d1S6"9o? ; !! !Q    #D"qay1a/H3OAJ 0 0! +!#$T!W9UQqT!V_#<SafRiB > $$bE!G$* %%  !!! "#	# &'s4aQi!Q6OQsVBY!"7##$7% 2%'(ay1a'@T!C&K FF B (("a( 1! ,""#,$ (% &%&'!DG)EAaDFO*CCcF2III E ++eAg+&()**-/!DG)EAaDFO2KQsVBY!"3##$3% .%'(-)*),-aDF)4 '4&5	5 66" 9:!uQwa1GLAaDFOL$$'QsVBY(9$:L;;<L=?@uQwLGIJKK!DG)EAaDFO+CQsVBY0A,BB1DDqHKILMaDMJ B D"qay1a8T!C&)_Q=N9OO  4751Q46?*3tAcF2Iq/@+AA!CaeAgMO P B
 B 8
 badU1WtAwqy{2QrU1Wr!t^d4"Q$YNL GG 6!"1a5) ) * + ++,-8- 234751Q46?1J33OAL 2 2!#$R572+-.1/24qay1a7PQsVBY!"8##$8% 3%'(2)1),-aDF0447b1T!W9AaDFODQsVBY 12D334D5 ?578ay1a7PQsVBY!"8##$8%'(uQw8/>0 911293 5404 56	06
86 9:2badU1WGAIaKFB%'BqD.4RT	A~0E+Fq+HHAaDM E B ? <<ay1a0T!C&)_Q5F1GGIbE!G$q'	%!A$q&/ 9#d1S6"9oa>O:P P! d1f!$QtAwYuqtAv-Fs4cF2ILL H .. )Qi!Q7D3OA<M8NNqPbE!G( ##  	< "!Wqay1a'@T!C&K FF B ((uQw(!"'#&(1T!W9UQqT!V_+DScF2IJJ F ,, '& ' #$Q46&+ ++.tR!DG)EAaDM E ;4#r	?1$%;&&';( 6(*+DG)EAaDFO*CCcF2III E ++eAg+&5' 0(()0* ,++ ,-	-
<- 
9.8.( 12!uQw2a1Q4%'GAIaKCB%'BqD.4RT	A~0E+Fq+HHAaDM B ? < :: 01g$q'	%!A$q&/ 9#d1S6"9oa>O:P PQR RbE!G! $q'	%!A$q&/ 9#d1S6"9oa>O:P P!  d1f !$QtAwYuqtAv-Fs4cF2ILL H .. )Qi!Q7D3OA<M8NNqPbE!G( ##  	0  !ay1a8T!C&)_Q=N9OOPQQbE!G $q'	%!A$q&/ 9#d1S6"9oa>O:P P! d1f!$QtAwYuqtAv-Fs4cF2ILL H .. )Qi!Q7D3OA<M8NNqPbE!G( ##  	
0 a1T!W9UQqT!V_+DScF2IJJ F ,,eAg,&()+*-/!DG)EAaDFO2KC3OAM 3 3! .!#$-%+%()!Q*0 !003D"qayaDFJ @QsVBY)*@++,@- ;-/0ay1a/H3OAJ 0 0!#$R570+:, 5--.5/ 10!0 12	!2 78Qi!Q6OQsVBY!"7##$7%'(uQw7/1263681T!W9UQqTRSV_;TQsVBY!"<##$<% 7%'(6)6),-aDF5447b1T!W9UaDFN DQsVBY)*D++,D- ?-/0ay1a/H3OAJ 0 0!#$R570+>, 9--.9/ 5050 12	52	!2 56badU1WtAwqyQR{=RrU1Wr!t^d4219q.#89!;;qtAvF=G :H 7I 5IIJ5K	!K 	L0LK8MCt B?c!!!r   c                     t        d      x} \	  }}}}}}}}}	||	z  ||	z  z
  |z
  |||	z  z
  |z
  ||	dz  z  ||	z  z   ||	z  z
  |z
  |	| |	z  ||	z  z   |z   z  |	| ||	z  z   |z   z  f}
t        |||	z  z   | |	z  ||	z  z   |z   |	dz  z  |||	dz  z  ||||t        |	hdh      f	|||	z  z   ||	z  ||	z  z
  |z
  |	dz  z  dz  |||	dz  z  ||||t        |	hdh      f	      }t        |
g|  |k(  sJ y )Nzax bx cx gx jx lx mx nx qr   r   r   r   rT   rS   rr   )Vaxbxcxgxjxlxmxnxr   r   r   s               r   test_issue_13961r  L  st   .56Q.RRA+RRRR	A1r	219r>2ad7RT>BqD+@2+Eq2#a%RTUVRV,Y[J[G\^_bdadgijkgkaknpap^qrA
R"Q$Y"QA!2AqD 8"bAgr2rSUWacdbehigjWkl"Q$YA1r!11a4 7 :B1a4RQSUWYcefdgjkilYmnpCq1$$$r   c                      t        t        t        dz   dz
        t              } t        | j                  d   dt
        z  z         dk  sJ t        | j                  d   dt
        z  z
        dk  sJ y )Nr   r  r   g;f?r  r   )ro   r4   r   r7  r  r   )	solutionss    r   test_issue_14541r  V  si    q!teck*A.Iy~~a !223t;;;y~~a !223t;;;r   c                  |   dt         z  t        t        dz   t         dz  z
        z  t        t              z  } t	        d      }t        | t         t        j                        |k(  sJ t        t        t        dz  t         dz  z
        t        dz  z
  t         t        j                        t        j                  u sJ y )Nr  r   r   r'  )r   r%   r   r   rT   ro   r   r   r>   r   r   )exprr   s     r   test_issue_13396r  \  s    a4QTEAqDL!!#a&(D
A,CD!AGG,333 DA1%bd*Aqww71::EEEr   c                  d
   t        t        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z          dz  t        t        dt        dd      t        d      dz  z   t        dd      z  z  ddt        dd      t        d      dz  z   t        dd      z  z  z  z   dt        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         z  z               dz  z   t        t        dt        dd      t        d      dz  z   t        dd      z  z  ddt        dd      t        d      dz  z   t        dd      z  z  z  z   dt        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         z  z                dz  t        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         dz  z
  t        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         dz  t        t        t        dt        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         z  dt        dd      t        d      dz  z   t        dd      z  z  z
  ddt        dd      t        d      dz  z   t        dd      z  z  z  z               z  dz  z
  t        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         dz  t        t        t        dt        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         z  dt        dd      t        d      dz  z   t        dd      z  z  z
  ddt        dd      t        d      dz  z   t        dd      z  z  z  z               z  dz  z         } t        t        dz  t        z   dz
  t              | k(  sJ y )	Nr  r   r   r  iQ     r   r   )rT   r4   r   r   r   ro   r   r   s    r   test_issue_12032r  f  s   
T"a!R49S=!@HQPQN SSTXa_tCy}<AOOP Q QQRSR!R49S=!@HQPQN SS8Ar?T#Ys]#BhqRSn"U UVWtB8Ar?T#Ys]+JhWXZ[n*](]$^$%x2c3'F(STVW.&Y$Y%Z  [ [[ \ ] ^___ #b(1b/DIcM"AXaQR^!TTHQOd3im$CxPQST~#V!VWXRHQOd3im,KxXY[\~+^)^%_%&B$s)C-(G8TUWX>'Z%Z&[ !\ \\ ] ^ ^ _`` QB$s)C- ?8Aq>RRSHQOd3im;x1~NNO PPQR	R QB$s)C- ?8Aq>RRSHQOd3im;x1~NNO PPQRd3r$r1hq"oS	#.MQYZ[]^Q_-`+`'a'((1b/DIcM*IXVWYZ^)\'\(] #^  ^ (1b/DIcM"AXaQR^!TT U  !!Xa_tCy}%DQRTU$W"WX Y Z [ [ \]]] QB$s)C- ?8Aq>RRSHQOd3im;x1~NNO PPQRd3r$r1hq"oS	#.MQYZ[]^Q_-`+`'a'((1b/DIcM*IXVWYZ^)\'\(] #^  ^ (1b/DIcM"AXaQR^!TT U  !!Xa_tCy}%DQRST$V"VW X Y Z Z [\\\%]C0 AqD1HqL!$+++r   c                  j    t        dt        t              z  t              t        j                  k(  sJ y r   ro   r4   r   r   r   r   r   r   test_issue_10876r    s#    Ad1gIq!QZZ///r   c                     t        t        t        t        z   t	        t              gt        t        g      t        t        t        t        dt        z  t        z        t        j                        t        t        t        dt        z  t        z        t        j                        ft        t        t        dt        z  t        z  t        z
        t        j                        t        t        t        dt        z  t        z  t        z         t        j                        f            sJ t        t        t        t        z   t	        t              t        t              z   gt        t        g      t        t        t        t        dt        z  t        z  dt        z  dz  z
        t        j                        t        t        t        dt        z  t        z  dt        z  dz  z         t        j                        ft        t        t        dt        z  t        z  dt        z  dz  z
        t        j                        t        t        t        dt        z  t        z  dt        z  dz  z         t        j                        f            sJ y )Nr  r   r   r   r"  )r   rr   r   r   rD   rT   rQ   r   r   r   r   r   r@   r   r   r   test_issue_19050r    s   a!eSV_q!f58F1bd2g.

;XfQPQRSPSTVPVFWYZYcYc=devaAb2.

;XfQPQRSPSTVPVY[P[F\^_^h^h=ij	lm m m a!eSVc!f_51v>8F1bd2g"Q&67DhvVWYZ[\Y\]_Y_bcdfbfghbhYhOiklkukuFvwfQ1R!B$q& 011::>PQSTUVSVWYSY\]^`\`ab\bSbIcefeoeo@pq	st t tr   c                     t        t              t        t              z  t        t              t        t              z  dz
  g} t	        t        t        t        dt        z  t        z        t        j                        t        t        t        dt        z  t        z        t        j                        ft        t        t        dt        z  t        z  t        z         t        j                        t        t        t        dt        z  t        z  t        z         t        j                        f      }t        | t        t        g      }t        t        |      t        |            D ]E  \  }}t        |      t        |      cxk(  rdk(  sJ  J t        d t        ||      D              rEJ  t        |      t        |      k(  sJ y )Nr   r   c              3   F   K   | ]  \  }} |j                   |        y wr   )r   )r   r~   r   s      r   r   z#test_issue_16618.<locals>.<genexpr>  s     9TQ:1::a=9s   !)rD   r   r   r@   rT   rQ   r   r   r   r   r   rr   r   r   r   r   )eqnr9  r   i0j0s        r   test_issue_16618r    sF   q6#a&=#a&Q-!+
,C XfQ!B/<hvaQRSTQTUWQWGXZ[ZdZd>ef	&AaCFRK(!**	5xq!A#b&SU+@VXYXbXb7cdfC
cAq6
"CgclGCL1 :B2w#b'&Q&&&&&9SR[9999: s8s3xr   c                      t        ddt        z  z  dt         z  z  dt        z  z
  ddt        z  z  t        d      dt        z  z  z
  gt        t              t	        t        d       t        d      z  df      k(  sJ y )N    r   r   r  r   r   Q   )rr   r   r   r   rT   r&   r   r   r   test_issue_17566r    sr    AqD	!qb')AqD0"ad)ad1a4i2GH!QOCG8CF?A&'( ( (r   c                  \   t        d      } t        t        dz  t        t              z  t              j	                  t        t        t        | d| z  t        z  t        z         t        j                        t        t        | d| z  t        z        t        j                                    sJ y )Nr   r   )r   ro   r   rD   r   rW   rQ   r   r   r   r   r   s    r   test_issue_16643r    s    c
AAqDQK#,,U8F1ac"frk<RTUT^T^3_3;F1ac"f<Mqzz3Z.\ ] ] ]r   c                      t        d      \  } }t        dd|z  z  d| z  z  d| z  z
  dd|z  z  d|  z  z
  g||       t        t        d       t        d      z  df      k(  sJ y )	Nzn mr  r   r   r  r   r  r   )r   rr   rT   r&   )r   r   s     r   test_issue_19587r    sv    
%.CAa1a41q!t+R1WqA2w->?AFCG8CF?A&'( ( (r   c                     t        t        dz  t        dz  z         t        d      z
  t        t        z   dz
  g} t        | t        t        g      t	        dd      k(  sJ t        d      }t        t              dz  t        t              z
  t        dz  z   dt        t              z  dz
  g}t        d       }t        t        dt        z         t        t        d            z
        }t	        ||f|| f      }t        |d|z  t        z  t        z  t        d       z         }t        |t        j                        }t        |t        t        dt        z         t        d|z  t        z  t        z  t        d       z         z               }t        |t        j                        }t        |t        t        dt        z         t        d|z  t        z  t        z  t        d       z         z                }t        |t        j                        }	t	        ||f||	f      }
||
z   }t!        t        |t        t        g      |      sJ y )	Nr   r   r   )r   r   )r   r   r   r   r   )r4   r   r   rr   rT   r   r%   rD   r   r&   r   r   r   rQ   r   r   r   )rO  r   r=  s_real_ys_real_zrm  lams_complex_ys_complex_z_1s_complex_z_2rn  rP  s               r   test_issue_5132_1r    s   1a4!Q$;$r(*AEAI6Fv1v&)FF*CCCCc
Aq619s1v1$aAhl
3CAwHS1XICF+,H8X.H90EFI
AaCE"HAw&
'C3

+K
D#ac(S1QrSVG);%<<=
>CS!**-M
T3qs8)c!A#a%(c!fW*<&==>>
?CS!**-M-8-,H-8-,H*L |#DS1a&)4000r   c                     t        dd      \  } }t        |       dz  t        |      z
  t        dz  z   g}t	        d      }t        t        dz   t        |      z         dz  t        f}t        |t        d|z  t        z  t        t        dz   t        |      z         z   z  dz  t        t        t        dz  t        |      z
              dz  z         }t        |t        j                        }|t        f}t        ||      }t        t!        || t        g      |      sJ t"        | dz  z
  |dz  z
  t%        t&              || z  z
  g}	t)        t"        t%        t&              dz  dz   z        }
t)        t"        t%        t&              dz  dz   z        t%        t&              z  }t        |
|f|
 | f      }t!        |	| |g      |k(  sJ y )Nr  Tr   r   r   r   )r   r%   rD   r   r   r&   r   r   r   r   r   rQ   r   r   rT   r   rr   r   rE   r   r4   )r   r   r=  r   rm  r  imgrn  rP  rO  rq  s_ys               r   test_issue_5132_2r    s   6%DAqq619s1v1$
%Cc
AadUSV^$Q&*I
!Q!BadUSV^!445a7#c!Q$Q->P:QRS:SS
TC
3


#C8LY-DS1a&)4000!Q$hAos1v!|,F
q#a&!)a- 
!C
q#a&!)a- 
!#a&
(Cc3Z3$.Dv1v&$...r   c                  d    t        dd      \  } }t        | dz  | z   | |z
  g| |g      ddhk(  sJ y )Nza, bTr   r   r$  rf  )r   rr   rq  s     r   test_issue_6752r    sA    6%DAq1q!a%(1a&1h5GGGGr   r`   c            	         ddl m} m} t        t        t
        t        t        t        t        g}t        t        t        z  z   t
        t        z  z
  t
        dt        z  dt        z  z   dt        z  z   z  t        t        z  z
  t        t        z  z
  t        dt        z  dt        z  z   dt        z  z   z  t
        t        z  z
  t        t        z  z
  t        dt        z  dt         z  z   dt"        z  z   z  t        t        z  z
  t        t"        z  z
  t        dt"        z  d| z  z   d|z  z   z  t        t"        z  z
  t        |z  z
  t        d|z  dt$        z  z   z  t        |z  z
  g}t'        t)        ||            dk(  sJ y )Nr   )or   r   )r  r  r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   )r  r   r<  r=  s       r   test_issue_5114_solvesetr    s'     q!Q1a Dqs7QqS=qsQqSy1Q3!A#!#	1Q319qs?ac!AaC'	1Q319qs?ac!AaC'	1Q319qs?ac!AaC'	1Q319!C {3%&!+++r   Hangsc                  ~   t        d      \  } }}| dt        z  z   |dt        dz  z
  z  t        z  z
  dt        z  dz  t        z  z
  |dt        dz  z
  z  t        z  dt        z  z
  dt        z  z
  t        t        z   |z
  g}t        t        |g}t        t	        ||            dk(  sJ | dt        z  z   |dt        dz  z
  z  t        z  z
  dt        z  dz  t        z  z
  |dt        dz  z
  z  t        z  dt        z  z
  dt        z  z
  t        t        z   |z
  g}t        t        |g}t        t	        ||            dk(  sJ y )Nzlam a0 concr   r   g{Gzt?g̫;?)r   r   r   r   rr   )r  a0concr=  syms        r   _test_issue_5335r    s6    M*MCT19r1qs7|A~%a	!3q1Q3w<>AaC"3A"55q54<C a*C{3$%***19r1qs7|A~%a	!3q1Q3w<>AaC"3A"55q54<C a*C{3$%***r   c                     t        dd      \  } }t        | dz  |dz  z         dz
  t        |dz  |  dz   dz  z         dz
  }}t        dd      dt        d	      z  dz  }}|| f||fh}t        ||f| |f      |k(  sJ t        ||| |z
  z  f| |f      t        j
                  k(  sJ |d
z  }t        ||f| |f      t        j
                  k(  sJ y )Nx yTr   r   r   r      r   i  r   )r   r4   r   rr   r   r   )r   r   e1e2r~   r   r9  s          r   test_issue_2777r  	  s    5t$DAq!Q$A+#T!Q$1"r'A*=%>%BBCaS	k"nqAr7QF
CBx!Q(C///BAJ'!Q0AJJ>>>!GBBx!Q(AJJ666r   c                  *   d} d}d}d}d}d}d}d}t         t        t        g}t         | z
  d	z  t        |z
  d	z  z   |t        z
  d	z  z
  }	|t         z
  d	z  |t        z
  d	z  z   t        d	z  z
  }
t         |z
  d	z  t        |z
  d	z  z   |t        z
  d	z  z
  }|	|
|g}t        t         | z
  d	z  t        |z
  d	z  z         t        z   |z
  }|
}t        t         |z
  d	z  t        |z
  d	z  z         t        z   |z
  }|||g}t	        ||      }t	        ||      }||k(  sJ y )
Nr   ii  ~   i  3      h   r   )r   r   r   r4   rr   )r  y1r1r  y2r-  y3r3vr  r  rE  Fg1g2g3Gr  r  s                      r   test_issue_8828r  	  s8   	
B	B	B	B	B	B	B	B	
Aq	A
b&1B{	"b1fq[	0B
q&1Q{	"QT	)B
b&1B{	"b1fq[	0B	RA	q2vkQVaK'	(1	,r	1B	B	q2vkQVaK'	(1	,r	1B	RA 	AqAAqA6M6r   c                     t        d      }  | t              t        dz  z
  } | t              t        t	        dd      z  z
  }t        d | t              z  t        z
  d      t        d | t              z  dt        z  z
  d      z  }t        t        t              }t        ||t        j                  dz        }t        ||gt        t        g      |k(  sJ y )Nr   r   r   r   )r   r   r   r   r   r   r   rP   r   r  rr   )r   r  r  intermediate_systemr<  rP  s         r   test_nonlinsolve_conditionsetr  *	  s     	A	
11B	
18Aq>!	!BQqtVb[!,r!AaD&1R4-/CCA;D	QD Bx!Q(D000r   c            	         t        g t        t        g      t        j                  k(  sJ t        g g       t        j                  k(  sJ dt        dz  z  dt        dz  z  z   dz
  dt        dz  z  dt        dz  z  z
  dz
  g} t        dddd      }t        | t        t        g      |k(  sJ t        d	      }t        t        t        z   gt        gt        d
igt        gt               t        t        g      |k(  sJ t        t        t        z   gt        gt        d
igt        gt        d
z   ht        t        g      t        j                  k(  sJ y )Nr   r   rE     )r   r  )r   r   )r   r  )r   r   r  r   )rq   r   r   r   r   rT   r~  )rO  rP  s     r   test_substitution_basicr  9	  s    QF#qzz111B1::---1fqAvo"AadFQq!tVOb$89FXw8DA'4///WDQ!1vhSUQFCtKKK	
Q!1vh	
Q!QJJ' ' 'r   c                  H   t        t        dz
  t        dz
  t        dz
  t        dz
  dt        z  gt        t        t        g      ddt        fhk(  sJ t        t        t
        z   t        z   t        j                  t        j                  t        j                  gt        t
        t        g      t
         t        z
  t
        t        fhk(  sJ t        t        t        z
  t        t        z   t        t        z   t        dz  dz   gt        t        t        t        g      t        t         t         t        fhk(  sJ t        t        t        t        t              z
  z  t        t        dz
  z  gt        t        g      dt        fhk(  sJ t        t         t
        z  dt        z  z   dt
        z  z
  dt        z  dt
        dz  z  z   d	z
  d
t        z  t        z  t        z   t        dz  z   t        dz  dt        z  z
  dz   gt        t
        t        t        g      j                  t        hk(  sJ y )Nr   r   r   r  r   r   ir.  i  r   r   )rq   r   r   r   r   r   r   r   r   r~   r   r   r   r&   r+  r   r   r   test_substitution_incorrectr  G	  s    QAq1ua!eR!V<Aq	#()1ayk2 2 2QAEE155!%%81a)D"q&!Q() ) )
 QAq1uadQh7!Q1FaR!Q() ) )
 AAJAE3aV<F8  
 !A!ac)3q52ad7?S+@Aa!ad*AqD1Q3JN<Aq!&&2lqc: : :r   c                  n   t        t        dz  t        dz  z
  t        dz
  gt        t        g      t         dft        dft	        t        dz         dft	        t        dz        dfhk(  sJ t        t        t        z
  t        dz  dt        dz  z  z
  dz   gt        t        g      } t        |       dk(  sJ y )Nr   r   r   r   )rq   r   r   r   r4   r   )r  s    r   test_substitution_redundantr  `	  s    A1a!e,q!f5RGaVtAqDzk1-QT
A?@ @ @
 Aq!ta1f}q01Aq6
:Cs8q==r   c                     t        dd      \  } }}}}|| dz  z
  |dz  z
  t        |      || z  z
  g}t        t        t	        |t        |      dz  dz   z               t        d            }t        t        t	        |t        |      dz  dz   z              t        d            }t	        |t        |      dz  dz   z        t        |      z  }t        ||f      t        || f      z   }	t        || |g      |	k(  sJ t        d      }
t        |       dz  t        |      z
  |dz  z   dt        |      z  dz
  g}t        d       }t	        t        d| z         t        t        d            z
        }t        ||f|| f      }t        |
d|
z  t        z  t        z  t        d       z         }t        |t        j                        }t        |
t	        t        d| z         t        d|
z  t        z  t        z  t        d       z         z               }t        |t        j                        }t        |
t	        t        d| z         t        d|
z  t        z  t        z  t        d       z         z                }t        |t        j                        }t        ||f||f      }||z   }	t!        t        |||g      |	      sJ y )	Nzx, y, z, r, tTr   r   r   r   r   r   )r   rE   rS   rT   r4   rq   r   r%   rD   r&   r   r   r   rQ   r   r   r   )r   r   r   r   r   rO  s_x_1s_x_2r  rP  r   r=  r  r  rm  r  r  r  r  rn  s                       r   test_issue_5132_substitutionr  k	  s~   O$7MAq!Q!Q$hAos1v!|,Fy$q#a&!)a-'8"9!9:IaLIEyaQQ&7!899Q<HE
q#a&!)a- 
!#a&
(CeS\"Yt}%==DA'4///c
Aq619s1v1$aAhl
3CAwHS1XICF+,H8X.H90EFI
AaCE"HAw&
'C3

+K
D#ac(S1QrSVG);%<<=
>CS!**-M
T3qs8)c!A#a%(c!fW*<&==>>
?CS!**-M	m$	m$&L |#DcAq6*D111r   c                      t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                  0    t        t        dz  dz
  gg       S rj  rq   r   r   r   r   r   z*test_raises_substitution.<locals>.<lambda>	  s    |QT1WIr: r   c                  .    t        t        dz  dz
  g      S rj  r  r   r   r   r   z*test_raises_substitution.<locals>.<lambda>	  s    lAqD!G95 r   c                  L    t        t        dz  dz
  gt        t              g      S rj  )rq   r   rD   r   r   r   r   z*test_raises_substitution.<locals>.<lambda>	  s    |QT1WIAx@ r   c                  8    t        t        dz  dz
  gt              S rj  r  r   r   r   r   z*test_raises_substitution.<locals>.<lambda>	  s    lAqD!G9a8 r   c                  0    t        t        dz  dz
  gd      S rj  r  r   r   r   r   z*test_raises_substitution.<locals>.<lambda>	  s    lAqD!G9a8 r   )r^   r   r  r   r   r   test_raises_substitutionr
  	  s9    
::;
956
:@A
989
989r   c                     ddl m}  g d}t        d      }|D cg c]
  } | |       }}t        t	        t        j                  |D cg c]  }|j                   c}             }t        ||      }t        |d|dddd	t        d
      z  dt        d
      z  f|d|dddd	t        d
      z  dt        d
      z  f|d|ddddt        d
      z  dt        d
      z  f|d|ddddt        d
      z  dt        d
      z  f      }t        |      t        |      cxk(  rdk(  sJ  J ||k(  sJ |j                  D ]  }t        |      dk(  rJ  y c c}w c c}w )Nr   r   )zk-16zp-8zy*y+z*z-x*xz	d - x + pzd*d+k*k-y*yzz*z-p*p-k*kzabc-efgefgr  r  r   rD  r  r   r   )sympy.core.sympifyr   r   r   r   r~  unionr+  rr   rT   r4   r   r  )r   r=  r  r   sybr  r9  r  s           r   test_issue_21022r  	  sW   *C -C"
#!71:
#C
#
wsyy3"?a1>>"?@A
BC
c3
C
"c2q"c$q'k2d1g:6"c2q"c$q'k1T!W95"c2q"baj"T!W*5"c2q"baj!DG)4	C s8s3x$1$$$$$#::((  6{a  $"?s   EEc                     t        d      } t        d      }t        t        || fft        d|z  t        z  t        d| z  t        z  t        z  t        d      z         z   z  t        t        d| z  t        z  t        z  t        d      z               z         t        t        j                  t        j                              }t        t        t        t                    dz
  t              j                  |      sJ y )Nr   r  r   r   )r   rQ   r   r   r   r   r&   r   rY   r   r   ro   r%   r   r   )r   r  r   s      r   test_issue_17940r  	  s    c
A	tB
6B7*a2b3qs1uRx#a&7H3I)I&JAaCE"Hs1v$5 67'8 9ajj!**57C CAK!OQ'00555r   c                  p    t        dt        dz  dz
  z  dt        z  z
  t              t        dd      k(  sJ y )Nr"  r   P   r.  r  r   )ro   r   rT   r   r   r   test_issue_17906r  	  s3    A1r	NRU*A.)B2CCCCr   c                     t         t        d      z  t        t        t              z  z
  } t         t        d      z  t        t        t              z  z
  }dt         z  t        d      z  dz  t        t        t              z  z   }dt         z  t        d      z  dz  t        t        t
              z  z   t
        z
  }t        | |||gt         t        t
        t              t        dddt        f      k(  sJ y )Nr  r4  r   r   )r   rD   r   r@   r   r   rr   rT   )rg  rh  ri  rj  s       r   test_issue_17933r  	  s    
CG)aAh
C
CG)aAh
C
A#c"g+b.1SV8
#C
A#c"g+b.1SV8
#a
'CS#s+Q1a81aA,     r   c                  <   t         t        d      z  t        t        t              z  z
  } t         t        d      z  t        t        t              z  z
  }dt         z  t        d      z  dz  t        t        t              z  z   }dt         z  t        d      z  dz  t        t        t
              z  z   t
        z
  }t        d      }| |||fD cg c]  } |j                  t        |       }}t        |t         t        t
        |      t        ddd|f      k(  sJ y c c}w )Nr  r4  r   zzr   )
r   rD   r   r@   r   r   r   r   rr   rT   )rg  rh  ri  rj  r  r   r=  s          r   test_issue_17933_bisr  	  s     CG)aAh
C
CG)aAh
C
A#c"g+b.1SV8
#C
A#c"g+b.1SV8
#a
'C	B#&S#"6
7Q6166!R=
7C
7sAq!R(Iq!Qm,DDDD 8s   Dc                  <   t        t        t        t        z   t        t        t	        dt
        z  t        z        z  z   gt        t        g      t        t         t        z  t        t        t        t        t        z        t        j                        f            sJ y )Nr  )r   rr   r   r   r%   r   rT   r   r   rQ   r   r   r   r   r   r   test_issue_14565r  	  sj    a!eQ3r"uQw<%781a&AA2a4&AaC.!**=>?A A Ar   c                     t        dd      } t        t        t              dz   t        t        j
                        t        j                  u sJ t        t        t              | z   t        t        j
                        t        j                  u sJ t        t        | d      | t        j
                        t        j                  u sJ y )Nr   Tr   r   r   )r   ro   r   r   r   r   r   r   )r   s    r   test_issue_9556r  	  s    sT"ACFQJ177+qzz999CFQJ177+qzz999Bq"Iq!''*ajj888r   c                  .   t        t        t        t        z
  t        z   t              t        t        j
                        t        j
                  k(  sJ t        t        t        t        z
  t        z   t              t              t        j                  k(  sJ y r   )ro   r   r   r~   r   r   r   r  r   r   r   test_issue_9611r!  	  sX    Bq1uqy!$a1QWW<<<Bq1uqy!$a(AKK777r   c            
          t        t        dz  t        z   t        t        j                        t        t        j                  t        t        t                t        t                           k(  sJ y r  )ro   r   r~   r   r   rU   rT   r4   r   r   r   test_issue_9557r#  	  sN    AqD1Ha)\!''48)T1"X&.( ( ( (r   c                     t        dd      } t        dd      }t        | dz  dz   | t        j                        t	        d      k(  sJ t        | t        dd      z  dz   | t        j                        t        j                  k(  sJ t        | dz  |z   | t        j                        t	        t        |      t        dd      z   t        |      z        k(  sJ y )	Nr   Tr   r   r   r   r   r   )	r   ro   r   r   rT   r   r   r   r"   r   s     r   test_issue_9778r%  	  s    sAsAAqD1Ha)Yr]:::Ax1~%)1agg6!**DDDAqD1Ha)3q68Aq>))$q'123 3 3r   c                     t        t        t        dd      z  dz   t        t        j                        t        j
                  k(  sJ t        t        t        dd      z  dz   t        t        j                        t        j
                  k(  sJ t        dt        dd      z         } t        t        t        d      z  dz   t        t        j                        | k(  sJ t        t        d      z  dz   j                  t        t        |       d         dk(  sJ t        t        d      z  dz   j                  t        dt        dd      z         dk(  sJ y )Nr   r   r   r   r   r  )	ro   r   r   r   r   r   rT   r   r   )r9  s    r   test_issue_10214r'  	  s   Ax1~%)1agg6!**DDDAQ(1,a9QZZGGG
QA&&
'CA!IM1agg.#555!IM$s)A,/1444!IMB!Q#7"78A===r   c                      t        t        t        t                    dz   t        t        j
                        t        j                  k(  sJ y r   )ro   r   rD   r   r   r   r   r   r   r   test_issue_9849r)  	  s-    CAK!OQ0AJJ>>>r   c                  J    t        g t              t        j                  k(  sJ y r   )rj   r   r   r   r   r   r   test_issue_9953r+   
  s    Cqzz)))r   c                  d   t        dt        z  dt        dz
  dz  z  z   t        t        j                        t	        dt        d      z  dz  t        dd      z   t        dd      z   dz  dddt        d      z  dz  t        dd      z   t        dd      z  z  z  z
  t        d	d      z         k(  sJ y )
Nr   r   r   r   i^  r   i  r   r   )ro   r   r   r   rT   r4   r   r   r   r   test_issue_9913r-  
  s    AaC!QVaK-'AGG4Ad5kM!OhtQ&77(1a.HHJSAd5kM!OhtQ&77(1a.HHNJ JLTUWYZO\ 	]] ] ]r   c                  x    t        t        t              t        t        j                        t        d      k(  sJ y r  )ro   r4   r   r   r  rT   r   r   r   test_issue_10397r/  

  s%    DGQ,	!<<<r   c                  6   t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d	        y )
Nc                  2    t        t        dz  gt              S r  r   r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s    2	
A  r   c                  t    t        t        dt        z  dz   z  dt        z  z   t        z
  gt        t        g      S )Nr   r   r   )ri   r   r   r~   r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s2    2	
BqD1H!	a	 1a& * r   c                  `    t        t        dz  dt        z  z
  t        dz
  z  dz
  gt              S ry  r   r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s.    2
Q$1*q1u		!"A ' r   c                  l    t        t        dz   dz  t        dz  z
  dt        dz  z  z
  dz   gt              S )Nr   r   r   r"  r   r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s7    2
a%!ad	Qq!tV	#a	'(! - r   c                  `    t        t        dt        z  dz   z  t        z   gt        t        g      S r   r  r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s(    2	
AaC!GqAq6 # r   c                  L    t        t        dz   t        z  gt        t        g      S r   r  r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s    2
a%aV  r   c                  n    t        t        dt        z  dt        z  t        z         gt        t        g      S r   ri   r   r   r   r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s+    2	AaC1q	QF $ r   c                  ~    t        t        t        t        z  t        t        z  t        z         gt        t        g      S r   )ri   r   r   r   r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s+    2	AaC1q	QF $ r   c                  |    t        t        t        t        dz   z  t        dz  t        z         gt        t        g      S r  r8  r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s/    2	Aq1uIq!tax	 !Aq6 + r   )r^   r   r   r   r   test_issue_14987r;  
  s    
:  
: * +
: ' (
: - .
: # $
:  
: $ %
: $ %
: + ,r   c                     t         t        t        z
  dt        z  dt        z  z   z  z   } t        | t               t	        t
        j                        k(  sJ t        | t         t
        j                        t        t        t        z
  dt        z  dt        z  z   z   ht
        j                        k(  sJ t        dd      }t        dd      }t         ||z
  d|z  d|z  z   z  z   } t        | t               t	        t
        j                        k(  sJ t        | t         t
        j                        t	        t
        j                        k(  sJ y )Nr  r   apTr   bn)negative)
r   r~   r   ro   rT   r   r   r   rU   r   )r  r=  r>  s      r   test_simplificationr@  #
  s    	
a!ebdQqSj!	!BB?i////B177#|A1qs
7K5L4Mqww'WWWW	t	$B	t	$B	
b2g2"%	%BB?i////B177#y'8888r   c            	      v   dt         z  dz   dkD  } t         dz  dt         z  z   dz
  dk\  }t         dt         z  z   ddt         z  z   kD  }t         t        t         dz  dz
        z   dkD  }t         dt         z  z   ddt         z  z   kD  }|j                  t         t        t                     }t        t               t         z  dk  }t        t               t         z  dk  }t         t         dz
  z  dk  }t         t         dz  dz
  z  dk  }	t	        | t         t
        j                        t        dt        d      k(  sJ t	        |t         t
        j                        t        t        t         dd      t        dt        d            k(  sJ t	        |t         t
        j                        t        t        ddd      t        dt        d            k(  sJ t	        |t         t
        j                        t        dt        d      k(  sJ t	        |t         t
        j                        t        dt        d      k(  sJ t	        |t         t
        j                        t        ddd      k(  sJ t	        |t         t
        j                        t
        j                  k(  sJ t	        |t         t        dd      	      t        ddd      k(  sJ t	        |	t         t        dd      	      t        t        ddd      t        ddd            k(  sJ t	        t         dz   dk  t         t
        j                        t        t         dd      k(  sJ y )
Nr   r   r   r   r  r   r   r   r'  )r   r4   r   r&   ro   r   r   rR   r   rW   r   )
rg  rh  ri  rj  r  eq5eq6eq7eq8eq9s
             r   test_integer_domain_relationalrG  /
  sw   
A#'A+C
Q$1*q.A
C
ac'B1H
C
d1a4!8n
q
 C	
QqS2!8	B
''!CF
C
a&(a-C
a&(Q,C
QqS'A+C
QT!V*q.CCAJJ'5R+;;;;CAJJ'5sB1BE!RQRO+TTTTCAJJ'5r1a%2q/+RRRRCAJJ'5B?:::CAJJ'5B?:::CAJJ'5Aq>999CAJJ'1::555C51:.%1a.@@@C51:.%aAaQRTU2WWWW AEAIq!**-sB1BBBBr   c                  \   t        d      } t        d      }t         | t              t        dz  z
  t        t        j
                        j                  t        t        t         | t              t        dz  z
  d      t        j
                              sJ t         |  |t                    t        dz  z
   |t              t        j
                        j                  t         |t              t         |  |t                    t        dz  z
  d      t        j
                              sJ y )Nr   r   r   r   )	r   ro   r   r   r   r   r   rP   r   )r   r   s     r   test_issue_10555rI  I
  s    AAAaD2a4KAGG,55Q1Q4"Q$;*AGG46 6 6AadGbdNAaD!''2;;QqT2a!g1na0!'':< < <r   c                     t         dt         z  z   ddt         z  z   kD  } t        | t         t        j                        t	        j
                  dt              t        d      z
  k(  sJ t        | j                  t         t        t                     t         t        j                        t	        j
                  t        d      t              t        d      z
  k(  sJ y )Nr   r  r   )r   ro   r   r   rV   r   r   rT   r   r&   r%   r>  s    r   test_issue_8715rK  R
  s    	
QqS2!8	BB177#	r2	1	-/ / /BGGAc!f%q!''2c"gr"Yq\12 2 2r   c                  ,   t         dz  t        dt        z        z   t        t              z
  } t        t        j                  t        t        t         dz   t        t              z         dz              }t        | t        t        j                        |k(  sJ t        t              t        t        t                    z  t        t        t              dz  dz         z  t        t        t              z  z   } t        t               t        t        t                    z  t        t        t              dz  dz         t        t              z  z  }t        t        j                  t        |            }t        | t        t        j                        |k(  sJ y rj  )r   r%   r   rD   r   rU   r   r   rT   r&   ro   r4   r   r   rE   r   )r  rP  r   s      r   test_issue_11174rM  Z
  s   	
AAaC3q6	!B31us1v~+>q+@!ABDB177#t+++	aSV	T#a&!)a-0	01SV8	;B	aSVd3q619q=1#a&89A1.DB177#t+++r   c                     t        dd      } t        dd      }| | t        | dz   dz         z  z   }|dz   | dz  | dz   dz   z  z   }t        | t        |dz  dz         z        t        |t        |dz  dz         z        }}t        | t	        |d      |      }|ddhz
  |ddhz
  z  }||z  ddhz
  }t        || t        j                        |k(  sJ t        || t        j                        |k(  sJ y )	Nr   Tr   r   r   r   r   r   )r   r4   rT   rP   r   ro   r   r   )	r   r   rg  rh  r   r   rG  r   r   s	            r   test_issue_11534rO  e
  s   
 	sAsA"qq!teai 
 Ca4%!Q$A	"
"C r$q!tax.()9QtAqD1H~5E+FB2c1:r*D"aLTRG^,DGAwDCAGG$,,,CAGG$,,,r   c                      t        t        dz  dt        z  z   dz
  t        z  dk  t        t        j                        t	        t        j                  t         d      t        j                  dd            k(  sJ y )Nr   r   r   r   r   r   )ro   r   r   r   rW   rV   r   r   r   r   r   test_issue_10477rQ  
  s]    QTAaCZ!^Q&*Aqww7hmmRC$hmmAq&9:; ; ;r   c                      t        t        t              t        t        dt                    t        dt              k(  sJ t        dd      } t        dt        z  j                  t              dk  t        |       | k(  sJ y )Nr   r   r   )ro   rD   r   rV   r   rT   r   r
   )r   s    r   test_issue_10671rS  
  s]    CFAx2/9Q3CCCCBAQqSJJqMA%q!,111r   c                     t         t        t         dz  dz
        z   } t        | dkD  t         t        j                        t        t        d      t              k(  sJ t        | dk  t         t        j                        t        t         t        d             k(  sJ t        | t        d      kD  t         t        j                        t        j                  t        d      t              k(  sJ y )Nr   r   r   )r   r4   ro   r   r   rV   r   r  r>  s    r   test_issue_11064rU  
  s    	
T!Q$(^	BBFAqww'a"  BFAqww'"tAwh     BaL!QWW-tAw#$ $ $r   c                  H   t        t        dz
        dz   } t        | t              }|t        j                  u sJ t        | dk  t        t        j                        t        j                  u sJ t        | dkD  t        t        j                        t        dt              k(  sJ y Nr   r   )	r4   r   rf   r   r   ro   r   rV   r   )r  rP  s     r   test_issue_12478rX  
  sy    	a!eqBQD1::BFAqww'1::555BFAqww'8Ar?:::r   c                      t        t        t              t        z  dk  t        t        j                        } t        j                  dd      }| |k(  sJ y r  )ro   r&   r   r   r   rV   r  )r  r   s     r   test_issue_12429rZ  
  s<    	#a&(a-AGG	,B
..A
C99r   c                  :   t        t        t        z         } t        d      }t	        |       j                  t        t        |t        t        |      dz   d      t        j                        t        |t        |      dkD  t        j                                    sJ y )NCr   r   )r   r   r   r   ro   r   rU   rP   r   r    r   r  r!   )r  r\  s     r   test_issue_19506r]  
  sx    	QUBc
AB<  l1bAA>NPQP[P[.\1=aAAKK1X"Z [ [ [r   c                  H   t        t        t              t        t        j                        t        j                  dt              k(  sJ t        t        dt        z  dz
        t        t        j                        t        j                  t        dd      t              k(  sJ y )Nr   r   r   )	ro   r   r   r   r   rV   r   r   r   r   r   r   test_solveset_argr_  
  sd    CFAqww'HMM!R,@@@@C!QKAGG,hq!nb0QQQQr   c                       t          t         fdt               t        d      t        d      fD              sJ   dt        d      z        du sJ y )Nc              3   8   K   | ]  } d |z        du   yw)r   Nr   )r   r   r   s     r   r   z3test__is_finite_with_finite_vars.<locals>.<genexpr>
  s!      9!q1v~ 9s   Tr   )complexr   F)rt   r   r   r   s   @r    test__is_finite_with_finite_varsrc  
  sY    #A 9D!5#6(8 9 9 9 9Qu%  !T)))r   c                      t        t        dz  dt        z  z
  dz
  t        t        t         d            t	        d      k(  sJ y )Nr   r  r   )symbolr(  r   r  r   r   r   test_issue_13550rf  
  s7    AqD1Q3JOa(B3:JKyY[}\\\r   c                      t        t        t        d      t        d      z   z  t        d      z
  t        ft              t        j                  u sJ y )Nr   r   )rr   r   r4   r   r   r   r   r   test_issue_13849rh  
  s;    47T!W,-Q7;Q?1::MMMr   c            	         t        t        t        t        t        d      z         dz
  j	                  t
              t        t        j                        t        dd      k(  sJ t        t        t        t        t        d      z         dz
  j	                  t
              t        t        dd            t        d      k(  sJ t        t        t        t        dd            t        j                  u sJ y )Nr   r   r   r   )ro   r   r   r5   r  r7   r   r   rT   rV   r   r   r   r   test_issue_14223rj  
  s    SSAY'!+44Y?	b!$% % %SSAY'!+44Y?A$Q<( ( (Aq)Aq/*ajj888r   c                      t         j                   t        t        t	        t        d      z  dz
  t               t        t        dd            k(  sJ t        t        t        t        d      z  dz
  t               t        t        d       t        d            k(  sJ t        t	        t        t        dz
        dz
  t        dz         dz
  t               t        dd      k(  sJ t        t        t        dz
        t        t              z
  t               t        t        t               dz   t        t              dz         k(  sJ t        t        t        dt        t        dz         z  z         t               t        t        dd      t        dd	            k(  sJ t        dt        t        t        t        t	        dt              z         z         z  dz
  t        t         j                        t        dd
      k(  sJ t         j                   t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       y )Nr  r   r   r   r   r   r   r	  r   r  c                  V    t        t        t        t        d      z  dz
  t               S Nr  r   )ro   r   r6   doms   r   r   z"test_issue_10158.<locals>.<lambda>
      x#a*r(91cB r   c                  V    t        t        t        t        d      z  dz
  t               S rm  )ro   r   r5   rn  s   r   r   z"test_issue_10158.<locals>.<lambda>
  rp  r   c                  t    t        t        t        t        dz
        dz
  t        dz         dz
  t               S )Nr   r   r   )ro   r6   r   r   rn  s   r   r   z"test_issue_10158.<locals>.<lambda>
  s,    xCAJNAE(BQ(F3O r   c                  f    t        t        t        dz
        t        t              z
  t               S r   )ro   r   r   r   rn  s   r   r   z"test_issue_10158.<locals>.<lambda>
  s!    xAE
SV(;QD r   c            
      l    t        t        t        dt        t        dz         z  z         t               S )Nr   r   rd  rn  s   r   r   z"test_issue_10158.<locals>.<lambda>
  s&    xA#a!e*,<(=q#F r   )r   r   ro   r   r6   rT   r   r5   r4   r   r   r  r^   r   rn  s   @r   test_issue_10158ru  
  s   
''CAc!RjL2%q#.)HQN2KKKKAc!RjL2%q#.)T"XItBx2PPPPCAE
QA.2As;yQ?OOOOCAJQ'C0Is1vgk3q6TU:4VVVVCAc!a%jL()1c2iQQYZ\^_Q`6aaaaAc!c!c!Qi-0011A5q!''BiPRTVFWWWW
++C
:BC
:BC
:OP
:DE
:FGr   c                     dt        dt        z        z
  t        z
  } t        t	        t         dz          dz        }t        | t        t        j                        t        t        j                  |      k(  sJ t        t        | t              t        t        t        t         dt        z  t        z  t        t         dz         z   z  dz  t	        t!        t        dz
              dz  z
        t        j"                              sJ y )Nr   iWir   )r%   r   r   rT   r&   ro   r   r   rU   r   rQ   r   r   r   r   r   r   r   )r   r  s     r   test_issue_14300rw  
  s    	C	!q A	CQK<(	)BAq!''"QWWb!" " "!QA2qs2vQBF34X=AE
OH$% &'(zz	34 4 4r   c                       t        t        dz  t        z   dz
  d       t        t         fd       t	        t        dz   t              sJ y )Nr   r   r   c                  &    t         dt              S r  )rl   r   numbers   r   r   z"test_issue_14454.<locals>.<lambda>
  s    {61a8 r   )rN   r   r^   r   rl   rz  s   @r   test_issue_14454r|  
  s<    QTAX\1%F
:89q!tVQ'''r   c            	         t        dt        dz  z  dt        dz  dz
  t        d      dz  z  z  z  ddt        dz  dz
  t        d      dz  z  z  z  z   t        t        j                        t	        t        d      t        d             k(  sJ y )Nr  r   r4  r   r   r   )ro   r   r   r  rT   r4   r   r   r   test_issue_17882r~  
  s    Bq!tGQ1qAaDF334q!QTAX1a<P:P7QQSTVWVaVab$q'DG8$% % %r   c            	      ~   t        t        dt        z  dz
              ddt        z  gk(  sJ dt        dz   z  dt        dz   z  z   dt        dz
  z  z   dt        dz   z  z
  dt        dz   z  z
  } t        t        |             dt        dz   z  dt        dz   z  dt        dz   z  dt        dz
  z  ddt        dz   z  hk(  sJ y )Nr   r   r  r   r   r   )r   r{   r   r~  )r  s    r   test_term_factorsr  
  s    adQh'(RAJ666q1u:AE
"QQZ/!a!e*<q1q5zID}T"#	AE
AAJAE
AAJAAJ(H H H Hr   c                      t        dt        z  t        t        j                        t        j                  k(  sJ t        dt        z  dt        dz   z  z
  t        t        j                        t        d      k(  sJ y )Nr   r4  r   r  )ru   r   r   r   r   rT   r   r   r   test_transolver  
  sU    adAqww'1::555adQQZ'AGG4	#FFFr   c            	      b   dt         z  t        t        z
  z  t        t        t        t        z
        z  z
  t        z
  t        t        t        t        z
        z  z   t        z   dz  } t	        | j                         t              t        t        t        t        dt         z  dz
        z         k(  sJ y rj  )r   r   r   rF   ro   r  rT   rI   r>  s    r   test_issue_21276r  
  sw    
A#q1u+#a!e*
$q
(1SQZ<
7!
;a	?BBIIK#yAqsQw4G'HHHHr   c                  f   ddl m}  ddt        z  z  dt        dz   z  z
  }dddt        z  z
  z  ddt        z
  z  z
  }dt        z  dt        z  z   }t        t	        d      t        z        dt        z  z
  }t        t        | z        t        t
         | z        z  dz
  }dt        dz  z  dt        dz  z  z
  }dt        d	z   z  dt        dz   z  z   dt        d	z
  z  z   dt        dz   z  z
  dt        dz   z  z
  }d
t        dt        z  dz         z  dt        dt        z  d	z         z  z   }dt        z  dt        z  z   dt        z  z   dz
  }	ddt        d	z   z  z  dt        z  z  ddt        z  z  z
  }
t        |t        t        j                        t        dt	        d      z  dt	        d      z  t	        d      z   z        k(  sJ t        |t        t        j                        t        t        dd            k(  sJ t        |t        t        j                        t        j                  k(  sJ t        |t        t        j                        t        d      k(  sJ t        |t        t        j                        t        t        j                  t        | t	        dt        t
        | z        z        z              k(  sJ t        |t        t        j                        t        d      k(  sJ t        |t        t        j                        t        d      k(  sJ t        |t        t        j                        t        dt	        d      z  dz  dt	        d      z  dz  z   t        dd      z         k(  sJ t        |	t        t        j                        t        d      k(  sJ t        |
t        t        j                        t        t	        d       t	        d      z
  t	        d      z   t	        d       t	        d      z   t	        d      z   z        k(  sJ t        d
t        dt        z  dz         z  dt        d	z   z  z   t              t        ddt	        d      z  z
  t	        d      z   t	        d      dz   z         k(  sJ t        dt        dz  z  dt        dz  z  z
  t              t        d      k(  sJ t        d      t        t	        d            z  t        t	        d            z  }t        dt        dz  z  ddt        z  z  z
  t              t        | |      k(  sJ t        d      \  }}t!        d      }t        ||t        dz  z  z   t         |t                     z
   |t                    t        t        j                  t        t	        ||t        dz  z  z                      k(  sJ t        dd      } t        t        dz  | dz  t        t              z  z
  |       t        t        j                  t        t        t        dz  t        t              z         t        t        dz  t        t              z                    k(  sJ t#        dd      }t        d	|z  d	z   |d	z   z  |      j%                  t'        t        t)        d	d	t        z  z   t        d	z   z  d      t        j                              sJ t        dt        z  dt        z  z
  dz   t        t        j                        dhk(  sJ t        dt        z  ddt        z  z  z
  dz   t        t        j                        dhk(  sJ y )Nr   rv  r   r   r   r   r4  r   r   r  r  T      ig  {   i
  r   r  r   r   zC1 C2r   r   Tr   r   r5  )r  r   r   r%   r&   r   ro   r   r   rT   r   r   rU   rf   r4   r   r   r   r   rP   r   )r   r  r  e3e4e5e6e7e8e9e10r   C1C2r   r   s                   r   test_exponential_realr    s   	
QqSAAJ	B	
Q1WAE
	"B	
A1B	SVAXA	B	QqS#qbd)	a	B	
QqSA!H	B	
QUa!a%j	 1q1u:	-AE
	:QQZ	GB	C1qM	Ac!A#'lN	*B	
A1q!t	b	 B
QQZ-a
 3tay=
0CB177#y
3q6	2c!f9s1v%&(( ( ( (B177#y!R'AAAAB177#qzz111B177#y|333B177#|	1S3qs8_,-(/ / / /B177#y|333B177#y|333B177#yCF1qQxz1IHUVXYN1Z'[[[[B177#y|333C177#y3r7(SV2Cc#h2NRUVZR[Q[^abc^dQdgjkngoQo1p'qqqqC1qM)AAJ6:i#a&=3q6!CFQJ
/0?2 2 2 2QqSA!H,a0IaL@@@QSVT#a&\)AQqSA!H,a0Iqb!4DDDD WFBAbAgQqTE
2AaD9\	CR1W--.>0 0 0 0d#AA1SV+Q/<	DAc!f--tAqDQK/@A4C C C CsT"A!A#'QU+Q/88QA!Gq1u-q1177;= = =AqD1a4K"$a1aS888AqD1qs8Ob(!QWW5!<<<r   c                  \   t        d      } t        t        dt        z  dt        z  z   t              t	        t        | t        d| z  t        z  t        z   z  t        d      z        t        j                              sJ t        t        t        z  t        t        z  z  dz
  t              t        t        d      t        t              t        t              z   z        k(  sJ t        t        dt        dz  z  dt        dz  z  z
  t              t	        t        | d| z  t        z  t        z  t        d      z        t        j                              sJ t        t        dt        z  dz   t              t	        t        | t        d| z  t        z  t        z   z  dt        d      z  z   t        d      z        t        j                              sJ dt        t        dz  t        z        z  dz   t        dz  dz   z  }t!        t              t!        t        t        d             t        t        d      d| z  t        z  t        z  z         z         z  }t        |t              t        | |      k(  sJ t	        t        | t        d| z  t        z  t        t#        dd      z  z
  z  t        d      z        t        j                        }t	        t        | t        d| z  t        z  t        t#        dd      z  z   z  t        d      z        t        j                        }t        t        dt        z  dt        z  z   dt        z  z   t              t%        ||            sJ dt        d	z   z  dt        dz   z  z   dt        d	z
  z  z   dt        dz   z  z
  dt        dz   z  z
  }t        |t              }d| z  t        z  t        z  dt        d      z  z
  dt        d      z  z   }d
t        d      z  t        d      z   }t	        t        | ||z        t        j                        }t        ||      sJ y )Nr   r   r   r   r  r   r  r   r   r  )r   r   rh   r   rX   r   r   r   r&   r   r   r   r   rT   ro   r%   r4   r   rW   )	r   r  r~   union1union2r  numdenr9  s	            r   test_exponential_complexr  2  sQ   c
A!!Q$A+q1(q!QqSVb[/#a&()1::37 8 8 8AqDAIM1-AAQ 2" " " "!!ac(Q1X"5q98q!A#a%(3q6/"AJJ<0 1 1 1!Q$)Q'q1ac"frk?Qs1vX-s1v56

*D E E E SAa[.1
q!tby	)BQc#a&k\CA1Qr(9$::;;AB"iA&6666fQ1Q3r6Bx1~,=#= >s1v EF

SFfQ1Q3r6Bx1~,=#= >s1v EF

SF!Q$A+1,a0%2GHHH	
QUa!a%j	 1q1u:	-AE
	:QQZ	GB
2q/C
A#a%(Qs1vX
#a&
(C
SV)c!f
C
6!SW%qzz
2Cc??r   c                     t        t              dz   t        z  dz
  } t        dz   t        z  t        z  dz
  }dt        z  t        t              z
  dz
  }t        t              t        t              z
  }dt        z  dt        z  z   dt        z  z
  }t	        | t        t
        j                        j                  t        t        t        t        t              dz   t        z  dz
  d      t
        j                              sJ t	        |t        t
        j                        j                  t        t        t        t        t        dz   t        z  z  dz
  d      t
        j                              sJ t	        |t        t
        j                        j                  t        t        t        dt        z  t        t              z
  dz
  d      t
        j                              sJ t	        |t        t
        j                        j                  t        t        t        t        t               t        t              z   d      t
        j                              sJ t	        |t        t
        j                        j                  t        t        t        dt        z  dt        z  z   dt        z  z
  d      t
        j                              sJ y )Nr   r   r   r   r   )
r%   r   r   r&   ro   r   r   r   rP   r   )r  r  rE  rF  rG  s        r   test_expo_conditionsetr  O  s   
a&1*q1	B
a%!A	B	
AA	B	Q#a&B	
A1q!t	BB177#,,\	2s1vzAo!1%qww.0 1 1 1B177#,,\	2aQ
lQ"AGG.- . . .B177#,,\	2adSVma#QWW.. / / /B177#,,\	2s1vgA"AGG.- . . .B177#,,\	2adQTkAqD !$agg./ 0 0 0r   c                     t        dd      \  } }}t        dd      \  }}t        || z  |z
  | t        j                        t	        t        j                  t        t        |      t        |      z              k(  sJ d| t        z  z  d|t        z  z  z
  }| |z  t        z  dz
  }t	        t        d      t        |       t        |      z
  z  ht        j                        }t	        t        d      t        | |z        z  ht        j                        }t        |t        t        j                        |k(  s$J t        |t        t        j                               t        |t        t        j                        |k(  s$J t        |t        t        j                               t        | | z  | t        j                  dt                    j                  t        t        t        t        t        z  d      t        j                  dt                          sJ t        | |z  d	z
  |t        j                        t        d      k(  sJ t        t        | |z        t        | |z        z  dz
  |t        j                        t!        t        |t        t#        |       |z  d      t        t#        |      |z  d      z  t!        t	        t        | |z
  t        d      z        t        j                        t        d                  t        d            k(  sJ t        t        ||z        t        | |z        z  dz
  |t        j                        t!        t        ||z
  t        d      z        t        d            k(  sJ t        t$        | z  t&        | z  z
  |       j                  t        t        t)        t$        d      t)        t&        d      z  t        d                  sJ y )
Nzx y zTr   zxr, zrr   r   r   r   r   )r   ro   r   r   rU   rT   r&   r   rV   r  r   r   rP   r   r   r%   rS   r    r~   r   r   )	r   r   r   xrzrr  r  r   r   s	            r   test_exponential_symbolsr  c  s	   g-GAq!XD)FBAqD1Ha)\	3q6#a&=).+ + + + 
1a4!AqD&B
A#ABQQ#a&12AGG<DQAaC)1773DB177#t+EXb!QWW-EE+B177#t+EXb!QWW-EE+AqD!X^^Ab12;;Q1a4X]]1b%9:< < <AqD1Ha)Yq\999C!HS!AY&*Aqww7|Ar"Q%'1~2a57A>|Iq1uc!fn5qww?1NPQZ[\Q]__ _ _ C1Ic2#a%j(1,a99b2gs1v-.	!=> > > AqD1a4K#,,\	2a8bAh	!.. / / /r   c                      t        dd      } t        d      }t        | dz  dz
  |       t        |dz  dz
  |      k(  sJ y )Nr   Tr   r   r   )r   rh   )xposr   s     r   test_ignore_assumptionsr  ~  sL    3&DAD!GaK 
adQh*+ + +r   c                      t        t        t        t        z  z  t        z
  t        t        j
                        t        d      k(  sJ y r   )ro   r   r   r   r   r   rT   r   r   r   test_issue_10864r    s-    A!HqL!QWW-1===r   c            
      
   t        t        t        t                    t        t        t                     z   dz
  t              t	        dt        t        d       dz         z  dt        t        d      dz         z        k(  sJ y )Nr   r   r   )rf   r4   r%   r   rT   r&   r   r   r   test_solve_only_exp_2r    sg    c!fS!W591=!Ca1%%qT!Wq[)9'9:; ; ;r   c                  j   t        t        t              du sJ t        dt        z  dz
  t              du sJ t        dt        z  ddt        z
  z  z
  t              du sJ t        t        dt        z        dt        z  z
  t              du sJ t        t        t        z  t        z
  t              du sJ t        t        t        z  t        z
  t              du sJ t        dt        z  dt        z  z   dz
  t              du sJ t        t        t        t        z  z  t        z
  t              du sJ t        t        dt        z  z  dt        z  z
  t              du sJ t        t        t        z  t        t        z  z
  t              du sJ t        t        t        z  t        t        z  z
  t              du sJ y )	NFr   r   Tr   r"  r   r   )rv   r   r   rD   r   r   r   r   test_is_exponentialr    sf   1a E)))1a4!8Q'4///1a4!a!e*,a0D8883q!t9qs?A.%7771a4!8Q'4///1a4!8Q'50001a4!Q$;?A.$6661qs8a<+u4441qs8ad?A.%7771a4!A#:q)U2221a4!A#:q)T111r   c            	      B   t        ddt        z  z  dt        dz   z  z
  dt        t        j                        t	        dt        d      z  dt        d      z  t        d      z   z        k(  sJ t        dt        z  dt        z  z   dt        t        j                        t	        t        t        dd      t        d	      dz  z         t        d      z        k(  sJ t        dt        z  dt        z  z   dt        t        j                        t        j                  k(  sJ t        dt        z  dt        z  z   d	t        z  z
  dt        t        j                        t        t        t        dt        z  dt        z  z   d	t        z  z
  d      t        j                        k(  sJ y )
Nr   r   r   r   r  r   r   r   r   )rw   r   r   r   rT   r&   r   r   r4   r   rP   r   r   r   r   test_solve_exponentialr    sJ   a!A#hQU3Q177C"SV)RAYQ/012 2 2adQTk1a9#hr1oQ	123q69:; ; ;adQTk1a9	

  adQTkAqD0!Q@Q1a4!Q$;A-q1177;< < <r   c                     t        t        t        dz
        t        t        dz         z   t              t        t	        d       t	        d            k(  sJ t        t        t        dz         t        dt        z  dz
        z
  t              t        d      k(  sJ t        t        t        dz         t        ddt        z  z         z   dz
  t              t        dt	        dt        d      z         t        t        dd            z  dz  z   t        d      dz  z   t	        dt        d      z          t        t        dd            z  dz  dz
  t        d      dz  z         k(  sJ t        t        t              z
  t        t        t        dt        dz  t        dz  z  z   z  z        z   } t        | t              t        t        j                  t        t	        t        dz  t        t        t              z  z
         t	        t        dz  t        t        t              z  z
                    t        t        j                  t        t	        t        dz         t	        t        dz                    z
  k(  sJ t        t        dt        z        t        t         dz         z
  t        dt        z  dz         z
  t              t        t        dd      t        j                        k(  sJ t        t        t        t        z        t        t        t              z  z
  t        t        j                        t        j                  k(  sJ y )	Nr   r   r   r   r   ir   r   )rf   r&   r   rT   r4   r%   r   r   r   rU   r   r   r   ro   r>  s    r   test_logarithmicr    s   QUc!a%j0!4		b	489   QUc!A#'l2A6)A,FFFQUc!ac'l2Q6:i
T#A,HQN 33A55Aq@	cCFl	CA//1A5Aq@?B B B B 
SVc!QQT!Q$Y/01	1BQQWWiadQs1vXo)>(>A#a&!# 	$QWWiadT!Q$Z@A	BB B B AaC3rAv;QqS1W-q25>xAPQPVPV5WX X XC1I#a&(!QWW5@@@r   c                  |   t        t        dt        z        dz         t        t        t               dz         z   t        d      z
  } t	        | t              t
        j                  u sJ t        dt        z        t        t        t              dz         z
  dz
  } t	        | t              t
        j                  u sJ y )Nr   r   r   )r&   r%   r   r*   rf   r   r   r4   r>  s    r   test_uselogcombine_2r    s    	S1X\	S$q'A.	.Q	7BQ1::---	QqSCQ!$	$q	(BQ1::---r   c                  :   t        t        t              du sJ t        t        t              t              du sJ t        t        t              dz
  t              du sJ t        t        t              t        t              z  t              du sJ t        t        t              dz  t              du sJ t        t        t        dz
        t        t        dz         z   t              du sJ t        t        t        t        z        t        t        t              z  z
  t              du sJ t        t	        t        t                    t              du sJ t        t        t        z   t              du sJ t        t        dt        z        t        dt        z
        z
  dz   t              du sJ t        t        t              t        t              z   t        z   t              du sJ t        t        t        t        dz
              t        t        dz
        z   t              du sJ t        t        t        d      t        z         t        t              z   t              du sJ t        t        t              t        dz   z  t        t              z   t              du sJ y )NFTr   r   r   r   )rx   r   r   r&   rD   r   r   r   test_is_logarithmicr    s   1a E)))3q61%---3q6A:q)T1113q6#a&=!,4443q619a(E1113q1u:AE
2A6$>>>3q!t9qQx/3t;;;3s1v;*e3331q5!$---3qs8c!a%j014a8D@@@3q6CF?Q.2e;;;3s1q5z?SQZ7;tCCC3s1vz?SV3Q74???3q61q5>CF2A6%???r   c                  n   t        d      } t        t        t        | z        | t        t              z  z
  dt        t        j
                        t        j
                  k(  sJ t        dd      } t        t        t              t        |       z  dt        t        j
                        t        d      k(  sJ y )Nr   r   Tr   r   )r   rz   r&   r   r   r   rT   rv  s    r   test_solve_logarithmr    sz    sAC1I#a&0!Q@AGGKKKsT"ACF3q6M1a9Yq\IIIr   c            	         t        d      \  } }}t        t        dz  t              du sJ t        | t        dz  z  |t        z  z   |z   t              du sJ t        t        dz  t              du sJ t        t        t        dz  z  t              du sJ t        dt	        t              z  t        t	        d      z  z
  t              du sJ t        t	        t	        t        dz
              t	        t        dz
        z   t              du sJ t        dt        z  dz
  dt        ddt        z  z
        z  z   t              du sJ t        | t        z  t        t        dz        z   j                  t        d      t              du sJ t        t        dz  dt        z  z
  dz   j                  t        t	        t              dt        z  z   dz  dz
        t              du sJ t        t        t        t              z  dz
  t              du sJ t        t        t        t              z  dz
  t              du sJ t        t        t              dt        z  z
  t              du sJ t        t        t              t        t              z
  t              du sJ y )	Nza,b,cr   FTr   r   r   r"  )r   ry   r   r   r&   r%   r
   r   r(   r@   r*   r)   )r~   r   r   s      r   test_is_lambertr    s   gGAq!q!tQ5(((q!Q$wqs{1}a(D000q!tQ5(((qAvq!U***qQx!CF(*A.$666s3q1u:QqS115===qsQw3q1Q3w</3t;;;!c!A#h,,Q2A6$>>>1qs
Q,,QQ!A#0AA0EFJdRRRqay1}a(D000qQx!|Q'4///tAw1}a(D000tAwa(!,555r   c                  .    ddl m    dt              ddgk(  sJ t        d   dt              D              sJ   t        dt        z  z   dz   t        t              g dk(  sJ   t        dt        z  z   dz   t        t              g dk(  sJ   t        dt        dz  z  z   dz   t        t        dz        g dk(  sJ t        t         fd       t        t         fd	       t        t         fd
         t        t        t        z   z  t        t              t        t        dgk(  sJ   dt        t              g dk(  sJ   t        t        t        t        z         t        t        d      t        dik(  sJ   dt        t        d      i k(  sJ y )Nr   linear_coeffsc              3   @   K   | ]  }|t         j                  u   y wr   )r   rP  r%  s     r   r   z%test_linear_coeffs.<locals>.<genexpr>  s     8qqAFF{8s   r   r   r"  )r   r   r   c                  d      t         dt         dz  z  z   t         dz  z   t         t         dz        S ry  r   r  s   r   r   z$test_linear_coeffs.<locals>.<lambda>  s-    a!AqD&j1a4'AqD1 r   c                  T      dt         z  t         dz
  z  dt         z  z   t               S r   r   r  s   r   r   z$test_linear_coeffs.<locals>.<lambda>  s'    ac1q5kAaC'+ r   c                  0      t         t         t               S r   r   r  s   r   r   z$test_linear_coeffs.<locals>.<lambda>  s    aA r   r   )r   r   r   T)dictr   )	r  r  r   r   r   r^   r   r~   r   r  s   @r   test_linear_coeffsr    sT   4A1a&(((8M!Q$78888QqS1a+y888QqS1a+y888Qq!tVaAqD1Y>>>
: 2 3
: , -
:   AEAq)aAY666a#{222Aq1uq!$7Ar7BBBAqt,222r   c                     t        t        t              du sJ t        t        t        d      dz
  t              du sJ t        t        t        dz  dt        dz  z  z
  t        z
  dz   d      dz
  t              du sJ t        t        t	        t        t        z         d      dz
  t              du sJ t        t        t	        t        t        z         d      t        t              z
  t              du sJ t        t        t        d      dz
  t              du sJ t        t        t        d      dz  dz
  t              du sJ t        t        t        d      dz  t        z
  t              du sJ t        t	        t        t        d            dz
  t              du sJ t        t        dt              dz
  t              du sJ y )NFr   r   Tr   r   )r|   r   r   r   r%   r&   r   r   r   test_is_modularr    sq   q!%%%s1ay1}a(D000s1a4!AqD&=1,q0!4q8!<DDDs3q1u:q)A-q1T999s3q1u:q)CF2A6$>>>s1ay1}a(E111s1ay!|a'+u444s1ay!|a'+u444s3q!9~)1-666s1ay1}a(E111r   c                     t        dd      } ddlm}  |t        t        d      t        d      dz  | t              t        t
        j                  fk(  sJ  |t        t        t              d	      t        d
      | t              t        t        t              d	      d
fk(  sJ  |t        t        t              d	      t        d
      | t              t        t        t              d	      d
fk(  sJ  |t        t        t              d	      t        d
      | t              t        t        t              d	      d
fk(  sJ t         |t        t        d	      t        d
      | t              t        t        t        | d	| z  d
z         t
        j                        f      sJ t         |t        t        dz   d	      t        d
      | t              t        t        t        | d	| z  dz         t
        j                        f      sJ  |t        t        dz  t        z   d	      t        d
      | t              t        t        dz  t        z   d	      d
fk(  sJ t         |t        dt        z  d	      t        d
      | t              t        t        t        | d	| z  dz         t
        j                        f      sJ  |t        t        dz   t        dz   z  d	      t        d
      | t              t        t        dz   t        dz   z  d	      d
fk(  sJ  |t        t        dz  d	      t        d
      | t              t        t
        j                  fk(  sJ t         |t        dt        z  d      t        d      | t              t        t        t        | d| z  dz         t
        j                        f      sJ t         |t        dt        dz  t        z   dz   z  d	      t        d      | t              t        dz  t        z   dz   t        t        | d| z  dz         t
        j                        f      sJ  |t        t        t              dz  d	      t        d
      | t              t        t
        j                  fk(  sJ y )Nr   Tintegerr   )_invert_modularr5  r   r   r"  r   r   r   r   )r   r  r  r   r   r   r   rD   r%   r&   r   rQ   r   r   r   )r   invert_modulars     r   test_invert_modularr    s   c4 AH #a*ad1fa31::FFF#c!fa.!A$15#c!fa.!9LLLL#c!fa.!A$15#c!fa.!9LLLL#c!fa.!A$15#c!fa.!9LLLLAq	1Q4A61Q37+QZZ89; ; ; AE1qtQ:1Q37+QZZ89; ; ;#adQh*AaD!Q7A1q!" " " AaCQqT1a81Q37+QZZ89; ; ;#q1uq1uoq11Q4A>!a%!a%!$a() ) ) #adA,!a3

O  AqD!adAq91Q37+Q[[9:< < <A1q1$5q 91Q4AFTAX\8F1acAg$6DEG G G#c!fai+QqT1a8Q

OKKKr   c                     t        dd      } t        t        t        d      t        z
  t        t        j
                        j                  t        t        t        t         t        t        d      z   d      t        j
                              sJ t        dt        t        t              d      z
  t        t        j
                        j                  t        t        t        t        t        t              d      dz
  d      t        j
                              sJ t        dt        t        t              d      z
  t        t        j
                        j                  t        t        t        t        t        t              d      dz
  d      t        j
                              sJ t        dt        t        t              d      z
  t        t        j
                        j                  t        t        t        t        t        t              d      dz
  d      t        j
                              sJ t        dt        t        d      z
  t        t        j
                        t        j                  u sJ t        dt        t        d      z
  t        t        j
                        t        j                  u sJ t        t        d	t        t        d
      z   t        t        j
                        t        t        | d
| z  d	z
        t        j
                              sJ t        dt        t        d
      z   t        t        j
                        t        j                  u sJ t        t        dt        t        d      z
  t        t        j
                        t        t        | d| z  dz         t        j
                              sJ t        t        dt        dt        z  dz
  d      z
  t        t        j
                        t        t        | d| z  dz         t        j
                              sJ t        t        dt        dt        z  d      z
  t        t        j
                        t        t        | d| z  d	z         t        j
                              sJ t        t        t        t        d	z  d      dz
  t        t        j
                        t!        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                                    sJ t        dt        t        dz  d      z
  t        t        j
                        t        j                  u sJ t        t        t        t        dz  d      dz
  t        t        j
                        t!        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                                    sJ t        t        t        dt        z  d      dz
  t        t        j
                        t        t        | d| z  dz         t        j"                              sJ t        t        t        dt        z  d      dz
  t        t        j
                        t        t        | d| z  d	z         t        j"                              sJ t        t        t        dt        z  d      dz
  t        t        j
                        t        t        | d	| z  dz         t        j"                              sJ t        t        t        d	t        z  d      d	z
  t        t        j
                        t        t        | d| z  dz         t        j"                              sJ t        t        t        ddt        z  z  d      dz
  t        t        j
                        t%        t        t        | t%        t        d	| z  dz         t        d      z  ht        j
                              t        j"                        t        j
                              sJ t        t        t        dz  d      d	z
  t        t        j
                        t        j                  u sJ t        t        t        t        dz  d      dz
  t        t        j
                        t        t        | d| z  dz         t        j
                              sJ t        t        t        t        dz  d      dz
  t        t        j
                        t!        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                                    sJ t        t        dt        dt        z  dz
  d      z
  t        t        j"                        t%        t        t        | d| z  dz         t        j
                        t        j"                              sJ t        t        t        d      t&        z
  t        t        j
                        t        j                  k(  sJ t        t        t&        t        z  d      d	z
  t        t        j
                        j                  t        t        t        t        t&        t        z  d      d	z
  d      t        j
                              sJ t        t        t&        t        z   d      d	z
  t        t        j
                        j                  t        t        t        t        t        t&        z   d      d	z
  d      t        j
                              sJ t        t        t        t        dz  d      dz
  t        t        j
                        t!        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                                    sJ t        t        t        t        d z  d!      d"z
  t        t        j
                        t        t        | d!| z  d z         t        j
                              sJ t)        dd      } d#}d$}d%}d&}t        t        |t        || z  |z  |      z
  | t        j
                        t        t        | d'| z  d(z         t        j"                              sJ t        t        |t        || z  |z  |      z
  | t        j"                        t%        t        t        | d'| z  d(z         t        j"                        t        j"                              sJ t        t        |t        |d	| z  z  |z  |      z
  | t        j
                        t%        t        t        | d)| z  d*z         t        j"                        t        j
                              sJ t        |t        |d	| z  dz   z  |z  |      z
  | t        j
                        t        j                  u sJ t        t        |t        || dz
  z  |z  |      z
  | t        j
                        t%        t        t        | d'| z  d+z         t        j"                        t        j
                              sJ y ),Nr   Tr  r   r   r   r"  r   r   r   r      r4  r1  r  M   S   ]         r3  r5  rO  )   r  rD     r  r   r   r  r   J   r  iVH,i.qii@3ir   i?2   r  )r   ro   r   r   r   r   r   rP   r   rD   r&   r%   r   r   rQ   r   rW   r   rU   r   r   )r   r~   r   r   r   s        r   test_solve_modularr  6  s   c4 AC1IM1ajj 

(BrC1I~q1JJ  
 ACFA&1:: 

(Bs3q61~115qzzBDD D D ACFA&1:: 

(Bs3q61~115qzzBDD D D ACFA&1:: 

(<2c#a&!nq&8!#<	

    AAq	M1ajj1QZZ???AAq	M1ajj1QZZ???!c!Rj.!QZZ8VAr!tax(!**57 7 7AAr
NAqzz2ajj@@@!c!Qi-AJJ71Q37#QZZ02 2 2!c!A#'1o-q!**=1Q37+QZZ8: : :!c!A#qk/1ajj91Q37+QZZ8: : : #adC.1,a<(6!SUQY/<VAs1urz*AJJ7VAs1urz*AJJ7VAs1urz*AJJ7VAs1urz*AJJ7VAs1urz*AJJ7VAs1us{+QZZ8VAs1us{+QZZ8:; ; ; AAqD!$a4

BBB#adB-",a<(6!RTAX.

;VAr!tax(!**5VAr!tby)1::6VAr!tby)1::689 9 9 #adB-",a<VAr!tax(!++68 8 8#b!eR.2-q!**=VAqsQw'57 7 7#adA,*Aqzz:VAqsQw'57 7 7#adA,*Q

;VAqsQw'57 7 7#a!Q$i+a/AJJ?&L#acAg,s1v:M9NJJ- #++'()

45 5 5 C1aL1$a4

BBB#adA,*Aqzz:VAqsQw'46 6 6#adA,*Aqzz:(6!QqS1W-qzz:VAqsQw'467 7 7 !c!A#'1o-q!++>&AaC!G"4ajjA1;;OQ Q Q C1IM1ajj1JJ  C!QK!OQ

 

(Bs1Q3{Q2AJJ?AA A A CAqMA%q!** 

(Bs1q5!}q0!4ajjACC C C
 #adB-",a<(6!RTAX.

;VAr!tby)1::689 9 9 #aeR.2-q!**=VAr!tby)1::68 8 8 	T"AAAAA!c!Q$q&!n,a<VAz!|c12AKK@B B B!c!Q$q&!n,a=&JqL3,>"?MKK   !c!ac(1*a00!QZZ@&JqL2,=">LJJ   AA!aLNA..1::>!**LLL!c!a!e*Q,22AqzzB&JqL3,>"?MJJ  r   c            
         t        t        t        dt        d      dz  z        t        t        t        z  dt        d      z        gt        t              t        dt        d      dz  z  ddt        d      dz  z  z  f      k(  sJ y )Nr   r   r  r   r   )rr   r   r   r   r   r4   rT   r   r   r   test_issue_17276r    sq    1a!A$q&k*BqsBtAwJ,?@!QGAaDFRAaDG_-./ / /r   c                  h   t        d      } t        d      }t        d      }t        t        | |z         t        |       z
  |      j	                  t        d            t        t        t        |d|z  t        z        t        j                        t        t        j                  t        t        |t         t        d|z  t        z  t        t        dt        z  | z               z   z  dt!        |       z  z   z        t        j                                    j	                  t        d            k(  sJ y )Nr   r~   r   r   r  zx,n)r   r   ro   rD   r   rW   rQ   r   r   r   r   rU   r  r   r   r%   r    )r   r~   r   s      r   test_issue_10426r    s    c
AsAc
ASQZ#a&(!,66uSzBu1Q3r6"AJJ/Q[[(6!aRAaCFS#bQRdSTf+EV<V9WZ[\^_`\aZa9a5b+c	

# 	H  xe-. . .r   c                  r    t        t        t              dz
  t        z         t	        dt        z         k(  sJ y)z,Test solveset for simple conjugate functionsr   N)ro   r#   r   r   rT   r   r   r   test_solveset_conjugater    s+    IaL!Oa'(Ia!e,<<<<r   c                     t        d      t        d      z   } | \  }}}}}}}}}	}
}}}}}}}}}}}}}}}}}}g ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |	z   |
z   dz
  ||z   |z   |z   d	z
  ||z   |z   |	z   d
z
  ||z   |z   |
z   dz
  ||z   |	z   |
z   dz
  ||z   |	z   |
z   dz
  ||z   |z   |z   dz
  ||z   |z   |	z   dz
  ||z   |z   |
z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  |dz
  |dz
  |dz
  |dz
  |dz
  |dz
  |dz
  |dz
  }d|z
  |dz
  d	|z
  |d|z
  |dz   d|z
  |dddddddddd| |z   dz   ||z
  dz   | |z
  |z   d z   ||z   |z
  d!z
  d"|z
  |d#|z
  |d#|z
  |g}t        ||       \  }} t        | |      D !"ci c]  \  }!}"|!|"k7  s|!|" }#}!}"t        ||       |#k(  sJ t	        t        |       }$t        ||       |$k(  sJ t        || f|       |$k(  sJ |j                  |       \  }%}&t        |%      }%|$j                  t        |||||g|&            }'t	        t        |%       |'k(  sJ t	        d|z
  |dz
  d	|z
  |d|z
  |dz   d|z
  |dddddddddd| |z   dz
  ||z
  d z   d|z
  |d"|z
  |d#|z
  || |z   |z
  d z   ||z
  |z   d!z   f      }(t        ||       |(k(  sJ y c c}"}!w )$Nzx0:16zy0:12r  .   '   r  #   "   r  r  ,   r  r  5   8   r  4   r  0   <   r   r   r   r   r  r5  r   &   r   r  r      r   !   r  )r   ri   r   re   rT   r   rj   gauss_jordan_solver   r   rr   ))	variablesr5  r  r  r-  r.  x5x6x7x8x9x10x11x12x13x14x15y0r  r  r  y4y5y6y7y8y9y10y11r=  expectedr  r   r  r  solve_expectedlinsolve_expectedgj_solvenew_varsgj_expectednonlinsolve_expecteds)                                            r   test_issue_18208r    s    77#33I7@5BBBBBCc3SBBBBC"27R<"r! "7R<"r!"7R<"r!" 7R<"r!" 7R<"r!	"
 7R<"r!" 7R<"r!" 9r>B#" 8b=2"" 8b=2"" 9r>B#" 9r>B#" 9s?S 2%" 9s?R"$" 9s?R"$" 9s?S 2%"  7R<"r!!"" 7R<"r!#"$ 7R<"r!%"& 7R<"r!'"( 7R<"r!)"* 7R<"r!+", 7R<"r!-". 9r>B#/"0 8b=2"1"2 8b=2"3"4 9r>B#5"6 77"8 79": 7;"< 7="> 7?"@ 8A"B 7C"D 7E"CH Rb"r'2rBwQR2q!Q1b"b3$)a-rBr	B#S2X]Q%6RR"WbS#H
 sI.DAq ),Ix(@Luq"AGadLNLi N222 "%"23C#'8888QFI&*;;;; --a0HhH~H#((b"b"c-BH)MNKUH%&+555 %b2grBwRR"WbSTf&(2gr1b!Q1aRQS')cBhlBGbL"r'2rTVw&("r'2sRx"}r7I2PR7UW<Z[K[&] ^
 sI&*>>>>= Ms   M7 M7c                     t        d      \  } }}}}}}}}}	}
}}}}}}}}}}}}}||||||||||	|||||g}| |z  ||z  z
  |z   |z   |z   | |z  ||z  z
  |	z   | |z  ||z  z
  |z   |z   | |z  ||z  z
  |z   | |z  ||z  z
  |z   |z   | |z  ||z  z
  |z   |z   | |z  ||z  z
  | |z  ||z  z
  |  ||z  z   ||z  z   | ||z  z   ||z  z   | ||z  z   ||z  z   | ||z  z   ||z  z   | |z  |	 |z  |
 |z  | |z  | |z  | |z  | |z  | |z  |
||||g}t        dt        t        |      t        d            ddddddddddd||f|t        t        |      t        d            d|ddddddddd| |z  | |z  fdt        t        |      t        d            d|dddddddd| |z  |z  | |z  |fdt        t        |      t        d            d|ddddddd| |z  |z  | |z  |z  ||f      }|t        ||      k7  sJ y )Nzja00, a01, a10, a11, l0, l1, l2, l3, m0, m1, m2, m3, m4, m5, m6, m7, c00, c01, c10, c11, p00, p01, p10, p11r   r   r  )a00a01a10a11l0l1l2l3m0m1m2m3m4m5m6m7c00c01c10c11p00p01p10p11solveforrO  r   s                              r   *test_substitution_with_infeasible_solutionr    s1   qxtrnCc3BBBBBBSRUWZ\_adfikn S#sCc3BBBPRSH	c	BHr!C'#-	c	BHr!	c	BHs"S(	c	BHr!	c	BHs"S(	c	BHs"S(	c	BH	c	BH	sSy39$	sSy39$	sSy39$	sSy39$	c		c		c		c		c		c		c		c	




3F6 	
Jy~y|4aAq!Q1aQRTUWY[]^	j31631aAqRSUVXY\_[_`c[cfieijmemn	
Jy~y|4aaAq!QPQSTWYVYZ]V]^aVadgcghkckmop	
Jy~y|4aaAq!QPQTVSVWZSZ[^S^ac`cdg`ghk`kmoqst	C +fh////r   c                  ^    t        dt        t              z        t        j                  u sJ y r   r  r   r   r   test_issue_20097r   0  s!    Ad1gI!**,,,r   c                  x    t        t        t        dt        z  t        z                     t	        dd      k(  sJ y )Nr   r   )ro   r
   r4   r   rT   r   r   r   test_issue_15350r"  4  s-    Dac!e%&)B*::::r   c            
      >   t        dt        dk  ft        dt              dz  t        dt              dz  z
  t        dt              dz  z   df      } t        t        dt        dk  ft        dt              dz  t        dt              dz  z
  t        dt              dz  z   df      t        dk\  fd      }t        dd      }t	        | t        dd      z
  t        t        dd            }t	        |t        dd      z
  t        t        dd            }||k(  sJ ||k(  sJ y )Nr   r   r   r   Tr|  )r7   r   r5   rV   ro   r   )r  c2correct_resultresult1result2s        r   test_issue_18359r(  8  s    	Aq1u:Aq	!c!Qik 9C1IaK GN	OB	Iq!a%j3q!9Q;Q1+Ds1ayQR{+RTX*YZ\]ab\bcen	oBa^NrHQN*Ax1~>GrHQN*Ax1~>Gn$$$n$$$r   c                      ddt         z  dz  z   t        t         dz        z  t        t         dz  z  z   } t        | t               sJ t	        | dt         t
        j                        t        d      k(  sJ y )Nr   r   r  r   )r   r%   r   rv   rw   r   r  rT   )r   s    r   test_issue_17604r*  B  s`    qs2v;,s1R4y
 2":
-C3"""c1a51EEEr   c                      t        ddt        dz  z
  dz  z  t        t        j                        t        j                  u sJ y r  )ro   r   r   r   r   r   r   r   test_issue_17580r,  H  s1    Aq1a4x!mOQ0AJJ>>>r   c                      dt         z  dt        z  z   dz
  dt         z  dt        z  z   dz
  g} t        | t         t              t        t	        ddt        z  z
        t	        d      z  t        f      k(  sJ y )Nr   r   r   r4  r   )r   r   rr   rT   r&   )r^  s    r   test_issue_17566_actualr.  L  sb    a4!Q$;?AqD1a4K!O
,CsAq!YA1Hc!f0Da/H%IIIIr   c            	      t   t        dt        dz
  dz  z  dt        dz   t        d      dz  z  z  z  dt        dz
  z  t        dz   t        d      dz  z  z  z   d      } t        t	        j
                  dt        dd             t	        dt                    }t        | t        t        j                        |k(  sJ y )Nr   r   r   r   r   r   )r   r   r   rW   rV   r  r   r   ro   r   r   )r  r  s     r   test_issue_17565r0  R  s    	Aq1uqjL!QUgajl334q!a%y!a%7ST:VW<AX7XXZ[	\B
rHQN?3Xa_
ECB177#s***r   c                      t         dz   t        t         dz   dt         z  z
        z  } t        | t         t        j                        t        t        d            k(  sJ y )Nr   r   r   r   )r   r4   ro   r   r   rT   r   )functions    r   test_issue_15024r3  X  sG    AtQTEBqDL))HHa)Ywr{-CCCCr   c                  l   t        t        t        dz
  t        t              gt        t              t        dt        t        t        dt        z  t        z        t        j                        fdt        t        t        dt        z  t        z  t        z         t        j                        f            sJ y r  )r   rr   r   rD   r   rT   rQ   r   r   r   r   r   r   r   r   test_issue_16877r5  ]  s~    a!eSV_a3Axq!A#b&(91::FGxq!A#b&2+(>

KLNO O Or   c                  X   t        t        t        t              dt        z  dt        z  z
  gt        t              t        t        t        t        dt        z  t        z        t        j                        t        t        t        t        t        z        t        j                        ft        t        t        dt        z  t        z  t        z         t        j                        t        t        t        t        t        z  t        dz  z         t        j                        f            sJ y Nr   r   )r   rr   rD   r   r   rT   rQ   r   r   r   r   r   r   r   r   test_issue_16876r8  d  s    c!facAaCi0!Q7HVAqs2v%6

C$VAqt_ajjAC$VAqs2v{%;QZZH$VAqtbd{%;QZZHJKL L Lr   c                     t        d      \  } }t        dd      }t        | |z  |z
  | t        j                        t	        | t        | |z  |z
  d      t        j                        k(  sJ t        dd      \  }}||z  }t        | |z  |z
  | t        j                        t	        | t        | |z  |z
  d      t        j                        k(  sJ y )Nzx zr   T)rationalr   ze1 e2)even)r   ro   r   r   rP   r   )r   r   r   r  r  s        r   test_issue_21236r<  m  s    5>DAqd#AAqD1Ha)\!R1q!_agg-VVVVW4(FB
2AAqD1Ha)\!R1q!_agg-VVVVr   c                      t        t        dz  dt        z  z   t        dz  z
  t        t              z  dt        z  t        t              z  gt        t              ddhk(  sJ y )Nr   r  )r  r   rf  )rr   r   r   r%   r   r   r   test_issue_21908r>  v  sV    A!ad*CF2BqDQK@!Q #V,- - -r   c                     t         t        z   dz
  t        dz  dz   g} | D cg c]  }t        |d       }}dt        z
  t        fdt        z   t         fh}t	        | t         t        g      }t	        |t         t        g      }||cxk(  r|k(  sJ  J t         t        z  dz
  t        dz  dz   g}|D cg c]  }t        |d       }}t         t         ft        t        fh}t	        |t         t        g      }	t	        |t         t        g      }
|
|	cxk(  r|k(  sJ  J t	        t        t         dt         z  z   dt         z        gt         g      t        t        j                  f      k(  sJ y c c}w c c}w )Nr   r   r   )r   r   r   r   rr   rT   r   r   )r  r   rg  r[  
soln_expr1soln_eq1r  rh  r  
soln_expr2soln_eq2s              r   test_issue_19144rD  {  sN   UQY1q!E"
#2a8
#C
#!eQZ!a%!%EUQF+J3A'Hz*U*****qS1WadQhE"
#2a8
#C
#b1"X1vEUQF+J3A'Hz*U*****1qs7AaC()A3/9ajj]3KKKK $ $s   E+1E0c            	         t        dt        z  dt        z  dt        t              z  z   dz   z  t        dt        z        z  dt        z  t        dt        z        z  dt        z  t        dt        z  t        z         z  z   dt        dt        z  t        z         z  z   dz   ft        t              } t	        t        t
        j                  ft        t               t
        j                  z
  t        f      }| |k(  sJ y )Nr   r   r   )rr   r   r   r%   rT   r   rP  r   )r  solss     r   test_issue_22413rG    s    !QqS1SV8^a/0QqS91S1X!C!aL(881S1q\>IAMO1C a[CF7QVV#3Q"78D$;;r   c            	      d   t        dt        t        t        dt        z
  z  dz         z  t        z        t        t        dt        z        t        ddt        z  t        z        g} | D cg c]  }|j
                  |j                  z
   }}dh}t        t        | t        t        t        g      |       t        t        |t        t        t        g      |       t        dt        z  ddt        z  z
  z  dz         }dt        z  |z  d	t        z  z   }t        t        |t              d
dh       y c c}w )Ng}jJ@g      @r   g~jtX?gQ@)gO]p@g;fl?g~adOAgIx>g~jtXgFӭ{>r   g\adOA)r   r   r&   r   r   r   rhsr   rr   r   ro   )eqs_eqr  eqs_exprr   logterms        r   test_issue_23318rM    s    
QQ#']Q%6!77!;<
1fqj
67Q;?#F
 +11B1H1A
BCKAq	2C8K1a)4c:%a'/B1/D)DEIJG	7	02	2BHROa)9%:; 2s   ) D-c                     t        dt        z  ddt        z  z  z
  ddt        z  z  ddt        z  z  z
  gt        t              t        t	        ddt        z  z        t	        d      z  t
        j                  f      k(  sJ y r7  )rr   r   r   rT   r&   r   r  r   r   r   test_issue_19814rO    sr    AAaC!AqD&1qs8*;<a $c!ac(mCF&:AKK%HIJ J Jr   c                  F   t        t        t               t        dz  z  dt        z  z   t        t              z   t        t        j
                        } | j                  t        di      dt        d      z
  dt        d      z   hk(  sJ | j                  t        di             y rj  )ro   r4   r   r   r   r   xreplacer  s    r   test_issue_22058rR    sw    
DG8AqD=1Q3&a0!QWW
=C<<AAQKT!W#==Ss||QPQF?SS=r   c                      t        dt        t        dz  t        t        dz
   t        dz   z        dz   dz  z         z  dz
  t        t        j                        t        j
                  u sJ y )Nr   r   r   r  )ro   r4   r   r   r   r   r   r   r   test_issue_11184rT    s]    BtAqDD1r6AF);$<r$AA#EEFFKQPQPWPWX\]\f\ffffr   c            	         t        d      dz  } t        dt        dz  z  t        dz  z  dt        z  z
  dt        dz  z  t        dz  z  dt        z  z
  gt        t              d| z  dt        z  z  t        fd| z   dz  d| z  t	        d      z  t
        z  dz  z
  t        z  t        fd| z   dz  d| z  t	        d      z  t
        z  dz  z   t        z  t        fhk(  sJ t        ddt        dz  z  z
  t        dt        dz  z  dt        dz  z  z
        z  dt        z  t        z  t        dt        dz  z        z  t        dt        dz  z        z  gt        t              t        d       dz  dft        d      dz  dfhk(  sJ t        dd	
      \  }}t        d|dz  z  |dz  z  d|z  z
  d|dz  z  |dz  z  d|z  z
  g||      }dt        d      dz  z  d|z  z  |fdt        d      dz  z   dz  dt        d      dz  z  t	        d      z  t
        z  dz  z
  |z  |fdt        d      dz  z   dz  dt        d      dz  z  t	        d      z  t
        z  dz  z   |z  |fh}||k(  sJ y )Nr   r   r   r   r  r	  r   r  Tr   )r   rr   r   r   r4   r   r%   r   )r   rxryr   r9  s        r   test_issue_21890rX    s   	!QA!Q$q!tac)1QT6!Q$;1+<=q!D	
AqsQAqD57QT$q'\!^A%55q8!<a4%'AqDaLN1$
$a	'+I- - - - Qq!tVSAqD1QT6)9%::
1Qs2ad7|C1a4L(*+,a178teAgq\AaDFA;4OP P PU&FB
qQwr1u}qt+Qr1uWRU]QrT-ABB
KC!QK2#qtAv;,q.1qtAv;tAw.q02
2B	6;qtAv;,q.1qtAv;tAw.q02
2B	6;=C #::r   c                  D   t        t        dz
  t        dz
  t        dz
  t        dz
  dt        z  gt        t        t              t        j
                  k(  sJ t        t        dz  dz
  t        t        z   t        dz  dz
  gt        t        g      t        j
                  k(  sJ y )Nr   r   r   r  r   )rr   r   r   r   r   r   r   r   r   r   r   test_issue_22628rZ    sv    Aq1ua!eQUBqD91aCqzzQQQ1q!a%A2QF;qzzIIIr   c                  r    t        t        t        dz        t        z
        dt        j                  gk(  sJ y rW  )re   r4   r   r   r   r   r   r   test_issue_25781r\    s)    acQAqvv;...r   c                     t        d      } t        t        dt        z        z  }t        |t        t        j
                        }t        t        t        | d| z  t        z  dz        t        j                        t        t        | d| z  t        z  dz  t        dz  z         t        j                              }t        t        t        t        dt        dt        z        dz  z  dz
  z  t        dt        z        z   d      t        t        j
                  |            }|j                         |j                         k(  sJ y )N_nr   r   r   r   )r   r   rA   r   r   r   rW   rQ   r   r   r   rP   r   rS   as_dummy)r^  r2  critical_pointsexcluded_pointsr  s        r   test_issue_26077rb    s    	BQqSzH'!QWW=OAbDGAI&

3AbDGAI1,-qzz:O A
1bQqS1nq !C!H,a0177O,H /":":"<<<<r   N(}  mathr   sympy.calculus.utilr   sympy.core.containersr   sympy.core.functionr   r   r	   r
   sympy.core.modr   sympy.core.numbersr   r   r   r   r   r   r   sympy.core.relationalr   r   r   r   sympy.core.singletonr   sympy.core.sortingr   sympy.core.symbolr   r   r   r  r   $sympy.functions.elementary.complexesr   r   r    r!   r"   r#   &sympy.functions.elementary.exponentialr$   r%   r&   %sympy.functions.elementary.hyperbolicr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   (sympy.functions.elementary.miscellaneousr4   r5   r6   $sympy.functions.elementary.piecewiser7   (sympy.functions.elementary.trigonometricr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   'sympy.functions.special.error_functionsrF   rG   rH   rI   r  rJ   sympy.matrices.denserK   r  sympy.matrices.immutablerL   sympy.polys.polytoolsrM   sympy.polys.rootoftoolsrN   sympy.sets.containsrO   sympy.sets.conditionsetrP   sympy.sets.fancysetsrQ   rR   sympy.sets.setsrS   rT   rU   rV   rW   rX   rY   sympy.simplifyrZ   sympy.tensor.indexedr[   sympy.utilities.iterablesr\   sympy.testing.pytestr]   r^   r_   r`   ra   rb   sympy.core.randomrc   r  r,  rd   sympy.solversre   r  rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   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   r   r  r
  r  r  r  r   r,  r/  r<  r?  rK  rM  rQ  rS  rU  rW  rY  r[  r]  r_  ra  rh  rk  rm  ro  rr  rt  rw  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  r7  rA  rC  rM  rQ  rS  rY  r\  rc  rk  ro  rw  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r  r!  r#  r%  r'  r)  r+  r-  r/  r;  r@  rG  rI  rK  rM  rO  rQ  rS  rU  rX  rZ  r]  r_  rc  rf  rh  rj  ru  rw  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r"  r(  r*  r,  r.  r0  r3  r5  r8  r<  r>  rD  rG  rM  rO  rR  rT  rX  rZ  r\  rb  r   r   r   <module>r     s    1 ' @ @  K K K 2 2 " & 6 6 & T T G GR R R R C C :" " " "  # = 9 & + ( 0 09 9 9 # ( 6 Q Q 6 " B B B B B B B     #>	> CN CNL< )@X+:
, 	N 	N&H8Lv6 4G
B;,$1N
F,R = = 3 3B0!7
EC

!=%
+
!Ba
W2?@H(D>1E1	D3&6 Y6 Y6x_;DB9J(EVB@B28
 	6 	6 S Sl * * !^ !^H K K6,@^>( U U
C.5N
+46Er1
6l0^&(,C8@3
7
= H H..M:,&N2O4> 
> 
>UD"N%<F,80t (
](1./&H
 f, ,  g+ +$
761':226: <6D    	EA98
(
3>?*]=,*	9C4<2,-6;
2$;[R
*]N9H 4(%
HGI-=`  80(/6+ > > ; ;
2<A" . .@"J6&3(
2LBgV/
.=
O?d&0R-;%F?J+D
OLW-
L&<$J
TgJ
/=r   