a
     ¬<bßõ ã                   @   s  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mZm Z m!Z!m"Z"m#Z# d d
l$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC d dlDmEZEmFZFmGZGmHZH d dlImJZJ d dlKmLZM d dlNmOZO d dlPmQZQ d dlRmSZS d dlTmUZU d dlVmWZW d dlXmYZYmZZZ d dl[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZb d dlcmdZd d dlemfZf d dlgmhZh d dlimjZjmkZkmlZlmmZmmnZnmoZo d dlpmqZr d dlsmtZt d dlumvZv d d lwmxZxmyZymzZzm{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ŒmZmŽZŽ d d!lmZm‘Z‘m’Z’m“Z“m”Z”m•Z•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¤ d"d#„ Z¥eod$d%„ ƒZ¦d&d'„ Z§d(d)„ Z¨d*d+„ Z©d,d-„ Zªejd.d/„ ƒZ«d0d1„ Z¬d2d3„ Z­d4d5„ Z®d6d7„ Z¯d8d9„ Z°d:d;„ Z±d<d=„ Z²d>d?„ Z³d@dA„ Z´dBdC„ ZµejdDdE„ ƒZ¶emdFdG„ ƒZ·dHdI„ Z¸dJdK„ Z¹dLdM„ ZºdNdO„ Z»dPdQ„ Z¼dRdS„ Z½dTdU„ Z¾dVdW„ Z¿dXdY„ ZÀdZd[„ ZÁd\d]„ ZÂd^d_„ ZÃd`da„ ZÄdbdc„ ZÅddde„ ZÆdfdg„ ZÇdhdi„ ZÈdjdk„ ZÉdldm„ ZÊdndo„ ZËdpdq„ ZÌdrds„ ZÍdtdu„ ZÎdvdw„ ZÏdxdy„ ZÐdzd{„ ZÑd|d}„ ZÒd~d„ ZÓeod€d„ ƒZÔd‚dƒ„ ZÕd„d…„ ZÖd†d‡„ Z×dˆd‰„ ZØejdŠd‹„ ƒZÙejdŒd„ ƒZÚejdŽd„ ƒZÛeodd‘„ ƒZÜeod’d“„ ƒZÝd”d•„ ZÞd–d—„ Zßejd˜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ñejd¼d½„ ƒZòd¾d¿„ ZódÀdÁ„ ZôdÂdÃ„ ZõdÄdÅ„ ZöejdÆ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endäƒdådæ„ ƒZendçƒ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$d%„ Z%d&d'„ Z&d(d)„ Z'd*d+„ Z(d,d-„ Z)d.d/„ Z*d0d1„ Z+d2d3„ Z,d4d5„ Z-d6d7„ Z.d8d9„ Z/d:d;„ Z0d<d=„ Z1d>d?„ Z2d@dA„ Z3dBdC„ Z4dDdE„ Z5ejdFdG„ ƒZ6dHdI„ Z7dJdK„ Z8dLdM„ Z9ejdNdO„ ƒZ:ejdPdQ„ ƒZ;dRdS„ Z<dTdU„ Z=dVdW„ Z>ejdXdY„ ƒZ?dZd[„ Z@d\d]„ ZAd^d_„ ZBd`da„ ZCdbdc„ ZDddde„ ZEdfdg„ ZFdhdi„ ZGdjdk„ ZHdldm„ ZIdndo„ ZJejdpdq„ ƒZKdrds„ ZLdtdu„ ZMdvdw„ ZNdxdy„ ZOdzd{„ ZPd|d}„ ZQd~d„ ZRd€d„ ZSd‚dƒ„ 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–S (—  é    )ÚTuple)ÚFunctionÚLambdaÚnfloatÚdiff)ÚMod)ÚEÚIÚRationalÚooÚpiÚInteger)ÚEqÚGtÚNeÚGe)ÚS)Úordered)ÚDummyÚSymbolÚsymbols)Ú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v r(tdd„ t| |ƒD ƒƒS | |kp8|  |¡S )Nc                 s   s   | ]\}}t ||ƒV  qd S ©N)Údumeq)Ú.0rw   rx   © r‡   úq/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/solvers/tests/test_solveset.pyÚ	<genexpr>5   ó    zdumeq.<locals>.<genexpr>)ÚtypeÚlistÚtupleÚallÚzipÚdummy_eq)rw   rx   r‡   r‡   rˆ   r…   3   s    r…   c                     sH  t ddd‰ tjfdd„} ttˆ ƒtˆ ƒˆ | tttƒƒƒfksBJ ‚t ddd‰t ddd}tˆ d	 ˆˆ ƒˆ tˆd	 ƒfks~J ‚tˆ d	 ˆˆ ƒˆ tˆd	 ƒfks¢J ‚ttˆ ƒˆˆ ƒˆ ttˆƒƒfksÆJ ‚ttd	ˆ  ƒˆˆ ƒˆ ttˆƒd	 ƒfksòJ ‚ttˆ d	 ƒˆˆ ƒˆ ttˆƒd	 ƒfks J ‚ttˆ ƒd	 ˆˆ ƒˆ | ttˆd	 ƒƒƒfksRJ ‚ttˆ ƒd	 ˆˆ ƒˆ ttˆd	 ƒƒfks€J ‚ttˆ ƒˆˆ ƒˆ ttˆƒƒfks¦J ‚ttd	ˆ  ƒˆˆ ƒˆ ttˆƒd	 ƒfksÔJ ‚ttˆ d	 ƒˆˆ ƒˆ ttˆƒd	 ƒfksJ ‚ttˆ ƒˆˆ ƒˆ tˆˆ ƒfks(J ‚td
ˆ  ˆˆ ƒˆ ttˆƒtd
ƒ ƒfksVJ ‚td
tˆ ƒ ˆˆ ƒˆ | tttˆƒtd
ƒ ƒƒƒfksJ ‚tˆ d
 ˆˆ ƒˆ tt	ˆƒt	ˆƒ ƒfks¾J ‚tˆ tj
 ˆˆ ƒˆ tˆd
 ƒfksæJ ‚tt‡ fdd„ƒ tˆ t ˆˆ ƒˆ tˆdt  ƒfks"J ‚tˆ t t ˆ ƒˆ tjfksDJ ‚tˆ tdƒ dˆ ƒˆ tdƒfksjJ ‚tˆ d dˆ ƒˆ d tdƒfksJ ‚tt‡ ‡fdd„ƒ tˆ d ˆ  ˆˆ ƒˆ d ˆ  tˆƒfksÒJ ‚ˆ d ˆ  }tˆd ˆ d ƒ}ttˆ d ˆ  d ƒˆˆ ƒ||fksJ ‚tttˆ ƒˆˆ ƒˆ tt||t d| tˆƒ  ƒtjƒfƒs^J ‚ttttˆ ƒƒˆˆ ƒˆ tt|td| tˆƒ |t  ƒƒtjƒfƒs¨J ‚tttˆ ƒˆˆ ƒˆ tt||t d| tˆƒ  ƒtjƒfƒsêJ ‚ttttˆ ƒƒˆˆ ƒˆ tt|td| tˆƒ |t  ƒƒtjƒfƒs4J ‚tttˆ ƒˆˆ ƒˆ ttt|d
| t tˆƒ ƒtjƒtt|d
| t tˆƒ ƒtjƒƒfƒs–J ‚ttttˆ ƒƒˆˆ ƒˆ ttt|td
| t tˆƒ ƒƒtjƒtt|td
| t tˆƒ ƒƒtjƒƒfƒsJ ‚tttˆ ƒˆˆ ƒˆ ttt|d
| t tˆƒ ƒtjƒtt|d
| t tˆƒ ƒtjƒƒfƒsfJ ‚ttttˆ ƒƒˆˆ ƒˆ ttt|td
| t tˆƒ ƒƒtjƒtt|td
| t tˆƒ ƒƒtjƒƒfƒsÔJ ‚tttˆ ƒˆˆ ƒˆ tt||t tˆƒ ƒtjƒfƒsJ ‚ttttˆ ƒƒˆˆ ƒˆ tt|t|t tˆƒ ƒƒtjƒfƒsPJ ‚ttt ˆ ƒˆˆ ƒˆ tt||t t!ˆƒ ƒtjƒfƒsŠJ ‚ttt tˆ ƒƒˆˆ ƒˆ tt|t|t t!ˆƒ ƒƒtjƒfƒsÌJ ‚ttttˆ ƒƒˆˆ ƒtˆ ƒtt||t tˆƒ ƒtjƒfƒsJ ‚t ddd‰ tˆ t ˆˆ ƒˆ tˆdt  ƒfksDJ ‚d S )Nr   T©Úrealc                 S   s
   t || ƒS r„   )rG   )r   Úsr‡   r‡   rˆ   Úireal=   s    ztest_invert_real.<locals>.irealr‚   ©Zpositiver|   é   é   c                      s   t ˆ ˆ ˆ ƒS r„   )r^   r‡   ©r   r‡   rˆ   Ú<lambda>Z   rŠ   z"test_invert_real.<locals>.<lambda>é   g      ø?iè  éd   ç      ð?c                      s   t tjˆˆ ƒS r„   )r^   r   ÚOner‡   ©r   r‚   r‡   rˆ   r™   b   rŠ   é   éÿÿÿÿ)"r   r   ÚRealsr^   r   rƒ   rF   r   r   r&   ÚHalfrP   Ú
ValueErrorr   r   ÚEmptySetr
   r…   r6   rJ   r   r/   ÚIntegersr4   r-   r2   rI   r+   r5   r.   r7   r0   r3   r,   )r”   r|   ÚlhsZbase_valuesr‡   rž   rˆ   Útest_invert_real9   sž    ($$$,.2.&..&.:.(*"&&.*(ÿ
,ÿ
(ÿ
,ÿ
$ ÿÿ
($ÿÿ
$ ÿÿ
($ÿÿ
 ÿ
$ÿ
 ÿ
$ÿ
$ÿ
r§   c                
   C   s,  t td ttƒtttd ƒfks$J ‚t td ttƒtttd ƒfksHJ ‚t td d dtƒttdƒfkslJ ‚tt ttƒttƒttttt	dt
 t ttƒ  tttƒƒ ƒtjƒfƒs¸J ‚t ttƒttƒttttƒƒfksÜJ ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t ttƒdtƒttdƒfks(J ‚d S )	Nr–   rš   r   r—   c                   S   s   t dttƒS ©Nrš   )r^   r‚   r   r‡   r‡   r‡   rˆ   r™   £   rŠ   z%test_invert_complex.<locals>.<lambda>c                   S   s   t tttƒS r„   ©r_   r   r‡   r‡   r‡   rˆ   r™   ¤   rŠ   c                   S   s   t ttdƒS r¨   r©   r‡   r‡   r‡   rˆ   r™   ¥   rŠ   )r_   r   r‚   rF   r…   r   rJ   r   r|   r	   r   r   r   r   r   r¥   rP   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u s(J ‚t td tdƒdu s@J ‚t tttƒdu sTJ ‚t dttƒdu shJ ‚d S )Nrš   r—   r    Fr   T)rY   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 J ‚t dt d ttjƒtdƒksBJ ‚d S )Nr   r›   rš   )r`   r   r   r¡   r¤   rF   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˜J ‚d S )Nr—   é   é   )r   r‚   rƒ   r   rc   Úlen)rt   Ú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ŽJ ‚qŽd S )Nzx, y, zr—   c                 3   s   | ]}|  ˆ ¡ ¡ V  qd S r„   )ÚsubsrL   )r†   Ú_©rr   r‡   rˆ   r‰   Ð   rŠ   z#test_issue_18449.<locals>.<genexpr>)r   r   r   )r   r   rc   r   )r   r‚   rƒ   rt   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:J ‚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¾J ‚d S )Nr—   rš   é   é   )r   r&   r`   r   r¡   rF   r¢   ©rt   r‡   r‡   rˆ   Útest_issue_21047Ú   s     48ÿr¾   c                   C   sî  t tttƒtƒdu sJ ‚t tttƒd tƒdu s4J ‚t tttƒttƒ tƒdu sTJ ‚t tttƒttƒ t tƒdu sxJ ‚t tttƒttƒ ttƒ tƒdu s J ‚t tttƒttt ƒ ttƒ tƒdu sÌJ ‚t tttƒttt ƒ ttƒ tƒdu søJ ‚t ttttƒ d tƒdu sJ ‚t tttƒd ttƒ d tƒdu sDJ ‚t tttƒt tƒdu sbJ ‚t tttd ƒtƒdu s€J ‚t tttd ƒttƒ tƒdu s¦J ‚t tttƒttƒ tƒdu sÈJ ‚t ttttƒƒttƒ tƒdu sîJ ‚t tttƒtƒdu sJ ‚t tttƒd tƒdu s&J ‚t tttƒttƒ tƒdu sHJ ‚t tttƒttƒ t tƒdu snJ ‚t tttƒttƒ ttƒ tƒdu s˜J ‚t tttƒttt ƒ ttƒ tƒdu sÆJ ‚t tttƒttt ƒ ttƒ tƒdu sôJ ‚t ttttƒ d tƒdu sJ ‚t tttƒd ttƒ d tƒdu s@J ‚t tttƒt tƒdu s^J ‚t tttd ƒtƒdu s|J ‚t tttd ƒttƒ tƒdu s¢J ‚t tttƒttƒ tƒdu sÄJ ‚t ttttƒƒttƒ tƒdu sêJ ‚d S )NTrš   r—   F)	r]   r*   r7   r   r6   ro   r    r"   r!   r‡   r‡   r‡   rˆ   Útest_is_function_class_equationã   s   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿr¿   c                      sÔ   t tdd„ ƒ tddd‰ tˆ dƒtjks.J ‚tˆ d dƒtˆ ƒksHJ ‚tˆ tƒtjks\J ‚tˆ ˆ d ƒtjkstJ ‚t t‡ fdd„ƒ tˆ tƒtjksšJ ‚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„   )rX   r‚   r‡   r‡   r‡   rˆ   r™     rŠ   z$test_garbage_input.<locals>.<lambda>r   Tr‘   rš   r—   c                      s   t ˆ gˆ ƒS r„   )rZ   r‡   r˜   r‡   rˆ   r™   &  rŠ   c                      s   t ˆ tfˆ ƒS r„   )r`   r‚   r‡   r˜   r‡   rˆ   r™   )  rŠ   c                      s   t ˆ d tjƒS r¨   )r`   r   r¡   r‡   r˜   r‡   rˆ   r™   *  rŠ   c                      s   t ˆ d ˆ dƒS ©Nrš   r—   )r`   r‡   r˜   r‡   rˆ   r™   +  rŠ   )	rP   r£   r   rX   r   r¤   rF   r   rZ   r‡   r‡   r˜   rˆ   Útest_garbage_input  s    rÁ   c                  C   sÞ   t tt t ttƒd  tƒttdƒhtt t htj	ƒƒksBJ ‚t
