a
    s=ic.                     @   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&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.dIdJ Z/dS )K    )
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 )Nd   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   p/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/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rJ d|_| jsJ 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_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"    
rK   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plotlegendtight_layout)r1   r2   d1d2r8   r8   r9   test_expand_with_tight_layoutp   s    rS   wd_list)   r%   r?   )皙?r%   r   total)   r   r   Nsep)rX   r%   r   rY   rN   )rM   fixedequalc                 C   s   t | |||d d S )NrN   )r   )rT   rW   rZ   rN   r8   r8   r9   test_get_packed_offsets}   s    r^   _paramszwd_list, total, sep, expected)r?   r   r%   r   r   r   r%   rD   )r   r@   rB   )rW   rZ   expectedr   rA   c                 C   s:   t | ||dd}|d |d ks$J t|d |d  d S )Nr[   r]   r   r%   r   r   rT   rW   rZ   rc   resultr8   r8   r9   test_get_packed_offsets_fixed   s    	rg   )rV   r   )r   g??)r   rA   rD   )r   g      @r?   c                 C   s:   t | ||dd}|d |d ks$J t|d |d  d S )NrM   r]   r   r%   rd   re   r8   r8   r9   test_get_packed_offsets_expand   s    	ri   )r`   rb   ra   rB   )r   r   r@   )r`   rb   ra   r   r   )r   r   r%   r   )rj   ra   )皙?r   c                 C   s:   t | ||dd}|d |d ks$J t|d |d  d S )Nr\   r]   r   r%   rd   re   r8   r8   r9   test_get_packed_offsets_equal   s    rl   c                   C   sD   t t& tdgd d d dd W d    n1 s60    Y  d S )Nra   r?   r\   )rW   rZ   rN   )pytestZraises
ValueErrorr   r8   r8   r8   r9   1test_get_packed_offsets_equal_total_none_sep_none   s    ro   
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     td|j||tj  t dkr d j|ksJ |dd |dd |j     td|j||tj  t dksJ d S )Nr<   rA   r   r   )r   rq   )rA   rA   )r   r   rr   u   ■Zfontsize)Z	textpropsFzUnknown picking child type r    )rs   TZ
pick_eventc                    s
     | S )N)append)eventZcallsr8   r9   <lambda>       ztest_picking.<locals>.<lambda>rv   r   H   ru   Zbutton_press_eventr%   rY   )r
   r-   r(   r)   npZonesr   r   r&   r'   r   Z
set_pickerr;   Zmpl_connectr,   Ztransform_pointdpir<   clearr   r   LEFTZ_processlenZartistr.   r/   )	rp   rs   Zpicking_childimr1   r2   abxyr8   rz   r9   test_picking   sN    








"
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 textrG   rk   haleft)r"   r$   propr   rH   rF   )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\} }|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)rh   rh   )皙?r   ->)
arrowstyleFZbaseliner   )ZxyZxytext
arrowpropsZclip_onvar      r   Tr   )i       r   gɿr   rw   rt   r   r   xyboxxycoordsrs   Zbox_alignmentr   r   r?   )Zzoom)r   g333333ӿ)r   K   zoffset points333333?)r   r   rs   r$   r   )gffffft@gYn@g     0}@gfffffr@r   )Zatol)g1g      `@gfffffi@gd@)g     f@g      @g     l@g9W@Ztight)Zbbox_inches)i^  i  r@   )!r&   ZrcParamsupdateZrcParamsDefaultr'   ZaxisZannotatedictr
   r(   ZCircler-   r   r   r~   randomZrandrq   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  sb    














r   c                   C   s   t ddjdksJ d S )N*   )zorder)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|usDJ |d dksTJ d S )Nr   r   Tr   r   )r   gffffff?)r   relposr   r   rw   rt   r   r   r   )r
   r   r   )r4   r   r   r8   r8   r9   test_arrowprops_copiedL  s    
r   )0collectionsr   r   numpyr~   Znumpy.testingr   rm   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>   rK   rS   markZparametrizer^   Z_Paramsrg   ri   rl   ro   r   r   r   r   r   r8   r8   r8   r9   <module>   s   (
"%	







2
C