a
    kŗhf  ć                   @   s  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 d dl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) edZ*dd Z+dd	 Z,d
d Z-dd Z.dd Z/dd Z0dd Z1dd Z2dd Z3dd Z4dd Z5dd Z6dd Z7d d! Z8d"d# Z9d$d% Z:d&d' Z;d(d) Z<d*d+ Z=d,d- Z>d.d/ Z?d0d1 Z@d2d3 ZAd4d5 ZBd6d7 ZCd8d9 ZDd:d; ZEd<d= ZFd>d? ZGd@dA ZHe'dBdC ZIdDdE ZJdFdG ZKdHdI ZLe'dJdK ZMdLdM ZNdNdO ZOdPdQ ZPdRdS ZQdTdU ZRdVdW ZSdXS )Yé    )ŚlatexŚexpŚsymbolsŚIŚpiŚsinŚcosŚtanŚlogŚsqrtŚreŚimŚargŚfracŚSumŚSŚAbsŚlambdifyŚFunctionŚdsolveŚEqŚfloorŚTuple)Śimport_module)	ŚLineOver1DRangeSeriesŚParametric2DLineSeriesŚParametric3DLineSeriesŚSurfaceOver2DRangeSeriesŚContourSeriesŚParametricSurfaceSeriesŚImplicitSeriesŚ_set_discretization_pointsŚList2DSeries)ŚraisesŚwarnsŚXFAILŚskipŚignore_warningsŚnumpyc            	      C   sv  t std td\} }tt| | ddfdddd}| ” \}}tt| | ddfddd	d}| ” \}}tt| | ddfddd
}| ” \}}t|t|  k r®t|k s“n J tt| t| | ddt	 fddd}| ” \}}}tt| t| | ddt	 fdd	d}| ” \}}}tt| t| | ddt	 fdd
}| ” \}}}t|t|  k rlt|k srn J d S )Nśnumpy not installed.śx, yéö’’’é
   Ś Té   ©ŚadaptiveŚdepthé   ©r0   r   )
Śnpr&   r   r   r   Śget_dataŚlenr   r   r   )	ŚxŚyŚs1Śx1Ś_Śs2Śx2Śs3Śx3© r@   śN/var/www/auris/lib/python3.9/site-packages/sympy/plotting/tests/test_series.pyŚtest_adaptive   s6    ’’&’’’rB   c               
   C   sź  t std td\} }tt| | t tfdddd}| ” \}}tt| | t tfddddd}| ” \}}tt| | t tfdddd	d}| ” \}	}
tt| | t tfddd
d}| ” \}}t  ||”rčt  ||	”rčt  ||”sģJ t  t  	|””rJ t  t  	|
””rJ t  t  	|””s.J t  t  	|””sDJ t
|jt
|j  krhdksnn J t
|jdksJ t  t  |j”t jd ”s¢J ttddd tt| | ddfdddd}tt| | ddfddddd}tt| | ddfddd
d}| ” \}}| ” \}}| ” \}	}
t  ||”rJt  ||	”sNJ t  t  	|””rdJ t  t  	|””rt  t  	|””sJ t j||ddr¢J t
|jdks¶J W d    n1 sĢ0    Y  tt||  | t tf|didddd}| ” \}}tt||  | t tf|diddddd}| ” \}}tt||  | t tf|didddd	d}| ” \}	}
tt||  | t tf|diddd
d}| ” \}}t  ||”rŌt  ||	”rŌt  ||”sŲJ t  t  	|””rīJ t  t  	|
””rJ t  t  	|””sJ t  t  	|””s0J t
|jt
|j  krTdksZn J t
|jdksnJ t  t  |j”t jd ”sJ ttddd¢ tddd\}}tdd }|t|  | }t|t| }}t| |d”| |d”|ddfdddd}t| |d”| |d”|ddfdddd}W d    n1 sF0    Y  ttT | ” \}}}t  	|” ” r|J | ” \}}}t  	|” ” sJ W d    n1 s“0    Y  ttddd | | | t |  | }t|t| }}t| |d”| |d”|ddf| didddd}t| |d”| |d”|ddf| didddd}W d    n1 sn0    Y  ttT | ” \}}}t  	|” ” r¤J | ” \}}}t  	|” ” sĘJ W d    n1 sÜ0    Y  d S )Nr)   śx, uFéč  )r0   ŚnŚdetect_polesTē{®Gįz?)r0   rE   rF   Śepsgķµ ÷Ę°>Zsymbolicr   r.   z8NumPy is unable to evaluate with complex numbers some of©ŚmatchZtest_stacklevelr+   r,   g©?)Z	equal_nané   é   )Śparamsr0   rE   rF   )rM   r0   rE   rF   rH   zu, v)Śrealé   éž’’’)rM   r0   Śn1rF   )r4   r&   r   r   r	   r   r5   ŚallcloseŚanyŚisnanr6   Zpoles_locationsŚabsr$   ŚUserWarningr   r   r   r   r   r   Śsubsr'   ŚRuntimeWarning)r7   Śur9   Śxx1Śyy1r<   Śxx2Śyy2r>   Zxx3Zyy3Śs4Zxx4Zyy4ŚvrE   ŚfŚrŚiZpp1Zpp2r@   r@   rA   Śtest_detect_poles.   sā    ’’’’(* ż
’’’ (4’’’’.* ż’’&
4żžž&
rc   c                  C   s  t std td\} }}tttfD ]N}tddi|}tdg d¢i|}tddi|}tdd |||fD s$J q$tt	t
tfD ]p}tddi|}tdg d¢i|}tdd	d
|}|d |d   krŠdksÖn J tdd ||fD sJ qtt| | ddfddd ”  d S )Nr)   zx:zrE   r,   )r,   é   é   rQ   c                 s   s"   | ]}d |v o|d  dkV  qdS )rQ   r,   Nr@   ©Ś.0Śkwr@   r@   rA   Ś	<genexpr>«   ó    z4test_number_discretization_points.<locals>.<genexpr>rd   ©rQ   Śn2rl   c                 s   s&   | ]}|d  dko|d dkV  qdS )rQ   r,   rl   rd   Nr@   rf   r@   r@   rA   ri   ³   rj   éū’’’r2   Fg     Ć@©r0   rE   )r4   r&   r   r   r   r   r!   Śallr   r   r   r    r   r5   )r7   r8   ŚzŚptZkw1Zkw2Zkw3r@   r@   rA   Ś!test_number_discretization_points   s&    ’’"rr   c                     s   t std t  ddd” t   ”} t  ddd”t | }|jrFJ tt fdd t | }| ” \}}t  	 |”sJ t  	| |”sJ |jrJ d S )Nr)   éż’’’rO   r,   rd   c                      s
   t  S ©N©r"   r@   ©Śxxr]   r@   rA   Ś<lambda>Ę   rj   z#test_list2dseries.<locals>.<lambda>)