ddd} t
ddd}t | t | ttƒd  tƒt| |  tdƒƒksJ ‚t dt d dttƒ  tƒttd	ƒƒks¾J ‚t tttƒ tƒtju sÚJ ‚d S )
Nr–   ÚanzT)ZnonzeroÚbbr‘   r—   é   éüÿÿÿ)rX   ro   r   rp   r   rI   r   rG   r   r¡   r   rF   r¤   )rÂ   rÃ   r‡   r‡   rˆ   Útest_solve_mul.  s    ÿÿ.rÆ   c                   C   sè   t ttƒd tƒttdƒƒks"J ‚t ttƒd tƒttdƒƒksDJ ‚t dtd  tƒtƒ ks`J ‚t ddt  tƒtƒ ks|J ‚t ttttt ƒ  tƒtt	j
ttttt ƒ ƒƒks¶J ‚t dt d tƒtdtdƒtdƒ  ƒksäJ ‚d S )Nr–   r—   é
   rš   r¼   )rX   r   r   rF   r   r‚   rp   ro   rG   r   r¡   r‡   r‡   r‡   rˆ   Útest_solve_invert9  s    ""ÿ
rÈ   c                   C   s”   t ttƒtj tƒtttjƒƒks&J ‚t ttƒd tƒttdƒƒksHJ ‚t ttƒtj tƒtt	tjƒƒksnJ ‚t t	tƒd tƒttdƒƒksJ ‚d S ©Nr—   )
rX   r8   r   r   r¢   rF   r;   r9   r   r:   r‡   r‡   r‡   rˆ   Útest_errorinversesG  s    ÿ
ÿÿrÊ   c                  C   sÚ  t ddd} t ddd}td|  d | ƒttddƒƒks<J ‚t| d d | ƒttj tjƒksbJ ‚t| |d  | ƒt|d ƒks„J ‚t| d d|   d	 | ƒtd
dtj  td	ƒd
dtj  ƒksÆJ ‚tt| ƒd | ƒtdƒksäJ ‚tt| ƒd | ƒtd	ƒksJ ‚t| tdd	ƒ d | ƒtdƒks*J ‚t| tddƒ d | ƒtdƒksPJ ‚tt| d | d  d | ƒƒdksxJ ‚ttd
| d  d	| d   d|   d | ƒƒdks°J ‚t| d | d	  t	 | ƒtj
u sÖJ ‚d S )Nr   Tr‘   r‚   r–   r—   rš   é   r­   éþÿÿÿé   é   r¼   r»   r   )r   rX   rF   r
   r   r   r¢   r&   r¯   r	   r¤   rž   r‡   r‡   rˆ   Útest_solve_polynomialQ  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>J ‚q>tttt d dt d   d t ƒƒd d	d
tt d dt d   d dƒ ¡ ks¦J ‚ttt d dt   d t ƒƒ}tdd„ |D ƒƒrât|ƒdksæJ ‚t d dt d   dt d   dt   d } tt| t ƒƒ}|D ]}|jtks$J ‚q$t d dt d   dt d   t	ddƒ }t|t ƒt
t|d dd ¡ Ž ksŽJ ‚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sJJ ‚d S )Nr¼   rË   r–   r—   rÇ   r®   é   r   F)Úexponentr»   c                 s   s   | ]}t |tƒV  qd S r„   )Ú
isinstancer@   ©r†   rw   r‡   r‡   rˆ   r‰   x  rŠ   z&test_return_root_of.<locals>.<genexpr>r­   ZZZ©Údomainrš   r    )r   rŒ   rZ   Úfuncr@   r   r|   rŽ   r¯   r
   rF   r?   Z	all_roots)rt   r“   Úrootr³   Úeqr‡   r‡   rˆ   Útest_return_root_ofg  s:    ,	&ÿ ÿ",*ÿ
(ûÿrÙ   c                   C   sÞ   t tdt d ƒd t tƒttj tdƒƒks4J ‚t ttd ƒt d tƒtdƒksZJ ‚t ttd ƒd tƒtdƒks|J ‚t ttƒd d tƒtdƒksžJ ‚t ttd	 ƒtƒtd
ƒks¼J ‚t ttd ƒtƒtdƒksÚJ ‚d S )Nr¼   r»   r—   rš   rÐ   rÇ   rÎ   é1   r–   r   )rX   r&   r   rF   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sTJ ‚ttˆd
 ƒd tdˆ ƒ ˆƒtdƒks‚J ‚ttdˆ tˆd d ƒ ƒd
 ˆƒtdƒks´J ‚ˆd ˆd dˆd   ˆ tddƒ  ‰ tˆ ˆƒttddƒtddƒƒksJ ‚tdˆ d ƒtˆd ƒ tˆd ƒ ‰ tˆ ˆƒtdƒksDJ ‚tˆd ƒtdˆ d ƒ dtˆd ƒ  ‰ tˆ ˆƒtdƒksˆJ ‚tˆƒtˆd
 ƒ d ‰ tˆ ˆƒtdƒks¸J ‚tˆd ƒtˆƒ d ‰ tˆ ˆƒtdƒksèJ ‚tdˆd  d
 ƒdˆ  ‰ tˆ ˆƒttdƒ tdƒƒks(J ‚tdˆd  d ƒdˆ d  ‰ tˆ ˆƒtdƒks`J ‚ttˆd ƒtˆƒ d ˆƒtƒ ksŠJ ‚dˆ d tddƒ d ‰ tˆ ˆƒtdƒks¼J ‚ttˆƒttˆƒƒ d ˆƒttddƒtdƒd  d ƒksþJ ‚tˆƒtˆd ƒ ttˆƒƒ ‰ tˆ ˆƒtƒ ks4J ‚ˆd d tˆƒd d  ‰ tˆ ˆƒtddƒksjJ ‚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J ‚ttˆƒˆtddƒ  ˆtddƒ  ˆƒtdƒks@J ‚tˆtˆd d ƒ ˆƒtdƒkshJ ‚ˆ| d  | d td| d  ƒ  ‰ tˆ ˆƒt| d ƒks¨J ‚tddˆ tddƒ  d ˆƒttddƒƒksÜJ ‚d S )Nr   Tr‘   r‚   r—   rš   r­   r¼   é   rÐ   r–   éúÿÿÿé   r    é	   r   é   rÍ   rÄ   rÅ   r»   z¹-1484/375 - 4*(-1/2 + sqrt(3)*I/2)*(-12459439/52734375 +
    114*sqrt(12657)/78125)**(1/3) - 172564/(140625*(-1/2 +
    sqrt(3)*I/2)*(-12459439/52734375 + 114*sqrt(12657)/78125)**(1/3))c                 3   s&   | ]}t ˆ  ˆ|¡ ¡ ƒd k V  qdS )g»½×Ùß|Û=N)Úabsrµ   r|   rÓ   ©rØ   r   r‡   rˆ   r‰   Ï  rŠ   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>Ñ  rŠ   z'test_solveset_sqrt_2.<locals>.<setcomp>c                 S   s   h | ]}|j d d’qS rã   rä   rÓ   r‡   r‡   rˆ   rå   Ò  rŠ   i´~ûÿi©æ  )r   rX   r&   rF   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sBJ ‚d S )Nr–   r—   rš   )r   r
   rX   rF   ©rØ   r‡   r‡   rˆ   Útest_solve_sqrt_failá  s    &rë   c                  C   sB  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}|j
d t|Ž ks:J ‚|j
d t| ttdƒ|  td| d  ƒ | d tdƒtd| d  ƒ d   dƒt|Ž ƒksœJ ‚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>J ‚d S )NÚRr—   rš   r¼   r–   r­   rÇ   éo   éû   é(   r    rÎ   rß   é   r   rÄ   )r   r&   rZ   r
   r2   r0   r   r	   r6   r   Ú_argsrF   rB   r   r{   r}   r   r¢   r¡   rX   )rì   rØ   r³   ÚfsetZcsetÚunsolved_objectr‡   r‡   rˆ   Útest_solve_sqrt_3é  sŒ    @
4(Lÿ&þþ*&ÿLþýÿL&ÿ&ÿþN&ÿ&þý
Dý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`J ‚t ttdtt    tƒttt d t ƒtdt ƒ ksžJ ‚t ttt tt   tƒtt t tt  ƒtt ƒ ksÜJ ‚d S )Nr—   rš   r    )rZ   r   ro   rF   r&   r‚   rp   r‡   r‡   r‡   rˆ   Ú$test_solve_polynomial_symbolic_param  s     ÿÿÿÿrõ   c                   C   sÀ   t dt d tƒttj ƒks"J ‚t dttƒ d tƒtdƒksDJ ‚t tddt   tƒtdƒksfJ ‚t dt td  d tƒtdƒksŒJ ‚t td dt   t¡tƒttjtdƒƒks¼J ‚d S )Nrš   r   r¼   r—   rÐ   é   )rX   r   rF   r   r   r   r   ÚZeror‡   r‡   r‡   rˆ   Útest_solve_rational  s    """&ÿrø   c                   C   s    t tdƒd tƒtju sJ ‚d S r¨   )rX   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u sJ ‚t tt tƒtju s2J ‚t tt t tƒtju sNJ ‚tdtƒtju sbJ ‚tttƒtƒtju szJ ‚ttd d tƒtju s–J ‚tdt ttƒ tƒtju s¶J ‚tdt tƒtju sÎJ ‚tdt  dt d  ddt   tƒtju sJ ‚d S )Nrš   r­   r—   éýÿÿÿ)	r`   r   r   r   r¤   rX   r   ro   r&   r‡   r‡   r‡   rˆ   Útest_no_sol(  s     &ÿrû   c                   C   sj   t dtƒtjksJ ‚tdttddƒƒtddƒks4J ‚t td  dt  td d  d tƒtjksfJ ‚d S )Nr   rš   r—   )rX   r   r   r¡   r`   rH   r‡   r‡   r‡   rˆ   Útest_sol_zero_real5  s     rü   c                   C   sP   t ttd  d d tƒtju s$J ‚t td ddtd    tƒtju sLJ ‚d S )Nrš   r–   rÌ   )rX   r   r   r¤   r‡   r‡   r‡   rˆ   Ú test_no_sol_rational_extragenous;  s    $rý   c                   C   s¸   t ttƒd tƒtdƒksJ ‚t ttƒd tƒtdƒks<J ‚t ttddƒ d tƒtdƒks`J ‚t ttddƒ d tƒtdƒks„J ‚t tttjd  d  tƒttjtdƒƒks´J ‚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)rX   r&   r   rF   r
   r   r   r÷   r‡   r‡   r‡   rˆ   Útest_solve_polynomial_cv_1a@  s    $$ÿrþ   c                  C   s|   t ddd} t ddd}t| |d  |d td|d  ƒ  | ƒt|d ƒksRJ ‚td|  | d  d | ƒtdƒksxJ ‚dS )	z)Test solveset_real for rational functionsr   Tr‘   r‚   r–   r—   rš   N)r   rX   r&   rF   rž   r‡   r‡   rˆ   Útest_solveset_real_rationalM  s    (
ÿrÿ   c                   C   s6   t ttd td  ƒtƒttdƒtdƒ ƒks2J ‚d S rÀ   )rX   r   r   rF   r&   r‡   r‡   r‡   rˆ   Útest_solveset_real_logW  s    ÿr   c                   C   s<   t ddtd  dt   d tƒttddƒtjƒks8J ‚d S )Nr­   r—   rÄ   rú   )rX   r   rF   r
   r   r¢   r‡   r‡   r‡   rˆ   Útest_poly_gens\  s     ÿr  c                  C   s\  t dƒ} ttdd„ ƒ tttƒ|  ttjƒ t	tt
| tdtƒƒ|  | hƒ¡sPJ ‚tttƒd tƒtddƒkspJ ‚tttƒd tƒtju sŒJ ‚tttd ƒdttd ƒ  tƒtdd	ƒks¼J ‚tdttƒ ttd ƒ tƒtd
tddƒƒksîJ ‚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ŽJ ‚tdtdi}| |¡}| |¡D ]}| t|¡r®J ‚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ƒƒƒƒsXJ ‚d S )Nr|   c                   S   s   t ttƒd tƒS r¨   ©r`   r   r   r‡   r‡   r‡   rˆ   r™   c  rŠ   z test_solve_abs.<locals>.<lambda>r   r—   rÌ   r–   rš   rß   r    rÔ   )r   rP   r£   r`   r   r   r   r¡   r   rB   rA   rH   r   rX   rF   r¤   r
   r<   rp   ro   r^   rµ   r…   r   r6   rI   rG   rC   r   r   r¥   )r|   r³   rØ   ZrepsZeqabÚsir‡   r‡   rˆ   Útest_solve_absa  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	ƒƒsJJ ‚t tt
tƒd dt
tƒ  d tƒtttdt t ƒtj	ƒƒsŒJ ‚d S ©Nr—   rš   )r…   r`   r6   r   rC   r   r|   r   r   r¥   r2   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s2J ‚d S )Nrš   r¼   r–   r    r—   )rX   r   r   r
   rH   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@J ‚d S )Nrš   r   r—   )rá   r   rX   rI   rH   Úopenrê   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sVJ ‚tt| d |d  ƒd | ƒtjks~J ‚d S )Nza bTr‘   r—   r–   rß   )r   rX   r&   rF   r   r¤   ©ro   rp   r‡   r‡   rˆ   Útest_real_imag_splitting  s    "ÿÿr  c                   C   s.   t dt ddt   tƒtdt ƒks*J ‚d S rÀ   )rX   r   rV   rF   r‡   r‡   r‡   rˆ   Ú
