U
    «Ì0es ã                   @   sÀ  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 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.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI d dlJmKZKmLZLmMZMmNZN d dlOmPZP d dlQmRZS d dlTmUZU d dlVmWZW d dlXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_m`Z` d dlambZbmcZcmdZdmeZemfZfmgZgmhZh d dlimjZj d dlkmlZl d dlmmnZn d dlompZpmqZqmrZrmsZsmtZtmuZu d d lvmwZx d d!lymzZz d d"l{m|Z| d d#l}m~Z~mZm€Z€mZm‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹mŒZŒmZmŽZŽmZmZm‘Z‘m’Z’m“Z“m”Z” d d$l•m–Z–m—Z—m˜Z˜m™Z™mšZšm›Z›mœZœmZmžZžmŸZŸm Z m¡Z¡m¢Z¢m£Z£m¤Z¤m¥Z¥m¦Z¦m§Z§m¨Z¨m©Z©mªZª d%d&„ Z«d'd(„ Z¬d)d*„ Z­eud+d,„ ƒZ®d-d.„ Z¯d/d0„ Z°d1d2„ Z±d3d4„ Z²epd5d6„ ƒZ³d7d8„ Z´d9d:„ Zµd;d<„ Z¶d=d>„ Z·d?d@„ Z¸dAdB„ Z¹dCdD„ ZºdEdF„ Z»dGdH„ Z¼dIdJ„ Z½epdKdL„ ƒZ¾esdMdN„ ƒZ¿dOdP„ ZÀdQdR„ ZÁdSdT„ ZÂdUdV„ ZÃdWdX„ ZÄdYdZ„ ZÅd[d\„ ZÆd]d^„ ZÇd_d`„ ZÈdadb„ ZÉdcdd„ ZÊdedf„ ZËdgdh„ ZÌdidj„ ZÍdkdl„ ZÎdmdn„ ZÏdodp„ ZÐdqdr„ ZÑdsdt„ ZÒdudv„ ZÓdwdx„ ZÔdydz„ ZÕd{d|„ ZÖd}d~„ Z×dd€„ ZØdd‚„ ZÙdƒd„„ ZÚd…d†„ ZÛeud‡dˆ„ ƒZÜd‰dŠ„ ZÝd‹dŒ„ ZÞddŽ„ Zßdd„ Zàepd‘d’„ ƒZáepd“d”„ ƒZâepd•d–„ ƒZãeud—d˜„ ƒZäeud™dš„ ƒZåd›dœ„ Zæddž„ ZçepdŸd „ ƒZèd¡d¢„ Zéd£d¤„ Zêd¥d¦„ Zëd§d¨„ Zìd©dª„ Zíd«d¬„ Zîd­d®„ Zïd¯d°„ Zðd±d²„ Zñd³d´„ Zòdµd¶„ Zód·d¸„ Zôd¹dº„ Zõd»d¼„ Zöd½d¾„ Z÷d¿dÀ„ ZødÁdÂ„ ZùepdÃdÄ„ ƒZúdÅdÆ„ ZûdÇdÈ„ ZüdÉdÊ„ ZýdËdÌ„ ZþdÍdÎ„ ZÿdÏdÐ„ Z epdÑdÒ„ ƒZdÓdÔ„ ZdÕdÖ„ Zd×dØ„ ZdÙdÚ„ ZdÛdÜ„ ZdÝdÞ„ Zdßdà„ Zdádâ„ Z	dãdä„ Z
dådæ„ Zdçdè„ Zdédê„ Zdëdì„ Zdídî„ Zetdïƒdðdñ„ ƒZetdòƒdódô„ ƒZdõdö„ Zd÷dø„ Zdùdú„ Zdûdü„ Zdýdþ„ Zdÿd „ Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%dd„ Z&dd „ Z'd!d"„ Z(d#d$„ Z)d%d&„ Z*d'd(„ Z+d)d*„ Z,d+d,„ Z-d-d.„ Z.d/d0„ Z/d1d2„ Z0d3d4„ Z1d5d6„ Z2d7d8„ Z3d9d:„ Z4d;d<„ Z5d=d>„ Z6d?d@„ Z7dAdB„ Z8dCdD„ Z9dEdF„ Z:dGdH„ Z;dIdJ„ Z<dKdL„ Z=dMdN„ Z>dOdP„ Z?dQdR„ Z@dSdT„ ZAepdUdV„ ƒZBdWdX„ ZCdYdZ„ ZDd[d\„ ZEepd]d^„ ƒZFepd_d`„ ƒZGdadb„ ZHdcdd„ ZIdedf„ ZJepdgdh„ ƒZKdidj„ ZLdkdl„ ZMdmdn„ ZNdodp„ ZOdqdr„ ZPdsdt„ ZQdudv„ ZRdwdx„ ZSdydz„ ZTd{d|„ ZUd}d~„ ZVdd€„ ZWdd‚„ ZXdƒd„„ ZYd…d†„ ZZd‡dˆ„ Z[d‰dŠ„ Z\d‹dŒ„ Z]ddŽ„ Z^dd„ Z_d‘d’„ Z`d“d”„ Zad•d–„ Zbd—d˜„ Zcd™dš„ Zdd›dœ„ Zeddž„ ZfdŸd „ Zgd¡d¢„ Zhd£d¤„ Zid¥d¦„ Zjd§d¨„ Zkd©S (ª  é    ©Úisclose)ÚAdd)ÚTuple)ÚFunctionÚLambdaÚnfloatÚdiff)ÚMod)ÚEÚIÚRationalÚooÚpiÚInteger)ÚEqÚGtÚNeÚGe)ÚS)Úordered)ÚDummyÚSymbolÚsymbols©Úsympify)ÚAbsÚargÚimÚreÚsignÚ	conjugate)ÚLambertWÚexpÚlog)ÚHyperbolicFunctionÚsinhÚtanhÚcoshÚsechÚcoth)Ú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Ú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                 C   s:   t | ƒttfkr(tdd„ t| |ƒD ƒƒS | |kp8|  |¡S )Nc                 s   s   | ]\}}t ||ƒV  qd S ©N)Údumeq©Ú.0r|   r}   © r   úE/tmp/pip-unpacked-wheel-_6tpq7m6/sympy/solvers/tests/test_solveset.pyÚ	<genexpr>9   s     zdumeq.<locals>.<genexpr>)ÚtypeÚlistÚtupleÚallÚzipÚdummy_eq)r|   r}   r   r   rŽ   rŠ   7   s    rŠ   c                 C   s`   t | ƒ} t |ƒ}t| tƒst‚t|tƒs,t‚t| ƒt|ƒks@t‚tdd„ t| |ƒD ƒƒs\t‚dS )z2Test solutions with floats from solveset are closec                 s   s   | ]\}}t ||ƒV  qd S r‰   r   ©rŒ   Zv1Zv2r   r   rŽ   r   D   s     z"assert_close_ss.<locals>.<genexpr>N)r   Ú
isinstancerK   ÚAssertionErrorÚlenr“   r”   )Úsol1Úsol2r   r   rŽ   Úassert_close_ss=   s    rœ   c                 C   sˆ   t | ƒ} t |ƒ}t| tƒst‚t|tƒs,t‚t| ƒt|ƒks@t‚t| |ƒD ]8\}}t|ƒt|ƒksft‚tdd„ t||ƒD ƒƒsJt‚qJdS )z5Test solutions with floats from nonlinsolve are closec                 s   s   | ]\}}t ||ƒV  qd S r‰   r   r–   r   r   rŽ   r   P   s     z"assert_close_nl.<locals>.<genexpr>N)r   r—   rK   r˜   r™   r”   r“   )rš   r›   Ús1Ús2r   r   rŽ   Úassert_close_nlG   s    rŸ   c                     sH  t ddd‰ tjfdd„} ttˆ ƒtˆ ƒˆ | tttƒƒƒfksBt‚t ddd‰t ddd}tˆ d	 ˆˆ ƒˆ tˆd	 ƒfks~t‚tˆ d	 ˆˆ ƒˆ tˆd	 ƒfks¢t‚ttˆ ƒˆˆ ƒˆ ttˆƒƒfksÆt‚ttd	ˆ  ƒˆˆ ƒˆ ttˆƒd	 ƒfksòt‚ttˆ d	 ƒˆˆ ƒˆ ttˆƒd	 ƒfks t‚ttˆ ƒd	 ˆˆ ƒˆ | ttˆd	 ƒƒƒfksRt‚ttˆ ƒd	 ˆˆ ƒˆ ttˆd	 ƒƒfks€t‚ttˆ ƒˆˆ ƒˆ ttˆƒƒfks¦t‚ttd	ˆ  ƒˆˆ ƒˆ ttˆƒd	 ƒfksÔt‚ttˆ d	 ƒˆˆ ƒˆ ttˆƒd	 ƒfkst‚tt	ˆ ƒˆˆ ƒˆ tˆˆ ƒfks(t‚td
ˆ  ˆˆ ƒˆ ttˆƒtd
ƒ ƒfksVt‚td
tˆ ƒ ˆˆ ƒˆ | tttˆƒtd
ƒ ƒƒƒfkst‚tˆ d
 ˆˆ ƒˆ tt
ˆƒt
ˆƒ ƒfks¾t‚tˆ tj ˆˆ ƒˆ tˆd
 ƒfksæt‚tt‡ fdd„ƒ tˆ t ˆˆ ƒˆ tˆdt  ƒfks"t‚tˆ t t ˆ ƒˆ tjfksDt‚tˆ tdƒ dˆ ƒˆ tdƒfksjt‚tˆ d dˆ ƒˆ d tdƒfkst‚tt‡ ‡fdd„ƒ tˆ d ˆ  ˆˆ ƒˆ d ˆ  tˆƒfksÒt‚ˆ d ˆ  }tˆd ˆ d ƒ}tt	ˆ d ˆ  d ƒˆˆ ƒ||fkst‚tttˆ ƒˆˆ ƒˆ tt||t d| tˆƒ  ƒtjƒfƒs^t‚ttttˆ ƒƒˆˆ ƒˆ tt|td| tˆƒ |t  ƒƒtjƒfƒs¨t‚tttˆ ƒˆˆ ƒˆ tt||t d| tˆƒ  ƒtjƒfƒsêt‚ttttˆ ƒƒˆˆ ƒˆ tt|td| tˆƒ |t  ƒƒtjƒfƒs4t‚tttˆ ƒˆˆ ƒˆ ttt|d
| t tˆƒ ƒtjƒtt|d
| t tˆƒ ƒtjƒƒfƒs–t‚ttttˆ ƒƒˆˆ ƒˆ ttt|td
| t tˆƒ ƒƒtjƒtt|td
| t tˆƒ ƒƒtjƒƒfƒst‚tttˆ ƒˆˆ ƒˆ ttt|d
| t tˆƒ ƒtjƒtt|d
| t tˆƒ ƒtjƒƒfƒsft‚ttttˆ ƒƒˆˆ ƒˆ ttt|td
| t tˆƒ ƒƒtjƒtt|td
| t tˆƒ ƒƒtjƒƒfƒsÔt‚tttˆ ƒˆˆ ƒˆ tt||t t ˆƒ ƒtjƒfƒst‚ttttˆ ƒƒˆˆ ƒˆ tt|t|t t ˆƒ ƒƒtjƒfƒsPt‚ttt!ˆ ƒˆˆ ƒˆ tt||t t"ˆƒ ƒtjƒfƒsŠt‚ttt!tˆ ƒƒˆˆ ƒˆ tt|t|t t"ˆƒ ƒƒtjƒfƒsÌt‚ttttˆ ƒƒˆˆ ƒtˆ ƒtt||t t ˆƒ ƒtjƒfƒst‚t ddd‰ tˆ t ˆˆ ƒˆ tˆdt  ƒfksDt‚d S )Nr†   T©Úrealc                 S   s
   t || ƒS r‰   )rL   )r†   Úsr   r   rŽ   ÚirealW   s    ztest_invert_real.<locals>.irealr‡   ©Zpositiver   é   é   c                      s   t ˆ ˆ ˆ ƒS r‰   )rc   r   ©r†   r   rŽ   Ú<lambda>t   ó    z"test_invert_real.<locals>.<lambda>é   g      ø?iè  éd   ç      ð?c                      s   t tjˆˆ ƒS r‰   )rc   r   ÚOner   ©r†   r‡   r   rŽ   r¨   |   r©   é   éÿÿÿÿ)#r   r   ÚRealsrc   r#   rˆ   rK   r$   r˜   r   r+   ÚHalfrU   Ú
ValueErrorr   r   ÚEmptySetr   rŠ   r;   rO   r   r4   ÚIntegersr9   r2   r7   rN   r0   r:   r3   r<   r5   r8   r1   )r£   r   ÚlhsZbase_valuesr   r®   rŽ   Útest_invert_realS   sž    ($$$,.2.&..&.:.(*"&&.*(ÿ
,ÿ
(ÿ
,ÿ
$ ÿÿ
($ÿÿ
$ ÿÿ
($ÿÿ
 ÿ
$ÿ
 ÿ
$ÿ
$ÿ
r·   c                
   C   s,  t td ttƒtttd ƒfks$t‚t td ttƒtttd ƒfksHt‚t td d dtƒttdƒfkslt‚tt ttƒttƒtttt	t
dt t	 ttƒ  tttƒƒ ƒtjƒfƒs¸t‚t ttƒttƒttttƒƒfksÜt‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t ttƒdtƒttdƒfks(t‚d S )	Nr¥   rª   r   r¦   c                   S   s   t dttƒS ©Nrª   )rc   r‡   r†   r   r   r   rŽ   r¨   ½   r©   z%test_invert_complex.<locals>.<lambda>c                   S   s   t tttƒS r‰   ©rd   r†   r   r   r   rŽ   r¨   ¾   r©   c                   S   s   t ttdƒS r¸   r¹   r   r   r   rŽ   r¨   ¿   r©   )rd   r†   r‡   rK   r˜   rŠ   r#   rO   r   r   r   r   r   r$   r   r   rµ   rU   r³   r&   r   r   r   rŽ   Útest_invert_complex³   s    $$$4ÿ$rº   c                   C   sl   t dddtd  d   tdƒdks(t‚t td tdƒdks@t‚t tttƒdksTt‚t dttƒdksht‚d S )Nrª   r¦   r°   Fr   T)r^   r†   r˜   r   r   r   r   rŽ   Útest_domain_checkÅ   s    (r»   c                   C   sF   t dt d ttjƒtjks t‚t dt d ttjƒtdƒksBt‚d S )Nr   r«   rª   )re   r†   r   r±   r´   r˜   rK   r   r   r   rŽ   Útest_issue_11536Ì   s     r¼   c                  C   sœ   t d td  d t d td  d  ddt d  td  td    } |  t ¡}|  t¡}|  t¡}t|||gt ttgƒ}t|ƒdkr”t|ƒdks˜t‚d S )Nr¦   é   é   )r†   r‡   rˆ   r	   rh   r™   r˜   )ry   ÚfxÚfyÚfzÚsolr   r   rŽ   Útest_issue_17479Ñ   s    H


rÃ   c                     sÒ   t dƒ\} }}| d |d  d | d |d  d  dd| d  |d  |d    }t|| ƒ}t||ƒ}t||ƒ}t|||g| ||gƒ}|D ]>\}}	}
| |||	||
i‰ t‡ fdd„|||fD ƒƒdksŽt‚qŽd S )Núx, y, zr¦   c                 3   s   | ]}|  ˆ ¡ ¡ V  qd S r‰   )ÚsubsrQ   )rŒ   Ú_©rw   r   rŽ   r   ê   s     z#test_issue_18449.<locals>.<genexpr>)r   r   r   )r   r	   rh   r’   r˜   )r†   r‡   rˆ   ry   r¿   rÀ   rÁ   rÂ   ÚxsÚysZzsr   rÇ   rŽ   Útest_issue_18449à   s    H


rÊ   c                  C   sÂ   dt  d tt d ƒd d  } t| t tjƒtdƒks:t‚tt ƒd d tt ƒd d  dt d   tdƒ } t| t tjƒttjtdtdƒ d ƒd  tjtdtdƒ d ƒd  ƒks¾t‚d S )Nr¦   rª   é   é   )r†   r+   re   r   r±   rK   r˜   r²   ©ry   r   r   rŽ   Útest_issue_21047ô   s     4 ÿrÎ   c                   C   sî  t tttƒtƒdkst‚t tttƒd tƒdks4t‚t tttƒttƒ tƒdksTt‚t tttƒttƒ t tƒdksxt‚t tttƒttƒ ttƒ tƒdks t‚t tttƒttt ƒ ttƒ tƒdksÌt‚t tttƒttt ƒ ttƒ tƒdksøt‚t ttttƒ d tƒdkst‚t tttƒd ttƒ d tƒdksDt‚t tttƒt tƒdksbt‚t tttd ƒtƒdks€t‚t tttd ƒttƒ tƒdks¦t‚t tttƒttƒ tƒdksÈt‚t ttttƒƒttƒ tƒdksît‚t tttƒtƒdkst‚t tttƒd tƒdks&t‚t tttƒt	tƒ tƒdksHt‚t tttƒt	tƒ t tƒdksnt‚t tt	tƒttƒ t	tƒ tƒdks˜t‚t tt	tƒttt ƒ t	tƒ tƒdksÆt‚t tt	tƒttt ƒ t	tƒ tƒdksôt‚t ttttƒ d tƒdkst‚t tttƒd t	tƒ d tƒdks@t‚t tttƒt tƒdks^t‚t tttd ƒtƒdks|t‚t tttd ƒt	tƒ tƒdks¢t‚t tttƒt	tƒ tƒdksÄt‚t ttt	tƒƒt	tƒ tƒdksêt‚d S )NTrª   r¦   F)
rb   r/   r<   r†   r˜   r;   rt   r%   r'   r&   r   r   r   rŽ   Útest_is_function_class_equationý   sP    ÿÿ
 ÿÿ ÿÿ ÿÿ ÿÿ ÿÿ ÿÿ ÿÿ
 ÿÿ

 ÿÿ

 ÿÿ
 ÿÿ
 ÿÿ
 ÿÿ
 ÿÿ

 ÿÿ
 ÿÿ
 ÿÿ
 ÿÿ
 ÿÿ
 ÿÿ
 ÿÿ
 ÿÿ

 ÿÿ

 ÿÿ
 ÿÿ
 ÿÿ
 ÿÿrÏ   c                      sÔ   t tdd„ ƒ tddd‰ tˆ dƒtjks.t‚tˆ d dƒtˆ ƒksHt‚tˆ tƒtjks\t‚tˆ ˆ d ƒtjkstt‚t t‡ fdd„ƒ t	ˆ tƒtjksšt‚t t‡ fd	d„ƒ t t‡ fd
d„ƒ t t‡ fdd„ƒ d S )Nc                   S   s   t tgtƒS r‰   )r]   r‡   r   r   r   rŽ   r¨   9  r©   z$test_garbage_input.<locals>.<lambda>r†   Tr    rª   r¦   c                      s   t ˆ gˆ ƒS r‰   )r_   r   r§   r   rŽ   r¨   @  r©   c                      s   t ˆ tfˆ ƒS r‰   )re   r‡   r   r§   r   rŽ   r¨   C  r©   c                      s   t ˆ d tjƒS r¸   )re   r   r±   r   r§   r   rŽ   r¨   D  r©   c                      s   t ˆ d ˆ dƒS ©Nrª   r¦   )re   r   r§   r   rŽ   r¨   E  r©   )
rU   r³   r   r]   r   r´   r˜   rK   r   r_   r   r   r§   rŽ   Útest_garbage_input8  s    rÑ   c                  C   sÞ   t tt t ttƒd  tƒttdƒhtt t htj	ƒƒksBt
‚tddd} tddd}t | t | ttƒd  tƒt| |  tdƒƒkst
‚t dt d dttƒ  tƒttd	ƒƒks¾t
‚t tttƒ tƒtjksÚt
‚d S )
Nr¥   ÚanzT)ZnonzeroÚbbr    r¦   é   éüÿÿÿ)r]   rt   r†   ru   r#   rN   r$   rL   r   r±   r˜   r   rK   r´   )rÒ   rÓ   r   r   rŽ   Útest_solve_mulH  s    ÿÿ.rÖ   c                   C   sè   t ttƒd tƒttdƒƒks"t‚t ttƒd tƒttdƒƒksDt‚t dtd  tƒtƒ ks`t‚t ddt  tƒtƒ ks|t‚t ttttt ƒ  tƒt	t
jttttt ƒ ƒƒks¶t‚t dt d tƒtdtdƒtdƒ  ƒksät‚d S )Nr¥   r¦   é
   rª   rÌ   )r]   r#   r†   rK   r$   r˜   r‡   ru   rt   rL   r   r±   r   r   r   rŽ   Útest_solve_invertS  s    "" ÿ
