
    ge                        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 Z+d Z,d Z-d	 Z.d
 Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd  ZEd! ZFd" ZGd# ZHe'd$             ZId% ZJd& ZKd' ZLe'd(             ZMd) ZNd* ZOd+ ZPd, ZQd- ZRd. ZSd/S )0    )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                  z   t           st          d           t          d          \  } }t          t	          |           | ddfddd          }|                                \  }}t          t	          |           | ddfddd	          }|                                \  }}t          t	          |           | ddfdd
          }|                                \  }}t          |          t          |          cxk     rt          |          k     sn J t          t          |           t	          |           | ddt          z  fdd          }|                                \  }}}t          t          |           t	          |           | ddt          z  fdd	          }|                                \  }}}t          t          |           t	          |           | ddt          z  fd
          }|                                \  }}}t          |          t          |          cxk     rt          |          k     sn J d S )Nnumpy not installed.x, y
    T   adaptivedepth   r2   r   )
npr'   r   r   r   get_datalenr   r	   r   )	xys1x1_s2x2s3x3s	            \/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/plotting/tests/test_series.pytest_adaptiverC      s    %#$$$6??DAq	s1vv3|R$
 
 
BKKMMEB	s1vv3|R$
 
 
BKKMMEB	s1vv3|R$	G	G	GBKKMMEBr77SWW&&&&s2ww&&&&&&	AAAqtQ
  
  
 BIB1	AAAqtQ
  
  
 B{{}}HB1	AAAqt
 
 
B{{}}HB1r77SWW&&&&s2ww&&&&&&&&    c            
      j   t           st          d           t          d          \  } }t          t	          |           | t
           t
          fddd          }|                                \  }}t          t	          |           | t
           t
          fdddd          }|                                \  }}t          t	          |           | t
           t
          fdddd	          }|                                \  }	}
t          t	          |           | t
           t
          fddd
          }|                                \  }}t                               ||          r6t                               ||	          rt                               ||          sJ t                               t           	                    |                    rJ t                               t           	                    |
                    rJ t                               t           	                    |                    sJ t                               t           	                    |                    sJ t          |j                  t          |j                  cxk    rdk    sn J t          |j                  dk    sJ t                               t                               |j                  t           j        dz            sJ t          t          dd          5  t          t          |           | ddfddd          }t          t          |           | ddfdddd          }t          t          |           | ddfddd
          }|                                \  }}|                                \  }}|                                \  }	}
t                               ||          rt                               ||	          sJ t                               t           	                    |                    rJ t                               t           	                    |                    r2t                               t           	                    |                    sJ t                               ||d          rJ t          |j                  dk    sJ 	 d d d            n# 1 swxY w Y   t          t	          || z            | t
           t
          f|diddd          }|                                \  }}t          t	          || z            | t
           t
          f|didddd          }|                                \  }}t          t	          || z            | t
           t
          f|didddd	          }|                                \  }	}
t          t	          || z            | t
           t
          f|diddd
          }|                                \  }}t                               ||          r6t                               ||	          rt                               ||          sJ t                               t           	                    |                    rJ t                               t           	                    |
                    rJ t                               t           	                    |                    sJ t                               t           	                    |                    sJ t          |j                  t          |j                  cxk    rdk    sn J t          |j                  dk    sJ t                               t                               |j                  t           j        dz            sJ t          t          dd          5  t          dd          \  }}t!          d          dz  }|t"          |z  z   |z  }t%          |          t'          |          }}t)          |                    |d          |                    |d          |ddfddd          }t)          |                    |d          |                    |d          |ddfddd          }d d d            n# 1 swxY w Y   t-          t.                    5  |                                \  }}}t           	                    |                                          rJ |                                \  }}}t           	                    |                                          sJ 	 d d d            n# 1 swxY w Y   t          t          dd          5  | |z  | t"          z  |z  z   |z  }t%          |          t'          |          }}t)          |                    |d          |                    |d          |ddf| diddd          }t)          |                    |d          |                    |d          |ddf| diddd          }d d d            n# 1 swxY w Y   t-          t.                    5  |                                \  }}}t           	                    |                                          rJ |                                \  }}}t           	                    |                                          sJ 	 d d d            d S # 1 swxY w Y   d S )Nr+   x, uF  )r2   ndetect_polesT{Gz?)r2   rH   rI   epsgư>symbolicr   r0   z8NumPy is unable to evaluate with complex numbers some ofmatchtest_stacklevelr-   r.   g?)	equal_nan      )paramsr2   rH   rI   )rS   r2   rH   rI   rK   zu, v)real   )rS   r2   n1rI   )r6   r'   r   r   r
   r   r7   allcloseanyisnanr8   poles_locationsabsr%   UserWarningr   r   r   r   r   r   subsr(   RuntimeWarning)r9   ur;   xx1yy1r>   xx2yy2r@   xx3yy3s4xx4yy4vrH   fripp1pp2s                        rB   test_detect_polesrp   .   s    %#$$$6??DAq	s1vvB3|$U
4 
4 
4B{{}}HC	s1vvB3|$Tt
= 
= 
=B{{}}HC	s1vvB3|$Tu
> 
> 
>B{{}}HC	s1vvB3|$Z
9 
9 
9B{{}}HC;;sC  TR[[c%:%:Tr{{3PS?T?TTTTvvbhhsmm$$$$$vvbhhsmm$$$$$66"((3--     66"((3--     r!""c"*<&=&=BBBBBBBBBBr!""a'''';;rvvb0112519=====	L!

 

 

 - -
 #477QRLd8 8 8"477QRLd4A A A"477QRLd= = =;;==S;;==S;;==S{{3$$>S#)>)>>>>66"((3--(((((vvbhhsmm$$>)>)>>>>;;sC4;888882%&&",,,,,'- - - - - - - - - - - - - - -* 
s1q5zzAsB<A$U
4 
4 
4B{{}}HC	s1q5zzAsB<A$Tt
= 
= 
=B{{}}HC	s1q5zzAsB<A$Tu
> 
> 
>B{{}}HC	s1q5zzAsB<A$Z
9 
9 
9B{{}}HC;;sC  TR[[c%:%:Tr{{3PS?T?TTTTvvbhhsmm$$$$$vvbhhsmm$$$$$66"((3--     66"((3--     r!""c"*<&=&=BBBBBBBBBBr!""a'''';;rvvb0112519=====	L!

 

 

 7 7
 vD)))1aDD1HQYN!uubee1#AFF1bMM166!R==1b!*d8 8 8#AFF1bMM166!R==1b!*d7 7 77 7 7 7 7 7 7 7 7 7 7 7 7 7 7 
	(	( # #S#88C==$$&&&&&S#xx}}  """"""	# # # # # # # # # # # # # # # 
L!

 

 

 8 8
 UQUQY"!uubee1#AFF1bMM166!R==AJ1vt%9 9 9 $AFF1bMM166!R==AJ1vt$8 8 88 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
	(	( # #S#88C==$$&&&&&S#xx}}  """"""	# # # # # # # # # # # # # # # # # #s_   F>SS"%S"+Cccc+Bff	f	'B;i..i25i2Bl((l,/l,c                     t           st          d           t          d          \  } }}t          t          t
          fD ]X}t          ddi|          }t          dg di|          }t          ddi|          }t          d |||fD                       sJ Yt          t          t          t          fD ]u}t          ddi|          }t          dg di|          }t          ddd	|          }|d         |d
         cxk    rdk    sn J t          d ||fD                       sJ vt          t          |           | ddfdd                                           d S )Nr+   zx:zrH   r.   )r.         rW   c              3   6   K   | ]}d |v o|d          dk    V  dS )rW   r.   N .0kws     rB   	<genexpr>z4test_number_discretization_points.<locals>.<genexpr>   s3      MMrDBJ2BtHNMMMMMMrD   rr   rW   n2r{   c              3   F   K   | ]}|d          dk    o|d         dk    V  dS )rW   r.   r{   rr   Nru   rv   s     rB   ry   z4test_number_discretization_points.<locals>.<genexpr>   s7      NNRBtHN8DRNNNNNNrD   r4   Fg     @r2   rH   )r6   r'   r   r   r   r   r"   allr   r   r    r!   r	   r7   )r9   r:   zptkw1kw2kw3s          rB   !test_number_discretization_pointsr      s     %#$$$ennGAq!$&<  N N(#rB77(#|||)<bAA($R88MMc3_MMMMMMMMM'8O O O(#rB77(#|||)<bAA(")=)=rBB4yCI++++++++++NNC:NNNNNNNNN #a&&1b!*uEEENNPPPPPrD   c                     t           st          d           t                               ddd          t                                         } t                               ddd          t	          |           }|j        rJ t          t          fd           t	          |           }|                                \  }}t           	                    |          sJ t           	                    | |          sJ |j        rJ d S )Nr+   rU   r.   rr   c                  $    t                     S Nr#   )xxrd   s   rB   <lambda>z#test_list2dseries.<locals>.<lambda>   s    |B44 rD   )
r6   r'   linspacer	   r#   is_parametricr$   
ValueErrorr7   rX   )rb   sxxsyysr   rd   s       @@rB   test_list2dseriesr      s     %#$$$	RB		B
&&**C
++b!R
 
 C 	RA
