o
    à8VaKË ã                   @   s0
  d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZmZmZmZmZmZ d dlmZmZmZmZ d dlmZ d dlmZmZmZ d d	l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.m/Z/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZDmEZEmFZFmGZG d dlHmIZI d dlJmKZL d dlMmNZN d dlOmPZP d dlQmRZR d dlSmTZT d dlUmVZV d dlWmXZXmYZY d dlZm[Z[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ð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ý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"d d!„ Z#d"d#„ Z$d$d%„ Z%d&d'„ Z&d(d)„ Z'd*d+„ Z(d,d-„ Z)d.d/„ Z*ejd0d1„ ƒZ+d2d3„ Z,d4d5„ Z-d6d7„ Z.ejd8d9„ ƒZ/ejd:d;„ ƒZ0d<d=„ Z1d>d?„ Z2d@dA„ Z3ejdBdC„ ƒZ4dDdE„ Z5dFdG„ Z6dHdI„ Z7dJdK„ Z8dLdM„ Z9dNdO„ Z: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„ ZJdpdq„ ZKdrds„ ZLdtS (u  é    )ÚTuple)Úordered)ÚFunctionÚLambdaÚnfloatÚdiff)ÚMod)ÚEÚIÚRationalÚooÚpiÚInteger)ÚEqÚGtÚNeÚGe)ÚS)ÚDummyÚSymbolÚsymbols)ÚAbsÚargÚimÚreÚsign)Ú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ÚEmptySetÚ	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p|  |¡S )Nc                 s   s    | ]
\}}t ||ƒV  qd S ©N)Údumeq)Ú.0rw   rx   © r‡   úC/usr/lib/python3/dist-packages/sympy/solvers/tests/test_solveset.pyÚ	<genexpr>6   ó   € zdumeq.<locals>.<genexpr>)ÚtypeÚlistÚtupleÚallÚzipÚdummy_eq)rw   rx   r‡   r‡   rˆ   r…   4   s   r…   c                     s`  t ddd‰ tjfdd„} tˆ dˆ tddƒƒˆ tjfksJ ‚ttˆ ƒtˆ ƒˆ | tt	tƒƒƒfks2J ‚t d	dd
‰t ddd}tˆ d ˆˆ ƒˆ tˆd ƒfksPJ ‚tˆ d ˆˆ ƒˆ tˆd ƒfksbJ ‚ttˆ ƒˆˆ ƒˆ tt	ˆƒƒfkstJ ‚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s¸J ‚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s7J ‚tdtˆ ƒ ˆˆ ƒˆ | tt	t	ˆƒt	dƒ ƒƒƒfksTJ ‚tˆ d ˆˆ ƒˆ ttˆƒtˆƒ ƒfkskJ ‚tˆ tj ˆˆ ƒˆ tˆd ƒfksJ ‚tt‡ fdd„ƒ tˆ t ˆˆ ƒˆ tˆdt  ƒfksJ ‚tˆ t t ˆ ƒˆ tƒ fks®J ‚tˆ tdƒ dˆ ƒˆ tdƒfksÁJ ‚tˆ d dˆ ƒˆ d tdƒfksÔJ ‚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ƒsJ ‚ttttˆ ƒƒˆˆ ƒˆ 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ƒ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ƒs?J ‚ttttˆ ƒƒˆˆ ƒˆ ttt|t	d| t tˆƒ ƒƒtjƒtt|t	d| t tˆƒ ƒƒtjƒƒfƒsvJ ‚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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s.J ‚d S )Nr   T©Úrealc                 S   s
   t || ƒS r„   )rG   )r   Úsr‡   r‡   rˆ   Úireal>   s   
ztest_invert_real.<locals>.irealr   é   é   r‚   ©Zpositiver|   é   c                      s   t ˆ ˆ ˆ ƒS r„   )r^   r‡   ©r   r‡   rˆ   Ú<lambda>^   ó    z"test_invert_real.<locals>.<lambda>g      ø?iè  éd   ç      ð?c                      s   t tjˆˆ ƒS r„   )r^   r   ÚOner‡   ©r   r‚   r‡   rˆ   rš   f   ó    é   éÿÿÿÿ)#r   r   ÚRealsr^   rH   rE   r   rƒ   rF   r   r   r%   ÚHalfrP   Ú
ValueErrorr   r	   r   r…   r5   rJ   r   r.   ÚIntegersr3   r,   r1   rI   r*   r4   r-   r6   r/   r2   r+   )r”   r|   ÚlhsZbase_valuesr‡   rŸ   rˆ   Útest_invert_real:   s    "($$$,,0,$,.&.:.(*"&&.*(
ÿ,
ÿ(
ÿ,
ÿ$ ÿ
ÿ($ÿ
ÿ$ ÿ
ÿ($ÿ
ÿ 
ÿ$
ÿ 
ÿ$
ÿ$
ÿ.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s$J ‚t td d dtƒttdƒfks6J ‚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snJ ‚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 s*J ‚t dttƒdu s4J ‚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s!J ‚d S )Nr   rœ   r•   )r`   r   r   r£   rE   rF   r‡   r‡   r‡   rˆ   Útest_issue_11536¶   s    &r­   c                  C   s¨   ddl m}  td td  d td td  d  ddtd  td  td    }| t¡}| t¡}| t¡}| |||gtttgƒ}t|ƒdkrPt|ƒdksRJ ‚d S )Nr   )rc   r–   é   é   )Úsympy.solvers.solvesetrc   r   r‚   rƒ   r   Úlen)rc   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sfJ ‚qGd S )Nú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ð  ddl m} m} ttt| ƒ| ƒdu sJ ‚ttt| ƒd | ƒdu s"J ‚ttt| ƒt| ƒ | ƒdu s2J ‚ttt| ƒt| ƒ | | ƒdu sDJ ‚ttt| ƒt| ƒ t| ƒ | ƒdu sXJ ‚ttt| ƒt| | ƒ t| ƒ | ƒdu snJ ‚ttt| ƒt| | ƒ t| ƒ | ƒdu s„J ‚tt|t| ƒ d | ƒdu s”J ‚ttt| ƒd t| ƒ d | ƒdu s¨J ‚ttt| ƒ|  | ƒdu s¶J ‚ttt| d ƒ| ƒdu sÄJ ‚ttt| d ƒt| ƒ | ƒdu sÖJ ‚ttt| ƒt| ƒ | ƒdu sæJ ‚tttt| ƒƒt| ƒ | ƒdu søJ ‚ttt| ƒ| ƒdu sJ ‚ttt| ƒd | ƒdu sJ ‚ttt| ƒt	| ƒ | ƒdu s%J ‚ttt| ƒt	| ƒ | | ƒdu s8J ‚ttt	| ƒt| ƒ t	| ƒ | ƒdu sMJ ‚ttt	| ƒt| | ƒ t	| ƒ | ƒdu sdJ ‚ttt	| ƒt| | ƒ t	| ƒ | ƒdu s{J ‚tt|t| ƒ d | ƒdu sŒJ ‚ttt| ƒd t	| ƒ d | ƒdu s¡J ‚ttt| ƒ|  | ƒdu s°J ‚ttt| d ƒ| ƒdu s¿J ‚ttt| d ƒt	| ƒ | ƒdu sÒJ ‚ttt| ƒt	| ƒ | ƒdu sãJ ‚tttt	| ƒƒt	| ƒ | ƒdu söJ ‚d S )Nr   ©r   ro   Tr•   r–   F)
Ú	sympy.abcr   ro   r]   r)   r6   r5   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s$J ‚tˆ tƒtjks.J ‚tˆ ˆ d ƒtjks:J ‚t t‡ fdd„ƒ tˆ tƒtjksMJ ‚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š   /  ó    c                      s   t ˆ d ˆ dƒS ©Nr•   r–   )r`   r‡   r™   r‡   rˆ   rš   0  rÅ   )	rP   r¥   r   rX   r   rE   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s!J ‚t
ddd} t
ddd}t | t | ttƒd  tƒt| |  tdƒƒksHJ ‚t dt d dttƒ  tƒttd	ƒƒks_J ‚t tttƒ tƒtƒ ksmJ ‚d S )
Nr˜   ÚanzT)ZnonzeroÚbbr‘   r–   é   éüÿÿÿ)rX   ro   r   rp   r   rI   r   rG   r   r£   r   rF   rE   )rÈ   rÉ   r‡   r‡   rˆ   Útest_solve_mul3  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s"J ‚t dtd  tƒtƒ ks0J ‚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srJ ‚d S )Nr˜   r–   é
   r•   r¿   )rX   r   r   rF   r   r‚   rp   ro   rG   r   r£   r‡   r‡   r‡   rˆ   Útest_solve_invert>  s   ""
ÿ2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s$J ‚t ttƒtj tƒtt	tjƒƒks7J ‚t t	tƒd tƒttdƒƒksHJ ‚d S ©Nr–   )
rX   r7   r   r   r¤   rF   r:   r8   rž   r9   r‡   r‡   r‡   rˆ   Útest_errorinversesL  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s1J ‚t| |d  | ƒt|d ƒksBJ ‚tdƒ\}}}}}}t| d d	|   d
 | ƒtddtj  td
ƒddtj  ƒksmJ ‚tt| ƒd | ƒtdƒks|J ‚tt| ƒd | ƒtd
ƒks‹J ‚t| tdd
ƒ d | ƒtdƒksJ ‚t| tddƒ d | ƒtdƒks¯J ‚t	t| d | d  d | ƒƒdksÂJ ‚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•   za11, a12, a21, a22, b1, b2é   r®   éþÿÿÿé   é   r¿   r¾   r   )r   rX   rF   r   r   rž   r   r¤   r%   r±   r
   rE   )r   r‚   Úa11Za12Za21Za22Zb1Zb2r‡   r‡   rˆ   Útest_solve_polynomialV  s$   $&"
ý$$&6(rÖ   c                  C   sH  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sSJ ‚ttt d dt   d t ƒƒ}tdd„ |D ƒƒrqt|ƒdkssJ ‚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s"J ‚d S )Nr¿   rÑ   r˜   r–   rÍ   r¯   é   r   F)Zexponentr¾   c                 s   s    | ]}t |tƒV  qd S r„   )Ú
isinstancer?   ©r†   rw   r‡   r‡   rˆ   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_ofn  s:   ,&	ÿ ÿ",*ÿ(ûÿrà   c                   C   sÞ   t tdt d ƒd t tƒttj tdƒƒksJ ‚t ttd ƒt d tƒtdƒks-J ‚t ttd ƒd tƒtdƒks>J ‚t ttƒd d tƒtdƒksOJ ‚t ttd	 ƒtƒtd
ƒks^J ‚t ttd ƒtƒtdƒksmJ ‚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s*J ‚ttˆd
 ƒd tdˆ ƒ ˆƒtdƒksAJ ‚ttdˆ tˆd d ƒ ƒd
 ˆƒtdƒksZJ ‚ˆd ˆd dˆd   ˆ tddƒ  ‰ tˆ ˆƒttddƒtddƒƒksJ ‚tdˆ d ƒtˆd ƒ tˆd ƒ ‰ tˆ ˆƒtdƒks J ‚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sYJ ‚ttˆƒttˆƒƒ d ˆƒttddƒtdƒd  d ƒkszJ ‚tˆƒtˆd ƒ ttˆƒƒ ‰ tˆ ˆƒtƒ ks•J ‚ˆd d tˆƒd d  ‰ tˆ ˆƒtddƒks°J ‚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s/J ‚ˆ| d  | d td| d  ƒ  ‰ tˆ ˆƒt| d ƒksOJ ‚tddˆ tddƒ  d ˆƒttddƒƒksiJ ‚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‰   Ö  s   €& z'test_solveset_sqrt_2.<locals>.<genexpr>c                 S   ó   h | ]}|j d d’qS ©T)Zchop©r|   rÙ   r‡   r‡   rˆ   Ú	<setcomp>Ø  ó    z'test_solveset_sqrt_2.<locals>.<setcomp>c                 S   rê   rë   rì   rÙ   r‡   r‡   rˆ   rí   Ù  rî   i´~ûÿi©æ  )r   rX   r%   rF   r   r   rŽ   r±   )r‚   ÚansZ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s!J ‚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sJ ‚|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   r1   r/   r   r
   r5   r   Z_argsrF   rA   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s0J ‚t ttdtt    tƒttt d t ƒtdt ƒ ksOJ ‚t ttt tt   tƒtt t tt  ƒtt ƒ ksnJ ‚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s"J ‚t tddt   tƒtdƒks3J ‚t dt td  d tƒtdƒksFJ ‚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ƒ ksJ ‚d S r©   )rX   r%   r   rE   r‡   r‡   r‡   rˆ   Útest_solveset_real_gen_is_pow+  s    r   c                   C   s  t dtt  ƒtƒ ksJ ‚t tt tƒtƒ ksJ ‚t tt t tƒtƒ ks'J ‚tdtƒtƒ ks1J ‚tttƒtƒtƒ ks=J ‚ttd d tƒtƒ ksKJ ‚tdt ttƒ tƒtƒ ks[J ‚tdt tƒtƒ ksgJ ‚tdt  dt d  ddt   tƒtƒ ks€J ‚d S )Nr•   r®   r–   éýÿÿÿ)r`   r   r   rE   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sJ ‚t td  dt  td d  d tƒtjks3J ‚d S )Nr   r•   r–   )rX   r   r   r£   r`   rH   r‡   r‡   r‡   rˆ   Útest_sol_zero_real<  s    6r  c                   C   sP   t ttd  d d tƒtƒ ksJ ‚t td ddtd    tƒtƒ ks&J ‚d S )Nr•   r˜   rÒ   )rX   r   rE   r‡   r‡   r‡   rˆ   Ú test_no_sol_rational_extragenousB  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s0J ‚t ttddƒ d tƒtdƒksBJ ‚t tttjd  d  tƒttjtdƒƒksZJ ‚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_1aG  s   $$ÿr  c                  C   s|   t ddd} t ddd}t| |d  |d td|d  ƒ  | ƒt|d ƒks)J ‚td|  | d  d | ƒtdƒks<J ‚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_rationalT  s   (
ÿ*r  c                   C   s6   t ttd td  ƒtƒttdƒtdƒ ƒksJ ‚d S rÆ   )rX   r   r   rF   r%   r‡   r‡   r‡   rˆ   Útest_solveset_real_log^  s   ÿr  c                   C   s<   t ddtd  dt   d tƒttddƒtjƒksJ ‚d S )Nr®   r–   rÊ   r  )rX   r   rF   r   r   r¤   r‡   r‡   r‡   rˆ   Útest_poly_gensc  s    ÿr  c                  C   sV  t dƒ} ttdd„ ƒ tttƒ|  ttjƒ t	tt
| tdtƒƒ|  | hƒ¡s(J ‚tttƒd tƒtddƒks8J ‚tttƒd tƒtju sFJ ‚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swJ ‚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ƒƒƒƒs)J ‚d S )Nr|   c                   S   s   t ttƒd tƒS r©   ©r`   r   r   r‡   r‡   r‡   rˆ   rš   j  ó    z test_solve_abs.<locals>.<lambda>r   r–   rÒ   r˜   r•   ræ   r¢   rÛ   )r   rP   r¥   r`   r   r   r   r£   r   rA   r@   rH   r   rX   rF   rE   r   r;   rp   ro   r^   r¸   r…   r   r5   rI   rG   rB   r   r   r¦   )r|   rµ   rß   ZrepsZeqabÚsir‡   r‡   rˆ   Útest_solve_absh  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	ƒƒs%J ‚t tt
tƒd dt
tƒ  d tƒtttdt t ƒtj	ƒƒsFJ ‚d S ©Nr–   r•   )r…   r`   r5   r   rB   r   r|   r   r   r¦   r1   r‡   r‡   r‡   rˆ   Útest_issue_9824ˆ  s   JFr  c                   C   s6   t ttd td  ƒtddƒktƒtddƒksJ ‚d S )Nr•   r¿   r˜   r¢   r–   )rX   r   r   r   rH   r‡   r‡   r‡   rˆ   Útest_issue_9565  ó   6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s+J ‚tt| d |d  ƒd | ƒtjks?J ‚d S )Nza bTr‘   r–   r˜   ræ   )r   rX   r%   rF   r   rE   )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s9J ‚tttƒtt ƒ |  tƒtjksLJ ‚d S )Nr‚   Tr—   r®   r˜   r–   )	r   rX   r   r   rF   r   r%   r   rE   ©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   r0   r   r   rF   r%   r‡   r‡   r‡   rˆ   Ú
test_atan2«  s   0r  c                  C   s6  t td ttdƒfdt dfƒd } tt| tƒƒttddƒƒks"J ‚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sPJ ‚t td d tdkfd	ƒ}t|ttj	d
t
tdƒtt dddƒƒkstJ ‚tt td tdkftdfƒt ttj	ƒtt dƒksJ ‚tt td tttƒftdfƒtƒtdƒks§J ‚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   r5   )rß   Zabsxm3r‚   rt   ru   r  r‡   r‡   rˆ   Útest_piecewise_solveset±  s2   $ þ&."ÿ
þ.""$$r  c                
   C   sT  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s¨J ‚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ks