rØ   c                   C   s”   t ttƒtj tƒtttjƒƒks&t‚t ttƒd tƒttdƒƒksHt‚t ttƒtj	 tƒtt
tj	ƒƒksnt‚t t
tƒd tƒttdƒƒkst‚d S ©Nr¦   )r]   r=   r†   r   r²   rK   r@   r˜   r>   r­   r?   r   r   r   rŽ   Útest_errorinversesa  s    ÿ
ÿÿrÚ   c                  C   sÚ  t ddd} t ddd}td|  d | ƒttddƒƒks<t‚t| d d | ƒttj tjƒksbt‚t| |d  | ƒt|d ƒks„t‚t| d d|   d	 | ƒtd
dtj  td	ƒd
dtj  ƒksÆt‚tt| ƒd | ƒtdƒksät‚tt| ƒd | ƒtd	ƒkst‚t| tdd	ƒ d | ƒtdƒks*t‚t| tddƒ d | ƒtdƒksPt‚t	t| d | d  d | ƒƒdksxt‚t	td
| d  d	| d   d|   d | ƒƒdks°t‚t| d | d	  t
 | ƒtjksÖt‚d S )Nr†   Tr    r‡   r¥   r¦   rª   é   r½   éþÿÿÿé   é   rÌ   rË   r   )r   r]   rK   r   r˜   r   r­   r²   r+   r™   r   r´   r®   r   r   rŽ   Útest_solve_polynomialk  s"    $&"ý
 &&(8rß   c                  C   sN  t d dt d   dt d   dt   d } tt| t ƒƒ}|D ]}|jtks>t‚q>tttt d dt d   d t ƒƒd d	d
tt d dt d   d dƒ ¡ ks¦t‚ttt d dt   d t ƒƒ}tdd„ |D ƒƒrât	|ƒdksæt‚t d dt d   dt d   dt   d } tt| t ƒƒ}|D ]}|jtks$t‚q$t d dt d   dt d   t
ddƒ }t|t ƒtt|d dd ¡ Ž ksŽt‚t t d d  t d  t d t  d  }t|t ƒtdddtt d t  d dƒtt d t  d dƒtt d t  d dƒtt d t  d dƒtt d t  d dƒtt d t  d dƒƒ	ksJt‚d S )NrÌ   rÛ   r¥   r¦   r×   r¾   é   r   F)ÚexponentrË   c                 s   s   | ]}t |tƒV  qd S r‰   )r—   rE   ©rŒ   r|   r   r   rŽ   r   ’  s     z&test_return_root_of.<locals>.<genexpr>r½   ZZZ©Údomainrª   r°   )r†   r‘   r_   ÚfuncrE   r˜   r   r   r“   r™   r   rK   rD   Z	all_roots)ry   r¢   ÚrootrÂ   Úeqr   r   rŽ   Útest_return_root_of  s:    ,	&ÿ ÿ",*ÿ
(ûÿrè   c                   C   s.  t tdt d ƒd t tƒttj tdƒƒks4t‚t ttd ƒt d tƒtdƒksZt‚t ttd ƒd tƒtdƒks|t‚t ttƒd d tƒtdƒksžt‚t ttd	 ƒtƒtd
ƒks¼t‚t ttd ƒtƒtdƒksÚt‚t ttd	 t ƒtƒtd	ƒksüt‚t ttd	 t ƒtddƒ tƒtdƒks*t‚d S )NrÌ   rË   r¦   rª   rà   r×   rÞ   é1   r¥   r   r½   )r]   r+   r†   rK   r   r­   r˜   r   r   r   r   rŽ   Útest_solveset_sqrt_1¨  s    ÿ&"""ÿrê   c                     sà  t ddd‰t ddd} ttdˆ d ƒtˆd ƒ d ˆƒttdƒtd	ƒƒksTt‚ttˆd
 ƒd tdˆ ƒ ˆƒtdƒks‚t‚ttdˆ tˆd d ƒ ƒd
 ˆƒtdƒks´t‚ˆd ˆd dˆd   ˆ tddƒ  ‰ tˆ ˆƒttddƒtddƒƒkst‚tdˆ d ƒtˆd ƒ tˆd ƒ ‰ tˆ ˆƒtdƒksDt‚tˆd ƒtdˆ d ƒ dtˆd ƒ  ‰ tˆ ˆƒtdƒksˆt‚tˆƒtˆd
 ƒ d ‰ tˆ ˆƒtdƒks¸t‚tˆd ƒtˆƒ d ‰ tˆ ˆƒtdƒksèt‚tdˆd  d
 ƒdˆ  ‰ tˆ ˆƒttdƒ tdƒƒks(t‚tdˆd  d ƒdˆ d  ‰ tˆ ˆƒtdƒks`t‚ttˆd ƒtˆƒ d ˆƒtƒ ksŠt‚dˆ d tddƒ d ‰ tˆ ˆƒtdƒks¼t‚ttˆƒttˆƒƒ d ˆƒttddƒtdƒd  d ƒksþt‚tˆƒtˆd ƒ ttˆƒƒ ‰ tˆ ˆƒtƒ ks4t‚ˆd d tˆƒd d  ‰ tˆ ˆƒtddƒksjt‚tˆƒtˆd ƒ tdˆ ƒ dtdƒ d  ‰ tˆ ˆƒ}tdƒ}tddƒ}t‡ ‡fdd„||fD ƒƒrt|ƒdkrdd„ |D ƒdd„ ||fD ƒkst‚ttˆƒˆtddƒ  ˆtddƒ  ˆƒtdƒks@t‚tˆtˆd d ƒ ˆƒtdƒksht‚ˆ| d  | d td| d  ƒ  ‰ tˆ ˆƒt| d ƒks¨t‚tddˆ tddƒ  d ˆƒttddƒƒksÜt‚d S )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   s&   | ]}t ˆ  ˆ|¡ ¡ ƒd k V  qdS )g»½×Ùß|Û=N)ÚabsrÅ   r   râ   ©rç   r†   r   rŽ   r   ë  s     z'test_solveset_sqrt_2.<locals>.<genexpr>c                 S   s   h | ]}|j d d’qS ©T)Zchop©r   râ   r   r   rŽ   Ú	<setcomp>í  s     z'test_solveset_sqrt_2.<locals>.<setcomp>c                 S   s   h | ]}|j d d’qS rò   ró   râ   r   r   rŽ   rô   î  s     i´~ûÿi©æ  )	r   r]   r+   rK   r   r˜   r   r“   r™   )r‡   ÚansÚraÚrbr   rñ   rŽ   Útest_solveset_sqrt_2´  sv    $ÿ ÿ$ÿ*&(,$ *ÿ
 0


ÿÿþÿÿÿ
($ÿrø   c                  C   sF   t d dt d   tddƒ d t  } t| t ƒttddƒƒksBt‚d S )Nr¥   r¦   rª   )r†   r   r]   rK   r˜   ©rç   r   r   rŽ   Útest_solve_sqrt_failý  s    &rú   c                  C   s  t dƒ} tdƒ|  td| d  ƒ | d tdƒtd| d  ƒ d   }t|| ƒ}tddƒdtdƒ ttdtdƒ d	 ƒd ƒ d  tdƒ ttdtdƒ d	 ƒd ƒ d d
tdtddƒtdƒt d  td	dƒtdƒt d  tddƒ   ƒ d  tdƒttdtdƒ d	 ƒd ƒ d  tddƒ ttdƒ ttdtdƒ d	 ƒd ƒ d tdƒttdtdƒ d	 ƒd ƒ d  d
t	dtddƒtdƒt d  td	dƒtdƒt d  tddƒ   ƒ d    g}d
tdtddƒtdƒt d  td	dƒtdƒt d  tddƒ   ƒ d tdƒttdtdƒ d	 ƒd ƒ d  tdƒttdtdƒ d	 ƒd ƒ d  tddƒ td
t	dtddƒtdƒt d  td	dƒtdƒt d  tddƒ   ƒ d tdƒttdtdƒ d	 ƒd ƒ d  tdƒttdtdƒ d	 ƒd ƒ d    g}t
|Ž }t| t|dƒt
|Ž ƒ}||dh |dh B ks^t‚ttt d t dt  tj d  ƒ ttd  d tdtd  dtd   dt  d ƒd  tddƒ d td d t tdtd  dtd   dt  d ƒd  tddƒ d  ƒ }tttttt d t dt  tj d  ƒttd  d tdtd  dtd   dt  d ƒd  tddƒ d td d t tdtd  dtd   dt  d ƒd  tddƒ d  ƒ dƒtjƒ}t|tƒ|ks t‚d S )NÚRr¦   rª   rÌ   r¥   r½   r×   éo   éû   é(   r°   rÞ   rî   é   r   rÔ   )r   r+   r_   r   r7   r5   r   r   r;   r   rK   rG   r   r˜   r€   r‚   r   r²   r±   r]   )rû   rç   rÂ   ÚfsetÚcsetÚfsÚcsÚunsolved_objectr   r   rŽ   Útest_solve_sqrt_3  s†    @
4(Lÿ&þþ*&ÿLþýÿL&ÿ&ÿþN&ÿ&þý8"ÿÿÿÿ"ÿÿÿÿÿ,V*ÿÿÿÿþþr  c                	   C   sà   t td d d t tƒttdttƒ ƒtdttƒ ƒ tdttƒ ƒtdttƒ ƒ ƒks`t‚t ttdtt    tƒttt d t ƒtdt ƒ ksžt‚t ttt tt   tƒtt t tt  ƒtt ƒ ksÜt‚d S )Nr¦   rª   r°   )r_   r†   rt   rK   r+   r˜   r‡   ru   r   r   r   rŽ   Ú$test_solve_polynomial_symbolic_param'  s      ÿÿÿÿr  c                   C   sÀ   t dt d tƒttj ƒks"t‚t dttƒ d tƒtdƒksDt‚t tddt   tƒtdƒksft‚t dt td  d tƒtdƒksŒt‚t td dt   t¡tƒttjtdƒƒks¼t‚d S )Nrª   r   rÌ   r¦   rà   é   )	r]   r†   rK   r   r­   r˜   r#   r	   ÚZeror   r   r   rŽ   Útest_solve_rational5  s    """&ÿr	  c                   C   s    t tdƒd tƒtjkst‚d S r¸   )r]   r+   r†   r   r´   r˜   r   r   r   rŽ   Útest_solveset_real_gen_is_pow>  s    r
  c                   C   s  t dtt  ƒtjkst‚t tt tƒtjks2t‚t tt t tƒtjksNt‚tdtƒtjksbt‚tttƒtƒtjkszt‚ttd d tƒtjks–t‚tdt t	tƒ tƒtjks¶t‚tdt tƒtjksÎt‚tdt  dt d  ddt   tƒtjkst‚d S )Nrª   r½   r¦   éýÿÿÿ)
re   r   r†   r   r´   r˜   r]   r#   rt   r+   r   r   r   rŽ   Útest_no_solB  s     &ÿr  c                   C   sj   t dtƒtjkst‚tdttddƒƒtddƒks4t‚t td  dt  td d  d tƒtjksft‚d S )Nr   rª   r¦   )r]   r†   r   r±   r˜   re   rM   r   r   r   rŽ   Útest_sol_zero_realO  s     r  c                   C   sP   t ttd  d d tƒtjks$t‚t td ddtd    tƒtjksLt‚d S )Nrª   r¥   rÜ   )r]   r†   r   r´   r˜   r   r   r   rŽ   Ú test_no_sol_rational_extragenousU  s    $r  c                   C   s¸   t ttƒd tƒtdƒkst‚t ttƒd tƒtdƒks<t‚t ttddƒ d tƒtdƒks`t‚t ttddƒ d tƒtdƒks„t‚t tttjd  d  tƒttjtdƒƒks´t‚dS )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)	r]   r+   r†   rK   r˜   r   r   r­   r  r   r   r   rŽ   Útest_solve_polynomial_cv_1aZ  s    $$ÿr  c                  C   s|   t ddd} t ddd}t| |d  |d td|d  ƒ  | ƒt|d ƒksRt‚td|  | d  d | ƒtdƒksxt‚dS )	z)Test solveset_real for rational functionsr†   Tr    r‡   r¥   r¦   rª   N)r   r]   r+   rK   r˜   r®   r   r   rŽ   Útest_solveset_real_rationalg  s    (
ÿr  c                   C   s6   t ttd td  ƒtƒttdƒtdƒ ƒks2t‚d S rÐ   )r]   r$   r†   rK   r+   r˜   r   r   r   rŽ   Útest_solveset_real_logq  s    ÿr  c                   C   s<   t ddtd  dt   d tƒttddƒtjƒks8t‚d S )Nr½   r¦   rÔ   r  )r]   r†   rK   r   r   r²   r˜   r   r   r   rŽ   Útest_poly_gensv  s     ÿr  c                  C   s\  t dƒ} ttdd„ ƒ tttƒ|  ttjƒ t	tt
| tdtƒƒ|  | hƒ¡sPt‚tttƒd tƒtddƒkspt‚tttƒd tƒtjksŒt‚tttd ƒdttd ƒ  tƒtdd	ƒks¼t‚tdttƒ ttd ƒ tƒtd
tddƒƒksît‚t	ttt
ttdtƒƒt
tt tdtƒƒt
tt tdtƒƒƒtt t d t t d tt d tt d ƒƒ}tttd ƒt ƒt }t|dtƒd |ksŽt‚tdtdi}| |¡}| |¡D ]}| t|¡r®t‚q®ttttttƒƒdƒttjdtttdtƒtt| d
|  t d | t  ƒtjƒƒttt dƒtt| | t d
|   t d  ƒtjƒƒƒƒsXt‚d S )Nr   c                   S   s   t ttƒd tƒS r¸   ©re   r   r†   r   r   r   rŽ   r¨   }  r©   z test_solve_abs.<locals>.<lambda>r   r¦   rÜ   r¥   rª   rî   r°   rã   ) r   rU   r³   re   r   r†   r   r±   r•   rG   rF   rM   r   r˜   r]   rK   r´   r   rA   ru   rt   rc   rÅ   rŠ   r   r;   rN   rL   rH   r   r   rµ   )r   rÂ   rç   ZrepsZeqabÚsir   r   rŽ   Útest_solve_abs{  sH    ÿ  ÿÿý0ú
 
$ÿ&ÿýr  c                   C   s   t tttƒd dttƒ  d tƒtttdt t td  ƒtj	ƒƒsJt
‚t tttƒd dttƒ  d tƒtttdt t ƒtj	ƒƒsŒt
‚d S ©Nr¦   rª   )rŠ   re   r;   r†   rH   r   r   r   r   rµ   r˜   r7   r   r   r   rŽ   Útest_issue_9824›  s    Jr  c                   C   s6   t ttd td  ƒtddƒktƒtddƒks2t‚d S )Nrª   rÌ   r¥   r°   r¦   )r]   r   r†   r   rM   r˜   r   r   r   rŽ   Útest_issue_9565   s    r  c                  C   sD   t dtd  ƒd dk} t| tƒtt dd¡t dd¡ƒks@t‚d S )Nrª   r   r¦   )rð   r†   r]   rN   rM   Úopenr˜   rù   r   r   rŽ   Útest_issue_10069¤  s
    

 
ÿr  c                  C   s‚   t ddd\} }tt| d |d  ƒd | ƒtt|d d ƒ t|d d ƒƒksVt‚tt| d |d  ƒd | ƒtjks~t‚d S )Nza bTr    r¦   r¥   rî   )r   r]   r+   rK   r˜   r   r´   ©rt   ru   r   r   rŽ   Útest_real_imag_splittingª  s    "ÿÿr  c                   C   s.   t dt ddt   tƒtdt ƒks*t‚d S rÐ   )r]   r†   r[   rK   r˜   r   r   r   rŽ   Ú
test_units²  s    r  c                  C   sœ   t ddd} tttƒ|  tƒtt| ƒƒks.t‚tttƒtt ƒ d tƒtttdƒ d ƒttdƒd ƒƒksrt‚tttƒtt ƒ |  tƒtj	ks˜t‚d S )Nr‡   Tr¤   r½   r¥   r¦   )
r   r]   r#   r†   rK   r$   r˜   r+   r   r´   ©r‡   r   r   rŽ   Útest_solve_only_exp_1¶  s    ""ÿr  c                   C   s0   t ttdƒtd  tƒtdtdƒ ƒks,t‚d S ©Nr¦   r¥   )r]   r6   r†   r   rK   r+   r˜   r   r   r   rŽ   Ú
test_atan2¾  s    r!  c                  C   s>  t td ttdƒfdt dfƒd } tt| tƒƒttddƒƒksDt‚t td dtd kfdt dtd kfƒ}tddd}t|| tƒt| d |d ƒks t‚t td d tdkfd	ƒ}t|tt	j
d
ttdƒtt dddƒƒksèt‚tt td tdkftdfƒt tt	j
ƒtt dƒks"t‚tt td tttƒftdfƒtƒtdƒksRt‚t dtdkfd	ƒ}t|dktt	j
ƒt dt¡ksˆt‚ddlm} |ƒ }t|ttddƒd
tddƒks¾t‚t dttdƒftd ttƒ dfƒ}t dtttƒftt ttƒ dfƒ}t|tt	j
d
tdƒks$t‚t|ƒttƒks:t‚d S )Nr¦   Tr¥   r°   rÌ   r   r‡   r¤   ©r   Trã   rª   r×   )ÚBooleanTruer  )r.   r†   r   Úsetr]   rK   r˜   r   re   r   r±   rN   rM   r   r   r   r  Úsympy.logic.boolalgr#  r   r   r   r;   )rç   Zabsxm3r‡   ry   rz   r#  r   r   rŽ   Útest_piecewise_solvesetÄ  s6    $ þ&.  ÿ
þ
0$$$$r&  c                
   C   sX  t ttd  tt  t tƒtt dt  tdt t td  ƒdt   t dt  tdt t td  ƒdt   ƒks€t‚t ttd  tƒttt	ddƒ  d t
tdƒ tt	ddƒ  d  tt	ddƒ tt	ddƒ  d t
tdƒ tt	ddƒ  d  ƒks
t‚t tdt  d tƒttjt
tdƒ d  tjt
tdƒ d  ƒksTt‚d S )Nr¦   rÕ   r¥   rª   )r_   rt   r†   ru   rv   rK   r+   r˜   r‡   r   r   r   r²   r   r   r   rŽ   Ú test_solveset_complex_polynomialæ  s    .,ÿÿ00ý,ÿr'  c                   C   s   t dtƒtjkst‚d S ©Nr   )r_   r†   r   Ú	Complexesr˜   r   r   r   rŽ   Útest_sol_zero_complexô  s    r*  c                   C   s¾   t td tt  td  tƒtdtƒks,t‚t ttd  td tdtd  ƒ  tƒttd ƒksft‚t td  t tƒttdƒ d tdƒt d  tdƒd tdƒt d  ƒksºt‚d S ©Nrª   r¥   r¦   )r_   r†   r   rK   r˜   r‡   r+   r   r   r   rŽ   Útest_solveset_complex_rationalø  s    ÿ(
ÿ:ÿr,  c                  C   s¸   t dƒ td dtd   dtd   dt  d } t| tƒ}|D ]&}|  t| ¡ ¡ ¡ }t|d	ƒsBt‚qBtd d
t  d } t| tƒ}|D ]&}|  t| ¡ ¡ ¡ }t|d	ƒsŒt‚qŒd S )NzThis test is too slowrÌ   én   r¥   é7   r¦   i	  iÓ  r   rÛ   rï   )rV   r†   r_   rÅ   r   Útnr˜   )ry   r¢   ræ   Úresr   r   rŽ   Útest_solve_quintics  s    ,