:44444555 	RAzz||HC;;r3;;sC     rD   c            	         t          d          \  } }}}}t          t          |           | ddf          }|j        rJ t          |t          |           z  | ddf|di          }|j        sJ t	          t          |           t          |           | ddf          }|j        rJ t	          |t          |           z  |t          |           z  | ddf|di          }|j        sJ t          t          |           t          |           | | ddf          }|j        rJ t          |t          |           z  |t          |           z  | | ddf|di          }|j        sJ t          t          | |z            | ddf|ddf          }|j        rJ t          |t          | |z            z  | ddf|ddf|di          }|j        sJ t          t          | |z            | ddf|ddf          }|j        rJ t          |t          | |z            z  | ddf|ddf|di          }|j        sJ t          |t          |          z  |t          |          z  ||z   |ddf|ddf          }|j        rJ t          |t          || z            z  |t          |          z  ||z   |ddf|ddf| di          }|j        sJ d S )Nx, y, z, u, vr}   r4   rR   rS   )
r   r   r	   is_interactiver   r   r   r   r   r    )r9   r:   r   r`   rj   r   s         rB   "test_interactive_vs_noninteractiver      s'    O,,MAq!Qc!ffq"aj11Aa#a&&j1b!*aVDDDAs1vvs1vv2qz::Aq3q66z1s1vv:2qz1v	 	 	As1vvs1vvq1b!*==Aq3q66z1s1vv:q1b!*1v	 	 	A QUaQZ!RDDA SQZZ!RaQZ1v	 	 	Ac!a%jj1b!*q"aj99Aa#a!e**nq"aj1b!*1v	 	 	ACFF
AAJA	
B
QAJ	  	 ACAJJCFF
AE	
B
QAJ1v	/ 	/ 	/ArD   c            
         t           st          d           t          d          \  } }}t          | | ddfddd          }|                                \  }}t                               |d         |d	         z
  |d
         |d         z
            sJ t          | | ddfddd          }|                                \  }}t                               |d         |d	         z
  |d
         |d         z
            rJ t          t          |           t          |           | t          dz  dt          z  fddd          }|                                \  }}}t                               |d         |d	         z
  |d
         |d         z
            sJ t          t          |           t          |           | t          dz  dt          z  fddd          }|                                \  }}}t                               |d         |d	         z
  |d
         |d         z
            rJ t          t          |           t          |           | | t          dz  dt          z  fddd          }|                                \  }}}}t                               |d         |d	         z
  |d
         |d         z
            sJ t          t          |           t          |           | | t          dz  dt          z  fddd          }|                                \  }}}}t                               |d         |d	         z
  |d
         |d         z
            rJ t          t          | dz  |dz  z             | ddf|ddfddd          }|                                \  }}}t                               |d         |d         z
  |d         |d         z
            sJ t                               |d         |d         z
  |d         |d         z
            sJ t          t          | dz  |dz  z             | ddf|ddfddd          }|                                \  }}}t                               |d         |d         z
  |d         |d         z
            rJ t                               |d         |d         z
  |d         |d         z
            rJ t          t          | dz  |dz  z             d	k    | ddf|ddfddddd          }|                                \  }}}}t                               |d         |d         z
  |d         |d         z
            sJ t                               |d         |d         z
  |d         |d         z
            sJ t          t          | dz  |dz  z             d	k    | ddf|ddfdddd          }|                                \  }}}}t                               |d         |d         z
  |d         |d         z
            rJ t                               |d         |d         z
  |d         |d         z
            rJ d S )Nr+   x, y, zrR   r.   F2   linear)r2   rH   xscaler   rV   r   r0         ?r4   )rH   r   yscale)r   rR   )r   r   )r   r   )r   rV   )rR   r   )r   r   )rV   r   )rW   r{   r   r   r2   )rH   r   r   r2   )r6   r'   r   r   r7   iscloser   r	   r   r   r   r   r!   )r9   r:   r   r   r   r=   paramyys           rB   test_lin_log_scaler      s5    %#$$$i  GAq!a!Qer	 	 	AJJLLEB::bebemRVbf_55555a!Qer	 	 	AJJLLEBzz"Q%"Q%-B"R&99999AABFC"H-	 	 	A **,,KAq%::eAhq)59uRy+@AAAAAAABFC"H-	 	 	A **,,KAq%zz%(U1X-uRy59/DEEEEEAAArAvsRx05B	 	 	A ZZ\\NAq!U::eAhq)59uRy+@AAAAAAAArAvsRx05B	 	 	A ZZ\\NAq!Uzz%(U1X-uRy59/DEEEEE AFQ!VOq!Qi!Qb	* 	* 	*A 

IBA::bhD)2e9r%y+@AAAAA::bhD)2e9r%y+@AAAAA AFQ!VOq!Qi!QbU	$ 	$ 	$A 

IBAzz"T(RX-r%y2e9/DEEEEEzz"T(RX-r%y2e9/DEEEEEAFQ!VOq 1a)aAY"Xh	H 	H 	HA ::<<LBAq::bhD)2e9r%y+@AAAAA::bhD)2e9r%y+@AAAAAAFQ!VOq 1a)aAY
U55	: 	: 	:A ::<<LBAqzz"T(RX-r%y2e9/DEEEEEzz"T(RX-r%y2e9/DEEEEEEErD   c            	         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          z  f          }t	          |j        t                    sJ t          ||z   |d
d	f|ddf          }t	          |j        t                    sJ t          ||z   |d
d	f|ddf          }t	          |j        t                    sJ t          d|||ddf|ddf          }t	          |j        t                    sJ d S )Nr+   z	u, v, x:zrR   r0   rU   )   r4      rR   r}   r4   r   r0   rV   r   rU   )r6   r'   r   r#   
isinstancerendering_kwdictr   r   r   r	   r   r   r   r   r    )r`   rj   r9   r:   r   r   s         rB   test_rendering_kwr   @  s    %#$$$K((MAq!QYYY			**Aand+++++a!R,,Aand+++++s1vvs1vv1bz::Aand+++++s1vvs1vvq1aR.AAAand+++++ QB
QAJ??Aand+++++a!eaQZ!R44Aand+++++1a!QQ1I>>Aand+++++++rD   c            	         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          }|                                \  }}t          |          t          |          cx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    r t          |          t          |          k    sJ t                               |dk              sJ t          t          |          d|d	t          fd
          }|                                \  }}}t          |          t          |          k    r t          |          t          |          k    sJ t                               |dk              sJ t          dt          |          |d	t          fd
          }|                                \  }}}t          |          t          |          k    r t          |          t          |          k    sJ t                               |dk              sJ t          t          |          t          |          d|d	dt          z  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          z  f          }|                                \  }}}}t          |          t          |          k    r@t          |          t          |          k    r t          |          t          |          k    sJ t                               |dk              sJ t          dt          |          ||d	dt          z  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        cxk    r#|j        cxk    r|	j        cxk    r|
j        k    sn J t                               |dk              sJ t          dd||d	df|d	df          }|                                \  }}}}	}
|j        |j        cxk    r#|j        cxk    r|	j        cxk    r|
j        k    sn J t                               |dk              sJ t          |dd|d	df|d	df          }|                                \  }}}}	}
|j        |j        cxk    r#|j        cxk    r|	j        cxk    r|
j        k    sn J t                               |dk              sJ d S )Nr+   u, x:zrR   r}   r4   Fr.   r~   r   r5   r0   rV   r   rU   )r6   r'   r   r   r7   r8   r   r   r   r   r   r	   r   shaper    )r`   r9   r:   r   r   r   r   r   zzuuvvs              rB   test_data_shaper   ]  s,     %#$$$""JAq!Q 	a!R,,AZZ\\FBr77c"gg66"'??a!RerBBBAZZ\\FBr77c"gg##########66"'??s1vvq1a*55AJJLLMBEGGs2wwSWWE

%:%:%:%:66"'??q#a&&1a*55AJJLLMBEGGs2wwSWWE

%:%:%:%:66"'??s1vvq1a*uEEEAJJLLMBEGGs2wwSWWE

%:%:%:%:66"'??q#a&&1a*uEEEAJJLLMBEGGs2wwSWWE

%:%:%:%:66"'??s1vvs1vvq1aR.AAA

BBGGs2wwSWWB%7%7c"ggU>S>S>S>S66"'??s1vvq!aAF^<<A

BBGGs2wwSWWB%7%7c"ggU>S>S>S>S66"'??q#a&&!aAF^<<A

BBGGs2wwSWWB%7%7c"ggU>S>S>S>S66"'?? QAJB
;;AJBBH  rx28';';';';66"'??1a!QQ1I>>ABBB8rxCCCC28CCCCrxCCCC28CCCCCC66"'??1a!QQ1I>>ABBB8rxCCCC28CCCCrxCCCC28CCCCCC66"'??1a!QQ1I>>ABBB8rxCCCC28CCCCrxCCCC28CCCCCC66"'??rD   c            	         t           st          d           t          d          \  } }}}t          t	          |           | ddfddd          }|                                \  }}t          |          d	k    sJ |d
         dk    r|d         dk    sJ t          t          |           t	          |           | d
dt          z  fddd          }|                                \  }}}t          |          dk    sJ |d
         d
k    r|d         dk    sJ t          t          |           t	          |           | | d
dt          z  fddd          }|                                \  }}}}t          |          dk    sJ |d
         d
k    r|d         dk    sJ t          t          | dz  |dz  z             | ddf|ddfddd          }|                                \  }}}|j        |j        cxk    rdk    sn J t                               |d d d
f         dt                               d          z  z
  d
          sJ t                               |d
d d f         t                               ddd          z
  d
          sJ t                               |d d d
f         t                               ddd          z
  d
          sJ t                               |d
d d f         dt                               d          z  z
  d
          sJ dt	          d|z  d|z  z             z   }	|	t          |          z  t	          |          z  |	t	          |          z  t	          |          z  |	t          |          z  f}
t!          g |
|d
dt          z  f|d
t          fdR ddd}|                                \  }}}}}|j        |j        cxk    r*|j        cxk    r|j        cxk    r|j        cxk    rdk    sn J t          d| ddfddd          }|                                \  }}t          |          d	k    sJ |d
         dk    r|d         dk    sJ t          t          |           d| d
dt          z  f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          }|                                \  }}}|j        |j        cxk    rdk    sn J t                               |d d d
f         dt                               d          z  z
  d
          sJ t                               |d
d d f         t                               ddd          z
  d
          sJ t                               |d d d
f         t                               ddd          z
  d
          sJ t                               |d
d d f         dt                               d          z  z
  d
          sJ dt	          d|z  d|z  z             z   }	|	t          |          z  t	          |          z  d|	t          |          z  f}
t!          g |
|d
dt          z  f|d
t          fdR ddd}|                                \  }}}}}|j        |j        cxk    r*|j        cxk    r|j        cxk    r|j        cxk    rdk    sn J d S )Nr+   
x, y, u, vg            @r/   FTr2   only_integersr.   r   r}   r   r   r0      r   g      @            @)r      r4   r   r   rU   )r   r   rR   )r6   r'   r   r   r   r7   r8   r   r	   r   r   r   r   rX   onesr   r    )r9   r:   r`   rj   r   r   r=   pr   rl   exprr   r   r   s                 rB   test_only_integersr     sd    %#$$$&&JAq!Qc!ffq$nbd	, 	, 	,AJJLLEBr77b====a5B;;2b6Q;;;;s1vvs1vv1a"f~rd	, 	, 	,AjjllGAq!q66Q;;;;Q41992!s1vvs1vvq1aR."d	, 	, 	,AJAq!Qq66Q;;;;Q41992! QTAqD[!1!1AtS>	
D#d	, 	, 	,A 