r4   r&   Ślinspacer   r"   Śis_parametricr#   Ś
ValueErrorr5   rR   )r[   ŚsŚxxsŚyysr@   rv   rA   Śtest_list2dseriesŗ   s    



r   c                  C   s`  t d\} }}}}tt| | ddf}|jr0J t|t|  | ddf|did}|jsZJ tt| t| | ddf}|jr~J t|t|  |t|  | ddf|did}|js²J tt| t| | | ddf}|jrŲJ t|t|  |t|  | | ddf|did}|jsJ tt| | | ddf|ddf}|jr<J t|t| |  | ddf|ddf|did}|jstJ tt| | | ddf|ddf}|jr J t|t| |  | ddf|ddf|did}|jsŲJ t	|t| |t| || |ddf|ddf}|jrJ t	|t||   |t| || |ddf|ddf| did}|js\J d S )Nśx, y, z, u, vrm   r2   rL   ©rM   )
r   r   r   Śis_interactiver   r   r   r   r   r   )r7   r8   rp   rY   r_   r|   r@   r@   rA   Ś"test_interactive_vs_noninteractiveŠ   sJ    
 

’

 ’  ’  ’’ ’r   c               
   C   s   t std td\} }}t| | ddfdddd}| ” \}}t  |d |d	  |d
 |d  ”sfJ t| | ddfdddd}| ” \}}t  |d |d	  |d
 |d  ”r²J tt| t| | t	d dt	 fdddd}| ” \}}}t  |d |d	  |d
 |d  ”sJ tt| t| | t	d dt	 fdddd}| ” \}}}t  |d |d	  |d
 |d  ”rvJ t
t| t| | | t	d dt	 fdddd}| ” \}}}}t  |d |d	  |d
 |d  ”sÜJ t
t| t| | | t	d dt	 fdddd}| ” \}}}}t  |d |d	  |d
 |d  ”rBJ tt| d |d  | ddf|ddfdddd}| ” \}}}t  |d |d  |d |d  ”sŖJ t  |d |d  |d |d  ”sŌJ tt| d |d  | ddf|ddfdddd}| ” \}}}t  |d |d  |d |d  ”r<J t  |d |d  |d |d  ”rfJ tt| d |d  d	k| ddf|ddfdddddd}| ” \}}}}t  |d |d  |d |d  ”sŲJ t  |d |d  |d |d  ”sJ tt| d |d  d	k| ddf|ddfddddd}| ” \}}}}t  |d |d  |d |d  ”rrJ t  |d |d  |d |d  ”rJ d S )Nr)   śx, y, zrL   r,   Fé2   Zlinear)r0   rE   Śxscaler   é’’’’rP   r
   r.   ē      ų?r2   )rE   r   Śyscale)r   rL   )r   r   )r   r   )r   rP   )rL   r   )r   r   )rP   r   )rQ   rl   r   r   r0   )rE   r   r   r0   )r4   r&   r   r   r5   Śiscloser   r   r   r   r   r   r    )r7   r8   rp   r|   rw   r;   ŚparamŚyyr@   r@   rA   Śtest_lin_log_scaleś   s    ’(’( ž* ž*"ž*"ž*$ž**$ž**&
ž**&ž*r   c                  C   sF  t std td\} }}}}tg d¢g d¢}t|jts@J td|ddf}t|jts`J tt	|t
||dtf}t|jtsJ tt
|t	|||dd	t f}t|jtsŗJ t|| |d
d	f|ddf}t|jtsęJ t|| |d
d	f|ddf}t|jtsJ td|||ddf|ddf}t|jtsBJ d S )Nr)   z	u, v, x:z©rL   r.   rO   )é   r2   é   rL   rm   r2   r   r.   rP   rs   rO   )r4   r&   r   r"   Ś
isinstanceZrendering_kwŚdictr   r   r   r   r   r   r   r   r   )rY   r_   r7   r8   rp   r|   r@   r@   rA   Śtest_rendering_kw@  s"     r   c                  C   s  t std td\} }}}td|ddf}| ” \}}t|t|ksLJ t  |dk”s^J td|ddfddd}| ” \}}t|t|  krdks¢n J t  |dk”s“J tt|d|d	t	f}| ” \}}}t|t|krųt|t|ksüJ t  |dk”sJ tdt||d	t	f}| ” \}}}t|t|krXt|t|ks\J t  |dk”spJ tt|d|d	t	fdd
}| ” \}}}t|t|kr¼t|t|ksĄJ t  |dk”sŌJ tdt||d	t	fdd
}| ” \}}}t|t|kr t|t|ks$J t  |dk”s8J t
t|t|d|d	dt	 f}| ” \}}}}t|t|krt|t|krt|t|ks¢J t  |dk”s¶J t
t|d||d	dt	 f}| ” \}}}}t|t|krt|t|krt|t|ksJ t  |dk”s0J t
dt|||d	dt	 f}| ” \}}}}t|t|krt|t|krt|t|ksJ t  |dk”sŖJ td|ddf|ddf}| ” \}}}|j|jkrģ|j|jksšJ t  |dk”sJ td|||d	df|d	df}| ” \}}}}	}
|j|j  krl|j  krl|	j  krl|
jksrn J t  |dk”sJ tdd||d	df|d	df}| ” \}}}}	}
|j|j  krī|j  krī|	j  krī|
jksōn J t  |dk”sJ t|dd|d	df|d	df}| ” \}}}}	}
|j|j  krp|j  krp|	j  krp|
jksvn J t  |dk”sJ d S )Nr)   śu, x:zrL   rm   r2   Fr,   rn   r   r3   r.   rP   rs   rO   )r4   r&   r   r   r5   r6   ro   r   r   r   r   r   r   Śshaper   )rY   r7   r8   rp   r|   rw   r   r   ŚzzŚuuŚvvr@   r@   rA   Śtest_data_shape]  sn    "$((( ::: @@@r   c               	   C   sŖ  t std td\} }}}tt| | ddfdddd}| ” \}}t|d	ksTJ |d
 dkrl|d dkspJ tt| t| | d
dt	 fdddd}| ” \}}}t|dks“J |d
 d
krĢ|d dksŠJ t
t| t| | | d
dt	 fdddd}| ” \}}}}t|dksJ |d
 d
kr6|d dks:J tt| d |d  | ddf|ddfdddd}| ” \}}}|j|j  krdksn J t  |d d d
f dt  d”  d
”sĘJ t  |d
d d f t  ddd” d
”sņJ t  |d d d
f t  ddd” d
”sJ t  |d
d d f dt  d”  d
”sJJ dtd| d|   }	|	t| t| |	t| t| |	t| f}
tg |
¢|d
dt	 f|d
t	fdR ddd}| ” \}}}}}|j|j  kr|j  kr|j  kr|j  krdks$n J td| ddfdddd}| ” \}}t|d	ksZJ |d
 dkrv|d dkszJ tt| d| d
dt	 fdddd}| ” \}}}t|dks¼J |d
 d
