o
    Gf]                     @   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'd0d1 Z(ej d'd(d)ged2gd)d+d#gd3d4d5 Z)ej d'd(d)ged6gd)d7d8d9 Z*ej d'd(d)ged:gd+d(d;d<d= Z+ej d'd(d)ged>gd+d?d@dA Z,ej d'd(d)gedBgd)d+dCd-dDdE Z-dFdG Z.ej d'd(d)gedHdIgd)dJdKdLdM Z/dNdO Z0dPdQ Z1dRdS Z2ej dTg dUdVdW Z3dXdY Z4ej d'd(d)gedZgd)d+d[d-d\d] Z5ej d'd(d)ged^gd)d+e6 d_v rd`ndad-dbdc Z7ej d'd(d)geddgd#gd)d+dedfdg Z8ej dhg didjdk Z9ej:dldmdn Z;ej d'd(d)gedogd#gd)dpdqdr Z<dsdt Z=ej d'd(d)gedugd#gd)dvdwdxdy Z>ej d'd(d)gedzgd#gd)dpd{d| Z?d}d~ Z@dd ZAejBCddd ZDdd ZEdd ZFej ddejGfdejHfdejIfdejJfdgdd ZKej dg ddd ZLej d'd(d)gedgd#gd)ddwdd ZMdd ZNej dg ddd ZOej dg ddd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWd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warnsZ_apiMatplotlibDeprecationWarning)Zdo_splitfigaxZcoll r   =lib/python3.10/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   "r6   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)Zfmt)
r   r%   r   r"   r$   randr#   reshapeclabelZones)r   r   csr   r   r   test_contour_no_valid_levelsP   s
   r?   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-            r7   )	r"   r#   r<   r   r%   r   lenr8   all)r(   r   r   Zcs1Zcs2r   r   r   test_contour_Nlevels\   s   rG   Zpng)
extensionsc                 C   sF   |   ddgddgg}|  ddgddgg}||  d S )Nr   rD      )r%   r   Z	set_pathsZ	get_paths)Zfig_testZfig_refZcs_testZcs_refr   r   r   test_contour_set_pathsg   s   rJ   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	|  t 
g d}tj||d t 
g d	}tj||d
dd d S )Nr   r   rI   )   rI      )figsizedpi))      ?      @)rS   皙@)rS         @manual))       @rT   )rY   rU   )rY   rV   Zsmall)rg)rX   fontsizecolors)r"   r*   r#   maxdstackabsr   r   r   r   arrayr=   )rK   r&   r'   r(   r>   Zptsr   r   r   test_contour_manual_labelso   s    rb   c                  C   s   t dd} t dd}t | |\}}|d d |d  d }tj|||ddgd}d}tj||gd	}|d  d
ks?J d S )Nir   rI   rD   r   r:   r7   )g?rD   rW   0)r"   linspacer*   r   r   r=   get_text)r&   r'   XYZZcontoursZpointZclabelsr   r   r   test_contour_manual_moveto   s   ri   Zcontour_disconnected_segments)rL   rM   rH   c                 C   s   t jddddddf \}}dt d|d d  |d   }|dt d|d d  |d   7 }t  tj|||dgd}t|  |jd	gd
 t|  d S )NrD   y              5@{Gz?333333?rI      r7   )皙?皙?rW   )r"   ZmgridZsqrtr   r   r   r   r=   )rK   r&   r'   r(   r>   r   r   r   -test_contour_label_with_disconnected_segments   s   "&rp   z$contour_manual_colors_and_levels.png)rL   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.snaprI   rB   r@   r-   )redZyellowZpinkblueZblack)rI   rB      r           )neitherminr^   both)r^   rv   rD   )rw   rv   rj   )r]   r8   extendr   )r   rcParamsr%   r"   r#   r<   	enumerateZflatcontourfr   colorbarr   )rK   _axsdatar]   r8   ir   filledry   Zfirst_colorZ
