U
    ZÊ¹j|½  ã                   @   sÞ  d dl 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 d dlmZmZ d dlmZ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# 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/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@ edƒ\ZAZBZCZDZEZFZGZHZIZJZKeddd�\ZLZMZNZOedƒZPedƒZQedƒZRdd„ ZSd d!„ ZTd"d#„ ZUe=d$d%„ ƒZVd&d'„ ZWd(d)„ ZXd*d+„ ZYd,d-„ ZZd.d/„ Z[d0d1„ Z\e;d2d3„ ƒZ]d4d5„ Z^d6d7„ Z_d8d9„ Z`d:d;„ Zad<d=„ Zbd>d?„ Zcd@dA„ ZddBdC„ ZedDdE„ ZfdFdG„ ZgdHdI„ ZhdJdK„ ZidLdM„ Zje=dNdO„ ƒZkdPdQ„ ZldRdS„ ZmdTdU„ ZndVdW„ ZodXdY„ ZpdZd[„ Zqd\d]„ Zrd^d_„ Zsd`da„ Ztdbdc„ Zue>ddƒdedf„ ƒZvdgS )hé    )Ú
DerivativeÚFunctionÚSubsÚdiff)ÚEÚIÚRationalÚpi)ÚEq)ÚS)ÚSymbolÚsymbols)ÚimÚre)ÚexpÚlog)Úacosh)Úsqrt)Úatan2ÚcosÚsinÚtan)ÚIntegral)ÚPoly)ÚO)Úcollect)Úclassify_odeÚhomogeneous_orderÚdsolve)Úcheckodesol)Úclassify_sysodeÚconstant_renumberÚconstantsimpÚget_numbered_constantsÚ	solve_ics)Ú _undetermined_coefficients_match)ÚLinearCoefficients)Ú	ode_order)ÚXFAILÚraisesÚslowÚSKIP)Ú
filldedentzC0:11zu,x:zT©ÚrealÚfÚgÚhc                	   C   s    t tƒ� td ƒ W 5 Q R X d S ©N)r)   Ú
ValueErrorr#   © r4   r4   ú_/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/solvers/ode/tests/test_ode.pyÚtest_get_numbered_constants0   s    
r6   c                  C   sØ  t tƒ t¡} t| dd�}|d }|jjd d }|d }|jjd jd d }tt tƒtt	dtƒ ƒtt tƒtƒtt tƒtƒtt tƒtƒtt tƒtƒtt tƒtƒtt tƒtƒtt tƒtƒtt tƒtƒtt tƒtƒtt tƒtt	dtƒ ƒtt tƒtƒtt
t	dtƒt	d|ƒ |t tƒƒtƒtt tƒtƒtt tƒtƒtttƒtt	d| |t tƒt fƒ ƒtt tƒtƒtt	d|t tƒfƒtt	dtƒ ƒtt tƒtƒtt tƒtƒdddd	œ}||k�s´t‚t| d
d�tt tƒtƒk�sÔt‚d S )NÚall©ÚhintÚseparable_Integralé   r   Ú11st_homogeneous_coeff_subs_dep_div_indep_IntegraléÿÿÿÿÚnth_algebraic)ÚBernoulli_IntegralÚ1st_homogeneous_coeff_bestÚ	Bernoullir>   Únth_linear_euler_eq_homogeneousÚ%nth_linear_constant_coeff_homogeneousÚ	separableÚ(1st_homogeneous_coeff_subs_indep_div_depÚnth_algebraic_IntegralÚ
1st_linearÚ1st_linear_IntegralÚ	1st_exactÚ1st_exact_IntegralÚ	lie_groupÚ(1st_homogeneous_coeff_subs_dep_div_indepr<   Ú1st_power_seriesr:   Ú11st_homogeneous_coeff_subs_indep_div_dep_IntegralÚbestÚ	best_hintÚdefaultÚorderrO   )r/   Úxr   r   ÚlhsÚargsÚrhsr
   ÚC1r   r   r   ÚAssertionError)ÚeqÚoutputZsol1Z_yZ_u1Úexpectedr4   r4   r5   Útest_dsolve_all_hint5   s@    $& êr\   c                	   C   sB   t tƒ�0 tttƒ t¡tttƒƒ tdƒdid� W 5 Q R X d S )Nr;   ©Úics)r)   ÚNotImplementedErrorr   r/   rS   r   r   r4   r4   r4   r5   Útest_dsolve_ics[   s    
r`   c                     sÌ  t tt ƒ t ¡ tt ƒ ‰ tˆ dd�} tˆ ddd�}tˆ dd�}dddd	d
dddddddddddddddddg}dd
dddddddddddg}t|  ¡ ƒ|ks¢t‚| d tˆ tt ƒƒks¼t‚| d ttt ƒt	t  ƒksÚt‚tˆ dd�ttt ƒt	t  ƒksüt‚| d dk�st‚| d dk�s t‚| d  
t¡�r4t‚| d  
t¡�rHt‚| d  
t¡�r\t‚| d	  
t¡�rpt‚| d  
t¡�r„t‚| d  
t¡�r˜t‚| d  
t¡�s¬t‚| d  
t¡�sÀt‚| d
  
t¡�sÔt‚| d  
t¡�sèt‚| d  
t¡�süt‚t| ¡ ƒ|k�st‚|d tˆ tt ƒƒk�s.t‚|d ttt ƒt	t  ƒk�sNt‚tˆ ddd�ttt ƒt	t  ƒk�stt‚|d dk�s†t‚|d dk�s˜t‚| d |d k�s®t‚| d	 |d	 k�sÄt‚| d |d k�sÚt‚|d  
t¡�rît‚|d  
t¡�rt‚|d  
t¡�rt‚|d	  
t¡�r*t‚|d  
t¡�r>t‚|d  
t¡�rRt‚|d  
t¡�sft‚|d  
t¡�szt‚|d
  
t¡�sŽt‚|d  
t¡�s¢t‚|d  
t¡�s¶t‚t| ¡ ƒ|k�sÌt‚tt‡ fdd„ƒ tt‡ fdd„ƒ ttt ƒ t ¡dtt ƒd    dd�d ttt ƒ t ¡dtt ƒd    dd�k�sFt‚ttt ƒtt ƒ t ¡ tt ƒ t ¡ d tt ƒdd�ttt ƒt	ttt ƒ t ¡ d ttdt ƒƒ t ƒ ttdt ƒ ƒ ƒk�sÈt‚d S )!Nr7   r8   F)r9   ÚsimplifyZall_IntegralrI   rJ   r@   rL   r<   rE   rN   rG   rH   rA   r?   Úalmost_linearÚalmost_linear_IntegralrO   rP   rQ   Ú
factorablerK   rB   rR   rD   r:   c                      s   t ˆ dd�S )NZnotarealhintr8   ©r   r4   ©rY   r4   r5   Ú<lambda>Ÿ   ó    z%test_dsolve_options.<locals>.<lambda>c                      s   t ˆ dd�S )NÚ	Liouviller8   re   r4   rf   r4   r5   rg       rh   r;   é   )rS   r/   r   r   ÚsortedÚkeysrX   r'   r
   rW   Úhasr   r)   r3   r   r   )ÚaÚbÚcrl   ZIntegral_keysr4   rf   r5   Útest_dsolve_optionsa   sÂ              ÷
       û" &ÿ
ÿ
($ÿ
.ÿÿÿÿþrq   c                  C   s¤  t ttƒ td¡ttƒƒdks"t‚t ttƒttƒƒdks<t‚t tttƒ t¡dƒttƒƒdksbt‚t ttƒ t¡d ttƒƒdks†t‚t tttƒ t¡ttƒ tƒttƒƒ} t ttƒ t¡ttƒ ttƒttƒ  tttƒ  ttƒƒ}t ttƒ t¡ttƒ ttƒttƒ  tttƒ  ttƒƒ}| dk�s2t‚|dk�s@t‚|dk�sNt‚t dt ttƒ ttƒ t¡ d	t ttƒd   ttƒ ttƒƒd
k�sœt‚dt dttƒ t¡ ttƒd  ttƒt  dtd   ttƒƒk�sæt‚ttdd„ ƒ t	dƒ}t ttƒ t¡|ttƒ |t ttƒ   dttƒ |ttƒ |t ttƒ    tttƒ t¡ |ttƒ |t ttƒ    t
 ttƒƒdk�s”t‚d}t tttƒt tƒtttƒtƒ ƒ|k�sÆt‚t tttƒt tƒtttƒtƒ ttƒdd�|k�sþt‚t tdtd  ttƒ t¡ dƒttƒƒdk�s2t‚t tdttƒd  ttƒ t¡ dƒttƒƒdk�sjt‚t ttttƒtƒttƒt  dƒttƒƒdk�sžt‚tt tttƒdƒttƒdd�tƒ�sÆt‚tt tttƒ t¡dƒttƒdd� ¡ ƒdddgk�s t‚t dt ttƒ ttƒ t¡ d	t ttƒd   ttƒ ttƒddd�} t|  ¡ ƒddddd gk�sjt‚t ttƒ t¡tttƒt ƒ ttƒƒ} | d!k�s t‚d S )"Nrj   )r>   rC   rB   ri   Ú2nd_power_series_ordinaryrF   ÚLiouville_Integral)r>   rF   r   )r>   rD   rI   rG   rA   r@   rE   rL   rM   rK   rC   rB   rF   r:   rJ   rH   r?   rN   r<   )rd   r>   rD   rI   rG   rA   r@   rE   rL   rM   rK   rB   rF   r:   rJ   rH   r?   rN   r<   )rI   rG   rA   rb   rM   rK   Ú3nth_linear_constant_coeff_undetermined_coefficientsÚ1nth_linear_constant_coeff_variation_of_parametersrJ   rH   r?   rc   Ú:nth_linear_constant_coeff_variation_of_parameters_Integral)
rd   rG   rA   rM   rK   rt   ru   rH   r?   rv   r;   )rd   rI   rA   rb   rK   rJ   r?   rc   ZRiccati_special_minus2é   éþÿÿÿc                   S   s&   t ttttƒ t¡ t¡ tttƒƒS r2   )r   rS   r/   Úyr   r4   r4   r4   r5   rg     s   ÿÿz#test_classify_ode.<locals>.<lambda>Úk)rd   rD   rI   rG   rA   rM   rK   r:   rJ   rH   r?   )rd   r>   rD   rI   rG   rA   r@   rE   rL   rM   rK   rt   Z<nth_linear_euler_eq_nonhomogeneous_undetermined_coefficientsru   Z:nth_linear_euler_eq_nonhomogeneous_variation_of_parametersrF   r:   rJ   rH   r?   rN   r<   rv   ZCnth_linear_euler_eq_nonhomogeneous_variation_of_parameters_IntegralT)Úprep)rd   r>   rD   rI   rG   rA   rM   rK   rB   rF   r:   rJ   rH   r?   )rd   r>   rD   rI   rG   rA   rM   rK   rF   r:   rJ   rH   r?   )rM   rK   é   ©ÚdictrQ   rC   rR   rA   ©r~   r9   r?   Úordered_hints)rD   rI   rM   rK   r:   rJ   )r   r/   rS   r   rX   r
   r   r)   r3   r   ÚzÚ
isinstancer~   rk   rl   )rn   ro   rp   rz   Úansr4   r4   r5   Útest_classify_ode©   st    ÿ
&$&<<
8 ÿþ
>ÿ
>ÿ,ÿÿÿþ
.&ÿÿ
(ÿ
,ÿ
(ÿ
((ÿ
J (r„   c                      sÎ  t tƒ tt¡t tƒ ‰ tdi‰tt‡ ‡fdd„ƒ tdƒdi‰tt‡ ‡fdd„ƒ t tƒdi‰tt‡ ‡fdd„ƒ t ddƒdi‰tt‡ ‡fdd„ƒ t dƒt tƒi‰tt‡ ‡fdd„ƒ t dƒt dƒi‰tˆ t tƒˆd	� t dƒdi‰tˆ t tƒˆd	� ttƒ t¡ td¡di‰tt‡ ‡fd
d„ƒ t tƒ t¡ tt¡di‰tt‡ ‡fdd„ƒ t tƒ t¡ td¡di‰tt‡ ‡fdd„ƒ t ttƒ t¡ td¡di‰tt‡ ‡fdd„ƒ t	t tƒttƒ td¡di‰tt‡ ‡fdd„ƒ t tƒ t¡ td¡t tƒi‰tt‡ ‡fdd„ƒ t tƒ t¡ td¡t tƒ t¡ td¡i‰tˆ t tƒˆd	� t tƒ t¡ td¡di‰tˆ t tƒˆd	� ttƒ t¡ tt¡di‰tt‡ ‡fdd„ƒ t tƒ t¡ tt¡di‰tt‡ ‡fdd„ƒ t ttƒ t¡ tt¡di‰tt‡ ‡fdd„ƒ t	t tƒtt
ƒ tt¡di‰tt‡ ‡fdd„ƒ t tƒ t¡ tt¡t tƒi‰tt‡ ‡fdd„ƒ t tƒ t¡ td¡t dƒi‰tˆ t tƒˆd	� t tƒ t¡ tt¡di‰tˆ t tƒˆd	� d S )Nr;   c                      s   t ˆ ttƒˆd�S ©Nr]   ©r   r/   rS   r4   ©rY   r^   r4   r5   rg   N  rh   z'test_classify_ode_ics.<locals>.<lambda>r   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   X  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   \  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   `  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   d  rh   r]   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   u  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   y  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   }  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   �  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   …  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   ‰  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   ™  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   �  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   ¡  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   ¥  rh   c                      s   t ˆ ttƒˆd�S r…   r†   r4   r‡   r4   r5   rg   ©  rh   )r/   rS   r   r)   r3   r0   r   Úsubsry   r   r�   r4   r4   r‡   r5   Útest_classify_ode_icsH  sZ    	,r‰   c            *      C   sN  t ddd�\} }}}t ddd�\	}}}}}}	}
}}t dtd�\}}}}}}t dtd�\}}}}}}}t dtd�\}}}t d	ƒ}t||ƒ|ƒ}t||ƒ|ƒ}t|t| ||ƒ ƒ|||ƒ||ƒƒ ƒt||||ƒƒ|||ƒ||ƒƒ ƒf} d
d||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdid||ƒ||ƒgd|||ƒ||ƒƒ t| ||ƒ ƒ t||ƒ|ƒ |||ƒ||ƒƒ |||ƒƒ t||ƒ|ƒ g||ƒd||ƒdidœ}!t| ƒ|!k�sôt‚t|||ƒd
 ||ƒ||ƒ  ƒt|||ƒ||ƒ ƒf}"d