test_units˜  s    r  c                  C   sœ   t ddd} tttƒ|  tƒtt| ƒƒks.J ‚tttƒtt ƒ d tƒtttdƒ d ƒttdƒd ƒƒksrJ ‚tttƒtt ƒ |  tƒtjks˜J ‚d S )Nr‚   Tr•   r­   r–   r—   )	r   rX   r   r   rF   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,J ‚d S ©Nr—   r–   )rX   r1   r   r   rF   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sDJ ‚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 J ‚t td d tdkfd	ƒ}t|ttj	d
t
tdƒtt dddƒƒksèJ ‚tt td tdkftdfƒt ttj	ƒtt dƒks"J ‚tt td tttƒftdfƒtƒtdƒksRJ ‚t dtdkfd	ƒ}t|dkttj	ƒt dt¡ksˆJ ‚ddlm} |ƒ }t|ttddƒd
tddƒks¾J ‚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$J ‚t|ƒttƒks:J ‚d S )Nr—   Tr–   r    r¼   r   r‚   r•   ©r   TrÔ   rš   rÇ   )ÚBooleanTruerú   )r)   r   r   ÚsetrX   rF   r   r`   r   r¡   rI   rH   r   r	   r   r  Úsympy.logic.boolalgr  r   r   r   r6   )rØ   Zabsxm3r‚   rt   ru   r  r‡   r‡   rˆ   Útest_piecewise_solvesetª  s2    $ þ&."ÿ
þ
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€J ‚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
J ‚t tdt  d tƒtt
jt	tdƒ d  t
jt	tdƒ d  ƒksTJ ‚d S )Nr—   rÅ   r–   rš   )rZ   ro   r   rp   rq   rF   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u sJ ‚d S ©Nr   )rZ   r   r   Ú	Complexesr‡   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,J ‚t ttd  td tdtd  ƒ  tƒttd ƒksfJ ‚t td  t tƒttdƒ d tdƒt d  tdƒd tdƒt d  ƒksºJ ‚d S ©Nrš   r–   r—   )rZ   r   r	   rF   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	ƒsBJ ‚qBtd d
t  d } t| tƒ}|D ]&}|  t| ¡ ¡ ¡ }t|d	ƒsŒJ ‚qŒd S )NzThis test is too slowr¼   én   r–   é7   r—   i	  iÓ  r   rË   rà   )rQ   r   rZ   rµ   r|   Útn)rt   r“   r×   Úresr‡   r‡   rˆ   Útest_solve_quinticsè  s    ,

r   c                	   C   sÈ   t tttƒd tƒttttd t t ƒt	j
ƒƒs6J ‚t tttƒt tƒttttdt t td   ƒt	j
ƒƒstJ ‚tdttƒ tƒt	jksJ ‚t tttƒ t¡tƒttttt t ƒt	j
ƒƒsÄJ ‚d S rÀ   )r…   rZ   r   r   rJ   r   r|   r	   r   r   r¥   r¤   r!   Úrewriter‡   r‡   r‡   rˆ   Útest_solveset_complex_exp÷  s    ÿ$ÿÿr"  c                   C   sH  t tdt dƒttjƒtdƒks$J ‚t tdt  dƒttjƒtjksHJ ‚t tdt dƒttjƒtjksjJ ‚t tdtd  dƒttjƒtd	ƒks’J ‚t tdtd	  d
ƒttjƒtjks¸J ‚t tdtd	  dƒttjƒtdƒksàJ ‚t tdt tƒttjƒttjtt	tƒt	dƒ ƒƒksJ ‚t
ddt  d dtƒttdƒfksDJ ‚d S )NrÌ   r­   r—   rú   rÎ   éûÿÿÿrš   iq  r–   éðÿÿÿlûÿÿÿx¿pÂEìA é*   rÍ   r   )r`   r   r   r   r¡   rF   r¤   r‚   rG   r   r^   r‡   r‡   r‡   rˆ   Útest_solveset_real_exp  s    $$"(&(:r&  c                   C   sh   t ttƒtƒtdƒksJ ‚t dttdtd   ƒ tƒttt t ƒ d tt t ƒd ƒksdJ ‚d S )Nrš   r­   r—   )rZ   r   r   rF   ro   r&   r   r‡   r‡   r‡   rˆ   Útest_solve_complex_log  s    &ÿr'  c                   C   s°   t tdt d ƒd t tƒttj tdƒƒks4J ‚t tdt d ƒddt   t tƒttdƒ ddt  ƒksvJ ‚t dt dtttƒ   tƒttjdtd  ƒks¬J ‚d S )Nr¼   r»   r—   r–   r­   rš   )	rZ   r&   r   rF   r   r   r	   ro   r÷   r‡   r‡   r‡   rˆ   Útest_solve_complex_sqrt  s    ÿ$ÿÿr(  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ƒ ƒsRJ ‚d S rÉ   )rZ   r7   r   r!  r   r…   rJ   r   r|   r   r   r¥   )r“   r‡   r‡   rˆ   Útest_solveset_complex_tan  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
ƒƒƒsNJ ‚t tttƒd tƒtttdt t td  ƒt	j
ƒƒsˆJ ‚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èJ ‚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
ƒƒƒsXJ ‚tttƒd ttƒd  tƒt	jks‚J ‚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êJ ‚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|J ‚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ÞJ ‚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’J ‚t ttdt ƒtdt ƒ d tƒttttt ƒt	j
ƒƒsÒJ ‚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
ƒƒƒsjJ ‚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
ƒƒƒslJ ‚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J ‚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èJ ‚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
ƒƒƒsNJ ‚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
ƒƒƒsNJ ‚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ÂJ ‚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$J ‚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…   rX   r6   r   rI   rJ   r   r|   r   r   r¥   r2   r
   r¤   rZ   r¢   r`   r‚   ro   r¡   rC   rG   r	   r   r   r   r7   r0   r&   r5   rL   r3   r‡   r‡   r‡   rˆ   Útest_solve_trig"  s   ÿÿ ÿ"&ÿÿ(&ÿÿ
*( ÿÿ
  ÿ
þþþÿÿ
2&ÿ
 (
ÿÿÿ(
ÿÿÿý"ÿ
88þ$$$$$$ú<<þ&ú$$þ$ $$$$ ú
"*
ÿÿÿ
ÿÿÿþ
þ(
ÿÿÿ
ÿÿÿþýýýÿ

&þr3  c                  C   s,	  t dƒ} tttƒttƒ tƒtjks(J ‚tttƒttƒ tƒttt	ttƒttƒ dƒtj
ƒksbJ ‚tttƒttƒ tƒttttdƒd ƒƒƒks”J ‚tdtdt ƒ d tƒttdƒ d tdƒd ƒksÎJ ‚tttd ƒd tƒttdtdƒ tdƒ ƒƒksJ ‚ttdt ƒdttƒ  d tƒttdtdƒ ƒtdtdƒ ƒƒksPJ ‚tttƒtdt ƒ ttƒ d tƒtttjtdƒd  ƒtdtdƒ ƒƒks¤J ‚tttƒttƒ d tƒttdtd	ƒ ƒd ƒksÜJ ‚tttƒttƒ d tƒtttdƒd ttdƒ d tdƒ ƒ ƒƒks*J ‚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šJ ‚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’J ‚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J ‚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ƒƒƒs4J ‚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ÞJ ‚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ƒƒƒsdJ ‚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ÒJ ‚tttƒttjƒtdƒksòJ ‚ttttƒttj
ƒttt| td|  t t  ƒtjƒtt| d|  t t ƒtjƒƒƒsNJ ‚ttttt ƒttjƒttt| d|  t t t ƒtjƒtt| d|  ƒtjƒƒƒs¦J ‚ttttt ƒtƒttt| d|  t t t ƒtjƒtt| d|  ƒtjƒƒƒsúJ ‚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ƒƒƒszJ ‚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ÜJ ‚ttdt ƒtdt ƒ ƒ #ttt	tdt ƒtdt ƒ dƒtj
ƒ¡	s(J ‚d S )Nr|   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¤   r2   rB   r   r  rX   r$   rF   r   r&   r   r%   r¢   r"   r…   rZ   r	   rI   rC   r   r   r¥   r
   r0   r¡   r6   rL   r3   r   r   rä   r‡   r‡   rˆ   Útest_solve_hyperbolic€  sª     ÿ
ÿ
ÿ
ÿ"ÿ&"ÿÿ(ÿ($þ0848ü0(þ((,,((ú@@þ",,þ((þ  þ þ þ$((þ*(ÿÿ
&ÿr4  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ƒƒƒƒshJ ‚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äJ ‚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J ‚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¨J ‚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ƒƒƒƒsbJ ‚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ÐJ ‚d S )Nr   r—   r–   r­   r¼   r»   rš   ÚarTr‘   )r…   r`   r6   ro   r   rB   r   rI   rC   r   r|   r   r   r¥   r#   r	   r&   rp   r2   rL   r3   r   r   r¡   rF   )r5  r‡   r‡   rˆ   Útest_solve_trig_hyp_symbolicÒ  sB      þ ((þ*&ÿÿ<@<ýþ
0((þ<<þÿ
"4ÿr6  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ƒƒƒsRJ ‚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ƒƒƒƒsXJ ‚d S rÀ   )r…   r`   r!   r   r"   rI   rC   r   r|   r	   r   r   r&   r   r¢   r¥   r0   r!  r   rE   )Úf1Úf2r‡   r‡   rˆ   Útest_issue_9616ñ  sR    @6ÿÿF6ÿÿûBÿ$þ8ÿÿ$þ8ÿÿ$þ@$þör9  c                   C   s<   dt ttƒt tƒvsJ ‚dtttƒd t tƒvs8J ‚d S ©Nr   rš   )rX   r6   r   rZ   r   r‡   r‡   r‡   rˆ   Útest_solve_invalid_sol
  s    r;  c                  C   s¢   t dƒ} ttttƒtƒtt| | t ƒtj	ƒƒs2J ‚ttt
tƒtƒtt| | t td  ƒtj	ƒƒsdJ ‚ttt
tƒttƒ tƒtt| | t td  ƒtj	ƒƒsžJ ‚d S )Nr|   r—   r­   )r   r…   rX   r6   r   rJ   r   r   r   r¥   r2   rä   r‡   r‡   rˆ   Útest_solve_trig_simplified  s    ÿÿÿr<  c                  C   sÔ  t tttƒ d tƒttdƒƒks&J ‚t ttƒt tƒttdƒ ƒksJJ ‚t tdt  tƒtttdƒƒ tdƒ ƒkszJ ‚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àJ ‚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sdJ ‚t | ¡ tƒ|ks|J ‚t dt d dtdd	t  ƒ  tƒttddƒtdttddƒƒ d ƒd	  ƒksÔJ ‚t dt d tdt d ƒ tƒttddƒtdttddƒƒ d ƒd  ƒks(J ‚t dt tdt ƒ tƒtttddƒƒd ƒks^J ‚t tt d ƒttttdƒƒƒƒksˆJ ‚tdƒ}t | t dt ttƒ  tƒtt|d ƒƒksÆJ ‚tddd}t |t ttd ƒ tƒtdt| d ƒ ƒksJ ‚t |t ttd ƒ  	t¡tƒtdtt
dƒt
|ƒ d ƒ ƒksNJ ‚t ttd ƒttd ƒ d tƒtju s|J ‚t td dt  d  tttƒdt  ¡tƒttdtj ƒd ƒksÆJ ‚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s6J ‚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¦J ‚t tttƒ dt  d tƒttdttdƒ ƒ ƒƒksäJ ‚tttƒ d  ttttƒ ¡}t |tƒttdttdƒ ƒ ƒƒks.J ‚t dt|dt d  ƒ |dt d   tƒtt|d ƒttddƒƒ dt|ƒ   ƒksŽJ ‚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¬J ‚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s2J ‚t |t ttd ƒ  	td¡tƒtdtdtddƒ |tddƒ  d ƒ ƒks†J ‚t td dt  tƒtdtdƒ ttdƒ d ƒ ƒksÄJ ‚t dttƒ ttƒd  ƒttdttdƒ d ƒ tdƒ ƒƒksJ ‚t td dt  tƒt td  dt  tƒks@J ‚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¢J ‚t tdt ƒt ƒttttƒ d ƒksÐJ ‚d S )Nrš   r—   r–   r¼   r#  i Øÿÿr­   r»   rÐ   rß   ia	  r    iëÿÿÿiíÿÿÿro   Tr‘   rú   Úpr•   rp   )rX   r   r   rF   r   r   r
   Úexpandr   r   r&   r"   r   r¤   rµ   ZExp1r   r	   r2   r+   r‚   )ræ   rØ   Úresultro   r=  rp   r‡   r‡   rˆ   Útest_solve_lambert  s¶    &$ÿ",ÿ(
&ÿ
ÿÿ$*ÿ
 *ÿ
ÿ
*6ÿ
ÿ
.,ÿ
42ÿ
,:ÿ
ÿ
 ÿ
,*ÿ
,VV,ýÿ
@
(ÿ"&ÿ ÿ
 ÿÿ
þÿr@  c                  C   sN   t ddƒ} tt|  | t  tƒt| |  tt| ƒ |  ƒ t| ƒ ƒksJJ ‚d S )Nr»   r¼   )r
   rX   r   rF   r   r   )ro   r‡   r‡   rˆ   Útest_other_lamberts  s    
 ÿrA  c                  C   sj  t dƒ} ttdd„ ƒ ttdƒtjks*J ‚t| dƒd t d | dƒƒtt	t d ƒ t	t d ƒƒkslJ ‚t| dƒd d | dƒtj