last_colorcr   r   r   $test_given_colors_levels_and_extends   s&   
r   zcontour_log_locator.svg)rM   rL   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:         rT          rY   rI   r   2   locator      $@ir-   rz   )r   r%   r"   rd   r*   expr}   r   Z
LogLocatorr   r8   powerr#   r~   r   Z
get_yticksr   )rK   r   r   Nr&   r'   rf   rg   Z1Z2r   r   cbr   r   r   test_log_locator_levels   s    r   zcontour_datetime_axis.png)rM   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topZbottomi  rD   c                    s   g | ]
} t j|d  qS ))Zdays)datetimeZ	timedelta).0dbaser   r   
<listcomp>   s    z.test_contour_datetime_axis.<locals>.<listcomp>         r   )Zaxis      right   )r   r   subplots_adjustr   r"   ra   ranger#   r*   Zsubplotr   r}   repeatZnewaxisZget_axesZget_xticklabelsZset_haZset_rotationr   )	rK   r   r&   r'   Zz1Zz2r(   r   Z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}t|  |	  |D ]\}}|j
||dd d qq|D ]\}}|j
||ddd qt|  d S )N皙?r   rT   r   rY   rI   rD   g      ?      ?r   ))      )ig  i"  )i	  i  ))r   )r   g      )gffffff@rD   T)inline	transformF)r"   r#   r*   r   pir   r%   r   r   r=   Zadd_label_near)rK   deltar&   r'   rf   rg   r   r   rh   r   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:   )rR   rI   r   g      ?rt   rB   r   "_split_path_and_get_label_rotation)wrapsr    )r\   c                 S   s   g | ]}|d  d qS )r   rD   r   )r   Zcargsr   r   r   r   5  s    z,test_label_contour_start.<locals>.<listcomp>r   )r   r%   r"   rd   r   r*   sincosr   r   Zpatchobjectr   r=   Zcall_args_list)
r   r   ZlatsZlonsZwaveZmeanr   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?)rL   rN   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?rS   rD   r   rY   rm   rt   mask)FTcorner_mask)r"   r$   seedr*   rd   r   r   r;   mara   r   r   r}   r   )	rK   nZ
mask_levelZ	noise_ampr&   r'   r(   r   r   r   r   r   test_corner_mask9  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 )Nro   rl   r   ffffff?rS   ru   )r   r   r   r0   
ValueErrorr}   )r(   r   r   r   test_contourf_decreasing_levelsM  s
   "r   c                  C   sF   t dd} tjddd}tj| |d}t|jt ddd d S )	Nr@   rA   rB   T)ZnbinsZ	symmetricr   irC   )	r"   r#   r<   r   ZMaxNLocatorr}   r   r8   rd   )r(   r   r>   r   r   r   test_contourf_symmetric_locatorU  s   r   c                  C   sT   t t dddt ddd\} }t | |}t  t| ||}t| d S )Nr   rI   rB   )r"   r*   rd   Zhypotr   r   r   r=   )r&   r'   rZ   r>   r   r   r   test_circular_contour_warning]  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   rI   )ncols)zorder)r   use_clabeltext)r"   r*   r#   r^   r_   r`   r   r%   r   r}   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_zorderf  s"    
r   c                  C   sn   t ddd } }t | |\}}t |d  |d  }t \}}|j|||g dd}|j|dd d S )	Nr   gGz@皙?rI   )rk   rn   r   g?r7   r:   )Zinline_spacing)r"   r#   r*   r   r   r%   r   r=   )r&   r'   rf   rg   rh   r   r   Z
contoursetr   r   r   test_clabel_with_large_spacing  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 )NFrq   rD   r-   )r   rC   rQ   r   r   )leftr   g      g      #@i  r   r   (   g      g      @r   )ZvminZvmax)normrv   )r8   r   ry   rx   rz   )g:0yE>g    _B)-C6?g    .A)r   r{   r%   r   r"   rd   r   r<   r#   r}   r	   rw   r^   r~   r   get_ylimr   ra   r   )rK   r   r   r   ax3Zdata_expr   Z
levels_expr8   Zc1Zc2Zc3r   r   r   r   test_contourf_log_extension  s0   
r   zcontour_addlines.png)Zaarch64Zppc64leZ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 )
NFrq   i,N,r   i'  i  gd]Kȓ\@g6>W'z@r-   )r   r{   r%   r"   r$   r   r;   Z
pcolormeshr   r~   	add_linesr   r   r   r   )rK   r   r   rf   ZpcmZcontr   r   r   r   test_contour_addlines  s   
	