d||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfd||ƒ d||ƒdfdd||ƒdfd||ƒ d||ƒdfdid||ƒ||ƒgd||ƒd
  t||ƒ|ƒ ||ƒ||ƒ  ||ƒ ||ƒ t||ƒ|ƒ g||ƒd||ƒdidœ}#t|"ƒ|#k�s6t‚t||||ƒƒ|||ƒƒ |||ƒ||ƒ|ƒ ƒt||||ƒƒ|||ƒƒ |||ƒ||ƒ|ƒ ƒf}$||ƒ||ƒgdd|||ƒƒ |||ƒƒ |||ƒ||ƒ|ƒ t||ƒ|ƒ |||ƒƒ |||ƒƒ |||ƒ||ƒ|ƒ t||ƒ|ƒ gd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdi||ƒd||ƒdid
dœ}%t|$ƒ|%k�sÀt‚t|||ƒ||ƒd  ƒt|||ƒd ƒf}&d
d||ƒdf||ƒd  d||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdid||ƒ||ƒgd||ƒ ||ƒd  t||ƒ|ƒ ||ƒd  t||ƒ|ƒ g||ƒd||ƒdidœ}'t|&ƒ|'k�sät‚t|||ƒ||ƒ t|ƒd
  ƒt|||ƒd
 t|ƒd
  ƒf}(d
d||ƒdf||ƒ t|ƒd
  d||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdfdd||ƒdf||ƒ t|ƒd
  d||ƒdfdid||ƒ||ƒgd||ƒ ||ƒ t|ƒd
  t||ƒ|ƒ ||ƒd
  t|ƒd
  t||ƒ|ƒ g||ƒd||ƒdidœ})t|(ƒ|)k�sJt‚d S )Nz