ƒtddƒks˜J ‚t| dƒd d | dƒƒtt tƒksÂJ ‚ttd dƒttƒksÜJ ‚tttƒttƒ ttƒƒtttƒƒksJ ‚tdtj
dtj
ks"J ‚tdƒtjks6J ‚td	tj
dtj
ksPJ ‚td
tj
dtjksjJ ‚tttƒd tj
dtdƒksŽJ ‚tttƒd ttj
ƒtdƒks²J ‚ttttƒdƒttj
ƒtdƒksØJ ‚tttƒd ttƒtj
ƒtdƒks J ‚tdtƒ}t|d |tj
ƒtdƒks*J ‚ttd dkttj
ƒtdtƒksPJ ‚tttƒd dkttj
ƒtdtƒkszJ ‚ttttƒd tƒtttdt t t ƒtjƒƒs²J ‚tttttƒdƒtƒtttdt t t ƒtjƒƒsìJ ‚ttd | dƒ d tƒt	| dƒ d ƒ t	| dƒ d ƒhks2J ‚ttttƒƒdktt dt¡dt dt¡ksfJ ‚d S )Nrt   c                   S   s   t tt ƒS r„   )r`   r   r‚   r‡   r‡   r‡   rˆ   r™   }  rŠ   ztest_solveset.<locals>.<lambda>rš   r—   r    r   rÔ   TFÚA)r   rP   r£   r`   r   r   r¤   r‚   rF   r&   r¡   r	   r6   r2   r   r   rM   rH   r   r…   rJ   r   r|   r   r¥   r0   r   r  )rt   rB  r‡   r‡   rˆ   Útest_solvesetz  s8    ÿ,*,$$&(
 &*8*ÿFrC  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’J ‚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ƒƒƒƒsfJ ‚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ØJ ‚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|J ‚d S )Nz
k1, k2, k3r¼   r—   )r   r…   r`   r   r   rJ   r   r|   r	   r   r   r   r   rK   r   r¥   rr   ro   rp   rq   rC   )Úk1Zk2Zk3r‡   r‡   rˆ   Útest_multi_expŸ  sb    Xÿÿ" vÿþÿ
&"N4ÿ.ÿ4ÿÿÿüÿ
*$\4ÿ.ÿ4ÿÿzÿ~þþÿúÿrE  c                  C   s´  ddl m}  ddlm} | td d gtgtjgƒtddƒksBJ ‚| tt td gttg||gƒtdƒksnJ ‚| tt td gttg||gƒtd	ƒksšJ ‚| tt tt d gttg||gƒttdƒd tdƒ d fƒksàJ ‚| td td gttg||gƒtd
ƒksJ ‚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|ƒƒƒƒsnJ ‚| tt tt d gttg||gƒtjksžJ ‚| tt tt td gttg||gƒtjksÐJ ‚| tt tt td gttg||gƒtjksJ ‚| 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`J ‚ddlm} | td td  d tt gttg||gƒtdd	ƒks¨J ‚| td d tgttg||gƒtddƒksØJ ‚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„J ‚| tt|ƒ d tt|ƒ g|tgtdtƒtddƒgƒtdtdfƒksÐJ ‚| tt|ƒ d tt|ƒ gt|gtddƒtdtƒgƒtdƒksJ ‚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°J ‚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.solvesetrF  Z
sympy.setsr¡   r   r   rF   r‚   r…   rI   rC   r   rK   r¤   rƒ   r¢   Ú	sympy.abcrJ  r   r~   r2   r6   rH   r   )rF  r¡   rJ  r‡   r‡   rˆ   Útest__solveset_multi¼  s\    *,,F.þ0228ÿÿ
<0$  ü"ÿÿ
"ÿÿ
$ÿ**þÿrM  c                	   C   s¤  t tttƒd ttƒd  dƒttjdtju s4J ‚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ˆJ ‚t	t tt
 tt
t ƒtt
 t ƒ  d dƒtƒtttdt t td  ƒtjƒƒsàJ ‚t tttƒ dkttjd tttttƒ dktjƒ¡sJ ‚t ttttƒƒtƒttjd tttt tttƒƒ dƒtjƒ¡sfJ ‚t tt t ttjƒ ttttt t dƒtjƒ¡s J ‚d S )Nr—   rš   rÔ   r   )r`   r   r6   r   r2   r   r¡   r   rB   r…   r	   r   rJ   r   r|   r   r¥   r   r‚   rƒ   r‡   r‡   r‡   rˆ   Útest_conditionsetë  s$    (ÿ&&ÿ0 ÿÿ
 ÿ
ÿrN  c                   C   s4   t tttƒtƒtƒtttttƒtƒtjƒks0J ‚dS )z? Checking equality of different representations of ConditionSetN)r`   r   r7   r   r‚   rB   r   r  r‡   r‡   r‡   rˆ   Útest_conditionset_equalityÿ  s    rO  c                   C   sz   t td t d ttdtƒƒtdƒks*J ‚t td d ttdtƒƒtdƒksPJ ‚t td d ttddƒƒtdƒksvJ ‚d S )	Nr—   r»   r   r–   rš   r­   rÍ   rÇ   ©r`   r   rH   r   rF   r‡   r‡   r‡   rˆ   Útest_solveset_domain  s    *&rQ  c                  C   sL   t ttƒttƒ ttjƒ} tttttƒttƒ dƒtjƒ}|  |¡sHJ ‚d S r  )	r`   r   r   r6   r   r¡   rB   r   r   )Úsolutionró   r‡   r‡   rˆ   Útest_improve_coverage  s     rS  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u sXJ ‚t|ttjƒtju spJ ‚d S )Nrš   r—   r­   )r   r   r`   r   r¡   r¤   )Úexpr1Úexpr2r‡   r‡   rˆ   Útest_issue_9522  s    *rV  c                   C   sê   t td d ttjƒg ksJ ‚t td d ttjƒdtjtdƒt d  tjtdƒt d  gksfJ ‚t ttƒttjƒdgks‚J ‚t t	tƒttjƒt
d t
tddƒ gks®J ‚t ttƒd ttjƒt
tddƒ gksØJ ‚ttdd„ ƒ d S )Nr—   rÇ   r–   rš   r    c                   S   s   t tttƒƒttjƒS r„   )rd   r6   r   r   r   r  r‡   r‡   r‡   rˆ   r™      rŠ   ztest_solvify.<locals>.<lambda>)rd   r   r   r¡   r  r¢   r&   r	   r   r2   r   r
   r6   rP   ÚNotImplementedErrorr‡   r‡   r‡   rˆ   Útest_solvify  s    *ÿ
,*rX  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²J ‚t|ttj	ƒd
dgksÌJ ‚t|ttj	ƒdgksäJ ‚t|ttj	ƒtgksüJ ‚d S )Nr   r    r—   rš   Téöÿÿÿr¼   r»   é÷ÿÿÿrÝ   )
r)   r   r   r   r   r   r6   rd   r   r¡   )Úp1Úp2Zp3Zp4r‡   r‡   rˆ   Útest_solvify_piecewise#  s    (*$$r]  c                  C   sX   t ddd} ttt| ƒƒ| tjƒdtgks.J ‚t dƒ} ttt| ƒƒ| tjƒd u sTJ ‚d S )Nr   Tr•   r   )r   rd   r6   r   r   r¡   r   r˜   r‡   r‡   rˆ   Útest_abs_invert_solvify0  s    "r^  c                     sB  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g d¢g d¢g d	¢gƒks´J ‚|tdgd
gdggƒksÐJ ‚t|t ttƒ\}}|tg d¢g d¢g d¢gƒksJ ‚|tdgdgd
ggƒks$J ‚tt 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ÆJ ‚|tt	gtgtggƒksäJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ ttdd„ ƒ tdt ƒtd
ggƒtdggƒfksPJ ‚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sªJ ‚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J ‚ttt d dƒt ƒtdggƒtdggƒfks>J ‚d S )Nr—   r–   rà   rš   r­   rÌ   )r—   rš   rÌ   )rš   r    r    )rš   rš   r–   r   )r–   r—   r    )r—   rÌ   r­   )rÌ   rš   rÌ   c                      s   t ˆ ƒS r„   )r[   r‡   ©Zeqns3r‡   rˆ   r™   L  rŠ   z*test_linear_eq_to_matrix.<locals>.<lambda>c                      s   t ˆ tttgƒS r„   ©r[   r   r‚   r‡   r_  r‡   rˆ   r™   N  rŠ   c                      s   t ˆ tdt tgƒS r¨   )r[   r   ro   r‚   r‡   r_  r‡   rˆ   r™   P  rŠ   c                   S   s   t tdt t dt ƒtgƒS r¨   )r[   r   r   r‡   r‡   r‡   rˆ   r™   R  rŠ   r    rÐ   r¼   r»   )r   r‚   rƒ   r   r[   ÚMatrixro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rP   r£   rn   )Zeqns1Zeqns2rB  ÚBr‡   r_  rˆ   Útest_linear_eq_to_matrix8  s>    6J"$^2( .ÿ*ÿÿ ÿÿ
ÿrc  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sTJ ‚d S )Nr—   r–   r­   r¼   )r[   r   ro   r   r‚   ra  r‡   r‡   r‡   rˆ   Útest_issue_16577a  s    ("ÿrd  c                   C   s"   t ttƒdtƒttjfksJ ‚d S r  )r^   r   r   r   r¤   r‡   r‡   r‡   rˆ   Útest_issue_10085f  s    re  c               	      s$  t dƒ\‰‰} }tg d¢g d¢g d¢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æJ ‚tˆgˆˆ| |f¢R Ž |ksJ ‚t|ˆˆ| |fƒ|ks$J ‚t|gˆˆ| |f¢R Ž |ksFJ ‚t dtd\‰‰} }t|ˆˆ| |ƒtdˆ d|  d ˆd| d |fƒks˜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„ƒ 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`J ‚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êJ ‚tg d¢g d¢g d¢gƒ‰ tg d¢ƒ‰tˆ ˆftt
t	fƒtju s0J ‚t dƒ\‰ ‰}}tdt | dt | d| gdt | dt | d| gdddt ||  gg d¢gƒ}t|ˆ ˆƒtdt||  fƒksÀJ ‚tg d ¢g d!¢gƒ}t|tttttƒttdtdtfƒksþJ ‚t d"ƒ\}	‰‰}
ttg d ¢ddddd|
ggƒƒt|	dˆ|
ˆfƒksFJ ‚t d#ƒ\}	‰‰}
ttg d ¢ddddd|
ggƒƒt|	dˆ|
ˆfƒksŽJ ‚t d$ƒ\}	‰‰}
ttg d ¢ddddd|
ggƒƒt|	dˆ|
ˆfƒksÖJ ‚t d%ƒ\}	‰}t|td&ƒƒt|	dˆd|fƒks
J ‚|	|d'< t d(ƒ|d'< tt|td&tdƒjƒd	ks@J ‚td)ƒ}t|tƒd g|tƒƒtd*ƒksnJ ‚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sæJ ‚ttttt
 ƒgtt
gƒtdfhksJ ‚ttdt dt t
 ƒgtt
gƒtdfhksBJ ‚ttt
t t
t t
 ƒgtt
gƒtdfhkstJ ‚ttttd  td t
 ƒgtt
gƒt
t
fhksªJ ‚tg tgƒtju sÂJ ‚tdgtgƒtfhksÞJ ‚ttgtt
gƒdt
fhksþJ ‚ttdgtt
gƒdt
fhks J ‚d S )/Nzx1, x2, x3, x4)rš   r—   rš   rš   rÐ   )rš   r—   r—   r    rà   )r—   r­   r   r»   r­   r    r—   rÐ   rà   r­   r»   rÌ   r–   r¼   zx:4)Úclsc                      s   t ˆ ƒS r„   ©r\   r‡   )ÚEqnsr‡   rˆ   r™     rŠ   ztest_linsolve.<locals>.<lambda>c                      s   t ˆ ƒS r„   rg  r‡   )Úx1r‡   rˆ   r™   €  rŠ   c                      s
   t ˆ ˆƒS r„   rg  r‡   )ri  Úx2r‡   rˆ   r™     rŠ   c                      s   t ˆ fˆˆƒS r„   rg  r‡   )rB  ri  rj  r‡   rˆ   r™   ‚  rŠ   c                      s   t ˆ ˆˆˆƒS r„   rg  r‡   )rB  rb  ri  rj  r‡   rˆ   r™   ƒ  rŠ   c                   S   s&   t tt d td t d gttgƒS )Nrš   r—   r–   )r\   r   r‚   r‡   r‡   r‡   rˆ   r™   †  rŠ   c                   S   s   t ttƒt tt gttgƒS r„   )r\   r2   r   r‚   r‡   r‡   r‡   rˆ   r™   ‡  rŠ   rš   ©rš   r—   r–   )r—   r­   r»   )r–   r»   rß   ©r   r   rš   z	A B J1 J2r   )r—   r   r   )r   rš   r   r   r   r   )r   r   r   rš   r   r   ztau0 tau1 tau2 _tau0ztau00 tau01 tau02 tau0ztau00 tau01 tau02 tau1z
