o
    i]                     @   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   l/var/www/html/eduruby.in/lip-sync/lip-sync-env/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)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   rH   Zpng)
extensionsc                 C   sF   |   ddgddgg}|  ddgddgg}||  d S )Nr   rE      )r%   r   Z	set_paths	get_paths)Zfig_testZfig_refZcs_testZcs_refr   r   r   test_contour_set_pathsg   s   rL   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   rJ   )   rJ      )figsizedpi))      ?      @)rU   皙@)rU         @manual))       @rV   )r[   rW   )r[   rX   Zsmall)rg)rZ   fontsizecolors)r"   r*   r#   maxdstackabsr   r   r   r   arrayr>   )rM   r&   r'   r(   r?   Zptsr   r   r   test_contour_manual_labelso   s    rd   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   rJ   rE   r   r:   r7   )g?rE   rY   0)r"   linspacer*   r   r   r>   get_text)r&   r'   XYZZcontourspointZclabelsr   r   r   test_contour_manual_moveto   s   rl   Zcontour_disconnected_segments)rN   rO   rI   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 )NrE   y              5@{Gz?333333?rJ      r7   )皙?皙?rY   )r"   Zmgridsqrtr   r   r   r   r>   )rM   r&   r'   r(   r?   r   r   r   -test_contour_label_with_disconnected_segments   s   "&rt   z$contour_manual_colors_and_levels.png)rN   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.snaprJ   rC   rA   r-   )redyellowZpinkblueblack)rJ   rC      r           )neitherminr`   both)r`   r|   rE   )r}   r|   rm   )r_   r8   extendr   )r   rcParamsr%   r"   r#   r=   	enumerateZflatcontourfr   colorbarr   )rM   _axsdatar_   r8   ir   filledr   Zfirst_colorZ
last_colorcr   r   r   $test_given_colors_levels_and_extends   s&   
r   zcontour_log_locator.svg)rO   rN   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:         rV          r[   rJ   r   2   locator      $@ir-   r   )r   r%   r"   rf   r*   expr   r   Z
LogLocatorr   r8   powerr#   r   r   Z
get_yticksr   )rM   r   r   Nr&   r'   rh   ri   Z1Z2r   r   cbr   r   r   test_log_locator_levels   s    r   zcontour_datetime_axis.png)rO   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  rE   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   r   repeatZnewaxisZget_axesZget_xticklabelsZset_haZset_rotationr   )	rM   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}t|  |	  |D ]\}}|j
||dd d qq|D ]\}}|j
||ddd qt|  d S )N皙?r   rV   r   r[   rJ   rE   g      ?      ?r   ))      )ig  i"  )i	  i  ))r   )r   g      )gffffff@rE   T)inline	transformF)r"   r#   r*   r   pir   r%   r   r   r>   Zadd_label_near)rM   deltar&   r'   rh   ri   r   r   rj   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:   )rT   rJ   r   g      ?rz   rC   r   "_split_path_and_get_label_rotation)wrapsr    )r^   c                 S   s   g | ]}|d  d qS )r   rE   r   )r   Zcargsr   r   r   r   5  s    z,test_label_contour_start.<locals>.<listcomp>r   )r   r%   r"   rf   r   r*   sincosr   r   patchobjectr   r>   Zcall_args_list)
r   r   ZlatsZlonswave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?)rN   rP   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?rU   rE   r   r[   rp   rz   mask)FTcorner_mask)r"   r$   seedr*   rf   r   r   r<   marc   r   r   r   r   )	rM   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 )Nrr   ro   r   ffffff?rU   r{   )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 )	NrA   rB   rC   T)ZnbinsZ	symmetricr   irD   )	r"   r#   r=   r   ZMaxNLocatorr   r   r8   rf   )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   rJ   rC   )r"   r*   rf   hypotr   r   r   r>   )r&   r'   r\   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   rJ   )ncols)zorder)r   use_clabeltext)r"   r*   r#   r`   ra   rb   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@皙?rJ   )rn   rq   r   g?r7   r:   )Zinline_spacing)r"   r#   r*   r   r   r%   r   r>   )r&   r'   rh   ri   rj   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 )NFru   rE   r-   )r   rD   rS   r   r   )leftr   g      g      #@i  r   r   (   g      g      @r   )ZvminZvmax)normr|   )r8   r   r   r~   r   )g:0yE>g    _B)-C6?g    .A)r   r   r%   r   r"   rf   r   r=   r#   r   r	   r}   r`   r   r   get_ylimr   rc   r   )rM   r   r   r   ax3Zdata_expr   Z
levels_expr8   c1c2c3r   r   r   r   test_contourf_log_extension  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 )
NFru   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   )rM   r   r   rh   Zpcmcontr   r   r   r   test_contour_addlines  s   
	


