a
    ëÝEb÷,  ã                   @   s²  d dl m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 d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZ e	dgdd	�d
d„ ƒZdd„ Zdd„ Z dd„ Z!ej" #ddgdgd dgdgd f¡ej" #dd¡ej" #dd¡ej" #dd¡dd„ ƒƒƒƒZ$edd ƒZ%ej" #d e%g d!¢dd"d#g d$¢fd%�e%g d!¢d&d"d&g d$¢fd%�e%g d!¢d'd"d'g d$¢fd%�g¡d(d)„ ƒZ&ej" #d e%d*gd ddd"g d+¢fd%�e%g d!¢d&d"d&g d,¢fd%�e%g d!¢d'd"d'g d-¢fd%�g¡d.d/„ ƒZ'ej" #d e%g d0¢d1dd1g d2¢fd%�e%g d3¢dddg d4¢fd%�e%g d5¢dd"d1g d2¢fd%�g¡d6d7„ ƒZ(d8d9„ Z)ej" #d:g d;¢¡ej" #d<g d=¢¡d>d?„ ƒƒZ*e	d@gddAdB�dCdD„ ƒZ+dEdF„ Z,dGdH„ Z-dS )Ié    )Ú
namedtupleN)Úassert_allclose)Úimage_comparison)ÚMouseButton)ÚAnchoredOffsetboxÚAnnotationBboxÚAnchoredTextÚDrawingAreaÚ	OffsetBoxÚOffsetImageÚTextAreaÚ_get_packed_offsetsZoffsetbox_clippingT)Úremove_textc               	   C   s®   t  ¡ \} }d}t||dd�}tjd||dddd�}tj| d	 |d
 g|d |d gddd�}td|ddd|jdd�}| 	|¡ | 	|¡ | 	|¡ | 
d¡ | d¡ d S )Néd   T©Zclip©r   r   ú#CCCCCCÚNoner   ©Z	facecolorZ	edgecolorÚ	linewidthç      à?ç      ø?é   Úblacké
   ©Úcolorr   Úcenterç        F©r   r   ©ÚlocÚchildÚpadZframeonZbbox_to_anchorZbbox_transformZ	borderpad)r   é   )ÚpltÚsubplotsr	   ÚmpatchesÚ	RectangleÚmlinesÚLine2Dr   Ú	transAxesÚ
add_artistÚset_xlimÚset_ylim©ÚfigÚaxÚsizeÚdaÚbgÚlineÚanchored_box© r7   ú_/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_offsetbox.pyÚtest_offsetbox_clipping   s4    	
ý"þù	



r9   c               	   C   s¾   t  ¡ \} }d}t||dd�}tjd||dddd�}tj| d	 |d
 g|d |d gddd�}td|ddd|jdd�}| 	|¡ | 	|¡ | 	|¡ | j
 ¡  | jrªJ ‚d|_| jsºJ ‚d S )Nr   Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   Fr   r    )r%   r&   r	   r'   r(   r)   r*   r   r+   r,   ÚcanvasÚdrawÚstaleZclip_childrenr/   r7   r7   r8   Útest_offsetbox_clip_children6   s8    
ý"þù	