J ‚d S ©Nr   )rZ   r   r   Ú	Complexesr‡   r‡   r‡   rˆ   Útest_sol_zero_complexá  ó   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s3J ‚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	ƒs4J ‚q!td d
t  d } t| tƒ}|D ]}|  t| ¡ ¡ ¡ }t|d	ƒsYJ ‚qFd 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Ø   ddl m} m} ttt| ƒd | ƒtt|td | t	 ƒt
jƒƒs#J ‚ttt| ƒt | ƒtt|td| t	 t	d   ƒt
jƒƒsBJ ‚tdt| ƒ | ƒt
jksPJ ‚ttt| ƒ t¡| ƒtt||t	 t ƒt
jƒƒsjJ ‚d S )Nr   ©r   r|   r•   r–   )rÃ   r   r|   r…   rZ   r   rJ   r   r
   r   r   r¦   rE   r    Úrewriter*  r‡   r‡   rˆ   Útest_solveset_complex_expþ  s   ÿ$ÿÿr,  c                  C   sT  ddl m} m} ttd|  dƒ| tjƒtdƒksJ ‚ttd|   dƒ| tjƒtjks,J ‚ttd|  dƒ| tjƒtjks=J ‚ttd| d	  d
ƒ| tjƒtdƒksQJ ‚ttd| d  dƒ| tjƒtjksdJ ‚ttd| d  dƒ| tjƒtdƒksxJ ‚ttd|  |ƒ| tjƒt	tjtt
|ƒt
dƒ ƒƒks”J ‚tdd|   d d| ƒ| tdƒfks¨J ‚d S )Nr   rŸ   rÒ   r®   r–   r  rÔ   éûÿÿÿr•   iq  r˜   éðÿÿÿlûÿÿÿx¿pÂEìA é*   rÓ   )rÃ   r   r‚   r`   r   r   r£   rF   rE   rG   r   r^   rŸ   r‡   r‡   rˆ   Útest_solveset_real_exp	  s   $$"(&(8,r0  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s2J ‚d S )Nr•   r®   r–   )rZ   r   r   rF   ro   r%   r	   r‡   r‡   r‡   rˆ   Útest_solve_complex_log  s   &ÿr1  c                   C   s°   t tdt d ƒd t tƒttj tdƒƒksJ ‚t tdt d ƒddt   t tƒttdƒ ddt  ƒks;J ‚t dt dtttƒ   tƒttjdtd  ƒksVJ ‚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   ÿ$ÿÿr2  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ƒ ƒs)J ‚d S rÏ   )rZ   r6   r   r+  r   r…   rJ   r   r|   r   r   r¦   )r“   r‡   r‡   rˆ   Útest_solveset_complex_tan%  s   ÿr3  c                  C   s.
  ddl m}  ttttƒtƒttt| dt	 |  ƒt
jƒtt| dt	 |  t	 ƒt
jƒƒƒs-J ‚ttttƒd tƒtt| dt	 |  t	d  ƒt
jƒƒsJJ ‚ttttƒtƒttt| dt	 |  t	d  ƒt
jƒtt| dt	 |  t	tddƒ  ƒt
jƒƒƒszJ ‚ttttƒttƒ tƒttt| d|  t	 t	tddƒ  ƒt
jƒtt| d|  t	 t	tddƒ  ƒt
jƒƒƒs±J ‚tttƒd ttƒd  tƒt
jksÅJ ‚ttttƒt
j tƒttt| d|  t	 t	tddƒ  ƒt
jƒtt| d|  t	 t	d  ƒt
jƒƒƒsøJ ‚ttttt ƒttƒ tt
jd	ttt| d|  t	 ƒt
jƒttt| t td|  t	 ttd
t t ƒ ƒ  dttƒ   ƒt
jƒt
jƒƒƒsAJ ‚tttdt ƒttƒ tdt ƒttƒ  d tƒtt| | t	 tddƒ t	d  ƒt
jƒƒsrJ ‚ttdttƒ ttƒ d tƒttt| d|  t	 ttdƒtdtdƒ ƒ dtdƒ  ƒ t	 ƒt
jƒtt| d|  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
jƒƒsìJ ‚ttttd ƒtddƒ ƒttt| d|  t	 dtdtdƒ d ƒ  dt	  ƒt
jƒtt| d|  t	 dtdtdƒ d ƒ  dt	  ƒt
jƒƒƒs8J ‚ttttd ƒttd ƒ ƒttt| d|  t	 dt	 d  ƒt
jƒtt| d|  t	 dt	 d  ƒt
jƒtt| d|  t	 dt	 d  ƒt
jƒtt| d|  t	 dt	 d  ƒt
jƒtt| d|  t	 dt	 d  ƒt
jƒtt| d|  t	 dt	 d  ƒt
jƒƒƒs¹J ‚ttttdƒt d ƒd ƒttt| dtdƒ d|  t	 t	 tdtdƒ ƒ  d ƒt
jƒtt| dtdƒ d|  t	 tdtdƒ ƒ t	  d ƒt
jƒƒƒs
J ‚ttttt	t ƒt t	d t ƒ ƒƒttt| d|  d ƒt
jƒtt| d|  d ƒt
jƒtt| d|  tddƒ ƒt
jƒtt| d|  tddƒ ƒt
jƒtt| d|  tddƒ ƒt
jƒtt| d|  tddƒ ƒt
jƒƒƒswJ ‚tttdt ƒƒttt| d|  t	 d t	d  ƒt
jƒtt| d|  t	 d t	d  ƒt
jƒƒƒsªJ ‚tttdt ƒt dt ƒ tt
jƒttt| | t	 d t	d  ƒt
jƒtt| | t	 d dt	 d  ƒt
jƒtt| | t	 d dt	 d  ƒt
jƒtt| | t	 d dt	 d  ƒt
jƒtt| | t	 d dt	 d  ƒt
jƒtt| | t	 d t	d  ƒt
jƒƒƒs*J ‚ttdttƒ tdt ƒ d tƒttt| d|  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| d|  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| d|  d ƒt
jƒtt| d|  d ƒt
jƒƒƒsJ ‚d S ) Nr   rì   r–   r•   r˜   r®   r×   r¿   rÛ   rÒ   r¾   r¢   rå   rÍ   r¯   rÑ   rø   é-   éK   éi   é   ræ   é   rÊ   rç   rÓ   éC   é9   é´   ih  é–   )!rÃ   r|   r…   rX   r5   r   rI   rJ   r   r   r   r¦   r1   r   rE   rZ   r¤   r`   r‚   ro   r£   rB   rG   r
   r   r   r   r6   r/   r%   r4   rL   r2   rì   r‡   r‡   rˆ   Útest_solve_trig+  s  ÿÿ ÿ"&ÿÿ(&ÿÿ(( ÿÿ  ÿ