krŲ|d dksÜJ td| ddf|ddfdddd}| ” \}}}|j|j  kr&dks,n J t  |d d d
f dt  d”  d
”sXJ t  |d
d d f t  ddd” d
”sJ t  |d d d
f t  ddd” d
”s°J t  |d
d d f dt  d”  d
”sÜJ dtd| d|   }	|	t| t| d|	t| f}
tg |
¢|d
dt	 f|d
t	fdR ddd}| ” \}}}}}|j|j  kr |j  kr |j  kr |j  kr dks¦n J d S )Nr)   ś
x, y, u, vg      Ąē      @r-   FT©r0   Śonly_integersr,   r   rm   r   r   r.   é   r   g      @ē      Ąē      @)r   é   r2   r”   rs   rO   )r   r   rL   )r4   r&   r   r   r   r5   r6   r   r   r   r   r   r   rR   Śonesry   r   )r7   r8   rY   r_   r|   rw   r;   Śpr   ra   Śexprr   r   r   r@   r@   rA   Śtest_only_integersØ  s    ’’’ 
ž",,,,
ż&’L’ ’ ’",,,,
ż&’r„   c                  C   s  t std td\} }tt| | ddfdddd}|js@|jsDJ tt| | ddfdddd}|jrl|jrpJ tg d	¢g d
¢ddd}|js|jsJ tg d	¢g d
¢ddd}|jr¼|jrĄJ tt| t	| | ddfddd}|jsģ|jsšJ tt| t	| | ddfddd}|jr |jr$J t
t| t	| | | ddfddd}|jsV|jsZJ t
t| t	| | | ddfddd}|jr|jrJ d S )Nr)   rC   rm   r2   r-   FT)Śis_pointŚ	is_filled©r   rL   r.   ©rO   r   r2   )r4   r&   r   r   r   r¦   r§   r"   r   r   r   ©r7   rY   r|   r@   r@   rA   Śtest_is_point_is_filled÷  sF    ’’’’’’’’r«   c                  C   s   t d\} }t| d |d  }| ddf|ddff}t|g|¢R  }|jsNJ t|g|¢R ddi}|jsnJ t|g|¢R ddi}|jrJ d S )Nr*   r.   rP   r§   TF)r   r   r   r§   )r7   r8   r¤   Śrangesr|   r@   r@   rA   Śtest_is_filled_2d  s    

r­   c               	   C   s@  t std td\} }dd }tt| | ddfddd	dd
}tt| | ddfddd	dd
}||| tg d¢g d¢dd}tg d¢g d¢dd}||| tt| t| | ddfdd	dd
}tt| t| | ddfdd	dd
}||| tt| t| | | ddfdd	dd
}tt| t| | | ddfdd	dd
}||| d S )Nr)   rC   c                 S   s²   | j s&| jr&|  ” \}}| ” \}}nt| j rP| jrP|  ” \}}}| ” \}}}nJ| j sz| jrz|  ” \}}}| ” \}}}n |  ” \}}}}| ” \}}}}t|t|ks®J d S rt   )rz   Z	is_2Dliner5   Z	is_3Dliner6   )r9   r<   rZ   r;   r\   r@   r@   rA   Śdo_test1  s    ztest_steps.<locals>.do_testrm   r2   r-   Fé(   )r0   rE   ŚstepsTrØ   r©   )r°   )	r4   r&   r   r   r   r"   r   r   r   )r7   rY   r®   r9   r<   r@   r@   rA   Ś
test_steps+  s8    ’’

’’
’’r±   c               
   C   s  t std td\} }}}dd }t| t| |ddf| didd	}tt||ddfd
