o
    *Ī®cH ć                   @   sĄ  d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZm Z  d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+m,Z,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI d dlJmKZKmLZLmMZMmNZN d dlOmPZP d dlQmRZS d dlTmUZU d dlVmWZW d dlXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_m`Z` d dlambZbmcZcmdZdmeZemfZfmgZgmhZh d dlimjZj d dlkmlZl d dlmmnZn d dlompZpmqZqmrZrmsZsmtZtmuZu d d lvmwZx d d!lymzZz d d"l{m|Z| d d#l}m~Z~mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d d$lmZmZmZmZmZmZmZmZmZmZm Z m”Z”m¢Z¢m£Z£m¤Z¤m„Z„m¦Z¦m§Z§mØZØm©Z©mŖZŖ d%d& Z«d'd( Z¬d)d* Z­eud+d, Z®d-d. ZÆd/d0 Z°d1d2 Z±d3d4 Z²epd5d6 Z³d7d8 Z“d9d: Zµd;d< Z¶d=d> Z·d?d@ ZødAdB Z¹dCdD ZŗdEdF Z»dGdH Z¼dIdJ Z½epdKdL Z¾esdMdN ZædOdP ZĄdQdR ZĮdSdT ZĀdUdV ZĆdWdX ZÄdYdZ ZÅd[d\ ZĘd]d^ ZĒd_d` ZČdadb ZÉdcdd ZŹdedf ZĖdgdh ZĢdidj ZĶdkdl ZĪdmdn ZĻdodp ZŠdqdr ZŃdsdt ZŅdudv ZÓdwdx ZŌdydz ZÕd{d| ZÖd}d~ Z×dd ZŲdd ZŁdd ZŚdd ZŪeudd ZÜdd ZŻdd ZŽdd Zßdd Ząepdd Zįepdd Zāepdd Zćeudd Zäeudd Zådd Zędd Zēepdd  Zčd”d¢ Zéd£d¤ Zźd„d¦ Zėd§dØ Zģd©dŖ Zķd«d¬ Zīd­d® ZļdÆd° Zšd±d² Zńd³d“ Zņdµd¶ Zód·dø Zōd¹dŗ Zõd»d¼ Zöd½d¾ Z÷dædĄ ZųdĮdĀ ZłepdĆdÄ ZśdÅdĘ ZūdĒdČ ZüdÉdŹ ZżdĖdĢ ZždĶdĪ Z’dĻdŠ Z epdŃdŅ ZdÓdŌ ZdÕdÖ Zd×dŲ ZdŁdŚ ZdŪdÜ ZdŻdŽ Zdßdą Zdįdā Z	dćdä Z
