U
    d»{jå.  ã                   @   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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&d!d"d#gdd$d%d d&d'gfd(�e&d!d"d#gd)d$d)d d&d'gfd(�e&d!d"d#gd*d$d*d d&d'gfd(�g¡d+d,„ ƒZ'ej# $d e&d-gd ddd$d d.d/gfd(�e&d!d"d#gd)d$d)d d*d%gfd(�e&d!d"d#gd*d$d*d d0dgfd(�g¡d1d2„ ƒZ(ej# $d e&d!d#d"gd'dd'd dd&gfd(�e&d!d#d"d3gdddd d4d$d5gfd(�e&d3d"d6gdd$d'd dd&gfd(�g¡d7d8„ ƒZ)d9d:„ Z*ej# $d;d<d=d>g¡ej# $d?d@dAdBdCg¡dDdE„ ƒƒZ+e	dFgddGdH�dIdJ„ ƒZ,dKdL„ Z-dMdN„ Z.dOdP„ Z/dS )Qé    )Ú
namedtupleN)Úassert_allclose)Úimage_comparison)ÚMouseButtonÚ
MouseEvent)Ú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© r8   ú^/var/www/html/bwave/python/venv/lib/python3.8/site-packages/matplotlib/tests/test_offsetbox.pyÚtest_offsetbox_clipping   s4    	
ý"þù	



r:   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ªt‚d|_| jsºt‚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ÚstaleÚAssertionErrorZclip_childrenr0   r8   r8   r9   Ú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<   )Úcodesr1   r2   r4   Úcoder7   r8   r8   r9   Útest_offsetbox_loc_codes[   s"    ÷
rL   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ncolsÚmode)r&   r'   ZplotZlegendÚtight_layout)r1   r2   Zd1Zd2r8   r8   r9   Útest_expand_with_tight_layoutp   s    rQ   Úwd_list)é–   r%   r@   )çš™™™™™¹?r%   r   Útotal)éú   r   r   éÿÿÿÿNÚsep)rV   r%   r   rW   rO   )rN   ÚfixedÚequalc                 C   s   t | |||d� d S )N©rO   )r   )rR   rU   rX   rO   r8   r8   r9   Útest_get_packed_offsets}   s    r\   Ú_paramszwd_list, total, sep, expected)r@   r   ©r%   r   )r   r   r%   rE   rA   rC   )rU   rX   Úexpectedr   rB   c                 C   s:   t | ||dd�}|d |d ks$t‚t|d |d ƒ d S )NrY   r[   r   r%   ©r   r>   r   ©rR   rU   rX   r_   Úresultr8   r8   r9   Útest_get_packed_offsets_fixedŽ   s    	rc   )rT   r   gÍÌÌÌÌÌÜ?çÍÌÌÌÌÌì?g      @c                 C   s:   t | ||dd�}|d |d ks$t‚t|d |d ƒ d S )NrN   r[   r   r%   r`   ra   r8   r8   r9   Útest_get_packed_offsets_expandœ   s    	re   )r   r   r   r   )çš™™™™™É?r   c                 C   s:   t | ||dd�}|d |d ks$t‚t|d |d ƒ d S )NrZ   r[   r   r%   r`   ra   r8   r8   r9   Útest_get_packed_offsets_equalª   s    rg   c                	   C   s0   t  t¡� tdgd d d dd� W 5 Q R X d S )Nr^   r@   rZ   )rU   rX   rO   )ÚpytestZraisesÚ
ValueErrorr   r8   r8   r8   r9   Ú1test_get_packed_offsets_equal_total_none_sep_none»   s    rj   Ú
child_typer<   Ú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|t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 ¡  ˆ  ¡  td|j||tjƒ ¡  tˆ ƒdk�rˆˆ d j|k�sŒt‚| dd¡ | dd¡ |j ¡  ˆ  ¡  td|j||tjƒ ¡  tˆ ƒdk�sàt‚d S )Nr<   rB   r   r   )r   rl   )rB   rB   )r   r   rm   u   â– Zfontsize)Z	textpropsFzUnknown picking child type r    )rn   TZ
pick_eventc                    s
   ˆ   | ¡S )N)Úappend)Úevent©Zcallsr8   r9   Ú<lambda>Ø   ó    ztest_picking.<locals>.<lambda>rq   r   éH   rp   Zbutton_press_eventr%   rW   )r
   r-   r(   r)   ÚnpZonesr   r   r>   r&   r'   r   Z
