o
    ohe                     @   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 rXt|k s[J  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 rt|k sJ  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@   t/var/www/html/construction_image-detection-poc/venv/lib/python3.10/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 ||rtt ||	rtt ||svJ t t 	|rJ t t 	|
rJ t t 	|sJ t t 	|sJ t
|jt
|j  krdksJ  J t
|jdksJ t t |jt jd sJ 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 ||rt ||	sJ t t 	|r*J t t 	|r<t t 	|s>J t j||ddrIJ t
|jdksSJ W d    n	1 s^w   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 ||rt ||	rt ||sJ t t 	|rJ t t 	|
rJ t t 	|sJ t t 	|sJ t
|jt
|j  kr#dks&J  J t
|jdks0J t t |jt jd s@J ttdddQ 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 sw   Y  tt* | \}}}t 	| rJ | \}}}t 	| sJ W d    n	1 sw   Y  ttdddM | | | 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 s0w   Y  tt+ | \}}}t 	| rKJ | \}}}t 	| s\J W d    d S 1 shw   Y  d S )Nr)   x, uF  )r0   ndetect_polesT{Gz?)r0   rE   rF   epsgư>symbolicr   r.   z8NumPy is unable to evaluate with complex numbers some ofmatchtest_stacklevelr+   r,   g?)	equal_nan      )paramsr0   rE   rF   )rP   r0   rE   rF   rH   zu, v)real   )rP   r0   n1rF   )r4   r&   r   r   r	   r   r5   allcloseanyisnanr6   poles_locationsabsr$   UserWarningr   r   r   r   r   r   subsr'   RuntimeWarning)r7   ur9   xx1yy1r<   xx2yy2r>   xx3yy3s4xx4yy4vrE   fripp1pp2r@   r@   rA   test_detect_poles.   s   (( (., 

$rm   c                  C   s  t std td\} }}tttfD ]'}tddi|}tdg di|}tddi|}tdd |||fD s9J qtt	t
tfD ]9}tddi|}tdg di|}tdd	d
|}|d |d   kridkslJ  J tdd ||fD syJ q@tt| | ddfddd  d S )Nr)   zx:zrE   r,   )r,         rT   c                 s   s$    | ]}d |v o|d  dkV  qdS )rT   r,   Nr@   .0kwr@   r@   rA   	<genexpr>   s   " z4test_number_discretization_points.<locals>.<genexpr>rn   rT   n2ru   c                 s   s(    | ]}|d  dko|d dkV  qdS )rT   r,   ru   rn   Nr@   rp   r@   r@   rA   rs      s   & r2   Fg     @r0   rE   )r4   r&   r   r   r   r   r!   allr   r   r   r    r   r5   )r7   r8   zptkw1kw2kw3r@   r@   rA   !test_number_discretization_points   s&   $"r~   c                     s   t std t ddd t  } t dddt | }|jr#J tt fdd t | }| \}}t 	 |s@J t 	| |sHJ |jrMJ d S )Nr)   rR   r,   rn   c                      s
   t  S Nr"   r@   xxra   r@   rA   <lambda>      
 z#test_list2dseries.<locals>.<lambda>)
r4   r&   linspacer   r"   is_parametricr#   
ValueErrorr5   rU   )r_   sxxsyysr@   r   rA   test_list2dseries   s   



r   c                  C   sV  t d\} }}}}tt| | ddf}|jrJ 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sYJ tt| t| | | ddf}|jrlJ t|t|  |t|  | | ddf|did}|jsJ tt| | | ddf|ddf}|jrJ t|t| |  | ddf|ddf|did}|jsJ tt| | | ddf|ddf}|jrJ t|t| |  | ddf|ddf|did}|jsJ 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, vrv   r2   rO   rP   )
r   r   r   is_interactiver   r   r   r   r   r   )r7   r8   ry   r]   rg   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  s3J t| | ddfdddd}| \}}t |d |d	  |d
 |d  rYJ tt| t| | t	d dt	 fdddd}| \}}}t |d |d	  |d
 |d  sJ tt| t| | t	d dt	 fdddd}| \}}}t |d |d	  |d
 |d  rJ t
t| t| | | t	d dt	 fdddd}| \}}}}t |d |d	  |d
 |d  sJ t