r=   c                  C   s^   ddddddddd	d
dœ
} t  ¡ \}}tddƒ}| D ]}t||d�}| |¡ q4|j ¡  d S )Nr$   r   é   é   é   é   é   é   é	   r   )
zupper rightz
upper leftz
lower leftzlower rightÚrightúcenter leftúcenter rightzlower centerzupper centerr   r   )r!   r"   )r%   r&   r	   r   r,   r:   r;   )Úcodesr0   r1   r3   Úcoder6   r7   r7   r8   Útest_offsetbox_loc_codes[   s"    ÷
rJ   c                  C   sR   t  ¡ \} }ddg}ddg}|j|dd� |j|dd� |jddd� |  ¡  d S )Nr$   r   zseries 1)Úlabelzseries 2Úexpand)ZncolÚmode)r%   r&   ZplotZlegendÚtight_layout)r0   r1   Zd1Zd2r7   r7   r8   Útest_expand_with_tight_layoutp   s    rO   Úwd_list)é–   r$   r>   )çš™™™™™¹?r$   r   Útotal)éú   r   r   éÿÿÿÿNÚsep)rT   r$   r   rU   rM   )rL   ÚfixedÚequalc                 C   s   t | |||d� d S )N©rM   )r   )rP   rS   rV   rM   r7   r7   r8   Útest_get_packed_offsets}   s    rZ   Ú_paramszwd_list, total, sep, expected)©r>   r   ©r$   r   ©r   r   r$   rC   )r   r?   rA   )rS   rV   Úexpectedr   r@   c                 C   s:   t | ||dd�}|d |d ks$J ‚t|d |d ƒ d S )NrW   rY   r   r$   ©r   r   ©rP   rS   rV   r_   Úresultr7   r7   r8   Útest_get_packed_offsets_fixedŽ   s    	rc   )rR   r   )r   gÍÌÌÌÌÌÜ?çÍÌÌÌÌÌì?)r   r@   rC   )r   g      @r>   c                 C   s:   t | ||dd�}|d |d ks$J ‚t|d |d ƒ d S )NrL   rY   r   r$   r`   ra   r7   r7   r8   Útest_get_packed_offsets_expandœ   s    	re   )r\   r^   r]   rA   )r   r   r?   )r\   r^   r]   ©r   r   )r   r   r$   r   )rf   r]   )çš™™™™™É?r   c                 C   s:   t | ||dd�}|d |d ks$J ‚t|d |d ƒ d S )NrX   rY   r   r$   r`   ra   r7   r7   r8   Útest_get_packed_offsets_equalª   s    rh   c                   C   sD   t  t¡�& tdgd d d dd� W d   ƒ n1 s60    Y  d S )Nr]   r>   rX   )rS   rV   rM   )ÚpytestZraisesÚ
ValueErrorr   r7   r7   r7   r8   Ú1test_get_packed_offsets_equal_total_none_sep_none»   s    rk   Ú
child_type)r;   ÚimageÚtextÚ	boxcoords)úaxes fractionúaxes pixelsúaxes pointsÚdatac           	         sØ  | dkr,t ddƒ}| tjddddd�¡ nP| dkrPt d¡}d|d< t|ƒ}n,| d	krjtd
ddid�}nds|J d| › �ƒ‚t 	¡ \}}t
|d|d�}| d¡ | |¡ g ‰ |j d‡ fdd„¡ |dk�r|j d¡\}}|d|j d 7 }|d|j d 7 }n<|dk�r0|j d¡\}}|d7 }|d7 }n|j d¡\}}|j ¡  ˆ  ¡  |j ||tj¡ tˆ ƒdk�r‚ˆ d j|k�s†J ‚| dd¡ | dd¡ |j ¡  ˆ  ¡  |j ||tj¡ tˆ ƒdk�sÔJ ‚d S )Nr;   r@   r   r   )r   rm   )r@   r@   )r   r   rn   u   â– Zfontsize)Z	textpropsFzUnknown picking child type r   )ro   TZ
pick_eventc                    s
   ˆ   | ¡S )N)Úappend)Úevent©Zcallsr7   r8   Ú<lambda>Ø   ó    ztest_picking.<locals>.<lambda>rr   r   éH   rq   r$   rU   )r	   r,   r'   r(   ÚnpZonesr   r   r%   r&   r   Z
set_pickerr:   Zmpl_connectr+   Ztransform_pointÚdpir;   ÚclearZbutton_press_eventr   ÚLEFTÚlenZartistr-   r.   )	rl   ro   Zpicking_childÚimr0   r1   ÚabÚxÚyr7   rv   r8   Útest_pickingÀ   sF    