dd}|| ” | ”  t| t| | t| |ddf| didd	}tt|t||ddfd
dd}|| ” | ”  t| t| | t| | | |ddf| didd	}tt|t|||ddfd
dd}|| ” | ”  t	| t|d |d   |ddf|ddf| diddd}t	t|d |d  |ddf|ddfd
ddd}|| ” | ”  t
| t||  t|| || |ddf|ddf| diddd}t
t|| t|| || |ddf|ddfd
ddd}|| ” | ”  t|d d |d d  }t| | |ddfd
dd | did}t||ddfd
dd d}|| ” | ”  t|d d |d d  }t| | |ddfdd| did}t||ddfd
ddd}|| ” | ”  d S )Nr)   r   c                 S   s<   t | t |ksJ t| |D ]\}}t ||”sJ qd S rt   ©r6   Śzipr4   rR   ©Śdata1Śdata2Śd1Śd2r@   r@   rA   r®   _  s    z&test_interactive_data.<locals>.do_testrm   r2   rL   r   ©rM   rE   Frn   r.   rs   rO   ©rM   rQ   rl   ©r0   rQ   rl   )r0   rE   ŚmodulesrM   )r0   rE   r¼   Śmpmath)rE   r¼   rM   )r4   r&   r   r   r   r5   r   r   r   r   r   r   )rY   r7   r8   rp   r®   r9   r<   r¤   r@   r@   rA   Śtest_interactive_dataW  sp    "$’’"ž’&
ž"ž.
ž*ž’’’’r¾   c                     s4  t std td\ tg d¢g d¢} | jr6J ttfdd tt fdd ttgtgdid} | jsJ td	d
dgdd
d	gd
id} |  	” \}}t  
|g d¢”sČJ t  
|g d¢”sÜJ | jręJ tg d¢g d¢did} | jsJ t| jtsJ t| jts0J d S )Nr)   śx, y, ur   c                      s   t t gt gS rt   ©r"   r   r   r@   ©r7   r@   rA   rx      rj   z/test_list2dseries_interactive.<locals>.<lambda>c                      s"   t tgtdg didS )Nr.   rL   r   rĄ   r@   ©rY   r7   r8   r@   rA   rx   ¤  rj   rL   r   r.   rO   r   )rO   r.   rO   r   )r   rO   r.   rO   )r4   r&   r   r"   r   r#   r{   r   r   r5   rR   rz   r   Zlist_xr   Zlist_y)r|   rw   r   r@   rĀ   rA   Śtest_list2dseries_interactive  s(    
’
"
rĆ   c                  C   s   t std td\} }ttt|  | ddfdd dd}ttt|  | ddfdddd}| ” \}}| ” \}}t  |dk ”sJ t  |dk”sJ ttt|  | d	dfd
dd dd}ttt|  | d	dfd
dddd}| ” \}}| ” \}}t  ||”s
J t  ||”rJ d S )Nr)   zz, ugü©ńŅMbP?r2   T)r0   r¼   Śforce_real_evalr½   r   rm   Frd   )r0   rE   r¼   rÄ   )	r4   r&   r   r   r   r   r5   ro   rR   )rp   rY   r9   r<   rZ   r[   r\   r]   r@   r@   rA   Śtest_mpmath·  s.    ’’’’rÅ   c               	   C   s®  t d\} }}}tt||ddf}t|dks4J ddi}tt||ddffi |¤}t|dkshJ ddi}tt||ddffi |¤}t|d	ksJ dd
i}tt||ddffi |¤}t|dksŠJ ddi}tt||ddffi |¤}t|dksJ tt| | |ddf| did}t|dks8J tt| | ||  d| f| d|did}t|dkstJ tt|t||ddf}t|dks J tt| | t||ddf| did}t|dksŲJ tt| | t|||  d| f| d|did}t|dksJ tt|t|||ddf}t|dksHJ tt| | t|||ddf| did}t|dksJ tt| | t||||  d| f| d|did}t|dksĘJ tt|| |ddf|ddf}t|dksųJ tt| | | |ddf|ddf| did}t|dks6J tt| | | |d|  df|dd|  f| did}t|dks|J tt|| |ddf|ddf}t|dks®J tt| | | |ddf|ddf| did}t|dksģJ t	t|| t|| || |ddf|ddf}t|dks.J t	t| | | t|| || |ddf|ddf| did}t|d ks|J t
||k |d!d"f|d#d$f}t|d%ksŖJ d S )&Nr   éü’’’rO   z-cartesian line: cos(x) for x over (-4.0, 3.0)ŚreturnrN   z1cartesian line: re(cos(x)) for x over (-4.0, 3.0)Śimagz1cartesian line: im(cos(x)) for x over (-4.0, 3.0)rU   z2cartesian line: abs(cos(x)) for x over (-4.0, 3.0)r   z2cartesian line: arg(cos(x)) for x over (-4.0, 3.0)rL   r   zOinteractive cartesian line: cos(u*x) for x over (-4.0, 3.0) and parameters (u,)zOinteractive cartesian line: cos(u*x) for x over (-u, 3*y) and parameters (u, y)zBparametric cartesian line: (cos(x), sin(x)) for x over (-4.0, 3.0)zdinteractive parametric cartesian line: (cos(u*x), sin(x)) for x over (-4.0, 3.0) and parameters (u,)zdinteractive parametric cartesian line: (cos(u*x), sin(x)) for x over (-u, 3*y) and parameters (u, y)zH3D parametric cartesian line: (cos(x), sin(x), x) for x over (-4.0, 3.0)zjinteractive 3D parametric cartesian line: (cos(u*x), sin(x), x) for x over (-4.0, 3.0) and parameters (u,)zjinteractive 3D parametric cartesian line: (cos(u*x), sin(x), x) for x over (-u, 3*y) and parameters (u, y)rP   r2   zIcartesian surface: cos(x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0)zkinteractive cartesian surface: cos(u*x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0) and parameters (u,)zkinteractive cartesian surface: cos(u*x*y) for x over (-4*u, 3.0) and y over (-2.0, 5*u) and parameters (u,)z?contour: cos(x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0)zainteractive contour: cos(u*x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0) and parameters (u,)zeparametric cartesian surface: (cos(x*y), sin(x*y), x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0)zinteractive parametric cartesian surface: (cos(u*x*y), sin(x*y), x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0) and parameters (u,)rm   r   rs   r.   zHImplicit expression: x < y for x over (-5.0, 4.0) and y over (-3.0, 2.0))r   r   r   Śstrr   r   r   r   r   r   r    )rY   r7   r8   rp   r|   Śdr@   r@   rA   Śtest_strÓ  sf     *&0(2 ,4 ,’ ’rĖ   c                  C   sę  t std td\} }}}tg d¢g d¢dd}|js<J tg d¢g d¢dd}|jr\J tt|t||dd	fdd}|jsJ tt|t||dd	fdd}|jr¬J tt|t|||dd	fdd}|jsÖJ tt|t|||dd	fdd}|jrJ t	t|| |dd	f|d
dfdd}|js2J t	t|| |dd	f|d
dfdd}|jrbJ t
t|| t|| || |dd	f|d
dfdd}|js¢J t
t|| t|| || |dd	f|d
dfdd}|jrāJ d S )Nr)   r   ©rL   r.   rO   r   )r2   r   r   é   T©Śuse_cmFrĘ   rO   rP   r2   )r4   r&   r   r"   rĻ   r   r   r   r   r   r   )rY   r7   r8   rp   r|   r@   r@   rA   Śtest_use_cm  sF    



’
’’’’’rŠ   c               	   C   s^  t d\} }}}tt| d |d  | ddf|ddf}t|t| |t| ||ddf|ddt f}|j|jksxJ tt| d |d  | ddf|ddfdd}t|t| |t| ||ddf|ddt fdd}|j|jksčJ tt| d |d  | ddf|ddfdd}t|t| |t| ||ddf|ddt fdd}|j|jksZJ d S )	Nr   r.   rP   r   rL   FrĪ   T)r   r   r   r   r   r   rĻ   )r7   r8   rY   r_   r9   r<   r@   r@   rA   Śtest_surface_use_cmC  s(    (’$’’$’’rŃ   c                     sP  t std td\} }}dd }ttd| |  | ddf|ddfd	d
d   ” \}}ttd|  | d|f|ddfd	d
d}| ” \}}tt||  | d|f|ddf|did
d}	|	 ” \}
}| t”}|
 t”}
|||g|
|g ttd|  | d|f|ddfd
d tt	dd	d" t
t fdd W d    n1 sB0    Y  d S )Nr)   ræ   c                 S   s<   t | t |ksJ t| |D ]\}}t ||”sJ qd S rt   r²   r“   r@   r@   rA   r®   e  s    ztest_sums.<locals>.do_testrL   rD   r.   r,   FTr   )rM   r   r3   z&The evaluation with NumPy/SciPy failedrI   c                      s      ” S rt   )r5   r@   ©r|   r@   rA   rx     rj   ztest_sums.<locals>.<lambda>)r4   r&   r   r   r   r5   ZastypeŚfloatr$   rV   r#   Ś	TypeError)r7   r8   rY   r®   rw   r   r9   rZ   r[   r<   r\   r]   r@   rŅ   rA   Ś	test_sums^  s8     ’’’

’żrÕ   c                  C   sz  t std td\} }}}}tt| | dt dt fddd}tt| | dt dt fddt jd}tt| | dt dt fddt jd	}tt| | dt dt fddt jt jd
}| ” \}	}
| ” \}}| ” \}}| ” \}}t  |	d dt j ”rt  |	d dt j ”sJ |
 	” dk r6|
 
” dks:J t  |d d”r^t  |d d”sbJ | 	” dk r~| 
” dksJ t  |d dt j ”r²t  |d dt j ”s¶J | 	” dk rŅ| 
” dksÖJ t  |d d”rśt  |d d”sžJ | 	” dk r| 
” dksJ t  dt j dt j d”}t  |”}t||}t||t jt jd}| ” \}	}
| ” \}}t  |	d dt j ”rØt  |	d dt j ”s¬J |
 	” dk rČ|
 