t| t| | | t	d dt	 fdddd}| \}}}}t |d |d	  |d
 |d  rJ tt| d |d  | ddf|ddfdddd}| \}}}t |d |d  |d |d  sRJ t |d |d  |d |d  sgJ tt| d |d  | ddf|ddfdddd}| \}}}t |d |d  |d |d  rJ t |d |d  |d |d  rJ tt| d |d  d	k| ddf|ddfdddddd}| \}}}}t |d |d  |d |d  sJ t |d |d  |d |d  sJ tt| d |d  d	k| ddf|ddfddddd}| \}}}}t |d |d  |d |d  r6J t |d |d  |d |d  rKJ d S )Nr)   x, y, zrO   r,   F2   linear)r0   rE   xscaler   rS   r
   r.         ?r2   )rE   r   yscale)r   rO   )r   r   )r   r   )r   rS   )rO   r   )r   r   )rS   r   )rT   ru   r   r   r0   )rE   r   r   r0   )r4   r&   r   r   r5   iscloser   r   r   r   r   r   r    )r7   r8   ry   r   r   r;   paramyyr@   r@   rA   test_lin_log_scale   s   (( ( ("("*$**$**&
**&*.r   c                  C   sB  t std td\} }}}}tg dg d}t|jts J td|ddf}t|jts0J tt	|t
||dtf}t|jtsEJ tt
|t	|||dd	t f}t|jts]J t|| |d
d	f|ddf}t|jtssJ t|| |d
d	f|ddf}t|jtsJ td|||ddf|ddf}t|jtsJ d S )Nr)   z	u, v, x:zrO   r.   rR   )   r2      rO   rv   r2   r   r.   rS   r   rR   )r4   r&   r   r"   
isinstancerendering_kwdictr   r   r   r   r   r   r   r   r   )r]   rg   r7   r8   ry   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s&J t |dks/J td|ddfddd}| \}}t|t|  krOdksRJ  J t |dks[J tt|d|d	t	f}| \}}}t|t|kr}t|t|ksJ t |dksJ tdt||d	t	f}| \}}}t|t|krt|t|ksJ t |dksJ tt|d|d	t	fdd
}| \}}}t|t|krt|t|ksJ t |dksJ tdt||d	t	fdd
}| \}}}t|t|kr
t|t|ksJ t |dksJ t
t|t|d|d	dt	 f}| \}}}}t|t|krIt|t|krIt|t|ksKJ t |dksUJ t
t|d||d	dt	 f}| \}}}}t|t|krt|t|krt|t|ksJ t |dksJ t
dt|||d	dt	 f}| \}}}}t|t|krt|t|krt|t|ksJ t |dksJ td|ddf|ddf}| \}}}|j|jkr|j|jksJ t |dksJ td|||d	df|d	df}| \}}}}	}
|j|j  kr1|j  kr1|	j  kr1|
jks4J  J t |dks>J tdd||d	df|d	df}| \}}}}	}
|j|j  krs|j  krs|	j  krs|
jksvJ  J t |dksJ t|dd|d	df|d	df}| \}}}}	}
|j|j  kr|j  kr|	j  kr|
jksJ  J t |dksJ d S )Nr)   u, x:zrO   rv   r2   Fr,   rw   r   r3   r.   rS   r   rR   )r4   r&   r   r   r5   r6   rx   r   r   r   r   r   r   shaper   )r]   r7   r8   ry   r   r   r   r   zzuuvvr@   r@   rA   test_data_shape]  sn   $$$$( ::: BBBr   c               	   C   s  t std td\} }}}tt| | ddfdddd}| \}}t|d	ks*J |d
 dkr6|d dks8J tt| t| | d
dt	 fdddd}| \}}}t|dksZJ |d
 d
krf|d dkshJ t
t| t| | | d
dt	 fdddd}| \}}}}t|dksJ |d
 d
kr|d dksJ tt| d |d  | ddf|ddfdddd}| \}}}|j|j  krdksJ  J t |d d d
f dt d  d
sJ t |d
d d f t ddd d
sJ 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| |	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rdksJ  J td| ddfdddd}| \}}t|d	ksJ |d
 dkr|d dksJ tt| d| d