k, l, m, nT)ÚIntegerz"k1, k2, k3, l1, l2, l3, m1, m2, m3zP, Q, R, p, q, r©ÚclszP1, P2, P3, Q1, Q2, R1, R2zx, y, zÚtrj   r   r;   Ztype2F)Úno_of_equationÚ
func_coeffÚtype_of_equationÚfuncÚ	is_linearrY   rR   r=   Ztype3Ztype4)r‘   r’   r�   rY   r�   rR   rŽ   rw   r|   Ztype1)	r   r   r   r
   r   r   r    rX   r   )*rz   ÚlÚmÚnÚk1Úk2Zk3Úl1Úl2Úl3Úm1Úm2Zm3ÚPÚQÚRÚpÚqÚrZP1ZP2ZP3ZQ1ZQ2ZR1ZR2rS   ry   r�   r�   Úx1Úy1Úeq6Zsol6Úeq7Zsol7Zeq8Zsol8Zeq11Zsol11Zeq13Zsol13r4   r4   r5   Útest_classify_sysode³  sê     L:       ÿ  8ÿ
ÿÿý8: 
    
  ÿ  :ÿýdfÿ8       ÿ ý,6         ÿ   "ÿý@>         ÿ   ÿ&ÿýr§   c                  C   sÌ	  t ttƒ t¡dttƒ  ttƒtdƒdid�tttƒtdt d ƒƒksNt‚t ttƒ t¡ttƒ ttƒtdƒdid�tttƒttƒƒks�t‚t ttƒ t¡ttƒ ttƒttƒ t¡ td¡did�tttƒttƒƒksàt‚t ttƒ tt¡ttƒ ttƒtdƒdttƒ t¡ td¡did�tttƒt	tƒt