dådę Zdēdč Zdédź Zdėdģ Zdķdī Zetdļdšdń Zetdņdódō Zdõdö Zd÷dų Zdłdś Zdūdü Zdżdž Zd’d  Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Z dd Z!dd Z"dd Z#dd Z$dd Z%dd Z&dd  Z'd!d" Z(d#d$ Z)d%d& Z*d'd( Z+d)d* Z,d+d, Z-d-d. Z.d/d0 Z/d1d2 Z0d3d4 Z1d5d6 Z2d7d8 Z3d9d: Z4d;d< Z5d=d> Z6d?d@ Z7dAdB Z8dCdD Z9dEdF Z:dGdH Z;dIdJ Z<dKdL Z=dMdN Z>dOdP Z?dQdR Z@dSdT ZAepdUdV ZBdWdX ZCdYdZ ZDd[d\ ZEepd]d^ ZFepd_d` ZGdadb ZHdcdd ZIdedf ZJepdgdh ZKdidj ZLdkdl ZMdmdn ZNdodp ZOdqdr ZPdsdt ZQdudv ZRdwdx ZSdydz ZTd{d| ZUd}d~ ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd  Zgd”d¢ Zhd£d¤ Zid„d¦ Zjd§dØ Zkd©S (Ŗ  é    ©Śisclose)ŚAdd)ŚTuple)ŚFunctionŚLambdaŚnfloatŚdiff)ŚMod)ŚEŚIŚRationalŚooŚpiŚInteger)ŚEqŚGtŚNeŚGe)ŚS)Śordered)ŚDummyŚSymbolŚsymbols©Śsympify)ŚAbsŚargŚimŚreŚsignŚ	conjugate)ŚLambertWŚexpŚlog)ŚHyperbolicFunctionŚsinhŚtanhŚcoshŚsechŚcoth)ŚsqrtŚMinŚMax)Ś	Piecewise)ŚTrigonometricFunctionŚacosŚacotŚacscŚasecŚasinŚatanŚatan2ŚcosŚcotŚcscŚsecŚsinŚtan)ŚerfŚerfcŚerfcinvŚerfinv)ŚAnd)ŚMutableDenseMatrix)ŚImmutableDenseMatrix)ŚPoly)ŚCRootOf)ŚContains)ŚConditionSet)ŚImageSetŚRange)Ś
ComplementŚ	FiniteSetŚIntersectionŚIntervalŚUnionŚimagesetŚ
ProductSet)Śsimplify)ŚIndexed)Śnumbered_symbols)ŚXFAILŚraisesŚskipŚslowŚSKIPŚ_both_exp_pow)Śverify_numerically)Ścm)Śsolve)Śsolveset_realŚdomain_checkŚsolveset_complexŚlinear_eq_to_matrixŚlinsolveŚ_is_function_class_equationŚinvert_realŚinvert_complexŚsolvesetŚsolve_decompositionŚsubstitutionŚnonlinsolveŚsolvifyŚ_is_finite_with_finite_varsŚ
_transolveŚ_is_exponentialŚ_solve_exponentialŚ_is_logarithmicŚ_is_lambertŚ_solve_logarithmŚ_term_factorsŚ_is_modularŚNonlinearError)ŚaŚbŚcŚdŚeŚfŚgŚhŚiŚjŚkŚlŚmŚnŚqŚrŚtŚwŚxŚyŚzc                 C   s:   t | ttfv rtdd t| |D S | |kp|  |”S )Nc                 s   ó    | ]
\}}t ||V  qd S ©N)Śdumeq©Ś.0r|   r}   © r   śH/tmp/pip-target-vg8gfxp4/lib/python/sympy/solvers/tests/test_solveset.pyŚ	<genexpr>9   ó    zdumeq.<locals>.<genexpr>)ŚtypeŚlistŚtupleŚallŚzipŚdummy_eq)r|   r}   r   r   r   r   7   s   r   c                 C   s`   t | } t |}t| tsJ t|tsJ t| t|ks J tdd t| |D s.J dS )z2Test solutions with floats from solveset are closec                 s   r   r   r   ©r   Śv1Śv2r   r   r   r   D   r   z"assert_close_ss.<locals>.<genexpr>N)r   Ś
isinstancerK   Ślenr   r   )Śsol1Śsol2r   r   r   Śassert_close_ss=   s    r   c                 C   s   t | } t |}t| tsJ t|tsJ t| t|ks J t| |D ]\}}t|t|ks3J tdd t||D sAJ q%dS )z5Test solutions with floats from nonlinsolve are closec                 s   r   r   r   r   r   r   r   r   P   r   z"assert_close_nl.<locals>.<genexpr>N)r   r   rK   r   r   r   )r   r   Śs1Śs2r   r   r   Śassert_close_nlG   s   žr¢   c                     s<  t ddd tjfdd} tt t  | tttfks!J t dddt ddd}t d	   td	 fks?J t d	   td	 fksQJ tt   ttfkscJ ttd	    ttd	 fksyJ 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s%J td
t    | ttttd
 fksBJ t d
   tt	t	 fksYJ t tj
   td
 fksmJ tt fdd t t   tdt  fksJ t t t   tj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sNJ ttt   tt||t d| t  tjfsoJ 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sdJ 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   )rL   )r   Śsr   r   r   ŚirealW   s   
ztest_invert_real.<locals>.irealr   ©Śpositiver   é   é   c                      s   t    S r   )rc   r   ©r   r   r   Ś<lambda>t   ó    z"test_invert_real.<locals>.<lambda>é   g      ų?ič  éd   ē      š?c                      s   t tj S r   )rc   r   ŚOner   ©r   r   r   r   r¬   |   ó    é   é’’’’)"r   r   ŚRealsrc   r#   r   rK   r$   r   r+   ŚHalfrU   Ś
ValueErrorr   r   ŚEmptySetr   r   r;   rO   r   r4   ŚIntegersr9   r2   r7   rN   r0   r:   r3   r<   r5   r8   r1   )r¦   r   ŚlhsŚbase_valuesr   r²   r   Śtest_invert_realS   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®   )rc   r   r   r   r   r   r   r¬   ½   r­   z%test_invert_complex.<locals>.<lambda>c                   S   s   t tttS r   ©rd   r   r   r   r   r   r¬   ¾   r­   c                   S   s   t ttdS r¾   ræ   r   r   r   r   r¬   æ   r­   )rd   r   r   rK   r   r#   rO   r   r   r   r   r   r$   r   r   rŗ   rU   rø   r&   r   r   r   r   Śtest_invert_complex³   s   $$$4’$$rĄ   c                   C   sl   t dddtd  d   tdd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)r^   r   r   r   r   r   r   Śtest_domain_checkÅ   s   (rĮ   c                   C   sF   t dt d ttjtjksJ t dt d ttjtdks!J d S )Nr   rÆ   r®   )re   r   r   r¶   r¹   rK   r   r   r   r   Śtest_issue_11536Ģ   s    &rĀ   c                  C   s   t d td  d t d td  d  ddt d  td  td    } |  t ”}|  t”}|  t”}t|||gt ttg}t|dkrJt|dksLJ d S )NrŖ   é   é   )r   r   r   r	   rh   r   )ry   ŚfxŚfyŚfzŚsolr   r   r   Śtest_issue_17479Ń   s   H


 rÉ   c                     sŅ   t d\} }}| d |d  d | d |d  d  dd| d  |d  |d    }t|| }t||}t||}t|||g| ||g}|D ]\}}	}
| |||	||
i t fdd|||fD dksfJ qGd S )Nśx, y, zrŖ   c                 3   s    | ]
}|   ” ” V  qd S r   )ŚsubsrQ   )r   Ś_©rw   r   r   r   ź   r   z#test_issue_18449.<locals>.<genexpr>)r   r   r   )r   r	   rh   r   )r   r   r   ry   rÅ   rĘ   rĒ   rČ   ŚxsŚysŚ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+   re   r   r¶   rK   r·   ©ry   r   r   r   Śtest_issue_21047ō   s    48’rÕ   c                   C   sŽ  t ttttdu sJ t tttd tdu sJ t ttttt tdu s*J t ttttt t tdu s<J t ttttt tt tdu sPJ t tttttt  tt tdu sfJ t tttttt  tt tdu s|J t tttt d tdu sJ t tttd tt d tdu s J t tttt tdu s®J t tttd tdu s¼J t tttd tt tdu sĪJ t ttttt tdu sŽJ t tttttt tdu sšJ t ttttdu süJ t tttd tdu sJ t ttttt tdu sJ t ttttt t tdu s/J t ttttt tt tdu sDJ t tttttt  tt tdu s[J t tttttt  tt tdu srJ t tttt d tdu sJ t tttd tt d tdu sJ t tttt tdu s§J t tttd tdu s¶J t tttd tt tdu sÉJ t ttttt tdu sŚJ t tttttt tdu sķJ d S )NTr®   rŖ   F)	rb   r/   r<   r   r;   rt   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   )r]   r   r   r   r   r   r¬   9  r­   z$test_garbage_input.<locals>.<lambda>r   Tr£   r®   rŖ   c                      s   t  g S r   )r_   r   r«   r   r   r¬   @  r­   c                      s   t  tf S r   )re   r   r   r«   r   r   r¬   C  r³   c                      s   t  d tjS r¾   )re   r   r¶   r   r«   r   r   r¬   D  ó    c                      s   t  d  dS ©Nr®   rŖ   )re   r   r«   r   r   r¬   E  r×   )	rU   rø   r   r]   r   r¹   rK   r   r_   r   r   r«   r   Śtest_garbage_input8  s   rŁ   c                  C   sŽ   t tt t ttd  tttdhtt t htj	k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ju smJ d S )
Nr©   ŚanzT)ŚnonzeroŚbbr£   rŖ   é   éü’’’)r]   rt   r   ru   r#   rN   r$   rL   r   r¶   r   rK   r¹   )rŚ   rÜ   r   r   r   Śtest_solve_mulH  s   ’’. rß   c                   C   sč   t ttd tttdks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Ó   )r]   r#   r   rK   r$   r   ru   rt   rL   r   r¶   r   r   r   r   Śtest_solve_invertS  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Ŗ   )
r]   r=   r   r   r·   rK   r@   r>   r±   r?   r   r   r   r   Śtest_errorinversesa  s   ’
’’&rć   c                  C   sĪ  t ddd} t ddd}td|  d | ttddksJ t| d d | ttj tjks1J t| |d  | t|d ksBJ t| d d|   d	 | td
dtj  td	d
dtj  kscJ tt| d | tdksrJ tt| d | td	ksJ t| tdd	 d | tdksJ t| tdd d | tdk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®   é   rĆ   éž’’’é   é   rÓ   rŅ   r   )r   r]   rK   r   r   r±   r·   r+   r   r   r¹   r²   r   r   r   Śtest_solve_polynomialk  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)ŚexponentrŅ   c                 s   s    | ]}t |tV  qd S r   )r   rE   ©r   r|   r   r   r   r     ó    z&test_return_root_of.<locals>.<genexpr>rĆ   ŚZZ©Śdomainr®   rµ   )r   r   r_   ŚfuncrE   r   r   r   r   r   rK   rD   Ś	all_roots)ry   r„   ŚrootrČ   Śeqr   r   r   Śtest_return_root_of  s:   ,&	’ ’",*’(ū’rō   c                   C   s,  t tdt d d t tttj tdk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 t ttd	 t ttd	ks~J t ttd	 t tdd ttdksJ d S )NrÓ   rŅ   rŖ   r®   ré   rą   rē   é1   r©   r   rĆ   )r]   r+   r   rK   r   r±   r   r   r   r   r   Śtest_solveset_sqrt_1Ø  s   ’&"""’rö   c                     sÖ  t dddt ddd} ttd d td  d ttdtd	k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sJ 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*(-S(1)/2 + sqrt(3)*I/2)*(-12459439/52734375 +
    114*sqrt(12657)/78125)**(S(1)/3) - 172564/(140625*(-S(1)/2 +
    sqrt(3)*I/2)*(-12459439/52734375 + 114*sqrt(12657)/78125)**(S(1)/3))c                 3   s(    | ]}t   |” ” d k V  qdS )g»½×Łß|Ū=N)ŚabsrĖ   r   rė   ©ró   r   r   r   r   ė  s   & z'test_solveset_sqrt_2.<locals>.<genexpr>c                 S   ó   h | ]}|j d dqS ©T)Ś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   r]   r+   rK   r   r   r   r   )r   ŚansŚraŚrbr   rż   r   Śtest_solveset_sqrt_2“  sv   $’ ’$’*$(,$ *
’ 0


’’ž’’
’($’r  c                  C   sF   t d dt d   tdd d t  } t| t ttddks!J d S )Nr©   rŖ   r®   )r   r   r]   rK   ©ró   r   r   r   Śtest_solve_sqrt_failż  s   & r	  c                  C   sB  t d} td|  td| d   | d tdtd| d   d   }t|| }tdddtd ttdtd d	 d  d  td ttdtd d	 d  d d
tdtddtdt d  td	dtdt d  tdd    d  tdttdtd d	 d  d  tdd ttd ttdtd d	 d  d tdttdtd d	 d  d  d
t	dtddtdt d  td	dtdt d  tdd    d    g}d
tdtddtdt d  td	dtdt d  tdd    d tdttdtd d	 d  d  tdttdtd d	 d  d  tdd td
t	dtddtdt d  td	dtdt d  tdd    d tdttdtd d	 d  d  tdttdtd d	 d  d    g}|j
d t| ksJ |j
d t| ttd|  td| d   | d tdtd| d   d   dt| ksĪJ ttt d t dt  tj d   ttd  d tdtd  dtd   dt  d d  tdd d td d t tdtd  dtd   dt  d d  tdd d   }tttttt d t dt  tj d  ttd  d tdtd  dtd   dt  d d  tdd d td d t tdtd  dtd   dt  d d  tdd d   dtj}t|t|ksJ d S )NŚRrŖ   r®   rÓ   r©   rĆ   rą   éo   éū   é(   rµ   rē   rś   é   r   rŻ   )r   r+   r_   r   r7   r5   r   r   r;   r   Ś_argsrK   rG   r   r   r   r   r·   r¶   r]   )r
  ró   rČ   ŚfsetŚ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µ   )r_   r   rt   rK   r+   r   ru   r   r   r   r   Ś$test_solve_polynomial_symbolic_param)  s    ’’’’r  c                   C   sĄ   t dt d tttj ks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é   é   )r]   r   rK   r   r±   r#   r	   ŚZeror   r   r   r   Śtest_solve_rational7  s   """&’r  c                   C   s    t tdd ttju sJ d S r¾   )r]   r+   r   r   r¹   r   r   r   r   Śtest_solveset_real_gen_is_pow@  ó    r  c                   C   s  t dtt  tju sJ t tt ttju sJ t tt t ttju s'J tdttju s1J tttttju s=J ttd d ttju sKJ tdt tt ttju s[J tdt ttju sgJ tdt  dt d  ddt   ttju sJ d S )Nr®   rĆ   rŖ   éż’’’)	re   r   r   r   r¹   r]   r#   rt   r+   r   r   r   r   Śtest_no_solD  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Ŗ   )r]   r   r   r¶   re   rM   r   r   r   r   Śtest_sol_zero_realQ  s    6r  c                   C   sP   t ttd  d d ttju sJ t td ddtd    ttju s&J d S )Nr®   r©   rå   )r]   r   r   r¹   r   r   r   r   Ś test_no_sol_rational_extragenousW  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)r]   r+   r   rK   r   r   r±   r  r   r   r   r   Śtest_solve_polynomial_cv_1a\  s   $$’r  c                  C   s|   t ddd} t ddd}t| |d  |d td|d    | t|d k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   r]   r+   rK   r²   r   r   r   Śtest_solveset_real_rationali  s   (
’*r  c                   C   s6   t ttd td  tttdtd ksJ d S rŲ   )r]   r$   r   rK   r+   r   r   r   r   Śtest_solveset_real_logs  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  )r]   r   rK   r   r   r·   r   r   r   r   Śtest_poly_gensx  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¾   ©re   r   r   r   r   r   r   r¬     ó    z test_solve_abs.<locals>.<lambda>r   rŖ   rå   r©   r®   rś   rµ   rī   )r   rU   rø   re   r   r   r   r¶   r   rG   rF   rM   r   r]   rK   r¹   r   rA   ru   rt   rc   rĖ   r   r   r;   rN   rL   rH   r   r   rŗ   )r   rČ   ró   ŚrepsŚeqabŚsir   r   r   Śtest_solve_abs}  sH   ’  ’’ż0ś
 
$’&’żr'  c                   C   s   t tttd dtt  d ttttdt t td  tj	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   re   r;   r   rH   r   r   r   r   rŗ   r7   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Ŗ   )r]   r   r   r   rM   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   r]   rN   rM   Ś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   r]   r+   rK   r   r¹   ©rt   ru   r   r   r   Śtest_real_imag_splitting¬  s   "’’r/  c                   C   s.   t dt ddt   ttdt ksJ d S rŲ   )r]   r   r[   rK   r   r   r   r   Ś
test_units“  s   .r0  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   r]   r#   r   rK   r$   r+   r   r¹   ©r   r   r   r   Śtest_solve_only_exp_1ø  s   ""’*r2  c                   C   s0   t ttdtd  ttdtd ksJ d S ©NrŖ   r©   )r]   r6   r   r   rK   r+   r   r   r   r   Ś
test_atan2Ą  s   0r4  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sJ 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   Śsetr]   rK   r   re   r   r¶   rN   rM   r   r   r   r,  Śsympy.logic.boolalgr6  r   r   r   r;   )ró   Śabsxm3r   ry   rz   r6  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®   )r_   rt   r   ru   rv   rK   r+   r   r   r   r   r·   r   r   r   r   Ś test_solveset_complex_polynomialč  s   .,’’00
ż,’r;  c                   C   s   t dttju s
J d S ©Nr   )r_   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Ŗ   )r_   r   r   rK   r   r+   r   r   r   r   Śtest_solveset_complex_rationalś  s   ’(
’:’rA  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ū   )rV   r   r_   rĖ   r   Śtn)ry   r„   rņ   Śresr   r   r   Śtest_solve_quintics  s   ,

žrF  c                	   C   sČ   t tttd tttttd t t t	j
sJ t tttt tttttdt t td   t	j
s:J tdtt tt	jksHJ t ttt t”tttttt t t	j
sbJ d S rŲ   )r   r_   r#   r   rO   r   r   r   r   r   rŗ   r¹   r&   Śrewriter   r   r   r   Śtest_solveset_complex_exp  s   ’$’’rH  c                   C   sD  t tdt dttjtdksJ t tdt  dttjtjks$J t tdt dttjtjks5J t tdtd  dttjtd	ksIJ t tdtd	  d
ttjtjks\J t tdtd	  dttjtdkspJ t tdt tttjttjtt	tt	d ksJ t
ddt  d dtttdfks J d S )Nrå   rĆ   rŖ   r  rē   éū’’’r®   iq  r©   éš’’’lū’’’xæpĀEģA é*   rę   r   )re   r   r   r   r¶   rK   r¹   r   rL   r$   rc   r   r   r   r   Śtest_solveset_real_exp  s   $$"(&(8,rL  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Ŗ   )r_   r$   r   rK   rt   r+   r   r   r   r   r   Śtest_solve_complex_log)  s   &’rM  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®   )	r_   r+   r   rK   r   r±   r   rt   r  r   r   r   r   Śtest_solve_complex_sqrt/  s   ’$’’rN  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ā   )r_   r<   r   rG  r#   r   rO   r   r   r   r   rŗ   )r„   r   r   r   Śtest_solveset_complex_tan8  s   ’rO  c                   C   s"
  t ttttttttdt t t	j
tttdt t t t	j
s'J t tttd ttttdt t td  t	j
sDJ t ttttttttdt t td  t	j
tttdt t ttdd  t	j
stJ t ttttt tttttdt t ttdd  t	j
tttdt t ttdd  t	j
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tdt t ttdd  t	j
tttdt t td  t	j
sņJ t tttt tt tt	jdttttdt t t	j
ttttt tdt t ttdt t    dtt   t	j
t	js;J t ttdt tt tdt tt  d tttttt tdd td	  t	j
slJ t tdtt tt d tttttdt t ttdtd
td  dtd   t t	j
tttdt t ttdtd
td  dtd   t t	j
sĘJ t ttdt tdt  d tttttt t	j
sęJ t tttd tdd ttttdt t dtdtd d   dt  t	j
tttdt t dtdtd d   dt  t	j
s2J t tttd ttd  ttttdt t dt d  t	j
tttdt t dt d  t	j
tttdt t dt d  t	j
tttdt t dt d  t	j
tttdt t dt d  t	j
tttdt t dt d  t	j
s³J t tttdt d d ttttdtd dt t t tdtd	   d t	j
tttdtd dt t tdtd	  t  d t	j
sJ t ttttt ttd t  ttttdt d t	j
tttdt d t	j
tttdt tdd t	j
tttdt tdd t	j
tttdt tdd t	j
tttdt tdd t	j
sqJ t ttdt ttttdt t d td  t	j
tttdt t d td	  t	j
s¤J t ttdt tdt  tt	jtttttt d td  t	j
ttttt d dt d  t	j
ttttt d dt d  t	j
ttttt d dt d  t	j
ttttt d dt d  t	j
ttttt d td  t	j
s$J t tdtt tdt  d tttttdt t dttddtdd  ddtd  tdd  ddtdd   dddtd  tdd   dddtd  tdd	     t	j
tttdt t dttddtdd  ddtd  tdd  ddtdd   dddtd  tdd   dddtd  tdd	     dt  t	j
sŽJ t ttttd t t	j tt	jttttdt d t	j
tttdt d t	j
sJ d S )NrŖ   r®   r©   rĆ   ré   rÓ   rī   rå   rŅ   rµ   rł   rą   rÄ   rä   r  é-   éK   éi   é   rś   é   rŻ   rū   rę   éC   é9   é“   ih  é   ) r   r]   r;   r   rN   rO   r   r   r   r   rŗ   r7   r   r¹   r_   r·   re   r   rt   r¶   rH   rL   r   r   r#   r   r<   r5   r+   r:   rQ   r8   r   r   r   r   Śtest_solve_trig>  s  ’’ ’"&’’(&’’(( ’’  ’
žžž’
’2&
’ (
’’’(
’’’ż"
’88ž$$$$$$ś<<ž&ś$$ž$ $$$$ ś"
*
’’’
’’’
žž(
’’’
’’’žżżż
’&
žrY  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
”sJ d S )Nr   r   rÓ   rŖ   r©   rå   r®   rĆ   rł   rŅ   rą   rÄ   rä   rś   rŻ   r÷   rę   rS  rū   )$r   re   r&   r   r(   r   r¹   r7   rG   r   r=  r]   r)   rK   r$   r+   r#   r*   r·   r'   r   r_   r   rN   rH   r   r   rŗ   r   r5   r¶   r;   rQ   r8   r   r   r  r   r   r   Śtest_solve_hyperbolic  sŖ    
’
’
’
’"
’&"
’
’(’($ž0848ü0(ž((,,((ś@@ž",,ž((ž  ž ž ž$((ž((’’&’rZ  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   re   r;   rt   r   rG   r   rN   rH   r   r   r   r   rŗ   r(   r   r+   ru   r7   rQ   r8   r$   r   r¶   rK   )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   re   r&   r   r'   rN   rH   r   r   r   r   r$   r+   r   r·   rŗ   r5   rG  r#   rJ   )Śf1Śf2r   r   r   Śtest_issue_9616  sR   @6’’F6’’
ūB’$ž8’’$ž8’’$ž@$žör_  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®   )r]   r;   r   r_   r#   r   r   r   r   Śtest_solve_invalid_sol&  s   "ra  c                  C   s¢   t d} ttttttt| | t tj	sJ ttt
tttt| | t td  tj	s2J ttt
ttt ttt| | t td  tj	sOJ d S )Nr   rŖ   rĆ   )r   r   r]   r;   r   rO   r   r   r   rŗ   r7   r  r   r   r   Śtest_solve_trig_simplified+  s   ’’’rb  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sJ 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ju s»J t td dt  d  tttdt  ”tttdtj d ksąJ t td dt  d  tttdt  d d ”tttdtt
d  d tdtt
d d k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Ó   rI  i Ų’’rĆ   rŅ   ré   rś   ia	  rµ   iė’’’iķ’’’rt   Tr£   r  Śpr§   ru   )r]   r   r#   rK   r"   r$   r   Śexpandr   r	   r+   r'   r   r¹   rĖ   ŚExp1r   r   r7   r0   r   )r  ró   Śresultrt   rc  ru   r   r   r   Śtest_solve_lambert8  s¶   &$’",’(
&’
’’$*’ *
’
’*6
’
’.,
’42
’,:
’
’ 
’,*
’,VV,ż
’@
(’"&’ 
’ ’
’ž’rg  c                  C   sN   t dd} tt|  | t  tt| |  tt|  |   t|  ks%J d S )NrŅ   rÓ   )r   r]   r   rK   r"   r$   )rt   r   r   r   Śtest_other_lambert  s   
 ’rh  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sJ 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sJ ttttdktt dt”dt dt”ksŖJ d S )Nry   c                   S   s   t tt S r   )re   r   r   r   r   r   r   r¬     r­   ztest_solveset.<locals>.<lambda>r®   rŖ   rµ   r   rī   TFŚA)r   rU   rø   re   r   r   r¹   r   rK   r+   r¶   r   r;   r7   r#   r   rR   rM   r   r   rO   r   r   r   rŗ   r5   r$   r,  )ry   ri  r   r   r   Śtest_solveset  s8   ’,**""$&
 &*8*’F8rj  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   re   r#   r   rO   r   r   r   r   r   r$   r   rP   r   rŗ   rw   rt   ru   rv   rH   )Śk1Śk2Ś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} | td d gtgtjgtddks!J | tt td gttg||gtdks7J | tt td gttg||gtd	ksMJ | tt tt d gttg||gttdd td d fkspJ | td td gttg||gtd
ksJ t| tt gttg||gt	t
ttfftt ft|t
ttfft tft|sµJ | tt tt d gttg||gtjksĢJ | tt tt td gttg||gtjksäJ | tt tt td gttg||gtjksüJ | tt t d tt t d tt t d gtttg|||gtdtj tj fks+J ddlm} | td td  d tt gttg||gtdd	ksOJ | td d tgttg||gtddksgJ t| td td  gttg||gt	t
ttffttt ft|t
ttfftttft|t
ttfftt tft|t
ttfftttft|s½J | tt| d tt| g|tgtdttddgtdtdfksćJ | tt| d tt| gt|gtddtdtgtdksJ t| tt| t tt| gt|gtddtdtgt	t
ttfftdft
tttftddt
t|ffd|ft
t||ftdtsSJ d S )Nr   )Ś_solveset_multi)r¶   rŖ   r®   ©r®   ©rµ   ©rµ   r®   )r®   rµ   )r®   rŖ   r©   )Śtheta)r®   r   )rµ   r   rµ   )r   r®   )Śsympy.solvers.solvesetro  Ś
sympy.setsr¶   r   r   rK   r   r   rN   rH   r   rP   r¹   r   r·   Ś	sympy.abcrs  r   r   r7   r;   rM   r   )ro  r¶   rs  r   r   r   Śtest__solveset_multiŲ  s\   *,,F,
ž.008’
’<0$  ü"’
’"’
’$’**ž’rw  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   )re   r   r;   r   r7   r   r¶   r   rG   r   r   r#   rO   r   r   r   rŗ   r   r   r   r   r   r   r   Śtest_conditionset  s$   (’$*’0 ’’$’
’rx  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)re   r   r<   r   r   rG   r   r=  r   r   r   r   Śtest_conditionset_equality  s   4ry  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ą   ©re   r   rM   r   rK   r   r   r   r   Śtest_solveset_domain!  s   *&*r{  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<  )	re   r#   r   r;   r   r¶   rG   r   r   )Ś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ju s,J t|ttjtju s8J d S )Nr®   rŖ   rĆ   )r   r   re   r   r¶   r¹   )Śexpr1Ś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   )ri   r;   r#   r   r   r=  r   r   r   r   r¬   <  ó    ztest_solvify.<locals>.<lambda>)ri   r   r   r¶   r=  r·   r+   r   r$   r7   r   r   r;   rU   ŚNotImplementedErrorr   r   r   r   Śtest_solvify5  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   r;   ri   r   r¶   )Śp1Śp2Śp3Śp4r   r   r   Śtest_solvify_piecewise?  s   (*$$r  c                  C   sX   t ddd} ttt| | tjdtgksJ t d} ttt| | tjd u s*J d S )Nr   Tr§   r   )r   ri   r;   r   r   r¶   r   r«   r   r   r   Śtest_abs_invert_solvifyL  s   ""r  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sJ tt t  tt  tt  t	 t
t  t	t   tt  tt  t tt  tt  tt  t g t t tt\}}|ttt ttgt	t
 ttgtttggksąJ |tt	gtgtggksīJ tt fdd tt fdd tt fdd ttdd  tdt td
ggtdggfk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   ©Śeqns3r   r   r¬   h  ó    z*test_linear_eq_to_matrix.<locals>.<lambda>c                      s   t  tttgS r   ©r`   r   r   r   r  r   r   r¬   j  r×   c                      s   t  tdt tgS r¾   )r`   r   rt   r   r   r  r   r   r¬   l  ó    c                   S   s   t tdt t dt tgS r¾   )r`   r   r   r   r   r   r   r¬   n  ó    rµ   ré   rÓ   rŅ   )r   r   r   r   r`   ŚMatrixrt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   rU   rø   rs   )Śeqns1Śeqns2ri  ŚBr   r  r   Śtest_linear_eq_to_matrixT  s>   6J""^0( .’*’’ ’
’’r  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   rt   r   r   r  r   r   r   r   Śtest_issue_16577}  s   ("’r  c                   C   s"   t ttdtttjfksJ d S r<  )rc   r#   r   r   r¹   r   r   r   r   Śtest_issue_10085  ó   "r  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sJ 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ju 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sJ |	|d'< t d(|d'< tt|td&tdjd	ksJ td)}t|td g|ttd*k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ju 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                      r  r   ©ra   r   )ŚEqnsr   r   r¬     r  ztest_linsolve.<locals>.<lambda>c                      r  r   r  r   )Śx1r   r   r¬     r  c                      s
   t  S r   r  r   )r  Śx2r   r   r¬     s   
 c                      s   t  fS r   r  r   )ri  r  r  r   r   r¬     r³   c                      s   t  S r   r  r   )ri  r  r  r  r   r   r¬     r³   c                   S   s&   t tt d td t d gttgS )Nr®   rŖ   r©   )ra   r   r   r   r   r   r   r¬   ¢  ó   & c                   S   s   t ttt tt gttgS r   )ra   r7   r   r   r   r   r   r   r¬   £  r  r®   ©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µ   Ś_x0ry   )rÓ   )ŚmeterŚnewtonŚkilorŻ   é   iä’’’)r   r  rK   ra   r   rU   rø   rs   r   r   r   rt   ru   rv   rw   rx   rz   r   r¹   r   rS   r   Śfree_symbolsr   Śsympy.physics.unitsr„  r¦  r§  r   r   )Śx3Śx4ŚMŚsystem1rČ   Śsystem2ŚJ1ŚJ2Ś	AugmatrixŚx0r¤  ry   r„  r¦  r§  ŚkNr   )ri  r  r  r  r  r   Śtest_linsolve  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   ŚextendrK   )r   rĪ   rĻ   ŚsymsŚeqsrČ   ŚxiŚyir   r   r   Ś_mk_eqs_sol÷  s   z/test_linsolve_large_sparse.<locals>._mk_eqs_soliō  r  )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Ŗ   r¢  )rŖ   r®   rµ   )r®   r©   rµ   )r®   r®   ré   )r®   rµ   r©   )rÓ   rŖ   )rC   ra   r   r   r   rK   )ri  r  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Ŗ   rS  r®   r   rå   )r   r#   r   r;   r$   rH   r   r   r   rŗ   rf   r¶   rK   r   rN   r¹   rM   )r   r]  r^  Śf3Śf4Śf5Śf6Śf7r    r”   Śs3Śs4Śs5r   r   r   Śtest_solve_decomposition  s*   ,""& "rĒ  c                  C   sj  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jks9J tttdt t	 t	d  tj
f}tt ttd gtgtt|s_J tttdt t	 t	 tj
tdftttdt t	 tj
tdff}tt tttd gttgt| sJ t td d gtgtddks©J tttf}t tt dgtt|ks½J t dtt gtt|k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s3J t td d gttgttjfksIJ 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srJ t td d gtt ttjfksJ t tdtt tdt t d tdt t d gttttj d	tj fks³J d S )
NrÓ   r   rŖ   r®   rq  rp  ry   ri  r©   )rh   r   r¹   r   r   rK   rH   r   r   r   rŗ   r   r;   r   r   rR   r   r·   )ŚsystemŚsolnry   ri  r   r   r   Śtest_nonlinsolve_basic*  s:    $($ ’($  *2
",*(*<’rŹ  c                  C   s6   t ttft tf} tttt gtt| ksJ d S r   )rK   r   rh   r   r   )rÉ  r   r   r   Śtest_nonlinsolve_absJ  s   "rĖ  c                   C   s    t tdd  t tdd  d S )Nc                   S   ó   t td d gg S r(  ©rh   r   r   r   r   r   r¬   P  r  z2test_raise_exception_nonlinsolve.<locals>.<lambda>c                   S   ó   t td d gS r(  rĶ  r   r   r   r   r¬   Q  r#  )rU   Ś
IndexErrorrø   r   r   r   r   Ś test_raise_exception_nonlinsolveO  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Ų   )rh   r;   r   r7   r   r¹   rH   r   r   r   rŗ   rK   r   )Śsoln1rÉ  r   r   r   Śtest_trig_systemT  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   r;   rH   r   r   r   rŗ   rK   r   rh   r+   rN   r   )ŚsysŚsoln_1Śsoln_2rÉ  Śsoln_xŚsoln_yr   r   r   Śtest_trig_system_fail]  s&   $’’@"&’"&’$rŲ  c                  C   sĄ  t ddd\} }}}}}t| | | | |  g| |gtd|fks#J |d ||  || g}t|||gtd| | fksAJ || | | }|| ||  ||  ||  }|| | || |  || |  || |  }	|| | | d }
|||	|
g}d| | d| t|td f}d| | d| t|td f}t||}t|||||g|ksµJ t| d	 d
| d   ||   | td  |t d g| |tgddt tfhksŽJ d S )Nzx, y, a, b, c, dT)Śextended_realr   rŖ   ©r   r   r®   rµ   rĆ   r©   )r   rh   rK   r   )r   r   rt   ru   rv   rw   rČ  Śeq1Śeq2Śeq3Śeq4r   r   rÉ  r   r   r   Ś%test_nonlinsolve_positive_dimensionalu  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 t| d  |d  | d|  d| tjg| ||gtjksŽJ t| | | tjtjtjg| ||gtjksöJ | d  |d  | | |  |d  d|  |d  ||  | | d|d   d| d  | | |  g}t|| ||gtdd|f| ddfks?J d S )	NrŹ   Tr£   rŖ   rĆ   r©   rå   r   )r   rh   r   r¹   rK   r   r±   )r   r   r   r„   rČ  Ś	soln_realŚsoln_complexrÉ  r   r   r   Śtest_nonlinsolve_polysys  s(   02 >0f0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   rh   rK   r#   r   )r   r   r   r   rČ  Śs_xrÉ  Śsoln_real_1Śsoln_real_2Śsoln_real_3Śsoln_complex_1Ś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 ttd td d g}tt|ttgtdtd ftdtdftt| d|  t	 t
 td tjttd ftt| d|  t	 t
 td tjttdfhsUJ d S )Nr   r®   r©   rŖ   rĆ   rå   )r   r   rh   r#   r   r;   r   rH   r   r   r   r$   r   r   rŗ   r   r   r+   rK   )r   rČ  r   r   r   Śtest_nonlinsolve_complex¼  s@   &8
’ ’’’4"’’$ž
ż0,
ž20żrź  c                   C   s<   t ttt t td gtttgdt dtfhksJ d S r¾   )rh   r+   r   r   r   r   r   r   r   Śtest_nonlinsolve_radicalÕ  s   <rė  c                      sĘ  ddgt tt d d td td  d gttg t fddtdD s+J t tt d d tt d d gttgtjksEJ t td td d  d	 dt d
 dt gttgtjksdJ t td t d tt d ttgtttg g d¢t fddtdD sJ t ttd  td t d
 gttg dddt	  ddt	  fddt	  ddt	  fddt	  ddt	  fddt	  ddt	  fgt fddtdD sįJ d S )N)g      śæg      öæ)g      ś?g      ö?rŖ   rś   g      č?c                 3   ó@    | ]}t d D ]}t j| | | |  dk V  qqdS ©rŖ   ēÖ&č.>N©Śrangerü   Śargsr   ©rE  rČ   r   r   r   Ü  ó    ’,’z+test_nonlinsolve_inexact.<locals>.<genexpr>ē      ą?g      °?r°   )©g[°Šõl×æg[°Šõl×?r®   rõ  )g[&,t=Ūõ?g[&,t=Ūõær®   c                 3   rģ  )r©   rī  Nrļ  r   rņ  r   r   r   č  ró  r©   rÓ   )gÕł±ļF­ņægZ*4Ķõ?gĶrüī2ĒægčdxAąWń?gyU;~Fņæg ;W2%Ł?gqėīyč?g?¾ŠäÖ?g”Ų£ń}Ż?gņZ Aį?c                 3   rģ  rķ  rļ  r   rņ  r   r   r   õ  ró  )
rh   r   r   r   rš  r   r¹   r$   r   r   r   r   rņ  r   Śtest_nonlinsolve_inexactŁ  s@   .’42’.’&

’

’

’

’ł	’rö  c                  C   s6  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sWJ t| d |d t|   g|| g|ksmJ t| d |d t|   g|| g|ksJ t| d |d t|   g| |g|ksJ d S )Nśx, yTr£   rŖ   )r   rK   r"   r+   r#   rh   )r   r   rŃ  Śsoln2Śsoln3Śsoln4r   r   r   Śtest_solve_nonlinear_transų  s   ,,,,0rū  c                  C   s  t d} d| d  | d  d t }t|| }t|jd ddt   dks(J t|jd	 d
dt   dks9J t|jd ddt   dksJJ tj| d  | d  tj t }tdtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d   tt
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d tdd  dtt
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  ddtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d     tdtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d   t	t
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d dt	t
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  ddtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d       td d tddtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d   t	t
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d  dtd	td	 d tdt d  tdd dt  tdddt  d  d  td	d     d  dtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d  tt
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d  tdtd	td	 d tdt d  tdd dt  tdddt  d  d  td	d     d dtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d  t	t
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d  tddtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d   tt
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d    td d dtd	td	 d tdt d  tdd dt  tdddt  d  d  td	d     d  tddtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d   t	t
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d  dtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d  tt
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d  ttd dtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d   tt
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d dtd dtd	d   t	t
tdd d  d tdd  d ddtd dtd	d   tt
tdd d  d  d  td	d  t	t
ddtd dtd	d   tt
tdd d  d  dtd dtd	d   t	t
tdd d  d tdd   d  d  dtd	td	 d tdt d  tdd dt  tdddt  d  d  td	d     d    }t|| |ksAJ d S )Nr   rō  r©   rŖ   r   g©ķ	nėBĄg/H|n$żÓ?rī  r®   gšuŖŁÓægŽŹ+Nš?gø®bā?gĄqćwę?iń|  rĆ   é¬   rõ   é+   rē   rŅ   i ’’’é6   rŽ   )r   r   re   rü   rń  r   r·   rK   r+   r;   r5   r7   r   r   )r   Śn1r|  rE  r   r   r   Śtest_issue_14642  s¼  
""" 8
’’,’’’’
ž ’’
’’’
’’žžü
ü6’
’’’
’’ž’’’’
’’>ž’žžü8	
’’,’’’’
ž"’’*’’
’’žžü"’’$’’’
’’ž 
’’’
’’’’’’
žžü÷’’’’
’’>ž’ž8’B’žżū8’’

’’ū’’
’’’’’’
ž’’’’’
’’žžüś
’4’’ž6
’’4’’’
ž$
’’’6
’’žžüž*’’’
’’ 
’’’’’
ž’’’
’’’
’’žžüśö’4’’ž<
’’4’’’
ž$
’’’6
’’žžüž6
’’4’’’
ž$
’’’6
’’žžüś(

’’’
’’’’’’
ž
’’’’’
’’žžü’’
’’’’’’
ž
’’’’’
’’žžüü":’’ųöŪ:r   c                  C   s@  t d } \	}}}}}}}}}	||	 ||	  | |||	  | ||	d  ||	  ||	  | |	| |	 ||	  |  |	| ||	  |  f}
t|||	  | |	 ||	  | |	d  |||	d  ||||t|	hdhf	|||	  ||	 ||	  | |	d  d |||	d  ||||t|	hdhf	}t|
g| ¢R  |ksJ d S )Nzax bx cx gx jx lx mx nx qrŖ   r   rµ   ©r   rK   rJ   rh   )ŚVŚaxŚbxŚcxŚgxŚjxŚlxŚmxŚnxr   r   rČ   r   r   r   Śtest_issue_13961M  s   nJJ’r  c                  C   sX   t ttd  d t} t| jd dt  dksJ t| jd dt  dks*J d S )NrŖ   g       @r   gć;f ö?rī  r®   )re   r+   r   rü   rń  r   )Ś	solutionsr   r   r   Śtest_issue_14541W  s   "r  c                  C   sz   dt  ttd  t d   tt } td}t| t tjd|ks#J tttd t d  t	d  t tjtj
u s;J d S )Nrå   rŖ   r   rī   )r   r#   r   r   rK   re   r   r¶   r5   r   r¹   )ŚexprrČ   r   r   r   Śtest_issue_13396]  s   &4r  c                  C   s.  t tddtddtdd  tdd   dtddtdd  tdd    d ttdtddtdd  tdd  ddtddtdd  tdd    dtddtddtdd  tdd   dtddtdd  tdd     d  ttdtddtdd  tdd  ddtddtdd  tdd    dtddtddtdd  tdd   dtddtdd  tdd      d tddtddtdd  tdd   dtddtdd  tdd   d  tddtddtdd  tdd   dtddtdd  tdd   d tttdtddtddtdd  tdd   dtddtdd  tdd    dtddtdd  tdd   ddtddtdd  tdd     d  tddtddtdd  tdd   dtddtdd  tdd   d tttdtddtddtdd  tdd   dtddtdd  tdd    dtddtdd  tdd   ddtddtdd  tdd     d  } ttd t d t| ksJ d S )	Nrå   r©   r®   rę   iQ  é   rŖ   rĆ   )rK   r+   r   r   r   re   r   ©rČ   r   r   r   Śtest_issue_12032g  s|   *"’’&&’*"’žżž&&’*"’žż("’’ü("’’0"’"ž&żżž("’’0"’"ž&żżžī$r  c                   C   s    t dtt ttjksJ d S r¾   ©re   r+   r   r   r¹   r   r   r   r   Śtest_issue_10876  r  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   rh   r   r   r;   rK   rH   r   r   r   r   rŗ   r7   r   r   r   r   Śtest_issue_19050  s   4:’’"LJ’’r  c                  C   sģ   t tt t tttt d g} ttdt t fdt t tftdt t t fdt t t tf}t| ttg}tt	|t	|D ]$\}}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   rt   ru   r   r   r   r     r   z#test_issue_16618.<locals>.<genexpr>)r;   r   r   r7   rK   r   r   rh   r   r   r   r   )Śeqnr  rČ   Śi0Śj0r   r   r   Śtest_issue_16618  s   $F$r  c                   C   sd   t ddt  dt   dt  ddt  tddt   gttttd td dfks0J d S )Né    rŖ   rĆ   rē   r©   r®   éQ   )rh   r   r   r   rK   r$   r   r   r   r   Śtest_issue_17566  s   @’r  c               	   C   sb   t d} ttd tt t ttt| d|  t t t	j
tt| d|  t t	j
”s/J d S )Nr   rŖ   )r   re   r   r;   r   rN   rH   r   r   r   rŗ   r  r   r   r   Śtest_issue_16643¢  s   4’r  c                  C   sh   t d\} }tdd|  d|   d|   dd|  d|    g|| ttd td dfks2J d S )	Nzn mr  rŖ   rĆ   rē   r©   r  r®   )r   rh   rK   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   rh   rK   r   r#   r;   r   r$   r   r   r   rH   r   rŗ   r   )rČ  r   r¹  Śs_real_yŚs_real_zrą  ŚlamŚs_complex_yŚs_complex_z_1Śs_complex_z_2rį  rÉ  r   r   r   Śtest_issue_5132_1®  s&   (,
 68žr%  c                  C   sb  t ddd\} }t| d t| td  g}td}ttd  t| d tf}t|td| t t	td  t|   d tt
td t| d  }t|tj}|tf}t||}tt|| tg|skJ 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 )Nr÷  Tr£   rŖ   r   r®   )r   r#   r;   r   r   r$   r   r   r   r   r   rH   r   rŗ   rK   r   rh   r   r<   r   r+   )r   r   r¹  r   rą  r!  Śimgrį  rÉ  rČ  rć  Śs_yr   r   r   Śtest_issue_5132_2Å  s   L
$ r(  c                  C   s>   t ddd\} }t| d |  | | g| |gddhksJ d S )Nza, bTr£   rŖ   r£  rŚ  )r   rh   r.  r   r   r   Śtest_issue_6752Ų  s   .r)  rW   c               	   C   s  ddl m} m} ttttttt	g}tt
t  tt  tdt dt  dt   tt  t
t  tdt dt  dt   tt  tt  tdt dt  dt   tt  tt  tdt d|   d|   tt  t	|  t	d| dt   t|  g}tt||dksJ d S )Nr   )Śorc  r®   )rv  r*  rc  rt   ru   rv   ry   r{   r~   r   r   rw   rx   rz   r|   r}   r   r   r   r   rh   )r*  rc  rø  r¹  r   r   r   Śtest_issue_5114_solvesetŻ  s   ****ūr+  Ś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   rh   )r!  Śa0Śconcr¹  Śsymr   r   r   Ś_test_issue_5335ī  s   ."
ž
."
ž
r0  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 )Nśx yTr£   rŖ   rą   r©   éæ   rÄ   i  rŅ   )r   r+   r   rh   r   r¹   )r   r   Śe1Śe2rt   ru   r  r   r   r   Śtest_issue_2777  s   8$ r5  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+   rh   )r  Śy1Śr1r  Śy2r«  Śy3Śr3Śvr]  r^  ræ  ŚFŚg1Śg2Śg3ŚGri  r  r   r   r   Śtest_issue_8828  s(   
$ $
$$


rE  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 )Nry   rŖ   r©   r   )r   r   r   r   r   r   r   rG   r   r=  rh   )ry   r]  r^  Śintermediate_systemrø  rÉ  r   r   r   Śtest_nonlinsolve_conditionset)  s   0
żrG  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®   )rg   r   r   r   r¹   rK   r7  )rČ  rÉ  r   r   r   Śtest_substitution_basic8  s   80žžrI  c                   C   sj  t td td td td dt gtttgddtfhksJ t tt t tjtjtjgtttgt t ttfhks=J t t	t
 tt
 tt
 t
d d gt	ttt
gt
t
 t
 t
fhks_J t t	t	tt  t	td  gt	tgdtfhksyJ t t t dt  dt  dt dtd   d	 d
t t t td  td dt  d gttttgjthks³J d S )Nr®   rŖ   rĆ   rå   r   rŅ   iÆ’’’rõ   i  r  r©   )rg   r{   r~   ry   r   r   r   r   r±   rt   rw   ru   rv   r$   r©  r   r   r   r   Śtest_substitution_incorrectF  s*   "’
’$’,’$’0(’
žžrJ  c                  C   s   t td td  td gttgt dftdfttd  dfttd dfhks+J t tt td dtd   d gttg} t| dksHJ d S )NrŖ   r®   r©   rÓ   )rg   r   r   r   r+   r   )rE  r   r   r   Śtest_substitution_redundant_  s
    .’*rK  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   r<   rJ   rK   r+   rg   r   r#   r;   r$   r   r   r   rH   r   rŗ   r   )r   r   r   r   r   rČ  Śs_x_1Śs_x_2r'  rÉ  r   r¹  r  r   rą  r!  r"  r#  r$  rį  r   r   r   Śtest_issue_5132_substitutionj  s0   $(& ,
 68žrN  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(  ©rg   r   r   r   r   r   r¬     r  z*test_raises_substitution.<locals>.<lambda>c                   S   rĪ  r(  rO  r   r   r   r   r¬     r#  c                   S   s   t td d gttgS r(  )rg   r   r;   r   r   r   r   r¬     ó    c                   S   s   t td d gtS r(  rO  r   r   r   r   r¬     r  c                   S   s   t td d gdS r(  rO  r   r   r   r   r¬     r  )rU   rø   Ś	TypeErrorr   r   r   r   Śtest_raises_substitution  s
   rR  c                     s2  ddl m  g d¢} td} fdd| D } tttjdd | D  }t| |}t|d|d	d
ddt	d dt	d f|d|d	d
ddt	d d
t	d f|d|d	d
dd	t	d dt	d f|d|d	d
dd	t	d d
t	d f}t
|t
|  krdksJ  J ||ksJ |jD ]
}t
|d
ksJ qd S )Nr   r   )zk-16zp-8zy*y+z*z-x*xz	d - x + pzd*d+k*k-y*yzz*z-p*p-k*kzabc-efgŚefgc                    s   g | ]} |qS r   r   ©r   r   r   r   r   Ś
<listcomp>  r  z$test_issue_21022.<locals>.<listcomp>c                 S   s   g | ]}|j qS r   )r©  rT  r   r   r   rU    r#  r  rę   rŻ   r  rJ  rÓ   éų’’’rĆ   )Śsympy.core.sympifyr   r   r   r   r7  Śunionrh   rK   r+   r   rń  )r¹  rS  ŚsybrE  r  rf  r   r   r   Śtest_issue_21022  s"   	
""""ü$
’rZ  c               	   C   s   t d} t d}tt|| fftd| t td|  t t td   ttd|  t t td  tt	j
t	j
}ttttd t |”sLJ d S )Nr   rk  rŖ   rÓ   )r   rH   r   r   r   r   r$   r   rP   r   rŗ   re   r#   r   r   )r   rk  rČ   r   r   r   Śtest_issue_17940«  s   6’ž$r[  c                   C   s0   t dtd d  dt  ttddksJ d S )Nré   rŖ   éP   rõ   rV  rą   )re   r   rK   r   r   r   r   Śtest_issue_17906“  s   0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 )NrP  rś   rą   r   )r   r;   r   r7   r   r   rh   rK   )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   rh   r~   r   r#   r   rK   r   r   rH   r   r   rŗ   r   r   r   r   Śtest_issue_14565Ā  s   *"’r_  c                  C   sn   t ddd} tttd ttjtju sJ ttt|  ttjtju s&J tt| d| tjtju s5J d S )Nru   Tr§   r®   rµ   )r   re   r   r   r   r¶   r¹   r   )ru   r   r   r   Śtest_issue_9556Ė  s     "r`  c                   C   sL   t ttt t tttjtjksJ t ttt t tttjks$J d S r   )re   r   r   rt   r   r¶   r   r=  r   r   r   r   Śtest_issue_9611Ó  s   &&ra  c                   C   s>   t td t ttjttjttt  tt ksJ d S rā   )re   r   rt   r   r¶   rL   rK   r+   r   r   r   r   Śtest_issue_9557Ų  s   ’rb  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   re   r   r¶   rK   r   r¹   r   r    r²   r   r   r   Śtest_issue_9778Ż  s   "&’rc  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å   )	re   r   r   r   r¶   r¹   rK   rĖ   r   )r  r   r   r   Śtest_issue_10214ę  s   &&"(0rd  c                   C   s(   t tttd ttjtjksJ d S r¾   )re   r   r;   r   r   r¶   r¹   r   r   r   r   Śtest_issue_9849š  s   (re  c                   C   s   t g ttjks
J d S r   )ra   r   r   r¹   r   r   r   r   Śtest_issue_9953ō  r?  rf  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Ä   )re   r   r   r¶   rK   r+   r   r   r   r   r   Śtest_issue_9913ų  s    ,&’’’rg  c                   C   s"   t ttttjtdksJ d S r<  )re   r+   r   r   r=  rK   r   r   r   r   Śtest_issue_10397ž  r  rh  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   rt   r   r   r   r   r¬   	  s    "’c                   S   s$   t td dt  td  d gtS r3  ri  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é   ri  r   r   r   r   r¬   		  s    &’c                   S   s    t tdt d  t gttgS r¾   r  r   r   r   r   r¬   	  s    ’c                   S   s   t td t gttgS r¾   r  r   r   r   r   r¬   	  s    ’c                   S   s"   t tdt dt t gttgS r¾   ©r`   r   r   r   r   r   r   r   r¬   	  ó    ’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¬   	  rk  c                   S   s&   t tttd  td t gttgS rŲ   rj  r   r   r   r   r¬   	  s     ’)rU   rø   r   r   r   r   Śtest_issue_14987	  s   rl  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   rt   ru   re   rK   r   r·   r¶   rL   r   )ró   rm  rn  r   r   r   Śtest_simplification	  s   6 rp  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$   re   r   rŗ   rI   r   rN   r¹   )
rŪ  rÜ  rŻ  rŽ  ró   Śeq5Śeq6Śeq7Śeq8Śeq9r   r   r   Śtest_integer_domain_relational#	  s(   .,$4.rv  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 )Nry   rz   rŖ   r   )	r   re   r   r   r   r¶   r   rG   r   )ry   rz   r   r   r   Śtest_issue_10555=	  s   ’"&’rw  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   re   r   r¶   rM   r,  r   rK   rĖ   r$   r#   r  r   r   r   Śtest_issue_8715F	  s   ’’rx  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   r;   r   rL   r   r¶   rK   r$   re   r+   r   r   r<   r   )ró   rÉ  r„   r   r   r   Śtest_issue_11174N	  s   &42ry  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+   rJ   rK   re   r   r¶   )r   r   ró   rÜ  rÉ  r   r   r   Śtest_issue_11534Y	  s    8rz  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®   )re   r   r   r¶   rN   rM   r,  r   r   r   r   r   Śtest_issue_10477d	  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ą   )re   r;   r   rM   r   rK   r   r	   )r|   r   r   r   Śtest_issue_10671i	  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+   re   r   r¶   rM   r   ŚLopenr  r   r   r   Śtest_issue_11064o	  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   r]   r   r¹   re   r¶   rM   r   )ró   rÉ  r   r   r   Śtest_issue_12478y	  s
   