r1  c                	   C   sÈ   t tttƒd tƒttttd t t ƒt	j
ƒƒs6t‚t tttƒt tƒttttdt t td   ƒt	j
ƒƒstt‚tdttƒ tƒt	jkst‚t tttƒ t¡tƒttttt t ƒt	j
ƒƒsÄt‚d S rÐ   )rŠ   r_   r#   r†   rO   r   r   r   r   r   rµ   r˜   r´   r&   Úrewriter   r   r   rŽ   Útest_solveset_complex_exp  s    ÿ$ÿÿr3  c                   C   sH  t tdt dƒttjƒtdƒks$t‚t tdt  dƒttjƒtjksHt‚t tdt dƒttjƒtjksjt‚t tdtd  dƒttjƒtd	ƒks’t‚t tdtd	  d
ƒttjƒtjks¸t‚t tdtd	  dƒttjƒtdƒksàt‚t tdt tƒttjƒt	tjtt
tƒt
dƒ ƒƒkst‚tddt  d dtƒttdƒfksDt‚d S )NrÜ   r½   r¦   r  rÞ   éûÿÿÿrª   iq  r¥   éðÿÿÿlûÿÿÿx¿pÂEìA é*   rÝ   r   )re   r   r†   r   r±   rK   r˜   r´   r‡   rL   r$   rc   r   r   r   rŽ   Útest_solveset_real_exp  s    $$"(&(:r7  c                   C   sh   t ttƒtƒtdƒkst‚t dttdtd   ƒ tƒttt t ƒ d tt t ƒd ƒksdt‚d S )Nrª   r½   r¦   )r_   r$   r†   rK   r˜   rt   r+   r   r   r   r   rŽ   Útest_solve_complex_log'  s    &ÿr8  c                   C   s°   t tdt d ƒd t tƒttj tdƒƒks4t‚t tdt d ƒddt   t tƒttdƒ ddt  ƒksvt‚t dt dtttƒ   tƒttj	dtd  ƒks¬t‚d S )NrÌ   rË   r¦   r¥   r½   rª   )
r_   r+   r†   rK   r   r­   r˜   r   rt   r  r   r   r   rŽ   Útest_solve_complex_sqrt-  s    ÿ$ÿÿr9  c               	   C   sV   t ttƒ t¡tƒ} t| tttt	t ƒt
jƒtttt	t t	d  ƒt
jƒ ƒsRt‚d S rÙ   )r_   r<   r†   r2  r#   rŠ   rO   r   r   r   r   rµ   r˜   )r¢   r   r   rŽ   Útest_solveset_complex_tan6  s    ÿr:  c                   C   s(
  t tttƒtƒttttdt t ƒt	j
ƒtttdt t t ƒt	j
ƒƒƒsNt‚t tttƒd tƒtttdt t td  ƒt	j
ƒƒsˆt‚t tttƒtƒttttdt t td  ƒt	j
ƒtttdt t ttddƒ  ƒt	j
ƒƒƒsèt‚t tttƒttƒ tƒttttdt t ttddƒ  ƒt	j
ƒtttdt t ttddƒ  ƒt	j
ƒƒƒsXt‚tttƒd ttƒd  tƒt	jks‚t‚t tttƒt	j tƒttttdt t ttddƒ  ƒt	j
ƒtttdt t td  ƒt	j
ƒƒƒsêt‚t tttt ƒttƒ tt	jdttttdt t ƒt	j
ƒttttt tdt t ttdt t ƒ ƒ  dttƒ   ƒt	j
ƒt	jƒƒƒs|t‚t ttdt ƒttƒ tdt ƒttƒ  d tƒttttt tddƒ td	  ƒt	j
ƒƒsÞt‚t tdttƒ ttƒ d tƒttttdt t ttdƒtd
tdƒ ƒ dtdƒ  ƒ t ƒt	j
ƒtttdt t ttdƒtd
tdƒ ƒ dtdƒ  ƒ t ƒt	j
ƒƒƒs’t‚t ttdt ƒtdt ƒ d tƒttttt ƒt	j
ƒƒsÒt‚t tttd ƒtddƒ ƒttttdt t dtdtdƒ d ƒ  dt  ƒt	j
ƒtttdt t dtdtdƒ d ƒ  dt  ƒt	j
ƒƒƒsjt‚t tttd ƒttd ƒ ƒttttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒƒƒslt‚t tttdƒt d ƒd ƒttttdtdƒ dt t t tdtd	ƒ ƒ  d ƒt	j
ƒtttdtdƒ dt t tdtd	ƒ ƒ t  d ƒt	j
ƒƒƒst‚t ttttt ƒt td t ƒ ƒƒttttdt d ƒt	j
ƒtttdt d ƒt	j
ƒtttdt tddƒ ƒt	j
ƒtttdt tddƒ ƒt	j
ƒtttdt tddƒ ƒt	j
ƒtttdt tddƒ ƒt	j
ƒƒƒsèt‚t ttdt ƒƒttttdt t d td  ƒt	j
ƒtttdt t d td	  ƒt	j
ƒƒƒsNt‚t ttdt ƒt dt ƒ tt	jƒtttttt d td  ƒt	j
ƒttttt d dt d  ƒt	j
ƒttttt d dt d  ƒt	j
ƒttttt d dt d  ƒt	j
ƒttttt d dt d  ƒt	j
ƒttttt d td  ƒt	j
ƒƒƒsNt‚t tdttƒ tdt ƒ d tƒttttdt t dttddtddƒ  ddtdƒ  tddƒ  ddtddƒ   dddtdƒ  tddƒ   ƒdddtdƒ  tdd	ƒ   ƒ  ƒt	j
ƒtttdt t dttddtddƒ  ddtdƒ  tddƒ  ddtddƒ   dddtdƒ  tddƒ   ƒdddtdƒ  tdd	ƒ   ƒ  dt  ƒt	j
ƒƒƒ	sÂt‚t ttttd t ƒt	j tt	jƒƒttttdt d ƒt	j
ƒtttdt d ƒt	j
ƒƒƒ
s$t‚d S )Nr¦   rª   r¥   r½   rà   rÌ   rã   rÜ   rË   r°   rí   r×   r¾   rÛ   rÿ   é-   éK   éi   é   rî   é   rÔ   rï   rÝ   éC   é9   é´   ih  é–   )!rŠ   r]   r;   r†   rN   rO   r   r   r   r   rµ   r˜   r7   r   r´   r_   r²   re   r‡   rt   r±   rH   rL   r   r   r#   r   r<   r5   r+   r:   rQ   r8   r   r   r   rŽ   Útest_solve_trig<  s   ÿÿ ÿ"&ÿÿ(&ÿÿ
*( ÿÿ
  ÿ
þþþÿÿ
2&ÿ
 (
ÿÿÿ(
ÿÿÿý"ÿ
88þ$$$$$$ú<<þ&ú$$þ$ $$$$ ú
"*
ÿÿÿ
ÿÿÿþ
þ(
ÿÿÿ
ÿÿÿþýýýÿ

&þrD  c                  C   s,	  t dƒ} tttƒttƒ tƒtjks(t‚tttƒttƒ tƒt	tt
ttƒttƒ dƒtjƒksbt‚tttƒttƒ tƒttttdƒd ƒƒƒks”t‚tdtdt ƒ d tƒttdƒ d tdƒd ƒksÎt‚tttd ƒd tƒttdtdƒ tdƒ ƒƒkst‚ttdt ƒdttƒ  d tƒttdtdƒ ƒtdtdƒ ƒƒksPt‚tttƒtdt ƒ ttƒ d tƒtttjtdƒd  ƒtdtdƒ ƒƒks¤t‚tttƒttƒ d tƒttdtd	ƒ ƒd ƒksÜt‚tttƒttƒ d tƒtttdƒd ttdƒ d tdƒ ƒ ƒƒks*t‚ttttƒtd  tƒttt| td|  t dt d
   ƒtjƒtt| td|  t td
   ƒtjƒƒƒsšt‚ttttƒttƒ tƒttt| d|  t t ttdtdƒ ƒƒ ƒtjƒtt| td|  t td   ttdtdƒ ƒƒ ƒtjƒtt| td|  t t  ttdtdƒ ƒƒ ƒtjƒtt| td|  t td   ttdtdƒ ƒƒ ƒtjƒƒƒs’t‚ttttd ƒtddƒ ƒttt| dt d|  t t  dtdƒ  ƒtjƒtt| d|  t t dtdƒ  ƒtjƒƒƒst‚ttttd ƒttd ƒ ƒttt| dt d|  t td   ƒtjƒtt| dt d|  t td   ƒtjƒtt| dt d|  t dt d   ƒtjƒtt| dt d|  t dt d   ƒtjƒtt| dt d|  t td   ƒtjƒtt| dt d|  t td   ƒtjƒƒƒs4t‚ttttdƒt d ƒd ƒttt| dtdƒ t d|  t t tdtd
ƒ ƒ  d ƒtjƒtt| dtdƒ t d|  t tdtd
ƒ ƒ t  d ƒtjƒƒƒsÞt‚ttttt ƒttd t ƒ ƒttt| dt d|  t td   t ƒtjƒtt| dt d|  t td   t ƒtjƒƒƒsdt‚tttdt ƒƒttt| td|  t td   d ƒtjƒtt| td|  t td   d ƒtjƒƒƒsÒt‚tttƒttjƒtdƒksòt‚ttttƒttjƒttt| td|  t t  ƒtjƒtt| d|  t t ƒtjƒƒƒsNt‚ttt tt ƒttjƒttt| d|  t t t ƒtjƒtt| d|  ƒtjƒƒƒs¦t‚ttt tt ƒtƒttt| d|  t t t ƒtjƒtt| d|  ƒtjƒƒƒsút‚tt!ttt"dt dt#  ƒ tƒƒttt| | t d dt d  t# ƒtjƒtt| | t d dt d  t# ƒtjƒƒƒszt‚tttƒtdt ƒ tdt ƒ ttjƒ $t	tt
ttƒtdt ƒ tdt ƒ dƒtjƒ¡sÜt‚ttdt ƒtdt ƒ ƒ $t	tt
tdt ƒtdt ƒ dƒtjƒ¡	s(t‚d S )Nr   r   rÌ   r¦   r¥   rÜ   rª   r½   rí   rË   r×   r¾   rÛ   rî   rÔ   rë   rÝ   r>  rï   )%r   re   r&   r†   r(   r   r´   r˜   r7   rG   r   r)  r]   r)   rK   r$   r+   r#   r*   r²   r'   rŠ   r_   r   rN   rH   r   r   rµ   r   r5   r±   r;   rQ   r8   r   r•   ró   r   r   rŽ   Útest_solve_hyperbolicš  s´      ÿ
ÿ
 
ÿ
ÿ" ÿ& ÿÿ(ÿ($þ0848ü0(þ((,,((ú@@þ",,þ((þ  þ þ þ$((þ*$ ÿÿ
&ÿrE  c                  C   sÔ  t tttt ƒtƒttttdƒttt	t
dt
 t t t ƒtjƒtt	t
dt
 t t ƒtjƒƒƒƒsht‚t tttt ƒtƒttttdƒttt	t
tt dt
 t td   ƒtjƒtt	t
tt dt
 t td   ƒtjƒƒƒƒsät‚t ttdtdƒ d td  tt  t ƒtdtdƒ d td  tt  t ƒ tƒttttdƒttd dƒ@ ttt	t
tdƒt t dt
 t td   dtd   ƒtjƒtt	t
tdƒt t dt
 t dt d   dtd   ƒtjƒtt	t
tdƒt t dt
 t td   dtd   ƒtjƒƒƒƒst‚t tttdt t ƒtddt  t ƒ tƒƒttt	t
tdt  dt
 d  d ƒtjƒtt	t
tdt  dt
 d  d ƒtjƒƒƒs¨t‚t tttd d t ƒd tƒttttd d dƒttt	t
dt
 t t tddtdƒ  ƒ td d  ƒtjƒtt	t
dt
 t t tdtdƒ d ƒ td d  ƒtjƒƒƒƒsbt‚tdd	d
} tt| d d t ƒd ttjƒtttdƒd ƒ| d d  tdtdƒ ƒ| d d  ƒksÐt‚d S )Nr   r¦   r¥   r½   rÌ   rË   rª   ÚarTr    )rŠ   re   r;   rt   r†   rG   r   rN   rH   r   r   r   r   rµ   r˜   r(   r   r+   ru   r7   rQ   r8   r$   r   r±   rK   )rF  r   r   rŽ   Útest_solve_trig_hyp_symbolicì  sD      þ ((þ*&ÿÿ<@<ýþ
0((þ<<þÿ
" ÿrG  c                  C   s\  t tttƒttƒ d tƒttttdt t	 t
 ttdƒd ttj tdƒ ƒ ƒ ƒtjƒtttt	dt t
 ttdƒttjtdƒ ƒ ƒ t
  ttdtdƒ ƒƒ ƒtjƒtttt	dt t
 t
  ttdƒ d ttj tdƒ ƒ ƒ ƒtjƒtttt	dt t
 t
 ttdƒttjtdƒ ƒ ƒ  ttdtdƒ ƒƒ ƒtjƒƒƒsRt‚ttƒ t¡} ttƒ t¡}t t| | d tƒtttttt	dt t
 t
  ttdƒ d ttj tdƒ ƒ ƒ ƒtjƒtttt	dt t
 t
  d ƒtjƒƒttttt	dt t
 t
 ttdƒttjtdƒ ƒ ƒ  ttdtdƒ ƒƒ ƒtjƒtttt	dt t
 t
  d ƒtjƒƒttttt	dt t
 ttdƒttjtdƒ ƒ ƒ t
  ttdtdƒ ƒƒ ƒtjƒtttt	dt t
 t
  d ƒtjƒƒttttdt t	 t
 ttdƒd ttj tdƒ ƒ ƒ ƒtjƒtttt	dt t
 t
  d ƒtjƒƒƒƒsXt‚d S rÐ   )rŠ   re   r&   r†   r'   rN   rH   r   r   r   r   r$   r+   r   r²   rµ   r5   r˜   r2  r#   rJ   )Úf1Úf2r   r   rŽ   Útest_issue_9616  sT    @6ÿÿF6ÿÿû> ÿ$þ8ÿÿ$þ8ÿÿ$þ@$þörJ  c                   C   s<   dt ttƒt tƒkst‚dtttƒd t tƒks8t‚d S ©Nr   rª   )r]   r;   r†   r˜   r_   r#   r   r   r   rŽ   Útest_solve_invalid_sol$  s    rL  c                  C   s¢   t dƒ} ttttƒtƒtt| | t ƒtj	ƒƒs2t
‚ttttƒtƒtt| | t td  ƒtj	ƒƒsdt
‚ttttƒttƒ tƒtt| | t td  ƒtj	ƒƒsžt
‚d S )Nr   r¦   r½   )r   rŠ   r]   r;   r†   rO   r   r   r   rµ   r˜   r7   ró   r   r   rŽ   Útest_solve_trig_simplified)  s    ÿÿÿrM  c                  C   sÔ  t tttƒ d tƒttdƒƒks&t‚t ttƒt tƒttdƒ ƒksJt‚t tdt  tƒtttdƒƒ tdƒ ƒkszt‚t dt d ddt d   tƒ} | ttddƒtddtddƒ  tdƒ d ƒdtdƒ   ƒksàt‚ddt d d  dd	dt d
    }t |tƒ}ttdƒdttd	d	dtddƒ  d  ƒ ƒ  dtd	ƒ  d ƒ} || ksdt‚t | ¡ tƒ|ks|t‚t dt d dtdd	t  ƒ  tƒttddƒtdttddƒƒ d ƒd	  ƒksÔt‚t dt d tdt d ƒ tƒttddƒtdttddƒƒ d ƒd  ƒks(t‚t dt tdt ƒ tƒtttddƒƒd ƒks^t‚t tt d ƒttttdƒƒƒƒksˆt‚t	dƒ}t | t dt ttƒ  tƒtt|d ƒƒksÆt‚t	ddd}t |t ttd ƒ tƒtdt| d ƒ ƒkst‚t |t ttd ƒ  
t¡tƒtdttdƒt|ƒ d ƒ ƒksNt‚t ttd ƒttd ƒ d tƒtjks|t‚t td dt  d  tttƒdt  ¡tƒttdtj ƒd ƒksÆt‚t td dt  d  tttƒdt  d d ¡tƒttdttdƒ ƒ ƒd tdttdƒƒ ƒd ƒks6t‚t td dt  d  tttƒdt  ¡tƒttdtdtdƒ ƒ ƒd tdttdƒ d ƒ ƒd ƒks¦t‚t tttƒ dt  d tƒttdttdƒ ƒ ƒƒksät‚tttƒ d  ttttƒ ¡}t |tƒttdttdƒ ƒ ƒƒks.t‚t dt|dt d  ƒ |dt d   tƒtt|d ƒttddƒƒ dt|ƒ   ƒksŽt‚tddd}t dt|dt d  ƒ |dt d   tƒttdtddƒ  dtddƒ t  ttddƒƒtddƒ  d|tddƒ   ƒt|ƒ tdtddƒ  dtddƒ t  ttddƒƒtddƒ  d|tddƒ   ƒt|ƒ tdttddƒƒ |d  ddt|ƒ   ƒƒks¬t‚t	dƒ}dt|dt d  ƒ |t|dt d  ƒ  |dt d   }t |tƒtt|d ƒtd|d  ƒ dt|ƒ   ƒks2t‚t |t ttd ƒ  
td¡tƒtdtdtddƒ |tddƒ  d ƒ ƒks†t‚t td dt  tƒtdtdƒ ttdƒ d ƒ ƒksÄt‚t dttƒ ttƒd  ƒttdttdƒ d ƒ tdƒ ƒƒkst‚t td dt  tƒt td  dt  tƒks@t‚t dttƒ ttdƒ  ƒtdttdƒ d ƒ tdƒ dttdƒ d dƒ tdƒ ƒks¢t‚t tdt ƒt ƒttttƒ d ƒksÐt‚d S )Nrª   r¦   r¥   rÌ   r4  i Øÿÿr½   rË   rà   rî   ia	  r°   iëÿÿÿiíÿÿÿrt   Tr    r  Úpr¤   ru   )r]   r†   r#   rK   r"   r˜   r$   r   Úexpandr   r	   r+   r'   r   r´   rÅ   ZExp1r   r   r7   r0   r‡   )rõ   rç   Úresultrt   rN  ru   r   r   rŽ   Útest_solve_lambert6  s¶    &$ÿ",ÿ(
&ÿ
ÿÿ$*ÿ
 *ÿ
ÿ
*6ÿ
ÿ
.,ÿ
42ÿ
,:ÿ
ÿ
 ÿ
,*ÿ
,VV,ýÿ
@
(ÿ"&ÿ ÿ
 ÿÿ
þÿrQ  c                  C   sN   t ddƒ} tt|  | t  tƒt| |  tt| ƒ |  ƒ t| ƒ ƒksJt‚d S )NrË   rÌ   )r   r]   r†   rK   r"   r$   r˜   )rt   r   r   rŽ   Útest_other_lambert  s
    
 ÿrR  c                  C   sj  t dƒ} ttdd„ ƒ ttdƒtjks*t‚t| dƒd t d | dƒƒt	t