tƒ ƒk�sDt‚t ttƒ t¡ttƒ ttƒ ttƒ t¡ttƒ ttƒ gttƒttƒgtdƒdtdƒdid�tttƒttƒt
tƒ ƒtttƒttƒt	tƒ ƒgk�sàt‚td ttƒd  t  t¡} t | ttƒtdƒdid�tttƒttd ƒ t ƒtttƒttd ƒt ƒgk�sTt‚t | ttƒttƒ t¡ td¡did�tttƒtttj ƒ t ƒtttƒtttj ƒt ƒgk�s¼t‚t
ttƒƒtt	ttƒƒ ttƒd  ttƒ t¡  } t | ttƒtdƒdiddd�ttt
ttƒƒ ttƒd d  tddƒƒk�sBt‚t | ttƒtdƒdidd	d�ttt
ttƒƒ ttƒd d  tddƒƒk�s’t‚ttttƒtttƒ ƒgttƒgtgtdƒdiƒtdik�sÒt‚ttttƒtt	tƒ tt
tƒ  ƒgttƒgttgtdƒdttd ƒdiƒtdtdik�s0t‚ttttƒtt	tƒ tt
tƒ  ƒgttƒgttgtdƒdttƒ t¡ td¡diƒtdtdik�s˜t‚ttttƒtt	tƒ tt
tƒ  ƒgttƒgttgtdƒdiƒtdik�sæt‚tt ttƒ t¡ttƒ td¡t  tdƒdttƒ t¡ td¡did�ƒtttƒdƒtttƒtd d
 td  ƒhk�sdt‚tt ttƒ t¡ttƒ td¡t  tdƒdid�ƒtttƒdƒtttƒtt td d
  ƒhk�sÌt‚tdƒ\}}}tttƒ|| t|t ƒ | | |t|t ƒ | |  d   ƒ}t tttƒ t¡|ttƒ dttƒ|   ƒttƒtdƒ|id�|k�slt‚tt ttƒ t¡ttƒ td¡t  ttƒ t¡ td¡dtdƒdid�ƒtttƒdƒtttƒtd d
 ƒhk�sât‚tt ttƒ t¡ttƒ td¡t  tdƒdttƒ t¡ td¡did�ƒtttƒdƒtttƒtd d
 ƒhk�sXt‚ttdd„ ƒ ttdd„ ƒ tdƒ\}}}tttƒttt  ttd   ttd   |td  d|   ƒg}ttƒg}	ttttg}
tdƒdttƒ t¡ td¡dt|ƒ |d¡dt|ƒ |d¡di}tdƒdttƒ t¡ td¡dtttƒ td¡t|ƒdtttƒ td¡t|ƒdi}t||	|
|ƒ}t||	|
|ƒ}||  k�rÒtdtdt|d | d|  t| | d
|  ik�sØn t‚tdƒtdƒi}t ttƒ t¡ttƒ ttƒ|d�tttƒtdƒttƒ ƒk�	s,t‚ttƒ t¡ td¡ttƒ t¡ td¡tdƒtdƒi}t ttƒ tt¡ttƒ ttƒ|d�tttƒtdƒt
tƒ ttƒ t¡ td¡t	tƒ  ƒk�	sÈt‚d S )Nr;   rj   r]   r   rI   F)r^   r9   ra   rw   Té   zK r f0c                   S   sH   t tttƒtttƒ tttƒ  ƒgttƒgttgtdƒdttƒdiƒS )Nr   r;   )	r$   r
   r/   rS   rW   r   ÚC2r   r	   r4   r4   r4   r5   rg     rh   z test_solve_ics.<locals>.<lambda>c                   S   sD   t tttƒtttd  ƒƒgttƒgtgttƒ t¡ td¡diƒS )Nrj   r   )r$   r
   r/   rS   r   rW   r   rˆ   r4   r4   r4   r5   rg     rh   zEI q Lé   é   )r   r/   rS   r   r
   r   rX   r   rˆ   r   r   r0   r   ÚHalfr   r$   rW   r©   r	   Úsetr   r)   r3   ÚC3ÚC4r   )rY   ÚKr¢   Zf0ÚsolZEIr¡   ÚLZsolsÚfuncsÚ	constantsZics1Zics2Zsolved_constants1Zsolved_constants2r^   r4   r4   r5   Útest_solve_icsâ  sà    .ÿBP& ÿÿ
< ÿ2ÿ
 ÿÿ.ÿÿ6

  ÿ*ÿ


  ÿ*ÿ
@2ÿ
ÿ
2 ÿ
ÿ
>ÿ
J*ÿ
4*ÿ
FLJ"ÿ
J"ÿ
D
   ý   ý    üD8$6ÿrµ   c                  C   s^  t dƒ} t dƒ}tdƒ}td| t| |ƒƒ | |ƒƒdks>t‚t|t| |ƒ|ƒ d| | |ƒ  t|ƒ|  | |ƒƒdks~t‚t|d | |ƒ ||¡ |t| |ƒ|ƒ  | |ƒ | |ƒƒdksÂt‚tt|t| |ƒƒ ||ƒ| |ƒƒdksìt‚tt|t|t| |ƒƒ ||ƒ |ƒ| |ƒƒdk�s"t‚tt| |ƒ||ƒ||ƒƒdk�sFt‚tt| |ƒ||ƒt||ƒ|ƒ | |ƒƒdk�sxt‚tt| |ƒ||ƒt||ƒ|ƒ ||ƒƒdk�sªt‚tt|t|t| |ƒƒ ||ƒ |ƒ||ƒƒdk�sàt‚tt|| |ƒ |ƒ| |ƒƒdk�st‚t|tt|| |ƒd  ||ƒƒ | |ƒƒdk�s:t‚tt|t|t| |ƒƒ ||ƒ |ƒ||ƒƒdk�spt‚tt| |ƒ||ƒ||ƒƒdk�s”t‚tt|t| |ƒƒ ||ƒ| |ƒƒdk�sÀt‚tt| |ƒ||ƒt||ƒ|ƒ ||ƒƒdk�sòt‚tt|t| |ƒ||ƒ |ƒ| |ƒƒdk�s t‚t|tt|t| |ƒ|ƒd  ||ƒƒ | |ƒƒdk�sZt‚d S )Nr/   r0   rS   rw   r   r;   rj   )r   r   r'   r   rX   r   r   r   )r/   r0   rS   r4   r4   r5   Útest_ode_order=  s2    &@D*6$226&46$,2.$ ÿÿr¶   c                  C   sh  t ttt ƒttt ƒ ttƒdks(t‚t td ttƒttƒ  ttƒd ksPt‚t tt tttt ƒ  ttƒdksxt‚t tt ttd td  ƒ td t	tƒt	tƒ   t
ttddƒ  ttƒd   ttƒtddƒksàt‚t tt ttt ƒ tt ttt ƒ  ttt ƒ ttƒdk�s&t‚t ttƒtttƒƒdk�sDt‚t ttƒd tttƒƒdk�sft‚t tt t ttƒdk�s„t‚t tt t tttƒdk�s¤t‚t td ttƒ ttd ttƒd  ƒ ttƒƒd k�sàt‚t tttƒd ttttƒtƒdk�st‚t tttƒd tttƒtƒd k�s.t‚t tttƒd ttttƒƒd k�sTt‚t tttƒd tttttƒƒd k�s|t‚t ttƒttƒtƒd k�sšt‚t ttƒ t dtttƒt ƒ  ttƒtƒdk�sÒt‚t t	dt ƒt	td ƒ ttƒd k�süt‚t t	dt ƒt	tƒ ttƒdk�s"t‚t t	tt ƒttƒdk�s@t‚t dt	dt ƒ dt	tƒ  ttƒdk�snt‚tdƒ} t | t	dt ƒ | t	tƒ  ttƒdk�s¤t‚t ttƒ t¡ttƒd k�sÄt‚t ttƒ t¡ t ttƒd k�sêt‚t ttƒttƒd k�st‚t tttd ƒ ttƒd k�s&t‚t tt
 tƒt