IBA8rx****7******;;r!!!Q$x2"33Q77777;;r!QQQ$x"++b!R"8"88!<<<<<;;r!!!Q$x"++b!Q"7"77;;;;;;;r!QQQ$x2"44a88888	CAAA	CFF
SVV	CFF
SVV	CFF
D
 	  	, 	,1a"f~ 	,1bz 	,2 	, 	,d	, 	, 	,ABBB8rxMMMM28MMMMrxMMMM28MMMMvMMMMMM 	a!T3d	, 	, 	,AJJLLEBr77b====a5B;;2b6Q;;;;s1vvq1aR."d	, 	, 	,AjjllGAq!q66Q;;;;Q41992! QcNQcNBd	, 	, 	,A

IBA8rx****7******;;r!!!Q$x2"33Q77777;;r!QQQ$x"++b!R"8"88!<<<<<;;r!!!Q$x"++b!Q"7"77;;;;;;;r!QQQ$x2"44a88888	CAAA	CFF
SVV		CFF
D
 	  	, 	,1a"f~ 	,1bz 	,2 	, 	,d	, 	, 	,ABBB8rxMMMM28MMMMrxMMMM28MMMMvMMMMMMMMrD   c                     t           st          d           t          d          \  } }t          t	          |           | ddfddd          }|j        s|j        sJ t          t	          |           | ddfddd          }|j        r|j        rJ t          g d	g d
dd          }|j        s|j        sJ t          g d	g d
dd          }|j        r|j        rJ t          t	          |           t          |           | ddfdd          }|j        s|j        sJ t          t	          |           t          |           | ddfdd          }|j        r|j        rJ t          t	          |           t          |           | | ddfdd          }|j        s|j        sJ t          t	          |           t          |           | | ddfdd          }|j        r|j        rJ d S )Nr+   rF   r}   r4   r/   FT)is_point	is_filledr   rR   r0   rU   r   r4   )r6   r'   r   r   r	   r   r   r#   r   r   r   r9   r`   r   s      rB   test_is_point_is_filledr     s@     %#$$$6??DAqc!ffq"aj"$	( 	( 	(A
++++c!ffq"aj"	( 	( 	(A:+q{+++YYY			$	( 	( 	(A
++++YYY				( 	( 	(A:+q{+++s1vvs1vv2qz$	( 	( 	(A
++++s1vvs1vv2qz	( 	( 	(A:+q{+++s1vvs1vvq1b!*$	( 	( 	(A
++++s1vvs1vvq1b!*	( 	( 	(A:+q{+++++rD   c                      t          d          \  } }t          | dz  |dz  z             }| ddf|ddff}t          |g|R  }|j        sJ t          |g|R ddi}|j        sJ t          |g|R ddi}|j        rJ d S )Nr,   r0   rV   r   TF)r   r	   r   r   )r9   r:   r   rangesr   s        rB   test_is_filled_2dr     s    6??DAqq!tad{DQZ!R#Fd$V$$$A;d4V444t44A;d5V555u55A{rD   c            	      <   t           st          d           t          d          \  } }d }t          t	          |           | ddfdddd	          }t          t	          |           | ddfdddd
	          } |||           t          g dg dd          }t          g dg dd
          } |||           t          t	          |           t          |           | ddfddd	          }t          t	          |           t          |           | ddfddd
	          } |||           t          t	          |           t          |           | | ddfddd	          }t          t	          |           t          |           | | ddfddd
	          } |||           d S )Nr+   rF   c                 $   | j         s6| j        r/|                                 \  }}|                                \  }}n| j         r8| j        r1|                                 \  }}}|                                \  }}}nq| j         s8| j        r1|                                 \  }}}|                                \  }}}n2|                                 \  }}}}|                                \  }}}}t	          |          t	          |          k    sJ d S r   )r   	is_2Dliner7   	is_3Dliner8   )r;   r>   ra   r=   rc   s        rB   do_testztest_steps.<locals>.do_test1  s      	)bl 	)[[]]FC[[]]FC 	)", 	)ICAICAA" 	) 	)ICAICAA;;==LCAq;;==LCAq3xx3s88######rD   r}   r4   r/   F(   )r2   rH   stepsTr   r   )r   )	r6   r'   r   r   r	   r#   r   r   r   )r9   r`   r   r;   r>   s        rB   
test_stepsr   +  s    %#$$$6??DAq$ $ $ 
s1vv2qz2"E
+ 
+ 
+B	s1vv2qz2"D
* 
* 
*BGBOOO	iii%	8	8	8B	iii$	7	7	7BGBOOO	AAB
"E
+ 
+ 
+B	AAB
"D
* 
* 
*BGBOOO	AAAr1:"E
+ 
+ 
+B	AAAr1:"D
* 
* 
*BGBOOOOOrD   c            
      f   t           st          d           t          d          \  } }}}d }t          | t	          |          z  |ddf| did          }t          t	          |          |ddfd	d
          } ||                                |                                           t          | t	          |          z  | t          |          z  |ddf| did          }t          t	          |          t          |          |ddfd	d
          } ||                                |                                           t          | t	          |          z  | t          |          z  | |z  |ddf| did          }t          t	          |          t          |          ||ddfd	d
          } ||                                |                                           t          | t	          |dz  |dz  z             z  |ddf|ddf| didd          }t          t	          |dz  |dz  z             |ddf|ddfd	dd          } ||                                |                                           t          | t	          ||z             z  t          ||z             ||z
  |ddf|ddf| didd          }t          t	          ||z             t          ||z             ||z
  |ddf|ddfd	dd          } ||                                |                                           t          |dz  dz   |dz  dz
  z            }t          | |z  |ddfd	dd | di          }t          ||ddfd	dd           } ||                                |                                           t          |dz  dz   |dz  dz
  z            }t          | |z  |ddfdd| di          }t          ||ddfd	dd          } ||                                |                                           d S )Nr+   r   c                     t          |           t          |          k    sJ t          | |          D ]"\  }}t                              ||          sJ #d S r   r8   zipr6   rX   data1data2d1d2s       rB   r   z&test_interactive_data.<locals>.do_test_  c    5zzSZZ''''%'' 	' 	'FB;;r2&&&&&&	' 	'rD   r}   r4   rR   r   rS   rH   Fr~   r0   r   rU   rS   rW   r{   r2   rW   r{   )r2   rH   modulesrS   )r2   rH   r   mpmath)rH   r   rS   )r6   r'   r   r   r	   r7   r   r   r   r   r    r   )r`   r9   r:   r   r   r;   r>   r   s           rB   test_interactive_datar   W  s     %#$$$""JAq!Q' ' '
 
q3q66zAr1:q!f	K	K	KB	s1vv2qzER	H	H	HBGBKKMM2;;==)))		CFF
AAJB
Aq6R
A 
A 
AB	AAB
"
 
 
BGBKKMM2;;==)))		CFF
AAJA2qz1v
 
 
B 
 AAAr1:"
 
 
BGBKKMM2;;==)))	!	CQa   1b!*q"aj1v"
& 
& 
&B 
"AFQ!VOq"aj1b!*2"
& 
& 
&B GBKKMM2;;==)))	 	CAJJAE

AEAr1:2qz1v"
& 
& 
&B 
!AE

CAJJA2qzAr1:2"
' 
' 
'B GBKKMM2;;==))) qAvza1fqj)**D	q4x!ReraV
% 
% 
%B	taQZ%2
 
 
BGBKKMM2;;==))) qAvza1fqj)**D	q4x!Rr81v
 
 
B	taQZ"h
0 
0 
0BGBKKMM2;;==)))))rD   c                     t           st          d           t          d          \  t          g dg d          } | j        rJ t          t          fd           t          t          fd           t          t                    gt                    gdi          } | j        sJ t          dd	d
gd
d	dgd	i          } | 	                                \  }}t           
                    |g d          sJ t           
                    |g d          sJ | j        rJ t          g dg ddi          } | j        sJ t          | j        t                    sJ t          | j        t                    sJ d S )Nr+   x, y, ur   c                  \    t          t                     gt                     g          S r   r#   r	   r   r9   s   rB   r   z/test_list2dseries_interactive.<locals>.<lambda>  s!    |SVVHs1vvh?? rD   c                  h    t          t                    gt                    dg di          S )Nr0   rR   r   r   )r`   r9   r:   s   rB   r   z/test_list2dseries_interactive.<locals>.<lambda>  s.    c!ffa[3q661+q!fEEE rD   rR   r   r0   rU   r   )rU   r0   rU   r   )r   rU   r0   rU   )r6   r'   r   r#   r   r$   r   r	   r   r7   rX   r   r   list_xr   list_y)r   r   r   r`   r9   r:   s      @@@rB   test_list2dseries_interactiver     s    %#$$$i  GAq!YYY			**A :????@@@ :EEEEEEG G G 	c!ffXAxA777AaAq\Aq!Q<A???AZZ\\FB;;r<<<(((((;;r<<<((((( 	YYY			1a&999Aah&&&&&ah&&&&&&&rD   c                     t           st          d           t          d          \  } }t          t	          t          |                      | ddfdd d          }t          t	          t          |                      | ddfddd          }|                                \  }}|                                \  }}t                               |dk               sJ t                               |dk              sJ t          t	          t          |                      | d	dfd