t d ƒ t
t d ƒƒkslt‚t| dƒd d | dƒtjƒt	ddƒks˜t‚t| dƒd d | dƒƒt	t tƒksÂt‚ttd dƒt	tƒksÜt‚tttƒttƒ ttƒƒt	ttƒƒkst‚tdtjdtjks"t‚tdƒtjks6t‚td	tjdtjksPt‚td
tjdtjksjt‚tttƒd tjdt	dƒksŽt‚tttƒd ttjƒt	dƒks²t‚ttttƒdƒttjƒt	dƒksØt‚tttƒd ttƒtjƒt	dƒks t‚tdtƒ}t|d |tjƒt	dƒks*t‚ttd dkttjƒtdtƒksPt‚tttƒd dkttjƒtdtƒkszt‚ttttƒd tƒtttdt t t ƒtjƒƒs²t‚tttttƒdƒtƒtttdt t t ƒtjƒƒsìt‚ttd | dƒ d tƒt
| dƒ d ƒ t
| dƒ d ƒhks2t‚ttttƒƒdktt dt¡dt dt¡ksft‚d S )Nry   c                   S   s   t tt ƒS r‰   )re   r†   r‡   r   r   r   rŽ   r¨   —  r©   ztest_solveset.<locals>.<lambda>rª   r¦   r°   r   rã   TFÚA)r   rU   r³   re   r†   r   r´   r˜   r‡   rK   r+   r±   r   r;   r7   r#   r   rR   rM   r   rŠ   rO   r   r   r   rµ   r5   r$   r  )ry   rS  r   r   rŽ   Útest_solveset”  s8    ÿ,*,$$&(
 &*8*ÿFrT  c                  C   s€  t dƒ\} }}tttttƒƒd tƒtt| tfftd|  t	 t
dt t t	 tdƒ ƒ  ttdt t t	 tdƒ ƒƒ ƒttjtjƒƒƒs’t‚ttttttt t ƒƒ t tƒtttt t t ƒtt| tfftd|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒttjtjƒƒƒƒsft‚tttttttt t ƒƒƒ t tƒtttt t t ƒtt|| tfftd| t	 t
td|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒ  tttd|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒƒ ƒttjtjtjƒƒƒƒsØt‚ttttttttt t ƒƒƒƒ t tƒtttt t t ƒtt||| tfftd| t	 t
td| t	 t
td|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒ  tttd|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒƒ ƒ  tttd| t	 t
td|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒ  tttd|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒƒ ƒƒ ƒttjtjtjtjƒƒƒƒs|t‚d S )Nz
k1, k2, k3rÌ   r¦   )r   rŠ   re   r#   r†   rO   r   r   r   r   r   r$   r   rP   r   rµ   r˜   rw   rt   ru   rv   rH   )Úk1Zk2Zk3r   r   rŽ   Útest_multi_exp¹  sb    Xÿÿ" vÿþÿ
&"N4ÿ.ÿ4ÿÿÿüÿ
*$\4ÿ.ÿ4ÿÿzÿ~þþÿúÿrV  c                  C   s´  ddl m}  ddlm} | td d gtgtjgƒtddƒksBt‚| tt td gttg||gƒtdƒksnt‚| tt td gttg||gƒtd	ƒksšt‚| tt tt d gttg||gƒttdƒd tdƒ d fƒksàt‚| td td gttg||gƒtd
ƒkst‚t	| tt gttg||gƒt
tttfftt fƒt|ƒƒtttfft tfƒt|ƒƒƒƒsnt‚| tt tt d gttg||gƒtjksžt‚| tt tt td gttg||gƒtjksÐt‚| tt tt td gttg||gƒtjkst‚| tt t d tt t d tt t d gtttg|||gƒtdtj tj fƒks`t‚ddlm} | td td  d tt gttg||gƒtdd	ƒks¨t‚| td d tgttg||gƒtddƒksØt‚t	| td td  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„t‚| tt|ƒ d tt|ƒ g|tgtdtƒtddƒgƒtdtdfƒksÐt‚| tt|ƒ d tt|ƒ gt|gtddƒtdtƒgƒtdƒkst‚t	| tt|ƒ t tt|ƒ 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ƒƒƒƒƒs°t‚d S )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.solvesetrW  Z
sympy.setsr±   r†   r   rK   r˜   r‡   rŠ   rN   rH   r   rP   r´   rˆ   r²   Ú	sympy.abcr[  r   rƒ   r7   r;   rM   r   )rW  r±   r[  r   r   rŽ   Útest__solveset_multiÕ  s^    *,,F.þ0228 ÿÿ
<0$  ü"ÿÿ
"ÿÿ
$ÿ**þÿr^  c                	   C   s¤  t tttƒd ttƒd  dƒttjdtjks4t‚t ttd tttƒ  dƒttjd t	tttd tttƒ  d dƒtjƒ¡sˆt‚t
t tt ttt ƒtt t ƒ  d dƒtƒtttdt t td  ƒtjƒƒsàt‚t tttƒ dkttjd t	ttttƒ dktjƒ¡st‚t ttttƒƒtƒttjd t	ttt tttƒƒ dƒtjƒ¡sft‚t tt t ttjƒ t	tttt t dƒtjƒ¡s t‚d S )Nr¦   rª   rã   r   )re   r   r;   r†   r7   r   r±   r˜   r•   rG   rŠ   r   r#   rO   r   r   r   rµ   r   r‡   rˆ   r   r   r   rŽ   Útest_conditionset  s$    (ÿ&&ÿ0 ÿÿ
 ÿ
ÿr_  c                   C   s4   t tttƒtƒtƒtttttƒtƒtjƒks0t‚dS )z? Checking equality of different representations of ConditionSetN)	re   r   r<   r†   r‡   rG   r   r)  r˜   r   r   r   rŽ   Útest_conditionset_equality  s    r`  c                   C   sz   t td t d ttdtƒƒtdƒks*t‚t td d ttdtƒƒtdƒksPt‚t td d ttddƒƒtdƒksvt‚d S )	Nr¦   rË   r   r¥   rª   r½   rÝ   r×   ©re   r†   rM   r   rK   r˜   r   r   r   rŽ   Útest_solveset_domain  s    *&rb  c                  C   sL   t ttƒttƒ ttjƒ} tttttƒttƒ dƒtjƒ}|  |¡sHt	‚d S r(  )
re   r#   r†   r;   r   r±   rG   r   r•   r˜   )Úsolutionr  r   r   rŽ   Útest_improve_coverage$  s     rd  c                  C   st   t dtd d  t dtd d  d ƒ} t dt t dt ƒ}t| ttjƒtjksXt‚t|ttjƒtjkspt‚d S )Nrª   r¦   r½   )r   r†   re   r   r±   r´   r˜   )Úexpr1Úexpr2r   r   rŽ   Útest_issue_9522*  s    *rg  c                   C   sê   t td d ttjƒg kst‚t td d ttjƒdtjtdƒt d  tjtdƒt d  gksft‚t t	tƒttjƒdgks‚t‚t t
tƒttjƒtd ttddƒ gks®t‚t ttƒd ttjƒttddƒ gksØt‚ttdd„ ƒ d S )Nr¦   r×   r¥   rª   r°   c                   S   s   t tttƒƒttjƒS r‰   )ri   r;   r#   r†   r   r)  r   r   r   rŽ   r¨   9  r©   ztest_solvify.<locals>.<lambda>)ri   r†   r   r±   r˜   r)  r²   r+   r   r$   r7   r   r   r;   rU   ÚNotImplementedErrorr   r   r   rŽ   Útest_solvify2  s    *ÿ
,*ri  c                  C   s   t dtdk ftd tdkfttƒdfƒ} t dtdk ftd dt  d td	kfƒ}t dttdƒftd ttƒ dfƒ}t dtttƒftt ttƒ dfƒ}t| ttj	ƒdgks²t
‚t|ttj	ƒd
dgksÌt
‚t|ttj	ƒdgksät
‚t|ttj	ƒtgksüt
‚d S )Nr   r°   r¦   rª   TéöÿÿÿrÌ   rË   é÷ÿÿÿrì   )r.   r†   r$   r   r   r   r;   ri   r   r±   r˜   )Úp1Úp2Zp3Zp4r   r   rŽ   Útest_solvify_piecewise<  s    (*$$rn  c                  C   sX   t ddd} ttt| ƒƒ| tjƒdtgks.t‚t dƒ} ttt| ƒƒ| tjƒd ksTt‚d S )Nr†   Tr¤   r   )r   ri   r;   r   r   r±   r   r˜   r§   r   r   rŽ   Útest_abs_invert_solvifyI  s    "ro  c                     sÎ  t dtƒtdggƒtdggƒfks&t‚t dtƒtdggƒtdggƒfksLt‚dt t dt  d tt t tt dt  d g} tdt dt  t dƒtdt dt  dt  dƒdt t dt  g}t | tttƒ\}}|tdddgdddgdddggƒkst‚|tdgdgdggƒks&t‚t |tttƒ\}}|tdddgdddgdddggƒksbt‚|tdgdgdggƒks€t‚tt t tt  t	t  t
 tt t
t  tt  tt  t tt tt  tt  t g‰ t ˆ tttƒ\}}|ttt tt	gt
t ttgtttggƒks"t‚|tt
gtgtggƒks@t‚tt‡ fd	d
„ƒ tt‡ fdd
„ƒ ttdd
„ ƒ ttdd
„ ƒ ttdd
„ ƒ ttdd
„ ƒ ttdd
„ ƒ t tgdt gƒtdggƒtt ggƒfksÜt‚t tttdt d  d   tƒtdt t d ggƒtt dt d  ggƒfks6t‚t ttt tt  d gdt dt  t	 ggƒttƒtttgddggƒtdgt	ggƒfks˜t‚t ttd dƒtƒtdggƒtdggƒfksÊt‚d S )Nr   rª   r°   r¦   r¥   rï   r½   rÜ   c                      s   t ˆ ƒS r‰   )r`   r   ©Zeqns3r   rŽ   r¨   i  r©   z*test_linear_eq_to_matrix.<locals>.<lambda>c                      s   t ˆ tttgƒS r‰   ©r`   r†   r‡   r   rp  r   rŽ   r¨   k  r©   c                   S   s   t tdt t dt ƒtgƒS r¸   ©r`   r   r†   r   r   r   rŽ   r¨   m  r©   c                   S   s   t td gtgƒS rÙ   ©r`   r†   r   r   r   rŽ   r¨   n  r©   c                   S   s   t tt gttgƒS r‰   rq  r   r   r   rŽ   r¨   o  r©   c                   S   s   t tttƒtƒS r‰   rr  r   r   r   rŽ   r¨   r  r©   c                   S   s   t tttd ƒtƒS r¸   rr  r   r   r   rŽ   r¨   s  r©   rà   rÌ   rË   )r`   r†   ÚMatrixr˜   r‡   rˆ   r   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   rU   r³   rs   )Zeqns1Zeqns2rS  ÚBr   rp  rŽ   Útest_linear_eq_to_matrixQ  sP    &&6J**^22  ÿ*ÿ ÿ ÿÿ

 
ÿrv  c                   C   sX   t ttdt dt   dt  dƒttƒtdt dt d ggƒtdggƒfksTt‚d S )Nr¦   r¥   r½   rÌ   )r`   r   rt   r†   r‡   rt  r˜   r   r   r   rŽ   Útest_issue_16577…  s    ( 
ÿrw  c                   C   s"   t ttƒdtƒttjfkst‚d S r(  )rc   r#   r†   r   r´   r˜   r   r   r   rŽ   Útest_issue_10085Š  s    rx  c               	      sT  t dƒ\‰‰} }tdddddgdddddgdddd	dggƒ}|d d …d d…f |d d …df f }\‰ ‰ˆdˆ  |  | d ˆdˆ  d|   | d dˆ dˆ  d	|  d g‰td
ˆ d|  d ˆd| d |fƒ}tˆˆˆ| |fƒ|ksøt‚tˆfˆˆ| |fžŽ |kst‚t|ˆˆ| |fƒ|ks4t‚t|fˆˆ| |fžŽ |ksTt‚t dtd\‰‰} }t|ˆˆ| |ƒtd
ˆ d|  d ˆd| d |fƒks¦t‚tt‡fdd„ƒ tt‡fdd„ƒ tt‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ ttdd„ ƒ ttdd„ ƒ tt	t
 d t	d t d gt
tgƒt	 d t	d  d fhks’t‚tttgttggƒ‰ ttgtggƒ‰ˆ ˆf}tt t tt  tt tt   tt tt  tt tt   fƒ}t|t	tgƒ|kst‚tdddgddd	gdd	dggƒ‰ tdddgƒ‰tˆ ˆft	tt
fƒtjksjt‚t dƒ\‰ ‰}}tdt | dt | d
| gd
t | d
t | d| gdddt ||  gdddggƒ}t|ˆ ˆƒtdt||  fƒksüt‚tddddddgddddddggƒ}t|tttttƒttdtdtfƒksJt‚t dƒ\}	‰‰}
ttddddddgddddd|
ggƒƒt|	dˆ|
ˆfƒksšt‚t dƒ\}	‰‰}
ttddddddgddddd|
ggƒƒt|	dˆ|
ˆfƒksêt‚t dƒ\}	‰‰}
ttddddddgddddd|
ggƒƒt|	dˆ|
ˆfƒks:t‚t dƒ\}	‰}t|tdƒƒt|	dˆd|fƒksnt‚|	|d < t d!ƒ|d < tt|tdtdƒjƒdks¤t‚td"ƒ}t|t	ƒd g|t	ƒƒtd#ƒksÒt‚dd$lm}m}m} || }d%| t	 t d&| | dt	 |  g‰tˆt	tƒ|| td'dƒ |tddƒ fhksJt‚ttt	t	t ƒgt	tgƒt	dfhkstt‚ttt	t	t  dt ƒgt	gƒd(hks t‚ttdt t	t	t  ƒgt	gƒd(hksÌt‚ttd)d„ ƒ tg t	gƒtjksòt‚tdgt	gƒt	fhkst‚tt	gt	tgƒdtfhks.t‚tt	dgt	tgƒdtfhksPt‚d S )*Nzx1, x2, x3, x4rª   r¦   rà   r°   rï   r½   r   rË   rÜ   r¥   rÌ   zx:4)Úclsc                      s   t ˆ ƒS r‰   ©ra   r   )ÚEqnsr   rŽ   r¨   £  r©   ztest_linsolve.<locals>.<lambda>c                      s   t ˆ ƒS r‰   rz  r   ©Úx1r   rŽ   r¨   ¤  r©   c                      s
   t ˆ ˆƒS r‰   rz  r   )r}  Úx2r   rŽ   r¨   ¥  r©   c                      s   t ˆ fˆˆƒS r‰   rz  r   )rS  r}  r~  r   rŽ   r¨   ¦  r©   c                      s   t ˆ ˆˆˆƒS r‰   rz  r   )rS  ru  r}  r~  r   rŽ   r¨   §  r©   c                      s   t ˆ gˆ ˆ ƒS r‰   rz  r   r|  r   rŽ   r¨   ¨  r©   c                      s   t ˆ gdd„ ˆ ˆ fD ƒƒS )Nc                 s   s   | ]
}|V  qd S r‰   r   râ   r   r   rŽ   r   ©  s     z2test_linsolve.<locals>.<lambda>.<locals>.<genexpr>rz  r   r|  r   rŽ   r¨   ©  r©   c                   S   s&   t tt d td t d gttgƒS )Nrª   r¦   r¥   )ra   r†   r‡   r   r   r   rŽ   r¨   ¬  r©   c                   S   s   t ttƒt tt gttgƒS r‰   )ra   r7   r†   r‡   r   r   r   rŽ   r¨   ­  r©   rî   z	A B J1 J2ztau0 tau1 tau2 _tau0ztau00 tau01 tau02 tau0ztau00 tau01 tau02 tau1z
x0, x2, x4r†   ©r°   r°   Ú_x0ry   )rÌ   )ÚmeterÚnewtonÚkilorÔ   é   iäÿÿÿrX  c                   S   s"   t ttd td t ƒgttgƒS rÙ   )ra   r   r†   r‡   r   r   r   rŽ   r¨   ð  s    )r   rt  rK   ra   r˜   r   rU   r³   rs   r†   rˆ   r‡   rt   ru   rv   rw   rx   rz   r   r´   r   rS   r™   Úfree_symbolsr   Úsympy.physics.unitsr  r‚  rƒ  r   r   )Úx3Úx4ÚMZsystem1rÂ   Zsystem2ZJ1ZJ2Z	AugmatrixÚx0r€  ry   r  r‚  rƒ  ZkNr   )rS  ru  r{  r}  r~  rŽ   Útest_linsolveŽ  s¦    ,,0ÿ(  "ÿFF  ü&$*&ÿ
&ÿ
&ÿ
ÿ
 
ÿÿ
&(
ÿ*,, r‹  c                  C   s0   dd„ } d}| |ƒ\}}}t ||ƒ|ks,t‚d S )Nc                 S   s~   t d | ¡ƒ}t d | ¡ƒ}|| }g }tj f|  tjf|   }t||ƒD ]"\}}| || || d g¡ qL||t|ƒfS )Nzx:{}zy:{}rª   )r   Úformatr   r²   r”   ÚextendrK   )r   rÈ   rÉ   ÚsymsÚeqsrÂ   ÚxiÚyir   r   rŽ   Ú_mk_eqs_sol  s    z/test_linsolve_large_sparse.<locals>._mk_eqs_soliô  )ra   r˜   )r’  r   r  rŽ  rÂ   r   r   rŽ   Útest_linsolve_large_sparseý  s    
r“  c                  C   s~   t dddgdddgdddggƒ} t dddgƒ}t| |gtttfƒtdƒksNt‚t dddgdddggƒ} t| ƒtdƒkszt‚d S )	Nrª   r¦   r   r°   )rª   r¥   r°   rà   r¥   )rÌ   r¦   )rC   ra   r†   r‡   rˆ   rK   r˜   )rS  ru  r   r   rŽ   Útest_linsolve_immutable  s
      r”  c                  C   s$  t dƒ} tdt ƒdtdt ƒ  dttƒ  d }ttƒd dttƒ  d }ttƒd ttƒ }ttd ƒ}ttd ƒd }dttƒ }dt }tt| d|  t ƒtj	ƒ}tt| d|  t t ƒtj	ƒ}	tt| d|  t td  ƒtj	ƒ}
tt| d|  t d ƒtj	ƒ}tt| d|  t d t ƒtj	ƒ}t
|ttjƒtdtdƒtdƒƒksVt‚tt
|ttjƒ|
ƒspt‚tt
|ttjƒt||	|
ƒƒs’t‚tt
|ttjƒt||ƒƒs²t‚t
|ttjƒtdƒksÎt‚t
|ttjƒtjksèt‚t
|ttjƒtjkst‚t
tttddƒƒtjks t‚d S )	Nr   r¥   rË   r¦   r>  rª   r   rÜ   )r   r#   r†   r;   r$   rH   r   r   r   rµ   rf   r±   rK   r˜   rŠ   rN   r´   rM   )r   rH  rI  Úf3Úf4Úf5Zf6Zf7r   rž   Zs3Zs4Zs5r   r   rŽ   Útest_solve_decomposition  s*    ,""(" r˜  c                  C   sv  t g g ƒtjkst‚t g ttgƒtjks,t‚ttt d g} t tgttgƒtdtfƒks\t‚t | tgƒtjksrt‚ttt	dt	 t
 t
d  ƒtjƒf}tt ttƒd gtgƒtt|ƒƒƒs¾t‚ttt	dt	 t
 t
 ƒtjƒtdƒfttt	dt	 t
 ƒtjƒtdƒff}tt ttƒtd gttgƒt|Ž ƒs0t‚t td d gtgƒtddƒksVt‚tttfƒ}t tt dgttƒ|ks€t‚t dtt gttƒ|ksžt‚t tt tt gttƒ|ksÀt‚t tdgttƒtdtfƒksât‚tdƒ}t |tƒdg|tƒtƒtdtfƒkst‚t |tƒdg|tƒ|tƒƒtd|tƒfƒksFt‚tdtƒ}t |dg|tƒtdtfƒksrt‚t td d gttƒgƒttjfƒksžt‚t td d gttƒƒttjfƒksÈt‚t td d gdƒttd fƒksðt‚t td d gtt ƒttjfƒkst‚t tdtt ƒtdt t d ƒtdt t d ƒgttƒttj d	tj fƒksrt‚d S )