$r  c                  C   s6   t ttt dkttj} t dd”}| |ksJ d S r`  )re   r$   r   r   r¶   rM   r}  )ró   rČ   r   r   r   Śtest_issue_12429	  s   r  c                  C   sZ   t tt } td}t|  tt|tt	|d dt
jt|t|dkt
j”s+J d S )NŚCr®   r   )r   r   r   r   re   r   rL   rG   r   r   r   r=  r   )ró   r  r   r   r   Śtest_issue_19506	  s
   $’r  c                   C   sV   t ttttjt dt”ksJ t tdt d ttjt tddt”ks)J d S )Nr   rĆ   r©   )	re   r   r   r   r¶   rM   r,  r   r   r   r   r   r   Śtest_solveset_arg	  s   "4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   rT  rŌ   r   r   r   	  s    z3test__is_finite_with_finite_vars.<locals>.<genexpr>Tr£   )Ścomplexr®   F)rj   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  rz  r   r   r   r   Śtest_issue_13550	  r+  r  c                   C   s4   t ttdtd  td tfttju sJ d S )NrÓ   rŖ   )rh   r   r+   r   r¹   r   r   r   r   Śtest_issue_13849	  s   4r  c                   C   s   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 t tttddtj
u sCJ d S )NrŖ   rµ   r®   r   )re   r   r   r,   rG  r.   r   r¶   rK   rM   r¹   r   r   r   r   Śtest_issue_14223£	  s   ’’’’ r  c                	      s¬  t j ttttd d t ttddk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ą   )re   r   r-   r   ©Śdomr   r   r¬   “	  rP  z"test_issue_10158.<locals>.<lambda>c                      r  r  )re   r   r,   r   r  r   r   r¬   µ	  rP  c                      s&   t tttd d td d t S )Nr©   r®   rŖ   )re   r-   r   r   r   r  r   r   r¬   ¶	  r   c                      s   t ttd tt t S r¾   )re   r   r   r   r   r  r   r   r¬   ·	  s    c                      s    t ttdttd   t S )NrĆ   r®   r"  r   r  r   r   r¬   ø	  s     )r   r¶   re   r   r-   rK   r   r,   r+   r   r   r=  rU   rø   r   r   r  r   Śtest_issue_10158«	  s   ,24<::r  c               
   C   s¤   dt dt  t } ttt d  d }t| ttjttj|k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   rK   r$   re   r   r¶   rL   r   rH   r   r   r   r   r   r   rŗ   )ry   Śa1r   r   r   Śtest_issue_14300»	  s   
’
(’’’r  c                      s@   t td t d d tt fdd ttd  tsJ d S )NrĆ   r®   rŖ   c                      s   t  dtS r<  )rc   r   r   ©Śnumberr   r   r¬   Č	  r­   z"test_issue_14454.<locals>.<lambda>)rE   r   rU   rø   rc   r   r   r  r   Ś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 )NrV  rŖ   rś   r®   rĆ   r©   )re   r   r   r=  rK   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   rq   r   r7  )r  r   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  )rk   r   r   r¶   r¹   rK   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   r=   re   rd  rK   r@   r  r   r   r   Śtest_issue_21276ą	  s   <0r  c               
   C   sŌ  ddl m}  ddt  dtd   }dddt   ddt   }dt dt  }ttdt dt  }tt|  tt |   d }dtd  dtd   }dtd	  dtd   dtd	   dtd   dtd   }d
tdt d  dtdt d	   }dt dt  dt  d }	ddtd	   dt  ddt   }
t|ttjt	dtd dtd td  ks¼J t|ttjt	t
ddksĢJ t|ttjtjksŲJ t|ttjt	dksåJ t|ttjttjt	| tdtt|    ksJ t|ttjt	dksJ t|ttjt	dksJ t|ttjt	dtd d dtd d  t
dd ks>J t|	ttjt	dksLJ t|
ttjt	td td td td td td  ksrJ td
tdt d  dtd	   tt	ddtd  td tdd   ksJ tdtd  dtd   tt	dks³J tdttd ttd }tdtd  ddt   tt	| |ksŪJ td\}}td}t||td   t|t  |tttjt	t||td    ksJ tddd} ttd | d tt  | ttjt	ttd tt  ttd tt ks?J tddd}td	| d	 |d	  | tttd	d	t  td	  dtj”shJ d S )Nr   r1  r©   rŖ   rĆ   rÓ   rś   rŻ   r®   r  rå   éT   é   ig  é{   i¦
  r  rä   rI  rŅ   zC1 C2ry   r   Tr§   rc  )rv  r   r   r#   r$   r   re   r   r¶   rK   r   r¹   rL   r]   r+   r   r   r   r   rG   r   )r   r3  r4  Śe3Śe4Śe5Śe6Śe7Śe8Śe9Śe10ru   ŚC1ŚC2ry   rc  r   r   r   Śtest_exponential_realå	  sX   <($
’ ’BL&$’, 0(’.’"’r„  c            	   	   C   sŲ  t d} ttdt dt  ttt| td|  t t  td t	j
s'J ttt tt  d tttdtttt  ksDJ ttdtd  dtd   ttt| d|  t t td t	j
siJ ttdt d ttt| td|  t t  dtd  td t	j
sJ dttd t  d td d  }tttttd ttdd|  t t    }t|tt| |ksŹJ tt| td|  t ttdd   td t	j
}tt| td|  t ttdd   td t	j
}ttdt dt  dt  tt||sJ dtd	  dtd   dtd	   dtd   dtd   }t|t}d|  t t dtd  dtd  }d
td td }tt| || t	j
}t||sjJ d S )Nr   rŖ   rĆ   r©   r  rÓ   rä   rŻ   r®   rå   )r   r   r_   r   rO   r   r   r   r$   r   rŗ   r   r   rK   re   r#   r+   r   rN   )	r   ró   rt   Śunion1Śunion2rE  ŚnumŚdenr  r   r   r   Śtest_exponential_complex
  s2   $
’
’  
’0
’$6440<
(rŖ  c                  C   s  t td t d } td t t d }dt t t d }ttt t }dt dt  dt  }t| ttj ttt	t td t d dtj”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$   re   r   r¶   r   rG   r   )r]  r^  ræ  rĄ  rĮ  r   r   r   Śtest_expo_conditionset0
  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   re   r   r¶   rL   rK   r$   r   rM   r}  r   r   rG   r   r,  r#   rJ   r   rt   ru   r   )	r   r   r   ŚxrŚzrr]  r^  r   r   r   r   r   Śtest_exponential_symbolsD
  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   r_   )Śxposr   r   r   r   Śtest_ignore_assumptions_
  s
   ’r°  c                   C   s*   t ttt  t ttjtdksJ d S r¾   )re   r   r   r   r   r¶   rK   r   r   r   r   Śtest_issue_10864g
  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©   )r]   r+   r#   r   rK   r$   r   r   r   r   Śtest_solve_only_exp_2l
  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®   )rl   r   r   r;   r   r   r   r   r   Śtest_is_exponentialr
  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Ó   )rm   r   r   r¶   rK   r$   r   r   r+   r¹   rG   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Ć   )r]   r$   r   rK   r+   r#   r   r   r   rL   r   r¶   r·   re   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ju s!J t dt t ttd  d } t| ttju s;J d S )NrŖ   r®   rŻ   )r$   r#   r   r'   r]   r   r¹   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 sJ 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Ć   )rn   r   r   r$   r;   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   rp   r$   r   r   r¶   rK   r1  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   ro   r   r   r$   r#   r	   rĖ   r&   r7   r'   r(   )rt   ru   rv   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 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©   r”  )rŖ   r®   r©   c                      s$    t dt d   t d  t t d S r3  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¬   Ž
  ó   c                      s    t t t S r   r«   r   rŗ  r   r   r¬   ą
  s   r°   )r   r   r°   )rt  r»  r   r   r   rU   rø   rt   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Ó   )rr   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jfks	J t	|tdt d	td| ttt
t| d
|  d tjfs*J t	|td
td
 t d  dtd
| ttd
 t d t
t| d|  d tjfsWJ |tttd	 dtd| tttjfksoJ d S )Nr   T©Śintegerr   )Ś_invert_modularré   rÓ   rŻ   rĆ   rŖ   r©   r®   )r   rt  rĮ  r
   r;   r   r   r#   r$   r   rH   r   rŗ   r¹   Ś	Naturals0)r   Ś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ju sJ tdttd ttjtju s­J ttd	ttd
 ttjtt| d
|  d	 tjsÉJ tdttd
 ttjtju sŚJ ttdttd ttjtt| d|  d tjsöJ ttdtdt d d ttjtt| d|  d tjsJ ttdtdt d ttjtt| d|  d	 tj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ju sæJ ttttd dd ttjttt| d|  d tjtt| d|  d tjtt| d|  d tjtt| d|  d tjsJ tttdt dd ttjtt| d|  d tj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ju sÄJ ttttd dd ttjtt| d|  d tjsćJ ttttd dd ttjttt| d|  d tjtt| d|  d tjsJ ttdtdt d d ttjttt| d|  d tjtjs5J tttdt ttjtj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”sJ ttttd dd ttjttt| d|  d tjtt| d|  d tjsŗJ ttttd  d!d" ttjtt| d!|  d  tjsŁJ tddd} d#}d$}d%}d&}tt|t||  | | | tjtt| d'|  d( tjsJ tt|t||  | | | tjttt| d'|  d( tjtj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ju 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÷   rU  éM   éS   é]   é   é   rł   rū   r  é)   rä   r  é   rT  rŅ   r®   rS  r“   éJ   rż  i­VH,i½.qi’’’i@Č3iž’’rÆ   i’’’?é2   r9  )r   re   r
   r   r   rŗ   r   rG   r   r;   r$   r#   r¹   r   rH   r   rN   rĀ  rL   r   r   )r   rt   ru   r   rv   r   r   r   Śtest_solve_modular  s  ’’’ ’’ ’’’’""’"’ 
’
’ł
’(	ż
’
’
’
’
’ "’’’
’(
’’
’  
’
’ ’’ ’’’
’
’ 
’ ’
’$’
’4$’’rĻ  c                   C   sd   t ttdtdd  ttt dtd gtttdtdd  ddtdd   fks0J d S )NrÓ   r®   é   r©   rą   )rh   r   r   r   r   r+   rK   r   r   r   r   Śtest_issue_17276}  s   2&’rŃ  c                  C   sø   t d} td}t d}tt| | t|  | t d”ttt|d| t t	j
tt	jtt|t td| t ttdt |     dt|    t	j
 t d”ksZJ d S )Nr   rt   r   rŖ   rå   zx,n)r   r   re   r;   r   rN   rH   r   r   r   rŗ   rL   r=  r   r   r#   r   )r   rt   r   r   r   r   Śtest_issue_10426  s   $D’ž
żrŅ  c                   C   s(   t ttd t tdt ksJ dS )z,Test solveset for simple conjugate functionsr©   N)re   r!   r   r   rK   r   r   r   r   Śtest_solveset_conjugate  s   (rÓ  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|||||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sKJ d S )(Nzx0:16zy0:12r7  é.   é'   rĪ  é#   é"   é   rŠ  é,   r  rC  é5   é8   rV  é4   rž  é0   é<   rŖ   rÓ   r®   rŅ   rĢ  rū   rÄ   é&   rą   rę   rŻ   é   r©   é!   rē   c                 S   s   i | ]\}}||kr||qS r   r   )r   r?  ró   r   r   r   Ś
<dictcomp>Ą  r  z$test_issue_18208.<locals>.<dictcomp>c                 S   s   g | ]}|qS r   r   rė   r   r   r   rU  Ģ  r×   z$test_issue_18208.<locals>.<listcomp>)
r   r`   r   r\   rK   r   ra   Śgauss_jordan_solverĖ   rh   )'Ś	variablesr³  r  r  r«  r¬  Śx5Śx6Śx7Śx8Śx9Śx10Śx11Śx12Śx13Śx14Śx15Śy0r:  r<  r=  Śy4Śy5Śy6Śy7Śy8Śy9Śy10Śy11r¹  Śexpectedri  ru   Śsolve_expectedŚlinsolve_expectedŚgj_solveŚnew_varsŚgj_expectedŚnonlinsolve_expectedr   r   r   Śtest_issue_18208  s¼   "’’žżüūśłų	÷
öõōóņńšļīķģėźéčēęåäćāį ą!ß"Ž($*.ż"	$(żr   c                  C   sŖ  t d\} }}}}}}}}}	}
}}}}}}}}}}}}}||||||||||	|||||g}| | ||  | | | | | ||  |	 | | ||  | | | | ||  | | | ||  | | | | ||  | | | | ||  | | ||  |  ||  ||  | ||  ||  | ||  ||  | ||  ||  | | |	 | |
 | | | | | | | | | | | |