dd d          }t          t	          t          |                      | d	dfd
ddd          }|                                \  }}|                                \  }}t                               ||          sJ t                               ||          rJ d S )Nr+   zz, ugMbP?r4   T)r2   r   force_real_evalr   r   r}   Frr   )r2   rH   r   r   )	r6   r'   r   r   r   r   r7   r   rX   )r   r`   r;   r>   ra   rb   rc   rd   s           rB   test_mpmathr     s     %#$$$6??DAq	r$r((||a]tT
; 
; 
;B	r$r((||a]x
? 
? 
?B{{}}HC{{}}HC66#'??66#'??	r$r((||aQZ"dD
B 
B 
BB	r$r((||aQZ"h
F 
F 
FB{{}}HC{{}}HC;;sC     {{3$$$$$$$rD   c            
         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    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 ddi}t          t          |          |ddffi |}t          |          dk    sJ t          t          | |z            |ddf| di          }t          |          dk    sJ t          t          | |z            ||  d|z  f| d|di          }t          |          dk    sJ t	          t          |          t          |          |ddf          }t          |          dk    sJ t	          t          | |z            t          |          |ddf| di          }t          |          dk    sJ t	          t          | |z            t          |          ||  d|z  f| d|di          }t          |          dk    sJ t          t          |          t          |          ||ddf          }t          |          dk    sJ t          t          | |z            t          |          ||ddf| di          }t          |          dk    sJ t          t          | |z            t          |          |||  d|z  f| d|di          }t          |          dk    sJ t          t          ||z            |ddf|ddf          }t          |          dk    sJ t          t          | |z  |z            |ddf|ddf| di          }t          |          dk    sJ t          t          | |z  |z            |d| z  df|dd| z  f| di          }t          |          dk    sJ t          t          ||z            |ddf|ddf          }t          |          dk    sJ t          t          | |z  |z            |ddf|ddf| di          }t          |          dk    sJ t          t          ||z            t          ||z            ||z  |ddf|ddf          }t          |          dk    sJ t          t          | |z  |z            t          ||z            ||z  |ddf|ddf| di          }t          |          d k    sJ t          ||k     |d!d"f|d#d$f          }t          |          d%k    sJ d S )&Nr   rU   z-cartesian line: cos(x) for x over (-4.0, 3.0)returnrT   z1cartesian line: re(cos(x)) for x over (-4.0, 3.0)imagz1cartesian line: im(cos(x)) for x over (-4.0, 3.0)r\   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)rR   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)rV   r4   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,)r}   r   r   r0   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`   r9   r:   r   r   ds         rB   test_strr     sP   ""JAq!Qc!ffq"aj11Aq66DDDDD	6Ac!ffq"aj66A66Aq66HHHHH	6Ac!ffq"aj66A66Aq66HHHHH	5Ac!ffq"aj66A66Aq66IIIII	5Ac!ffq"aj66A66Aq66IIIIIc!a%jj1b!*aVDDDAq66fffffc!a%jj1qb!A#,1a|LLLAq66fffffs1vvs1vv2qz::Aq66YYYYYs1q5zz3q66Ar1:q!fMMMAq66{{{{{s1q5zz3q66Ar1Q3<AqQRTTTAq66{{{{{s1vvs1vvq1b!*==Aq66_____s1Q3xxQQAJ1vNNNAq66  B  B  B  B  Bs1Q3xxQQAaCL!QPQSTVVVAq66  B  B  B  B  B QUaQZ!RDDAq66````` QUQY!RaQZQRTUPVWWWAq66  C  C  C  C  C QUQY!RT12qs|UVXYTZ[[[Aq66  C  C  C  C  Cc!a%jj1b!*q"aj99Aq66VVVVVc!a%!)nnq"aj1b!*aVLLLAq66xxxxxAE

CAJJA	
B
QAJ	  	 Aq66|||||AEAIAE

AE	
B
QAJ1v	/ 	/ 	/Aq66  _  _  _  _  _q1uq"aj1b!*55Aq66_______rD   c            	         t           st          d           t          d          \  } }}}t          g dg dd          }|j        sJ t          g dg dd          }|j        rJ t          t          |          t          |          |dd	fd          }|j        sJ t          t          |          t          |          |dd	fd          }|j        rJ t          t          |          t          |          ||dd	fd          }|j        sJ t          t          |          t          |          ||dd	fd          }|j        rJ t          t          ||z            |dd	f|d
dfd          }|j        sJ t          t          ||z            |dd	f|d
dfd          }|j        rJ t          t          ||z            t          ||z            ||z  |dd	f|d
dfd          }|j        sJ t          t          ||z            t          ||z            ||z  |dd	f|d
dfd          }|j        rJ d S )Nr+   r   rR   r0   rU   r   )r4   r   r      Tuse_cmFr   rU   rV   r4   )r6   r'   r   r#   r   r   r	   r   r   r   r    )r`   r9   r:   r   r   s        rB   test_use_cmr     s    %#$$$""JAq!Q\\\<<<===A8OOO\\\<<<>>>Axs1vvs1vv2qz$GGGA8OOOs1vvs1vv2qz%HHHAxs1vvs1vvq1b!*	 	 	A8OOOs1vvs1vvq1b!*	 	 	Ax QUaQZ!R	 	 	A8OOO QUaQZ!R	 	 	AxAE

CAJJA	
B
QAJt	- 	- 	-A8OOOAE

CAJJA	
B
QAJu	. 	. 	.AxrD   c            
      >   t          d          \  } }}}t          t          | dz  |dz  z             | ddf|ddf          }t          |t          |          z  |t	          |          z  ||ddf|ddt
          z  f          }|j        |j        k    sJ t          t          | dz  |dz  z             | ddf|ddfd          }t          |t          |          z  |t	          |          z  ||ddf|ddt
          z  fd          }|j        |j        k    sJ t          t          | dz  |dz  z             | ddf|ddfd          }t          |t          |          z  |t	          |          z  ||ddf|ddt
          z  fd          }|j        |j        k    sJ d S )	Nr   r0   rV   r   rR   Fr   T)r   r   r	   r    r   r   r   )r9   r:   r`   rj   r;   r>   s         rB   test_surface_use_cmr   C  s    &&JAq!Q 
"#adQTk"2"2QAJB
	K	KB	 SVVQQZ	
Aq	Aq1R4=
" 
"B9	!!!! 
"#adQTk"2"2QAJB

 
 
B	 SVVQQZ	
Aq	Aq1R4=
0 
0 
0B9	!!!! 
"#adQTk"2"2QAJB

 
 
B	 SVVQQZ	
Aq	Aq1R4=
/ 
/ 
/B9	!!!!!!rD   c                  Z   t           st          d           t          d          \  } }}d }t          t	          d| |z  z  | ddf          |ddfdd	
                                          \  }}t          t	          d| z  | d|f          |ddfdd	
          }|                                \  }}t          t	          || z  | d|f          |ddf|did	          }	|	                                \  }
}|                    t                    }|
                    t                    }
 |||g|
|g           t          t	          d| z  | d|f          |ddfd	          t          t          dd          5  t          t          fd           d d d            d S # 1 swxY w Y   d S )Nr+   r   c                     t          |           t          |          k    sJ t          | |          D ]"\  }}t                              ||          sJ #d S r   r   r   s       rB   r   ztest_sums.<locals>.do_teste  r   rD   rR   rG   r0   r.   FTr   )rS   r   r5   z&The evaluation with NumPy/SciPy failedrM   c                  ,                                      S r   )r7   )r   s   rB   r   ztest_sums.<locals>.<lambda>  s    !**,, rD   )r6   r'   r   r   r   r7   astypefloatr%   r]   r$   	TypeError)r9   r:   r`   r   r   r   r;   ra   rb   r>   rc   rd   r   s               @rB   	test_sumsr  ^  s-    %#$$$i  GAq!' ' '
 	c!a1f*q!Tl;;aBZd	, 	, 	,AZZ\\FB	s1q51a)44q!Rjd
, 
, 
,B{{}}HC	s1q51a)44q!Rj1vT
+ 
+ 
+B{{}}HC
**U

C
**U

CGS#Jc
###c!a%!Q33aBZ	 	 	A	6
 
 
 0 0
 	y....///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   :F  F$'F$c                  D   t           st          d           t          d          \  } }}}}t          t	          |           | dt
          z  dt
          z  fdd          }t          t	          |           | dt
          z  dt
          z  fddt           j                  }t          t	          |           | dt
          z  dt
          z  fddt           j        	          }t          t	          |           | dt
          z  dt
          z  fddt           j        t           j        
          }|                                \  }	}
|                                \  }}|                                \  }}|                                \  }}t                               |	d         dt           j        z            r.t                               |	d         dt           j        z            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         dt           j        z            r.t                               |d         dt           j        z            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        z  dt           j        z  d          }t                               |          }t          ||          }t          ||t           j        t           j                  }|                                \  }	}
|                                \  }}t                               |	d         dt           j        z            r.t                               |	d         dt           j        z            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          }t          t          |           t	          |           | t
           t
          fddt           j        t           j        t           j                  }|                                \  }	}
}|                                \  }}}t                               |	t                               |                    sJ t                               |
t                               |                    sJ t                               |t                               |                    sJ t#          t          |           t	          |           | | t
           t
          fdd          }t#          t          |           t	          |           | | t
           t
          fddt           j                  }|                                \  }	}
}}|                                \  }}}}t                               |	|          sJ t                               |
|          sJ t                               ||          sJ t                               |t                               |                    sJ t%          t	          | dz  |dz  z             | dt
          z  dt
          z  f|dt
          z  dt
          z  fddd          }t%          t	          | dz  |dz  z             | dt
          z  dt
          z  f|dt
          z  dt
          z  fdddt           j        d d 	  	        }|                                \  }	}
}|                                \  }}}t                               |	t                               |                    sJ t                               |
|dz            sJ t                               ||dz            sJ t'          ||z   ||z
  ||z  |ddt
          z  f|dt
          fddd          }t'          ||z   ||z
  ||z  |ddt
          z  f|dt
          fdddt           j        d d           }|                                \  }	}
}}}|                                \  }}}}}t                               |	t                               |                    sJ t                               |
|dz            sJ t                               ||dz            sJ t                               ||          sJ t                               ||          sJ d S )Nr+   z	x:z, u, vrV   r0   Fr.   r~   )r2   rH   tx)r2   rH   ty)r2   rH   r  r  r   r   gg?iih  i4   )r  r  )r2   rH   r  r  tp)r2   rH   r	  r   c                     d| z  S Nr0   ru   r   s    rB   r   z'test_apply_transforms.<locals>.<lambda>  
    AaC rD   c                     d| z  S NrU   ru   r   s    rB   r   z'test_apply_transforms.<locals>.<lambda>  
    ac rD   )r2   rW   r{   r  r  tzrU   c                     d| z  S r  ru   r   s    rB   r   z'test_apply_transforms.<locals>.<lambda>  r  rD   c                     d| z  S r  ru   r   s    rB   r   z'test_apply_transforms.<locals>.<lambda>  r  rD   )r6   r'   r   r   r	   r   rad2degr7   r   minmaxr   r#   r   r   rX   deg2radr   r   r    )r9   r:   r   r`   rj   r;   r>   r@   rg   r<   y1r?   y2rA   y3x4y4r   r   a1a2z1z2u1v1u2v2s                              rB   test_apply_transformsr$    s     %#$$$K((MAq!Q	s1vv2b5!B$'7%2	N	N	NB	s1vv2b5!B$'7%2:
 
 