NrÌ   r   r¦   rª   rY  rX  ry   rS  r¥   )rh   r   r´   r˜   r†   r‡   rK   rH   r   r   r   rµ   rŠ   r;   r’   r   rR   r   r²   )ÚsystemÚsolnry   rS  r   r   rŽ   Útest_nonlinsolve_basic5  s:     $($ ÿ*&""*2
",*(*<ÿr›  c                  C   s6   t ttft tfƒ} tttƒt gttƒ| ks2t‚d S r‰   )rK   r‡   rh   r   r†   r˜   )rš  r   r   rŽ   Útest_nonlinsolve_absU  s    rœ  c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s   t td d gg ƒS r  ©rh   r†   r   r   r   rŽ   r¨   [  r©   z2test_raise_exception_nonlinsolve.<locals>.<lambda>c                   S   s   t td d gƒS r  r  r   r   r   rŽ   r¨   \  r©   )rU   Ú
IndexErrorr³   r   r   r   rŽ   Ú test_raise_exception_nonlinsolveZ  s    rŸ  c                  C   s|   t ttƒd ttƒd gtƒtjks(t‚ttt	dt	 t
 t
d  ƒtjƒf} t| ƒ}tt ttƒd ttƒgtƒ|ƒsxt‚d S rÐ   )rh   r;   r†   r7   r   r´   r˜   rH   r   r   r   rµ   rK   rŠ   )Úsoln1rš  r   r   rŽ   Útest_trig_system_  s    ($r¡  c               
   C   sº  t t td  tt ƒttƒ d g} ttttt td  ƒtjƒttttt ƒtjƒf}t	|ƒ}ttttt ƒtjƒttttt td  ƒtjƒf}t	|ƒ}|| }t
t| t tgƒ|ƒs¼t‚tt ƒttƒ tdƒd d  tt ƒttƒ tdƒd d  g} ttttdt t td  ƒtjƒtttdt t ttddƒ  ƒtjƒƒ}ttttdt t td  ƒtjƒtttdt t ttddƒ  ƒtjƒƒ}t
t| t tgƒt	||fƒƒs¶t‚d S )Nr¦   rª   r¥   rË   rÌ   )r†   r‡   r   r;   rH   r   r   r   rµ   rK   rŠ   rh   r˜   r+   rN   r   )ÚsysZsoln_1Zsoln_2rš  Zsoln_xZsoln_yr   r   rŽ   Útest_trig_system_failh  s&    $ÿÿ@"&ÿ"&ÿr£  c                  C   sÄ  t ddd\} }}}}}t| | | | |  g| |gƒtd|fƒksFt‚|d ||  || g}t|||gƒtd| | fƒks‚t‚|| | | }|| ||  ||  ||  }|| | || |  || |  || |  }	|| | | d }
|||	|
g}d| | d| t|ƒtdƒ f}d| | d| t|ƒtdƒ f}t||ƒ}t|||||gƒ|kslt‚t| d	 d
| d   ||   | td  |t d g| |tgƒddt tfhksÀt‚d S )Nzx, y, a, b, c, dT)Zextended_realr   r¦   ©r   r   rª   r°   r½   r¥   )r   rh   rK   r˜   rˆ   )r†   r‡   rt   ru   rv   rw   r™  Úeq1Úeq2Úeq3Úeq4rš   r›   rš  r   r   rŽ   Ú%test_nonlinsolve_positive_dimensional€  s     .$ 0""
<ÿr©  c                  C   sŠ  t ddd\} }}t| d | d | d | g| |gƒtjksBt‚| d |f}t| | d d | | d g| |gƒt|ƒks‚t‚| d |d  g}t| |f||fƒ}tt|ƒ |ft|ƒ|fƒ}|| }t|| |gƒ|ksât‚| d |d  g}t|| f||fƒ}t|t|ƒ f|t|ƒfƒ}|| }t||| gƒ|ksDt‚| d | d | | d g}t|| |fƒt||| fƒks‚t‚t| d  |d  | d|  d| tjg| ||gƒtjksÂt‚t| | | tjtjtjg| ||gƒtjksôt‚| d  |d  | | |  |d  d|  |d  ||  | | d|d   d| d  | | |  g}t|| ||gƒtdd|f| ddfƒks†t‚d S )	NrÄ   Tr    r¦   r½   r¥   rÜ   r   )r   rh   r   r´   r˜   rK   r   r­   )r†   r‡   rˆ   r¢   r™  Ú	soln_realÚsoln_complexrš  r   r   rŽ   Útest_nonlinsolve_polysys—  s(    02"@2fr¬  c                  C   s4  t ddd\} }}}| | | |d  d g}|| |d  d | }| |f}t|| |gƒt|ƒksjt‚|d | d  |d |d  t| ƒ  g}|| df}t| d ƒ t| ƒ | |f}t| d ƒt| ƒ | |f}	|  t| d ƒ | |f}
| t| d ƒ | |f}|| |g}t||
|||	ƒ}t||ƒ|ks0t‚d S )Nz
x, y, z, nTr    r¦   r   )r   rh   rK   r˜   r#   r   )r†   r‡   rˆ   r   r™  Ús_xrš  Zsoln_real_1Zsoln_real_2Zsoln_real_3Zsoln_complex_1Zsoln_complex_2rŽ  r   r   rŽ   Ú#test_nonlinsolve_using_substitution´  s"    
*

 ÿr®  c                  C   s²  t dƒ} ttttƒttƒ dt d gttgƒtt| d|  t	 t
 tttddƒƒƒ ƒtjƒtddƒfhƒspt‚ttƒttƒ dttƒ d g}tt|ttgƒtt| t	d|  t
 t
  tttdƒƒƒ ƒtjƒtdƒ ftt| t	d|  t
 ttd|  t	 t
 tdƒ ƒƒ  tttd|  t	 t
 tdƒ ƒƒƒ ƒtjƒtt| d|  t	 t
 tdƒ ƒtjƒfhƒsjt‚ttƒttƒ td d g}tt|ttgƒtt| t	d|  t
 t
  ttdƒƒ ƒtjƒdftt| d|  t	 t
 ttdƒƒ ƒtjƒdfhƒsüt‚ttƒd td d g}tt|ttgƒtdƒtdƒ ftdƒtdƒftt| d|  t	 t
 tdƒ ƒtjƒttdƒ ƒftt| d|  t	 t
 tdƒ ƒtjƒttdƒƒfhƒs®t‚d S )Nr   rª   r¥   r¦   r½   rÜ   )r   rŠ   rh   r#   r†   r;   r‡   rH   r   r   r   r$   r   r   rµ   r˜   r   r   r+   rK   )r   r™  r   r   rŽ   Útest_nonlinsolve_complexÇ  sB    &8ÿ
 ÿÿÿ4"ÿÿ$þý0,þ 20ýr¯  c                   C   s<   t ttƒt t td gtttgƒdt dtfhks8t‚d S r¸   )rh   r+   r‡   r†   rˆ   r˜   r   r   r   rŽ   Útest_nonlinsolve_radicalà  s    r°  c                      sÌ  ddg‰t tt d d td td  d gttgƒ‰ t‡ ‡fdd„tdƒD ƒƒsVt‚t tt d d tt d d gttgƒtjksŠt‚t td td d  d	 dt d
 dt gttgƒtjksÈt‚t td t d tt d tt	ƒgttt	gƒ‰ dddg‰t‡ ‡fdd„tdƒD ƒƒs"t‚t ttd  td t d
 gttgƒ‰ dddt
  ddt
  fddt
  ddt
  fddt
  ddt
  fddt
  ddt
  fg‰t‡ ‡fdd„tdƒD ƒƒsÈt‚d S )N)g      ú¿g      ö¿)g      ú?g      ö?r¦   rî   g      è?c                 3   s>   | ]6}t d ƒD ](}tˆ j| | ˆ| |  ƒdk V  qqdS ©r¦   ç•Ö&è.>N©Úrangerð   Úargsr‹   ©r0  rÂ   r   rŽ   r   ç  s    
 ÿz+test_nonlinsolve_inexact.<locals>.<genexpr>ç      à?g      °?r¬   )g[™°Ðõl×¿g[™°Ðõl×?rª   )g[&,t=Ûõ?g[&,t=Ûõ¿rª   c                 3   s>   | ]6}t d ƒD ](}tˆ j| | ˆ| |  ƒdk V  qqdS )r¥   r²  Nr³  r‹   r¶  r   rŽ   r   ó  s    
 ÿr¥   rÌ   )gÕù±ïF­ò¿gZŠ*4Íõ?gÍrüîŸ2Ç¿gèdxAàWñ?gyU;~Fò¿g ;W2%Ù?gqëîyè?g?„¾ÐäŽÖ?g‡¡Ø£ñ}Ý?gòƒZ Aá?c                 3   s>   | ]6}t d ƒD ](}tˆ j| | ˆ| |  ƒdk V  qqdS r±  r³  r‹   r¶  r   rŽ   r      s    
 ÿ)rh   r†   r‡   r“   r´  r˜   r   r´   r$   rˆ   r   r   r   r¶  rŽ   Útest_nonlinsolve_inexactä  sF    .ÿ42ÿ.þÿ&

ÿ

ÿ

ÿ