dt	 fdddd}| \}}}t|dksJ |d
 d
kr|d dksJ td| ddf|ddfdddd}| \}}}|j|j  krdksJ  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
sTJ t |d
d d f dt d  d
sjJ 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rdksJ  J d S )Nr)   
x, y, u, vg            @r-   FTr0   only_integersr,   r   rv   r   r   r.      r   g      @            @)r      r2   r   r   rR   )r   r   rO   )r4   r&   r   r   r   r5   r6   r   r   r   r   r   r   rU   onesr   r   )r7   r8   r]   rg   r   r   r;   pr   ri   exprr   r   r   r@   r@   rA   test_only_integers  s   
 **,,
&N  $,,,,
&Rr   c                  C   s  t std td\} }tt| | ddfdddd}|js |js"J tt| | ddfdddd}|jr6|jr8J tg d	g d
ddd}|jsJ|jsLJ tg d	g d
ddd}|jr^|jr`J tt| t	| | ddfddd}|jsv|jsxJ tt| t	| | ddfddd}|jr|jrJ t
t| t	| | | ddfddd}|js|jsJ t
t| t	| | | ddfddd}|jr|jrJ d S )Nr)   rC   rv   r2   r-   FT)is_point	is_filledr   rO   r.   rR   r   r2   )r4   r&   r   r   r   r   r   r"   r   r   r   r7   r]   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s'J t|g|R ddi}|js7J t|g|R ddi}|jrGJ d S )Nr*   r.   rS   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|  \}}| \}}n:| j r(| jr(|  \}}}| \}}}n%| j s=| jr=|  \}}}| \}}}n|  \}}}}| \}}}}t|t|ksWJ d S r   )r   	is_2Dliner5   	is_3Dliner6   )r9   r<   r^   r;   r`   r@   r@   rA   do_test1  s   ztest_steps.<locals>.do_testrv   r2   r-   F(   )r0   rE   stepsTr   r   )r   )	r4   r&   r   r   r   r"   r   r   r   )r7   r]   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   <   t | t |ks
J t| |D ]\}}t||sJ qd S r   r6   zipr4   rU   data1data2d1d2r@   r@   rA   r   _     z&test_interactive_data.<locals>.do_testrv   r2   rO   r   rP   rE   Frw   r.   r   rR   rP   rT   ru   r0   rT   ru   )r0   rE   modulesrP   )r0   rE   r   mpmath)rE   r   rP   )r4   r&   r   r   r   r5   r   r   r   r   r   r   )r]   r7   r8   ry   r   r9   r<   r   r@   r@   rA   test_interactive_dataW  sp   "$"&
".
*r   c                     s.  t std td\ tg dg d} | jrJ ttfdd tt fdd ttgtgdid} | jsCJ td	d
dgdd
d	gd
id} | 	 \}}t 
|g dsdJ t 
|g dsnJ | jrsJ tg dg ddid} | jsJ t| jtsJ t| jtsJ d S )Nr)   x, y, ur   c                      s   t t gt gS r   r"   r   r   r@   r7   r@   rA   r         z/test_list2dseries_interactive.<locals>.<lambda>c                      s"   t tgtdg didS )Nr.   rO   r   r   r@   r]   r7   r8   r@   rA   r     s   " rO   r   r.   rR   r   )rR   r.   rR   r   )r   rR   r.   rR   )r4   r&   r   r"   r   r#   r   r   r   r5   rU   r   r   list_xr   list_y)r   r   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 sCJ t |dksLJ ttt|  | d	dfd
dd dd}ttt|  | d	dfd
dddd}| \}}| \}}t ||sJ t ||rJ d S )Nr)   zz, ugMbP?r2   T)r0   r   force_real_evalr   r   rv   Frn   )r0   rE   r   r   )	r4   r&   r   r   r   r   r5   rx   rU   )ry   r]   r9   r<   r^   r_   r`   ra   r@   r@   rA   test_mpmath  s.   r   c               	   C   s  t d\} }}}tt||ddf}t|dksJ ddi}tt||ddffi |}t|dks4J ddi}tt||ddffi |}t|d	ksNJ 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sJ tt| | |ddf| did}t|dksJ tt| | ||  d| f| d|did}t|dksJ tt|t||ddf}t|dksJ tt| | t||ddf| did}t|dksJ tt| | t|||  d| f| d|did}t|dksJ 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|| |ddf|ddf}t|dkswJ tt| | | |ddf|ddf| did}t|dksJ tt| | | |d|  df|dd|  f| did}t|dksJ tt|| |ddf|ddf}t|dksJ tt| | | |ddf|ddf| did}t|dksJ 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s9J t
||k |d!d"f|d#d$f}t|d%ksPJ d S )&Nr   rR   z-cartesian line: cos(x) for x over (-4.0, 3.0)returnrQ   z1cartesian line: re(cos(x)) for x over (-4.0, 3.0)imagz1cartesian line: im(cos(x)) for x over (-4.0, 3.0)rY   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)rO   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)rS   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)zinteractive 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,)rv   r   r   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    )r]   r7   r8   ry   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sBJ tt|t||dd	fdd}|jrVJ tt|t|||dd	fdd}|jskJ tt|t|||dd	fdd}|jrJ t	t|| |dd	f|d
dfdd}|jsJ t	t|| |dd	f|d
dfdd}|jrJ t
t|| t|| || |dd	f|d
dfdd}|jsJ t
t|| t|| || |dd	f|d
dfdd}|jrJ d S )Nr)   r   rO   r.   rR   r   )r2   r   r      Tuse_cmFr   rR   rS   r2   )r4   r&   r   r"   r   r   r   r   r   r   r   )r]   r7   r8   ry   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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stJ 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sJ d S )	Nr   r.   rS   r   rO   Fr   T)r   r   r   r   r   r   r   )r7   r8   r]   rg   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    d S 1 sw   Y  d S )Nr)   r   c                 S   r   r   r   r   r@   r@   rA   r   e  r   ztest_sums.<locals>.do_testrO   rD   r.   r,   FTr   )rP   r   r3   z&The evaluation with NumPy/SciPy failedrJ   c                      s      S r   )r5   r@   r   r@   rA   r         ztest_sums.<locals>.<lambda>)r4   r&   r   r   r   r5   astypefloatr$   rZ   r#   	TypeError)r7   r8   r]   r   r   r   r9   r^   r_   r<   r`   ra   r@   r   rA   	test_sums^  s:    

