o
    re6z                     @   s  d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlm	Z	m
Z
mZ d dlZd dlmZmZmZ d dlmZmZ d dlmZ d dlmZmZ d dlZdd Zd	d
 Zdd Zej de!de!de"dfdfe!de!de"dfdfe"de!de"dfdfe!de"de"dfdfe"de"de"dfdfe"de"de"dfdfe"de"de"dfdfe"de"de"dfdfd ggfdfd gd gd ggfdfg
dd Z#dd  Z$d!d" Z%ed#gd$d%d& Z&ej d'd(d)ged*gd)d+d,d-d.d/ Z'ej d'd(d)ged0gd)d1d2d3 Z(ej d'd(d)ged4gd+d(d5d6d7 Z)ej d'd(d)ged8gd+d9d:d; Z*ej d'd(d)ged<gd)d+d=d-d>d? Z+d@dA Z,ej d'd(d)gedBdCgd)dDdEdFdG Z-dHdI Z.dJdK Z/dLdM Z0ej dNg dOdPdQ Z1ej d'd(d)gedRgd)d+dSd-dTdU Z2ej d'd(d)gedVgd)d+e3 dWv rdXndYd-dZd[ Z4ej d'd(d)ged\gd#gd)d+d]d^d_ Z5ej d`g dadbdc Z6ej7dddedf Z8ej d'd(d)gedggd#gd)dhdidj Z9dkdl Z:ej d'd(d)gedmgd#gd)dndodpdq Z;ej d'd(d)gedrgd#gd)dhdsdt Z<dudv Z=dwdx Z>ej?@dydzd{ ZAd|d} ZBd~d ZCej ddejDfdejEfdejFfdejGfdgdd ZHej dg ddd ZIej d'd(d)gedgd#gd)ddodd ZJdd ZKej dg ddd ZLej dg ddd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdS )    N)mock)assert_array_almost_equalassert_array_almost_equal_nulpassert_array_equal)pyplot
rc_contextticker)LogNorm
same_color)check_figures_equalimage_comparisonc                 C   s|   | sd S t tjt D ]/}|jD ])}|jD ]#}t|tjj	r9t
tjj |j W d    n1 s4w   Y  qqqd S N)mappltfigureZget_fignumsZaxescollections
isinstancemplcontour
ContourSetpytestwarns_apiMatplotlibDeprecationWarning)Zdo_splitfigaxZcoll r   MD:\Projects\ConvertPro\env\Lib\site-packages\matplotlib/tests/test_contour.py_maybe_split_collections   s   

r   c                  C   s>   t d} t d}t jd}t \}}|| || d S N
   	   r!   r    )nparangerandomr   subplotsr   )xyzr   r   r   r   r   test_contour_shape_1d_valid   s
   

r*   c                  C   sN   t d} t d}t | |\}}t jd}t \}}|||| d S r   )r#   r$   meshgridr%   r   r&   r   )r'   r(   ZxgZygr)   r   r   r   r   r   test_contour_shape_2d_valid)   s   