þþþÿ
ÿ2&
ÿ (
ÿÿÿ(
ÿÿÿý"
ÿ88þ$$$$$$ú<<þ&ú$$þ$ $$$$ ú"
*
ÿÿÿ
ÿÿÿ
þþ(
ÿÿÿ
ÿÿÿþýýý
ÿ&
þr=  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s1J ‚tttƒttƒ tƒttttdƒd ƒƒƒksJJ ‚tdtdt ƒ d tƒttdƒ d tdƒd ƒksgJ ‚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s¦J ‚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ƒƒƒsIJ ‚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ƒƒƒs–J ‚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ƒƒƒs.J ‚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ƒƒƒseJ ‚tttƒttjƒtdƒksuJ ‚ttttƒttj
ƒttt| td|  t t  ƒtjƒtt| d|  t t ƒtjƒƒƒs£J ‚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ƒƒƒs9J ‚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ƒ¡sjJ ‚ttdt ƒtdt ƒ ƒ #ttt	tdt ƒtdt ƒ dƒtj
ƒ¡sJ ‚d S )Nr|   r   r¿   r–   r˜   rÒ   r•   r®   rå   r¾   rÍ   r¯   rÑ   ræ   rÊ   rã   rÓ   r7  rç   )$r   r`   r    r   r"   r   rE   r1   rA   r   r   rX   r#   rF   r   r%   r   r$   r¤   r!   r…   rZ   r
   rI   rB   r   r   r¦   r   r/   r£   r5   rL   r2   r	   r   rì   r‡   r‡   rˆ   Útest_solve_hyperbolicŠ  sª    
ÿ
ÿ
ÿ
ÿ"
ÿ&"
ÿ
ÿ(ÿ($þ0848ü0(þ((,,((ú@@þ",,þ((þ  þ þ þ$((þ((ÿÿ&ÿr>  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ƒƒƒƒs4J ‚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ƒƒƒƒsrJ ‚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ƒƒƒsTJ ‚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ƒƒƒƒs±J ‚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`   r5   ro   r   rA   r   rI   rB   r   r|   r   r   r¦   r"   r
   r%   rp   r1   rL   r2   r   r   r£   rF   )r?  r‡   r‡   rˆ   Útest_solve_trig_hyp_symbolicÜ  sB     þ ((þ*&ÿÿ<@<ý
þ0((þ<<þ
ÿ"4ÿr@  c                  C   sZ  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ƒƒƒs¨J ‚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ƒƒƒƒs«J ‚d S rÆ   )r…   r`   r    r   r!   rI   rB   r   r|   r
   r   r   r%   r   r¤   r¦   r/   r+  r   rD   )Úf1Úf2r‡   r‡   rˆ   Útest_issue_9616û  sR   @6ÿÿF6ÿÿ
ûBÿ$þ8ÿÿ$þ8ÿÿ$þ@$þörC  c                   C   s<   dt ttƒt tƒvsJ ‚dtttƒd t tƒvsJ ‚d S ©Nr   r•   )rX   r5   r   rZ   r   r‡   r‡   r‡   rˆ   Útest_solve_invalid_sol  s   "rE  c                  C   s¦   ddl m}  ttttƒtƒtt| | t ƒt	j
ƒƒsJ ‚ttttƒtƒtt| | t td  ƒt	j
ƒƒs4J ‚ttttƒttƒ tƒtt| | t td  ƒt	j
ƒƒsQJ ‚d S )Nr   rì   r–   r®   )rÃ   r|   r…   rX   r5   r   rJ   r   r   r   r¦   r1   rì   r‡   r‡   rˆ   Útest_solve_trig_simplified  s   ÿÿÿrF  c                  C   sÎ  t tttƒ d tƒttdƒƒksJ ‚t ttƒt tƒttdƒ ƒks%J ‚t tdt  tƒtttdƒƒ tdƒ ƒks=J ‚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spJ ‚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s±J ‚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sAJ ‚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sJ ‚t |t ttd ƒ  	t¡tƒtdtt
dƒt
|ƒ d ƒ ƒks¤J ‚t ttd ƒttd ƒ d tƒtƒ k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sJ ‚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sPJ ‚t tttƒ dt  d tƒttdttdƒ ƒ ƒƒksoJ ‚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sSJ ‚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s–J ‚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sNJ ‚t tdt ƒt ƒttttƒ d ƒkseJ ‚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!   rE   r¸   r   ZExp1r   r
   r1   r*   r‚   )rï   rß   Úresultro   rG  rp   r‡   r‡   rˆ   Útest_solve_lambert&  s¶   &$ÿ",ÿ(
&ÿ
ÿÿ$*ÿ *
ÿ
ÿ*6
ÿ
ÿ.,
ÿ42
ÿ,:
ÿ
ÿ 
ÿ,*
ÿ,VV,ý
ÿ@
(ÿ"&ÿ 
ÿ ÿ
ÿþÿrJ  c                  C   sN   t ddƒ} tt|  | t  tƒt| |  tt| ƒ |  ƒ t| ƒ ƒks%J ‚d S )Nr¾   r¿   )r   rX   r   rF   r   r   )ro   r‡   r‡   rˆ   Útest_other_lambert}  s   
 ÿrK  c                  C   sX  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s6J ‚t| dƒd d | dƒtj
ƒtddƒksLJ ‚t| dƒd d | dƒƒtt tƒksaJ ‚ttd dƒttƒksnJ ‚tttƒttƒ ttƒƒtttƒƒksƒJ ‚tdtj
dtj
ksJ ‚tdƒtjks˜J ‚td	tj
dtj
ks¤J ‚td
tj
dtjks°J ‚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sJ ‚tttƒd dkttj
ƒtdtƒks4J ‚ttttƒd tƒtttdt t t ƒtjƒƒsPJ ‚tttttƒdƒtƒtttdt t t ƒtjƒƒsmJ ‚ttd | dƒ d tƒt	| dƒ d ƒ t	| dƒ d ƒhksJ ‚ttttƒƒdktt dt¡dt dt¡ksªJ ‚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   rE   r‚   rF   r%   r£   r
   r5   r1   r   r   rM   rH   r   r…   rJ   r   r|   r   r¦   r/   r   r  )rt   rL  r‡   r‡   rˆ   Útest_solveset„  s8   ÿ,**""$&
 &*8*ÿF8rM  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ƒƒƒsIJ ‚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ƒƒƒƒs²J ‚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ƒƒƒƒskJ ‚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   rB   )Zk1Zk2Zk3r‡   r‡   rˆ   Útest_multi_exp©  sb   Xÿÿ" vÿþÿ&"N4ÿ.ÿ4ÿÿÿü