” dksĢJ t  |d d”ršt  |d d”sōJ | 	” dk r| 
” dksJ tt| t| | t tfddd}tt| t| | t tfddt jt jt jd}| ” \}	}
}| ” \}}}t  |	t  |””sJ t  |
t  |””s°J t  |t  |””sČJ tt| t| | | t tfddd}tt| t| | | t tfddt jd}| ” \}	}
}}| ” \}}}}t  |	|”sFJ t  |
|”sXJ t  ||”sjJ t  |t  |””sJ tt| d |d  | dt dt f|dt dt fdddd}tt| d |d  | dt dt f|dt dt fdddt jdd dd d	}| ” \}	}
}| ” \}}}t  |	t  |””sFJ t  |
|d ”s\J t  ||d ”srJ t|| || || |ddt f|dtfdddd}t|| || || |ddt f|dtfdddt jdd dd d}| ” \}	}
}}}| ” \}}}}}t  |	t  |””s&J t  |
|d ”s<J t  ||d ”sRJ t  ||”sdJ t  ||”svJ d S )Nr)   z	x:z, u, vrP   r.   Fr,   rn   )r0   rE   Śtx)r0   rE   Śty)r0   rE   rÖ   r×   r   r   gĶĢĢĢĢĢģægĶĢĢĢĢĢģ?iž’’ih  iĢ’’’é4   )rÖ   r×   )r0   rE   rÖ   r×   Śtp)r0   rE   rŁ   r»   c                 S   s   d|  S ©Nr.   r@   rĮ   r@   r@   rA   rx   Ē  rj   z'test_apply_transforms.<locals>.<lambda>c                 S   s   d|  S ©NrO   r@   rĮ   r@   r@   rA   rx   Ē  rj   )r0   rQ   rl   rÖ   r×   ŚtzrO   c                 S   s   d|  S rŚ   r@   rĮ   r@   r@   rA   rx   Ō  rj   c                 S   s   d|  S rŪ   r@   rĮ   r@   r@   rA   rx   Ō  rj   )r4   r&   r   r   r   r   Zrad2degr5   r   ŚminŚmaxry   r"   r   r   rR   Zdeg2radr   r   r   )r7   r8   rp   rY   r_   r9   r<   r>   r^   r:   Śy1r=   Śy2r?   Śy3Zx4Zy4rw   r   Za1Za2Śz1Śz2Śu1Zv1Śu2Zv2r@   r@   rA   Śtest_apply_transforms  s²    "’’’4 ( 4 ( 

4 ( ’ž’ ’2ž2ż&ž&żrę   c                  C   s|  t std td\} }}}}d}t| }t|| ddfd }t|| ddfd}| d”t|ksdJ | d”|t| ks~J | d”dksJ | d”dks¢J tg d	¢g d	¢d}| d”dksČJ | d”dksŚJ t| t	| f}t
g |¢| ddfd R d
di}t
g |¢| ddfdR d
di}t
g |¢| ddfd R d
di}	t
g |¢| ddfdR d
di}
| d”dksJ | d”|d ksJ | d”dks²J | d”dksĘJ |	 d”t|ksŽJ |	 d”|t| ksśJ |
 d”dksJ |
 d”dks"J t| t	| | f}tg |¢| ddfd R d
di}tg |¢| ddfdR d
di}tg |¢| ddfd R d
di}	tg |¢| ddfdR d
di}
| d”dksŠJ | d”|d ksčJ | d”dksüJ | d”dksJ |	 d”t|ks(J |	 d”|t| ksDJ |
 d”dksXJ |
 d”dkslJ t| d |d  }t|| ddf|ddfd }t|| ddf|ddfd}| d”t|ksĢJ | d”|t| ksčJ | d”dksüJ | d”dksJ t| | t	| | | | f}tg |¢| ddf|ddfd R  }tg |¢| ddf|ddfdR  }| d”t|ksJ | d”|t| ks®J | d”dksĀJ | d”dksÖJ tt| | d}t|| ddf|ddfd }t|| ddf|ddfd}| d”t|ks4J | d”|t| ksPJ | d”dksdJ | d”dksxJ d S )Nr)   r   z$%s$rP   r.   ŚtestFT)r   rL   r.   rO   rĻ   r7   r   r+   r,   )r4   r&   r   r   r   Z	get_labelrÉ   r   r"   r   r   r   r   r   r   r    )r7   r8   rp   rY   r_   Śwrapperr¤   r9   r<   r>   r^   r@   r@   rA   Śtest_series_labelsŽ  sz    """"""""&&ré   c               	   C   s“  t std td\} }td|  }t|t|  |t|  | ddt fddddd}| ” \}}}t|t|  |t|  | ddt fddd	dd}| ” \}}	}