k�s>t‚t tt tƒd k�sVt‚ttd	d
„ ƒ d S )Nr   rj   r;   rª   rw   r=   r¨   rn   c                   S   s   t tt ƒS r2   )r   rS   ry   r4   r4   r4   r5   rg   u  rh   z(test_homogeneous_order.<locals>.<lambda>)r   r   ry   rS   r   rX   r   r   r   r   r	   r   r/   r�   r   r   r   r)   r3   )rn   r4   r4   r5   Útest_homogeneous_orderW  sH    (((4ÿ ÿÿF" <(&&(8*&.. &"r·   c                  C   s:   t dt ƒ} t| ƒt| ƒ }}| t¡r6| t¡r6t‚d S )Nr;   )r   rS   r   r   rm   r   rX   )ry   Úir¢   r4   r4   r5   Ú)test_noncircularized_real_imaginary_partsx  s    r¹   c                  C   s.   dt td ƒ } | t| t td ƒƒks*t‚d S )Nr;   rj   rw   )r   rS   r   rX   )r±   r4   r4   r5   Ú$test_collect_respecting_exponentials‚  s    rº   c                  C   s|  t ttƒtƒddikst‚t tdt tdƒ ƒtƒdtdt tdƒ ƒtdt tdƒ ƒhdœksft‚t ttƒttƒ tƒddiksˆt‚ttƒtttƒ td ttƒ td ttƒ tttƒ ttƒh} t ttƒtd t d  tƒd| dœksôt‚t ttƒtd  ttƒt  ttƒ tƒd| dœk�s.t‚t tdt ƒttƒ td t d  tƒdtdt ƒttƒ td tdt ƒ ttƒ ttƒtdt ƒ td ttƒ tdt ƒ tttƒ tdt ƒ ttdt ƒ ttƒ hdœk�sìt‚t dttƒ tƒddik�st‚t ttƒtƒddik�s(t‚t dt td t d  tƒddt tdt  td dt  hdœk�stt‚t tt	 tƒddik�s�t‚t ttƒtdt d ƒ tƒdtddt  ƒhdœk�sÌt‚t ttƒtd t d  tƒdtttƒ tttƒ td ttƒ td ttƒ ttƒttƒhdœk�s6t‚t ttƒtttƒ  tƒddik�s^t‚t ttƒttdt ƒ  tƒddik�sŠt‚t ttƒt
tƒ tƒddik�s®t‚t td ttƒ ttƒ tttƒ  t tƒdtd ttƒ ttƒ tttƒt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ƒttƒ td ttƒ ttƒ hdœk�s~t‚t d	t ttd ƒ tƒtttd ƒ tttd ƒ ttd ƒttd ƒhdd
œk�sØt‚t dt t tƒddt tdt  hdœk�s
t‚t dt tdt ƒ tƒddt tdt ƒ hdœk�sFt‚t tt ƒt tƒddik�sht‚t td	ƒtƒdtjhdœk�sŠt‚t dttƒ tƒdttƒhdœk�s²t‚t ttt ƒtƒdttt ƒhdœk�sÞt‚t ttƒtƒdttƒttƒhdœk�st‚t ttƒtƒdttƒttƒhdœk�s2t‚t ddttƒ  dttƒ  tƒdtjttƒttƒttƒhdœk�szt‚t td tƒdtjttd hdœk�s¤t‚t dt ttƒ tt ƒ tƒdtttƒ ttƒtt ƒhdœk�sìt‚t dtdt ƒ ttƒ tƒdtdt ƒttƒ ttƒtdt ƒ hdœk�s>t‚t tttƒ tƒdtjtttƒttƒhdœk�srt‚t td dt  tƒdtjttd hdœk�s¤t‚t d	t ttƒ tƒdtttƒ tttƒ ttƒttƒhdœk�sêt‚t ttdt ƒ tƒdttdt ƒ ttdt ƒ tdt ƒtdt ƒhdœk�s@t‚t td tt ƒ tƒdttt ƒ td tt ƒ tt ƒhdœk�sŒt‚t dtt ƒ td tt ƒ  tƒdttt ƒ td tt ƒ tt ƒhdœk�sæt‚t tdt ƒtd  tƒdtjttd tdt ƒhdœk�	s&t‚t ttt ƒ tƒdttt ƒ tt ƒhdœk�	s^t‚t ttdt ƒ tƒdtjttdt ƒhdœk�	s”t‚t ttƒtt ƒ tƒdttƒttƒtt ƒhdœk�	sÐt‚t ttƒtƒdttƒhdœk�	sôt‚t tjtdt ƒd  tƒdtjtdt ƒtdt ƒhdœk�
s8t‚t tdt ƒtjtdt ƒd   tƒdtdt ƒtdt ƒ tdt ƒtdt ƒ tdt ƒhdœk�
s¦t‚t dt ttƒ ttƒ tƒdtjtttƒttƒhdœk�
sæt‚t ttƒd tdt ƒd  tƒdttƒtdt ƒttƒtdt ƒhdœk�s8t‚t ttd ƒtƒddik�sXt‚t dtd  tƒddik�sxt‚d S )NÚtestFrj   r|   T)r»   Útrialsetr;   rw   rª   )r¼   r»   é   é   r¨   é	   rx   )r%   r0   rS   rX   r   r   r   r   r   ry   r   r   ZOner   r¬   )Úsr4   r4   r5   Ú$test_undetermined_coefficients_match‰  sT   &ÿÿÿ@ÿ" ÿÿ
" ÿ ,  þÿþ
 &ÿ
ÿ
$  ÿÿ
ÿ
ÿ
ÿ
& ÿ "   
 
  þÿþ
2þÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
 ÿ
ÿ
 ÿ
,ÿ
ÿ
ÿ
(ÿ
2ÿÿ
,ÿ
$,ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
 ÿ
  ÿ ,
ÿÿþ
ÿ
 (ÿ
 rÁ   c                  C   sª   ddl m}  t| ttttƒtƒ ttƒ   tttƒtƒ ttƒ d }t|ttƒƒdks^t‚td ttƒd  ttƒ t¡ dt ttƒ  }t|ttƒƒdks¦t‚d S )Nr   )ÚArj   )rd   rI   rG   rA   rb   rM   rK   rt   ru   rJ   rH   r?   rc   rv   )