r   Zcontour_uneven)baseline_imagesrH   rL   rM   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 )NFrq      rB   rO   rD   rI   r   )rI   rB   rO   r   r   r7   Zproportional)r   ZspacingZuniform)	r   r{   r"   r#   r<   r%   r}   r~   r   )rK   r(   r   r   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)Zrcr@   rB   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_linewidthsZexpectedr   r   rf   r>   r   r   r   test_contour_linewidth  s   	"r   Zpdfc                   C   s    t t ddgddgg d S )NrD   rI   r-   rB   )r   r=   r   r   r   r   r   test_label_nonagg  s    r   Zcontour_closed_line_loop)r   rH   rL   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   rI   r   )rI   rD   rI   )rI   rI   r   r   r   r   )r   Zalphagg @g@)r   r%   r   Zset_xlimZset_ylimr   )rK   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 )Nru   rS   )r"   r*   r   r%   r}   r   _contour_generator)r&   r'   r(   r   r   Zqcs1Zqcs2Zqcs3r   r   r   test_quadcontourset_reuse  s   r   Zcontour_manualg{Gz?)r   rH   rL   rN   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   rB   rB   r   ZviridisrI   rD   r-   rB   r   rD   rI   T)r   cmaprZ   k)r   r]   rm   rC   rO   )
rD   rI   rI   rI   O   rD   rI   rI   rI   r   )r]   r   )Zmatplotlib.contourr   r   r%   r   )rK   r   r   r   r   Zlines0Zlines1Zfilled01Zfilled12ZsegsZ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)rO   rC   r   )r   rD   rI   r-   rB   r   g333333?rI   rD   ZdtypeT)rD   rD   )rD   r-   r   r   r   )r   r]   )r   r%   r"   r*   
zeros_likeboolr   ra   r}   r~   r   r   r   )
rK   r   r   r&   r'   r(   r   r   Zcbarlinesr   r   r   &test_contour_line_start_on_corner_edge6  s   

r   c                  C   s   t d} t t j t | d d dd  }t|d}|jdddd	}d
}t|| |jdddd	}d}t|| |jdddd	}d}t|| |jddddd}d}t|| d S )N   r   rC   rI   r         9@r   rD   Fpixel)rD   r   !   YİØt?r   gb?rt   )rD   r   rC   g`3@gDlpf?gݓ?)r-   r      gͰQo&?ghW!@g|o^}?rC   rm   indicesr   )rC   r      gA*Ŏ@g      @gA?)	r"   r   r   r   sumr   r   find_nearest_contourr   )xyimgr>   Znearest_contourZexpected_nearestr   r   r   test_find_nearest_contourJ  s   
&


r  c                  C   s   t d} t t j t | d d dd  }t|d}tjt	dd |j
d	d	d
d W d    n1 s8w   Y  tjt	dd |j
d	ddd
d W d    n1 sXw   Y  tjt	dd |j
ddddd W d    d S 1 syw   Y  d S )Nr   rC   rI   r   r   r   z'Method does not support filled contoursr.   rD   Fr   r   r   )rI   rm   T)r"   r   r   r   r   r   r}   r   r0   r   r   )r   r  r>   r   r   r   #test_find_nearest_contour_no_filled`  s   
&"r  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㈵?r7   c                 S   s   h | ]}|  qS r   )re   )r   textr   r   r   	<setcomp>v      z<test_contour_autolabel_beyond_powerlimits.<locals>.<setcomp>>   z0.25z4.00z1.00)	r   r   add_subplotr   r"   Z	geomspacer<   r=   Ztexts)r   r>   r   r   r   )test_contour_autolabel_beyond_powerlimitso  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   	RectanglerD   r   rj   r   r   r   )#FFFF00#FF00FFz#00FFFFrx   r8   r]   ry   rr   rs   )z$x \leq -1e+250s$z$10.0 < x \leq 30.0$z$30.0 < x \leq 50.0$z$x > 1e+250s$)rs   r  r  rr   c                 3   s    | ]}t | V  qd S r   )r   r   ar
  r   r   	<genexpr>  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        )matplotlib.patchesr  r"   r#   r<   r   r}   r   Zset_overZ	set_underZchangedlegend_elementsrF   zip)r&   r'   hr>   artistslabelsZexpected_colorsr   r
  r   test_contourf_legend_elementsy  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 )NrD   r   rj   )rs   z#00FF00rr   r  rx   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    s    z/test_contour_legend_elements.<locals>.<genexpr>c                 s   r  r   )r
   Z	get_colorr  r   r   r   r    r  )r"   r#   r<   r   r   r  rF   r  )r&   r'   r  r]   r>   r  r  r   r   r   test_contour_legend_elements  s   r  zalgorithm, klassmpl2005mpl2014serialthreaded)Z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 )NrS   rY   rT         @	algorithm)	r"   ra   r   r}   r   r   r   r0   r   )r$  klassr(   r>   r   r   r   test_algorithm_name  s   "r&  r$  r  r  r   r!  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 )	NrS   rY   rT   r"  F)r$  r   r  T)r"   ra   r   r}   r   r0   r   )r$  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 )Nr'  i  ru   rS   r   rO   r   r   )rO   r   )Zscalesizer   T)r-   rm   r   rI   r#  r   )r$  r]   )r"   r$   Zdefault_rngr*   rd   r   r   Znormalr   r   r   ra   r   r%   r  ravelr}   r   	set_titler   )rK   Z