t  ||”søt  ||	”r¼J t  ||
”sĢJ t|t|  |t|  | ddt fdddd
d d}| ” \}}}t|t|  |t|  | ddt fddd	dd d}| ” \}}}t  ||”rlt  ||”rpJ t  ||”rt  ||”sJ t  ||”r¬t  ||	”s°J d S )Nr)   zt ur   r   r.   Fr,   )r0   rE   Śis_polarrĻ   Tc                 S   s   d|  S rŚ   r@   ©Śtr@   r@   rA   rx   @  rj   z-test_is_polar_2d_parametric.<locals>.<lambda>)r0   rE   rź   Ś
color_funcc                 S   s   d|  S rŚ   r@   rė   r@   r@   rA   rx   C  rj   )	r4   r&   r   r   r   r   r   r5   rR   )rģ   rY   r`   r9   r:   rß   Śp1r<   Śthra   Śp2r>   r?   rį   Zp3r^   Zth4Zr4Zp4r@   r@   rA   Śtest_is_polar_2d_parametric)  s2    "’"’"’"’  rń   c                  C   sŠ   t std td\} }}| d d d }t|| ddf|ddt fdddd	}t|| ddf|ddt fddd
d	}| ” \}}}| ” \}	}
}|t  |” |t  |”  }}t  |	|”s¼J t  |
|”sĢJ d S )Nr)   zx, y, tr.   rL   r   r   r,   F)rE   r0   rź   T)	r4   r&   r   r   r   r5   r   r   rR   )r7   r8   rģ   r¤   r9   r<   r:   rß   rā   r=   rą   rć   Zx22Zy22r@   r@   rA   Śtest_is_polar_3dJ  s    ’’rņ   c                  C   s  t std td\} }}}}t  ddd”}t  |”}t||dd dd	}| ” \}}	}
t  ||”shJ t  ||	”sxJ t  d
| |
”sJ |jsJ t||dd dd	}t	| ” d
ks¾J |jrČJ t
t| t| | dd
t fdddd d}| ” \}}}
t  ||
”st  ||
”r J t
t| t| | dd
t fdddd d}| ” \}}}
t  |
|| ”snJ t
t| t| | dd
t fdddd d}| ” \}}}
t  |
|| t  dd
t j d” ”sŠJ tt| t| | | dd
t fdddd d}| ” \}}}}
t  ||
”s(t  ||
”r,J tt| t| | | dd
t fdddd d}| ” \}}}}
t  |
|| | ”sJ tt| t| | | dd
t fdddd d}| ” \}}}}
t  |
|| | t  dd
t j d” ”sģJ tt| d
 |d
  | dd
f|dd
fddddd d}| ” \}}}| |||”}
t  ||
”sPJ tt| d
 |d
  | dd
f|dd
fddddd d}| ” \}}}| |||”}
t  || |
”søJ tt| d
 |d
  | dd
f|dd
fddddd d}| ” \}}}| |||”}
t  || | |
”s$J td| || ddf|ddfddddd d	}| ” \}}}}}| |||||”}
t  ||
”sJ td| || ddf|ddfddddd d	}| ” \}}}}}| |||||”}
t  || |
”sčJ td| || ddf|ddfddddd d	}| ” \}}}}}| |||||”}
t  || | |
”sPJ td| || ddf|ddfddddd d	}| ” \}}}}}| |||||”}
t  || | | | |
”sĄJ tddd
| g| d
ddgd d | didd!}| ” \}}}
t  |g d"¢”sJ t  |g d#¢”s$J t  d
| |
”s:J |jrJ|jsNJ tddd
| g| d
ddgd$d | didd!}t	| ” d
ksJ |jrJ d S )%Nr)   r   rs   rO   r,   c                 S   s   d|  S rŚ   r@   ©r7   r8   r@   r@   rA   rx   h  rj   z!test_color_func.<locals>.<lambda>T)rķ   rĻ   r.   c                 S   s   d|  S rŚ   r@   ró   r@   r@   rA   rx   o  rj   Fr   c                 S   s   | S rt   r@   rė   r@   r@   rA   rx   t  rj   ©r0   rE   rķ   c                 S   s   | | S rt   r@   ró   r@   r@   rA   rx   x  rj   c                 S   s   | | | S rt   r@   )r7   r8   rģ   r@   r@   rA   rx   |  rj   c                 S   s   | S rt   r@   rė   r@   r@   rA   rx     rj   c                 S   s   | | | S rt   r@   ©r7   r8   rp   r@   r@   rA   rx     rj   c                 S   s   | | | | S rt   r@   )r7   r8   rp   rģ   r@   r@   rA   rx     rj   rP   c                 S   s   | S rt   r@   rĮ   r@   r@   rA   rx     rj   ©r0   rQ   rl   rķ   c                 S   s   | | S rt   r@   ró   r@   r@   rA   rx     rj   c                 S   s   | | | S rt   r@   rõ   r@   r@   rA   rx     rj   rL   c                 S   s   | S rt   r@   ©rY   r@   r@   rA   rx     rj   c                 S   s   | | S rt   r@   ©rY   r_   r@   r@   rA   rx   £  rj   c                 S   s   | | | S rt   r@   rõ   r@   r@   rA   rx   Ø  rj   c                 S   s   | | | | | S rt   r@   )r7   r8   rp   rY   r_   r@   r@   rA   rx   ­  rj   r   c                 S   s   d|  S rŚ   r@   ró   r@   r@   rA   rx   “  rj   )rķ   rM   rĻ   )r   rL   r.   rL   rĢ   c                 S   s   d|  S rŚ   r@   ró   r@   r@   rA   rx   ¼  rj   )r4   r&   r   ry   r   r"   r5   rR   rz   r6   r   r   r   r   r   Śeval_color_funcr   rĻ   )r7   r8   rp   rY   r_   rw   r[   r|   r}   r~   Ścolr   r   r   r   r@   r@   rA   Śtest_color_func]  sĘ    



’ 
’
’*
’ 
’
’.$’$’$’
’
’
’
’"’’rū   c            	      C   s  t std td\} }tt| t| | ddt fdddd d	}| ” \}}}t  |t  	|j
””shJ tt| t| | | ddt fddd
d d	}| ” \}}}}t  |t  	|j
””s¼J tt| d |d  | ddf|ddfddddd d}| ” \}}}t  | |”t  	|j
””s J td| || ddf|ddfddddd d	}| ” \}}}}}| |||||”}t  |t  	|j
””sJ d S )Nr)   r*   r   r.   Fr,   c                 S   s   dS ©NrL   r@   rė   r@   r@   rA   rx   Ź  rj   z,test_color_func_scalar_val.<locals>.<lambda>rō   c                 S   s   dS rü   r@   rė   r@   r@   rA   rx   Ļ  rj   rP   c                 S   s   dS rü   r@   rĮ   r@   r@   rA   rx   Ō  rj   rö   rL   c                 S   s   dS rü   r@   r÷   r@   r@   rA   rx   Ł  rj   )r4   r&   r   r   r   r   r   r5   rR   r¢   r   r   r   rł   r   )	r7   r8   r|   rw   r   rś   r   r   r   r@   r@   rA   Śtest_color_func_scalar_valĮ  s0    
’
’$’ 
’rż   c               	      s.  t std td\ } tt t  ddt ft dddd}tt t  ddt fd	d
 dddd}| ” }t|j	sJ | ” }t  
|d |d ”r¦J tt d | d   t tf| t tft d | d  dddd}| ”  t|j	sJ g d¢g d¢tt fdd
 d S )Nr)   r*   r   r.   Fr,   T)rķ   r0   rE   rĻ   c                 S   s
   t  | ”S rt   ©r4   r   rĮ   r@   r@   rA   rx   ź  rj   z,test_color_func_expression.<locals>.<lambda>r   r2   )rķ   r0   rQ   rl   )rL   r.   rO   r   r2   c                      s   t dt dS )NT)rĻ   rķ   )r"   r   r@   ©r7   rw   r   r@   rA   rx   ś  rj   )r4   r&   r   r   r   r   r   r5   Ścallablerķ   rR   r   r#   rŌ   )r8   r9   r<   r·   rø   r|   r@   r’   rA   Śtest_color_func_expressionß  s.    ’’(’’r  c                  C   sŲ   t d\} }}tt| | ddfdddd d}|jd u rBt|jsFJ tt| t| | d	d
t fdddd d}|jd u rt|jsJ t	t| d
 |d
  | dd
f|dd
fdddd d}|j
d u rŠt|jsŌJ d S )Nr   rm   r2   Fr,   c                 S   s   | S rt   r@   rĮ   r@   r@   rA   rx     rj   z)test_line_surface_color.<locals>.<lambda>)r0   rE   Ś
line_colorr   r.   c                 S   s   | S rt   r@   rė   r@   r@   rA   rx   	  rj   rP   c                 S   s   | S rt   r@   rĮ   r@   r@   rA   rx     rj   )rQ   rl   Śsurface_color)r   r   r   r  r   rķ   r   r   r   r   r  )r7   r8   rp   r|   r@   r@   rA   Śtest_line_surface_colorż  s    ’
’$
’r  c            
   	   C   sź  t std td\} }}dd }t| t| d   }t||  t| d   }tt|| ddfdd	d
}tt|| ddfdd	|did}| ” }| ” }	|||	 t  |d d”sĘt  |	d d”rŹJ t	t
|t|| t tfdd	d
}t	t
|t|| t tfdd	|did}| ” }| ” }	|||	 t  |d d”sRt  |	d d”rVJ tt|| ddf|dd	fdddd}tt|| ddf|dd	fddd|did}| ” }| ” }	|||	 t  |d d”sāt  |	d d”ręJ d S )Nr)   zx y uc                 S   s<   t | t |ksJ t| |D ]\}}t ||”sJ qd S rt   r²   r“   r@   r@   rA   r®     s    z,test_complex_adaptive_false.<locals>.do_testr.   rm   r2   Fr,   rn   rL   ©r0   rE   rM   r   r+   re   rO   r»   )r0   rQ   rl   rM   )r4   r&   r   r   r   r   r   r5   rR   r   r   r   r   )
r7   r8   rY   r®   Śexpr1Śexpr2r9   r<   rµ   r¶   r@   r@   rA   Śtest_complex_adaptive_false  sD    
’
$’
’
(’’
r  c               
   C   s(  t std dd } t| dddd}| ”  t| ddd	d
}| ”  |j|j  kr\dksbn J dd }dd }t||dddt fddd}| ”  t||dddt fdd	d
}| ”  |j|j  krŅdksŲn J dd }t|||dddt fddd}| ”  t|||dddt fdd	d
}| ”  |j|j  krHdksNn J dd } t| dddd	d	d}| ”  t	| dddd	d	d}| ”  |j|j  krŖdks°n J dd }dd }dd }t
|||ddtfdddt fdd	d	d}| ”  |jdksJ ttdd  ttdd  d S )Nr)   c                 S   s
   t  | ”S rt   rž   rĮ   r@   r@   rA   rx   C  rj   z.test_expr_is_lambda_function.<locals>.<lambda>©r7   rm   r2   TrO   r/   Fr,   rn   r-   c                 S   s
   t  | ”S rt   rž   rĮ   r@   r@   rA   rx   J  rj   c                 S   s
   t  | ”S rt   ©r4   r   rĮ   r@   r@   rA   rx   K  rj   r7   r   r.   ē¹?©r0   Zadaptive_goalc                 S   s   | S rt   r@   rĮ   r@   r@   rA   rx   T  rj   c                 S   s   t  | d |d  ”S rŚ   rž   ró   r@   r@   rA   rx   ]  rj   )ŚarP   r.   )Śbrs   rO   r»   c                 S   s   t  | | ”S rt   rž   rų   r@   r@   rA   rx   f  rj   c                 S   s   t  | | ”S rt   r
  rų   r@   r@   rA   rx   g  rj   c                 S   s   | | S rt   r@   rų   r@   r@   rA   rx   h  rj   rY   r_   c                   S   s   t dd dd S )Nc                 S   s   | S rt   r@   rė   r@   r@   rA   rx   n  rj   ś@test_expr_is_lambda_function.<locals>.<lambda>.<locals>.<lambda>ru   r@   r@   r@   rA   rx   n  rj   c                   S   s   t dd ddS )Nc                 S   s
   t  | ”S rt   r
  rė   r@   r@   rA   rx   o  rj   r  r	  )r8   iś’’’r   )r    r@   r@   r@   rA   rx   o  s   ’)r4   r&   r   r5   Ślabelr   r   r   r   r   r   r#   rŌ   )r`   r9   r<   ZfxZfyZfzr@   r@   rA   Śtest_expr_is_lambda_function<  sb    ’’’’"’’"’r  c                  C   s  t d\} }tt| | ddfddd}|js0J tt| | ddfddd}|jrTJ tt| t| | dd	fddd}|js~J tt| t| | dd	fddd}|jrØJ tt| t| | | dd	fddd}|jsŌJ tt| t| | | dd	fddd}|jrJ d S )