ÿù	ÿr¸  c                  C   s:  t ddd\} }tdt|d ƒ |fƒ}t|  tt| ƒƒ |f| tt| ƒƒ |fƒ}t| t| d ƒ | fƒ}tdt|d ƒ |ƒ}t| d |d t| ƒ  g| |gƒ|ks®t‚t| d |d t| ƒ  g|| gƒ|ksÚt‚t| d |d t| ƒ  g|| gƒ|kst‚t| d |d t| ƒ  g| |gƒ|ks6t‚d S )Núx, yTr    r¦   )r   rK   r"   r+   r#   rh   r˜   )r†   r‡   r   Úsoln2Zsoln3Zsoln4r   r   rŽ   Útest_solve_nonlinear_trans  s    ,,,.r»  c                  C   s†  t dƒ} d| d  | d  d t }t|| ƒ}t|jd ddt   ƒdksPt‚t|jd	 d
dt   ƒdksrt‚t|jd ddt   ƒdks”t‚tj| d  | d  tj t }tdt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd   ttddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d tdƒd  dttddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ ddt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd     tdt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd   t
tddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d dt
tddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ ddt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd       tdƒ d t	dƒdt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd   t
tddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d  dtd	td	ƒ d t	dƒt d  tdƒd dt  t	dddt  d  ƒd  td	ƒd    ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd  ttddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d  tdtd	td	ƒ d t	dƒt d  tdƒd dt  t	dddt  d  ƒd  td	ƒd    ƒ d dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd  t
tddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d  t	dƒdt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd   ttddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d    tdƒ d dtd	td	ƒ d t	dƒt d  tdƒd dt  t	dddt  d  ƒd  td	ƒd    ƒ d  t	dƒdt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd   t
tddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd  ttddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d  tt	dƒ dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd   ttddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd  d ddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  d  td	ƒd  t
tddt	dƒ dtd	ƒd   tttdƒd ƒd ƒ d  dt	dƒ dtd	ƒd   t
ttdƒd ƒd ƒ d tdƒd   ƒd ƒ d  dtd	td	ƒ d t	dƒt d  tdƒd dt  t	dddt  d  ƒd  td	ƒd    ƒ d    ƒ}t|| ƒ|ks‚t‚d S )Nr†   r·  r¥   r¦   r   g©í	nëBÀg/H|n$ýÓ?r²  rª   gðuªÙÓ¿gÞÊ+Nð?g¸®bšâ?gÀqãwæ?iñ|  r½   é¬   ré   é+   rÞ   rË   i ÿÿÿé6   rÕ   )r   r   re   rð   rµ  r˜   r   r²   rK   r+   r;   r5   r7   r   r   )r†   Zn1rc  r0  r   r   rŽ   Útest_issue_14642  s¼   
""" 8
ÿÿ,ÿÿÿÿ
þ ÿÿ
ÿÿÿ
ÿÿþþü
ü6ÿ
ÿÿÿ
ÿÿþÿÿÿÿ
ÿÿ>þÿþþü	8
ÿÿ,ÿÿÿÿ
þ"ÿÿ*ÿÿ
ÿÿþþü"ÿÿ$ÿÿÿ
ÿÿþ 
ÿÿÿ
ÿÿÿÿÿÿ
þþü÷ÿÿÿÿ
ÿÿ>þÿþ8ÿBÿþýû8ÿÿ
ÿ
ÿûÿÿ
ÿÿÿÿÿÿ
þÿÿÿÿÿ
ÿÿþþüú
ÿ4ÿÿþ6
ÿÿ4ÿÿÿ
þ$
ÿÿÿ6
ÿÿþþüþ*ÿÿÿ
ÿÿ 
ÿÿÿÿÿ
þÿÿÿ
ÿÿÿ
ÿÿþþüúöÿ4ÿÿþ<
ÿÿ4ÿÿÿ
þ$
ÿÿÿ6
ÿÿþþüþ6
ÿÿ4ÿÿÿ
þ$
ÿÿÿ6
ÿÿþþüú
(
ÿÿÿ
ÿÿÿÿÿÿ
þ
ÿÿÿÿÿ
ÿÿþþüÿÿ
ÿÿÿÿÿÿ
þ
ÿÿÿÿÿ
ÿÿþþüü":ÿÿøöÛ:r¿  c                  C   s@  t dƒ } \	}}}}}}}}}	||	 ||	  | |||	  | ||	d  ||	  ||	  | |	| |	 ||	  |  |	| ||	  |  f}
t|||	  | |	 ||	  | |	d  |||	d  ||||t|	hdhƒf	|||	  ||	 ||	  | |	d  d |||	d  ||||t|	hdhƒf	ƒ}t|
f| žŽ |ks<t‚d S )Nzax bx cx gx jx lx mx nx qr¦   r   r°   ©r   rK   rJ   rh   r˜   )ÚVZaxZbxZcxZgxZjxZlxZmxZnxr‚   r   rÂ   r   r   rŽ   Útest_issue_13961X  s    nJJÿrÂ  c                  C   sX   t ttd  d ƒtƒ} t| jd dt  ƒdks6t‚t| jd dt  ƒdksTt‚d S )Nr¦   g       @r   gã;fž ö?r²  rª   )re   r+   r†   rð   rµ  r   r˜   )Z	solutionsr   r   rŽ   Útest_issue_14541b  s    rÃ  c                  C   sz   dt  ttd  t d  ƒ ttƒ } tdƒ}t| t tjd|ksFt‚tt	td t d  ƒt
d  t tjƒtjksvt‚d S )NrÜ   r¦   r   rã   )r‡   r#   r†   r   rK   re   r   r±   r˜   r5   r   r´   )ÚexprrÂ   r   r   rŽ   Útest_issue_13396h  s    &rÅ  c                  C   s.  t tddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ d ttdtddƒtdƒd  tddƒ  ddtddƒtdƒd  tddƒ    dtddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ  ƒƒd  ttdtddƒtdƒd  tddƒ  ddtddƒtdƒd  tddƒ    dtddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ  ƒƒ d tddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒd  tddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒd tttdtddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ dtddƒtdƒd  tddƒ   ddtddƒtdƒd  tddƒ    ƒƒ d  tddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒd tttdtddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ dtddƒtdƒd  tddƒ   ddtddƒtdƒd  tddƒ    ƒƒ d  ƒ} ttd t d tƒ| ks*t‚d S )	NrÜ   r¥   rª   rÝ   iQ  é   r¦   r½   )rK   r+   r   r   r   re   r†   r˜   ©rÂ   r   r   rŽ   Útest_issue_12032r  s|    *"ÿÿ&&ÿ*"ÿþýþ&&ÿ*"ÿþý("ÿÿü("ÿÿ0"ÿ"þ&ýýþ("ÿÿ0"ÿ"þ&ýýþîrÈ  c                   C   s    t dttƒ tƒtjkst‚d S r¸   ©re   r+   r†   r   r´   r˜   r   r   r   rŽ   Útest_issue_10876Ž  s    rÊ  c                   C   sZ  t ttt ttƒgttgƒttttdt t	 ƒt
jƒtttdt t	 ƒt
jƒftttdt t	 t	 ƒt
jƒtttdt t	 t	 ƒt
jƒfƒƒs’t‚t ttt ttƒttƒ gttgƒttttdt t	 dt	 d  ƒt
jƒtttdt t	 dt	 d  ƒt
jƒftttdt t	 dt	 d  ƒt
jƒtttdt t	 dt	 d  ƒt
jƒfƒƒsVt‚d S )NrÜ   r¦   r¥   r½   rà   )rŠ   rh   r†   r‡   r;   rK   rH   r   r   r   r   rµ   r˜   r7   r   r   r   rŽ   Útest_issue_19050’  s    4:ÿÿ"LJÿÿrË  c                  C   sê   t tƒt tƒ ttƒttƒ d g} ttdt t fdt t tftdt t t fdt t t tfƒ}t| ttgƒ}tt	|ƒt	|ƒƒD ]F\}}t
|ƒt
|ƒ  kr®dks´n t‚tdd„ t||ƒD ƒƒsŠt‚qŠt
|ƒt
|ƒksæt‚d S )Nrª   r¦   c                 s   s   | ]\}}|  |¡V  qd S r‰   )r•   )rŒ   rt   ru   r   r   rŽ   r   ¤  s     z#test_issue_16618.<locals>.<genexpr>)r;   r†   r‡   r7   rK   r   r   rh   r”   r   r™   r˜   r“   )Zeqnrõ   rÂ   Zi0Zj0r   r   rŽ   Útest_issue_16618œ  s    $F"rÌ  c                   C   sd   t ddt  dt   dt  ddt  tdƒdt   gttƒttdƒ tdƒ dfƒks`t‚d S )Né    r¦   r½   rÞ   r¥   rª   éQ   )rh   r†   r‡   r   rK   r$   r˜   r   r   r   rŽ   Útest_issue_17566¨  s    @ÿrÏ  c               	   C   sb   t dƒ} ttd ttƒ tƒ ttt| d|  t t ƒt	j
ƒtt| d|  t ƒt	j
ƒƒ¡s^t‚d S )Nr   r¦   )r   re   r†   r;   r•   rN   rH   r   r   r   rµ   r˜   ró   r   r   rŽ   Útest_issue_16643­  s    4ÿrÐ  c                  C   sh   t dƒ\} }tdd|  d|   d|   dd|  d|    g|| ƒttdƒ tdƒ dfƒksdt‚d S )	Nzn mrÍ  r¦   r½   rÞ   r¥   rÎ  rª   )r   rh   rK   r$   r˜   )r   r€   r   r   rŽ   Útest_issue_19587³  s    8ÿrÑ  c                  C   sž  t td td  ƒt dƒ tt d g} t| ttgƒtddƒksDt‚tdƒ}ttƒd ttƒ t	d  dttƒ d g}t
dƒ }t tdt ƒ tt
dƒƒ ƒ}t||f|| fƒ}t|d| t t t
dƒ  ƒ}t|tjƒ}t|t tdt ƒ td| t t t
dƒ  ƒ ƒƒ}t|tjƒ}t|t tdt ƒ td| t t t
dƒ  ƒ ƒ ƒ}t|tjƒ}	t||f||	fƒ}
||
 }tt|tt	gƒ|ƒsšt‚d S )	Nr¦   r×   r½   )rª   r¥   )r¥   rª   r   rª   r¥   )r+   r†   r‡   rh   rK   r˜   r   r#   r;   rˆ   r$   r   r   r   rH   r   rµ   rŠ   )r™  r   r  Ús_real_yÚs_real_zrª  ÚlamÚs_complex_yÚs_complex_z_1Ús_complex_z_2r«  rš  r   r   rŽ   Útest_issue_5132_1¹  s&    (,
 68þrØ  c                  C   sd  t ddd\} }t| ƒd t|ƒ td  g}tdƒ}ttd  t|ƒ ƒd tf}t|td| t t	td  t|ƒ ƒ  d tt
td t|ƒ ƒƒd  ƒ}t|tjƒ}|tf}t||ƒ}tt|| tgƒ|ƒsÖt‚t| d  |d  ttƒ||   g}	ttttƒd d  ƒ}
ttttƒd d  ƒttƒ }t|
|f|
 | fƒ}t|	| |gƒ|ks`t‚d S )Nr¹  Tr    r¦   r   rª   )r   r#   r;   rˆ   r   r$   r   r   r   r   r   rH   r   rµ   rK   rŠ   rh   r˜   rƒ   r<   r„   r+   )r†   r‡   r  r   rª  rÔ  Úimgr«  rš  r™  r­  Ús_yr   r   rŽ   Útest_issue_5132_2Ð  s    L
$ rÛ  c                  C   s>   t ddd\} }t| d |  | | g| |gƒddhks:t‚d S )Nza, bTr    r¦   r  r¤  )r   rh   r˜   r  r   r   rŽ   Útest_issue_6752ã  s    rÜ  rW   c               	   C   s  ddl m} m} ttttttt	g}tt
t  tt  tdt dt  dt   tt  t
t  tdt dt  dt   tt  tt  tdt dt  dt   tt  tt  tdt d|   d|   tt  t	|  t	d| dt   t|  g}tt||ƒƒdkst‚d S )Nr   )ÚorN  rª   )r]  rÝ  rN  rt   ru   rv   ry   r{   r~   r   rƒ   rw   rx   rz   r|   r}   r   r€   r‚   r™   rh   r˜   )rÝ  rN  rŽ  r  r   r   rŽ   Útest_issue_5114_solvesetè  s    ****ûrÞ  ZHangsc                  C   s  t dƒ\} }}| dt  |dtd   t  dt d t  |dtd   t dt  dt  tt | g}tt|g}tt||ƒƒdksŒt‚| dt  |dtd   t  dt d t  |dtd   t dt  dt  tt | g}tt|g}tt||ƒƒdkst‚d S )Nzlam a0 concr¦   rª   g{®Gázt?gÌ«¢Ã;Êç?)r   r‡   r†   r™   rh   r˜   )rÔ  Za0Zconcr  Úsymr   r   rŽ   Ú_test_issue_5335ù  s    ."
þ
."
þ
rà  c                  C   sÜ   t ddd\} }t| d |d  ƒd t|d |  d d  ƒd  }}tddƒdtd	ƒ d  }}|| f||fh}t||f| |fƒ|kst‚t||| |  f| |fƒtjks´t‚|d
7 }t||f| |fƒtjksØt‚d S )Núx yTr    r¦   r×   r¥   é¿   r¾   i‡  rË   )r   r+   r   rh   r˜   r   r´   )r†   r‡   Úe1Úe2rt   ru   rõ   r   r   rŽ   Útest_issue_2777  s    8$rå  c                  C   s  d} d}d}d}d}d}d}d}t ttg}t |  d	 t| d	  |t d	  }	|t  d	 |t d	  td	  }
t | d	 t| d	  |t d	  }|	|
|g}tt |  d	 t| d	  ƒt | }|
}tt | d	 t| d	  ƒt | }|||g}t||ƒ}t||ƒ}||kst‚d S )
Nr   i”ýÿÿi˜  é~   i  é3   éÍ   éh   r¦   )r†   r‡   rˆ   r+   rh   r˜   )r}  Úy1Zr1r~  Úy2r‡  Úy3Zr3ÚvrH  rI  r•  ÚFZg1Zg2Zg3ÚGrS  ru  r   r   rŽ   Útest_issue_8828  s(    
$ $
$$


rð  c                  C   s˜   t dƒ} | tƒtd  }| tƒttddƒ  }td| tƒ t dƒtd| tƒ dt  dƒ@ }tttƒ}t||tj	d ƒ}t
||gttgƒ|ks”t‚d S )Nry   r¦   r¥   r   )r   r†   r   r‡   r   r   r   rG   r   r)  rh   r˜   )ry   rH  rI  Zintermediate_systemrŽ  rš  r   r   rŽ   Útest_nonlinsolve_conditionset4  s    0
ýrñ  c                  C   sú   t g ttgƒtjkst‚t g g ƒtjks,t‚dtd  dtd   d dtd  dtd   d g} tddddƒ}t | ttgƒ|ksˆt‚td	ƒ}t tt gtgtd
igtgtƒ ttgƒ|ksÀt‚t tt gtgtd
igtgtd
 httgƒtjksöt‚d S )Nr¦   r¥   rÿ   é   )r  rÜ   )r  r¦   )r¥   rÜ   )r¥   r¦   rZ  rª   )rg   r†   r‡   r   r´   r˜   rK   r$  )r™  rš  r   r   rŽ   Útest_substitution_basicC  s"    80    þþró  c                   C   sl  t td td td td dt gtttgƒddtfhks>t‚t tt t tj	tj	tj	gtttgƒt t ttfhkszt‚t t
t tt tt td d gt
tttgƒtt t tfhks¾t‚t t
t
ttƒ  t
td  gt
tgƒdtfhksòt‚t t t dt  dt  dt dtd   d	 d
t t t td  td dt  d gttttgƒjthksht‚d S )Nrª   r¦   r½   rÜ   r   rË   i¯ÿÿÿré   i  r  r¥   )rg   r{   r~   ry   r˜   r†   r‡   rˆ   r   r­   rt   rw   ru   rv   r$   r…  r   r   r   rŽ   Útest_substitution_incorrectQ  s,    "ÿ
ÿ$ÿ,ÿ$ÿ0 ÿ
þþrô  c                  C   s”   t td td  td gttgƒt dftdfttd ƒ dfttd ƒdfhksVt‚t tt td dtd   d gttgƒ} t| ƒdkst‚d S )Nr¦   rª   r¥   rÌ   )rg   r†   r‡   rˆ   r+   r˜   r™   )r0  r   r   rŽ   Útest_substitution_redundantj  s
     .ÿ*rõ  c                  C   s2  t ddd\} }}}}|| d  |d  t|ƒ||   g}ttt|t|ƒd d  ƒ ƒtdƒƒ}ttt|t|ƒd d  ƒƒtdƒƒ}t|t|ƒd d  ƒt|ƒ }t||fƒt|| fƒ }	t|| |gƒ|	ksØt‚tdƒ}
t| ƒd t	|ƒ |d  dt|ƒ d g}t
dƒ }ttd|  ƒ t	t
dƒƒ ƒ}t||f|| fƒ}t|
d|
 t t t
dƒ  ƒ}t|tjƒ}t|
ttd|  ƒ t	d|
 t t t
dƒ  ƒ ƒƒ}t|tjƒ}t|
ttd|  ƒ t	d|
 t t t
dƒ  ƒ ƒ ƒ}t|tjƒ}t||f||fƒ}|| }	tt|||gƒ|	ƒs.t‚d S )	Nzx, y, z, r, tTr    r¦   rª   r   r   r¥   )r   r<   rJ   rK   r+   rg   r˜   r   r#   r;   r$   r   r   r   rH   r   rµ   rŠ   )r†   r‡   rˆ   rƒ   r„   r™  Zs_x_1Zs_x_2rÚ  rš  r   r  rÒ  rÓ  rª  rÔ  rÕ  rÖ  r×  r«  r   r   rŽ   Útest_issue_5132_substitutionu  s0    $(& ,
 68þrö  c                   C   sJ   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s   t td d gg ƒS r  ©rg   r†   r   r   r   rŽ   r¨   ‘  r©   z*test_raises_substitution.<locals>.<lambda>c                   S   s   t td d gƒS r  r÷  r   r   r   rŽ   r¨   ’  r©   c                   S   s   t td d gttƒgƒS r  )rg   r†   r;   r   r   r   rŽ   r¨   “  r©   c                   S   s   t td d gtƒS r  r÷  r   r   r   rŽ   r¨   ”  r©   c                   S   s   t td d gdƒS r  r÷  r   r   r   rŽ   r¨   •  r©   )rU   r³   Ú	TypeErrorr   r   r   rŽ   Útest_raises_substitution  s
    rù  c                     sD  ddl m‰  ddddddd	g} td
ƒ}‡ fdd„| D ƒ} tttjdd„ | D ƒŽ ƒƒ}t| |ƒ}t|d|ddddt	dƒ dt	dƒ f|d|ddddt	dƒ dt	dƒ f|d|ddddt	dƒ dt	dƒ f|d|ddddt	dƒ dt	dƒ fƒ}t
|ƒt
|ƒ  krdksn t‚||ks t‚|jD ]}t
|ƒdks&t‚q&d S )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Úefgc                    s   g | ]}ˆ |ƒ‘qS r   r   ©rŒ   r†   r   r   rŽ   Ú
<listcomp>¥  s     z$test_issue_21022.<locals>.<listcomp>c                 S   s   g | ]
}|j ‘qS r   )r…  rû  r   r   rŽ   rü  §  s     rÍ  rÝ   rÔ   rþ   r5  rÌ   éøÿÿÿr½   )Úsympy.core.sympifyr   r   r‘   r   r$  Úunionrh   rK   r+   r™   r˜   rµ  )r  rú  Zsybr0  rõ   rP  r   r   rŽ   Útest_issue_21022˜  s.    ù	
""""ü&
r   c               	   C   sœ   t dƒ} t dƒ}tt|| fftd| t td|  t t tdƒ ƒ  ttd|  t t tdƒ ƒƒ ƒtt	j
t	j
ƒƒ}ttttƒƒd tƒ |¡s˜t‚d S )Nr   rU  r¦   rÌ   )r   rH   r   r   r   r   r$   r   rP   r   rµ   re   r#   r†   r•   r˜   )r   rU  rÂ   r   r   rŽ   Útest_issue_17940¶  s    6ÿþr  c                   C   s0   t dtd d  dt  tƒtddƒks,t‚d S )Nrà   r¦   éP   ré   rý  r×   )re   r†   rK   r˜   r   r   r   rŽ   Útest_issue_17906¿  s    r  c                  C   s¤   t tdƒ tttƒ  } t tdƒ tttƒ  }dt  tdƒ d tttƒ  }dt  tdƒ d tttƒ  t }t| |||gt tttƒtdddtfƒks t‚d S )Nr;  rî   r×   r   )	r†   r;   r‡   r7   r‚   rˆ   rh   rK   r˜   )r¥  r¦  r§  r¨  r   r   rŽ   Útest_issue_17933Ã  s     $ÿr  c                	   C   sX   t ttt tttdt t ƒ  gttgƒtt t t	t
ttt ƒtjƒfƒƒsTt‚d S )NrÜ   )rŠ   rh   r~   r€   r#   r   rK   r   r   rH   r   r   rµ   r˜   r   r   r   rŽ   Útest_issue_14565Í  s    *"ÿr  c                  C   sn   t ddd} tttƒd ttjƒtjks,t‚tttƒ|  ttjƒtjksLt‚tt| dƒ| tjƒtjksjt‚d S )Nru   Tr¤   rª   r°   )	r   re   r   r†   r   r±   r´   r˜   r   )ru   r   r   rŽ   Útest_issue_9556Ö  s      r  c                   C   sL   t ttt t tƒttjƒtjks&t‚t ttt t tƒtƒtjksHt‚d S r‰   )	re   r   r†   rt   r   r±   r˜   r‡   r)  r   r   r   rŽ   Útest_issue_9611Þ  s    &r  c                   C   s>   t td t ttjƒttjttt ƒ tt ƒƒƒks:t‚d S rÙ   )	re   r†   rt   r   r±   rL   rK   r+   r˜   r   r   r   rŽ   Útest_issue_9557ã  s    ÿr  c                  C   sž   t ddd} t ddd}t| d d | tjƒtdƒks:t‚t| tddƒ d | tjƒtjks`t‚t| d | | tjƒtt|ƒtddƒ  t	|ƒ ƒksšt‚d S )	Nr†   Tr    r‡   r¥   rª   r°   rÌ   )
r   re   r   r±   rK   r˜   r   r´   r   r    r®   r   r   rŽ   Útest_issue_9778è  s    "&ÿr	  c                  C   sÚ   t ttddƒ d ttjƒtjks&t‚t ttddƒ d ttjƒtjksLt‚tdtddƒ  ƒ} t ttdƒ d ttjƒ| ks‚t‚ttdƒ d  tt	| ƒd ¡dksªt‚ttdƒ d  tdtddƒ  ¡dksÖt‚d S )Nr¥   r¦   r½   r  r   rÜ   )
re   r†   r   r   r±   r´   r˜   rK   rÅ   r‘   )rõ   r   r   rŽ   Útest_issue_10214ñ  s    &&"(r
  c                   C   s(   t tttƒƒd ttjƒtjks$t‚d S r¸   )re   r   r;   r†   r   r±   r´   r˜   r   r   r   rŽ   Útest_issue_9849û  s    r  c                   C   s   t g tƒtjkst‚d S r‰   )ra   r†   r   r´   r˜   r   r   r   rŽ   Útest_issue_9953ÿ  s    r  c                	   C   sŽ   t dt dtd d   ttjƒtdtdƒ d tddƒ tddƒ  d dddtdƒ d tddƒ tddƒ    td	dƒ ƒksŠt‚d S )
Nr¦   rª   r×   r¥   i^  r½   i»  r«   r¾   )re   r†   r   r±   rK   r+   r   r˜   r   r   r   rŽ   Útest_issue_9913	  s     ,&ÿÿÿr  c                   C   s"   t ttƒttjƒtdƒkst‚d S r(  )re   r+   r†   r   r)  rK   r˜   r   r   r   rŽ   Útest_issue_10397		  s    r  c                   C   s‚   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t td	d„ ƒ t td
d„ ƒ d S )Nc                   S   s   t td gtƒS rÙ   rs  r   r   r   rŽ   r¨   	  s    ÿz"test_issue_14987.<locals>.<lambda>c                   S   s(   t tdt d  dt  t gttgƒS )Nr  rª   r¦   )r`   r†   r‡   rt   r   r   r   rŽ   r¨   	  s    ÿc                   S   s$   t td dt  td  d gtƒS r   rs  r   r   r   rŽ   r¨   	  s    ÿc                   S   s,   t td d td  dtd   d gtƒS )Nrª   r¥   r¦   rà   rs  r   r   r   rŽ   r¨   	  s   $ ÿc                   S   s    t tdt d  t gttgƒS r¸   rq  r   r   r   rŽ   r¨   	  s    ÿc                   S   s   t td t gttgƒS r¸   rq  r   r   r   rŽ   r¨   	  s    ÿc                   S   s"   t tdt dt t ƒgttgƒS r¸   ©r`   r   r†   r‡   r   r   r   rŽ   r¨   	  s    ÿc                   S   s"   t ttt tt t ƒgttgƒS r‰   )r`   r   r‡   r†   r   r   r   rŽ   r¨   	  s    ÿc                   S   s&   t tttd  td t ƒgttgƒS rÐ   r  r   r   r   rŽ   r¨   	  s    ÿ)rU   r³   r   r   r   rŽ   Útest_issue_14987	  s    r  c                  C   sÖ   t tt dt dt    } t| t ƒttjƒks4t‚t| t tjƒt	tt dt dt    htjƒksjt‚t
ddd}t
ddd}t || d| d|    } t| t ƒttjƒks¶t‚t| t tjƒttjƒksÒt‚d S )NrÜ   r¦   ÚapTr¤   Úbn)Únegative)r†   rt   ru   re   rK   r   r²   r˜   r±   rL   r   )rç   r  r  r   r   rŽ   Útest_simplification"	  s    6r  c            
      C   sB  dt  d dk} t d dt   d dk}t dt   ddt   k}t tt d d ƒ dk}t dt   ddt   k}| t tt ƒ¡}tt ƒt  dk}tt ƒt  dk }t t d  dk }t t d d  dk }	t| t tjƒtdtdƒksât	‚t|t tjƒt
tt ddƒtdtdƒƒkst	‚t|t tjƒt
tdddƒtdtdƒƒks@t	‚t|t tjƒtdtdƒks`t	‚t|t tjƒtdtdƒks€t	‚t|t tjƒtdddƒks t	‚t|t tjƒtjksºt	‚t|t tddƒd	tdddƒksàt	‚t|	t tddƒd	t
tdddƒtdddƒƒkst	‚tt d dk t tjƒtt ddƒks>t	‚d S )
Nr¦   r¥   r   rª   rÜ   rÌ   r°   r  rã   )r†   r+   rÅ   r$   re   r   rµ   rI   r   r˜   rN   r´   )
r¥  r¦  r§  r¨  rç   Zeq5Zeq6Zeq7Zeq8Zeq9r   r   rŽ   Útest_integer_domain_relational.	  s(    0.   &4r  c                  C   s¤   t dƒ} t dƒ}t| tƒtd  ttjƒ ttt| tƒtd  dƒtjƒ¡sPt	‚t| |tƒƒtd  |tƒtjƒ t|tƒt| |tƒƒtd  dƒtjƒ¡s t	‚d S )Nry   rz   r¦   r   )
r   re   r†   r   r   r±   r•   rG   r   r˜   )ry   rz   r   r   rŽ   Útest_issue_10555H	  s    ÿ"&ÿr  c                  C   sx   t dt   ddt   k} t| t tjƒt dt¡tdƒ ks>t‚t|  	t t
t ƒ¡t tjƒt tdƒt¡tdƒ kstt‚d S )Nrª   rÜ   r   )r†   re   r   r±   rM   r  r   rK   r˜   rÅ   r$   r#   rù   r   r   rŽ   Útest_issue_8715Q	  s    ÿÿr  c                  C   sè   t d tdt ƒ ttƒ } ttjtt	t d  ttƒ ƒd ƒƒ}t
| ttjƒ|ksXt‚ttƒtttƒƒ tttƒd d ƒ tttƒ  } ttƒ tttƒƒ tttƒd d ƒttƒ  }ttjt|ƒƒ}t
| ttjƒ|ksät‚d S r  )rˆ   r#   r†   r;   r‡   rL   r   r±   rK   r$   re   r˜   r+   rƒ   r   r<   r„   )rç   rš  r¢   r   r   rŽ   Útest_issue_11174Y	  s    &42r  c            	      C   sò   t ddd} t ddd}| | t| d  d ƒ  }|d  | d | d  d   }t| t|d d ƒ ƒt|t|d d ƒ ƒ }}t| t|dƒ|ƒ}|ddh |ddh B }||B ddh }t|| tjƒ|ksØt‚t|| tjƒ|ksît‚d S )	Nr†   Tr    r‡   r¦   rª   r   r°   )	r   r+   rK   rG   r   re   r   r±   r˜   )	r†   r‡   r¥  r¦  r   rž   r  rš   r›   r   r   rŽ   Útest_issue_11534d	  s     
4r  c                   C   sJ   t td dt  d t dk ttjƒtt t d¡t dd¡ƒksFt‚d S )Nr¦   r½   r¥   r  r   rª   )	re   r†   r   r±   rN   rM   r  r   r˜   r   r   r   rŽ   Útest_issue_10477	  s    $ÿr  c                  C   sT   t ttƒttdtƒƒtdtƒks$t‚tddƒ} t dt  t¡dk t| ƒ| ksPt‚d S )Nr   rª   r×   )	re   r;   r‡   rM   r   rK   r˜   r†   r	   )r|   r   r   rŽ   Útest_issue_10671„	  s    $
r  c                  C   sŽ   t tt d d ƒ } t| dkt tjƒttdƒtƒks8t‚t| dk t tjƒtt tdƒ ƒks`t‚t| tdƒkt tjƒt tdƒt¡ksŠt‚d S )Nr¦   rÌ   r   )	r†   r+   re   r   r±   rM   r   r˜   ÚLopenrù   r   r   rŽ   Útest_issue_11064Š	  s    ÿÿÿr  c                  C   sh   t td ƒd } t| tƒ}|tjks(t‚t| dk ttjƒtjksDt‚t| dkttjƒtdt	ƒksdt‚d S )Nr¦   r   )
r+   r†   r]   r   r´   r˜   re   r±   rM   r   )rç   rš  r   r   rŽ   Útest_issue_12478”	  s
    
r  c                  C   s6   t ttƒt dkttjƒ} t dd¡}| |ks2t‚d S rK  )re   r$   r†   r   r±   rM   r  r˜   )rç   rÂ   r   r   rŽ   Útest_issue_12429œ	  s    r  c                  C   sZ   t tt ƒ} tdƒ}t| ƒ tt|tt	|ƒd dƒt
jƒt|t|ƒdkt
jƒƒ¡sVt‚d S )NÚCrª   r   )r   r†   r   r   re   r•   rL   rG   r   r   r   r)  r   r˜   )rç   r   r   r   rŽ   Útest_issue_19506¢	  s
    $ÿr!  c                   C   sV   t ttƒttjƒt dt¡ks"t‚t tdt d ƒttjƒt t	ddƒt¡ksRt‚d S )Nr   r½   r¥   )