||||g}tdtt|tdddddddddddd||f|tt|tdd|ddddddddd| | | | fdtt|tdd|dddddddd| | | | | |fdtt|tdd|ddddddd| | | | | | ||f}|t||k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  )Śa00Śa01Śa10Śa11Śl0Śl1Śl2Śl3Śm0Śm1Śm2Śm3Śm4Śm5Śm6Śm7Śc00Śc01Śc10Śc11Śp00Śp01Śp10Śp11ŚsolveforrČ  rČ   r   r   r   Ś*test_substitution_with_infeasible_solutionį  sJ   4’"ē.:>Bür  c                   C   s   t dtt tju sJ d S r¾   r  r   r   r   r   Śtest_issue_20097
  r¼  r  c                   C   s*   t ttdt t tddksJ d S )Nr®   rµ   )re   r	   r+   r   rK   r   r   r   r   Śtest_issue_15350  s   *r  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©   Tr5  )r.   r   r,   rM   re   r   )Śc1Śc2Ścorrect_resultŚresult1Śresult2r   r   r   Śtest_issue_18359  s   <J
r"  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©   rS  r   )r   r#   r   rl   rm   r   r=  rK   )r»   r   r   r   Śtest_issue_17604  s   * r#  c                   C   s,   t ddtd  d  ttjtju sJ d S r@  )re   r   r   r¶   r¹   r   r   r   r   Śtest_issue_17580"  s   ,r$  c                  C   s\   dt  dt  d dt  dt  d g} t| t tttddt  td tfks,J d S )NrŖ   r©   rĆ   rś   rÓ   )r   r   rh   rK   r$   )rÓ  r   r   r   Śtest_issue_17566_actual&  s   (4r%  c                  C   s   t dtd d  dtd tdd    dtd  td tdd    d} tt dtdd ”tdt}t| tt	j
|ksBJ d S )NrŖ   r©   r®   r   rµ   rĆ   )r   r   r   rN   rM   r}  r   r   re   r   r¶   )ró   rE  r   r   r   Śtest_issue_17565,  s   N r&  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ą   rI  )r   r+   re   r   r¶   rK   r   )Śfunctionr   r   r   Śtest_issue_150242  s   "r(  c                
   C   sl   t ttd ttgttttdtttdt t	 t