"
rƒ   zanchoredtext_align.pngZmpl20)r   Ústylec                  C   sj   t  ¡ \} }tdddddid�}| |¡ tdddddid�}| |¡ tddddd	id�}| |¡ d S )
Nztest
test long textrF   rg   ÚhaÚleft)r!   r#   Úpropr   rG   rE   )r%   r&   r   r,   )r0   r1   Ztext0Ztext1Ztext2r7   r7   r8   Ú&test_anchoredtext_horizontal_alignmentô   s    ÿ
ÿ
ÿrˆ   c               
   C   s  t j t j¡ t jddd�\} }| g d¢¡ |jdddtdd	�d
ddd�}tdddddd�}t	 
dd¡}| |¡ t|ddgddddtdd	�d�}| |¡ ttj dd¡dd�}||j_t|ddddd tdd	�d!�}| |¡ | j ¡  | j ¡ }| |¡}	| |¡}
g d"¢}t|	j|d#d$� t|
j|d#d$� | |¡}| |¡}g d%¢}t|j|d#d$� t|j|d#d$� | |¡}| |¡}g d&¢}t|j|d#d$� t|j|d#d$� t ¡ }| j|d'd(� | d¡ t  |¡j}d)}t||d#d$� | j ¡  |   ¡  | j ¡  d S )*N)r?   r>   r   )Zfigsizer{   )r   r$   r   r$   Z
Annotation)rd   rd   )çš™™™™™ñ?r‰   z->)Z
arrowstyleFZbaseliner†   )ZxyZxytextÚ
arrowpropsZclip_onÚvar…   é   r   Tr   )iöÿÿÿé   é    r   )gš™™™™™É¿r   rs   rp   )r   r   )ÚxyboxÚxycoordsro   Zbox_alignmentrŠ   r   r>   )Zzoom)r   g333333Ó¿)r   éK   zoffset pointsg333333Ó?)r�   r�   ro   r#   rŠ   )gfffffÎt@gš™™™™Yn@g     0}@gfffff®r@r   )Zatol)gš™™™™™1Àg      `@gfffffi@gÍÌÌÌÌüd@)g     €f@g      @Àg     Àl@gš™™™™9W@Ztight)Zbbox_inches)i^  iø  r?   )!r%   ZrcParamsÚupdateZrcParamsDefaultr&   ZaxisZannotateÚdictr	   r'   ZCircler,   r   r   rz   ÚrandomZrandrm   Zaxesr:   r;   Zget_rendererZget_window_extentZget_tightbboxr   ZextentsÚioÚBytesIOZsavefigÚseekZimreadÚshaperN   )r0   r1   Zan1r3   ÚpZab3r   Zab6ÚrendererZbb1wZbb1eZtarget1Zbb3wZbb3eZtarget3Zbb6wZbb6eZtarget6Úbufr˜   Ztargetshaper7   r7   r8   Útest_annotationbbox_extents  sb    

þ
þ
ý










rœ   c                   C   s   t dd�jdksJ ‚d S )Né*   )Úzorder)r
   rž   r7   r7   r7   r8   Útest_zorderF  s    rŸ   ).Úcollectionsr   r•   Únumpyrz   Znumpy.testingr   ri   Zmatplotlib.testing.decoratorsr   Zmatplotlib.pyplotZpyplotr%   Zmatplotlib.patchesZpatchesr'   Zmatplotlib.linesÚlinesr)   Zmatplotlib.backend_basesr   Zmatplotlib.offsetboxr   r   r   r	   r
   r   r   r   r9   r=   rJ   rO   ÚmarkZparametrizerZ   Z_Paramsrc   re   rh   rk   rƒ   rˆ   rœ   rŸ   r7   r7   r7   r8   Ú<module>   sŽ   (
"%ÿ	
ÿÿÿû
ÿÿÿû
ÿ

þ

þú
ÿ0
C