rd   rI   r@   rE   rL   rM   rK   rJ   rN   r<   )Z	sympy.abcrÂ   rS   r   r/   r   rX   )rÂ   rY   r4   r4   r5   Útest_issue_4785_22462ø  s
    <2rÃ   c                   C   sˆ   t tdd„ ƒ ttttƒ t¡ttttƒ  ttƒdd�dd ddœksJt‚t tdd„ ƒ tttƒ t¡ttƒdd�dd ddœks„t‚d S )	Nc                   S   s(   t tttƒ t¡ttttƒ  ttƒƒS r2   )r   r/   rS   ry   r   r4   r4   r4   r5   rg     rh   z!test_issue_4825.<locals>.<lambda>Tr}   r   r4   )rR   rQ   r€   c                   S   s   t ttƒ t¡ttƒƒS r2   )r   r/   rS   r   ry   r4   r4   r4   r5   rg     rh   )r)   r3   r   r/   rS   ry   r   rX   r4   r4   r4   r5   Útest_issue_4825  s    *
ÿ
ÿrÄ   c                  C   s¦   ddl m}  ttt tt  ƒttt tt  ƒ  krLtt tt  ksRn t‚ttt  tt  }| tttgdƒD ]*\}}}t||t  |t  ƒ|ksvt‚qvd S )Nr   )Ú
variationsrw   )	Zsympy.utilities.iterablesrÅ   r!   rW   rS   r©   ry   rX   r®   )rÅ   Úern   ro   rp   r4   r4   r5   Ú'test_constant_renumber_order_issue_5308  s    ÿþrÇ   c                  C   sâ   t dƒ\} }}}|| | | ||  g}t|d ƒ|| ks@t‚t|d |gd�t| ks^t‚t|d |gtgd�t| ks€t‚t|||gd�t| t| t|  gks¬t‚t|||gt dƒd�t| t| t|  gksÞt‚d S )Nze1:3 x yr   )Ú	variables)rÈ   ZnewconstantszC3:5)r   r!   rX   rW   r©   r®   r¯   )Úe1Úe2rS   ry   Zexprsr4   r4   r5   Útest_constant_renumber#  s    ",rË   c                  C   sl  t ddd�} t dƒ}tdƒ}t||ƒ |d¡| d ||ƒ  ||ƒƒ}tdd„ |jD ƒƒdksbt‚ttt	t
ƒ tt	t
ƒ  tt
ƒ tthƒtt	t
ƒ tt
ƒ ks¤t‚ttt	t
ƒ tt	t
ƒ  ttt
ƒ  ttthƒtt	t
ƒ ttt
ƒ  ksðt‚tttt
 ƒthƒttt
ƒ k�st‚tt
t t tthƒtt
 k�s:t‚tt
t tt
t
d	d
fƒ thƒtt
 k�sht‚d S )Nrz   Tr-   r�   Úwr¨   c                 S   s   g | ]}|j  d ¡r|‘qS )ÚC)ÚnameÚ
startswith)Ú.0rÀ   r4   r4   r5   Ú
<listcomp>3  s      z#test_issue_5770.<locals>.<listcomp>r;   rj   )r   r   r   r   ÚlenZfree_symbolsrX   r"   rW   r   rS   r©   r   r®   r   ry   r   )rz   r�   rÌ   r±   r4   r4   r5   Útest_issue_5770.  s    *(ÿ.ÿ&$rÓ   c                   C   s@   t ttƒ ttƒ tƒd ks t‚t tttƒ ttƒd ks<t‚d S r2   )r   r   rS   r   rX   ry   r4   r4   r4   r5   Útest_issue_5112_5430=  s     rÔ   c                      s   t dƒ‰ tt‡ fdd„ƒ d S )Nr/   c                      s   t ˆ tƒ t¡d ˆ tƒdƒS )Nrj   Zfdsjf)r   rS   r   r4   ©r/   r4   r5   rg   D  rh   z!test_issue_5095.<locals>.<lambda>)r   r)   r3   r4   r4   rÕ   r5   Útest_issue_5095B  s    rÖ   c                  C   s¼  t dƒ} tt| tƒ ƒ}tdt d| tƒ  ƒ}tt| tƒ tddƒ ƒ}tdt d| tƒ  d| tƒ dt   ƒ}tdtd  d| tƒd   ƒ}tdt d| tƒ  d| tƒ dt   tdtd  d| tƒd   ƒ ƒ}tdt d| tƒ td   ƒ}t|t| tƒƒd k�st	‚t|t| tƒƒdk�s6t	‚t|t| tƒƒd k�sPt	‚t|t| tƒƒdk�sjt	‚t|t| tƒƒdk�s„t	‚t|t| tƒƒdk�sžt	‚t|t| tƒƒd k�s¸t	‚d S )Nr/   rw   rª   r|   é   rj   r   )
r   r   rS   r   r   r   r   r   r   rX   )r/   Úeq1Úeq2Úeq3Úeq4Úeq5r¥   r¦   r4   r4   r5   Útest_homogeneous_functionG  s    , L rÝ   c                  C   sä  t dt dttƒ  d  t dt dttƒ  d   } }| | }t|ƒt| ¡ ƒ }t|ƒ}|}t|ƒ}tt|ƒƒ}t|ƒ}dtddƒf}	| 	|ttƒ¡|	ks¤t
‚| 	|ttƒ¡|	ks¼t
‚| 	|ttƒ¡|	ksÔt
‚dt ttƒ }
t|
ƒ}dt d t }t|ƒ}dt dttƒ  d	 dt dttƒ  d  }t|ƒ}dt dttƒ  tdƒ dt dttƒ  d  }t|ƒ}| 	|
ttƒ¡d k�s’t
‚| 	|ttƒ¡d k�s¬t
‚| 	|ttƒ¡d k�sÆt
‚| 	|ttƒ¡d k�sàt
‚d S )
Nrj   rw   r|   r×   r¿   é   rª   ióÿÿÿr;   )r�   rS   r/   r   r   Úexpandr&   r   r   Z_linear_coeff_matchrX   r   )r•   ÚdÚratrØ   Zobj1rÙ   Úobj2rÚ   Zobj3rƒ   rÛ   Zobj4rÜ   Zobj5r¥   Zobj6r¦   Zobj7r4   r4   r5   Útest_linear_coeff_matchY  s0    :04rã   c                  C   s>   t tƒd } tttt tƒ|  | t  tgƒƒjƒdks:t‚d S )Nrj   )r   rW   rÒ   r   r"   rS   ZgensrX   )rp   r4   r4   r5   Útest_constantsimp_take_problemy  s    rä   c                  C   sº  t dƒ} ttƒ t¡ttƒ }tttƒ| | t  | td  d  | td  d  | td  d  | td  d  ttd ƒ ƒ}t|d	d
�|ks”t‚t||dd�d sªt‚ttƒ t¡tttƒ  }tttƒ| td  d | td  d  |  ttd ƒ ƒ}t|d	d
�|k�st‚t||dd�d �s,t‚ttƒ t¡t	tttƒ ƒ }tttƒtd d dt	dƒ  t
dƒ td t	dƒ  d ttd ƒ ƒ}t|d	tdƒdidd�|k�s¶t‚d S )NrW   rj   rw   r¨   rª   r«   r|   éx   rM   r8   r;   )rR   r   r¾   )r9   r^   r•   )r   r/   rS   r   r
   r   r   rX   r   r   r   )rW   rY   r±   r4   r4   r5   Útest_series~  s     Bÿ