"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 rt |	d dt j sJ |
	 dk r|

 dksJ t |d drt |d dsJ |	 dk r|
 dksJ t |d dt j rt |d dt j sJ |	 dk r|
 dksJ t |d drt |d dsJ |	 dk r|
 dksJ t dt j dt j d}t |}t||}t||t jt jd}| \}	}
| \}}t |	d dt j rDt |	d dt j sFJ |
	 dk rT|

 dksVJ t |d drht |d dsjJ |	 dk rx|
 dkszJ 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 |sJ t |
t |sJ t |t |sJ tt| t| | | t tfddd}tt| t| | | t tfddt jd}| \}	}
}}| \}}}}t |	|sJ t |
|sJ t ||s%J t |t |s1J 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 |sJ t |
|d sJ t ||d sJ 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 sJ t ||s"J t ||s+J d S )Nr)   z	x:z, u, vrS   r.   Fr,   rw   )r0   rE   tx)r0   rE   ty)r0   rE   r   r   r   r   gg?iih  i4   )r   r   )r0   rE   r   r   tp)r0   rE   r   r   c                 S      d|  S Nr.   r@   r   r@   r@   rA   r     r   z'test_apply_transforms.<locals>.<lambda>c                 S   r   NrR   r@   r   r@   r@   rA   r     r   )r0   rT   ru   r   r   tzrR   c                 S   r   r   r@   r   r@   r@   rA   r     r   c                 S   r   r   r@   r   r@   r@   rA   r     r   )r4   r&   r   r   r   r   rad2degr5   r   minmaxr   r"   r   r   rU   deg2radr   r   r   )r7   r8   ry   r]   rg   r9   r<   r>   rd   r:   y1r=   y2r?   y3x4y4r   r   a1a2z1z2u1v1u2v2r@   r@   rA   test_apply_transforms  s   "0$0$