set_pickerr;   Zmpl_connectr,   Ztransform_pointÚdpir<   Úclearr   r   ZLEFTZ_processÚlenZartistr.   r/   )	rk   rn   Zpicking_childÚimr1   r2   ÚabÚxÚyr8   ru   r9   Útest_pickingÀ   s^    








    ÿ"
    ÿ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 textrH   rf   ÚhaÚleft)r"   r$   Úpropr   rI   rG   )r&   r'   r	   r-   )r1   r2   Ztext0Ztext1Ztext2r8   r8   r9   Ú&test_anchoredtext_horizontal_alignmentö   s      ÿ
 ÿ
 ÿr†   c               
   C   s  t j t j¡ t jddd�\} }| ddddg¡ |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 ¡ }| |¡}	| |¡}
d"d#d$d%g}t|	j|d&d'� t|
j|d&d'� | |¡}| |¡}d(d)d*d+g}t|j|d&d'� t|j|d&d'� | |¡}| |¡}d,d-d.d/g}t|j|d&d'� t|j|d&d'� t ¡ }| j|d0d1� | d¡ t  |¡j}d2}t||d&d'� | j ¡  |   ¡  | j ¡  d S )3N)rA   r@   r   )Zfigsizerz   r   r%   Z
Annotation)rd   rd   )çš™™™™™ñ?r‡   ú->)Ú
arrowstyleFZbaseliner„   )ZxyZxytextÚ
arrowpropsZclip_onÚvarƒ   é   Tr   )iöÿÿÿé   é    r   ©gš™™™™™É¿r   rr   ro   ©r   r   ©ÚxyboxÚxycoordsrn   Zbox_alignmentrŠ   r   r@   )Zzoom)r   g333333Ó¿)r   éK   zoffset pointsç333333Ó?)r’   r“   rn   r$   rŠ   gfffffÎt@gš™™™™Yn@g     0}@gfffff®r@r   )Zatolgš™™™™™1Àg      `@gfffffi@gÍÌÌÌÌüd@g     €f@g      @Àg     Àl@gš™™™™9W@Ztight)Zbbox_inches)i^  iø  rA   )!r&   ZrcParamsÚupdateZrcParamsDefaultr'   ZaxisZannotateÚdictr
   r(   ZCircler-   r   r   ry   ÚrandomZrandrl   Zaxesr;   r<   Zget_rendererZget_window_extentZget_tightbboxr   ZextentsÚioÚBytesIOZsavefigÚseekZimreadÚshaperP   )r1   r2   Zan1r4   ÚpZab3r}   Zab6ÚrendererZbb1wZbb1eZtarget1Zbb3wZbb3eZtarget3Zbb6wZbb6eZtarget6Úbufrœ   Ztargetshaper8   r8   r9   Útest_annotationbbox_extents  sj    
  þ
 þ
 ý










r    c                   C   s   t dd�jdkst‚d S )Né*   )Úzorder)r   r¢   r>   r8   r8   r8   r9   Útest_zorderH  s    r£   c               	   C   sX   t dddddd�} dddœ}t| ddgd	d
dd|d�}|j|k	sDt‚|d dksTt‚d S )NrŒ   r   Tr   rˆ   )r•   gffffffæ?)r‰   Úrelposr   r�   rr   ro   r�   r‘   r¤   )r
   r   rŠ   r>   )r4   rŠ   r~   r8   r8   r9   Útest_arrowprops_copiedL  s    
 þr¥   )0Úcollectionsr   r™   Únumpyry   Znumpy.testingr   rh   Zmatplotlib.testing.decoratorsr   Zmatplotlib.pyplotZpyplotr&   Zmatplotlib.patchesZpatchesr(   Zmatplotlib.linesÚlinesr*   Zmatplotlib.backend_basesr   r   Zmatplotlib.offsetboxr   r   r	   r
   r   r   r   r   r:   r?   rL   rQ   ÚmarkZparametrizer\   Z_Paramsrc   re   rg   rj   r�   r†   r    r£   r¥   r8   r8   r8   r9   Ú<module>   sÆ   (
"%ÿ	
   ÿ   ÿ   ÿû
   ÿ   ÿ   ÿû
   ÿ
  þ  þú
ÿÿ2
C