NrC   rP   r.   rē   T)Śshow_in_legendFr   rL   )r   r   r   r  r   r   r   rŖ   r@   r@   rA   Śtest_show_in_legend_liness  s*    

’
’
’
’r  c            	      C   sø   t std dd } td}tdd }d}|d |d  tdd  |d |d  tdd   }t|| | }t|g|}t||d	d
fdddd}t|ddddd}| || d S )Nr)   c                 S   sf   t tdddD |  ” }| ” }t||D ]\}}t ||”s*J q*W d    n1 sX0    Y  d S )Nz)invalid value encountered in scalar powerFrI   )r$   rX   r5   r³   r4   rR   ©r  r  r·   rø   rģ   r_   r@   r@   rA   r®     s    żz:test_particular_case_1_with_adaptive_true.<locals>.do_testrE   r.   rO   rG   rL   r+   r,   r-   Tr/   ©rE   r+   r,   ©r4   r&   r   r   r   r   r   )	r®   rE   r  ŚepsilonŚxnr¤   Ś	math_funcr9   r<   r@   r@   rA   Ś)test_particular_case_1_with_adaptive_true  s     8’’r  c            	      C   sø   t std dd } td}tdd }d}|d |d  tdd  |d |d  tdd   }t|| | }t|g|}t||d	d
fddd
d}t|dddd
d}| || d S )Nr)   c                 S   s8   |   ” }|  ” }t||D ]\}}t ||”sJ qd S rt   )r5   r³   r4   rR   r  r@   r@   rA   r®   “  s    z;test_particular_case_1_with_adaptive_false.<locals>.do_testrE   r.   rO   rG   rL   r+   r,   r-   Frn   r  r  )	r®   rE   r  r  r  r¤   r  r>   r^   r@   r@   rA   Ś*test_particular_case_1_with_adaptive_false¬  s     8’’r  c               	   C   s  t std td\} }}}}td|}| |d”d|  | | |”  |d |  }t||| |d”|| |” |d”|id}|d| d|d	|d
i}t|j|ddfdd|d}	|	 	” \}}
t  
|” ” rŠJ t  
|
” ” rāJ td\}}}}tdd dt ttd| t | | | |d|f  }|d|di}t||ddfdd|d}	|	 	” \}}
t  
|” ” rrJ t  
|
” ” rJ d S )Nr)   zxi, omega_n, x0, v0, tr7   r.   r   )Zicsē      ą?g      Š?gĶĢĢĢĢĢÜ?g        éd   Fr2   r  z
x, T, n, mrL   r   r,   )r4   r&   r   r   Śdiffr   rW   r   Śrhsr5   rT   rS   r   r   r   r   )ŚxiZwnZx0Zv0rģ   r7   ŚeqZsolrM   r|   r8   ŚTrE   ŚmŚfsr@   r@   rA   Śtest_complex_params_number_evalČ  s8    .,ü’<ž’r%  c            
      C   sR  t std td\} }tt| t| d   }tt||  t| d   }t|| ddfddd}t|| ddfd	d
d}t|| ddfd	d
|did}tt | 	” }W d    n1 s¾0    Y  | 	” }| 	” }	t  
|d ” ” rīJ t  
|d ” ” rJ t  
|	d ” ” rJ t  |d |	d ”rJt  |d |	d ”sNJ d S )Nr)   rC   r.   r+   r,   Tr  r  Fre   rn   rL   r  r   )r4   r&   r   r   r   r   r   r'   rX   r5   rT   rS   rR   )
r7   rY   r  r  r9   r<   r>   rµ   r¶   Zdata3r@   r@   rA   Śtest_complex_range_line_plot_1õ  s(    ’’
&r&  c            
      C   s  t std td\} }ttt| | ddfdd}ttt| | ddfddd	}ttd
