o
    jQv                     @   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
 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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d%gd&d'd(d)d*d+ Z%d,d- Z&ed.gd&d'd!gd/d0d1 Z'ed2gd&e( d3kr#d nd4d5d6d7 Z)ed8gd&d'd!gd/d9d: Z*ejd;g d<d=d> Z+ed?gd'd@dAdBdC Z,edDgd'dEdFdG Z-edHgd&d'dId)dJdK Z.dLdM Z/edNdOgd&dPd5dQdR Z0dSdT Z1dUdV Z2dWdX Z3ejdYg dZd[d\ Z4d]d^ Z5ed_gd&d'd`d)dadb Z6edcgd&d'e( d3krddnded)dfdg Z7edhgd!gd&d'didjdk Z8ejdlg dmdndo Z9ej:dpdqdr Z;edsgd!gd&dtdudv Z<dwdx Z=edygd!gd&dzd{d|d} Z>ed~gd!gd&dtdd Z?dd Z@dd ZAejBCddd ZDdd ZEdd ZFejddejGfdejHfdejIfdejJfdgdd ZKejdg ddd ZLedgd!gd&dd{dd ZMdd ZNejdg ddd ZOejdg ddd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdS )    N)mock)assert_array_almost_equalassert_array_almost_equal_nulp)pyplot
rc_contextticker)LogNorm
same_color)check_figures_equalimage_comparisonc                  C   s>   t d} t d}t jd}t \}}|| || d S N
   	   r   r   )nparangerandompltsubplotscontour)xyzfigax r   ^/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_contour.py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   pytestraises	TypeErrorreescaper   )argsmessager   r   r   r   r   test_contour_shape_error&   s   "r+   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_levelsB   s
   r5   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!            r,   )	r   r   r2   r   r   r   lenr-   all)r   r   r   Zcs1Zcs2r   r   r   test_contour_NlevelsN   s   r=   Zpng)
extensionsc                 C   sF   |   ddgddgg}|  ddgddgg}||  d S )Nr   r:      )r   r   Z	set_paths	get_paths)Zfig_testZfig_refZcs_testZcs_refr   r   r   test_contour_set_pathsY   s   rA   Zcontour_manual_labelsTZ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 d S )Nr   r   r?   )   r?      )figsizedpi))      ?      @)rI   皙@)rI         @manual))       @rJ   )rO   rK   )rO   rL   Zsmall)rg)rN   fontsizecolors)r   r   r   maxdstackabsr   figurer   arrayr3   )r   r   r   r4   Zptsr   r   r   test_contour_manual_labelsa   s    rY   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   r?   r:   r   r/   r,   )g?r:   rM   0)r   linspacer   r   r   r3   get_text)r   r   XYZZcontourspointZclabelsr   r   r   test_contour_manual_movetoo   s   ra   Zcontour_disconnected_segments)rB   rC   r>   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}|jd	gd
 d S )Nr:   y              5@{Gz?333333?r?      r,   )皙?皙?rM   )r   Zmgridsqrtr   rW   r   r3   )r   r   r   r4   r   r   r   -test_contour_label_with_disconnected_segments   s   "&ri   z$contour_manual_colors_and_levels.pngx86_64g;On?)rB   rD   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#d S )NFpcolormesh.snapr?   r8   r6   r!   )redyellowZpinkblueblack)r?   r8      r           )neitherminrT   both)rT   rr   r:   )rs   rr   rb   )rS   r-   extendr   )r   rcParamsr   r   r   r2   	enumerateZflatcontourfr   colorbar)_axsdatarS   r-   ir   filledru   Zfirst_colorZ
last_colorcr   r   r   $test_given_colors_levels_and_extends   s&   
r   Zcontourf_hatch_colorsc                  C   s>   t  \} }|jddgddggg ddd}|g d d S )Nr   r:   r?   )-/\z//gray)Zhatchescmap)rn   Zgreyrm   rl   )r   r   ry   Zset_edgecolors)r   r   cfr   r   r   test_hatch_colors   s    r   zcolor, extend))darkredrr   )r   rt   ))rP         ?rr   ))rg   rf   r   rd   rr   c                 C   sV   ddgddgg}t  \}}g d}|j||| |d}| D ]	}t|| s(J qd S )Nr   r:   r?   )r         ?r:   g      ?      ?r-   rS   ru   )r   r   r   Zget_edgecolorsr	   )colorru   r   r{   r   r-   r4   r   r   r   r   test_single_color_and_extend   s   r   zcontour_log_locator.svgF)rC   rB   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
 d S )Nr/         rJ          rO   r?   r   2   locator      $@ir!   rv   )r   r   r   r[   r   expry   r   Z
LogLocatorr   r-   powerr   rz   r   Z
get_yticks)r   r   Nr   r   r]   r^   Z1Z2r}   r   cbr   r   r   test_log_locator_levels   s    r   zcontour_datetime_axis.png)rC   c                     s8  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 qqd S )Ng?g\(\?333333?)Zhspacetopbottomi  r:   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   rW   subplots_adjustr   r   rX   ranger   r   Zsubplotr   ry   repeatZnewaxisZget_axesZget_xticklabelsZset_haZset_rotation)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}d S )N皙?r   rJ   r   rO   r?   r:   r   r   r   ))      )ig  i"  )i	  i  ))r   )r   g      )gffffff@r:   T)inline	transformF)
r   r   r   r   pir   r   r   r3   Zadd_label_near)deltar   r   r]   r^   r   r   r_   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/   )rH   r?   r   r   rp   r8   r   "_split_path_and_get_label_rotation)wrapsr   )rR   c                 S   s   g | ]}|d  d qS )r   r:   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   r3   Zcall_args_list)
r{   r   ZlatsZlonswavemeanr}   r4   Zmocked_splitterZidxsr   r   r   test_label_contour_start  s     $(r   zcontour_corner_mask_False.pngzcontour_corner_mask_True.pnggGz?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 qId S )N<   ffffff?rI   r:   r   rO   re   rp   mask)FTcorner_mask)r   r   seedr   r[   r   r   r1   marX   r   rW   ry   )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 )Nrg   rd   r   ffffff?rI   rq   )r   rW   r$   r%   
ValueErrorry   )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 )	Nr6   r7   r8   T)ZnbinsZ	symmetricr   ir9   )	r   r   r2   r   ZMaxNLocatorry   r   r-   r[   )r   r   r4   r   r   r   test_contourf_symmetric_locatorB  s   r   c                  C   sT   t t dddt ddd\} }t | |}t  t| ||}t| d S )Nr   r?   r8   )r   r   r[   hypotr   rW   r   r3   )r   r   rP   r4   r   r   r   test_circular_contour_warningJ  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   r?   )ncols)zorder)r   use_clabeltext)r   r   r   rT   rU   rV   r   r   r   ry   r3   Z
get_zorder)r   Zcontour_zorderZclabel_zorderr   r   r   r   ax1ax2r4   Z	cs_filledZclabels1Zclabels2Zexpected_clabel_zorderr3   r   r   r   test_clabel_zorderS  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@皙?r?   )rc   rf   r   g?r,   r/   )Zinline_spacing)r   r   r   r   r   r   r   r3   )r   r   r]   r^   r_   r   r   Z
contoursetr   r   r   test_clabel_with_large_spacingl  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}d S )NFrk   r:   r!   )r   r9   rG   r   r   )leftr   g      g      #@i  r   r   (   g      g      @r   )ZvminZvmax)normrr   )r-   r   ru   rt   rv   )g:0yE>g    _B)-C6?g    .A)r   rw   r   r   r   r[   r   r2   r   ry   r   rs   rT   rz   r   get_ylimr   rX   )r   r   r   ax3Zdata_expr}   Z
levels_expr-   c1c2c3r   r   r   r   test_contourf_log_extension  s.   
r   zcontour_addlines.pnggQ?r   c                  C   sz   dt jd< t  \} }tjd tjddd }||}||d }| 	|}|
| t|j ddgd	 d S )
NFrk   i,N,r   i'  i  gd]Kȓ\@g6>W'z@r!   )r   rw   r   r   r   r   r1   Z
pcolormeshr   rz   	add_linesr   r   r   )r   r   r]   Zpcmcontr   r   r   r   test_contour_addlines  s   



r   Zcontour_uneven)baseline_imagesr>   rB   rC   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 d S )NFrk      r8   rE   r:   r?   r   )r?   r8   rE   r   r   r,   Zproportional)r   spacinguniform)r   rw   r   r   r2   r   ry   rz   )r   r   r|   r   r4   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   sv   t | |dd) t \}}tddd}|j||d}| d |ks)J W d    d S 1 s4w   Y  d S )N)zlines.linewidthzcontour.linewidth)rcr6   r8   r!   )
linewidthsr   )r   r   r   r   r   r2   r   Zget_linewidths)Zrc_lines_linewidthZrc_contour_linewidthZcall_linewidthsexpectedr   r   r]   r4   r   r   r   test_contour_linewidth  s   	"r   Zpdfc                   C   s    t t ddgddgg d S )Nr:   r?   r!   r8   )r   r3   r   r   r   r   r   test_label_nonagg  s    r   Zcontour_closed_line_loop)r   r>   rB   c                  C   s^   g dg dg dg dg} t jdd\}}|j| dgdgdd	 |d
d |d
d d S )N)r   r   r   )r   r?   r   )r?   r:   r?   )r?   r?   r   r   r   r   )r   alphagg @g@)r   r   r   Zset_xlimZset_ylim)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 )Nrq   rI   )r   r   r   r   ry   r   _contour_generator)r   r   r   r   r   Zqcs1Zqcs2Zqcs3r   r   r   test_quadcontourset_reuse  s   r   Zcontour_manualg{Gz?)r   r>   rB   rD   c            
      C   sr  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 d S )Nr   )
ContourSetr8   r8   r   Zviridisr?   r:   r!   r8   r   r:   r?   T)r   r   rP   k)r   rS   re   r9   rE   )
r:   r?   r?   r?   O   r:   r?   r?   r?   r  )rS   r   )Zmatplotlib.contourr   r   r   )
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}|| d S )N)rE   r9   r   )r   r:   r?   r!   r8   r  g333333?r?   r:   ZdtypeT)r:   r:   )r:   r!   r   r   r  )r   rS   )r   r   r   r   
zeros_likeboolr   rX   ry   rz   r   r   )	r   r   r   r   r   r   r   Zcbarlinesr   r   r   &test_contour_line_start_on_corner_edge  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  r9   r?   r         9@r   r:   Fpixel)r:   r   !   YİØt?r  gb?rp   )r:   r   r9   g`3@gDlpf?gݓ?)r!   r      gͰQo&?ghW!@g|o^}?r9   re   indicesr  )r9   r      gA*Ŏ@g      @gA?)	r   r  r   r   sumr   r   find_nearest_contourr   )xyimgr4   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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  r9   r?   r   r  r   z'Method does not support filled contoursr"   r:   Fr  r  r  )r?   re   T)r   r  r   r   r  r   ry   r$   r%   r   r  )r  r  r4   r   r   r   #test_find_nearest_contour_no_filled7  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㈵?r,   c                 S   s   h | ]}|  qS r   )r\   )r   textr   r   r   	<setcomp>M  s    z<test_contour_autolabel_beyond_powerlimits.<locals>.<setcomp>>   z0.25z4.00z1.00)	r   rW   add_subplotr   r   Z	geomspacer2   r3   Ztexts)r   r4   r   r   r   )test_contour_autolabel_beyond_powerlimitsF  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   	Rectangler:   r   rb   r   r   r   )#FFFF00#FF00FFz#00FFFFrt   r   rl   rn   )z$x \leq -1e+250s$z$10.0 < x \leq 30.0$z$30.0 < x \leq 50.0$z$x > 1e+250s$)rn   r&  r'  rl   c                 3   s    | ]}t | V  qd S N)
isinstancer   ar#  r   r   	<genexpr>b  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,  c      )matplotlib.patchesr$  r   r   r2   r   ry   r   Zset_overZ	set_underchangedlegend_elementsr<   zip)r   r   hr4   artistslabelsZexpected_colorsr   r#  r   test_contourf_legend_elementsP  s$   r7  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 )Nr:   r   rb   )rn   z#00FF00rl   r%  rt   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)  mplr
  ZLine2Dr*  r   r   r   r,  r  s    z/test_contour_legend_elements.<locals>.<genexpr>c                 s   r-  r(  )r	   	get_colorr.  r   r   r   r,  s  r/  )r   r   r2   r   r   r2  r<   r3  )r   r   r4  rS   r4   r5  r6  r   r   r   test_contour_legend_elementsg  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 )NrI   rO   rJ         @	algorithm)	r   rX   r   ry   r)  r   r$   r%   r   )rB  klassr   r4   r   r   r   test_algorithm_namew  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 )	NrI   rO   rJ   r@  F)rB  r   r;  T)r   rX   r   ry   r$   r%   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 ||	 qSd S )NrE  i  rq   rI   r   rE   r  r   )rE   r   )scalesizer  T)r!   re   r   r?   rA  r  )rB  rS   )r   r   Zdefault_rngr   r[   r   r   normalr  r	  r   rX   r   r   r3  ravelry   r   	set_title)
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   rJ   r   rO   r?   r:   )Znrowsr   Tr   )r   rR   zSimplest default with labels)r   r   r   r   r   rW   Z
subfiguresr   r   r3   rK  )r   r   r   r]   r^   r   r   r_   r   Zfigsfr   r   r   r   r   test_subfigure_clabel  s    rO  rC   )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   rJ   r   rO   r?   r:   rE   r  rS   r   TrR   r   z0Single color - positive contours solid (default))rS   
linestylesz!Single color - positive contours rQ  rS   rT  negative_linestyles)
r   r   r   r   r   r   r   r3   rK  rT  )rC   r   r   r   r]   r^   r   r   r_   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   rJ   r   rO   r?   r:   rE   r  rR  r   TrS  z1Single color - negative contours dashed (default)rP  zcontour.negative_linestylez!Single color - negative contours z(using rcParams))rS   rV  rQ  rU  )r   r   r   r   r   r   r   r3   rK  rV  rw   )rC   r   r   r   r]   r^   r   r   r_   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   rW   r!  Zget_childrenr   r   r   r2   r3   remove)r   Zorig_childrenr4   r   r   r   test_contour_remove  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   r:   zcontour\(\) takes from 1 to 4r"   )r_   )r   r   r$   r%   r&   r   )r   r   r}   r   r   r   test_contour_no_args  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   r:   r   )r   )	clip_path)r   r   mpatchesZCircleZ	transAxesr   Zget_clip_path)r   r   r}   circler4   r   r   r   test_contour_clip_path  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 )	Nr?   r   )r!   r!   )FFF)FTFr   r   )r   r   r:   )r   r   r1   r   r2   Zastyper	  r   r   tolistr-   r   rX   ry   rJ  Z
tricontourZtricontourf)r   r   r   mr   r   r   test_bool_autolevel%  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rq   g [n=gvIh%,=g7Q5=gvIh%<=)r   rX   nanr   r   r   r-   )r   r   r   r   test_all_nan6  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   r?   r   r,   r9   r:   r8   )
r   r   r   r   r   r   r   ZallsegsZallkindsr;   )r   r   r   r4   resultr   r   r   test_allsegs_allkinds=  s   $rl  )Wr   platformr'   Zunittestr   Z	contourpynumpyr   Znumpy.testingr   r   Z
matplotlibr8  r   r   r   r   Zmatplotlib.colorsr   r	   r0  Zpatchesrc  Zmatplotlib.testing.decoratorsr
   r   r$   r   r   markZparametrizer   emptyr+   r5   r=   rA   rY   ra   ri   machiner   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   backendr   r   r   r  r  r  r  rC   contextr"  r7  r:  ZMpl2005ContourGeneratorZMpl2014ContourGeneratorZSerialContourGeneratorZThreadedContourGeneratorrD  rF  rM  rO  r]  r^  r`  ra  re  rh  rj  rl  r   r   r   r   <module>   sB   














	


!










	




 
)