jftdtttdt t	 t	 t
jfs4J d S rŲ   )r   rh   r   r;   r   rK   rH   r   r   r   r   rŗ   r   r   r   r   Śtest_issue_168777  s
   "$’’r)  c                   C   s   t tttdt dt  gttttttdt t	 t
jttttt	 t
jftttdt t	 t	 t
jttttt	 t	d  t
jfsJJ d S ©NrŖ   rĆ   )r   rh   r;   r   r   rK   rH   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)Śrationalr   ze1 e2)Śeven)r   re   r   r¶   rG   r   )r   r   r   r3  r4  r   r   r   Śtest_issue_21236G  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Ś  )rh   r   r   r#   r   r   r   r   Śtest_issue_21908P  s   6’r/  c            
      C   s  t t d td d g} dd | D }dt tfdt t fh}t| t tg}t|t tg}||  kr9|ks<J  J t t d td d g}dd |D }t t fttfh}t|t tg}t|t tg}	|	|  krr|ksuJ  J ttt dt   dt  gt gttjfksJ d S )Nr®   rŖ   c                 S   ó   g | ]}t |d qS ©r   ©r   rė   r   r   r   rU  X  r  z$test_issue_19144.<locals>.<listcomp>c                 S   r0  r1  r2  rė   r   r   r   rU  _  r  )r   r   r   rh   r   rK   r   r¹   )