B	s1vv2b5!B$'7%2:
 
 
B	s1vv2b5!B$'7%2:"*
& 
& 
&B [[]]FB[[]]FB[[]]FB[[]]FB::beRX&&F2::bfag+F+FFFFFFHHtOO"&&((S....::beT"">rzz"R&#'>'>>>>FFHHtOO"&&((S....::beRX&&F2::bfag+F+FFFFFFHHsNNB::beT"">rzz"R&#'>'>>>>FFHHsNNB	RXqw	+	+B	B	b"		B	b"
	;	;	;B[[]]FB[[]]FB::beRX&&F2::bfag+F+FFFFFFHHtOO"&&((S....::beT"">rzz"R&#'>'>>>>FFHHsNNB	AARCu
< 
< 
<B	AARCu:"*
5 
5 
5B JBBJBB;;r2::b>>*****;;r2::b>>*****;;r2::b>>*****
 AAAsB<%2? ? ?B	AAAsB<%2"*
N 
N 
NB[[]]NBB[[]]NBB;;r2;;r2;;r2;;r2::b>>*****	!AqD1a4K1beQrT*Q2qt,<2"
& 
& 
&B 
"AqD1a4K1beQrT*Q2qt,<2":--MM
; 
; 
;B JBBJBB;;r2::b>>*****;;r26""""";;r26"""""	 	Aq1ua!eaAbD\Aq":2"
& 
& 
&B 
!	Aq1ua!eaAbD\Aq":2":--MM
; 
; 
;B BBBBBB;;r2::b>>*****;;r26""""";;r26""""";;r2;;r2rD   c                  F   t           st          d           t          d          \  } }}}}d}t          |           }t	          || ddfd           }t	          || ddfd          }|                    d          t          |          k    sJ |                    d          |t          |          z  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z  k    sJ |                    d          dk    sJ |                    d          dk    sJ |	                    d          t          |          k    sJ |	                    d          |t          |          z  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z  k    sJ |                    d          dk    sJ |                    d          dk    sJ |	                    d          t          |          k    sJ |	                    d          |t          |          z  k    sJ |
                    d          dk    sJ |
                    d          dk    sJ t          | dz  |dz  z             }t          || ddf|ddfd           }t          || ddf|ddfd          }|                    d          t          |          k    sJ |                    d          |t          |          z  k    sJ |                    d          dk    sJ |                    d          dk    sJ t          | |z
            t          | |z             | |z
  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          |          z  k    sJ |                    d          dk    sJ |                    d          dk    sJ t          t          | |z
            d          }t          || ddf|ddfd           }t          || ddf|ddfd          }|                    d          t          |          k    sJ |                    d          |t          |          z  k    sJ |                    d          dk    sJ |                    d          dk    sJ d S )Nr+   r   z$%s$rV   r0   testFT)r   rR   r0   rU   r   r9   r   r-   r.   )r6   r'   r   r	   r   	get_labelr   r   r#   r   r   r   r   r    r   r!   )r9   r:   r   r`   rj   wrapperr   r;   r>   r@   rg   s              rB   test_series_labelsr)    s     %#$$$O,,MAq!QGq66D	taQZ	6	6B	taQZ	8	8B<<#d))++++<<5;;!66666<<&((((<<''''	lllLLL&	9	9B<<&((((<<''''FFCFFD		E	E2qz	E4	E	E	E	E	EB		G	G2qz	G6	G	G	G$	G	GB		F	F2qz	F4	F	F	F	F	FB		H	H2qz	H6	H	H	H%	H	HB<<#%%%%<<3....<<&((((<<''''<<#d))++++<<5;;!66666<<&((((<<''''FFCFFAD		E	E2qz	E4	E	E	E	E	EB		G	G2qz	G6	G	G	G$	G	GB		F	F2qz	F4	F	F	F	F	FB		H	H2qz	H6	H	H	H%	H	HB<<#%%%%<<3....<<&((((<<''''<<#d))++++<<5;;!66666<<&((((<<''''q!tad{D	!$B
QAJ	E	EB	!$B
QAJ	G	GB<<#d))++++<<5;;!66666<<&((((<<''''AJJAE

AE*D	 	E$	EB
	EQAJ	E	E	E	EB	 	G$	GB
	GQAJ	G	G	G	GB<<#d))++++<<5;;!66666<<&((((<<''''c!a%jj!D	q#rlQRL$	?	?B	q#rlQRL&	A	AB<<#d))++++<<5;;!66666<<&((((<<''''''rD   c            	      @   t           st          d           t          d          \  } }t          d| z            }t	          |t          |           z  |t          |           z  | ddt          z  fdddd          }|                                \  }}}t	          |t          |           z  |t          |           z  | ddt          z  fddd	d          }|                                \  }}	}
t                               ||          st                               ||	          rJ t                               ||
          sJ t	          |t          |           z  |t          |           z  | ddt          z  fdddd
           }|                                \  }}}t	          |t          |           z  |t          |           z  | ddt          z  fddd	d           }|                                \  }}}t                               ||          rt                               ||          rJ t                               ||          rt                               ||          sJ t                               ||          rt                               ||	          sJ d S )Nr+   zt ur   r   r0   Fr.   )r2   rH   is_polarr   Tc                     d| z  S r  ru   ts    rB   r   z-test_is_polar_2d_parametric.<locals>.<lambda>@  s
    1Q3 rD   )r2   rH   r+  
color_funcc                     d| z  S r  ru   r-  s    rB   r   z-test_is_polar_2d_parametric.<locals>.<lambda>C  s
    !A# rD   )	r6   r'   r   r   r   r	   r   r7   rX   )r.  r`   rk   r;   r<   r  p1r>   thrl   p2r@   rA   r  p3rg   th4r4p4s                      rB   test_is_polar_2d_parametricr8  )  sk     %#$$$5>>DAq
 	AE

A	CFF
AAJAqt"uU
< 
< 
<BJBB	CFF
AAJAqt"tE
; 
; 
;BIB2B##Abkk"a.@.@AAA;;r2 
 CFF
AAJAqt"u
H 
H 
HBJBB	CFF
AAJAqt"t
G 
G 
GB++--KCR;;r2<B(;(;<<<;;r262;;r2#6#6666;;sB6BKKA$6$666666rD   c                  B   t           st          d           t          d          \  } }}| dz  dz
  dz  }t          || ddf|ddt          z  fddd	          }t          || ddf|ddt          z  fddd
	          }|                                \  }}}|                                \  }	}
}|t                               |          z  |t                               |          z  }}t                               |	|          sJ t                               |
|          sJ d S )Nr+   zx, y, tr0   rR   r   r   r.   F)rH   r2   r+  T)	r6   r'   r   r   r   r7   r	   r   rX   )r9   r:   r.  r   r;   r>   r<   r  r  r?   r  r  x22y22s                 rB   test_is_polar_3dr<  J  s&     %#$$$i  GAq!qD1Hq=D	!$AsaAF^
uu
. 
. 
.B	!$AsaAF^
ut
- 
- 
-BJBBJBBBFF2JJRVVBZZC;;r3;;r3rD   c                     t           st          d           t          d          \  } }}}}t                               ddd          }t                               |          }t          ||d d          }|                                \  }}	}
t                               ||          sJ t                               ||	          sJ t                               d	|z  |
          sJ |j        sJ t          ||d
 d          }t          |                                          d	k    sJ |j        rJ t          t	          |           t          |           | dd	t          z  fddd           }|                                \  }}}
t                               ||
          st                               ||
          rJ t          t	          |           t          |           | dd	t          z  fddd           }|                                \  }}}
t                               |
||z            sJ t          t	          |           t          |           | dd	t          z  fddd           }|                                \  }}}
t                               |
||z  t                               dd	t           j        z  d          z            sJ t          t	          |           t          |           | | dd	t          z  fddd           }|                                \  }}}}
t                               ||
          st                               ||
          rJ t          t	          |           t          |           | | dd	t          z  fddd           }|                                \  }}}}
t                               |
||z  |z            sJ t          t	          |           t          |           | | dd	t          z  fddd           }|                                \  }}}}
t                               |
||z  |z  t                               dd	t           j        z  d          z            sJ t          t	          | d	z  |d	z  z             | dd	f|dd	fdddd           }|                                \  }}}|                    |||          }
t                               ||
          sJ t          t	          | d	z  |d	z  z             | dd	f|dd	fdddd           }|                                \  }}}|                    |||          }
t                               ||z  |
          sJ t          t	          | d	z  |d	z  z             | dd	f|dd	fdddd           }|                                \  }}}|                    |||          }
t                               ||z  |z  |
          sJ t!          d| || ddf|ddfdddd 	  	        }|                                \  }}}}}|                    |||||          }
t                               ||
          sJ t!          d| || ddf|ddfdddd 	  	        }|                                \  }}}}}|                    |||||          }
t                               ||z  |
          sJ t!          d| || ddf|ddfdddd 	  	        }|                                \  }}}}}|                    |||||          }
t                               ||z  |z  |
          sJ t!          d| || ddf|ddfdddd 	  	        }|                                \  }}}}}|                    |||||          }
t                               ||z  |z  |z  |z  |
          sJ t          ddd	| g| d	ddgd | did           }|                                \  }}}