r,   zargs, messager!   r"   z6Length of x (9) must match number of columns in z (10)r    z3Length of y (10) must match number of rows in z (9))r    r    z4Number of dimensions of x (2) and y (1) do not matchz4Number of dimensions of x (1) and y (2) do not matchr!   r!   z-Shapes of x (9, 9) and z (9, 10) do not matchz-Shapes of y (9, 9) and z (9, 10) do not match)   r.   r.   z'Inputs x and y must be 1D or 2D, not 3DzInput z must be 2D, not 3DzDInput z must be at least a (2, 2) shaped array, but has shape (1, 1)c                 C   sP   t  \}}tjtt|d |j|   W d    d S 1 s!w   Y  d S )Nmatch)r   r&   r   raises	TypeErrorreescaper   )argsmessager   r   r   r   r   test_contour_shape_error4   s   "r7   c                  C   sf   t  \} }|jtjddg d |jtdddgd}|j|ddid |t	d d S )Nr!   levelsQ   r-   d   z%1.2f)fmt)
r   r&   r   r#   r%   randr$   reshapeclabelZones)r   r   csr   r   r   test_contour_no_valid_levelsP   s
   rA   c                  C   s`   t dd} t \}}|| d}t|jdksJ |j| dd}|j|jk s.J d S )N   r.            r8   )	r#   r$   r>   r   r&   r   lenr9   all)r)   r   r   Zcs1Zcs2r   r   r   test_contour_Nlevels\   s   rI   Zpng)
extensionsc                 C   sF   |   ddgddgg}|  ddgddgg}||  d S )Nr   rF      )r&   r   Z	set_paths	get_paths)Zfig_testZfig_refZcs_testZcs_refr   r   r   test_contour_set_pathsg   s   rM   split_collectionsFTZcontour_manual_labelsZmpl20gp=
ף?)remove_textstyletolc                 C   s   t t ddt dd\}}t t t|t|gd}tjddd t|||}t 	g d}tj
||d t 	g d	}tj
||d
dd t|  d S )Nr   r    rK   )   rK      )figsizedpi))      ?      @)rV   皙@)rV         @)manual))       @rW   )r[   rX   )r[   rY   Zsmall)rg)rZ   fontsizecolors)r#   r+   r$   maxdstackabsr   r   r   arrayr?   r   )rN   r'   r(   r)   r@   Zptsr   r   r   test_contour_manual_labelso   s    rd   z$contour_manual_colors_and_levels.png)rO   c                 C   s   dt jd< t dd\}}tddd}g d}g d}t|jD ]F\}}|d d	k}g d
|d  }	|rU|	dv r=dnd }
|	dv rEdnd }|j|||
| ||	d}n|j	||d d ||	d}t j
||d q#t|  d S )NFpcolormesh.snaprK   rD   rB   r.   )redyellowZpinkblueblack)rK   rD      r            )neitherminr`   both)r`   rl   rF   )rm   rl   )r_   r9   extendr   )r   rcParamsr&   r#   r$   r>   	enumerateZflatcontourfr   colorbarr   )rN   _axsdatar_   r9   ir   filledrp   Zfirst_colorZ
last_colorcr   r   r   $test_given_colors_levels_and_extends   s&   
r|   zcontour_log_locator.svg)rP   rO   c              	   C   s   t  \}}d}tdd|}tdd|}t||\}}t|d  |d  }t|d d  |d d  }	|d|	  }
|j|
t d	}t	|j
td
tdd |j||d}t	|j |j
 t|  d S )Nr;         rW          r[   rK   r    2   locator      $@ir.   rq   )r   r&   r#   linspacer+   exprt   r   Z
LogLocatorr   r9   powerr$   ru   r   Z
get_yticksr   )rN   r   r   Nr'   r(   XYZ1Z2rx   r{   cbr   r   r   test_log_locator_levels   s    r   zcontour_datetime_axis.png)rP   c           	         s@  t  }|jdddd tddd t fddtd	D }td	}ttd	td	\}}|| }t 	d
 t 
||| t 	d t ||| tj|tj d	dd}tj|d d tjf d	dd}t 	d t 
||| t 	d t ||| | D ]}| D ]}|d |d qqt|  d S )Ng?g\(\?333333?)Zhspacetopbottomi  rF   c                    s   g | ]
} t j|d  qS ))days)datetime	timedelta).0dbaser   r   
<listcomp>   s    z.test_contour_datetime_axis.<locals>.<listcomp>         r   )Zaxis      right   )r   r   subplots_adjustr   r#   rc   ranger$   r+   Zsubplotr   rt   repeatZnewaxisZget_axesZget_xticklabelsZset_haZset_rotationr   )	rN   r   r'   r(   Zz1Zz2r)   r   labelr   r   r   test_contour_datetime_axis   s.   





r   z!contour_test_label_transforms.pngg?c                 C   s"  d}t dd|}t dd|}t ||\}}t |d |d   d dt j  }t |d d d |d d	 d   d dt j d	 d  }d
||  }tdd\}	}
|
|||}g d}g d}|  |D ]\}}|j	||dd d qm|D ]\}}|j	||ddd q}t
|  d S )N皙?r}   rW   r~   r[   rK   rF   g      ?      ?r   ))      )ig  i"  )i	  i  ))r   )r   g      )gffffff@rF   T)inline	transformF)r#   r$   r+   r   pir   r&   r   r?   Zadd_label_nearr   )rN   deltar'   r(   r   r   r   r   Zr   r   CSZ
disp_unitsZ
data_unitsr   r   r   test_labels   s&   &*r   c            
      C   s  t jdd\} }ttj d tjd d }}t||\}}dtd| d  td|  }dtd|  td| d d  }|| }||||}t	j
j|d	|jd
}|jdd W d    n1 slw   Y  dd |jD }	d|	v sJ d S )Nr;   )rU   rK   r   g      ?rj   rD   r   "_split_path_and_get_label_rotation)wrapsr!   )r^   c                 S   s   g | ]}|d  d qS )r   rF   r   )r   Zcargsr   r   r   r     s    z,test_label_contour_start.<locals>.<listcomp>r   )r   r&   r#   r   r   r+   sincosr   r   patchobjectr   r?   Zcall_args_list)
rv   r   ZlatsZlonswavemeanrx   r@   Zmocked_splitterZidxsr   r   r   test_label_contour_start   s     $(r   zcontour_corner_mask_False.pngzcontour_corner_mask_True.pnggGz?)rO   rQ   c           	      C   s   d}d}d}t jdg t t dd|t dd|\}}t d| t d|  |t j||  }t j|||k}t jj	||d	}d
D ]}t
  t
j||d qIt|  d S )N<   ffffff?rV   rF   r   r[      rj   mask)FTcorner_mask)r#   r%   seedr+   r   r   r   r=   marc   r   r   rt   r   )	rN   nZ
mask_levelZ	noise_ampr'   r(   r)   r   r   r   r   r   test_corner_mask  s   $.r   c                  C   sX   ddgddgg} t   tt t | ddg W d    d S 1 s%w   Y  d S )Ng?g333333?r   ffffff?rV   rk   )r   r   r   r1   
ValueErrorrt   )r)   r   r   r   test_contourf_decreasing_levels#  s
   "r   c                  C   sF   t dd} tjddd}tj| |d}t|jt ddd d S )	NrB   rC   rD   T)ZnbinsZ	symmetricr   irE   )	r#   r$   r>   r   ZMaxNLocatorrt   r   r9   r   )r)   r   r@   r   r   r   test_contourf_symmetric_locator+  s   r   c                  C   sT   t t dddt ddd\} }t | |}t  t| ||}t| d S )Nr   rK   rD   )r#   r+   r   hypotr   r   r   r?   )r'   r(   r\   r@   r   r   r   test_circular_contour_warning3  s
   $r   z-use_clabeltext, contour_zorder, clabel_zorder))T{     )Fr   r   )Tr   N)Fr   Nc                 C   s   t t ddt dd\}}t t t|t|gd}tjdd\}\}}|j||||d}	|j	||||d}
|	j
|| d}|
j
|| d}|d u rRd| }n|}|D ]
}| |ks`J qV|D ]
}| |ksmJ qcd S )Nr   r    rK   )ncols)zorder)r   use_clabeltext)r#   r+   r$   r`   ra   rb   r   r&   r   rt   r?   Z
get_zorder)r   Zcontour_zorderZclabel_zorderr'   r(   r)   r   ax1ax2r@   Z	cs_filledZclabels1Zclabels2Zexpected_clabel_zorderr?   r   r   r   test_clabel_zorder<  s"    
r   zcontour_log_extension.pnggv?c                 C   s,  dt jd< t jdddd\}\}}}|jddd	 td
dd}td|dd}tdd}td|}|j	|t
| | dd}	|j	||t
| | ddd}
|j	||t
| | ddd}t j|	|d}|j dkswJ t j|
|d}t|j td t j||d}t|  d S )NFre   rF   r.   )r    rE   rT   g?r   )leftr   g      g      #@i  r    r   (   g      g      @r   )ZvminZvmax)normrl   )r9   r   rp   rn   rq   )g:0yE>g    _B)-C6?g    .A)r   rr   r&   r   r#   r   r   r>   r$   rt   r	   rm   r`   ru   r   get_ylimr   rc   r   )rN   r   r   r   ax3Zdata_exprx   Z
levels_expr9   c1c2c3r   r   r   r   test_contourf_log_extensionX  s0   
r   zcontour_addlines.png)aarch64ppc64les390xr   gQ?c                 C   s   dt jd< t  \}}tjd tjddd }||}||d }|	|}|
| t|j ddgd	 t|  d S )
NFre   i,N,r    i'  i  gd]Kȓ\@g6>W'z@r.   )r   rr   r&   r#   r%   r   r=   Z
pcolormeshr   ru   	add_linesr   r   r   r   )rN   r   r   r   Zpcmcontr   r   r   r   test_contour_addlines  s   
	