4 (  22&&r  c                  C   sp  t std td\} }}}}d}t| }t|| ddfd }t|| ddfd}|dt|ks2J |d|t| ks?J |ddksHJ |ddksQJ tg d	g d	d}|ddksdJ |ddksmJ 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sJ |d|d ksJ |ddksJ |ddksJ |	dt|ksJ |	d|t| ksJ |
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sbJ |d|d ksnJ |ddksxJ |ddksJ |	dt|ksJ |	d|t| ksJ |
ddksJ |
ddksJ t| d |d  }t|| ddf|ddfd }t|| ddf|ddfd}|dt|ksJ |d|t| ksJ |ddksJ |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sCJ |d|t| ksQJ |ddks[J |ddkseJ tt| | d}t|| ddf|ddfd }t|| ddf|ddfd}|dt|ksJ |d|t| ksJ |ddksJ |ddksJ d S )Nr)   r   z$%s$rS   r.   testFT)r   rO   r.   rR   r   r7   r   r+   r,   )r4   r&   r   r   r   	get_labelr   r   r"   r   r   r   r   r   r   r    )r7   r8   ry   r]   rg   wrapperr   r9   r<   r>   rd   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 ||
sfJ 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 ||rt ||rJ t ||rt ||sJ t ||rt ||	sJ d S )Nr)   zt ur   r   r.   Fr,   )r0   rE   is_polarr   Tc                 S   r   r   r@   tr@   r@   rA   r   @  r   z-test_is_polar_2d_parametric.<locals>.<lambda>)r0   rE   r  
color_funcc                 S   r   r   r@   r  r@   r@   rA   r   C  r   )	r4   r&   r   r   r   r   r   r5   rU   )r  r]   rh   r9   r:   r   p1r<   thri   p2r>   r?   r   p3rd   th4r4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 |
|sfJ d S )Nr)   zx, y, tr.   rO   r   r   r,   F)rE   r0   r  T)	r4   r&   r   r   r   r5   r   r   rU   )r7   r8   r  r   r9   r<   r:   r   r  r=   r   r  x22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 ||s4J t ||	s<J t d
| |
sFJ |jsKJ t||dd dd	}t	| d
ks_J |jrdJ t
t| t| | dd
t fdddd d}| \}}}
t ||
st ||
rJ t
t| t| | dd
t fdddd d}| \}}}
t |
|| sJ t
t| t| | dd
t fdddd d}| \}}}
t |
|| t dd
t j d sJ 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 srJ tt| d
 |d
  | dd
f|dd
fddddd d}| \}}}||||}
t ||
sJ tt| d
 |d
  | dd