re   r   r†   r   r±   rM   r  r   r˜   r   r   r   r   rŽ   Útest_solveset_arg©	  s    "r"  c                      sP   t ‰ t‡ fdd„tƒ tddtddfD ƒƒs2t‚ˆ dtdd ƒdksLt‚d S )Nc                 3   s   | ]}ˆ d | ƒdkV  qdS )rª   Nr   rû  rÍ   r   rŽ   r   ±	  s     z3test__is_finite_with_finite_vars.<locals>.<genexpr>Tr    )Úcomplexrª   F)rj   r“   r   r˜   r   r   rÍ   rŽ   Ú test__is_finite_with_finite_vars®	  s      ÿr$  c                   C   s6   t td dt  d ttt dƒdtdƒks2t‚d S )Nr¦   rÛ   r   )Úsymbolrä   r  ra  r   r   r   rŽ   Útest_issue_13550¶	  s    r&  c                   C   s4   t ttdƒtdƒ  tdƒ tftƒtjks0t‚d S )NrÌ   r¦   )rh   r„   r+   r   r´   r˜   r   r   r   rŽ   Útest_issue_13849º	  s    r'  c                   C   sŠ   t ttttdƒ ƒd  t¡ttjƒtddƒks4t	‚t ttttdƒ ƒd  t¡tt
ddƒƒtdƒksjt	‚t tttddƒƒtjks†t	‚d S )Nr¦   r°   rª   r   )re   r   r†   r,   r2  r.   r   r±   rK   r˜   rM   r´   r   r   r   rŽ   Útest_issue_14223¾	  s    ÿÿÿÿr(  c                	      s°  t j‰ ttttdƒ d tˆ ƒttddƒƒks2t‚ttttdƒ d tˆ ƒtt	dƒ t	dƒƒksdt‚ttt
td ƒd td ƒd tˆ ƒtddƒks˜t‚tt
td ƒt
tƒ tˆ ƒtt
tƒ d t
tƒd ƒksÔt‚tt
tdt
td ƒ  ƒtˆ ƒttddƒtdd	ƒƒkst‚tdt
tt
ttdtƒ ƒ ƒ d tt jƒtdd
ƒksLt‚t j‰ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )NrÛ   r×   r¦   r¥   rª   r°   r½   rÕ   rÌ   rÜ   c                      s   t tttdƒ d tˆ ƒS ©NrÛ   r×   )re   r†   r-   r   ©Údomr   rŽ   r¨   Ï	  r©   z"test_issue_10158.<locals>.<lambda>c                      s   t tttdƒ d tˆ ƒS r)  )re   r†   r,   r   r*  r   rŽ   r¨   Ð	  r©   c                      s&   t tttd ƒd td ƒd tˆ ƒS )Nr¥   rª   r¦   )re   r-   r   r†   r   r*  r   rŽ   r¨   Ñ	  r©   c                      s   t ttd ƒttƒ tˆ ƒS r¸   )re   r   r†   r‡   r   r*  r   rŽ   r¨   Ò	  r©   c                      s    t ttdttd ƒ  ƒtˆ ƒS )Nr½   rª   r  r   r*  r   rŽ   r¨   Ó	  r©   )r   r±   re   r†   r-   rK   r   r˜   r,   r+   r   r‡   r)  rU   r³   r   r   r*  rŽ   Útest_issue_10158Æ	  s    ,24<<<r,  c               
   C   s¤   dt dt ƒ t } ttt d ƒ d ƒ}t| ttjƒttj|ƒksJt	‚t
t| tƒtttt dt t tt d ƒ  d tttd ƒƒd  ƒtjƒƒs t	‚d S )Nrª   i€Wíþi€¨r¦   )r#   r†   r‡   rK   r$   re   r   r±   rL   r˜   rŠ   rH   r   r   r   r   r   r   rµ   )ry   Za1r   r   rŽ   Útest_issue_14300Ö	  s    
ÿ
(ÿÿÿr-  c                      s@   t td t d dƒ‰ tt‡ fdd„ƒ ttd ˆ tƒs<t‚d S )Nr½   rª   r¦   c                      s   t ˆ dtƒS r(  )rc   r†   r   ©Únumberr   rŽ   r¨   ã	  r©   z"test_issue_14454.<locals>.<lambda>)rE   r†   rU   r³   rc   r˜   r   r   r.  rŽ   Útest_issue_14454á	  s    r0  c                   C   sn   t dtd  dtd d tdƒd    ddtd d tdƒd     ttjƒttdƒtdƒ ƒksjt‚d S )Nrý  r¦   rî   rª   r½   r¥   )re   r†   r   r)  rK   r+   r˜   r   r   r   rŽ   Útest_issue_17882ç	  s    Pÿr1  c               	   C   s¬   t tdt d ƒƒddt gks$t‚dtd  dtd   dtd   dtd   dtd   } tt| ƒƒdtd  dtd  dtd  dtd  ddtd  hks¨t‚d S )Nr¥   r¦   rÜ   r½   rª   r°   )r‘   rq   r†   r˜   r$  )rÄ  r   r   rŽ   Útest_term_factorsì	  s    $<

 
 
 
  
ÿr2  c                   C   sJ   t dt ttjƒtjkst‚t dt dtd   ttjƒtdƒksFt‚d S )Nr¥   rî   rÌ   rj  )rk   r†   r   r±   r´   r˜   rK   r   r   r   rŽ   Útest_transolveõ	  s    r3  c                  C   sl   dt  tt  tttt ƒ  t tttt ƒ  t d } t|  ¡ tƒttttdt  d ƒ ƒksht‚d S r  )	r†   r‡   rˆ   r=   re   rO  rK   r@   r˜   rù   r   r   rŽ   Útest_issue_21276û	  s    <r4  c               
   C   s4  ddl m}  ddt  dtd   }dddt   ddt   }dt dt  }ttdƒt ƒdt  }tt|  ƒtt |  ƒ d }dtd  dtd   }dtd	  dtd   dtd	   dtd   dtd   }d
tdt d ƒ dtdt d	 ƒ  }dt dt  dt  d }	ddtd	   dt  ddt   }
t|ttjƒt	dtdƒ dtdƒ tdƒ  ƒkszt
‚t|ttjƒt	tddƒƒksœt
‚t|ttjƒtjks¶t
‚t|ttjƒt	dƒksÒt
‚t|ttjƒttjt	| tdtt|  ƒ ƒ ƒƒks
t
‚t|ttjƒt	dƒks&t
‚t|ttjƒt	dƒksBt
‚t|ttjƒt	dtdƒ d dtdƒ d  tddƒ ƒks„t
‚t|	ttjƒt	dƒks t
‚t|
ttjƒt	tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ  ƒksìt
‚td
tdt d ƒ dtd	   tƒt	ddtdƒ  tdƒ tdƒd   ƒksBt
‚tdtd  dtd   tƒt	dƒksnt
‚tdƒttdƒƒ ttdƒƒ }tdtd  ddt   tƒt	| |ƒks¾t
‚tdƒ\}}tdƒ}t||td   t|tƒ ƒ |tƒƒttjt	t||td   ƒ ƒƒks"t
‚tddd} ttd | d ttƒ  | ƒttjt	ttd ttƒ ƒ ttd ttƒ ƒƒƒks†t
‚tddd}td	| d	 |d	  |ƒ tttd	d	t  td	  dƒtjƒ¡sØt
‚tdt dt  d ttjƒdhkst
‚tdt ddt   d ttjƒdhks0t
‚d S )Nr   r  r¥   r¦   r½   rÌ   rî   rÔ   rª   rk  rÜ   éT   é   ig  é{   i¦
  r  rÛ   r4  rË   zC1 C2ry   r‡   Tr¤   rN  rï   )r]  r‡   r†   r#   r$   rˆ   re   r   r±   rK   r˜   r   r´   rL   r]   r+   r   r   r   r•   rG   r   )r‡   rã  rä  Ze3Ze4Ze5Ze6Ze7Ze8Ze9Ze10ru   ZC1ZC2ry   rN  r   r   rŽ   Útest_exponential_real
  sb    <($ÿ" ÿBL&$ÿ, 0( ÿ *ÿ"ÿ
*r8  c            	   	   C   sÜ  t dƒ} ttdt dt  tƒtt| td|  t t  tdƒ ƒt	j
ƒƒsNt‚ttt tt  d tƒttdƒttƒttƒ  ƒksˆt‚ttdtd  dtd   tƒtt| d|  t t tdƒ ƒt	j
ƒƒsÒt‚ttdt d tƒtt| td|  t t  dtdƒ  tdƒ ƒt	j
ƒƒs"t‚dttd t ƒ d td d  }ttƒtttdƒƒ ttdƒd|  t t  ƒ ƒ }t|tƒt| |ƒks˜t‚tt| td|  t ttddƒ   tdƒ ƒt	j
ƒ}tt| td|  t ttddƒ   tdƒ ƒt	j
ƒ}ttdt dt  dt  tƒt||ƒƒs0t‚dtd	  dtd   dtd	   dtd   dtd   }t|tƒ}d|  t t dtdƒ  dtdƒ  }d
tdƒ tdƒ }tt| || ƒt	j
ƒ}t||ƒsØt‚d S )Nr   r¦   r½   r¥   rÍ  rÌ   rÛ   rÔ   rª   rÜ   )r   rŠ   r_   r†   rO   r   r   r   r$   r   rµ   r˜   rˆ   r‡   rK   re   r#   r+   r   rN   )	r   rç   rt   Zunion1Zunion2r0  ÚnumZdenrõ   r   r   rŽ   Útest_exponential_complex1
  s8      ÿ
ÿ
  ÿ
, ÿ$6440<
(r:  c                  C   sˆ  t tƒd t d } td t t d }dt t tƒ d }ttƒt tƒ }dt dt  dt  }t| ttjƒ ttt	t tƒd t d dƒtjƒ¡sœt
‚t|ttjƒ ttt	ttd t  d dƒtjƒ¡sÔt
‚t|ttjƒ ttt	dt t tƒ d dƒtjƒ¡st
‚t|ttjƒ ttt	t tƒ ttƒ dƒtjƒ¡sFt
‚t|ttjƒ ttt	dt dt  dt  dƒtjƒ¡s„t
‚d S )Nrª   r¦   r¥   rÌ   r   )r#   r†   r‡   r$   re   r   r±   r•   rG   r   r˜   )rH  rI  r•  r–  r—  r   r   rŽ   Útest_expo_conditionsetN
  s<      ÿ
  ÿ
  ÿ  ÿ  ÿr;  c            	      C   s€  t ddd\} }}t ddd\}}t||  | | tjƒttjtt|ƒt|ƒ ƒƒksXt‚d| t  d|t   }| | t d }ttdƒt| ƒt|ƒ  htjƒ}ttdƒt| | ƒ htjƒ}t|ttjƒ|ksätt|ttjƒƒ‚t|ttjƒ|ks
tt|ttjƒƒ‚t| |  | t	 
dt¡ƒ ttttt dƒt	 dt¡ƒ¡sHt‚t| | d	 |tjƒtdƒkslt‚tt| | ƒt| | ƒ d |tjƒtt|tt| ƒ| dƒtt|ƒ| dƒ@ ttt| | tdƒ ƒtjƒtdƒƒƒtdƒƒksòt‚tt|| ƒt| | ƒ d |tjƒtt|| tdƒ ƒtdƒƒks>t‚tt|  t|   | ƒ ttttdƒttdƒ@ tdƒƒ¡s|t‚d S )
Nzx y zTr¤   zxr, zrr    r¦   r½   r   rª   )r   re   r   r±   rL   rK   r$   r˜   r…   rM   r  r   r•   rG   r   r  r#   rJ   r   rt   ru   r   )	r†   r‡   rˆ   ZxrZzrrH  rI  rš   r›   r   r   rŽ   Útest_exponential_symbolsb
  s>     ÿ