ÿ*$\4ÿ.ÿ4ÿÿzÿ~þþÿúÿrN  c                  C   sì  ddl m}  ddlm} ddlm} | |d d g|gtjgƒtddƒks'J ‚dd	lm}m} | || |d g||g||gƒtd
ƒksEJ ‚| || |d g||g||gƒtdƒks[J ‚| || || d g||g||gƒttdƒd tdƒ d fƒks~J ‚| |d |d g||g||gƒtdƒks”J ‚t	| || g||g||gƒt
tt|ff|| fƒt|ƒƒtt|ff| |fƒt|ƒƒƒƒsÃJ ‚| || || d g||g||gƒtjksÚJ ‚| || || |d g||g||gƒtjksòJ ‚| || || |d g||g||gƒtjksJ ‚ddlm}m}m} | || | d || | d || | d g|||g|||gƒtdtj tj fƒksDJ ‚ddlm}m}m}m}m} | |d |d  d || g||g||gƒtd
dƒkspJ ‚| |d d |g||g||gƒtddƒksˆJ ‚t	| |d |d  g||g||gƒt
tt|ff|t|ƒ fƒt|ƒƒtt|ff|t|ƒfƒt|ƒƒtt|fft|ƒ |fƒt|ƒƒtt|fft|ƒ|fƒt|ƒƒƒƒsÞJ ‚| |t|ƒ d |t|ƒ g||gtdtƒtddƒgƒtdtdfƒksJ ‚| |t|ƒ d |t|ƒ g||gtddƒtdtƒgƒtdƒks'J ‚t	| |t|ƒ | |t|ƒ g||gtddƒtdtƒgƒt
tt|ff|dfƒtt||fƒtddƒƒƒtt|ffd|fƒtt||fƒtdtƒƒƒƒƒstJ ‚d S )Nr   )Ú_solveset_multi)r£   r™   r–   r•   ©r•   ©r¢   rŸ   ©r¢   r•   )r•   r¢   )r•   r–   ©r   r‚   rƒ   r˜   )r~   Úthetarƒ   r   r‚   )r•   r   )r¢   r   r¢   )r   r•   )r°   rO  Úsympyr£   rÃ   r   r   rF   r‚   r…   rI   rB   r   rK   rE   rƒ   r¤   r~   rT  r   r1   r5   rH   r   )rO  r£   r   r‚   rƒ   r~   rT  r‡   r‡   rˆ   Útest__solveset_multiÆ  sb   *,,F,
þ.028ÿ
ÿ<0$  ü"ÿ
ÿ"ÿ
ÿ$ÿ**þÿrV  c                	   C   sž  t tttƒd ttƒd  dƒttjdtju sJ ‚t ttd tttƒ  dƒttjd ttttd tttƒ  d dƒtjƒ¡sDJ ‚t	t tt
 tt
t ƒtt
 t ƒ  d dƒtƒtttdt t td  ƒtjƒƒspJ ‚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ƒ¡s±J ‚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   r5   r   r1   r   r£   r   rA   r…   r
   r   rJ   r   r|   r   r¦   r   r‚   rƒ   r‡   r‡   r‡   rˆ   Útest_conditionsetø  s$   (ÿ$*ÿ0 ÿÿ$ÿ
ÿrW  c                   C   s4   t tttƒtƒtƒtttttƒtƒtjƒksJ ‚dS )z? Checking equality of different representations of ConditionSetN)r`   r   r6   r   r‚   rA   r   r   r‡   r‡   r‡   rˆ   Útest_conditionset_equality  s   4rX  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s(J ‚t td d ttddƒƒtdƒks;J ‚d S )	Nr–   r¾   r   r˜   r•   r®   rÓ   rÍ   ©r`   r   rH   r   rF   r‡   r‡   r‡   rˆ   Útest_solveset_domain  s   *&*rZ  c                  C   sL   t ttƒttƒ ttjƒ} tttttƒttƒ dƒtjƒ}|  |¡s$J ‚d S r  )	r`   r   r   r5   r   r£   rA   r   r   )Zsolutionrú   r‡   r‡   rˆ   Útest_improve_coverage  s    r[  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ƒ ks,J ‚t|ttjƒtƒ ks8J ‚d S )Nr•   r–   r®   )r   r   r`   r   r£   rE   )Zexpr1Zexpr2r‡   r‡   rˆ   Útest_issue_9522  s   *r\  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s3J ‚t ttƒttjƒdgksAJ ‚t t	tƒttjƒt
d t
tddƒ gksWJ ‚t ttƒd ttjƒt
tddƒ gkslJ ‚ttdd„ ƒ d S )Nr–   rÍ   r˜   r•   r¢   c                   S   s   t tttƒƒttjƒS r„   )rd   r5   r   r   r   r   r‡   r‡   r‡   rˆ   rš   -  s    ztest_solvify.<locals>.<lambda>)rd   r   r   r£   r   r¤   r%   r
   r   r1   r   r   r5   rP   ÚNotImplementedErrorr‡   r‡   r‡   rˆ   Útest_solvify&  s   *
ÿ,*r^  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sYJ ‚t|ttj	ƒd
dgksfJ ‚t|ttj	ƒdgksrJ ‚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   r5   rd   r   r£   )Zp1Zp2Zp3Zp4r‡   r‡   rˆ   Útest_solvify_piecewise0  s   (*$$ra  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 s*J ‚d S )Nr   Tr—   r   )r   rd   r5   r   r   r£   r   r™   r‡   r‡   rˆ   Útest_abs_invert_solvify=  s   ""rb  c                     s:  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sZJ ‚|tdgd
gdggƒkshJ ‚t|t ttƒ\}}|tg d¢g d¢g d¢gƒks‚J ‚|tdgdgd
ggƒksJ ‚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s$J ‚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sQJ ‚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                      ó   t ˆ ƒS r„   )r[   r‡   ©Zeqns3r‡   rˆ   rš   Y  ó    z*test_linear_eq_to_matrix.<locals>.<lambda>c                      s   t ˆ tttgƒS r„   ©r[   r   r‚   r‡   rd  r‡   rˆ   rš   [  rÅ   c                      s   t ˆ tdt tgƒS r©   )r[   r   ro   r‚   r‡   rd  r‡   rˆ   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[   ÚMatrixro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rP   r¥   rn   )Zeqns1Zeqns2rL  ÚBr‡   rd  rˆ   Útest_linear_eq_to_matrixE  s>   6J""^0( .ÿ*ÿÿ ÿ
ÿÿrk  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s*J ‚d S )Nr–   r˜   r®   r¿   )r[   r   ro   r   r‚   ri  r‡   r‡   r‡   rˆ   Útest_issue_16577n  s   ("ÿrl  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ssJ ‚tˆgˆˆ| |f¢R Ž |ksƒJ ‚t|ˆˆ| |fƒ|ksJ ‚t|gˆˆ| |f¢R Ž |ks J ‚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sqJ ‚tg d¢g d¢g d¢gƒ‰ tg d¢ƒ‰tˆ ˆftt
t	fƒtƒ ks”J ‚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sJ ‚t d#ƒ\}	‰‰}
ttg d ¢ddddd|
ggƒƒt|	dˆ|
ˆfƒksCJ ‚t d$ƒ\}	‰‰}
ttg d ¢ddddd|
ggƒƒt|	dˆ|
ˆfƒksgJ ‚t d%ƒ\}	‰}t|td&ƒƒt|	dˆd|fƒksJ ‚|	|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s³J ‚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sJ ‚ttt
t t
t t
 ƒgtt
gƒtdfhks6J ‚ttttd  td t
 ƒgtt