r   Zcontour_uneven)baseline_imagesrJ   rO   rP   c                 C   s   dt jd< tddd}t dd\}}|d }|j|g d	d
}|j||dd |d }|j|g d	d
}|j||dd t|  d S )NFre      rD   rR   rF   rK   r   )rK   rD   rR   r    r   r8   Zproportional)r   spacinguniform)	r   rr   r#   r$   r>   r&   rt   ru   r   )rN   r)   r   rw   r   r@   r   r   r   test_contour_uneven  s   
r   zCrc_lines_linewidth, rc_contour_linewidth, call_linewidths, expected))Gz?NNr   )r   (\@Nr   )r   r   Gz@r   c              	   C   s   t | |ddT t \}}tddd}|j||d}| d |ks)J tj	t
jdd	 |jd d |ks=J W d    n1 sGw   Y  W d    d S W d    d S 1 s_w   Y  d S )
N)zlines.linewidthzcontour.linewidth)rcrB   rD   r.   )
linewidthsr   tlinewidthsr/   )r   r   r&   r#   r$   r>   r   Zget_linewidthsr   r   r   r   r   )Zrc_lines_linewidthZrc_contour_linewidthZcall_linewidthsexpectedr   r   r   r@   r   r   r   test_contour_linewidth  s   	"r   Zpdfc                   C   s    t t ddgddgg d S )NrF   rK   r.   rD   )r   r?   r   r   r   r   r   test_label_nonagg  s    r   Zcontour_closed_line_loop)r   rJ   rO   c                 C   sf   g dg dg dg dg}t jdd\}}|j|dgdgdd	 |d
d |d
d t|  d S )N)r   r   r   )r   rK   r   )rK   rF   rK   )rK   rK   r   r   r   r   )r   alphagg @g@)r   r&   r   Zset_xlimZset_ylimr   )rN   r)   r   r   r   r   r   test_contour_closed_line_loop  s   r   c                  C   sx   t ddgddg\} }| | }t \}}|| ||}|| ||}|j|jks,J |||}|j|jks:J d S )Nrk   rV   )r#   r+   r   r&   rt   r   _contour_generator)r'   r(   r)   r   r   Zqcs1Zqcs2Zqcs3r   r   r   test_quadcontourset_reuse  s   r   Zcontour_manualg{Gz?)r   rJ   rO   rQ   c                 C   sz  ddl m} tjdd\}}d}ddgddgddggg}ddgddggddgdd	ggg}ddgdd	gddgddgddggg}ddgddgddgddgddggdd	gdd	gddggg}||g d
||gd|d ||ddg||gdddgd d	dgddgddgd	dgd	dgddgddgddgddgddgg
g}	g dg}
||ddg|	g|
gd|d ||dg|	g|
gddd t|  d S )Nr   )r   rD   rD   r   ZviridisrK   rF   r.   rD   r   rF   rK   T)rz   cmapr\   k)r   r_   r   rE   rR   )
rF   rK   rK   rK   O   rF   rK   rK   rK   r   )r_   r   )Zmatplotlib.contourr   r   r&   r   )rN   r   r   r   r   Zlines0Zlines1Zfilled01Zfilled12Zsegskindsr   r   r   test_contour_manual  s$    $ 
r   Z!contour_line_start_on_corner_edgec           
      C   s   t jdd\}}tg dg d\}}d|d d  |d d  }tj|td}d	 |d