ÿ:Jræ   c                  C   s4  t dƒ\} }ttƒ td¡tttƒ  }t|ƒdks8t‚tttƒ|td d d  | t td d d   ttd ƒ ƒ}t|dd	�|ksŽt‚t	||ƒd
ks t‚tttƒ|td d d td d d  td d  d  | ttd d d  td d d  t
dƒ   ttd ƒ ƒ}t|ddd�|k�s2t‚tttƒ|t |  ttd ƒ ƒ}t|ddd�|k�slt‚t	||ƒd
k�s€t‚dtd  ttƒ td¡ dt ttƒ t¡  dttƒ  }t|ƒdk�sÐt‚tttƒ|td  d td  d  | t  ttd ƒ ƒ}t|dd	�|k�s"t‚t	||ƒd
k�s6t‚ttƒ td¡tttƒ t¡  ttƒ }t|ƒdk�srt‚tttƒ|td d td d  d  | t td  d d   ttd ƒ ƒ}t|ƒ|k�sÔt‚ttƒ td¡ttƒ t¡ tttƒ  }t|ƒdk�st‚tttƒ|td  d td d  d  | t td d td d  td  d   ttd ƒ ƒ}t|ƒ|k�s†t‚ttƒ td¡tttƒ  }t|ƒdk�s´t‚tttƒ|td d td d  d  | t td  d d   ttd ƒ ƒ}t|ddd�|k�st‚t	||ƒd
k�s0t‚d S )NzC1 C2rj   )Z2nd_linear_airyrr   rw   r¨   r;   r½   rr   r8   ©Tr   rª   rx   )r9   Zx0)r9   r•   )rd   Z2nd_hypergeometricZ2nd_hypergeometric_Integralrr   )rd   rr   r¾   )rr   r«   é´   r×   )r   r/   rS   r   r   rX   r
   r   r   r   r   )rW   r©   rY   r±   r4   r4   r5   Útest_2nd_power_series_ordinary’  sJ    B:.ÿ
þ"><*P*(*ÿ
ÿPré   c                  C   s  t dƒ\} }}td ttƒ td¡ dt ttƒ t¡  dt d ttƒ  }tttƒ| td  dtd  d dtd   dt  d  ttd ƒ ƒ}t|d	d
�|ks®t‚t||ƒdksÀt‚dtd  ttƒ td¡ dtd  ttƒ t¡  dtd  d ttƒ  }tttƒ| t	tƒ td d td d  td d  t d  ttd ƒ ƒ}t|d	d
�|k�srt‚t||ƒdk�s†t‚td ttƒ td¡ td ttƒ t¡  td d ttƒ  }tttƒ| td  d dtd  d  td d  td d  td  d  t |td  td  d td d  td  d   ttd ƒ ƒ}t|ƒ|k�slt‚t||ƒdk�s€t‚td ttƒ td¡ tttƒ t¡  td t
ddƒ ttƒ  }tttƒ| td d td d  d  t	tƒ |t	tƒ td d td d  d   ttd ƒ ƒ}t|d	d
�|k�s@t‚t||ƒdk�sTt‚tttƒ td¡ ttƒ t¡ |t ttƒ  }tttƒ| |d td  d |td  d  d  ttd ƒ ƒ}t|ttƒd	d
�|k�sät‚t||ƒdk�søt‚ttƒ td¡dt t ttƒ t¡  |t ttƒ  }tttƒ| | td  |d  |d  |d  |d  d |td  |d  |d  |d  d  |td  |d  |d  d  |td  |d  d  |t  d  ttd ƒ ƒ}t|ttƒd	d
�|k�st‚t||ƒdk�st‚d S )NzC1 C2 arj   rw   rª   iðÿÿÿr¿   r;   r¨   Z2nd_power_series_regularr8   rç   r¾   r«   iÐ  r|   éP   é<   é   rå   é@   i@8  i@  é$   )r   rS   r/   r   r
   r   r   rX   r   r   r   )rW   r©   rn   rY   r±   r4   r4   r5   Útest_2nd_power_series_regularÅ  sh    BJ>ÿÿN,
 ÿP0ÿ
