a
    ëÝEbøB  ã                   @   sþ  d dl Z d dlZd dlZd dlZd dlmZ d dlZd dl	m
Z
 d dlmZmZ d dl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d d!„ Zd"d#„ Ze
d$gd%d&d'�d(d)„ ƒZe
d*gd%d+�d,d-„ ƒZe
d.gd/d&d'�d0d1„ ƒZe
d2gd%d&e ¡ d3k�rd nd4d5�d6d7„ ƒZ e
d8d9gd%d+�d:d;„ ƒZ!d<d=„ Z"d>d?„ Z#ej d@dAe$dBfdCe%dDfd ggd ggg gdd%d fe%dEfd ggd ggd ggdd%d fe%dFfg e dG¡ &dH¡gdI ¢d gg‘d%‘d ‘R e%dJfg¡dKdL„ ƒZ'dMdN„ Z(dOdP„ Z)ej dQg dR¢¡dSdT„ ƒZ*e
dUgd%d&dVd5�dWdX„ ƒZ+e
dYgd%d&dZd5�d[d\„ ƒZ,e
d]gd^gd%d&d_�d`da„ ƒZ-ej dbg dc¢¡ddde„ ƒZ.ej /df¡dgdh„ ƒZ0e
digd^gd%dj�dkdl„ ƒZ1dmdn„ Z2e
dogd^gd%dj�dpdq„ ƒZ3e
drgd^gd%dj�dsdt„ ƒZ4ej5 6du¡dvdw„ ƒZ7dS )xé    N)Úassert_array_almost_equal)Úimage_comparison)ÚpyplotÚ
rc_context)ÚLogNormc                  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   ú]/home/ja/django-apps/lartica_env/lib/python3.9/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   sN   t  ¡ \}}tjtt |¡d�� |j| Ž  W d   ƒ n1 s@0    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   sr   t  d¡} t j d¡}t ¡ \}}t t¡�"}|j| | |g d� W d   ƒ n1 sT0    Y  t	|ƒdksnJ ‚d S )Nr	   r   ©Úlevelsé   )
r   r   r   r   r   r   ÚwarnsÚUserWarningr   Úlen©r   r   r   r   Úrecordr   r   r   Útest_contour_empty_levels?   s    
0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   é   é   r)   r'   )	r   r   Úreshaper   r   r   r,   r(   Úall)r   r   r   Zcs1Zcs2r   r   r   Útest_contour_NlevelsJ   s    r6   c                  C   sˆ   t  d¡} t  d¡}t ¡ \}}ddi}t t¡�2}|j| | |dgd�}|j	||d� W d   ƒ n1 sj0    Y  t
|ƒdks„J ‚d S )Nr	   r   ç      ð?z%1.2fr'   )Úfmtr)   )r   r   Zzerosr   r   r   r*   r+   r   Úclabelr,   )r   r   r   r   r8   r.   Úcsr   r   r   Útest_contour_badlevel_fmtU   s    

,r;   c                  C   sl   t  d¡} t  d¡}t ¡ \}}t t¡�}| | | |¡ W d   ƒ n1 sN0    Y  t	|ƒdkshJ ‚d S )Nr	   r   r)   )
r   r   Zonesr   r   r   r*   r+   r   r,   r-   r   r   r   Útest_contour_uniform_ze   s    

,r<   Zcontour_manual_labelsTZmpl20)Úremove_textÚstylec                  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?   éÈ   )ÚfigsizeZdpi))r7   ç      @)r7   çš™™™™™@)r7   ç      @)Úmanual))ç       @rC   )rG   rD   )rG   rE   Úsmall)ÚrÚg)rF   ZfontsizeÚcolors)r   r   r   ÚmaxÚdstackÚabsr   Úfigurer   Úarrayr9   )r   r   r   r:   Zptsr   r   r   Útest_contour_manual_labelsp   s     rQ   z$contour_manual_colors_and_levels.png)r=   c                  C   sØ   dt jd< t  dd¡\} }t d¡ dd¡}g d¢}g d¢}t|jƒD ]Œ\}}|d d	k}g d
¢|d  }|rª|dv rzdnd }	|dv rŠdnd }
|j|||	|
… ||d�}n|j	||d d… ||d�}t j
||d� qFd S )NFúpcolormesh.snapr?   r2   r0   r   )ÚredÚyellowZpinkÚblueÚblack)r?   r2   é   r   ç        )ÚneitherÚminrL   Úboth)rL   rY   r)   )rZ   rY   éÿÿÿÿ)rK   r(   Úextend©r   )r   ÚrcParamsr   r   r   r4   Ú	enumerateZflatÚcontourfr   Úcolorbar)Ú_ÚaxsÚdatarK   r(   Úir   Úfilledr]   Zfirst_colorZ
last_colorÚcr   r   r   Ú$test_given_colors_levels_and_extends}   s$    
ÿÿri   zcontour_datetime_axis.pngFc                     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¡ �q�qd S )Ngš™™™™™Ù?g\�Âõ(\ï?g333333Ã?)ZhspaceÚtopÚbottomiÝ  r)   c                    s   g | ]}ˆ t j|d � ‘qS ))Údays)ÚdatetimeÚ	timedelta)Ú.0Úd©Úbaser   r   Ú
<listcomp>¢   ó    z.test_contour_datetime_axis.<locals>.<listcomp>é   éÝ   éÞ   r   )Zaxiséß   éà   Úrighté   )r   rO   Úsubplots_adjustrm   r   rP   Úranger   r   Zsubplotr   ra   ÚrepeatZnewaxisZget_axesZget_xticklabelsZset_haZset_rotation)r   r   r   Zz1Zz2r   r   Úlabelr   rq   r   Útest_contour_datetime_axisœ   s*    





r€   z!contour_test_label_transforms.pngÚx86_64g{®Gáz´?)r=   r>   Ztolc                  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� qÚ|D ]\}}|
j	||ddd� qúd S )Ngš™™™™™™?g      ÀrC   g       ÀrG   r?   r)   g      ø?ç      à?ç      $@))éØ   é±   )ig  i"  )i	  i–  ))éþÿÿÿr‚   )r   g      ø¿)gffffff@r)   T)ÚinlineZ	transformF)
r   r   r   ÚexpÚpir   r   r   r9   Zadd_label_near)Údeltar   r   ÚXÚYZZ1ZZ2ÚZr   r   ÚCSZ
disp_unitsZ
data_unitsr   r   r   Útest_labels¶   s$    &*ÿr�   zcontour_corner_mask_False.pngzcontour_corner_mask_True.pngc                  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� q’d S )Né<   çffffffî?r7   r)   r   rG   é   rW   ©Úmask)FT©Úcorner_mask)r   r   Úseedr   ÚlinspaceÚcosÚsinÚrandÚmarP   r   rO   ra   )ÚnZ
mask_levelZ	noise_ampr   r   r   r”   r–   r   r   r   Útest_corner_maskÕ   s    $.rž   c                  C   sV   ddgddgg} t  ¡  t t¡�  t  | ddg¡ W d   ƒ n1 sH0    Y  d S )Ngš™™™™™¹?g333333Ó?r‚   çffffffæ?r7   rX   )r   rO   r   r    Ú
ValueErrorra   )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 )	Nr0   r1   r2   T)ZnbinsZ	symmetric)Úlocatoriôÿÿÿr3   )	r   r   r4   r   ZMaxNLocatorra   r   r(   r˜   )r   r¢   r:   r   r   r   Útest_contourf_symmetric_locatorï   s    r£   zargs, cls, messager   z,function takes exactly 6 arguments (0 given))r)   r?   r   r2   r3   r@   z#Expected 2-dimensional array, got 0z9x, y and z must all be 2D arrays with the same dimensionsz*x, y and z must all be at least 2x2 arraysr2   ©r?   r?   r   zCIf mask is set it must be a 2D array with the same dimensions as x.c                 C   sP   ddl m} tj|t |¡d�� tjj| Ž  W d   ƒ n1 sB0    Y  d S )Nr   ©Ú_contourr   )Ú
matplotlibr¦   r   r    r"   r#   ÚmplÚQuadContourGenerator)r$   Úclsr%   r¦   r   r   r   Útest_internal_cpp_api÷   s    r«   c                  C   sp   ddl m}  ddgddgg}tj |||d dd¡}tjtdd�� | dd¡ W d   ƒ n1 sb0    Y  d S )	Nr   r¥   r)   r?   r   Tz(filled contour levels must be increasingr   )r§   r¦   r¨   r©   r   r    r    Zcreate_filled_contour)r¦   ZarrZqcgr   r   r   Útest_internal_cpp_api_2	  s    ÿr¬   c                  C   sT   t  t  ddd¡t  ddd¡¡\} }t  | |¡}t ¡  t | ||¡}t |¡ d S )Nr†   r?   r2   )r   r   r˜   Úhypotr   rO   r   r9   )r   r   rI   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 r¤d| }n|}|D ]}| ¡ |ks¬J ‚q¬|D ]}| ¡ |ksÆJ ‚qÆd S )Nr   r   r?   )Zncols)Úzorder)r±   Úuse_clabeltext)r   r   r   rL   rM   rN   r   r   r   ra   r9   Z
get_zorder)r²   Zcontour_zorderZclabel_zorderr   r   r   r   Úax1Úax2r:   Z	cs_filledZclabels1Zclabels2Zexpected_clabel_zorderr9   r   r   r   Útest_clabel_zorder  s      ÿ
rµ   zcontour_log_extension.pngg´Èv¾Ÿ÷?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sîJ ‚t j|	|d�}|j ¡ dk�sJ ‚t j|
|d�}d S )NFrR   r)   r   )r   r3   ©rB   gš™™™™™©?r‘   )Úleftrz   g      Àg      #@i°  r   r{   é(   g      Àg      @rƒ   )ZvminZvmax)ÚnormrY   )r(   r¹   r]   r[   r^   )g:Œ0âŽyE>g    _ B)ç-Cëâ6?g    €„.A)r   r_   r   r|   r   r˜   Úpowerr4   r   ra   r   rZ   rL   rb   r   Úget_ylim)r   r³   r´   Zax3Zdata_expre   Z
levels_expr(   Úc1Úc2Úc3Úcbr   r   r   Útest_contourf_log_extension7  s.    
ÿþþrÁ   zcontour_addlines.pngg¸…ëQ¸ž?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 )
NFrR   i,N,r   i'  iè  gdÌ]KÈ“\@g6«>W'zÃ@r   )r   r_   r   r   r   r—   r›   Z
pcolormeshr   rb   Ú	add_linesr   r   r¼   )r   r   r‹   ZpcmÚcontrÀ   r   r   r   Útest_contour_addlines[  s    



rÄ   Zcontour_unevenZpng)Úbaseline_imagesÚ
extensionsr=   r>   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 )NFrR   é   r2   r@   r)   r?   r   )r?   r2   r@   r   ru   r'   Zproportional)r   ÚspacingÚuniform)r   r_   r   r   r4   r   ra   rb   )r   r   rd   r   r:   r   r   r   Útest_contour_unevenn  s    
rÊ   zCrc_lines_linewidth, rc_contour_linewidth, call_linewidths, expected))ç®Gáz®ó?NNrË   )rË   çö(\�Âõ@NrÌ   )rË   rÌ   ç®Gáz@rÍ   c                 C   sv   t | |dœd��R t ¡ \}}t d¡ dd¡}|j||d�}|jd d |ksTJ ‚W d   ƒ n1 sh0    Y  d S )N)zlines.linewidthzcontour.linewidth)Úrcr0   r2   r   )Ú
linewidthsr   )r   r   r   r   r   r4   r   Ztlinewidths)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 )Nr)   r?   r   r2   )r   r9   r   r   r   r   r   Útest_label_nonagg�  s    rÒ   Zcontour_closed_line_loop)rÅ   rÆ   r=   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‚   ru   rŸ   )rÏ   Úalphagš™™™™™¹¿gÍÌÌÌÌÌ @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sXJ ‚| ||¡}|j|jkstJ ‚d S )NrX   r7   )r   r   r   r   ra   r   Z_contour_generator)r   r   r   r   r   Zqcs1Zqcs2Zqcs3r   r   r   Útest_quadcontourset_reuse¡  s    rÕ   Zcontour_manualc            
      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)r2   r2   r¶   Zviridisr?   r)   r   r2   ©r   r)   r?   T)rg   ÚcmaprI   Úk)rÏ   rK   r’   r3   r@   )
r)   r?   r?   r?   éO   r)   r?   r?   r?   rÚ   )rK   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)r@   r3   r¶   )r   r)   r?   r   r2   r×   g333333ó?r?   r)   )ZdtypeT)r)   r)   )r)   r   r“   r•   rÙ   )r–   rK   )r   r   r   r   Z
zeros_likeÚboolrœ   rP   ra   rb   r   rÂ   )	r   r   r   r   r   r”   rg   ZcbarÚlinesr   r   r   Ú&test_contour_line_start_on_corner_edgeÈ  s    
rß   Údefaultc                  C   sZ   t  ¡  ¡ } t jt ddd¡ dd¡g d¢d�}|  |¡ dd„ | jD ƒh d	£ksVJ ‚d S )
Ng�íµ ÷Æ°>rº   éd   r   )gñhãˆµøÄ>gñhãˆµøä>gñhãˆµø?r'   c                 S   s   h | ]}|  ¡ ’qS r   )Zget_text)ro   Útextr   r   r   Ú	<setcomp>à  rt   z<test_contour_autolabel_beyond_powerlimits.<locals>.<setcomp>>   z0.25z1.00z4.00)	r   rO   Zadd_subplotr   r   Z	geomspacer4   r9   Ztexts)r   r:   r   r   r   Ú)test_contour_autolabel_beyond_powerlimitsÙ  s    ÿ
rä   )8rm   Úplatformr"   Únumpyr   Znumpy.testingr   r§   r¨   Zmatplotlib.testing.decoratorsr   r   r   r   Zmatplotlib.colorsr   r   r   r   ÚmarkZparametrizer   Úemptyr&   r/   r6   r;   r<   rQ   ri   r€   Úmachiner�   rž   r¡   r£   r!   r    r4   r«   r¬   r®   rµ   rÁ   rÄ   rÊ   rÑ   ÚbackendrÒ   rÔ   rÕ   rÜ   rß   r>   Úcontexträ   r   r   r   r   Ú<module>   sþ   
ÿÿÿÿÿÿÿÿÿÿí


ÿ
þ
ÿþ
ÿÿÿÿ,ÿ÷
		ÿ
þ
!ÿ
ÿ
ÿ


ÿ

ÿ
ÿ