r   Zcontour_uneven)baseline_imagesrI   rN   rO   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 )NFru      rC   rQ   rE   rJ   r   )rJ   rC   rQ   r   r   r7   Zproportional)r   spacinguniform)	r   r   r"   r#   r=   r%   r   r   r   )rM   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)rcrA   rC   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   rh   r?   r   r   r   test_contour_linewidth  s   	"r   Zpdfc                   C   s    t t ddgddgg d S )NrE   rJ   r-   rC   )r   r>   r   r   r   r   r   test_label_nonagg  s    r   Zcontour_closed_line_loop)r   rI   rN   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   rJ   r   )rJ   rE   rJ   )rJ   rJ   r   r   r   r   )r   alphagg @g@)r   r%   r   Zset_xlimZset_ylimr   )rM   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 )Nr{   rU   )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   rI   rN   rP   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   rC   rC   r   ZviridisrJ   rE   r-   rC   r   rE   rJ   T)r   cmapr\   k)r   r_   rp   rD   rQ   )
rE   rJ   rJ   rJ   O   rE   rJ   rJ   rJ   r  )r_   r   )Zmatplotlib.contourr   r   r%   r   )rM   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)rQ   rD   r   )r   rE   rJ   r-   rC   r  g333333?rJ   rE   ZdtypeT)rE   rE   )rE   r-   r   r   r  )r   r_   )r   r%   r"   r*   
zeros_likeboolr   rc   r   r   r   r   r   )
rM   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  rD   rJ   r         9@r   rE   Fpixel)rE   r   !   YİØt?r  gb?rz   )rE   r   rD   g`3@gDlpf?gݓ?)r-   r      gͰQo&?ghW!@g|o^}?rD   rp   indicesr  )rD   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  rD   rJ   r   r  r   z'Method does not support filled contoursr.   rE   Fr  r  r  )rJ   rp   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   )rg   )r   textr   r   r   	<setcomp>v      z<test_contour_autolabel_beyond_powerlimits.<locals>.<setcomp>>   z0.25z1.00z4.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   	RectanglerE   r   rm   r   r   r   )#FFFF00#FF00FFz#00FFFFr~   r8   r_   r   rv   rx   )z$x \leq -1e+250s$z$10.0 < x \leq 30.0$z$30.0 < x \leq 50.0$z$x > 1e+250s$)rx   r(  r)  rv   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_underchangedlegend_elementsrG   zip)r&   r'   hr?   artistslabelsZexpected_colorsr   r%  r   test_contourf_legend_elementsy  s$   r8  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 )NrE   r   rm   )rx   z#00FF00rv   r'  r~   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
   	get_colorr/  r   r   r   r-    r0  )r"   r#   r=   r   r   r3  rG   r4  )r&   r'   r5  r_   r?   r6  r7  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 )NrU   r[   rV         @	algorithm)	r"   rc   r   r   r   r   r   r0   r   )rB  klassr(   r?   r   r   r   test_algorithm_name  s   "rD  rB  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 )	NrU   r[   rV   r@  F)rB  r   r;  T)r"   rc   r   r   r   r0   r   )rB  r(   r   r   r   #test_algorithm_supports_corner_mask  s   "rF  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 )NrE  i  r{   rU   r   rQ   r  r   )rQ   r   )scalesizer  T)r-   rp   r   rJ   rA  r  )rB  r_   )r"   r$   Zdefault_rngr*   rf   r   r   normalr	  r
  r   rc   r   r%   r4  ravelr   r   	set_titler   )rM   Z
algorithmsrngr&   r'   r(   r   r   r   r   rB  r   r   r   test_all_algorithms  s   $*rM  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   rV   r   r[   rJ   rE   )Znrowsr   Tr   )r   r^   zSimplest default with labels)r"   r#   r*   r   r   r   Z
subfiguresr%   r   r>   rK  )r   r&   r'   rh   ri   r   r   rj   r   Zfigsfr   r   r   r   r   test_subfigure_clabel  s    rO  rO   )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   rV   r   r[   rJ   rE   rQ   r  r_   r    Tr^   r   z0Single color - positive contours solid (default))r_   
linestylesz!Single color - positive contours rQ  r_   rT  negative_linestyles)
r"   r#   r*   r   r   r%   r   r>   rK  rT  )rO   r   r&   r'   rh   ri   r   r   rj   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   rV   r   r[   rJ   rE   rQ   r  rR  r    TrS  z1Single color - negative contours dashed (default)rP  zcontour.negative_linestylez!Single color - negative contours z(using rcParams))r_   rV  rQ  rU  )r"   r#   r*   r   r   r%   r   r>   rK  rV  r   )rO   r   r&   r'   rh   ri   r   r   rj   rW  r   rX  rY  r   rZ  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   rE   zcontour\(\) takes from 1 to 4r.   )rj   )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   rE   r   )r   )	clip_path)r   r%   mpatchesZCircleZ	transAxesr   Zget_clip_path)r   r   r   circler?   r   r   r   test_contour_clip_pathI  s
   re  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 )	NrJ   r    )r-   r-   )FFF)FTFr   r   )r   r   rE   )r"   r$   r<   r#   r=   Zastyper
  r   r   tolistr8   r   rc   r   rJ  Z
tricontourZtricontourf)r&   r'   r(   mr   r   r   test_bool_autolevelQ  s   & ("$$rh  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r{   g [n=gvIh%,=g7Q5=gvIh%<=)r"   rc   nanr   r   r   r8   )r&   r   r   r   test_all_nanb  s   rj  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   rJ   r   r7   rD   rE   rC   )
r"   r*   r#   r   r   r   r   ZallsegsZallkindsrF   )r&   r'   r(   r?   resultr   r   r   test_allsegs_allkindsi  s   $rl  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   rn  r   )Zget_linewidthro  r   r   r   r   }  r"  antialiasedF)r   r   r"   r#   r=   r   r   r   r   r   r   rm  r   rp  )r?   Zcollsr   r   r   test_deprecated_apisv  s&   "rq  )Xr   platformr2   Zunittestr   Z	contourpynumpyr"   Znumpy.testingr   r   r   Z
matplotlibr   r   r   r   r   Zmatplotlib.colorsr	   r
   r1  Zpatchesrc  Zmatplotlib.testing.decoratorsr   r   r   r   r)   r+   markZparametrizer#   emptyr6   r@   rH   rL   rd   rl   rt   r   r   r   r   r   r   r   r   r   r   r   r   machiner   r   r   backendr   r   r   r  r  r  r  rO   contextr$  r8  r:  ZMpl2005ContourGeneratorZMpl2014ContourGeneratorZSerialContourGeneratorZThreadedContourGeneratorrD  rF  rM  rO  r]  r^  r`  ra  re  rh  rj  rl  rq  r   r   r   r   <module>   sV   



 !	
#




	



 
)