f|dd
fddddd d}| \}}}||||}
t || |
sJ 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 || |
spJ td| || ddf|ddfddddd d	}| \}}}}}||||||}
t || | |
sJ td| || ddf|ddfddddd d	}| \}}}}}||||||}
t || | | | |
sJ 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r!|js#J tddd
| g| d
ddgd$d | didd!}t	| d
ksCJ |jrIJ d S )%Nr)   r   r   rR   r,   c                 S   r   r   r@   r7   r8   r@   r@   rA   r   h  r   z!test_color_func.<locals>.<lambda>T)r  r   r.   c                 S   r   r   r@   r  r@   r@   rA   r   o  r   Fr   c                 S      | S r   r@   r  r@   r@   rA   r   t      r0   rE   r  c                 S      | | S r   r@   r  r@   r@   rA   r   x  r   c                 S      | | | S r   r@   )r7   r8   r  r@   r@   rA   r   |      c                 S   r  r   r@   r  r@   r@   rA   r     r  c                 S   r   r   r@   r7   r8   ry   r@   r@   rA   r     r!  c                 S   s   | | | | S r   r@   )r7   r8   ry   r  r@   r@   rA   r     s    rS   c                 S   r  r   r@   r   r@   r@   rA   r     r  r0   rT   ru   r  c                 S   r  r   r@   r  r@   r@   rA   r     r   c                 S   r   r   r@   r"  r@   r@   rA   r     r!  rO   c                 S   r  r   r@   r]   r@   r@   rA   r     r  c                 S   r  r   r@   r]   rg   r@   r@   rA   r     r   c                 S   r   r   r@   r"  r@   r@   rA   r     r!  c                 S   s   | | | | | S r   r@   )r7   r8   ry   r]   rg   r@   r@   rA   r         r   c                 S   r   r   r@   r  r@   r@   rA   r     r   )r  rP   r   )r   rO   r.   rO   r   c                 S   r   r   r@   r  r@   r@   rA   r     r   )r4   r&   r   r   r   r"   r5   rU   r   r6   r   r   r   r   r   eval_color_funcr   r   )r7   r8   ry   r]   rg   r   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
s4J 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
sJ td| || ddf|ddfddddd d	}| \}}}}}||||||}t |t 	|j
sJ d S )Nr)   r*   r   r.   Fr,   c                 S      dS NrO   r@   r  r@   r@   rA   r     r  z,test_color_func_scalar_val.<locals>.<lambda>r  c                 S   r*  r+  r@   r  r@   r@   rA   r     r  rS   c                 S   r*  r+  r@   r   r@   r@   rA   r     r  r#  rO   c                 S   r*  r+  r@   r$  r@   r@   rA   r     r  )r4   r&   r   r   r   r   r   r5   rU   r   r   r   r   r'  r   )	r7   r8   r   r   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	sCJ | }t 
|d |d rSJ tt d | d   t tf| t tft d | d  dddd}|  t|j	sJ g dg dtt fdd
 d S )Nr)   r*   r   r.   Fr,   T)r  r0   rE   r   c                 S   
   t | S r   r4   r   r   r@   r@   rA   r     r   z,test_color_func_expression.<locals>.<lambda>r   r2   )r  r0   rT   ru   )rO   r.   rR   r   r2   c                      s   t dt dS )NT)r   r  )r"   r   r@   r7   r   r   r@   rA   r     r&  )r4   r&   r   r   r   r   r   r5   callabler  rU   r   r#   r   )r8   r9   r<   r   r   r   r@   r/  rA   test_color_func_expression  s.   (r1  c                  C   s   t d\} }}tt| | ddfdddd d}|jd u r!t|js#J tt| t| | d	d
t fdddd d}|jd u rBt|jsDJ t	t| d
 |d
  | dd
f|dd
fdddd d}|j
d u rht|jsjJ d S )Nr   rv   r2   Fr,   c                 S   r  r   r@   r   r@   r@   rA   r     r  z)test_line_surface_color.<locals>.<lambda>)r0   rE   
line_colorr   r.   c                 S   r  r   r@   r  r@   r@   rA   r   	  r  rS   c                 S   r  r   r@   r   r@   r@   rA   r     r  )rT   ru   surface_color)r   r   r   r2  r0  r  r   r   r   r   r3  )r7   r8   ry   r   r@   r@   rA   test_line_surface_color  s   
$
r4  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sct |	d dreJ t	t
|t|| t tfdd	d
}t	t
|t|| t tfdd	|did}| }| }	|||	 t |d dst |	d drJ 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st |	d drJ d S )Nr)   zx y uc                 S   r   r   r   r   r@   r@   rA   r     r   z,test_complex_adaptive_false.<locals>.do_testr.   rv   r2   Fr,   rw   rO   r0   rE   rP   r   r+   ro   rR   r   )r0   rT   ru   rP   )r4   r&   r   r   r   r   r   r5   rU   r   r   r   r   )
r7   r8   r]   r   expr1expr2r9   r<   r   r   r@   r@   rA   test_complex_adaptive_false  sD   

$