< |d< tjj||d}|j|||d	d}|	|}|j
|||d	dd}	||	 t|  d S )N)rR   rE   r   )r   rF   rK   r.   rD   r   g333333?rK   rF   ZdtypeT)rF   rF   )rF   r.   r   r   r   )r   r_   )r   r&   r#   r+   
zeros_likeboolr   rc   rt   ru   r   r   r   )
rN   r   r   r'   r(   r)   r   rz   Zcbarlinesr   r   r   &test_contour_line_start_on_corner_edge  s   

r   c                  C   sr  t d} t t j t | d d dd  }t|d}tt	j
j |jdddd	}W d    n1 s8w   Y  d
}t|| tt	j
j |jdddd	}W d    n1 s^w   Y  d}t|| tt	j
j |jdddd	}W d    n1 sw   Y  d}t|| tt	j
j |jddddd}W d    n1 sw   Y  d}t|| d S )N   r  rE   rK   r         9@r    rF   Fpixel)rF   r   !   YİØt?r  gb?rj   )rF   r   rE   g`3@gDlpf?gݓ?)r.   r      gͰQo&?ghW!@g|o^}?rE   r   indicesr  )rE   r      gA*Ŏ@g      @gA?)r#   r  r   r   sumr   r   r   r   r   r   r   find_nearest_contourr   )xyimgr@   Znearest_contourZexpected_nearestr   r   r   test_find_nearest_contour  s.   
&


r  c               	   C   s  t d} t t j t | d d dd  }t|d}tt	j
j' tjtdd |jd	d	d
d W d    n1 s@w   Y  W d    n1 sOw   Y  tt	j
j( tjtdd |jd	ddd
d W d    n1 sww   Y  W d    n1 sw   Y  tt	j
j1 tjtdd |jddddd W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr  rE   rK   r   r  r    z(Method does not support filled contours.r/   rF   Fr  r	  r
  )rK   r   T)r#   r  r   r   r  r   rt   r   r   r   r   r   r1   r   r  )r  r  r@   r   r   r   #test_find_nearest_contour_no_filled*  s,   
&  Pr  defaultc                  C   sZ   t   } t jtdddddg dd}| | dd | jD h d	ks+J d S )
Ngư>r   r;   r    )gh㈵>gh㈵>gh㈵?r8   c                 S   s   h | ]}|  qS r   )Zget_text)r   textr   r   r   	<setcomp>C      z<test_contour_autolabel_beyond_powerlimits.<locals>.<setcomp>>   z1.00z0.25z4.00)	r   r   add_subplotr   r#   Z	geomspacer>   r?   Ztexts)r   r@   r   r   r   )test_contour_autolabel_beyond_powerlimits<  s   
 r  c                     s   ddl m  tdd} | dd}| | }tj|g dg ddd	}|jd
 |j	d |
  | \}}|g dksAJ d}t fdd|D sPJ tdd t||D s^J d S )Nr   	RectanglerF   r    ro   r    r   r   )#FFFF00#FF00FFz#00FFFFrn   r9   r_   rp   rf   rh   )z$x \leq -1e+250s$z$10.0 < x \leq 30.0$z$30.0 < x \leq 50.0$z$x > 1e+250s$)rh   r  r  rf   c                 3   s    | ]}t | V  qd S r   )r   r   ar  r   r   	<genexpr>X  s    z0test_contourf_legend_elements.<locals>.<genexpr>c                 s   "    | ]\}}t | |V  qd S r   )r
   Zget_facecolorr   r   r{   r   r   r   r!  Y      )matplotlib.patchesr  r#   r$   r>   r   rt   r   Zset_overZ	set_underchangedlegend_elementsrH   zip)r'   r(   hr@   artistslabelsZexpected_colorsr   r  r   test_contourf_legend_elementsF  s$   r,  c                  C   s   t dd} | dd}| | }g d}tj|g d|dd}| \}}|g dks-J td	d
 |D s8J tdd
 t||D sFJ d S )NrF   r    ro   )rh   z#00FF00rf   r  rn   r  )z
$x = 10.0$z
$x = 30.0$z
$x = 50.0$c                 s   s    | ]
}t |tjjV  qd S r   )r   r   r   ZLine2Dr  r   r   r   r!  h  s    z/test_contour_legend_elements.<locals>.<genexpr>c                 s   r"  r   )r
   	get_colorr#  r   r   r   r!  i  r$  )r#   r$   r>   r   r   r'  rH   r(  )r'   r(   r)  r_   r@   r*  r+  r   r   r   test_contour_legend_elements]  s   r.  zalgorithm, klassmpl2005mpl2014serialthreaded)invalidNc                 C   s~   t ddgddgg}|d ur tj|| d}t|j|sJ d S tt tj|| d W d    d S 1 s8w   Y  d S )NrV   r[   rW         @	algorithm)	r#   rc   r   rt   r   r   r   r1   r   )r6  klassr)   r@   r   r   r   test_algorithm_namem  s   "r8  r6  r/  r0  r1  r2  c                 C   s   t ddgddgg}tj|| dd | dkr!tj|| dd d S tt tj|| dd W d    d S 1 s:w   Y  d S )	NrV   r[   rW   r4  F)r6  r   r/  T)r#   rc   r   rt   r   r1   r   )r6  r)   r   r   r   #test_algorithm_supports_corner_mask~  s   "r:  Zcontour_all_algorithmsgQ?c                 C   s   g d}t jd}t t dddt ddd\}}t d| t d|  |jdd	d
 }t j|t	d}d|d< t j
j||d}tdd\}}t| |D ]\}	}
|	j||||
d |	j||||
dd |	|
 qSt|  d S )Nr9  i  rk   rV   r    rR   r  r   )rR   r    )scalesizer   T)r.   r   r   rK   r5  r   )r6  r_   )r#   r%   Zdefault_rngr+   r   r   r   normalr   r   r   rc   r   r&   r(  ravelrt   r   	set_titler   )rN   Z
algorithmsrngr'   r(   r)   r   rv   rw   r   r6  r   r   r   test_all_algorithms  s   $*rA  c                  C   s   d} t dd| }t dd| }t ||\}}t |d  |d  }t |d d  |d d  }|| d }t }|jddd}	|	D ]}
|
 }||||}|j	|d	d
d |
d qGd S )Nr   r}   rW   r~   r[   rK   rF   )Znrowsr   Tr    )r   r^   zSimplest default with labels)r#   r$   r+   r   r   r   Z
subfiguresr&   r   r?   r?  )r   r'   r(   r   r   r   r   r   r   Zfigsfr   r   r   r   r   test_subfigure_clabel  s    rC  rP   )ZsoliddasheddashdotZdottedc              	   C   sb  d}t dd|}t dd|}t ||\}}t |d  |d  }t |d d  |d d  }|| d }t \}	}
|
j|||dd	d
}|
j|ddd |
d |j	d u s^J t \}}|j|||dd	| d}|j|ddd |d|   |j	| ksJ t \}}|j|||dd	| dd}|j|ddd |d|   |j	| ksJ d S )Nr   r}   rW   r~   r[   rK   rF   rR   r   r_   r!   Tr^   r   z0Single color - positive contours solid (default))r_   
linestylesz!Single color - positive contours rE  r_   rH  negative_linestyles)
r#   r$   r+   r   r   r&   r   r?   r?  rH  )rP   r   r'   r(   r   r   r   r   r   fig1r   CS1fig2r   CS2fig3r   CS3r   r   r   test_linestyles  s0    
rQ  c              	   C   s  d}t dd|}t dd|}t ||\}}t |d  |d  }t |d d  |d d  }|| d }t \}	}
|
j|||dd	d
}|
j|ddd |
d |j	dks^J | tj
d< t \}}|j|||dd	d
}|j|ddd |d|  d |j	| ksJ t \}}|j|||dd	| d}|j|ddd |d|   |j	| ksJ t \}}|j|||dd	d| d}|j|ddd |d|   |j	| ksJ d S )Nr   r}   rW   r~   r[   rK   rF   rR   r   rF  r!   TrG  z1Single color - negative contours dashed (default)rD  zcontour.negative_linestylez!Single color - negative contours z(using rcParams))r_   rJ  rE  rI  )r#   r$   r+   r   r   r&   r   r?   r?  rJ  rr   )rP   r   r'   r(   r   r   r   r   r   rK  r   rL  rM  r   rN  rO  r   rP  Zfig4Zax4ZCS4r   r   r   test_negative_linestyles  s<    

rR  c                  C   s^   t   } |  }| tdd}|  |  |ks!J |	  |  |ks-J d S )Nr  r   )
r   r   r  Zget_childrenr   r#   r$   r>   r?   remove)r   Zorig_childrenr@   r   r   r   test_contour_remove  s   rT  c                  C   s\   t  \} }ddgddgg}tjtdd |j|d W d    d S 1 s'w   Y  d S )Nr   rF   zcontour\(\) takes from 1 to 4r/   )r   )r   r&   r   r1   r2   r   )r   r   rx   r   r   r   test_contour_no_args  s
   "rU  c                  C   sT   t  \} }ddgddgg}tjddgd|jd}|j||d}| d us(J d S )Nr   rF   r   )r   )	clip_path)r   r&   mpatchesZCircleZ	transAxesr   Zget_clip_path)r   r   rx   circler@   r   r   r   test_contour_clip_path  s
   rY  c                  C   s  t jdd\} }t dd dt}g dg dg dg}t|	 j
	 dgks0J t|j
	 dgks=J tt jj||dj
	 dgksPJ t|	 j
	 g dks`J t|j
	 g dksnJ tt jj||dj
	 g dksJ | }t| ||	 j
	 dgksJ t| ||j
	 dgksJ t| ||	 j
	 g dksJ t| ||j
	 g dksJ d S )	NrK   r!   )r.   r.   )FFF)FTFr   r   )r   r   rF   )r#   r%   r=   r$   r>   Zastyper   r   r   tolistr9   r   rc   rt   r>  Z