gƒt
t
fhksQJ ‚tg tgƒtƒ ks]J ‚tdgtgƒtfhkskJ ‚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                      rc  r„   ©r\   r‡   )ÚEqnsr‡   rˆ   rš   ˆ  re  ztest_linsolve.<locals>.<lambda>c                      rc  r„   rn  r‡   )Úx1r‡   rˆ   rš   ‰  re  c                      s
   t ˆ ˆƒS r„   rn  r‡   )rp  Úx2r‡   rˆ   rš   Š  s   
 c                      s   t ˆ fˆˆƒS r„   rn  r‡   )rL  rp  rq  r‡   rˆ   rš   ‹  r    c                      s   t ˆ ˆˆˆƒS r„   rn  r‡   )rL  rj  rp  rq  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š     ó   & c                   S   s   t ttƒt tt gttgƒS r„   )r\   r1   r   r‚   r‡   r‡   r‡   rˆ   rš     rh  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   ri  rF   r\   r   rP   r¥   rn   r   rƒ   r‚   ro   rp   rq   rr   rs   ru   rE   r
   rN   r±   Úfree_symbolsr   Úsympy.physics.unitsrw  rx  ry  r   r   )Úx3Úx4ÚMZsystem1rµ   Zsystem2ZJ1ZJ2Z	AugmatrixÚx0rv  rt   rw  rx  ry  ZkNr‡   )rL  rj  ro  rp  rq  rˆ   Útest_linsolves  s¤   ,0ÿ(  "
ÿFF ü&*
ÿ
ÿ
ÿ
ÿÿÿ
ÿ&(
ÿ*226 &r  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¡ q&||t|ƒfS )Nzx:{}zy:{}r•   )r   Úformatr   r¤   r   ÚextendrF   )r|   r»   r¼   ÚsymsÚeqsrµ   ZxiÚyir‡   r‡   rˆ   Ú_mk_eqs_solä  s   z/test_linsolve_large_sparse.<locals>._mk_eqs_soliô  rn  )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s#J ‚t g d¢g d¢gƒ} t| ƒtdƒks7J ‚d S )	N)r•   r•   r–   )r   r•   r–   rt  )r–   r•   r¢   )r•   r˜   r¢   )r•   r•   r×   )r•   r¢   r˜   )r¿   r–   )r=   r\   r   r‚   rƒ   rF   )rL  rj  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sªJ ‚tt
|ttjƒ|
ƒs¶J ‚tt
|ttjƒt||	|
ƒƒsÆJ ‚tt
|ttjƒt||ƒƒsÕJ ‚t
|ttjƒtdƒksâJ ‚t
|ttjƒtjksîJ ‚t
|ttjƒtjksúJ ‚t
tttddƒƒtjks	J ‚d S )	Nr|   r˜   r¾   r–   r7  r•   r   rÒ   )r   r   r   r5   r   rB   r   r   r   r¦   ra   r£   rF   r…   rI   rE   rH   )r|   rA  rB  Ú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s=J ‚tttdt t	 t	d  ƒtj
ƒf}tt ttƒd gtgƒtt|ƒƒƒscJ ‚t td d gtgƒtddƒksuJ ‚tttfƒ}t tt dgttƒ|ks‰J ‚t dtt gttƒ|ks—J ‚t tt tt gttƒ|ks§J ‚t tdgttƒtdtfƒks·J ‚tdƒ}t |tƒdg|tƒtƒtdtfƒksÏJ ‚t |tƒdg|tƒ|tƒƒtd|tƒfƒksçJ ‚tdtƒ}t |dg|tƒtdtfƒksüJ ‚t td d gttƒgƒttjfƒksJ ‚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sPJ ‚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•   rQ  rP  rt   rL  r˜   )rc   r   rE   r   r‚   rF   rB   r   r|   r   r¦   r…   r5   r   r   rM   r   r¤   )ÚsystemÚsolnrt   rL  r‡   r‡   rˆ   Útest_nonlinsolve_basic  s2    $($  (0
 ,*(*<ÿr’  c                  C   s6   t ttft tfƒ} tttƒt gttƒ| ksJ ‚d S r„   )rF   r‚   rc   r   r   )r‘  r‡   r‡   rˆ   Útest_nonlinsolve_abs4  s   "r“  c                   C   s.   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   ó   t td d gg ƒS r  ©rc   r   r‡   r‡   r‡   rˆ   rš   :  rg  z2test_raise_exception_nonlinsolve.<locals>.<lambda>c                   S   ó   t td d gƒS r  r•  r‡   r‡   r‡   rˆ   rš   ;  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š   <  s   . )rP   Ú
IndexErrorr¥   r]  r‡   r‡   r‡   rˆ   Ú test_raise_exception_nonlinsolve9  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ƒ|ƒs<J ‚d S rÆ   )rc   r5   r   r1   r   rE   rB   r   r|   r   r¦   rF   r…   )Úsoln1r‘  r‡   r‡   rˆ   Útest_trig_system?  s   ($(rš  c               
   C   s¸  t t td  tt ƒttƒ d g} ttttt td  ƒtjƒttttt ƒtjƒf}t	|ƒ}ttttt ƒtjƒttttt td  ƒtjƒf}t	|ƒ}|| }t
t| t tgƒ|ƒs^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   r5   rB   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_failH  s&   $ÿÿ@"&ÿ"&ÿ$rœ  c                  C   sp  t ddd\} }}}}}}t| | | | |  g| |gƒtd|fƒks$J ‚|d ||  || g}t|||gƒtd| | fƒksBJ ‚|| | | }|| ||  ||  ||  }	|| | || |  || |  || |  }
|| | | d }||	|
|g}d| | d| t|ƒtdƒ f}d| | d| t|ƒtdƒ f}t||ƒ}t|||||gƒ|ks¶J ‚d S )	Nzx, y, z, a, b, c, dT)Zextended_realr   r–   ©r   r   r•   r¢   )r   rc   rF   )r   r‚   rƒ   ro   rp   rq   rr   r  Úeq1Úeq2Úeq3Úeq4Úsol1Úsol2r‘  r‡   r‡   rˆ   Ú%test_nonlinsolve_positive_dimensional`  s   .$ 0""
r¤  c                  C   s‚  t ddd\} }}t| d | d | d | g| |gƒtjks!J ‚| d |f}t| | d d | | d g| |gƒt|ƒksAJ ‚| d |d  g}t| |f||fƒ}tt|ƒ |ft|ƒ|fƒ}|| }t|| |gƒ|ksqJ ‚| d |d  g}t|| f||fƒ}t|t|ƒ f|t|ƒfƒ}|| }t||| gƒ|ks¡J ‚| d | d | | d g}t|| |fƒt||| fƒks¿J ‚d S )Nr·   Tr‘   r–   r®   r˜   )r   rc   r   rE   rF   r   )r   r‚   rƒ   r“   r  Ú	soln_realÚsoln_complexr‘  r‡   r‡   rˆ   Útest_nonlinsolve_polysyst  s    02$r§  c                  C   s2  t ddd\} }}}| | | |d  d g}|| |d  d | }| |f}t|| |gƒt|ƒks5J ‚|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s—J ‚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ƒs8J ‚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ƒs´J ‚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   r5   r‚   rB   r   r
   r   r   r   r   r¦   r   r   )r|   r  r‡   r‡   rˆ   Útest_nonlinsolve_complexž  s4   &8
ÿ ÿÿÿ4"ÿÿ$þ
ý0,þrª  c                  C   s8  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sXJ ‚t| d |d t| ƒ  g|| gƒ|ksnJ ‚t| d |d t| ƒ  g|| gƒ|ks„J ‚t| d |d t| ƒ  g| |gƒ|ksšJ ‚d S )Nr·   Tr‘   r–   )r   rF   r   r%   r   rc   )r   r‚   rƒ   r™  Zsoln2Zsoln3Zsoln4r‡   r‡   rˆ   Útest_solve_nonlinear_trans±  s   ,,,,0r«  c                   C   sX  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ƒƒsIJ ‚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ƒƒsªJ ‚d S )NrÒ   r–   r˜   r®   r×   )r…   rc   r   r‚   r5   rF   rB   r   r|   r   r   r¦   r1   r‡   r‡   r‡   rˆ   Útest_issue_19050¿  s   4:ÿÿ"LJÿÿr¬  c                  C   sì   t tƒt tƒ ttƒttƒ d g} ttdt t fdt t tftdt t t fdt t t tfƒ}t| ttgƒ}tt	|ƒt	|ƒƒD ]$\}}t
|ƒt
|ƒ  krXdks[J ‚ J ‚tdd„ t||ƒD ƒƒsiJ ‚qEt
|ƒt
|ƒkstJ ‚d S )Nr•   r–   c                 s   s    | ]
\}}|  |¡V  qd S r„   )r   )r†   ro   rp   r‡   r‡   rˆ   r‰   Ñ  rŠ   z#test_issue_16618.<locals>.<genexpr>)r5   r   r‚   r1   rF   r|   r   rc   r   r   r±   rŽ   )Zeqnrï   rµ   Zi0Zj0r‡   r‡   rˆ   Útest_issue_16618É  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_17566Õ  s   <ÿr°  c                  C   sh   t dƒ\} }tdd|  d|   d|   dd|  d|    g|| ƒttdƒ tdƒ dfƒks2J ‚d S )	Nzn mr®  r–   r®   rÔ   r˜   r¯  r•   )r   rc   rF   r   )r|   r{   r‡   r‡   rˆ   Útest_issue_19587Ú  s   8ÿr±  c                  C   sœ  t td td  ƒt dƒ tt d g} t| ttgƒtddƒks"J ‚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   r5   rƒ   r   r   r
   r   rB   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   sp  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ƒ|ƒsrJ ‚t| d  |d  ttƒ||   g}	ttttƒd d  ƒ}
ttttƒd d  ƒttƒ }t|
|f|
 | fƒ}t|	| |gƒ|ks¶J ‚d S )Nzx, yTr‘   r–   r•   r˜   r|   )r   r   r5   rƒ   r   r   r   r
   r   r   r   rB   r   r¦   rF   r…   rc   r~   r6   r   r%   )r   r‚   r…  r|   r¥  r´  Zimgr¦  r‘  r  r¨  Ús_yr‡   r‡   rˆ   Útest_issue_5132_2÷  s   ,L
$ rº  c                  C   sB   t ddd\} }}}t| d |  | | g| |gƒddhksJ ‚d S )Nz
a, b, c, dTr‘   r–   ru  r  )r   rc   )ro   rp   rq   rr   r‡   r‡   rˆ   Útest_issue_6752
  s   .r»  rR   c               	   C   s@  ddl m} m}m}m}m}m}m}m}m	}m
}	m}
m}m} ttt|||tg}t||   t|   td|  d|  d|   ||  ||   |d| d|  d|   t|  ||  |d| d|  dt   ||  |t  |dt d|	  d|
   |t  t|
  td|
 d|   ||
  g}tt||ƒƒdksžJ ‚d S )Nr   )rr   rs   rt   ru   rv   rw   rx   ry   rz   ÚorG  r}   r~   r•   )rÃ   rr   rs   rt   ru   rv   rw   rx   ry   rz   r¼  rG  r}   r~   ro   rp   rq   r|   r{   r±   rc   )rr   rs   rt   ru   rv   rw   rx   ry   rz   r¼  rG  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sFJ ‚| 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…  Z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sHJ ‚t||| |  f| |fƒtjksZJ ‚|d
7 }t||f| |fƒtjkslJ ‚d S )Nzx yTr‘   r–   rÍ   r˜   é¿   r¯   i‡  r¾   )r   r%   r   rc   r   rE   )r   r‚   Úe1Úe2ro   rp   rï   r‡   r‡   rˆ   Útest_issue_27773  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   )rp  Úy1Zr1rq  Úy2r}  Úy3Zr3ÚvrA  rB  rŠ  ÚFZg1Zg2Zg3ÚGrL  rj  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sJJ ‚d S )Nrt   r–   r˜   r   )r   r   r   r‚   r   r   r   rA   r   r   rc   )rt   rA  rB  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sDJ ‚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–   rR  r•   )rb   r   r‚   r   rE   rF   r  )r  r‘  r‡   r‡   rˆ   Útest_substitution_basicj  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slJ ‚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   r6   rD   rF   r%   rb   r   r   r5   r   r   r
   r   rB   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_substitutionx  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   r”  r  ©rb   r   r‡   r‡   r‡   rˆ   rš   ”  rg  z*test_raises_substitution.<locals>.<lambda>c                   S   r–  r  rÒ  r‡   r‡   r‡   rˆ   rš   •  r
  c                   S   s   t td d gttƒgƒS r  )rb   r   r5   r‡   r‡   r‡   rˆ   rš   –  ó    c                   S   s   t td d gtƒS r  rÒ  r‡   r‡   r‡   rˆ   rš   —  rg  c                   S   s   t td d gdƒS r  rÒ  r‡   r‡   r‡   rˆ   rš   ˜  rg  )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saJ ‚ J ‚||kshJ ‚|jD ]}t
|ƒdksvJ ‚qkd 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>¨  rg  z$test_issue_21022.<locals>.<listcomp>c                 S   s   g | ]}|j ‘qS r‡   )r{  rÙ  r‡   r‡   rˆ   rÚ  ª  r
  r.  i€  é€   r¿   rÓ   rÊ   éøÿÿÿr®   )Zsympy.core.sympifyr×  r   rŒ   r   r  Úunionrc   rF   r%   r±   Úargs)r…  rØ  Zsybr(  rï   rI  r‡   rÖ  rˆ   Útest_issue_21022›  s:   	
hp4þhp4þjr4þjr4þö(
ÿ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sPJ ‚d S )Nr4  ræ   rÍ   r   )r   r5   r‚   r1   r}   rƒ   rc   rF   )rž  rŸ  r   r¡  r‡   r‡   rˆ   Útest_issue_17933Â  s    $ÿrà  c                	   C   sX   t ttt tttdt t ƒ  gttgƒtt t t	t
ttt ƒtjƒfƒƒs*J ‚d S )NrÒ   )r…   rc   ry   r{   r   r   rF   r|   r
   rB   r   r   r¦   r‡   r‡   r‡   rˆ   Útest_issue_14565Ì  s   *"ÿrá  c                  C   sn   t ddd} tttƒd ttjƒtƒ ksJ ‚tttƒ|  ttjƒtƒ ks&J ‚tt| dƒ| tjƒtƒ ks5J ‚d S )Nrp   Tr—   r•   r¢   )r   r`   r   r   r   r£   rE   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s$J ‚d S r„   )r`   r   r   ro   r   r£   r‚   r   r‡   r‡   r‡   rˆ   Útest_issue_9611Ý  s   &&rã  c                   C   s>   t td t ttjƒttjttt ƒ tt ƒƒƒksJ ‚d S rÏ   )r`   r   ro   r   r£   rG   rF   r%   r‡   r‡   r‡   rˆ   Útest_issue_9557â  s   ÿrä  c                  C   sž   t ddd} t ddd}t| d d | tjƒtdƒksJ ‚t| tddƒ d | tjƒtjks0J ‚t| d | | tjƒtt|ƒtddƒ  t|ƒ ƒksMJ ‚d S )	Nr   Tr‘   r‚   r˜   r•   r¢   r¿   )	r   r`   r   r£   rF   r   rE   r   r   rŸ   r‡   r‡   rˆ   Útest_issue_9778ç  s   "&ÿrå  c                  C   sÚ   t ttddƒ d ttjƒtjksJ ‚t ttddƒ d ttjƒtjks&J ‚tdtddƒ  ƒ} t ttdƒ d ttjƒ| ksAJ ‚ttdƒ d  tt| ƒd ¡dksUJ ‚ttdƒ d  tdtddƒ  ¡dkskJ ‚d S )Nr˜   r–   r®   r  r   rÒ   )	r`   r   r   r   r£   rE   rF   r¸   rŒ   )rï   r‡   r‡   rˆ   Útest_issue_10214ð  s   &&"(0ræ  c                   C   s(   t tttƒƒd ttjƒtjksJ ‚d S r©   )r`   r   r5   r   r   r£   rE   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   rE   r‡   r‡   r‡   rˆ   Útest_issue_9953þ  r"  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sEJ ‚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©   rf  r‡   r‡   r‡   rˆ   rš     s    ÿc                   S   s   t td t gttgƒS r©   rf  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š     ó    ÿ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š     rí  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sJ ‚t| t tjƒttt dt dt    htjƒks5J ‚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siJ ‚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   s4  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sqJ ‚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¦   rC   r   rI   rE   )