$
(r8  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s2J  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rkdksnJ  J dd }t|||dddt fddd}|  t|||dddt fdd	d
}|  |j|j  krdksJ  J dd } t| dddd	d	d}|  t	| dddd	d	d}|  |j|j  krdksJ  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   r-  r   r.  r   r@   r@   rA   r   C  r   z.test_expr_is_lambda_function.<locals>.<lambda>r7   rv   r2   TrR   r/   Fr,   rw   r-   c                 S   r-  r   r.  r   r@   r@   rA   r   J  r   c                 S   r-  r   r4   r   r   r@   r@   rA   r   K  r   r7   r   r.   皙?r0   adaptive_goalc                 S   r  r   r@   r   r@   r@   rA   r   T  r  c                 S   s   t | d |d  S r   r.  r  r@   r@   rA   r   ]  r   )arS   r.   )br   rR   r   c                 S   s   t | | S r   r.  r%  r@   r@   rA   r   f      c                 S   s   t | | S r   r:  r%  r@   r@   rA   r   g  r@  c                 S   r  r   r@   r%  r@   r@   rA   r   h  r   r]   rg   c                   S   s   t dd dd S )Nc                 S   r  r   r@   r  r@   r@   rA   r   n  r  @test_expr_is_lambda_function.<locals>.<lambda>.<locals>.<lambda>r   r@   r@   r@   rA   r   n  s    c                   S   s   t dd ddS )Nc                 S   r-  r   r:  r  r@   r@   rA   r   o  r   rA  r9  )r8   ir   )r    r@   r@   r@   rA   r   o  s    )r4   r&   r   r5   labelr   r   r   r   r   r   r#   r   )rh   r9   r<   fxfyfzr@   r@   rA   test_expr_is_lambda_function<  sb       rF  c                  C   s  t d\} }tt| | ddfddd}|jsJ 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rTJ tt| t| | | dd	fddd}|jsjJ tt| t| | | dd	fddd}|jrJ d S )
NrC   rS   r.   r  T)show_in_legendFr   rO   )r   r   r   rG  r   r   r   r   r@   r@   rA   test_show_in_legend_liness  s*   




rH  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   sh   t tddd# |  }| }t||D ]\}}t||s!J qW d    d S 1 s-w   Y  d S )Nz)invalid value encountered in scalar powerFrJ   )r$   r\   r5   r   r4   rU   r>  r?  r   r   r  rg   r@   r@   rA   r     s   "z:test_particular_case_1_with_adaptive_true.<locals>.do_testrE   r.   rR   rG   rO   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rO  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 r   )r5   r   r4   rU   rI  r@   r@   rA   r     s
   z;test_particular_case_1_with_adaptive_false.<locals>.do_testrE   r.   rR   rG   rO   r+   r,   r-   Frw   rJ  rK  )	r   rE   r>  rL  rM  r   rN  r>   rd   r@   r@   rA   *test_particular_case_1_with_adaptive_false  s    8rP  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 
| rhJ t 
|
 rqJ td\}}}}tdd dt ttd| t | | | |d|f  }|d|di}t||ddfdd|d}	|		 \}}
t 
| rJ t 
|
 rJ d S )Nr)   zxi, omega_n, x0, v0, tr7   r.   r   )ics      ?g      ?g?g        d   Fr2   r5  z
x, T, n, mrO   r   r,   )r4   r&   r   r   diffr   r[   r   rhsr5   rW   rV   r   r   r   r   )xiwnx0v0r  r7   eqsolrP   r   r8   TrE   mfsr@   r@   rA   test_complex_params_number_eval  s8   .,<r_  c            
      C   sJ  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_w   Y  |	 }|	 }	t 
|d  rwJ t 
|d  rJ t 
|	d  rJ t |d |	d rt |d |	d sJ d S )Nr)   rC   r.   r+   r,   Tr;  r<  Fro   rw   rO   r5  r   )r4   r&   r   r   r   r   r   r'   r\   r5   rW   rV   rU   )
r7   r]   r6  r7  r9   r<   r>   r   r   data3r@   r@   rA   test_complex_range_line_plot_1  s*   