ÿD.&ÿ
ÿ2B::&ÿÿþþþ
þrï   c                  C   s4   t dƒ} t dƒ}tt dƒtdƒ| ƒ ƒ|ks0t‚d S )Nr�   r®   rW   r©   )r   r#   r   rX   )r�   r®   r4   r4   r5   Útest_issue_15056ì  s    rð   c                  C   sÚ   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d  t ƒ t tƒ  }t| |ƒdks†t‚t ttt t	 ƒ  }tt	ttƒ tƒttƒ 
td¡ } t| |ttƒƒdksÖt‚d S )Nrj   rç   )rW   rS   r/   r   r©   r   r   r   rX   ry   r   ©rY   r±   r4   r4   r5   Útest_issue_15913ò  s    0D"rò   c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s4   t ttƒ t¡ttƒ t¡gttƒttƒttƒgƒS r2   )r   r/   rS   r   r0   r1   r4   r4   r4   r5   rg   ü  rh   z"test_issue_16146.<locals>.<lambda>c                   S   s(   t ttƒ t¡ttƒ t¡gttƒgƒS r2   )r   r/   rS   r   r0   r4   r4   r4   r5   rg   ý  rh   )r)   r3   r4   r4   r4   r5   Útest_issue_16146û  s    ró   c                  C   sö   t tƒd t tƒ t¡ } tt tƒtƒ}t| ƒ|ks8t‚t tƒttƒ t tƒ td¡ } tt tƒttt  ƒtt tƒttƒƒh}t	t| ƒƒ|ks”t‚t tƒd dt tƒ  d t tƒ td¡ } tt tƒttt  t
td   ƒ}t| ƒ|ksòt‚d S )Nrj   r;   rw   )r/   rS   r   r
   rW   r   rX   r   r©   r­   r®   rñ   r4   r4   r5   Ú&test_dsolve_remove_redundant_solutions   s     (,"rô   c                  C   s~   t dtd�\} }tdƒ}tt| |ƒ|ƒ| |ƒ||ƒ ƒtt||ƒ|ƒ| |ƒ||ƒ ƒg}t|ƒ}t||ƒdddgfkszt‚d S )NzA Br‹   r�   Tr   )r   r   r   r
   r   r   r   rX   )rÂ   ÚBr�   rY   r±   r4   r4   r5   Útest_issue_13060  s
    @rö   c                  C   sÄ   t dƒ\} }tdƒ}d|  t| d ƒ ||ƒ d|d  | d  | d| | d   d  t||ƒ|dfƒ  }t|ddd	�}|d
 d dks�t‚t dƒ\}}t|d
d�}t|ƒttdƒƒksÀt‚d S )NzN sÚrhog      @r;   rª   rj   Tr7   r   rr   Ztermsr|   zC1,C2r8   aö  
        Eq(rho(s), C2*(1 - 4.0*s**4*sqrt(N - 1.0)/N + 0.666666666666667*s**4/N
        - 2.66666666666667*s**3*sqrt(N - 1.0)/N - 2.0*s**2*sqrt(N - 1.0)/N +
        9.33333333333333*s**4*sqrt(N - 1.0)/N**2 - 0.666666666666667*s**4/N**2
        + 2.66666666666667*s**3*sqrt(N - 1.0)/N**2 -
        5.33333333333333*s**4*sqrt(N - 1.0)/N**3) + C1*s*(1.0 -
        1.33333333333333*s**3*sqrt(N - 1.0)/N - 0.666666666666667*s**2*sqrt(N
        - 1.0)/N + 1.33333333333333*s**3*sqrt(N - 1.0)/N**2) + O(s**6)))	r   r   r   r   r   rX   r   r,   Ústr)ÚNrÀ   r÷   ZeqnÚmatchrW   r©   r±   r4   r4   r5   Útest_issue_22523  s    Dÿrû   c                  C   s$  t dtd�\} }t ddd�\}}}}}d\}}}}t|t| |ƒ|dƒ || |ƒ  |||ƒ| |ƒ   dƒ}t|t||ƒ|dƒ |||ƒ| |ƒ   dƒ}||g}	t|	| |ƒ||ƒg| dƒd| |ƒ ¡  |d¡d|dƒd	||ƒ ¡  |d¡did
�\}
}|
t| |ƒtdtdƒ ƒtdƒdtdƒ   ttdƒ| tdtdƒ ƒ d ƒ d dtdƒ tdƒ ttdƒd ƒ ttdƒ| ttdƒd ƒ d ƒ d  ƒk�s¤t‚|t||ƒtdƒd ttdƒ| tdtdƒ ƒ d ƒ d dtdƒ ttdƒ| ttdƒd ƒ d ƒ d  ƒk�s t‚d S )Nzx1, x2r‹   zt k1 k2 m1 m2Tr-   )r;   r;   r;   r;   rj   r   r;   r]   rw   r|   é
   rì   éûÿÿÿ)	r   r   r
   r   r   rˆ   r   r   rX   )r£   Zx2r�   r–   r—   r›   rœ   rØ   rÙ   ZeqsZx1solZx2solr4   r4   r5   Útest_issue_22604-  s     :..   ÿTJÿrþ   c                  C   s€   t ttƒ t¡dttƒd  dttƒ d  ƒt ttƒ t¡dttƒd  dttƒ d  ƒfD ]} dt| ttƒƒks`t‚q`d S )	Niìÿÿÿrj   iô  i   rx   r|   r×   rA   )r
   r/   rS   r   r   rX   )Úder4   r4   r5   Útest_issue_22462;  s    ..þr   c                  C   sP   t dƒ} tdƒ}tt|   || ƒ ¡  ¡  || ƒ ¡  dƒ}t|ƒdksLt‚d S )NrS   ry   r   )ri   Znth_order_reduciblerr   rs   )r   r   r
   r   r   r   rX   ©rS   ry   rY   r4   r4   r5   Útest_issue_23425B  s    ,ÿr  ztoo slow for @slowc                  C   sJ   t dƒ} tdƒ}|| ƒd || ƒ | d¡ d }t||| ƒƒd k	sFt‚d S )NrS   ry   rw   rj   é1   )r   r   r   r   rX   r  r4   r4   r5   Útest_issue_25820K  s     r  N)wZsympy.core.functionr   r   r   r   Zsympy.core.numbersr   r   r   r	   Zsympy.core.relationalr
   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z$sympy.functions.elementary.complexesr   r   Z&sympy.functions.elementary.exponentialr   r   Z%sympy.functions.elementary.hyperbolicr   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   r   r   Zsympy.integrals.integralsr   Zsympy.polys.polytoolsr   Zsympy.series.orderr   Zsympy.simplify.radsimpr   Zsympy.solvers.oder   r   r   Zsympy.solvers.ode.subscheckr   Zsympy.solvers.ode.oder    r!   r"   r#   r$   Z sympy.solvers.ode.nonhomogeneousr%   Zsympy.solvers.ode.singler&   Zsympy.solvers.deutilsr'   Zsympy.testing.pytestr(   r)   r*   r+   Zsympy.utilities.miscr,   ZC0rW   r©   r®   r¯   ZC5ZC6ZC7ZC8ZC9ZC10ÚurS   ry   r�   r/   r0   r1   r6   r\   r`   rq   r„   r‰   r§   rµ   r¶   r·   r¹   rº   rÁ   rÃ   rÄ   rÇ   rË   rÓ   rÔ   rÖ   rÝ   rã   rä   ræ   ré   rï   rð   rò   ró   rô   rö   rû   rþ   r   r  r  r4   r4   r4   r5   Ú<module>   s†   &
G  k/[!
	o
 
2'		