algorithmsrngr&   r'   r(   r   r   r   r   r$  r   r   r   test_all_algorithms  s   $*r-  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   rT   r   rY   rI   rD   )Znrowsr   Tr   )r   r\   zSimplest default with labels)r"   r#   r*   r   r   r   Z
subfiguresr%   r   r=   r+  )r   r&   r'   rf   rg   r   r   rh   r   Zfigsfr   r   r   r   r   test_subfigure_clabel  s    r/  rM   )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   rT   r   rY   rI   rD   rO   r   r]   r    Tr\   r   z0Single color - positive contours solid (default))r]   
linestylesz!Single color - positive contours r1  r]   r4  negative_linestyles)
r"   r#   r*   r   r   r%   r   r=   r+  r4  )rM   r   r&   r'   rf   rg   r   r   rh   fig1r   CS1fig2r   CS2fig3r   CS3r   r   r   test_linestyles  s0    
r=  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   rT   r   rY   rI   rD   rO   r   r2  r    Tr3  z1Single color - negative contours dashed (default)r0  zcontour.negative_linestylez!Single color - negative contours z(using rcParams))r]   r6  r1  r5  )r"   r#   r*   r   r   r%   r   r=   r+  r6  r{   )rM   r   r&   r'   rf   rg   r   r   rh   r7  r   r8  r9  r   r:  r;  r   r<  Zfig4Zax4ZCS4r   r   r   test_negative_linestyles  s<    

r>  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_remove8  s   r@  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   rD   zcontour\(\) takes from 1 to 4r.   )rh   )r   r%   r   r0   r1   r   )r   r   r   r   r   r   test_contour_no_argsB  s
   "rA  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   rD   r   )r   )Z	clip_path)r   r%   mpatchesZCircleZ	transAxesr   Zget_clip_path)r   r   r   Zcircler>   r   r   r   test_contour_clip_pathI  s
   rC  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 )	NrI   r    )r-   r-   )FFF)FTFr   r   )r   r   rD   )r"   r$   r;   r#   r<   Zastyper   r   r   tolistr8   r   ra   r}   r*  Z
tricontourZtricontourf)r&   r'   r(   mr   r   r   test_bool_autolevelQ  s   & ("$$rF  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ru   g [n=gvIh%,=g7Q5=gvIh%<=)r"   ra   nanr   r   r   r8   )r&   r   r   r   test_all_nanb  s   rH  c                  C   s   t t dddt ddd\} }t | t | }tj| ||ddgd}|j|jfD ]}t	|dks7J t	|d dksAJ t	|d dksKJ q-d S )	Nr   r   rI   r   r7   rC   rD   rB   )
r"   r*   r#   r   r   r   r   ZallsegsZallkindsrE   )r&   r'   r(   r>   resultr   r   r   test_allsegs_allkindsi  s   $rJ  c                  C   s  t tdd} tjtjdd | j	}W d    n1 s!w   Y  tjtjdd t
| jdd |D  W d    n1 sDw   Y  tjtjdd | jd	d |D ks^J W d    n1 shw   Y  tjtjd
d | js{J 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 sw   Y  d S )Nr   r   r   r.   tcolorsc                 S      g | ]}|  qS r   )Zget_edgecolorr   r   r   r   r   r   {  r  z(test_deprecated_apis.<locals>.<listcomp>r   c                 S   rL  r   )Zget_linewidthrM  r   r   r   r   }  r  antialiasedF)r   r   r"   r#   r<   r   r   r   r   r   r   rK  r   rN  )r>   Zcollsr   r   r   test_deprecated_apisv  s&   "rO  )Xr   platformr2   Zunittestr   Z	contourpyZnumpyr"   Znumpy.testingr   r   r   Z
matplotlibr   r   r   r   r   Zmatplotlib.colorsr	   r
   r  ZpatchesrB  Zmatplotlib.testing.decoratorsr   r   r   r   r)   r+   ZmarkZparametrizer#   emptyr6   r?   rG   rJ   rb   ri   rp   r   r   r   r   r   r   r   r   r   r   r   r   machiner   r   r   Zbackendr   r   r   r   r   r  r  rM   contextr	  r  r  ZMpl2005ContourGeneratorZMpl2014ContourGeneratorZSerialContourGeneratorZThreadedContourGeneratorr&  r(  r-  r/  r=  r>  r@  rA  rC  rF  rH  rJ  rO  r   r   r   r   <module>   sV   



 !	
#




	



 
)