0ra  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Q | }| }|d d |d d g}|d d |d d g}|d d |d d g}|d d |d d g}	t 	||sqJ t 	||	syJ W d    d S 1 sw   Y  d S )Nr)   rC   y             y      @       Tr3   Fr,   rw   z!invalid value encountered in sqrtrJ   r   r   rO   )
r4   r&   r   r   rY   r   r$   r\   r5   rU   )
r7   r]   r9   r<   r   r   r^   r`   r_   ra   r@   r@   rA   test_complex_range_line_plot_2  s*   "rb  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 sFw   Y  t 
|d	 d
rUJ t 
|d	 d
s_J d S )Nr)   r7   r.   r+   r,   F)r0   rE   r   TrO   r   )r4   r&   r   r   r   r   r   r5   r'   r\   rU   )r7   r   r9   r<   r   r   r@   r@   rA   test_force_real_eval2  s    

rc  c                  C   s   t d\} }tt| | | ddf|ddf}|jsJ tt| | | ddf|ddfdd}|js2J tt| | | ddf|ddfdd}|jrIJ d S )Nr*   rS   r.   T)clabelsF)r   r   r   show_clabels)r7   r8   r   r@   r@   rA    test_contour_series_show_clabelsF  s    
$
$rf  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 )Nrg  y      $@       @)r   r   r@   r   r@   rA   r   ^  r&  z:test_LineOver1DRangeSeries_complex_range.<locals>.<lambda>)r   r   r   r#   r   r@   r@   r   rA   (test_LineOver1DRangeSeries_complex_rangeU  s   
rh  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||r2J q&d S r   )r5   r   r4   rU   rP   )r9   r<   
new_paramsr   r   r]   rg   r@   r@   rA   r   h  s   z.test_symbolic_plotting_ranges.<locals>.do_testr   rO   Fr,   rw   rP   r0   rE   rR  r   c                      s   t t f diddS )NrO   r,   r   )r   r   r@   r>  r?  r7   r@   rA   r   y  s    z/test_symbolic_plotting_ranges.<locals>.<lambda>c                      s&   t tt f didddS Nr   Fr,   rj  )r   r   r   r@   rk  r@   rA   r     s    
c                	      s(   t tt f didddS rl  )r   r   r   r@   rk  r@   rA   r     s    
r.   r2   r   rP   r0   rT   ru   c                	      sJ   t td d  t   t  ft  t f diddddS Nr.   rO   Fr2   rm  r   r   r   r@   r>  r?  r7   r8   r@   rA   r     s    *c                	      sN   t td d  t    t  ft  t f diddddS rn  ro  r@   rp  r@   rA   r     s    .rS   rt   r   c                
      sD   t t t  d  dfdd f didddS )NrS   r.   rO   r2   r   )r   r   r   r@   rp  r@   rA   r     s    2
)r4   r&   r   r   r   r#   r   r   r   r   r   r   r   )ry   r   r9   r<   r@   rp  rA   test_symbolic_plotting_rangesa  sn   
  (&.2rq  c                  C   s  t std td} t| tj d| tj d   }ttddd< t|| dd	fdd
t	t
ddd}| \}}t | rBJ t t |dksNJ t|d
ksVJ W d    n1 s`w   Y  tt| t|  }tt| t|  }ttdddK t||| ddfdd
t	t
ddd}| \}}}t | rJ t t |dksJ t t |dksJ t|d
ksJ W d    d S 1 sw   Y  d S )Nr)   r7   rO   r.   z5NumPy is unable to evaluate with complex numbers someFrJ   r   r   rS  r   r   )r0   rE   excluder         r   )r4   r&   r   r   r   Halfr$   rZ   r   listranger5   rW   rV   count_nonzeror6   r
   r   r   r   )r7   r   r   r   r   e1e2ppr@   r@   rA   test_exclude_points  sB    "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 	||skJ t
dd ||	|fD syJ t 	||	rJ t 	||rJ t 	|	|rJ d S )Nr)   r*   rO   rR   r.   gh㈵>g     j@r
   Fr,   )r   r0   rE   unwrapTperiodr   c                 s   s     | ]}t |  V  qd S r   )r4   rW   rV   )rq   r  r@   r@   rA   rs     s    ztest_unwrap.<locals>.<genexpr>)r4   r&   r   r   r[   r   r   r   r5   rU   rx   )r7   r8   r   r9   r<   r>   r:   r   r=   r   r?   r   r@   r@   rA   test_unwrap  s,   
r  N)Tsympyr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.externalr   sympy.plotting.seriesr   r   r   r   r   r   r    r!   r"   sympy.testing.pytestr#   r$   r%   r&   r'   r4   rB   rm   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r)  r,  r1  r4  r8  rF  rH  rO  rP  r_  ra  rb  rc  rf  rh  rq  r|  r  r@   r@   r@   rA   <module>   s`   d ,p*FKO%,?!I'%[K!d+7
 -
!O%