tricontourZtricontourf)r'   r(   r)   mr   r   r   test_bool_autolevel  s   & ("$$r\  c                  C   s8   t t jt jgt jt jgg} tt| jg d d S )N)	gvIh%<g7Q5gvIh%,g [nrk   g [n=gvIh%,=g7Q5=gvIh%<=)r#   rc   nanr   r   r   r9   )r'   r   r   r   test_all_nan/  s   r^  c                  C   s  t tdd} tjtjdd | j	}W d    n1 s!w   Y  tjt
dd | jdd |D ks:J W d    n1 sDw   Y  tjt
dd | jd	d |D ks]J W d    n1 sgw   Y  tjtjd
d t| jdd |D  W d    n1 sw   Y  tjtjdd | jdd |D ksJ W d    n1 sw   Y  tjtjdd | jsJ W d    n1 sw   Y  tjtjdd d| _W d    n1 sw   Y  tjtjdd | jrJ W d    d S 1 sw   Y  d S )Nr  r   r   r/   allsegsc                 S       g | ]}|  D ]}|jqqS r   )rL   Zverticesr   r{   pr   r   r   r   ;       z(test_deprecated_apis.<locals>.<listcomp>allkindsc                 S   r`  r   )rL   codesra  r   r   r   r   =  rc  tcolorsc                 S      g | ]}|  qS r   )Zget_edgecolorr   r{   r   r   r   r   ?  r  r   c                 S   rg  r   )Zget_linewidthrh  r   r   r   r   A  r  antialiasedF)r   r   r#   r$   r>   r   r   r   r   r   PendingDeprecationWarningr_  rd  r   rf  r   ri  )r@   Zcollsr   r   r   test_deprecated_apis6  s2   $rk  )Tr   platformr3   Zunittestr   Z	contourpynumpyr#   Znumpy.testingr   r   r   Z
matplotlibr   r   r   r   r   Zmatplotlib.colorsr	   r
   r%  ZpatchesrW  Zmatplotlib.testing.decoratorsr   r   r   r   r*   r,   markZparametrizer$   emptyr7   rA   rI   rM   rd   r|   r   r   r   r   r   r   r   r   r   r   machiner   r   r   backendr   r   r   r   r   r  r  rP   contextr  r,  r.  ZMpl2005ContourGeneratorZMpl2014ContourGeneratorZSerialContourGeneratorZThreadedContourGeneratorr8  r:  rA  rC  rQ  rR  rT  rU  rY  r\  r^  rk  r   r   r   r   <module>   sF   



 	
#




	



 
)