dd  | ” }| ” }|d d |d d g}|d d |d d g}|d d |d d g}|d d |d d g}	t  	||”sāJ t  	||	”sņJ W d    n1 s0    Y  d S )Nr)   rC   y      Ą       Ąy      @       ĄTr3   Fr,   rn   z!invalid value encountered in sqrtrI   r   r   rL   )
r4   r&   r   r   rU   r   r$   rX   r5   rR   )
r7   rY   r9   r<   r·   rø   rZ   r\   r[   r]   r@   r@   rA   Śtest_complex_range_line_plot_2  s(    ’żr'  c                  C   sĀ   t std td} tt| t| d   }t|| ddfdddd}t|| ddfdddd}| ” }tt	 | ” }W d    n1 s0    Y  t  
|d	 d
”rŖJ t  
|d	 d
”s¾J d S )Nr)   r7   r.   r+   r,   F)r0   rE   rÄ   TrL   r   )r4   r&   r   r   r   r   r   r5   r'   rX   rR   )r7   r¤   r9   r<   r·   rø   r@   r@   rA   Śtest_force_real_eval2  s    ’’
&r(  c                  C   s   t d\} }tt| | | ddf|ddf}|js6J tt| | | ddf|ddfdd}|jsdJ tt| | | ddf|ddfdd}|jrJ d S )Nr*   rP   r.   T)ZclabelsF)r   r   r   Zshow_clabels)r7   r8   r|   r@   r@   rA   Ś test_contour_series_show_clabelsF  s     
$
$r)  c                      sF   t d tt  ddf tt  ddf tt fdd d S )Nr7   r+   r,   ł      $Ą       Ąy      $@       Ąc                      s   t t  ddfS )Nr*  y      $@       @)r   r   r@   rĮ   r@   rA   rx   ^  rj   z:test_LineOver1DRangeSeries_complex_range.<locals>.<lambda>)r   r   r   r#   r{   r@   r@   rĮ   rA   Ś(test_LineOver1DRangeSeries_complex_rangeU  s    
’r+  c               
      sī  t std td\}  dd }ttddfddd	}tt f ddiddd
}||| ddi tt fdd tttddfddd	}ttt f ddiddd
}||| ddi tt fdd t	ttddfddd	}t	tt f ddiddd
}||| ddi tt fdd t
td d  t tft tfdddd}t
td d  t   t  ft  t f ddidddd}||| ddi tt fdd tt fdd tt t  ddfddfddd}tt t  d  dfdd f ddiddd}||| ddi tt fdd d S )Nr)   zx, y, z, a, bc                 S   sj   |   ” }|  ” }t||D ]\}}t ||”sJ q||_|  ” }t||D ]\}}t ||”rLJ qLd S rt   )r5   r³   r4   rR   rM   )r9   r<   Ś
new_paramsr·   rø   rY   r_   r@   r@   rA   r®   h  s    z.test_symbolic_plotting_ranges.<locals>.do_testr   rL   Fr,   rn   ©rM   r0   rE   r  r   c                      s   t t f diddS )NrL   r,   r¹   )r   r   r@   ©r  r  r7   r@   rA   rx   y  rj   z/test_symbolic_plotting_ranges.<locals>.<lambda>c                      s&   t tt f didddS ©Nr   Fr,   r-  )r   r   r   r@   r.  r@   rA   rx     s   
’c                	      s(   t tt f didddS r/  )r   r   r   r@   r.  r@   rA   rx     s   
’r.   r2   r»   ©rM   r0   rQ   rl   c                	      sJ   t td d  t   t  ft  t f diddddS ©Nr.   rL   Fr2   r0  ©r   r   r   r@   ©r  r  r7   r8   r@   rA   rx     s   *žc                	      sN   t td d  t    t  ft  t f diddddS r1  r2  r@   r3  r@   rA   rx     s   .žrP   rk   rŗ   c                
      sD   t t t  d  dfdd f didddS )NrP   r.   rL   r2   rŗ   )r   r   r   r@   r3  r@   rA   rx   «  s   2
ž)r4   r&   r   r   r   r#   r{   r   r   r   r   r   r   )rp   r®   r9   r<   r@   r3  rA   Śtest_symbolic_plotting_rangesa  sn    
’’  ’’’’’(’&ž’’.’2ž’r4  c                  C   s²  t std td} t| tj d| tj d   }ttdddx t|| dd	fdd
t	t
ddd}| ” \}}t  |” ” rJ t  t  |””dksJ t|d
ks¬J W d    n1 sĄ0    Y  tt| t|  }tt| t|  }ttddd t||| ddfdd
t	t
ddd}| ” \}}}t  |” ” rHJ t  t  |””dksbJ t  t  |””dks|J t|d
ksJ W d    n1 s¤0    Y  d S )Nr)   r7   rL   r.   z5NumPy is unable to evaluate with complex numbers someFrI   r   r    r  rs   r   )r0   rE   Śexcluder   é   é   r”   )r4   r&   r   r   r   ZHalfr$   rV   r   ŚlistŚranger5   rT   rS   Zcount_nonzeror6   r
   r   r   r   )r7   r¤   r|   rw   r   Śe1Śe2Śppr@   r@   rA   Śtest_exclude_points°  s>     ż’.ż’r=  c                  C   s,  t std td\} }d| d d| d   |   }t| | t| d t ”}t||ddfdd	d
d	d}t||ddfdd	d
dd}t||ddfdd	d
ddid}| ” \}}| ” \}}	| ” \}
}t  	||”sÖJ t
dd ||	|fD sņJ t  	||	”rJ t  	||”rJ t  	|	|”r(J d S )Nr)   r*   rL   rO   r.   gńhćµųä>g     jų@r
   Fr,   )r   r0   rE   ŚunwrapTZperiodr   c                 s   s   | ]}t  |” ”  V  qd S rt   )r4   rT   rS   )rg   rģ   r@   r@   rA   ri   č  rj   ztest_unwrap.<locals>.<genexpr>)r4   r&   r   r   rW   r   r   r   r5   rR   ro   )r7   r8   r¤   r9   r<   r>   r:   rß   r=   rą   r?   rį   r@   r@   rA   Śtest_unwrapÕ  s,    ’’
’r?  N)TZsympyr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.externalr   Zsympy.plotting.seriesr   r   r   r   r   r   r    r!   r"   Zsympy.testing.pytestr#   r$   r%   r&   r'   r4   rB   rc   rr   r   r   r   r   r   r„   r«   r­   r±   r¾   rĆ   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  r=  r?  r@   r@   r@   rA   Ś<module>   s^   d,p*FKO%,?!I'%[K!d+7
 -
!O%