r~  rŪ  rŃ  Ś
soln_expr1Śsoln_eq1r  rÜ  rų  Ś
soln_expr2Śsoln_eq2r   r   r   Śtest_issue_19144U  s   4r7  c                  C   sØ   t dt dt dtt  d  tdt  dt tdt  dt tdt t   dtdt t   d ftt} tttjftt tj tf}| |ksRJ d S )NrĆ   rŖ   r®   )rh   r   r   r#   rK   r   r  r·   )rE  Śsolsr   r   r   Śtest_issue_22413h  s   ,B’ž r9  c                  C   sČ   t dtttdt  d  t t tdt t ddt t g} dd | D }dh}tt| tttg| tt|tttg| td	t dd	t   d }d
t | dt  }tt|tddh d S )Ng}jżÉJ@g      @r®   gś~j¼tX?gøėQ„¾@c                 S   s   g | ]}|  t”qS r   )rG  r   )r   ró   r   r   r   rU  w  r  z$test_issue_23318.<locals>.<listcomp>)gO]¤Æp@g¹;Üõfl”?g~adOŗAgIüņæx©>gś~j¼tXægFæÓ­{å>r   g\adOŗA)	r   r   r$   r   r   r¢   rh   r   re   )Śeqs_eqŚeqs_exprrČ   Ślogtermró   r   r   r   Śtest_issue_23318q  s    żr=  c                   C   s^   t dt ddt   ddt  ddt   gttttddt  td tjfks-J d S r*  )rh   r   r   rK   r$   r   r=  r   r   r   r   Śtest_issue_19814  s   2 ’r>  c                  C   sh   t tt td  dt  tt ttj} |  tdi”dtd dtd hks2J |  tdi”d S r(  )re   r+   r   r   r   r¶   Śxreplacer  r   r   r   Śtest_issue_22058  s   ,<r@  c                   C   sJ   t dttd ttd  td  d d   d ttjtju s#J d S )NrÄ   rŖ   rą   rŽ  )re   r+   r   r   r¶   r¹   r   r   r   r   Śtest_issue_11184  s   JrA  c                  C   s<  t dd } tdtd  td  dt  dtd  td  dt  gttd|  dt  tfd|   d d|  td t d  t tfd|   d d|  td t d  t tfhks_J tddtd   tdtd  dtd    dt t tdtd   tdtd   gttt d d dft dd dfhks¢J tdd	d
\}}td|d  |d  d|  d|d  |d  d|  g||}dt dd  d|  |fdt dd   d dt dd  td t d  | |fdt dd   d dt dd  td t d  | |fh}||ksJ d S )NrŖ   r©   rĆ   r®   rå   rŽ   r   r1  Tr£   )r   rh   r   r   r+   r   r#   r   )rx   ŚrxŚryrČ   r  r   r   r   Śtest_issue_21890  s&   >>,
ž,*’’ ’@<<žrD  c                   C   sl   t td td td td dt gttttjksJ t td d tt td d gttgtjks4J d S )Nr®   rŖ   rĆ   rå   r©   )rh   r{   r~   ry   r   r¹   r   r   r   r   r   r   Śtest_issue_22628”  s   66rE  N(l  Śmathr   Śsympy.core.addr   Śsympy.core.containersr   Śsympy.core.functionr   r   r   r	   Śsympy.core.modr
   Śsympy.core.numbersr   r   r   r   r   r   Śsympy.core.relationalr   r   r   r   Śsympy.core.singletonr   Śsympy.core.sortingr   Śsympy.core.symbolr   r   r   rW  r   Ś$sympy.functions.elementary.complexesr   r   r   r   r    r!   Ś&sympy.functions.elementary.exponentialr"   r#   r$   Ś%sympy.functions.elementary.hyperbolicr%   r&   r'   r(   r)   r*   Ś(sympy.functions.elementary.miscellaneousr+   r,   r-   Ś$sympy.functions.elementary.piecewiser.   Ś(sympy.functions.elementary.trigonometricr/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   Ś'sympy.functions.special.error_functionsr=   r>   r?   r@   r8  rA   Śsympy.matrices.denserB   r  Śsympy.matrices.immutablerC   Śsympy.polys.polytoolsrD   Śsympy.polys.rootoftoolsrE   Śsympy.sets.containsrF   Śsympy.sets.conditionsetrG   Śsympy.sets.fancysetsrH   rI   Śsympy.sets.setsrJ   rK   rL   rM   rN   rO   rP   Śsympy.simplifyrQ   Śsympy.tensor.indexedrR   Śsympy.utilities.iterablesrS   Śsympy.testing.pytestrT   rU   rV   rW   rX   rY   Śsympy.core.randomrZ   rD  rŖ  r[   Śsympy.solversr\   rt  r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rv  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/  r0  r2  r4  r:  r;  r>  rA  rF  rH  rL  rM  rN  rO  rY  rZ  r\  r_  ra  rb  rg  rh  rj  rn  rw  rx  ry  r{  r}  r  r  r  r  r  r  r  rµ  r½  r¾  rĒ  rŹ  rĖ  rŠ  rŅ  rŲ  rß  rā  ré  rź  rė  rö  rū  r   r  r  r  r  r  r  r  r  r  r  r%  r(  r)  r+  r0  r5  rE  rG  rI  rJ  rK  rN  rR  rZ  r[  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  rl  rp  rv  rw  rx  ry  rz  r{  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r„  rŖ  r«  r®  r°  r±  r²  r³  r“  rµ  r¶  r·  rø  r¹  r½  r¾  rÄ  rĻ  rŃ  rŅ  rÓ  r   r  r  r  r"  r#  r$  r%  r&  r(  r)  r+  r.  r/  r7  r9  r=  r>  r@  rA  rD  rE  r   r   r   r   Ś<module>   sš      @$ d\

_
	;
'I

#	
 "

	
]R

V

$
/

)l	 	



G









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