rž  rŸ  r   r¡  rß   Zeq5Zeq6Zeq7Zeq8Zeq9r‡   r‡   rˆ   Útest_integer_domain_relational-  s(   .,$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ƒ¡s(J ‚t| |tƒƒtd  |tƒtjƒ t|tƒt| |tƒƒtd  dƒtjƒ¡sPJ ‚d S )Nrt   ru   r–   r   )	r   r`   r   r   r   r£   r   rA   r   )rt   ru   r‡   r‡   rˆ   Útest_issue_10555G  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s:J ‚d S )Nr•   rÒ   r   )r   r`   r   r£   rH   r  r   rF   r¸   r   r   rò   r‡   r‡   rˆ   Útest_issue_8715P  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s,J ‚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srJ ‚d S r  )rƒ   r   r   r5   r‚   rG   r   r£   rF   r   r`   r%   r~   r   r6   r   )rß   r‘  r“   r‡   r‡   rˆ   Útest_issue_11174X  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sQJ ‚t|| tjƒ|ks\J ‚d S )Nr   Tr‘   r‚   r–   r•   r¢   )r   r%   rD   rF   r`   r   r£   )r   r‚   rß   rŸ  r‘  r‡   r‡   rˆ   Útest_issue_11534c  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s#J ‚d S )Nr–   r®   r˜   r  r   r•   )r`   r   r   r£   rI   rH   r  r   r‡   r‡   r‡   rˆ   Útest_issue_10477n  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s(J ‚d S )Nr   r•   rÍ   )r`   r5   r‚   rH   r   rF   r   r   )rw   r‡   r‡   rˆ   Útest_issue_10671s  s   $
&rù  c                  C   sŽ   t tt d d ƒ } t| dkt tjƒttdƒtƒksJ ‚t| dk t tjƒtt tdƒ ƒks0J ‚t| tdƒkt tjƒt tdƒt¡ksEJ ‚d S )Nr–   r¿   r   )r   r%   r`   r   r£   rH   r   ÚLopenrò   r‡   r‡   rˆ   Útest_issue_11064y  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 s"J ‚t| dkttjƒtdtƒks2J ‚d S )Nr–   r   )	r%   r   rX   r   rE   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sJ ‚d S rD  )r`   r   r   r   r£   rH   rú  )rß   rµ   r‡   r‡   rˆ   Útest_issue_12429‹  s   rý  c                   C   sR   t ttƒttjƒt dt¡ksJ ‚t tdt d ƒtƒt tddƒt¡ks'J ‚d S )Nr   r®   r˜   )	r`   r   r   r   r£   rH   r  r   r   r‡   r‡   r‡   rˆ   Útest_solveset_arg‘  s   "0rþ  c                      sP   t ‰ t‡ fdd„tƒ tddtddfD ƒƒsJ ‚ˆ dtdd ƒdu s&J ‚d S )Nc                 3   s     | ]}ˆ d | ƒdu V  qdS )r•   Nr‡   rÙ  rÀ   r‡   rˆ   r‰   ™  s   € 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sJ ‚d S )Nr–   rÑ   r   )ÚsymbolrÜ   r  rY  r‡   r‡   r‡   rˆ   Útest_issue_13550ž  r  r  c                   C   s4   t ttdƒtdƒ  tdƒ tftƒtƒ ksJ ‚d S )Nr¿   r–   )rc   r   r%   rE   r‡   r‡   r‡   rˆ   Útest_issue_13849¢  s   4r  c                   C   sn   t ttttdƒ ƒd  t¡ttjƒtddƒksJ ‚t ttttdƒ ƒd  t¡tt	ddƒƒtdƒks5J ‚d S )Nr–   r¢   r•   r   )
r`   r   r   r&   r+  r(   r   r£   rF   rH   r‡   r‡   r‡   rˆ   Útest_issue_14223¦  s   ÿÿÿÿr  c                	      s¬  t j‰ ttttdƒ d tˆ ƒttddƒƒksJ ‚ttttdƒ d tˆ ƒttdƒ tdƒƒks2J ‚ttt	td ƒd td ƒd tˆ ƒtddƒksLJ ‚tt	td ƒt	t
ƒ tˆ ƒtt	t
ƒ d t	t
ƒd ƒksjJ ‚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s¤J ‚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                      ó   t tttdƒ d tˆ ƒS ©NrÑ   rÍ   )r`   r   r'   r‡   ©Zdomr‡   rˆ   rš   ¶  rÓ  z"test_issue_10158.<locals>.<lambda>c                      r  r  )r`   r   r&   r‡   r  r‡   rˆ   rš   ·  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š   ¸  rr  c                      s   t ttd ƒttƒ tˆ ƒS r©   )r`   r   r   r‚   r‡   r  r‡   rˆ   rš   ¹  s    c                      s    t ttdttd ƒ  ƒtˆ ƒS )Nr®   r•   r	  r‡   r  r‡   rˆ   rš   º  s     )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s%J ‚t	t| tƒt
ttt dt t tt d ƒ  d tttd ƒƒd  ƒtjƒƒsPJ ‚d S )Nr•   i€Wíþi€¨r–   )r   r   r‚   rF   r   r`   r   r£   rG   r…   rB   r   r|   r
   r   r   r   r¦   )rt   Za1r‡   r‡   rˆ   Útest_issue_14300½  s   
ÿ
(ÿÿÿr	  c                      sD   t td t d dƒ‰ tt‡ fdd„ƒ ttd ˆ ttjƒs J ‚d S )Nr®   r•   r–   c                      s   t ˆ dttjƒS r  )r^   r   r   r£   r‡   ©Znumberr‡   rˆ   rš   Ê  rÅ   z"test_issue_14454.<locals>.<lambda>)r?   r   rP   r¥   r^   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s5J ‚d S )NrÜ  r–   ræ   r•   r®   r˜   )r`   r   r   r   rF   r%   r‡   r‡   r‡   rˆ   Útest_issue_17882Î  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sTJ ‚d S )Nr˜   r–   rÒ   r®   r•   r¢   )rŒ   rl   r   r  )Úexprr‡   r‡   rˆ   Útest_term_factorsÓ  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s#J ‚d S )Nr˜   ræ   r¿   r_  )rf   r   r   r£   rE   rF   r‡   r‡   r‡   rˆ   Útest_transolveÜ  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s4J ‚d S r  )r   r‚   rƒ   r7   r`   rH  rF   r:   rò   r‡   r‡   rˆ   Útest_issue_21276â  s   <0r  c               
   C   sÜ  ddl m} m}m} dd|   d| d   }ddd|    dd|    }d|  d|   }ttdƒ|  ƒd|   }t| | ƒt| | ƒ d }d| d  d| d   }d| d	  d| d   d| d	   d| d   d| d   }	d