t                               |g d!          sJ t                               |g d"          sJ t                               d	|z  |
          sJ |j        r|j        sJ t          ddd	| g| d	ddgd# | did           }t          |                                          d	k    sJ |j        rJ d S )$Nr+   r   r   rU   r.   c                     d| z  S r  ru   r9   r:   s     rB   r   z!test_color_func.<locals>.<lambda>h  
    a!e rD   T)r/  r   r0   c                     d| z  S r  ru   r?  s     rB   r   z!test_color_func.<locals>.<lambda>o  r@  rD   Fr   c                     | S r   ru   r-  s    rB   r   z!test_color_func.<locals>.<lambda>t      1 rD   r2   rH   r/  c                     | |z  S r   ru   r?  s     rB   r   z!test_color_func.<locals>.<lambda>x  r@  rD   c                     | |z  |z  S r   ru   )r9   r:   r.  s      rB   r   z!test_color_func.<locals>.<lambda>|      Q rD   c                     | S r   ru   r-  s    rB   r   z!test_color_func.<locals>.<lambda>  rC  rD   c                     | |z  |z  S r   ru   r9   r:   r   s      rB   r   z!test_color_func.<locals>.<lambda>  rG  rD   c                     | |z  |z  |z  S r   ru   )r9   r:   r   r.  s       rB   r   z!test_color_func.<locals>.<lambda>  s    AEAIM rD   rV   c                     | S r   ru   r   s    rB   r   z!test_color_func.<locals>.<lambda>      1 rD   r2   rW   r{   r/  c                     | |z  S r   ru   r?  s     rB   r   z!test_color_func.<locals>.<lambda>  s
    a!e rD   c                     | |z  |z  S r   ru   rJ  s      rB   r   z!test_color_func.<locals>.<lambda>  s    Q rD   rR   c                     | S r   ru   r`   s    rB   r   z!test_color_func.<locals>.<lambda>  s    ! rD   c                     | |z  S r   ru   r`   rj   s     rB   r   z!test_color_func.<locals>.<lambda>  s
    a!e rD   c                     | |z  |z  S r   ru   rJ  s      rB   r   z!test_color_func.<locals>.<lambda>  s    Q rD   c                     | |z  |z  |z  |z  S r   ru   )r9   r:   r   r`   rj   s        rB   r   z!test_color_func.<locals>.<lambda>  s    q1uqy1}q7H rD   r   c                     d| z  S r  ru   r?  s     rB   r   z!test_color_func.<locals>.<lambda>  
    A rD   )r/  rS   r   )r   rR   r0   rR   r   c                     d| z  S r  ru   r?  s     rB   r   z!test_color_func.<locals>.<lambda>  rX  rD   )r6   r'   r   r   r	   r#   r7   rX   r   r8   r   r   r   r   r   eval_color_funcr    r   )r9   r:   r   r`   rj   r   rb   r   r   r   colr   r   r   r   s                  rB   test_color_funcr\  ]  s.	     %#$$$O,,MAq!Q 
RB		B
&&**CR););DIIIAJJLLMCc;;r3;;sC     ;;q2vs#####?R););EJJJAqzz||!!!!s1vvs1vv1ad|"	6 	6 	6A**,,KBCB$$Dr{{2s/C/CDDDs1vvs1vv1ad|"););	= 	= 	=A**,,KBC;;sBG$$$$$s1vvs1vv1ad|")B)B	D 	D 	DA**,,KBC;;sBGbkk!QruWb&A&AABBBBBs1vvs1vvq1a2,"	6 	6 	6AjjllOBBB$$Dr{{2s/C/CDDDs1vvs1vvq1a2,")B)B	D 	D 	DAjjllOBB;;sBGbL)))))s1vvs1vvq1a2,")I)I	K 	K 	KAjjllOBB;;sBGbL2;;q!BE'2+F+FFGGGGG QTAqD[!1!1Ar1:2qz2"	> 	> 	>AJBB


BB
'
'C;;r3 QTAqD[!1!1Ar1:2qz2"1C1C	E 	E 	EAJBB


BB
'
'C;;rBw$$$$$ QTAqD[!1!1Ar1:2qz2"1J1J	L 	L 	LAJBB


BB
'
'C;;rBw|S)))))1a!QQ1I"	- 	- 	-ABBB


BBB
/
/C;;r31a!QQ1I"!3!3	5 	5 	5ABBB


BBB
/
/C;;rBw$$$$$1a!QQ1I"!:!:	< 	< 	<ABBB


BBB
/
/C;;rBw|S)))))1a!QQ1I"!H!H	J 	J 	JABBB


BBB
/
/C;;rBw|b(2-s33333 	aAq\Aq!Q<%%q!fT	C 	C 	CA**,,KBC;;r<<<(((((;;r<<<(((((;;q2vs#####?'qx'''aAq\Aq!Q<%%q!fU	D 	D 	DAqzz||!!!!rD   c                     t           st          d           t          d          \  } }t          t	          |           t          |           | ddt          z  fddd           }|                                \  }}}t                               |t           	                    |j
                            sJ t          t	          |           t          |           | | ddt          z  fddd	           }|                                \  }}}}t                               |t           	                    |j
                            sJ t          t	          | dz  |dz  z             | d
df|d
dfdddd           }|                                \  }}}t                               |                    |          t           	                    |j
                            sJ t          d| || ddf|ddfdddd 	  	        }|                                \  }}}}}|                    |||||          }t                               |t           	                    |j
                            sJ d S )Nr+   r,   r   r0   Fr.   c                     dS NrR   ru   r-  s    rB   r   z,test_color_func_scalar_val.<locals>.<lambda>  rC  rD   rD  c                     dS r_  ru   r-  s    rB   r   z,test_color_func_scalar_val.<locals>.<lambda>  rC  rD   rV   c                     dS r_  ru   r   s    rB   r   z,test_color_func_scalar_val.<locals>.<lambda>  rM  rD   rN  rR   c                     dS r_  ru   rR  s    rB   r   z,test_color_func_scalar_val.<locals>.<lambda>  s    1 rD   )r6   r'   r   r   r	   r   r   r7   rX   r   r   r   r   rZ  r    )	r9   r:   r   r   r   r[  r   r   r   s	            rB   test_color_func_scalar_valrc    s:     %#$$$6??DAqs1vvs1vv1ad|"	6 	6 	6A**,,KBC;;sBGGBH--.....s1vvs1vvq1a2,"	6 	6 	6AjjllOBB;;sBGGBH--..... QTAqD[!1!1Ar1:2qz2"	> 	> 	>AJBB;;q((,,bggbh.?.?@@@@@1a!QQ1I"	. 	. 	.ABBB


BBB
/
/C;;sBGGBH--.......rD   c            
         t           st          d           t          d          \  } t          t	                    t                    ddt          z  ft                    ddd          }t          t	                    t                    ddt          z  fd	 ddd          }|                                }t          |j	                  sJ |                                }t           
                    |d
         |d
                   rJ t          t	          dz  | dz  z             t           t          f| t           t          ft          dz  | dz  z             ddd          }|                                 t          |j	                  sJ g dg dt          t          fd           d S )Nr+   r,   r   r0   Fr.   T)r/  r2   rH   r   c                 6    t                               |           S r   r6   r	   r   s    rB   r   z,test_color_func_expression.<locals>.<lambda>  s    RVVAYY rD   r   r4   )r/  r2   rW   r{   )rR   r0   rU   r   r4   c                  D    t          dt                               S )NT)r   r/  )r#   r   )r9   r   r   s   rB   r   z,test_color_func_expression.<locals>.<lambda>  s    b"Tc!ffEEE rD   )r6   r'   r   r   r	   r   r   r7   callabler/  rX   r   r$   r  )	r:   r;   r>   r   r   r   r9   r   r   s	         @@@rB   test_color_func_expressionri    s     %#$$$6??DAq	AAAqtq66ER