"$&ÿ
$&($ÿÿÿ
&ÿ
  ÿr<  c                  C   s@   t ddd} t dƒ}t| d d | ƒt|d d |ƒks<t‚d S )Nr†   Tr¤   r¦   r½   )r   r_   r˜   )Zxposr†   r   r   rŽ   Útest_ignore_assumptions}
  s
    ÿr=  c                   C   s*   t ttt  t ttjƒtdƒks&t‚d S r¸   )re   r†   r‡   rˆ   r   r±   rK   r˜   r   r   r   rŽ   Útest_issue_10864…
  s    r>  c                   C   sX   t tttƒƒttt ƒƒ d tƒtdttdƒ d ƒ dttdƒd ƒ ƒksTt‚d S )Nr½   r¦   r¥   )r]   r+   r#   r†   rK   r$   r˜   r   r   r   rŽ   Útest_solve_only_exp_2Š
  s    "*ÿr?  c                   C   sL  t ttƒdkst‚t dt d tƒdks,t‚t dt ddt   tƒdksNt‚t tdt ƒdt  tƒdkspt‚t tt t tƒdksŠt‚t tt t tƒdks¤t‚t dt dt  d tƒdksÆt‚t ttt  t tƒdksät‚t tdt  dt  tƒdkst‚t tt tt  tƒdks(t‚t tt tt  tƒdksHt‚d S )	NFr¥   r¦   TrÌ   rà   r½   rª   )rl   r‡   r†   r˜   r;   rˆ   r   r   r   rŽ   Útest_is_exponential
  s    """$ r@  c                   C   s  t ddt  dtd   dttjƒtdtdƒ dtdƒ tdƒ  ƒksLt‚t dt dt  dttjƒtttddƒt	d	ƒd  ƒtdƒ ƒks’t‚t dt dt  dttjƒtj
ks¸t‚t dt dt  d	t  dttjƒtttdt dt  d	t  dƒtjƒks
t‚d S )
Nr¥   r¦   r   r  rÜ   r½   rª   r°   rÌ   )rm   r†   r   r±   rK   r$   r˜   r‡   r   r+   r´   rG   r   r   r   r   rŽ   Útest_solve_exponentialž
  s    ""ÿ$ÿÿ"&ÿrA  c               
   C   s  t ttd ƒttd ƒ tƒttdƒ tdƒƒks6t‚t ttd ƒtdt d ƒ tƒtdƒksdt‚t ttd ƒtddt  ƒ d tƒtdtdtdƒ ƒttddƒƒ d  tdƒd  tdtdƒ ƒ ttddƒƒ d d tdƒd  ƒksöt‚tttƒ tt	tdt	d td     ƒ } t | tƒt
tjttt	d t	ttƒ  ƒ tt	d t	ttƒ  ƒƒƒt
tjttt	d ƒ tt	d ƒƒƒ ks’t‚t tdt ƒtt d ƒ tdt d ƒ tƒttddƒtjƒksÚt‚tttt	 ƒt	ttƒ  ttjƒtjkst‚d S )	Nr¥   r×   rª   r¦   r  iôÿÿÿr°   r½   )r]   r$   r†   rK   r+   r˜   r#   r   rˆ   r‡   rL   r   r±   r²   re   rù   r   r   rŽ   Útest_logarithmic¬
  s0     ÿ
.&02þ
, ÿ"þÿ
( ÿÿ
rB  c                  C   sz   t tdt ƒd ƒt ttƒ d ƒ t dƒ } t| tƒtjksBt‚t dt ƒt ttƒd ƒ d } t| tƒtjksvt‚d S )Nr¦   rª   rÔ   )	r$   r#   r†   r'   r]   r   r´   r˜   r+   rù   r   r   rŽ   Útest_uselogcombine_2½
  s    . rC  c                   C   sÆ  t ttƒdkst‚t ttƒtƒdks(t‚t ttƒd tƒdksBt‚t ttƒttƒ tƒdks`t‚t ttƒd tƒdkszt‚t ttd ƒttd ƒ tƒdks t‚t ttt ƒtttƒ  tƒdksÆt‚t tttƒƒtƒdksàt‚t tt tƒdksöt‚t tdt ƒtdt ƒ d tƒdks"t‚t ttƒttƒ t tƒdksFt‚t tttd ƒƒttd ƒ tƒdksrt‚t ttdƒt ƒttƒ tƒdksšt‚t ttƒtd  ttƒ tƒdksÂt‚d S )NFTr¥   r¦   rª   r½   )rn   r‡   r†   r˜   r$   r;   r   r   r   rŽ   Útest_is_logarithmicÅ
  s    &&,$,(rD  c                  C   sn   t dƒ} ttt|  ƒ| ttƒ  dttjƒtjks6t‚t ddd} tttƒt| ƒ dttjƒtdƒksjt‚d S )Nr‡   r   Tr¤   rª   )r   rp   r$   r†   r   r±   r˜   rK   r  r   r   rŽ   Útest_solve_logarithmÖ
  s    .rE  c                  C   sè  t dƒ\} }}ttd tƒdks$t‚t| td  |t  | tƒdksJt‚ttd tƒdks`t‚tttd  tƒdkszt‚tdttƒ ttdƒ  tƒdks t‚ttttd ƒƒttd ƒ tƒdksÊt‚tdt d dtddt  ƒ  tƒdksøt‚t| t ttd ƒ  td¡tƒdks$t‚ttd dt  d  tttƒdt  d d ¡tƒdksdt‚ttt	tƒ d tƒdks„t‚ttt
tƒ d tƒdks¤t‚tttƒdt  tƒdksÄt‚tttƒt	tƒ tƒdksät‚d S )	Nza,b,cr¦   FTr¥   rÌ   rª   rà   )r   ro   r†   r˜   r   r$   r#   r	   rÅ   r&   r7   r'   r(   )rt   ru   rv   r   r   rŽ   Útest_is_lambertà
  s    &&*.,@   rF  c                      st  ddl m‰  ˆ dtƒddgks"t‚tdd„ ˆ dtƒD ƒƒs>t‚ˆ tdt  d ttƒdddgksdt‚ˆ tdt  d ttƒdddgksŠt‚ˆ tdtd   d ttd ƒdddgks¸t‚tt‡ fdd	„ƒ tt‡ fd
d	„ƒ tt‡ fdd	„ƒ ˆ ttt  ttƒttdgkst‚ˆ dttƒdddgks.t‚ˆ t	ttt ƒttddtdiksVt‚ˆ dttddi kspt‚d S )Nr   ©Úlinear_coeffsc                 s   s   | ]}|t jkV  qd S r‰   )r   r  râ   r   r   rŽ   r   ö
  s     z%test_linear_coeffs.<locals>.<genexpr>r¦   r¥   rª   c                      s$   ˆ t dt d   t d  t t d ƒS r   r§   r   rG  r   rŽ   r¨   ú
  s    z$test_linear_coeffs.<locals>.<lambda>c                      s   ˆ dt  t d  dt   t ƒS r¸   r§   r   rG  r   rŽ   r¨   ü
  s    c                      s   ˆ t t t ƒS r‰   r§   r   rG  r   rŽ   r¨   þ
  s    r¬   T)Údictr°   )
r\  rH  r†   r˜   r“   r‡   rU   r³   rt   r   r   r   rG  rŽ   Útest_linear_coeffsó
  s    &&.$(rJ  c                   C   sP  t ttƒdkst‚t ttdƒd tƒdks.t‚t ttd dtd   t d dƒd tƒdksbt‚t tttt ƒdƒd tƒdks†t‚t tttt ƒdƒttƒ tƒdks®t‚t ttdƒd tƒdksÊt‚t ttdƒd d tƒdksêt‚t ttdƒd t tƒdkst‚t tttdƒƒd tƒdks.t‚t tdtƒd tƒdksLt‚d S )NFr¥   rª   Tr¦   rÌ   )rr   r‡   r†   r˜   r
   r#   r$   r   r   r   rŽ   Útest_is_modular  s    4$( ""rK  c                  C   sê  t ddd} ddlm} |tttƒdƒtdƒ| tƒtttƒdƒdfksJt‚|tttƒdƒtdƒ| tƒtttƒdƒdfks|t‚|tt	tƒdƒtdƒ| tƒtt	tƒdƒdfks®t‚t
|ttdƒtdƒ| tƒttt| d|  d ƒtjƒfƒsêt‚t
|ttd dƒtdƒ| tƒttt| d|  d	 ƒtjƒfƒs,t‚|ttd
 t dƒtdƒ| tƒttd
 t dƒdfksht‚t
|tdt dƒtdƒ| tƒttt| d|  d	 ƒtjƒfƒsªt‚|ttd td
  dƒtdƒ| tƒttd td
  dƒdfksît‚|ttd	 dƒtdƒ| tƒttjfkst‚t
|tdt d	ƒtdƒ| tƒttt| d
|  d ƒtjƒfƒs\t‚t
|td
td
 t d  dƒtd
ƒ| tƒtd
 t d tt| d|  d ƒtjƒfƒs¶t‚|tttƒd	 dƒtdƒ| tƒttjfksæt‚d S )Nr   T©Úintegerr   )Ú_invert_modularrà   rÌ   rÔ   r½   r¦   r¥   rª   )r   r\  rN  r
   r;   r†   r   r˜   r#   r$   rŠ   rH   r   rµ   r´   Ú	Naturals0)r   Zinvert_modularr   r   rŽ   Útest_invert_modular  s<    222ÿÿ
ÿ
ÿ
"ÿ
ÿ
ÿ
((ÿ
rP  c                  C   s:	  t ddd} tttdƒt ttjƒ tttt ttdƒ dƒtjƒ¡sJt	‚tdtt
tƒdƒ ttjƒ ttttt
tƒdƒd dƒtjƒ¡sŽt	‚tdtttƒdƒ ttjƒ ttttttƒdƒd dƒtjƒ¡sÒt	‚tdtttƒdƒ ttjƒ ttttttƒdƒd dƒtjƒ¡st	‚tdttdƒ ttjƒtjks<t	‚tdttdƒ ttjƒtjks`t	‚ttd	ttd
ƒ ttjƒtt| d
|  d	 ƒtjƒƒsšt	‚tdttd
ƒ ttjƒtjks¾t	‚ttdttdƒ ttjƒtt| d|  d ƒtjƒƒsøt	‚ttdtdt d dƒ ttjƒtt| d|  d ƒtjƒƒs:t	‚ttdtdt dƒ ttjƒtt| d|  d	 ƒtjƒƒsxt	‚ttttd	 dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒsbt	‚tdttd dƒ ttjƒtjksŠt	‚ttttd dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒst	‚tttdt dƒd ttjƒtt| d|  d ƒtjƒƒsRt	‚tttdt dƒd ttjƒtt| d|  d	 ƒtjƒƒst	‚tttdt dƒd ttjƒtt| d	|  d ƒtjƒƒsÎt	‚tttd	t dƒd	 ttjƒtt| d|  d ƒtjƒƒst	‚tttddt  dƒd ttjƒttt| ttd	|  d ƒtdƒ htjƒƒtjƒtjƒƒslt	‚tttd dƒd	 ttjƒtjks”t	‚ttttd dƒd ttjƒtt| d|  d ƒtjƒƒsÒt	‚ttttd dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒs,t	‚ttdtdt d dƒ ttjƒttt| d|  d ƒtjƒtjƒƒsvt	‚tttdƒt ttjƒtjksšt	‚tttt dƒd	 ttjƒ tttttt dƒd	 dƒtjƒ¡sàt	‚tttt dƒd	 ttjƒ tttttt dƒd	 dƒtjƒ¡s&t	‚ttttd dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒs€t	‚ttttd  d!ƒd" ttjƒtt| d!|  d  ƒtjƒƒs¾t	‚tddd} d#}d$}d%}d&}tt|t||  | |ƒ | tjƒtt| d'|  d( ƒtjƒƒst	‚tt|t||  | |ƒ | tjƒttt| d'|  d( ƒtjƒtjƒƒsft	‚tt|t|d	|   | |ƒ | tjƒttt| d)|  d* ƒtjƒtjƒƒs´t	‚t|t|d	|  d  | |ƒ | tjƒtjksèt	‚tt|t|| d  | |ƒ | tjƒttt| d'|  d+ ƒtjƒtjƒƒ	s6t	‚d S ),Nr   TrL  r½   r   r¥   rà   rÌ   r¦   r  rÔ   é    rî   rë   r@  éM   éS   é]   é“   é   rí   rï   r  é)   rÛ   rþ   é   r?  rË   rª   r>  r¯   éJ   r½  i­VH,i½.qiÿÿÿi@È3iþÿÿr«   iÿÿÿ?é2   ré  )r   re   r
   r†   r   rµ   r•   rG   r   r˜   r;   r$   r#   r´   rŠ   rH   r   rN   rO  rL   r   r   )r   rt   ru   r€   rv   r   r   rŽ   Útest_solve_modular3  sú    ÿþ þ þÿÿ
$$ÿ
$ÿ
 ÿ
ÿ
ùÿ
	(ýÿ
ÿ
ÿ
ÿ
ÿ
 "ÿÿÿÿ
(ÿ
ÿÿ
  ÿ
ÿ
 þ
 þ
ÿÿ
ÿ
 ÿ
 ÿÿ
$ÿÿ
4$ÿÿr[  c                   C   sd   t ttdtdƒd  ƒttt dtdƒ ƒgttƒtdtdƒd  ddtdƒd   fƒks`t‚d S )NrÌ   rª   é   r¥   r×   )rh   r   r†   r   r‡   r+   rK   r˜   r   r   r   rŽ   Útest_issue_17276ž  s    2&ÿr]  c                  C   s¸   t dƒ} tdƒ}t dƒ}tt| | ƒt| ƒ |ƒ t dƒ¡ttt|d| t ƒt	j
ƒtt	jtt|t td| t ttdt |  ƒ ƒ  dt| ƒ   ƒt	j
ƒƒƒ t dƒ¡ks´t‚d S )Nr†   rt   r   r¦   rÜ   zx,n)r   r   re   r;   r•   rN   rH   r   r   r   rµ   rL   r)  r   r   r#   r   r˜   )r†   rt   r   r   r   rŽ   Útest_issue_10426£  s    $Dÿþýr^  c                   C   s(   t ttƒd t ƒtdt ƒks$t‚dS )z,Test solveset for simple conjugate functionsr¥   N)re   r!   r†   r   rK   r˜   r   r   r   rŽ   Útest_solveset_conjugate­  s    r_  c            '   $   C   sN  t dƒt dƒ } | \}}}}}}}}}	}
}}}}}}}}}}}}}}}}}}|| | | d || | | d || | | d || | | d || | | d || | | d || |	 |
 d || | | d	 || | |	 d
 || | |
 d || |	 |
 d || |	 |
 d || | | d || | |	 d || | |
 d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d |d |d |d |d |d |d |d |d g#}d| |d d	| |d| |d d| |dddddddddd| | d || d | | | d  || | d! d"| |d#| |d#| |g}t|| ƒ\}} d$d%„ t| |ƒD ƒ}!t|| ƒ|!ks(t‚tt|Ž ƒ}"t|| ƒ|"ksHt‚t|| f| ƒ|"ks`t‚| | ¡\}#}$t	|#ƒ}#|" 
t|||||g|$ƒ¡}%tt|#Ž ƒ|%ks¦t‚td| |d d	| |d| |d d| |dddddddddd| | d || d  d| |d"| |d#| || | | d  || | d! fƒ}&t|| ƒ|&ksJt‚d S )&Nzx0:16zy0:12rç  é.   é'   rZ  é#   é"   é   r\  é,   r6  r.  é5   é8   rA  é4   r¾  é0   é<   r¦   rÌ   rª   rË   rX  rï   r¾   é&   r×   rÝ   rÔ   é   r¥   é!   rÞ   c                 S   s   i | ]\}}||kr||“qS r   r   )rŒ   rí  rç   r   r   rŽ   Ú
<dictcomp>ã  s       z$test_issue_18208.<locals>.<dictcomp>)r   r`   r”   r\   r˜   rK   r   ra   Zgauss_jordan_solver‘   rÅ   rh   )'Ú	variablesrŠ  r}  r~  r‡  rˆ  Zx5Zx6Zx7Zx8Zx9Zx10Zx11Zx12Zx13Zx14Zx15Zy0rê  rë  rì  Zy4Zy5Zy6Zy7Zy8Zy9Zy10Zy11r  ÚexpectedrS  ru   Zsolve_expectedZlinsolve_expectedZgj_solveZnew_varsZgj_expectedZnonlinsolve_expectedr   r   rŽ   Útest_issue_18208²  sØ    ÿ"           Þ$(           
      ý	"            
       ýrq  c                  C   sª  t dƒ\} }}}}}}}}}	}
}}}}}}}}}}}}}||||||||||	|||||g}| | ||  | | | | | ||  |	 | | ||  | | | | ||  | | | ||  | | | | ||  | | | | ||  | | ||  |  ||  ||  | ||  ||  | ||  ||  | ||  ||  | | |	 | |
 | | | | | | | | | | | |
||||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| | | | fdtt|ƒtdƒƒd|dddddddd| | | | | |fdtt|ƒtdƒƒd|ddddddd| | | | | | ||fƒ}|t||ƒks¦t‚d S )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À  )Za00Za01Za10Za11Zl0Úl1Úl2Úl3Zm0Úm1Úm2Zm3Zm4Zm5Zm6Zm7Zc00Zc01Zc10Zc11Zp00Zp01Zp10Zp11Zsolveforr™  rÂ   r   r   rŽ   Ú*test_substitution_with_infeasible_solution  sJ    ÿ4"ç.:>Bürw  c                   C   s   t dttƒ ƒtjkst‚d S r¸   rÉ  r   r   r   rŽ   Útest_issue_20097-  s    rx  c                   C   s*   t ttdt t ƒƒƒtddƒks&t‚d S )Nrª   r°   )re   r	   r+   r†   rK   r˜   r   r   r   rŽ   Útest_issue_153501  s    ry  c                  C   sä   t dtdk ftdtƒd tdtƒd  tdtƒd  dfƒ} t t dtdk ftdtƒd tdtƒd  tdtƒd  dfƒtdkfdƒ}tddƒ}t| tddƒ ttddƒƒ}t|tddƒ ttddƒƒ}||ksÔt‚||ksàt‚d S )Nr   rª   r¦   r¥   Tr"  )r.   r†   r,   rM   re   r   r˜   )Zc1Úc2Zcorrect_resultZresult1Zresult2r   r   rŽ   Útest_issue_183595  s    <J
r{  c                  C   sX   ddt  d   tt d ƒ tt d   } t| t ƒs8t‚t| dt tjƒtdƒksTt‚d S )Nr¦   r¥   r>  r   )	r†   r#   r   rl   r˜   rm   r   r)  rK   )r¶   r   r   rŽ   Útest_issue_17604?  s    *r|  c                   C   s,   t ddtd  d  ttjƒtjks(t‚d S r+  )re   r†   r   r±   r´   r˜   r   r   r   rŽ   Útest_issue_17580E  s    r}  c                  C   s\   dt  dt  d dt  dt  d g} t| t tƒttddt  ƒtdƒ tfƒksXt‚d S )Nr¦   r¥   r½   rî   rÌ   )r†   r‡   rh   rK   r$   r˜   )r¢  r   r   rŽ   Útest_issue_17566_actualI  s    (r~  c                  C   sˆ   t dtd d  dtd tdƒd    dtd  td tdƒd    dƒ} tt dtddƒ ¡tdtƒƒ}t| tt	j
ƒ|ks„t‚d S )Nr¦   r¥   rª   r   r°   r½   )r   r†   r   rN   rM   r  r   r   re   r   r±   r˜   )rç   r0  r   r   rŽ   Útest_issue_17565O  s    N r  c                  C   s@   t d tt d  dt   ƒ } t| t tjƒttdƒƒks<t‚d S )NrÌ   r¦   r×   r4  )r†   r+   re   r   r±   rK   r   r˜   )Úfunctionr   r   rŽ   Útest_issue_15024U  s    r  c                
   C   sl   t ttd ttƒgttƒttdƒtttdt t	 ƒt
jƒftdƒtttdt t	 t	 ƒt
jƒfƒƒsht‚d S rÐ   )rŠ   rh   r†   r;   r‡   rK   rH   r   r   r   r   rµ   r˜   r   r   r   rŽ   Útest_issue_16877Z  s
    "$ÿÿr‚  c                   C   s˜   t tttƒdt dt  gttƒttttdt t	 ƒt
jƒttttt	 ƒt
jƒftttdt t	 t	 ƒt
jƒttttt	 t	d  ƒt
jƒfƒƒs”t‚d S ©Nr¦   r½   )rŠ   rh   r;   r†   r‡   rK   rH   r   r   r   r   rµ   r˜   r   r   r   rŽ   Útest_issue_16876a  s     ÿÿþÿr„  c                  C   s    t dƒ\} }t ddd}t| | | | tjƒt| t| | | dƒtjƒksNt‚t ddd\}}|| }t| | | | tjƒt| t| | | dƒtjƒksœt‚d S )Nzx zr‡   T)Zrationalr   ze1 e2)Zeven)r   re   r   r±   rG   r   r˜   )r†   rˆ   r‡   rã  rä  r   r   rŽ   Útest_issue_21236j  s    6r…  c                   C   sH   t td dt  td  ttƒ dt ttƒ gttƒddhksDt‚d S )Nr¦   rÜ   )rÜ   r   r¤  )rh   r†   r‡   r#   r˜   r   r   r   rŽ   Útest_issue_21908s  s    6ÿr†  c            
      C   s  t t d td d g} dd„ | D ƒ}dt tfdt t fh}t| t tgƒ}t|t tgƒ}||  krp|ksvn t‚t t d td d g}dd„ |D ƒ}t t fttfh}t|t tgƒ}t|t tgƒ}	|	|  krà|ksæn t‚ttt dt   dt  ƒgt gƒttjfƒkst‚d S )Nrª   r¦   c                 S   s   g | ]}t |d ƒ‘qS ©r   ©r   râ   r   r   rŽ   rü  {  s     z$test_issue_19144.<locals>.<listcomp>c                 S   s   g | ]}t |d ƒ‘qS r‡  rˆ  râ   r   r   rŽ   rü  ‚  s     )	r†   r‡   r   rh   r˜   r   rK   r   r´   )
re  r¥  r   Z
soln_expr1Zsoln_eq1rf  r¦  rº  Z
soln_expr2Zsoln_eq2r   r   rŽ   Útest_issue_19144x  s    r‰  c                  C   s¨   t dt dt dttƒ  d  tdt ƒ dt tdt ƒ dt tdt t ƒ  dtdt t ƒ  d fttƒ} tttjfttƒ tj tfƒ}| |ks¤t‚d S )Nr½   r¦   rª   )	rh   r‡   r†   r#   rK   r   r  r²   r˜   )r0  Zsolsr   r   rŽ   Útest_issue_22413‹  s    ,Bÿ þ rŠ  c                  C   sÈ   t dtttdt  d ƒ t ƒt tdt ƒt ddt t ƒg} dd„ | D ƒ}dh}tt| tttgƒ|ƒ tt|tttgƒ|ƒ td	t dd	t   d ƒ}d
t | dt  }tt|tƒddhƒ d S )Ng}ŒjýÉJ@g      @rª   gú~j¼t“X?g¸…ëQ¥¾@c                 S   s   g | ]}|  t¡‘qS r   )r2  r   )rŒ   rç   r   r   rŽ   rü  š  s     z$test_issue_23318.<locals>.<listcomp>)gO]¤¯p@g¹;Üõfl¡?g~adOºAgIüò¿x©‰>gú~j¼t“X¿gF„¿Ó­{å>r   g\adOºA)	r   r†   r$   r‡   rˆ   rŸ   rh   rœ   re   )Zeqs_eqZeqs_exprrÂ   Zlogtermrç   r   r   rŽ   Útest_issue_23318”  s     ýr‹  c                   C   s^   t dt ddt   ddt  ddt   gttƒttddt  ƒtdƒ tjfƒksZt‚d S rƒ  )rh   r€   r   rK   r$   r   r)  r˜   r   r   r   rŽ   Útest_issue_19814¦  s    2 ÿrŒ  c                  C   sh   t ttƒ td  dt  ttƒ ttjƒ} |  tdi¡dtdƒ dtdƒ hksdt|  tdi¡ƒ‚d S r  )re   r+   r„   r†   r   r±   Zxreplacer˜   rÇ  r   r   rŽ   Útest_issue_22058«  s    ,r  c                   C   sJ   t dttd ttd  td  ƒd d  ƒ d ttjƒtjksFt‚d S )Nr¾   r¦   r×   rj  )re   r+   r‡   r   r±   r´   r˜   r   r   r   rŽ   Útest_issue_11184±  s    rŽ  c                  C   s>  t dƒd } tdtd  td  dt  dtd  td  dt  gttƒd|  dt  tfd|   d d|  tdƒ t d  t tfd|   d d|  tdƒ t d  t tfhks¾t‚tddtd   tdtd  dtd   ƒ dt t tdtd  ƒ tdtd  ƒ gttƒt dƒ d dft dƒd dfhksFt‚tdd	d
\}}td|d  |d  d|  d|d  |d  d|  g||ƒ}dt dƒd  d|  |fdt dƒd   d dt dƒd  tdƒ t d  | |fdt dƒd   d dt dƒd  tdƒ t d  | |fh}||ks:t‚d S )Nr¦   r¥   r½   rª   rÜ   rÕ   r   rá  Tr    )	r   rh   r†   r‡   r+   r   r˜   r#   r   )rx   ÚrxZryrÂ   rõ   r   r   rŽ   Útest_issue_21890µ  s*    > ,,þ
,*ÿ ÿ ÿ
@<<þr  c                   C   sl   t td td td td dt gtttƒtjks6t‚t td d tt td d gttgƒtjksht‚d S )Nrª   r¦   r½   rÜ   r¥   )	rh   r{   r~   ry   r   r´   r˜   r†   r‡   r   r   r   rŽ   Útest_issue_22628Ä  s    6r‘  N(l  Úmathr   Zsympy.core.addr   Zsympy.core.containersr   Zsympy.core.functionr   r   r   r	   Zsympy.core.modr
   Zsympy.core.numbersr   r   r   r   r   r   Zsympy.core.relationalr   r   r   r   Zsympy.core.singletonr   Zsympy.core.sortingr   Zsympy.core.symbolr   r   r   rþ  r   Z$sympy.functions.elementary.complexesr   r   r   r   r    r!   Z&sympy.functions.elementary.exponentialr"   r#   r$   Z%sympy.functions.elementary.hyperbolicr%   r&   r'   r(   r)   r*   Z(sympy.functions.elementary.miscellaneousr+   r,   r-   Z$sympy.functions.elementary.piecewiser.   Z(sympy.functions.elementary.trigonometricr/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   Z'sympy.functions.special.error_functionsr=   r>   r?   r@   r%  rA   Zsympy.matrices.denserB   rt  Zsympy.matrices.immutablerC   Zsympy.polys.polytoolsrD   Zsympy.polys.rootoftoolsrE   Zsympy.sets.containsrF   Zsympy.sets.conditionsetrG   Zsympy.sets.fancysetsrH   rI   Zsympy.sets.setsrJ   rK   rL   rM   rN   rO   rP   Zsympy.simplifyrQ   Zsympy.tensor.indexedrR   Zsympy.utilities.iterablesrS   Zsympy.testing.pytestrT   rU   rV   rW   rX   rY   Zsympy.core.randomrZ   r/  r†  r[   Zsympy.solversr\   r\  r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   r]  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  r  r  r  r  r  r!  r&  r'  r*  r,  r1  r3  r7  r8  r9  r:  rD  rE  rG  rJ  rL  rM  rQ  rR  rT  rV  r^  r_  r`  rb  rd  rg  ri  rn  ro  rv  rw  rx  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  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  r1  r2  r3  r4  r8  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rJ  rK  rP  r[  r]  r^  r_  rq  rw  rx  ry  r{  r|  r}  r~  r  r  r‚  r„  r…  r†  r‰  rŠ  r‹  rŒ  r  rŽ  r  r‘  r   r   r   rŽ   Ú<module>   sî     @$ d\

_
	;
'I

!	
 "

	
]R

V

$
/

4o	 	


G




















	
		
	
	0
k
R)
			