td|  d ƒ dtd|  d	 ƒ  }
d|  d|   d|   d }dd| d	   d|   dd|    }t|| tjƒt	dtdƒ dtdƒ tdƒ  ƒksÀJ ‚t|| tjƒt	t
ddƒƒksÐJ ‚t|| tjƒtjksÜJ ‚t|| tjƒt	dƒkséJ ‚t|| tjƒttjt	|tdt|| ƒ ƒ ƒƒksJ ‚t|| tjƒt	dƒksJ ‚t|	| tjƒt	dƒks!J ‚t|
| tjƒt	dtdƒ d dtdƒ d  t
ddƒ ƒksBJ ‚t|| tjƒt	dƒksPJ ‚t|| tjƒt	tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ  ƒksvJ ‚td
td|  d ƒ d| d	   | ƒt	ddtdƒ  tdƒ tdƒd   ƒks¡J ‚td| d  d| d   | ƒt	dƒks·J ‚tdƒttdƒƒ ttdƒƒ }td| d  dd|    | ƒt	| |ƒksßJ ‚tdƒ\}}tdƒ}t||| d   t|| ƒ ƒ || ƒƒttjt	t||| d   ƒ ƒƒksJ ‚tddd}t| d |d t| ƒ  |ƒttjt	t| d t| ƒ ƒ t| d t| ƒ ƒƒƒksCJ ‚tddd}td	| d	 |d	  |ƒ t| td	d	|   | d	  dƒtjƒ¡slJ ‚d S )Nr   rS  r˜   r–   r®   r¿   ræ   rÊ   r•   r`  rÒ   éT   é   ig  é{   i¦
  r  rÑ   r-  r¾   zC1 C2rt   r‚   Tr—   rG  )rÃ   r   r‚   rƒ   r   r   r`   r   r£   rF   r   rE   rG   rX   r%   r   r   r   r   rA   r   )r   r‚   rƒ   rÀ  rÁ  Ze3Ze4Ze5Ze6Ze7Ze8Ze9Ze10rp   ZC1ZC2rt   rG  r‡   r‡   rˆ   Útest_exponential_realç  sX   <($
ÿ ÿBL&$ÿ, 0(ÿ.ÿ"ÿr  c               	   C   sð  ddl m}  ddlm} |dƒ}ttd|  d|   | ƒtt|td| t	 t	  t
dƒ ƒtjƒƒs3J ‚t| t tt  d tƒtt
dƒt
| ƒt
tƒ  ƒksPJ ‚ttd| d  d| d   | ƒtt|d| t t	 t
dƒ ƒtjƒƒsuJ ‚ttd|  d | ƒtt|td| t	 t	  d	t
dƒ  t
dƒ ƒtjƒƒsœJ ‚dttd |  ƒ d | d d
  }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|  d|   d|   | ƒt||ƒƒs"J ‚d| d  d| d   d| d   d| d   d| d   }t|| ƒ}d| t t	 dt
dƒ  dt
dƒ  }dt
dƒ t
dƒ }	tt|||	 ƒtjƒ}
t||
ƒsvJ ‚d S )Nr   r™   )r   r|   r–   r®   r˜   r®  r¿   rÑ   rÊ   r•   rÒ   )rÃ   r   rU  r   r…   rZ   rJ   r   r
   r   r   r   r¦   rƒ   r‚   rF   r`   r   r%   r   rI   )r   r   r|   rß   ro   Zunion1Zunion2r(  ZnumZdenrï   r‡   r‡   rˆ   Útest_exponential_complex	  s6   $
ÿ
ÿ  
ÿ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ƒ¡sNJ ‚t|ttjƒ ttt	ttd t  d dƒtjƒ¡sjJ ‚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ƒ¡s¡J ‚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   rA   r   )rA  rB  rŠ  r‹  rŒ  r‡   r‡   rˆ   Útest_expo_conditionset4	  s(   
ÿ
ÿ
ÿ
ÿ"ÿr  c            	      C   sx  t ddd\} }}t ddd\}}t||  | | tjƒttjtt|ƒt|ƒ ƒƒks,J ‚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srJ 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
¡ƒ¡s¢J ‚t| | d	 |tjƒtdƒks³J ‚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   rA   r   r  r   rD   r   ro   rp   r   )	r   r‚   rƒ   ZxrZzrrA  rB  r¢  r£  r‡   r‡   rˆ   Útest_exponential_symbolsH	  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_assumptionsc	  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_10864k	  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s*J ‚d S )Nr®   r–   r˜   )rX   r%   r   r   rF   r   r‡   r‡   r‡   rˆ   Útest_solve_only_exp_2p	  s   "*ÿr  c                   C   sF  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 s'J ‚t tdt ƒdt  tƒdu s8J ‚t tt t tƒdu sEJ ‚t tt t tƒdu sRJ ‚t dt dt  d tƒdu scJ ‚t ttt  t tƒdu srJ ‚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 s¡J ‚d S )	NFr˜   r–   Tr¿   r×   r®   r•   )rg   r‚   r   r5   rƒ   r‡   r‡   r‡   rˆ   Útest_is_exponentialv	  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s&J ‚t dt dt  dttjƒtttddƒtd	ƒd  ƒtdƒ ƒksIJ ‚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%   rE   rA   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sJ ‚t ttd ƒtdt d ƒ tƒtdƒks2J ‚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
þ, ÿ"þÿ*ÿÿ2r  c                  C   sz   t tdt ƒd ƒt ttƒ d ƒ t dƒ } t| tƒtƒ ks!J ‚t dt ƒt ttƒd ƒ d } t| tƒtƒ ks;J ‚d S )Nr–   r•   rÊ   )r   r   r   r!   rX   rE   r%   rò   r‡   r‡   rˆ   Útest_uselogcombine_2£	  s   . r  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 s!J ‚t ttƒttƒ tƒdu s0J ‚t ttƒd tƒdu s=J ‚t ttd ƒttd ƒ tƒdu sPJ ‚t ttt ƒtttƒ  tƒdu scJ ‚t tttƒƒtƒdu spJ ‚t tt tƒdu s{J ‚t tdt ƒtdt ƒ d tƒdu sJ ‚t ttƒttƒ t tƒdu s¡J ‚t tttd ƒƒttd ƒ tƒdu s¶J ‚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   r5   r‡   r‡   r‡   rˆ   Útest_is_logarithmic«	  s   &&*"*&*r  c                  C   sn   t dƒ} ttt|  ƒ| ttƒ  dttjƒtjksJ ‚t ddd} tttƒt| ƒ dttjƒtdƒks5J ‚d S )Nr‚   r   Tr—   r•   )r   rk   r   r   r   r£   rF   r  r‡   r‡   rˆ   Útest_solve_logarithm¼	  s   .,r   c                  C   sÜ  t dƒ\} }}ttd tƒdu sJ ‚t| td  |t  | tƒdu s%J ‚ttd tƒdu s0J ‚tttd  tƒdu s=J ‚tdttƒ ttdƒ  tƒdu sPJ ‚ttttd ƒƒttd ƒ tƒdu seJ ‚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 s°J ‚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    r1   r!   r"   )ro   rp   rq   r‡   r‡   rˆ   Útest_is_lambertÆ	  s   &&*.*>"r!  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s1J ‚ˆ tdt  d ttƒg d¢ksCJ ‚ˆ tdtd   d ttd ƒg d¢ksYJ ‚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‰   Ü	  rÚ   z%test_linear_coeffs.<locals>.<genexpr>r–   r˜   rs  )r–   r•   r˜   c                      s$   ˆ t dt d   t d  t t d ƒS r  r™   r‡   r"  r‡   rˆ   rš   à	  s   $z$test_linear_coeffs.<locals>.<lambda>c                      s   ˆ dt  t d  dt   t ƒS r©   r™   r‡   r"  r‡   rˆ   rš   â	  ó   r   )r   r   r   )r°   r#  r   rŽ   r‚   rP   r¥   ro   r‡   r‡   r"  rˆ   Útest_linear_coeffsÙ	  s   $$,"r%  c                   C   sJ  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 s1J ‚t tttt ƒdƒd tƒdu sCJ ‚t tttt ƒdƒttƒ tƒdu sWJ ‚t ttdƒd tƒdu seJ ‚t ttdƒd d tƒdu suJ ‚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 s£J ‚d S )NFr˜   r•   Tr–   r¿   )rm   r‚   r   r   r   r   r‡   r‡   r‡   rˆ   Útest_is_modularè	  s   4$(    r&  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s%J ‚|tttƒdƒtdƒ| tƒtttƒdƒdfks>J ‚|tttƒdƒtdƒ| tƒtttƒdƒdfksWJ ‚t	|ttdƒtdƒ| tƒtt
t| d|  d ƒtjƒfƒsuJ ‚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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
  dƒtdƒ| tƒttd td
  dƒdfksóJ ‚|ttd	 dƒtdƒ| tƒttƒ 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ƒsWJ ‚|tttƒd	 dƒtdƒ| tƒttƒ fksoJ ‚d S )Nr|   T©Zintegerr   )Ú_invert_modularr×   r¿   rÊ   r®   r–   r˜   r•   )r   r°   r(  r   r5   r   r   r   r   r…   rB   r   r¦   rE   Ú	Naturals0)r|   Zinvert_modularr‡   r‡   rˆ   Útest_invert_modularõ	  s<   222ÿÿÿÿ"ÿ
ÿ
ÿ((
ÿ4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ƒ¡s%J ‚tdtt	tƒdƒ ttjƒ ttttt	tƒdƒd dƒtjƒ¡sGJ ‚tdtt
tƒdƒ ttjƒ ttttt
tƒdƒd dƒtjƒ¡siJ ‚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ƒ ksœJ ‚tdttdƒ ttjƒtƒ k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ƒ k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ƒƒs6J ‚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ƒƒƒs«J ‚tdttd dƒ ttjƒtƒ k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ƒƒs#J ‚tttdt dƒd ttjƒtt| d|  d	 ƒtjƒƒsBJ ‚tttdt dƒd ttjƒtt| d	|  d ƒtjƒƒsaJ ‚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ƒƒs°J ‚tttd dƒd	 ttjƒtƒ k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ƒƒs5J ‚tttdƒt ttjƒtƒ ksGJ ‚tttt dƒd	 ttjƒ tttttt dƒd	 dƒtjƒ¡sjJ ‚tttt dƒd	 ttjƒ tttttt dƒd	 dƒtjƒ¡sJ ‚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ƒƒs-J ‚tt|t|d	|   | |ƒ | tjƒttt| d)|  d* ƒtjƒtjƒƒsTJ ‚t|t|d	|  d  | |ƒ | tjƒtƒ ksnJ ‚tt|t|| d  | |ƒ | tjƒttt| d'|  d+ ƒtjƒtjƒƒs•J ‚d S ),Nr|   Tr'  r®   r   r˜   r×   r¿   r–   r  rÊ   é    ræ   rã   r9  éM   éS   é]   é“   é   rå   rç   rý   é)   rÑ   r÷   é   r8  r¾   r•   r7  r¡   éJ   é+   i­VH,i½.qiÿÿÿi@È3iþÿÿrœ   iÿÿÿ?é2   rÆ  )r   r`   r   r   r   r¦   r   rA   r   r5   r   r   rE   r…   rB   r   rI   r)  rG   r
   r   )r|   ro   rp   r{   rq   r‡   r‡   rˆ   Útest_solve_modular
  s  ÿÿÿ ÿÿ ÿÿÿÿ""ÿ"ÿ 
ÿ
ÿù
ÿ(	ý
ÿ
ÿ
ÿ
ÿ
ÿ "ÿÿÿ
ÿ(
ÿÿ
ÿ  
ÿ
ÿ ÿÿ ÿÿÿ
ÿ
ÿ 
ÿ ÿ
ÿ$ÿ
ÿ4$ÿÿr6  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s0J ‚d S )Nr¿   r•   é   r˜   rÍ   )rc   r   r   r   r‚   r%   rF   r‡   r‡   r‡   rˆ   Útest_issue_17276
  s   2&ÿr8  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sZJ ‚d S )Nr   ro   r|   r–   rÒ   zx,n)r   r   r`   r5   r   rI   rB   r   r   r   r¦   rG   r   r
   r   r   r   )r   ro   r|   r‡   r‡   rˆ   Útest_issue_10426„
  s   $Dÿþ
ýr9  c            ,      C   s¶  t dƒt 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 ‘|| | | 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}t|| ƒ\}} d$d%„ t| |ƒD ƒ}!t|| ƒ|!ks·J ‚tt|Ž ƒ}"t|| ƒ|"ksÇJ ‚t|| f| ƒ|"ksÓJ ‚| | ¡\}#}$d&d'„ |#D ƒ}#t 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sYJ ‚d S ))Nzx0:16zy0:12rÄ  é.   é'   r5  é#   é"   é   r7  é,   r  r&  é5   é8   r:  é4   é6   é0   é<   r–   r¿   r•   r¾   r2  rç   r¯   é&   rÍ   rÓ   rÊ   é   r˜   é!   rÔ   c                 S   s   i | ]\}}||kr||“qS r‡   r‡   )r†   rÊ  rß   r‡   r‡   rˆ   Ú
<dictcomp>¾
  rh  z$test_issue_18208.<locals>.<dictcomp>c                 S   s   g | ]}|‘qS r‡   r‡   rÙ   r‡   r‡   rˆ   rÚ  Ê
  rÅ   z$test_issue_18208.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ‘qS r‡   )Ústr)r†   rÊ  r‡   r‡   rˆ   rÚ  Ë
  rg  )
r   r[   r   rW   rF   r   r\   Zgauss_jordan_solver¸   rc   ),Úvarsr€  rp  rq  r}  r~  Zx5Zx6Zx7Zx8Zx9Zx10Zx11Zx12Zx13Zx14Zx15Zy0rÇ  rÈ  rÉ  Zy4Zy5Zy6Zy7Zy8Zy9Zy10Zy11r…  ZexpectedrL  rp   Zsolve_expectedZlinsolve_expectedZgj_solveZnew_varsZtau0Ztau1Ztau2Ztau3Ztau4Zgj_expectedZnonlinsolve_expectedr‡   r‡   rˆ   Útest_issue_18208
  s¾   "ÿÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ($*.ý"	$(ýrL  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sSJ ‚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   rD   rc   )Za00Za01Za10rÕ   Zl0Úl1Úl2Úl3Zm0Zm1Zm2Zm3Zm4Zm5Zm6Zm7Zc00Zc01Zc10Zc11Zp00Zp01Zp10Zp11Zsolveforr  rµ   r‡   r‡   rˆ   Ú*test_substitution_with_infeasible_solutionß
  sJ   4ÿ"ç.:>BürP  c                   C   s   t dttƒ ƒtƒ ksJ ‚d S r©   )r`   r%   r   rE   r‡   r‡   r‡   rˆ   Útest_issue_20097	  r$  rQ  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   *rR  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sjJ ‚||kspJ ‚d S )Nr   r•   r–   r˜   Tr  )r(   r   r&   rH   r`   r   )Zc1Zc2Zcorrect_resultZresult1Zresult2r‡   r‡   rˆ   Útest_issue_18359  s   <J
rS  c                  C   sX   ddt  d   tt d ƒ tt d   } t| t ƒsJ ‚t| dt tjƒtdƒks*J ‚d S )Nr–   r˜   r7  r   )r   r   r   rg   rh   r   r   rF   )r§   r‡   r‡   rˆ   Útest_issue_17604  s   * rT  c                   C   s,   t ddtd  d  ttjƒtƒ ksJ ‚d S r#  )r`   r   r   r£   rE   r‡   r‡   r‡   rˆ   Útest_issue_17580!  s   ,rU  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s,J ‚d S )Nr–   r˜   r®   ræ   r¿   )r   r‚   rc   rF   r   )r›  r‡   r‡   rˆ   Útest_issue_17566_actual%  s   (4rV  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sBJ ‚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 rW  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_150241  s   "rY  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ƒƒs4J ‚d S rÆ   )r…   rc   r   r5   r‚   rF   rB   r   r|   r   r   r¦   r‡   r‡   r‡   rˆ   Útest_issue_168776  s
   "$ÿÿrZ  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ƒƒsJJ ‚d S )Nr–   r®   )r…   rc   r5   r   r‚   rF   rB   r   r|   r   r   r¦   r‡   r‡   r‡   rˆ   Útest_issue_16876=  s    ÿÿþÿr[  c                  C   s    t dƒ\} }t ddd}t| | | | tjƒt| t| | | dƒtjƒks'J ‚t ddd\}}|| }t| | | | tjƒt| t| | | dƒtjƒksNJ ‚d S )Nzx zr‚   T)Zrationalr   ze1 e2)Zeven)r   r`   r   r£   rA   r   )r   rƒ   r‚   rÀ  rÁ  r‡   r‡   rˆ   Útest_issue_21236F  s   6:r\  c                   C   sH   t td dt  td  ttƒ dt ttƒ gttƒddhks"J ‚d S )Nr–   rÒ   )rÒ   r   r  )rc   r   r‚   r   r‡   r‡   r‡   rˆ   Útest_issue_21908O  s   6ÿr]  c                  C   sh   t ttƒ td  dt  ttƒ ttjƒ} |  tdi¡dtdƒ dtdƒ hks2J |  tdi¡ƒ‚d S r  )r`   r%   r   r   r   r£   Zxreplace)rµ   r‡   r‡   rˆ   Útest_issue_22058T  s   ,<r^  N(M  Zsympy.core.containersr   Zsympy.core.compatibilityr   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.symbolr   r   r   Z$sympy.functions.elementary.complexesr   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.   r/   r0   r1   r2   r3   r4   r5   r6   Z'sympy.functions.special.error_functionsr7   r8   r9   r:   r  r;   Zsympy.matrices.denser<   ri  Zsympy.matrices.immutabler=   Zsympy.polys.polytoolsr>   Zsympy.polys.rootoftoolsr?   Zsympy.sets.containsr@   Zsympy.sets.conditionsetrA   Zsympy.sets.fancysetsrB   rC   Zsympy.sets.setsrD   rE   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.testing.randtestrU   r'  r|  rV   Zsympy.solversrW   r°   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   rÃ   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,  r0  r1  r2  r3  r=  r>  r@  rC  rE  rF  rJ  rK  rM  rN  rV  rW  rX  rZ  r[  r\  r^  ra  rb  rk  rl  r  rˆ  r‰  r  r’  r“  r˜  rš  rœ  r¤  r§  r©  rª  r«  r¬  r­  r°  r±  r¸  rº  r»  r½  r¾  rÂ  rÍ  rÎ  rÐ  rÑ  rÕ  rß  rà  rá  râ  rã  rä  rå  ræ  rç  rè  ré  rê  rî  rò  ró  rô  rõ  rö  r÷  rø  rù  rû  rü  rý  rþ  r   r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r%  r&  r*  r6  r8  r9  rL  rP  rQ  rR  rS  rT  rU  rV  rW  rY  rZ  r[  r\  r]  r^  r‡   r‡   r‡   rˆ   Ú<module>   sº     @( d\
b
<
'
I

#	
 "
	
^R

V

$
2

)l		












'


	



	


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