x0, x2, x4r   ©r    r    Ú_x0rt   )r¼   )ÚmeterÚnewtonÚkilorÄ   é   iäÿÿÿ)r   ra  rF   r\   r   rP   r£   rn   r   rƒ   r‚   ro   rp   rq   rr   rs   ru   r   r¤   r	   rN   r¯   Úfree_symbolsr   Úsympy.physics.unitsro  rp  rq  r
   r   )Úx3Úx4ÚMZsystem1r³   Zsystem2ZJ1ZJ2Z	AugmatrixÚx0rn  rt   ro  rp  rq  ZkNr‡   )rB  rb  rh  ri  rj  rˆ   Útest_linsolvej  s     ,0ÿ("""ÿFF ü&*ÿ
ÿ
ÿ
ÿ
ÿÿ
&(
ÿ*226 ry  c                  C   s0   dd„ } d}| |ƒ\}}}t ||ƒ|ks,J ‚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   ÚextendrF   )r|   r¸   r¹   ÚsymsÚeqsr³   ÚxiÚyir‡   r‡   rˆ   Ú_mk_eqs_solÛ  s    z/test_linsolve_large_sparse.<locals>._mk_eqs_soliô  rg  )r€  r|   r}  r|  r³   r‡   r‡   rˆ   Útest_linsolve_large_sparseÖ  s    
r  c                  C   sr   t g d¢g d¢g d¢gƒ} t g d¢ƒ}t| |gtttfƒtdƒksFJ ‚t g d¢g d¢gƒ} t| ƒtdƒksnJ ‚d S )	N)rš   rš   r—   )r   rš   r—   rl  )r—   rš   r    )rš   r–   r    )rš   rš   rÐ   )rš   r    r–   )r¼   r—   )r>   r\   r   r‚   rƒ   rF   )rB  rb  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sVJ ‚tt
|ttjƒ|
ƒspJ ‚tt
|ttjƒt||	|
ƒƒs’J ‚tt
|ttjƒt||ƒƒs²J ‚t
|ttjƒtdƒksÎJ ‚t
|ttjƒtjksèJ ‚t
|ttjƒtjksJ ‚t
tttddƒƒtjks J ‚d S )	Nr|   r–   r»   r—   r-  rš   r   rÌ   )r   r   r   r6   r   rC   r   r   r   r¥   ra   r¡   rF   r…   rI   r¤   rH   )r|   r7  r8  Úf3Úf4Úf5Zf6Zf7Ús1Ús2Zs3Zs4Zs5r‡   r‡   rˆ   Útest_solve_decompositionó  s*    ,""(" rˆ  c                  C   s
  t g g ƒtjksJ ‚t g ttgƒtjks,J ‚ttt d g} t tgttgƒtdtfƒks\J ‚t | tgƒttd fƒkszJ ‚tttdt t	 t	d  ƒtj
ƒf}tt ttƒd gtgƒtt|ƒƒƒsÆJ ‚t td d gtgƒtddƒksêJ ‚tttfƒ}t tt dgttƒ|ksJ ‚t dtt gttƒ|ks2J ‚t tt tt gttƒ|ksTJ ‚t tdgttƒtdtfƒksvJ ‚tdƒ}t |tƒdg|tƒtƒtdtfƒks¨J ‚t |tƒdg|tƒ|tƒƒtd|tƒfƒksÚJ ‚tdtƒ}t |dg|tƒtdtfƒksJ ‚t td d gttƒgƒttjfƒks2J ‚t td d gttƒƒttjfƒks\J ‚t td d gdƒttd fƒks„J ‚t td d gtt ƒttjfƒks®J ‚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sJ ‚d S )
Nr¼   r   r—   rš   rH  rG  rt   rB  r–   )rc   r   r¤   r   r‚   rF   rC   r   r|   r   r¥   r…   r6   r   r   rM   r   r¢   )ÚsystemÚsolnrt   rB  r‡   r‡   rˆ   Útest_nonlinsolve_basic  s2     $($""*2
",*(*<ÿr‹  c                  C   s6   t ttft tfƒ} tttƒt gttƒ| ks2J ‚d S r„   )rF   r‚   rc   r   r   )rŠ  r‡   r‡   rˆ   Útest_nonlinsolve_abs+  s    rŒ  c                   C   s.   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  ©rc   r   r‡   r‡   r‡   rˆ   r™   1  rŠ   z2test_raise_exception_nonlinsolve.<locals>.<lambda>c                   S   s   t td d gƒS r  r  r‡   r‡   r‡   rˆ   r™   2  rŠ   c                   S   s.   t tt d d td td  d gttfƒS )Nr—   rß   g      è?)rc   r   r‚   r‡   r‡   r‡   rˆ   r™   3  rŠ   )rP   Ú
IndexErrorr£   rW  r‡   r‡   r‡   rˆ   Ú test_raise_exception_nonlinsolve0  s    r  c                  C   s|   t ttƒd ttƒd gtƒtjks(J ‚tttdt t	 t	d  ƒtj
ƒf} t| ƒ}tt ttƒd ttƒgtƒ|ƒsxJ ‚d S rÀ   )rc   r6   r   r2   r   r¤   rC   r   r|   r   r¥   rF   r…   )Úsoln1rŠ  r‡   r‡   rˆ   Útest_trig_system6  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¼J ‚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¶J ‚d S )Nr—   rš   r–   r»   r¼   )r   r‚   r   r6   rC   r   r|   r   r¥   rF   r…   rc   r&   rI   r
   )ÚsysZsoln_1Zsoln_2rŠ  Zsoln_xZsoln_yr‡   r‡   rˆ   Útest_trig_system_fail?  s&    $ÿÿ@"&ÿ"&ÿr“  c                  C   sp  t ddd\} }}}}}t| | | | |  g| |gƒtd|fƒksFJ ‚|d ||  || g}t|||gƒtd| | fƒks‚J ‚|| | | }|| ||  ||  ||  }|| | || |  || |  || |  }	|| | | d }
|||	|
g}d| | d| t|ƒtdƒ f}d| | d| t|ƒtdƒ f}t||ƒ}t|||||gƒ|kslJ ‚d S )	Nzx, y, a, b, c, dT)Zextended_realr   r—   ©r   r   rš   r    )r   rc   rF   )r   r‚   ro   rp   rq   rr   r‰  Úeq1Úeq2Úeq3Úeq4Úsol1Úsol2rŠ  r‡   r‡   rˆ   Ú%test_nonlinsolve_positive_dimensionalW  s    .$ 0""
r›  c                  C   s„  t ddd\} }t| d | d | d | g| |gƒtjks@J ‚| d |f}t| | d d | | d g| |gƒt|ƒks€J ‚| d |d  g}t| |f||fƒ}tt|ƒ |ft|ƒ|fƒ}|| }t|| |gƒ|ksàJ ‚| d |d  g}t|| f||fƒ}t|t|ƒ f|t|ƒfƒ}|| }t||| gƒ|ksBJ ‚| d | d | | d g}t|| |fƒt||| fƒks€J ‚d S )Núx, yTr‘   r—   r­   r–   )r   rc   r   r¤   rF   r   )r   r‚   r“   r‰  Ú	soln_realÚsoln_complexrŠ  r‡   r‡   rˆ   Útest_nonlinsolve_polysysk  s     02rŸ  c                  C   s4  t ddd\} }}}| | | |d  d g}|| |d  d | }| |f}t|| |gƒt|ƒksjJ ‚|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s0J ‚d S )Nz
x, y, z, nTr‘   r—   r   )r   rc   rF   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ƒspJ ‚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ƒsjJ ‚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üJ ‚d S )Nr|   rš   r–   r—   r­   rÌ   )r   r…   rc   r   r   r6   r‚   rC   r   r	   r   r   r
   r   r¥   r   r   )r|   r‰  r‡   r‡   rˆ   Útest_nonlinsolve_complex•  s4    &8ÿ
 ÿÿÿ4"ÿÿ$þý0,þ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®J ‚t| d |d t| ƒ  g|| gƒ|ksÚJ ‚t| d |d t| ƒ  g|| gƒ|ksJ ‚t| d |d t| ƒ  g| |gƒ|ks6J ‚d S )Nrœ  Tr‘   r—   )r   rF   r   r&   r   rc   )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sPJ ‚t|jd	 d
dt   ƒdksrJ ‚t|jd ddt   ƒdks”J ‚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‚J ‚d S )Nr   g      à?r–   r—   r   g©í	nëBÀg/H|n$ýÓ?ç•Ö&è.>rš   gðuªÙÓ¿gÞÊ+Nð?g¸®bšâ?gÀqãwæ?iñ|  r­   é¬   rÚ   é+   rÎ   r»   i ÿÿÿé6   rÅ   )r   r	   r`   rá   Úargsr   r¢   rF   r&   r6   r0   r2   r   r   )r   Zn1rR  r  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  |||||	f	|||	  ||	 ||	  | |	d  d |||	d  |||||	f	ƒ}t|
g| ¢R Ž |ks*J ‚d S )Nzax bx cx gx jx lx mx nx qr—   r    )r   rF   rc   )ÚVÚaxÚbxZcxZgxZjxZlxZmxZnxr}   r   r³   r‡   r‡   rˆ   Útest_issue_13961ý  s    n@@ÿr®  c                  C   sX   t ttd  d ƒtƒ} t| jd dt  ƒdks6J ‚t| jd dt  ƒdksTJ ‚d S )Nr—   g       @r   gã;fž ö?r¥  rš   )r`   r&   r   rá   r©  r	   )Z	solutionsr‡   r‡   rˆ   Útest_issue_14541  s    r¯  c                  C   sz   dt  ttd  t d  ƒ ttƒ } tdƒ}t| t tjd|ksFJ ‚tttd t d  ƒt	d  t tjƒtj
u svJ ‚d S )NrÌ   r—   r   rÔ   )r‚   r   r   r   rF   r`   r   r¡   r0   r   r¤   )Úexprr³   r‡   r‡   rˆ   Útest_issue_13396  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*J ‚d S )	NrÌ   r–   rš   rÍ   iQ  é   r—   r­   )rF   r&   r
   r   r	   r`   r   ©r³   r‡   r‡   rˆ   Útest_issue_12032  s|    *"ÿÿ&&ÿ*"ÿþýþ&&ÿ*"ÿþý("ÿÿü("ÿÿ0"ÿ"þ&ýýþ("ÿÿ0"ÿ"þ&ýýþîr´  c                   C   s    t dttƒ tƒtjksJ ‚d S r¨   ©r`   r&   r   r   r¤   r‡   r‡   r‡   rˆ   Útest_issue_108763  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’J ‚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ƒƒsVJ ‚d S )NrÌ   r—   r–   r­   rÐ   )r…   rc   r   r‚   r6   rF   rC   r   r|   r   r   r¥   r2   r‡   r‡   r‡   rˆ   Útest_issue_190507  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 J ‚tdd„ t||ƒD ƒƒsŠJ ‚qŠt
|ƒt
|ƒksæJ ‚d S )Nrš   r—   c                 s   s   | ]\}}|  |¡V  qd S r„   )r   )r†   ro   rp   r‡   r‡   rˆ   r‰   I  rŠ   z#test_issue_16618.<locals>.<genexpr>)r6   r   r‚   r2   rF   r|   r   rc   r   r   r¯   rŽ   )Zeqnræ   r³   Zi0Zj0r‡   r‡   rˆ   Útest_issue_16618A  s    $F"r¸  c                   C   s`   t ddt  dt   dt  ddt  ddt   gttƒttdƒ tdƒ dfƒks\J ‚d S )Né    r—   r­   rÎ   r–   rš   éQ   )rc   r   r‚   rF   r   r‡   r‡   r‡   rˆ   Útest_issue_17566M  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^J ‚d S )Nr|   r—   )r   r`   r   r6   r   rI   rC   r   r   r   r¥   rä   r‡   r‡   rˆ   Útest_issue_16643R  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sdJ ‚d S )	Nzn mr¹  r—   r­   rÎ   r–   rº  rš   )r   rc   rF   r   )r|   r{   r‡   r‡   rˆ   Útest_issue_19587X  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sDJ ‚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šJ ‚d S )	Nr—   rÇ   r­   )rš   r–   )r–   rš   r|   rš   r–   )r&   r   r‚   rc   rF   r   r   r6   rƒ   r   r   r	   r   rC   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   sr  t ddd\} }t| ƒd t|ƒ td  d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äJ ‚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snJ ‚d S )Nrœ  Tr‘   r—   rš   r–   r|   )r   r   r6   rƒ   r   r   r   r	   r   r   r   rC   r   r¥   rF   r…   rc   r~   r7   r   r&   )r   r‚   r}  r|   r  rÀ  Úimgrž  rŠ  r‰  r   Ús_yr‡   r‡   rˆ   Útest_issue_5132_2u  s    ,L
$ rÇ  c                  C   s>   t ddd\} }t| d |  | | g| |gƒddhks:J ‚d S )Nza, bTr‘   r—   rm  r”  )r   rc   r
  r‡   r‡   rˆ   Útest_issue_6752ˆ  s    rÈ  rR   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J ‚d S )Nr   )Úor=  rš   )rL  rÉ  r=  ro   rp   rq   rt   rv   ry   r|   r~   rr   rs   ru   rw   rx   rz   r{   r}   r¯   rc   )rÉ  r=  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ŒJ ‚| 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J ‚d S )Nzlam a0 concr—   rš   g{®Gázt?gÌ«¢Ã;Êç?)r   r‚   r   r¯   rc   )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sJ ‚t||| |  f| |fƒtjks´J ‚|d
7 }t||f| |fƒtjksØJ ‚d S )Núx yTr‘   r—   rÇ   r–   é¿   r®   i‡  r»   )r   r&   r
   rc   r   r¤   )r   r‚   Úe1Úe2ro   rp   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J ‚d S )
Nr   i”ýÿÿi˜  é~   i  é3   éÍ   éh   r—   )r   r‚   rƒ   r&   rc   )ri  Úy1Zr1rj  Úy2ru  Úy3Zr3Úvr7  r8  rƒ  ÚFZg1Zg2Zg3ÚGrB  rb  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”J ‚d S )Nrt   r—   r–   r   )r   r   r   r‚   r
   r   r   rB   r   r  rc   )rt   r7  r8  Zintermediate_systemr|  rŠ  r‡   r‡   rˆ   Útest_nonlinsolve_conditionsetÙ  s    0
ýrÝ  c                  C   sú   t g ttgƒtjksJ ‚t g g ƒtjks,J ‚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ˆJ ‚td	ƒ}t tt gtgtd
igtgtƒ ttgƒ|ksÀJ ‚t tt gtgtd
igtgtd
 httgƒtjksöJ ‚d S )Nr—   r–   rð   é   )rú   rÌ   )rú   r—   )r–   rÌ   )r–   r—   rI  rš   )rb   r   r‚   r   r¤   rF   r  )r‰  rŠ  r‡   r‡   rˆ   Útest_substitution_basicè  s    80þþ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ØJ ‚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.J ‚d S )	Nzx, y, z, r, tTr‘   r—   rš   r   r|   r–   )r   r7   rE   rF   r&   rb   r   r   r6   r   r   r	   r   rC   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_substitutionö  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  ©rb   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  )rb   r   r6   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Š   )rP   r£   Ú	TypeErrorr‡   r‡   r‡   rˆ   Útest_raises_substitution  s
    rã  c                     sò  ddl m‰  g d¢} tdƒ}‡ fdd„| D ƒ} tttjdd„ | D ƒŽ ƒƒ}t| |ƒ}t|t	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒt	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ |dddt	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒt	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ  t	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d dt	dƒ f|t	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒt	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ |dddt	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒt	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ  t	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d dt	dƒ f|t	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ t	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ |ddt	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ t	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ d t	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d dt	dƒ f|t	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ t	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ |ddt	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ t	dt	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d  ƒ d t	d	d
t	dƒ  ƒt	d
t	dƒ d	 ƒ d dt	dƒ fƒ}t
|ƒt
|ƒ  krºdksÀn J ‚||ksÎJ ‚|jD ]}t
|ƒdksÔJ ‚qÔd S )Nr   ©Úsympify)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>&  rŠ   z$test_issue_21022.<locals>.<listcomp>c                 S   s   g | ]
}|j ‘qS r‡   )rs  rç  r‡   r‡   rˆ   rè  (  rŠ   r$  i€  é€   r¼   rÍ   rÄ   éøÿÿÿr­   )Zsympy.core.sympifyrå  r   rŒ   r   r  Úunionrc   rF   r&   r¯   r©  )r}  ræ  Zsybr  ræ   r?  r‡   rä  rˆ   Útest_issue_21022  s8    	
hp4þhp4þjr4þjr4þö&
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˜J ‚d S )Nr|   rD  r—   r¼   )r   rC   r   r	   r   r   r   r   rK   r   r¥   r`   r   r   r   )r|   rD  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,J ‚d S )NrÐ   r—   éP   rÚ   rê  rÇ   )r`   r   rF   r‡   r‡   r‡   rˆ   Útest_issue_17906I  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 J ‚d S )Nr*  rß   rÇ   r   )r   r6   r‚   r2   r}   rƒ   rc   rF   )r•  r–  r—  r˜  r‡   r‡   rˆ   Útest_issue_17933M  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ƒƒsTJ ‚d S )NrÌ   )r…   rc   ry   r{   r   r   rF   r|   r	   rC   r   r   r¥   r‡   r‡   r‡   rˆ   Útest_issue_14565W  s    *"ÿrñ  c                  C   sn   t ddd} tttƒd ttjƒtju s,J ‚tttƒ|  ttjƒtju sLJ ‚tt| dƒ| tjƒtju sjJ ‚d S )Nrp   Tr•   rš   r    )r   r`   r   r   r   r¡   r¤   r   )rp   r‡   r‡   rˆ   Útest_issue_9556`  s      rò  c                   C   sL   t ttt t tƒttjƒtjks&J ‚t ttt t tƒtƒtjksHJ ‚d S r„   )r`   r   r   ro   r   r¡   r‚   r  r‡   r‡   r‡   rˆ   Útest_issue_9611h  s    &ró  c                   C   s>   t td t ttjƒttjttt ƒ tt ƒƒƒks:J ‚d S rÉ   )r`   r   ro   r   r¡   rG   rF   r&   r‡   r‡   r‡   rˆ   Útest_issue_9557m  s    ÿrô  c                  C   sž   t ddd} t ddd}t| d d | tjƒtdƒks:J ‚t| tddƒ d | tjƒtjks`J ‚t| d | | tjƒtt|ƒtddƒ  t|ƒ ƒksšJ ‚d S )	Nr   Tr‘   r‚   r–   rš   r    r¼   )	r   r`   r   r¡   rF   r
   r¤   r   r   rž   r‡   r‡   rˆ   Útest_issue_9778r  s    "&ÿrõ  c                  C   sÚ   t ttddƒ d ttjƒtjks&J ‚t ttddƒ d ttjƒtjksLJ ‚tdtddƒ  ƒ} t ttdƒ d ttjƒ| ks‚J ‚ttdƒ d  tt| ƒd ¡dksªJ ‚ttdƒ d  tdtddƒ  ¡dksÖJ ‚d S )Nr–   r—   r­   rú   r   rÌ   )	r`   r   r
   r   r¡   r¤   rF   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$J ‚d S r¨   )r`   r   r6   r   r   r¡   r¤   r‡   r‡   r‡   rˆ   Útest_issue_9849…  s    r÷  c                   C   s   t g tƒtjksJ ‚d S r„   )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ŠJ ‚d S )
Nr—   rš   rÇ   r–   i^  r­   i»  r›   r®   )r`   r   r   r¡   rF   r&   r
   r‡   r‡   r‡   rˆ   Útest_issue_9913  s     ,&ÿÿÿrù  c                   C   s"   t ttƒttjƒtdƒksJ ‚d S r  )r`   r&   r   r   r  rF   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É   ©r[   r   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‚   ro   r‡   r‡   r‡   rˆ   r™   š  s   "ÿc                   S   s$   t td dt  td  d gtƒS r  rû  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Ð   rû  r‡   r‡   r‡   rˆ   r™   ž  s   &ÿc                   S   s    t tdt d  t gttgƒS r¨   r`  r‡   r‡   r‡   rˆ   r™      s   ÿc                   S   s   t td t gttgƒS r¨   r`  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    ÿ)rP   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s4J ‚t| t tjƒttt dt dt    htjƒksjJ ‚t	ddd}t	ddd}t || d| d|    } t| t ƒttjƒks¶J ‚t| t tjƒttjƒksÒJ ‚d S )NrÌ   r—   ÚapTr•   Úbn)Únegative)
r   ro   rp   r`   rF   r   r¢   r¡   rG   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âJ ‚t|t tjƒt	tt ddƒtdtdƒƒksJ ‚t|t tjƒt	tdddƒtdtdƒƒks@J ‚t|t tjƒtdtdƒks`J ‚t|t tjƒtdtdƒks€J ‚t|t tjƒtdddƒks J ‚t|t tjƒtj
ksºJ ‚t|t tddƒd	tdddƒksàJ ‚t|	t tddƒd	t	tdddƒtdddƒƒksJ ‚tt d dk t tjƒtt ddƒks>J ‚d S )
Nr—   r–   r   rš   rÌ   r¼   r    rú   rÔ   )r   r&   rµ   r   r`   r   r¥   rD   r   rI   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ƒ¡sPJ ‚t| |tƒƒtd  |tƒtjƒ t|tƒt| |tƒƒtd  dƒtjƒ¡s J ‚d S )Nrt   ru   r—   r   )	r   r`   r   r   r   r¡   r   rB   r   )rt   ru   r‡   r‡   rˆ   Útest_issue_10555Ò  s    ÿ"&ÿr  c                  C   sx   t dt   ddt   k} t| t tjƒt dt¡tdƒ ks>J ‚t|  t t	t ƒ¡t tjƒt t
dƒt¡tdƒ kstJ ‚d S )Nrš   rÌ   r   )r   r`   r   r¡   rH   r  r   rF   rµ   r   r   rê   r‡   r‡   rˆ   Útest_issue_8715Û  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sXJ ‚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äJ ‚d S r  )rƒ   r   r   r6   r‚   rG   r   r¡   rF   r   r`   r&   r~   r   r7   r   )rØ   rŠ  r“   r‡   r‡   rˆ   Útest_issue_11174ã  s    &42r  c                  C   s¼   t ddd} t ddd}| | t| d  d ƒ  }|d  | d | d  d   }tt| t|d d ƒ |t|d d ƒ ƒtddƒƒ}t|| tjƒ|ks¢J ‚t|| tjƒ|ks¸J ‚d S )Nr   Tr‘   r‚   r—   rš   r    )r   r&   rE   rF   r`   r   r¡   )r   r‚   rØ   r–  rŠ  r‡   r‡   rˆ   Útest_issue_11534î  s     8r  c                   C   sJ   t td dt  d t dk ttjƒtt t d¡t dd¡ƒksFJ ‚d S )Nr—   r­   r–   rú   r   rš   )r`   r   r   r¡   rI   rH   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$J ‚tddƒ} t dt  t¡dk t| ƒ| ksPJ ‚d S )Nr   rš   rÇ   )r`   r6   r‚   rH   r   rF   r   r   )rw   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s8J ‚t| dk t tjƒtt tdƒ ƒks`J ‚t| tdƒkt tjƒt tdƒt¡ksŠJ ‚d S )Nr—   r¼   r   )r   r&   r`   r   r¡   rH   r   ÚLopenrê   r‡   r‡   rˆ   Útest_issue_11064	  s    ÿÿÿr
  c                  C   sh   t td ƒd } t| tƒ}|tju s(J ‚t| dk ttjƒtju sDJ ‚t| dkttjƒtdtƒksdJ ‚d S )Nr—   r   )	r&   r   rX   r   r¤   r`   r¡   rH   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s2J ‚d S r:  )r`   r   r   r   r¡   rH   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ƒƒ¡sVJ ‚d S )NÚCrš   r   )r   r   r	   r   r`   r   rG   rB   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"J ‚t tdt d ƒttjƒt tddƒt¡ksRJ ‚d S )Nr   r­   r–   )	r`   r   r   r   r¡   rH   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 ƒƒs2J ‚ˆ dtdd ƒdu sLJ ‚d S )Nc                 3   s   | ]}ˆ d | ƒdu V  qdS )rš   Nr‡   rç  r½   r‡   rˆ   r‰   +	  rŠ   z3test__is_finite_with_finite_vars.<locals>.<genexpr>Tr‘   )Úcomplexrš   F)re   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s2J ‚d S )Nr—   rË   r   )ÚsymbolrÕ   rú   rP  r‡   r‡   r‡   rˆ   Útest_issue_135500	  s    r  c                   C   s4   t ttdƒtdƒ  tdƒ tftƒtju s0J ‚d S )Nr¼   r—   )rc   r   r&   r   r¤   r‡   r‡   r‡   rˆ   Útest_issue_138494	  s    r  c                   C   sŠ   t ttttdƒ ƒd  t¡ttjƒtddƒks4J ‚t ttttdƒ ƒd  t¡tt	ddƒƒtdƒksjJ ‚t tttddƒƒtj
u s†J ‚d S )Nr—   r    rš   r   )r`   r   r   r'   r!  r)   r   r¡   rF   rH   r¤   r‡   r‡   r‡   rˆ   Útest_issue_142238	  s    ÿÿÿÿr  c                	      s°  t j‰ ttttdƒ d tˆ ƒttddƒƒks2J ‚ttttdƒ d tˆ ƒttdƒ tdƒƒksdJ ‚ttt	td ƒd td ƒd tˆ ƒtddƒks˜J ‚tt	td ƒt	t
ƒ tˆ ƒtt	t
ƒ d t	t
ƒd ƒksÔJ ‚tt	tdt	td ƒ  ƒtˆ ƒttddƒtdd	ƒƒksJ ‚tdt	tt	ttdtƒ ƒ ƒ d tt jƒtdd
ƒksLJ ‚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Ç   )r`   r   r(   r‡   ©Údomr‡   rˆ   r™   I	  rŠ   z"test_issue_10158.<locals>.<lambda>c                      s   t tttdƒ d tˆ ƒS r  )r`   r   r'   r‡   r  r‡   rˆ   r™   J	  rŠ   c                      s&   t tttd ƒd td ƒd tˆ ƒS )Nr–   rš   r—   )r`   r(   r   r   r‡   r  r‡   rˆ   r™   K	  rŠ   c                      s   t ttd ƒttƒ tˆ ƒS r¨   )r`   r   r   r‚   r‡   r  r‡   rˆ   r™   L	  rŠ   c                      s    t ttdttd ƒ  ƒtˆ ƒS )Nr­   rš   r  r‡   r  r‡   rˆ   r™   M	  rŠ   )r   r¡   r`   r   r(   rF   r
   r'   r&   r   r‚   r  rP   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sJJ ‚t	t| tƒt
ttt dt t tt d ƒ  d tttd ƒƒd  ƒtjƒƒs J ‚d S )Nrš   i€Wíþi€¨r—   )r   r   r‚   rF   r   r`   r   r¡   rG   r…   rC   r   r|   r	   r   r   r   r¥   )rt   Za1r‡   r‡   rˆ   Útest_issue_14300P	  s    
ÿ
(ÿÿÿr  c                      s@   t td t d dƒ‰ tt‡ fdd„ƒ ttd ˆ tƒs<J ‚d S )Nr­   rš   r—   c                      s   t ˆ dtƒS r  )r^   r   r‡   ©Únumberr‡   rˆ   r™   ]	  rŠ   z"test_issue_14454.<locals>.<lambda>)r@   r   rP   r£   r^   r‡   r‡   r  rˆ   Útest_issue_14454[	  s    r  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sjJ ‚d S )Nrê  r—   rß   rš   r­   r–   )r`   r   r   r  rF   r&   r‡   r‡   r‡   rˆ   Útest_issue_17882a	  s    Pÿr  c               	   C   s¬   t tdt d ƒƒddt gks$J ‚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¨J ‚d S )Nr–   r—   rÌ   r­   rš   r    )rŒ   rl   r   r  )r°  r‡   r‡   rˆ   Útest_term_factorsf	  s
    $<
4ÿr  c                   C   sJ   t dt ttjƒtjksJ ‚t dt dtd   ttjƒtdƒksFJ ‚d S )Nr–   rß   r¼   rY  )rf   r   r   r¡   r¤   rF   r‡   r‡   r‡   rˆ   Útest_transolveo	  s    r   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shJ ‚d S r  )r   r‚   rƒ   r8   r`   r>  rF   r;   rê   r‡   r‡   rˆ   Útest_issue_21276u	  s    <r!  c               
   C   sÜ  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szJ ‚t|ttjƒt	t
ddƒƒksœJ ‚t|ttjƒtjks¶J ‚t|ttjƒt	dƒksÒJ ‚t|ttjƒttjt	| tdtt|  ƒ ƒ ƒƒks
J ‚t|ttjƒt	dƒks&J ‚t|ttjƒt	dƒksBJ ‚t|ttjƒt	dtdƒ d dtdƒ d  t
ddƒ ƒks„J ‚t|	ttjƒt	dƒks J ‚t|
ttjƒt	tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ  ƒksìJ ‚td
tdt d ƒ dtd	   tƒt	ddtdƒ  tdƒ tdƒd   ƒksBJ ‚tdtd  dtd   tƒt	dƒksnJ ‚tdƒttdƒƒ ttdƒƒ }tdtd  ddt   tƒt	| |ƒks¾J ‚tdƒ\}}tdƒ}t||td   t|tƒ ƒ |tƒƒttjt	t||td   ƒ ƒƒks"J ‚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†J ‚tddd}td	| d	 |d	  |ƒ tttd	d	t  td	  dƒtjƒ¡sØJ ‚d S )Nr   r  r–   r—   r­   r¼   rß   rÄ   rš   rZ  rÌ   éT   é   ig  é{   i¦
  rú   rË   r#  r»   zC1 C2rt   r‚   Tr•   r=  )rL  r‚   r   r   r   rƒ   r`   r   r¡   rF   r
   r¤   rG   rX   r&   r   r   r   r   rB   r   )r‚   rÏ  rÐ  Ze3Ze4Ze5Ze6Ze7Ze8Ze9Ze10rp   ZC1ZC2rt   r=  r‡   r‡   rˆ   Útest_exponential_realz	  sX    <($ÿ"ÿBL&$ÿ, 0(ÿ.ÿ"ÿr%  c            	   	   C   sÜ  t dƒ} ttdt dt  tƒtt| td|  t t  tdƒ ƒt	j
ƒƒsNJ ‚ttt tt  d tƒttdƒttƒttƒ  ƒksˆJ ‚ttdtd  dtd   tƒtt| d|  t t tdƒ ƒt	j
ƒƒsÒJ ‚ttdt d tƒtt| td|  t t  dtdƒ  tdƒ ƒt	j
ƒƒs"J ‚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˜J ‚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||ƒƒs0J ‚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ØJ ‚d S )Nr|   r—   r­   r–   r¹  r¼   rË   rÄ   rš   rÌ   )r   r…   rZ   r   rJ   r   r	   r   r   r   r¥   rƒ   r‚   rF   r`   r   r&   r
   rI   )	r|   rØ   ro   Zunion1Zunion2r  ÚnumZdenræ   r‡   r‡   rˆ   Útest_exponential_complex¨	  s2    $ÿ
ÿ
  ÿ
0ÿ$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œJ ‚t|ttjƒ ttt	ttd t  d dƒtjƒ¡sÔJ ‚t|ttjƒ ttt	dt t tƒ d dƒtjƒ¡sJ ‚t|ttjƒ ttt	t tƒ ttƒ dƒtjƒ¡sFJ ‚t|ttjƒ ttt	dt dt  dt  dƒtjƒ¡s„J ‚d S )Nrš   r—   r–   r¼   r   )
r   r   r‚   r   r`   r   r¡   r   rB   r   )r7  r8  rƒ  r„  r…  r‡   r‡   rˆ   Útest_expo_conditionsetÅ	  s(    ÿ
ÿ
ÿÿ"ÿr(  c            	      C   s€  t ddd\} }}t ddd\}}t||  | | tjƒttjtt|ƒt|ƒ ƒƒksXJ ‚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äJ t|ttjƒƒ‚t|ttjƒ|ks
J t|ttjƒƒ‚t| |  | t 	dt
¡ƒ ttttt dƒt dt
¡ƒ¡sHJ ‚t| | d	 |tjƒtdƒkslJ ‚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òJ ‚tt|| ƒt| | ƒ d |tjƒtt|| tdƒ ƒtdƒƒks>J ‚tt|  t|   | ƒ ttttdƒttdƒ@ tdƒƒ¡s|J ‚d S )
Nzx y zTr•   zxr, zrr‘   r—   r­   r   rš   )r   r`   r   r¡   rG   rF   r   r€   rH   r	  r   r   rB   r   r  r   rE   r   ro   rp   r   )	r   r‚   rƒ   ZxrZzrr7  r8  r™  rš  r‡   r‡   rˆ   Útest_exponential_symbolsÙ	  s8    ÿ
"$&ÿ
$&($ÿÿÿ
&ÿ
ÿr)  c                  C   s@   t ddd} t dƒ}t| d d | ƒt|d d |ƒks<J ‚d S )Nr   Tr•   r—   r­   )r   rZ   )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&J ‚d S r¨   )r`   r   r‚   rƒ   r   r¡   rF   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sTJ ‚d S )Nr­   r—   r–   )rX   r&   r   r   rF   r   r‡   r‡   r‡   rˆ   Útest_solve_only_exp_2
  s    "*ÿr,  c                   C   sL  t ttƒdu sJ ‚t dt d tƒdu s,J ‚t dt ddt   tƒdu sNJ ‚t tdt ƒdt  tƒdu spJ ‚t tt t tƒdu sŠJ ‚t tt t tƒdu s¤J ‚t dt dt  d tƒdu sÆJ ‚t ttt  t tƒdu säJ ‚t tdt  dt  tƒdu sJ ‚t tt tt  tƒdu s(J ‚t tt tt  tƒdu sHJ ‚d S )	NFr–   r—   Tr¼   rÐ   r­   rš   )rg   r‚   r   r6   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sLJ ‚t dt dt  dttjƒtttddƒtd	ƒd  ƒtdƒ ƒks’J ‚t dt dt  dttjƒtj	ks¸J ‚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
J ‚d S )
Nr–   r—   r   rú   rÌ   r­   rš   r    r¼   )rh   r   r   r¡   rF   r   r‚   r
   r&   r¤   rB   r   r‡   r‡   r‡   rˆ   Útest_solve_exponential
  s    ""ÿ$ÿÿ"&ÿr.  c               
   C   s  t ttd ƒttd ƒ tƒttdƒ tdƒƒks6J ‚t ttd ƒtdt d ƒ tƒtdƒksdJ ‚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öJ ‚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’J ‚t tdt ƒtt d ƒ tdt d ƒ tƒttddƒt
jƒksÚJ ‚tttt ƒtttƒ  tt
jƒt
jksJ ‚d S )	Nr–   rÇ   rš   r—   rú   iôÿÿÿr    r­   )rX   r   r   rF   r&   r   r
   rƒ   r‚   rG   r   r¡   r¢   r`   rê   r‡   r‡   rˆ   Útest_logarithmic#
  s,    ÿ
.&02þ
, ÿ"þÿ
*ÿÿ
r/  c                  C   sz   t tdt ƒd ƒt ttƒ d ƒ t dƒ } t| tƒtju sBJ ‚t dt ƒt ttƒd ƒ d } t| tƒtju svJ ‚d S )Nr—   rš   rÄ   )r   r   r   r"   rX   r   r¤   r&   rê   r‡   r‡   rˆ   Útest_uselogcombine_24
  s    . r0  c                   C   sÆ  t ttƒdu sJ ‚t ttƒtƒdu s(J ‚t ttƒd tƒdu sBJ ‚t ttƒttƒ tƒdu s`J ‚t ttƒd tƒdu szJ ‚t ttd ƒttd ƒ tƒdu s J ‚t ttt ƒtttƒ  tƒdu sÆJ ‚t tttƒƒtƒdu sàJ ‚t tt tƒdu söJ ‚t tdt ƒtdt ƒ d tƒdu s"J ‚t ttƒttƒ t tƒdu sFJ ‚t tttd ƒƒttd ƒ tƒdu srJ ‚t ttdƒt ƒttƒ tƒdu sšJ ‚t ttƒtd  ttƒ tƒdu sÂJ ‚d S )NFTr–   r—   rš   r­   )ri   r‚   r   r   r6   r‡   r‡   r‡   rˆ   Útest_is_logarithmic<
  s    &&,$,(r1  c                  C   sn   t dƒ} ttt|  ƒ| ttƒ  dttjƒtjks6J ‚t ddd} tttƒt| ƒ dttjƒtdƒksjJ ‚d S )Nr‚   r   Tr•   rš   )r   rk   r   r   r   r¡   rF   r  r‡   r‡   rˆ   Útest_solve_logarithmM
  s    .r2  c                  C   sè  t dƒ\} }}ttd tƒdu s$J ‚t| td  |t  | tƒdu sJJ ‚ttd tƒdu s`J ‚tttd  tƒdu szJ ‚tdttƒ ttdƒ  tƒdu s J ‚ttttd ƒƒttd ƒ tƒdu sÊJ ‚tdt d dtddt  ƒ  tƒdu søJ ‚t| t ttd ƒ  td¡tƒdu s$J ‚ttd dt  d  tttƒdt  d d ¡tƒdu sdJ ‚ttttƒ d tƒdu s„J ‚ttt	tƒ d tƒdu s¤J ‚tt
tƒdt  tƒdu sÄJ ‚tttƒttƒ tƒdu säJ ‚d S )	Nza,b,cr—   FTr–   r¼   rš   rÐ   )r   rj   r   r   r   r   r   rµ   r!   r2   r"   r#   )ro   rp   rq   r‡   r‡   rˆ   Útest_is_lambertW
  s    &&*.,@   r3  c                      s*  ddl m‰  ˆ dtƒddgks"J ‚tdd„ ˆ dtƒD ƒƒs>J ‚ˆ tdt  d ttƒg d¢ksbJ ‚ˆ tdt  d ttƒg d¢ks†J ‚ˆ tdtd   d ttd ƒg d¢ks²J ‚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J ‚ˆ dttƒg d¢ks&J ‚d S )Nr   ©Úlinear_coeffsc                 s   s   | ]}|t ju V  qd S r„   )r   r÷   rÓ   r‡   r‡   rˆ   r‰   m
  rŠ   z%test_linear_coeffs.<locals>.<genexpr>r—   r–   rk  )r—   rš   r–   c                      s$   ˆ t dt d   t d  t t d ƒS r  r˜   r‡   r4  r‡   rˆ   r™   q
  s    z$test_linear_coeffs.<locals>.<lambda>c                      s   ˆ dt  t d  dt   t ƒS r¨   r˜   r‡   r4  r‡   rˆ   r™   s
  s    c                      s   ˆ t t t ƒS r„   r˜   r‡   r4  r‡   rˆ   r™   u
  s    rœ   )r   r   rœ   )rK  r5  r   rŽ   r‚   rP   r£   ro   r‡   r‡   r4  rˆ   Útest_linear_coeffsj
  s    $$,$r6  c                   C   sP  t ttƒdu sJ ‚t ttdƒd tƒdu s.J ‚t ttd dtd   t d dƒd tƒdu sbJ ‚t tttt ƒdƒd tƒdu s†J ‚t tttt ƒdƒttƒ tƒdu s®J ‚t ttdƒd tƒdu sÊJ ‚t ttdƒd d tƒdu sêJ ‚t ttdƒd t tƒdu sJ ‚t tttdƒƒd tƒdu s.J ‚t tdtƒd tƒdu sLJ ‚d S )NFr–   rš   Tr—   r¼   )rm   r‚   r   r   r   r   r‡   r‡   r‡   rˆ   Útest_is_modular{
  s    4$( ""r7  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sJJ ‚|tttƒdƒtdƒ| tƒtttƒdƒdfks|J ‚|tttƒdƒtdƒ| tƒtttƒdƒdfks®J ‚t	|ttdƒtdƒ| tƒtt
t| d|  d ƒtjƒfƒsêJ ‚t	|ttd dƒtdƒ| tƒtt
t| d|  d	 ƒtjƒfƒs,J ‚|ttd
 t dƒtdƒ| tƒttd
 t dƒdfkshJ ‚t	|tdt dƒtdƒ| tƒtt
t| d|  d	 ƒtjƒfƒsªJ ‚|ttd td
  dƒtdƒ| tƒttd td
  dƒdfksîJ ‚|ttd	 dƒtdƒ| tƒttjfksJ ‚t	|tdt d	ƒtdƒ| tƒtt
t| d
|  d ƒtjƒfƒs\J ‚t	|td
td
 t d  dƒtd
ƒ| tƒtd
 t d t
t| d|  d ƒtjƒfƒs¶J ‚|tttƒd	 dƒtdƒ| tƒttjfksæJ ‚d S )Nr|   T©Úintegerr   )Ú_invert_modularrÐ   r¼   rÄ   r­   r—   r–   rš   )r   rK  r:  r   r6   r   r   r   r   r…   rC   r   r¥   r¤   Ú	Naturals0)r|   Zinvert_modularr‡   r‡   rˆ   Útest_invert_modularˆ
  s<    222ÿÿ
ÿ
ÿ
"ÿ
ÿ
ÿ
((ÿ
r<  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ƒ¡sJJ ‚tdtt	tƒdƒ ttjƒ ttttt	tƒdƒd dƒtjƒ¡sŽJ ‚tdtt
tƒdƒ ttjƒ ttttt
tƒdƒd dƒtjƒ¡sÒJ ‚tdtttƒdƒ ttjƒ ttttttƒdƒd dƒtjƒ¡sJ ‚tdttdƒ ttjƒtju s<J ‚tdttdƒ ttjƒtju s`J ‚ttd	ttd
ƒ ttjƒtt| d
|  d	 ƒtjƒƒsšJ ‚tdttd
ƒ ttjƒtju s¾J ‚ttdttdƒ ttjƒtt| d|  d ƒtjƒƒsøJ ‚ttdtdt d dƒ ttjƒtt| d|  d ƒtjƒƒs:J ‚ttdtdt dƒ ttjƒtt| d|  d	 ƒtjƒƒsxJ ‚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ƒƒƒsbJ ‚tdttd dƒ ttjƒtju sŠJ ‚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J ‚tttdt dƒd ttjƒtt| d|  d ƒtjƒƒsRJ ‚tttdt dƒd ttjƒtt| d|  d	 ƒtjƒƒsJ ‚tttdt dƒd ttjƒtt| d	|  d ƒtjƒƒsÎJ ‚tttd	t dƒd	 ttjƒtt| d|  d ƒtjƒƒsJ ‚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ƒƒslJ ‚tttd dƒd	 ttjƒtju s”J ‚ttttd dƒd ttjƒtt| d|  d ƒtjƒƒsÒJ ‚ttttd dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒs,J ‚ttdtdt d dƒ ttjƒttt| d|  d ƒtjƒtjƒƒsvJ ‚tttdƒt ttjƒtjksšJ ‚tttt dƒd	 ttjƒ tttttt dƒd	 dƒtjƒ¡sàJ ‚tttt dƒd	 ttjƒ tttttt dƒd	 dƒtjƒ¡s&J ‚ttttd dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒs€J ‚ttttd  d!ƒd" ttjƒtt| d!|  d  ƒtjƒƒs¾J ‚tddd} d#}d$}d%}d&}tt|t||  | |ƒ | tjƒtt| d'|  d( ƒtjƒƒsJ ‚tt|t||  | |ƒ | tjƒttt| d'|  d( ƒtjƒtjƒƒsfJ ‚tt|t|d	|   | |ƒ | tjƒttt| d)|  d* ƒtjƒtjƒƒs´J ‚t|t|d	|  d  | |ƒ | tjƒtju sèJ ‚tt|t|| d  | |ƒ | tjƒttt| d'|  d+ ƒtjƒtjƒƒ	s6J ‚d S ),Nr|   Tr8  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   r`   r   r   r   r¥   r   rB   r   r6   r   r   r¤   r…   rC   r   rI   r;  rG   r	   r   )r|   ro   rp   r{   rq   r‡   r‡   rˆ   Útest_solve_modular§
  sú    ÿþ þ þÿÿ
$$ÿ
$ÿ
 ÿ
ÿ
ùÿ
	(ýÿ
ÿ
ÿ
ÿ
ÿ
 "ÿÿÿÿ
(ÿ
ÿÿ
  ÿ
ÿ
 þ
 þ
ÿÿ
ÿ
 ÿ
 ÿÿ
$ÿÿ
4$ÿÿrG  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`J ‚d S )Nr¼   rš   é   r–   rÇ   )rc   r   r   r   r‚   r&   rF   r‡   r‡   r‡   rˆ   Útest_issue_17276  s    2&ÿrI  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´J ‚d S )Nr   ro   r|   r—   rÌ   zx,n)r   r   r`   r6   r   rI   rC   r   r   r   r¥   rG   r  r	   r   r   r   )r   ro   r|   r‡   r‡   rˆ   Útest_issue_10426  s    $DÿþýrJ  c                   C   s(   t ttƒd t ƒtdt ƒks$J ‚dS )z,Test solveset for simple conjugate functionsr–   N)r`   r   r   r	   rF   r‡   r‡   r‡   rˆ   Útest_solveset_conjugate   s    rK  c            '   $   C   sT  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(J ‚tt|Ž ƒ}"t|| ƒ|"ksHJ ‚t|| f| ƒ|"ks`J ‚| | ¡\}#}$d&d'„ |#D ƒ}#|" t|||||g|$ƒ¡}%tt|#Ž ƒ|%ks¬J ‚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sPJ ‚d S )(Nzx0:16zy0:12rÓ  é.   é'   rF  é#   é"   é   rH  é,   r#  r  é5   é8   r0  é4   r¨  é0   é<   r—   r¼   rš   r»   rD  rà   r®   é&   rÇ   rÍ   rÄ   é   r–   é!   rÎ   c                 S   s   i | ]\}}||kr||“qS r‡   r‡   )r†   rÙ  rØ   r‡   r‡   rˆ   Ú
<dictcomp>U  rŠ   z$test_issue_18208.<locals>.<dictcomp>c                 S   s   g | ]}|‘qS r‡   r‡   rÓ   r‡   r‡   rˆ   rè  a  rŠ   z$test_issue_18208.<locals>.<listcomp>)
r   r[   r   rW   rF   r   r\   Zgauss_jordan_solverµ   rc   )'Ú	variablesrx  ri  rj  ru  rv  Zx5Zx6Zx7Zx8Zx9Zx10Zx11Zx12Zx13Zx14Zx15Zy0rÖ  r×  rØ  Zy4Zy5Zy6Zy7Zy8Zy9Zy10Zy11r}  ÚexpectedrB  rp   Zsolve_expectedZlinsolve_expectedZgj_solveZnew_varsZgj_expectedZnonlinsolve_expectedr‡   r‡   rˆ   Útest_issue_18208$  sz    ÿ"Þ$(*.ý	"$(ýr]  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¦J ‚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   rF   rE   rc   )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_solutionu  sJ    ÿ4"ç.:>Bürc  c                   C   s   t dttƒ ƒtju sJ ‚d S r¨   rµ  r‡   r‡   r‡   rˆ   Útest_issue_20097Ÿ  s    rd  c                   C   s*   t ttdt t ƒƒƒtddƒks&J ‚d S )Nrš   r    )r`   r   r&   r   rF   r‡   r‡   r‡   rˆ   Útest_issue_15350£  s    re  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ÔJ ‚||ksàJ ‚d S )Nr   rš   r—   r–   Tr  )r)   r   r'   rH   r`   r
   )Zc1Úc2Zcorrect_resultZresult1Zresult2r‡   r‡   rˆ   Útest_issue_18359§  s    <J
rg  c                  C   sX   ddt  d   tt d ƒ tt d   } t| t ƒs8J ‚t| dt tjƒtdƒksTJ ‚d S )Nr—   r–   r-  r   )r   r   r   rg   rh   r   r  rF   )r¦   r‡   r‡   rˆ   Útest_issue_17604±  s    *rh  c                   C   s,   t ddtd  d  ttjƒtju s(J ‚d S r  )r`   r   r   r¡   r¤   r‡   r‡   r‡   rˆ   Útest_issue_17580·  s    ri  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sXJ ‚d S )Nr—   r–   r­   rß   r¼   )r   r‚   rc   rF   r   )r’  r‡   r‡   rˆ   Útest_issue_17566_actual»  s    (rj  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„J ‚d S )Nr—   r–   rš   r   r    r­   )r   r   r   rI   rH   r	  r
   r   r`   r   r¡   )rØ   r  r‡   r‡   rˆ   Útest_issue_17565Á  s    N rk  c                  C   s@   t d tt d  dt   ƒ } t| t tjƒttdƒƒks<J ‚d S )Nr¼   r—   rÇ   r#  )r   r&   r`   r   r¡   rF   r   )Úfunctionr‡   r‡   rˆ   Útest_issue_15024Ç  s    rm  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ƒƒshJ ‚d S rÀ   )r…   rc   r   r6   r‚   rF   rC   r   r|   r   r   r¥   r‡   r‡   r‡   rˆ   Útest_issue_16877Ì  s
    "$ÿÿrn  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”J ‚d S ©Nr—   r­   )r…   rc   r6   r   r‚   rF   rC   r   r|   r   r   r¥   r‡   r‡   r‡   rˆ   Útest_issue_16876Ó  s     ÿÿþÿrp  c                  C   s    t dƒ\} }t ddd}t| | | | tjƒt| t| | | dƒtjƒksNJ ‚t ddd\}}|| }t| | | | tjƒt| t| | | dƒtjƒksœJ ‚d S )Nzx zr‚   T)Zrationalr   ze1 e2)Zeven)r   r`   r   r¡   rB   r   )r   rƒ   r‚   rÏ  rÐ  r‡   r‡   rˆ   Útest_issue_21236Ü  s    6rq  c                   C   sH   t td dt  td  ttƒ dt ttƒ gttƒddhksDJ ‚d S )Nr—   rÌ   )rÌ   r   r”  )rc   r   r‚   r   r‡   r‡   r‡   rˆ   Útest_issue_21908å  s    6ÿrr  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 J ‚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 J ‚ttt dt   dt  ƒgt gƒttjfƒksJ ‚d S )Nrš   r—   c                 S   s   g | ]}t |d ƒ‘qS ©r   ©r   rÓ   r‡   r‡   rˆ   rè  í  rŠ   z$test_issue_19144.<locals>.<listcomp>c                 S   s   g | ]}t |d ƒ‘qS rs  rt  rÓ   r‡   r‡   rˆ   rè  ô  rŠ   )r   r‚   r	   rc   r   rF   r   r¤   )
rT  r•  r  Z
soln_expr1Zsoln_eq1rU  r–  r£  Z
soln_expr2Zsoln_eq2r‡   r‡   rˆ   Útest_issue_19144ê  s    ru  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¤J ‚d S )Nr­   r—   rš   )rc   r‚   r   r   rF   r   r÷   r¢   )r  Zsolsr‡   r‡   rˆ   Útest_issue_22413ý  s    ,Bÿþ rv  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sZJ ‚d S ro  )rc   r{   r|   rF   r   r   r  r‡   r‡   r‡   rˆ   Útest_issue_19814  s    2 ÿrw  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sdJ |  tdi¡ƒ‚d S r  )r`   r&   r   r   r   r¡   Zxreplacer³  r‡   r‡   rˆ   Útest_issue_22058  s    ,rx  c                   C   sJ   t dttd ttd  td  ƒd d  ƒ d ttjƒtju sFJ ‚d S )Nr®   r—   rÇ   rV  )r`   r&   r‚   r   r¡   r¤   r‡   r‡   r‡   rˆ   Útest_issue_11184  s    ry  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¾J ‚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sFJ ‚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:J ‚d S )Nr—   r–   r­   rš   rÌ   rÅ   r   rÍ  Tr‘   )r   rc   r   r‚   r&   r	   r   r   )rs   ÚrxZryr³   ræ   r‡   r‡   rˆ   Útest_issue_21890  s&    >>,þ
,*ÿÿ ÿ
@<<þr{  N(^  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   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*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   Z'sympy.functions.special.error_functionsr8   r9   r:   r;   r  r<   Zsympy.matrices.denser=   ra  Zsympy.matrices.immutabler>   Zsympy.polys.polytoolsr?   Zsympy.polys.rootoftoolsr@   Zsympy.sets.containsrA   Zsympy.sets.conditionsetrB   Zsympy.sets.fancysetsrC   rD   Zsympy.sets.setsrE   rF   rG   rH   rI   rJ   rK   Zsympy.simplifyrL   Zsympy.tensor.indexedrM   Zsympy.utilities.iterablesrN   Zsympy.testing.pytestrO   rP   rQ   rR   rS   rT   Zsympy.core.randomrU   r  rt  rV   Zsympy.solversrW   rK  rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   rL  ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r   r‚   rƒ   r…   r§   rª   r«   r¬   r´   rº   r¾   r¿   rÁ   rÆ   rÈ   rÊ   rÏ   rÙ   rÛ   ré   rë   rô   rõ   rø   rù   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r	  r  r  r  r  r  r  r  r  r   r"  r&  r'  r(  r)  r3  r4  r6  r9  r;  r<  r@  rA  rC  rE  rM  rN  rO  rQ  rS  rV  rX  r]  r^  rc  rd  re  ry  r  r‚  rˆ  r‹  rŒ  r  r‘  r“  r›  rŸ  r¡  r¢  r¤  rª  r®  r¯  r±  r´  r¶  r·  r¸  r»  r¼  r½  rÄ  rÇ  rÈ  rÊ  rÌ  rÑ  rÜ  rÝ  rß  rà  rã  rì  rí  rï  rð  rñ  rò  ró  rô  rõ  rö  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  r6  r7  r<  rG  rI  rJ  rK  r]  rc  rd  re  rg  rh  ri  rj  rk  rm  rn  rp  rq  rr  ru  rv  rw  rx  ry  r{  r‡   r‡   r‡   rˆ   Ú<module>   sÚ     @$ d\
_
	;
'
I

#	
 "

	
]R

V

$
/

)l		

G















'
	



		
	
	.
k	Q)
		