> 
> 
>B	AAAqt&&"T
K 
K 
KB 
BBM"""""	B{{2b62b6***** QTAqD[!1!1AsB<!bS"q!tad{##ea	A 	A 	AA JJLLLAL!!!!!	B	B
9EEEEEEG G G G GrD   c                     t          d          \  } }}t          t          |           | ddfddd           }|j        t	          |j                  sJ t          t          |           t          |           | dd	t          z  fddd
           }|j        t	          |j                  sJ t          t          | d	z  |d	z  z             | dd	f|dd	fddd           }|j
        t	          |j                  sJ d S )Nr   r}   r4   Fr.   c                     | S r   ru   r   s    rB   r   z)test_line_surface_color.<locals>.<lambda>  s    Q rD   )r2   rH   
line_colorr   r0   c                     | S r   ru   r-  s    rB   r   z)test_line_surface_color.<locals>.<lambda>	  rC  rD   rV   c                     | S r   ru   r   s    rB   r   z)test_line_surface_color.<locals>.<lambda>  s    a rD   )rW   r{   surface_color)r   r   r   rl  rh  r/  r   r	   r   r   ro  )r9   r:   r   r   s       rB   test_line_surface_colorrp    s   
 i  GAq!c!ffq"aj5B;	  	  	 AL hq|&<&<   s1vvs1vv1ad|"	6 	6 	6AL hq|&<&<    QTAqD[!1!1Ar1:2qz"KK	1 	1 	1AO#!,)?)?#####rD   c            
         t           st          d           t          d          \  } }}d }t          |           t	          | dz             z  }t          || z            t	          | dz             z  }t          t          |          | ddfdd	          }t          t          |          | ddfdd|d
i          }|                                }|                                }	 |||	           t                               |d
         d          s!t                               |	d
         d          rJ t          t          |          t          |          | t           t          fdd	          }t          t          |          t          |          | t           t          fdd|d
i          }|                                }|                                }	 |||	           t                               |d
         d          s!t                               |	d
         d          rJ t          t          |          | ddf|ddfddd          }t          t          |          | ddf|ddfddd|d
i          }|                                }|                                }	 |||	           t                               |d
         d          s!t                               |	d
         d          rJ d S )Nr+   zx y uc                     t          |           t          |          k    sJ t          | |          D ]"\  }}t                              ||          sJ #d S r   r   r   s       rB   r   z,test_complex_adaptive_false.<locals>.do_test  r   rD   r0   r}   r4   Fr.   r~   rR   r2   rH   rS   r   r-   rs   rU   r   )r2   rW   r{   rS   )r6   r'   r   r   r   r   r   r7   rX   r   r   r   r   )
r9   r:   r`   r   expr1expr2r;   r>   r   r   s
             rB   test_complex_adaptive_falserv    s     %#$$$gGAq!' ' '
 GGc1a4%jj EQKK#q!te**$E	r%yy1b!*u	K	K	KB	r%yy1b!*"aV
- 
- 
-BKKMMEKKMMEGE5E!Ha((L2;;uQx3K3KLLL	5		2e99q2#rl"
 
 
B	5		2e99q2#rl"aV
- 
- 
-BKKMMEKKMMEGE5E!Ha((L2;;uQx3K3KLLL	!"U))aQZ!S"2!
% 
% 
%B	!"U))aQZ!S"2!QF
4 
4 
4BKKMMEKKMMEGE5E!Ha((L2;;uQx3K3KLLLLLrD   c            
         t           st          d           d } t          | ddd          }|                                 t          | ddd	          }|                                 |j        |j        cxk    rd
k    sn J d }d }t          ||dddt          z  fdd          }|                                 t          ||dddt          z  fdd	          }|                                 |j        |j        cxk    rd
k    sn J d }t          |||dddt          z  fdd          }|                                 t          |||dddt          z  fdd	          }|                                 |j        |j        cxk    rd
k    sn J d } t          | ddddd          }|                                 t          | ddddd          }|                                 |j        |j        cxk    rd
k    sn J d }d }d }t          |||ddt          fdddt          z  fddd          }|                                 |j        d
k    sJ t          t          d            t          t          d            d S )Nr+   c                 6    t                               |           S r   rf  r   s    rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>C  s    "&&)) rD   r9   r}   r4   TrU   r1   Fr.   r~   r/   c                 6    t                               |           S r   rf  r   s    rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>J      266!99 rD   c                 6    t                               |           S r   r6   r   r   s    rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>K  r{  rD   r9   r   r0   皙?r2   adaptive_goalc                     | S r   ru   r   s    rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>T  s    1 rD   c                 H    t                               | dz  |dz  z             S r  rf  r?  s     rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>]  s    RVVAqD1a4K(( rD   )arV   r0   )br   rU   r   c                 <    t                               | |z             S r   rf  rT  s     rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>f      bffQUmm rD   c                 <    t                               | |z
            S r   r}  rT  s     rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>g  r  rD   c                     | |z  S r   ru   rT  s     rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>h  s
    a!e rD   r`   rj   c                  &    t          d d           S )Nc                     | S r   ru   r-  s    rB   r   z@test_expr_is_lambda_function.<locals>.<lambda>.<locals>.<lambda>n  s    Q rD   c                     | S r   ru   r-  s    rB   r   z@test_expr_is_lambda_function.<locals>.<lambda>.<locals>.<lambda>n  s    ! rD   r   ru   rD   rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>n  s    l;;DD rD   c                  &    t          d dd          S )Nc                 6    t                               |           S r   r}  r-  s    rB   r   z@test_expr_is_lambda_function.<locals>.<lambda>.<locals>.<lambda>o  s    q		 rD   ry  )r:   ir   )r!   ru   rD   rB   r   z.test_expr_is_lambda_function.<locals>.<lambda>o  s    ~.A.Al $  $ rD   )r6   r'   r   r7   labelr   r   r   r   r   r    r$   r  )rk   r;   r>   fxfyfzs         rB   test_expr_is_lambda_functionr  <  s	     %#$$$A	q,Q	G	G	GBKKMMM	q,"	E	E	EBKKMMM8rx%%%%2%%%%%%		B		B	Ba2S
* 
* 
*BKKMMM	Ba2"
 
 
BKKMMM8rx%%%%2%%%%%%	B	BS!QrTNS
* 
* 
*BKKMMM	BS!QrTN"
 
 
BKKMMM8rx%%%%2%%%%%%((A	!!\<2"
& 
& 
&BKKMMM	q,2"
& 
& 
&BKKMMM8rx%%%%2%%%%%%	#	#B	#	#B		B	 Rc1b\CAbD>2"
& 
& 
&BKKMMM8r>>>>
9DDEEE
9 $ $ % % % % %rD   c                     t          d          \  } }t          t          |           | ddfdd          }|j        sJ 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          |           t          |           | | dd	fdd          }|j        sJ t          t          |           t          |           | | dd	fdd          }|j        rJ d S )
NrF   rV   r0   r&  T)show_in_legendFr   rR   )r   r   r	   r  r   r   r   r   s      rB   test_show_in_legend_linesr  s  s}   6??DAqc!ffq"aj&NNNAc!ffq"aj&OOOAs1vvs1vv1ay&	 	 	As1vvs1vv1ay&	 	 	As1vvs1vvq1a)V	 	 	As1vvs1vvq1a)V	 	 	ArD   c                     t           st          d           d } t          d          }t          d          dz  }d}|dz  |dz  z   t          d          dz  z  |dz  |dz  z
  t          d          dz  z  z
  }t	          ||z
            |z
  }t          |g|          }t          ||dd	fd
dd          }t          |dd
dd          } | ||           d S )Nr+   c                    t          t          dd          5  |                                 }|                                }t          ||          D ]"\  }}t                              ||          sJ #	 d d d            d S # 1 swxY w Y   d S )Nz)invalid value encountered in scalar powerFrM   )r%   r_   r7   r   r6   rX   r  r  r   r   r.  rj   s         rB   r   z:test_particular_case_1_with_adaptive_true.<locals>.do_test  s    =!
 
 
 	) 	)
 BBB ) )1{{1a(((((()	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   ABB	BrH   r0   rU   rJ   rR   r-   r.   r/   Tr1   rH   r-   r.   r6   r'   r   r   r   r   r   )	r   rH   r  epsilonxnr   	math_funcr;   r>   s	            rB   )test_particular_case_1_with_adaptive_truer    s     %#$$$	) 	) 	) 	A	!qAG
Q$A+1a	 AqD1a4K1Q446#:	:BrAv;; D!d##I	tab\2Q
  
  
 B	y."Q
  
  
 BGBOOOOOrD   c                     t           st          d           d } t          d          }t          d          dz  }d}|dz  |dz  z   t          d          dz  z  |dz  |dz  z
  t          d          dz  z  z
  }t	          ||z
            |z
  }t          |g|          }t          ||dd	fd
dd	          }t          |dd
dd	          } | ||           d S )Nr+   c                     |                                  }|                                 }t          ||          D ]"\  }}t                              ||          sJ #d S r   )r7   r   r6   rX   r  s         rB   r   z;test_particular_case_1_with_adaptive_false.<locals>.do_test  s^    ZZ\\ZZ\\BKK 	% 	%DAq;;q!$$$$$$	% 	%rD   rH   r0   rU   rJ   rR   r-   r.   r/   Fr~   r  r  )	r   rH   r  r  r  r   r  r@   rg   s	            rB   *test_particular_case_1_with_adaptive_falser    s   
  %#$$$% % % 	A	!qAG
Q$A+1a	 AqD1a4K1Q446#:	:BrAv;; D!d##I	tab\2"
 
 
B	y.""
 
 
BGBOOOOOrD   c            
         t           st          d           t          d          \  } }}}} t          d          |          }|                    |d          d| z  |z  |                    |          z  z   |dz  |z  z   }t          |||                    |d          ||                    |                              |d          |i          }|d| d|d	|d
i}t          |j        |ddfdd|          }	|		                                \  }}
t           
                    |                                          rJ t           
                    |
                                          rJ t          d          \  }}}}t          d          dz  dt          z  t          t          d|z  t          z  |z  |z            |z  |d|f          z  z
  }|d|di}t          ||ddfdd|          }	|		                                \  }}
t           
                    |                                          rJ t           
                    |
                                          rJ d S )Nr+   zxi, omega_n, x0, v0, tr9   r0   r   )ics      ?g      ?g?g        d   Fr4   rs  z
x, T, n, mrR   r   r.   )r6   r'   r   r   diffr   r^   r   rhsr7   rZ   rY   r   r   r   r   )xiwnx0v0r.  r9   eqsolrS   r   r:   TrH   mfss                  rB   test_complex_params_number_evalr    sJ     %#$$$ 899BBAaA	
1BaffQii/	/"a%!)	;B
QQVVAq\\2qvvayy~~a/C/CRH
I
I
IC
C
D
D
C	F 	cg1c{Ua	 	 	A::<<DAqxx{{     xx{{      &&JAq!Q	
1QVs3q1urzA~'9#:#:Q#>Aq	JJJ	JB	3	1F 	b1a*u	 	 	A::<<DAqxx{{     xx{{       rD   c                  N   t           st          d           t          d          \  } }t          t	          |           t          | dz             z            }t          t	          || z            t          | dz             z            }t          || ddfdd          }t          || ddfd	d
          }t          || ddfd	d
|di          }t          t                    5  |	                                }d d d            n# 1 swxY w Y   |	                                }|	                                }	t           
                    |d                                                   rJ t           
                    |d                                                   rJ t           
                    |	d                                                   rJ t                               |d         |	d                   r't                               |d         |	d                   sJ d S )Nr+   rF   r0   r-   r.   Tr~  r  Frs   r~   rR   rs  r   )r6   r'   r   r   r   r   r   r(   r_   r7   rZ   rY   rX   )
r9   r`   rt  ru  r;   r>   r@   r   r   data3s
             rB   test_complex_range_line_plot_1r    s%     %#$$$6??DAqtAwwadU#$$EtAE{{S!Q$ZZ'((E	uq#rlT
 
 
B	uq#rlUb	I	I	IB	uq#rlUb1v
 
 
B 
	(	(                KKMMEKKMMExxa!!%%'''''xxa!!%%'''''xxa!!%%''''';;uQxq**Nr{{58U1X/N/NNNNNNs   %DD
D
c                     t           st          d           t          d          \  } }t          t	          t          |                     | ddfd          }t          t	          t          |                     | ddfdd	          }t          t          d
d          5  |                                }|                                }|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 	 d d d            d S # 1 swxY w Y   d S )Nr+   rF   y             y      @       Tr5   Fr.   r~   z!invalid value encountered in sqrtrM   r   r   rR   )
r6   r'   r   r   r\   r   r%   r_   r7   rX   )
r9   r`   r;   r>   r   r   ra   rc   rb   rd   s
             rB   test_complex_range_line_plot_2r    s   
  %#$$$
 6??DAq
 
s477||a-=	M	M	MB	s477||a-=

 
 
B	5!

 

 

 % %
 [[]][[]]!uQxAr#!uQxAr#!uQxAr#!uQxAr#{{3$$$$${{3$$$$$$% % % % % % % % % % % % % % % % % %s   CF  FFc                  @   t           st          d           t          d          } t          t	          |           t          | dz             z            }t          || ddfddd          }t          || ddfddd          }|                                }t          t                    5  |                                }d d d            n# 1 swxY w Y   t           
                    |d	         d
          rJ t           
                    |d	         d
          sJ d S )Nr+   r9   r0   r-   r.   F)r2   rH   r   TrR   r   )r6   r'   r   r   r   r   r   r7   r(   r_   rX   )r9   r   r;   r>   r   r   s         rB   test_force_real_evalr  2  sS     %#$$$Ad1ggQTE

"##D	tab\ER
 
 
B	tab\ER
 
 
B	B		(	(  [[]]              {{2a5!$$$$$;;r!ua       s   ,CCCc                  R   t          d          \  } }t          t          | |z            | ddf|ddf          }|j        sJ t          t          | |z            | ddf|ddfd          }|j        sJ t          t          | |z            | ddf|ddfd          }|j        rJ d S )Nr,   rV   r0   T)clabelsF)r   r   r	   show_clabels)r9   r:   r   s      rB    test_contour_series_show_clabelsr  F  s     6??DAqc!A#hhB
QAJ77A>c!A#hhB
QAJEEEA>c!A#hhB
QAJFFFA~rD   c                       t          d           t          t                      ddf           t          t                      ddf           t          t           fd           d S )Nr9   r-   r.         $       y      $@       c                  D    t          t                      ddf          S )Nr  y      $@       @)r   r   r   s   rB   r   z:test_LineOver1DRangeSeries_complex_range.<locals>.<lambda>^  s    &tAwwFE0BCC rD   )r   r   r   r$   r   r   s   @rB   (test_LineOver1DRangeSeries_complex_ranger  U  sx     	A$q''AsB<000$q''Avu#5666
:CCCCE E E E ErD   c                     t           st          d           t          d          \  } d }t          t	                    ddfdd          }t          t	                    fddidd	          } |||d
di           t          t          fd           t          t                    t	                    ddfdd          }t          t                    t	                    fddidd	          } |||d
di           t          t          fd           t          t                    t	                    ddfdd          }t          t                    t	                    fddidd	          } |||d
di           t          t          fd           t          t          dz  dz  z             t           t          ft           t          fddd          }t          t          dz  dz  z             t           z  t          z  ft           z  t          z  fddiddd          } |||d
di           t          t          fd           t          t          fd           t          t          z
            t	          z             z
  ddfddfdd          }t          t          z
            t	          z             z
  dz  dfddz  fddidd          } |||d
di           t          t          fd           d S )Nr+   zx, y, z, a, bc                 X   |                                  }|                                 }t          ||          D ]"\  }}t                              ||          sJ #||_        |                                 }t          ||          D ]"\  }}t                              ||          rJ #d S r   )r7   r   r6   rX   rS   )r;   r>   
new_paramsr   r   r`   rj   s          rB   r   z.test_symbolic_plotting_ranges.<locals>.do_testh  s    [[]][[]]BKK 	% 	%DAq;;q!$$$$$$	[[]]BKK 	) 	)DAq{{1a((((((	) 	)rD   r   rR   Fr.   r~   rS   r2   rH   r  r   c                  N    t          t                     f did          S )NrR   r.   r   )r   r   r  r  r9   s   rB   r   z/test_symbolic_plotting_ranges.<locals>.<lambda>y  s)    &s1vv1ay!Q2NNN rD   c                  l    t          t                    t                     f didd          S Nr   Fr.   r  )r   r	   r   r  s   rB   r   z/test_symbolic_plotting_ranges.<locals>.<lambda>  s:    'AAAq	q6ER1 1 1 rD   c            	      n    t          t                    t                     f didd          S r  )r   r	   r   r  s   rB   r   z/test_symbolic_plotting_ranges.<locals>.<lambda>  s<    'AAAq!9q6ER1 1 1 rD   r0   r4   r   rS   r2   rW   r{   c            	          t          t          dz  dz  z             t            z  t           z  ft           z  t          z  f diddd          S Nr0   rR   Fr4   r  r   r	   r   r  r  r9   r:   s   rB   r   z/test_symbolic_plotting_ranges.<locals>.<lambda>  sa    )#adQTk*:*:	
RC!GR!Vq2#'262Aq61$ $ $ rD   c            	          t          t          dz  dz  z             t            z  z   t           z  ft           z  t          z  f diddd          S r  r  r  s   rB   r   z/test_symbolic_plotting_ranges.<locals>.<lambda>  se    )#adQTk*:*:	
RC!GaKa 1rcAgrAv"61v1$ $ $ rD   rV   rz   r   c            
          t          t          z
            t          z             z
  d z  dfddz  f didd          S )NrV   r0   rR   r4   r   )r    r	   r   r  s   rB   r   z/test_symbolic_plotting_ranges.<locals>.<lambda>  sY    (AE

CAJJA261~2q1u~1v!# # # rD   )r6   r'   r   r   r   r$   r   r   r	   r   r   r   r    )r   r   r;   r>   r  r  r9   r:   s       @@@@rB   test_symbolic_plotting_rangesr  a  s    %#$$$O,,MAq!Q) ) ) 
s1vv1ay5B	G	G	GB	s1vv1ay!Q1"
 
 
BGBQQ$%%% :NNNNNNP P P 
 AAAq	ER	P	P	PB	AAAq	1aA,"
 
 
BGBQQ$%%% :	1 	1 	1 	1 	1 	12 2 2 
 AAAq!9"
 
 
B	AAAq!91a|er
3 
3 
3BGBQQ$%%% :	1 	1 	1 	1 	1 	12 2 2 
"#adQTk"2"2QRL1rc2,1
$ 
$ 
$B	!#adQTk"2"2Qaa4H	
RC!GR!VaAq\1
$ 
$ 
$B GBQQ$%%% :	$ 	$ 	$ 	$ 	$ 	$ 	$% % %
 :	$ 	$ 	$ 	$ 	$ 	$ 	$% % %
 
!AE

CAJJA2qzAr1:!
K 
K 
KB	 AE

CAJJA261~2q1u~1a|a
) 
) 
)B GBQQ$%%% :	# 	# 	# 	# 	# 	# 	#$ $ $ $ $rD   c                     t           st          d           t          d          } t          |           t          j        z   d| t          j        z
  dz  z
  z  }t          t          dd          5  t          || dd	fdd
t          t          dd                              }|                                \  }}t                               |                                          rJ t                               t                               |                    dk    sJ t          |          d
k    sJ 	 d d d            n# 1 swxY w Y   t!          t          |                     t#          |           z  }t!          t          |                     t%          |           z  }t          t          dd          5  t'          ||| ddfdd
t          t          dd                              }|                                \  }}}t                               |                                          rJ t                               t                               |                    dk    sJ t                               t                               |                    dk    sJ t          |          d
k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr+   r9   rR   r0   z5NumPy is unable to evaluate with complex numbers someFrM   r   r   r  r   r   )r2   rH   excluder         r   )r6   r'   r   r   r   Halfr%   r]   r   listranger7   rZ   rY   count_nonzeror8   r   r	   r   r   )r9   r   r   r   r   e1e2pps           rB   test_exclude_pointsr    s    %#$$$A!HHqv!q16zAo"56D	I!

 

 

 
 

 "$D##r1&&( ( (B88B<<##%%%%%--22222ww}}}}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
U1XXQ	B	U1XXQ	B	I!

 

 

  
 #2rAq":q"&&( ( (ZZ\\
B88B<<##%%%%%--3333--33332ww}}}}}                 s&   /CEEE;C?KKKc            	      ,   t           st          d           t          d          \  } }d| dz  d| dz  z  z   | z   z  }t          |                    | t
          |z  dz  t          z                      }t          ||ddfdd	d
d	          }t          ||ddfdd	d
d          }t          ||ddfdd	d
ddi          }|                                \  }}|                                \  }}	|                                \  }
}t           	                    ||          sJ t          d ||	|fD                       sJ t           	                    ||	          rJ t           	                    ||          rJ t           	                    |	|          rJ d S )Nr+   r,   rR   rU   r0   gh㈵>g     j@r   Fr.   )r   r2   rH   unwrapTperiodr   c              3   p   K   | ]1}t                               |                                           V  2d S r   )r6   rZ   rY   )rw   r.  s     rB   ry   ztest_unwrap.<locals>.<genexpr>  s9      ;;288A;;??$$$;;;;;;rD   )r6   r'   r   r   r^   r   r   r   r7   rX   r   )r9   r:   r   r;   r>   r@   r<   r  r?   r  rA   r  s               rB   test_unwrapr    s    %#$$$6??DAq1qAv!"DtyyAaCE"H%%&&D	ta%5e"U
, 
, 
,B	ta%5e"T
+ 
+ 
+B	ta%5e"h]
4 
4 
4B[[]]FB[[]]FB[[]]FB;;r2;;r2rl;;;;;;;;{{2r"""""{{2r"""""{{2r"""""""rD   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(   r6   rC   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r$  r)  r8  r<  r\  rc  ri  rp  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  ru   rD   rB   <module>r     s                                                   
 ) ( ( ( ( (                     
 M L L L L L L L L L L L L L]7' ' ':m# m# m#`Q Q Q8  ,' ' 'TCF CF CFL, , ,:H H HVLN LN LN^", ", ",J  ) ) )X<* <* <*~' ' 'B% % %8F` F` F`R$ $ $N" " "6"0 "0 "0JX X XvH( H( H(V7 7 7B     &a a aH/ / /<G G G<@ @ @((M (M (MV4% 4% 4%n     0   @  8*! *! *!ZO O O6 % % %B! ! !(  	E 	E 	EL$ L$ L$^" " "J# # # # #rD   