o
    tBh,                     @   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_offsets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clipr   r   #CCCCCCNoner   	facecolor	edgecolor	linewidth      ?      ?   black
   colorr   center        Fr   r   locchildpadframeonbbox_to_anchorbbox_transform	borderpad)r      )pltsubplotsr	   mpatches	RectanglemlinesLine2Dr   	transAxes
add_artistset_xlimset_ylimfigaxsizedabglineanchored_box r?   v/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/matplotlib/tests/test_offsetbox.pytest_offsetbox_clipping   s4   	
"
	


rA   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rUJ 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/   r0   r1   r2   r   r3   r4   canvasdrawstaleclip_childrenr7   r?   r?   r@   test_offsetbox_clip_children6   s8   
"
	



rF   c                  C   s^   ddddddddd	d
d
} t  \}}tdd}| D ]}t||d}|| q|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   r4   rB   rC   )codesr8   r9   r;   coder>   r?   r?   r@   test_offsetbox_loc_codes[   s"   
rS   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)ncolmode)r-   r.   plotlegendtight_layout)r8   r9   d1d2r?   r?   r@   test_expand_with_tight_layoutp   s   r]   wd_list)   r,   rG   )皙?r,   r   total)   r   r   Nsep)rb   r,   r   rc   rW   )rU   fixedequalc                 C   s   t | |||d d S )NrW   )r   )r^   ra   rd   rW   r?   r?   r@   test_get_packed_offsets}   s   rh   _paramszwd_list, total, sep, expected)rG   r   r,   r   r   r   r,   rL   )r   rH   rJ   )ra   rd   expectedr   rI   c                 C   :   t | ||dd}|d |d ksJ t|d |d  d S )Nre   rg   r   r,   r   r   r^   ra   rd   rm   resultr?   r?   r@   test_get_packed_offsets_fixed      	rr   )r`   r   )r   g??)r   rI   rL   )r   g      @rG   c                 C   rn   )NrU   rg   r   r,   ro   rp   r?   r?   r@   test_get_packed_offsets_expand   rs   ru   )rj   rl   rk   rJ   )r   r   rH   )rj   rl   rk   r   r   )r   r   r,   r   )rv   rk   )皙?r   c                 C   rn   )Nrf   rg   r   r,   ro   rp   r?   r?   r@   test_get_packed_offsets_equal   s   rx   c                   C   sF   t t tdgd d d dd W d    d S 1 sw   Y  d S )Nrk   rG   rf   )ra   rd   rW   )pytestraises
ValueErrorr   r?   r?   r?   r@   1test_get_packed_offsets_equal_total_none_sep_none   s   "r|   
child_type)rC   imagetext	boxcoords)axes fractionaxes pixelsaxes pointsdatac           	         s  | dkrt dd}|tjddddd n&| dkr(td}d|d< t|}n| d	kr5td
ddid}n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r|jd\}}|d7 }|d7 }n|jd\}}|j     |j||tj t dkr d j|ksJ |dd |dd |j     |j||tj t dksJ d S )NrC   rI   r   r   )r   r~   )rI   rI   )r   r   r   u   ■fontsize)	textpropsFzUnknown picking child type r#   )r   T
pick_eventc                    s
     | S )N)append)eventcallsr?   r@   <lambda>   s   
 ztest_picking.<locals>.<lambda>r   r   H   r   r,   rc   )r	   r4   r/   r0   nponesr   r   r-   r.   r   
set_pickerrB   mpl_connectr3   transform_pointdpirC   clearbutton_press_eventr   LEFTlenartistr5   r6   )	r}   r   picking_childimr8   r9   abxyr?   r   r@   test_picking   sF   







r   zanchoredtext_align.png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 textrO   rw   haleft)r%   r'   propr!   rP   rN   )r-   r.   r   r4   )r8   r9   text0text1text2r?   r?   r@   &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)rH   rG   r   )figsizer   )r   r,   r   r,   
Annotation)rt   rt   )皙?r   z->)
arrowstyleFbaseliner   )xyxytext
arrowpropsclip_onvar      r   Tr   )i       r   )gɿr   r   r   )r"   r   )xyboxxycoordsr   box_alignmentr   r   rG   )zoom)r   g333333ӿ)r   K   zoffset pointsg333333?)r   r   r   r'   r   )gffffft@gYn@g     0}@gfffffr@r   )atol)g1g      `@gfffffi@gd@)g     f@g      @g     l@g9W@tight)bbox_inches)i^  i  rH   )!r-   rcParamsupdatercParamsDefaultr.   axisannotatedictr	   r/   Circler4   r   r   r   randomrandr~   axesrB   rC   get_rendererget_window_extentget_tightbboxr   extentsioBytesIOsavefigseekimreadshaperZ   )r8   r9   an1r;   pab3r   ab6rendererbb1wbb1etarget1bb3wbb3etarget3bb6wbb6etarget6bufr   targetshaper?   r?   r@   test_annotationbbox_extents  sb   














r   c                   C   s   t ddjdks
J d S )N*   )zorder)r
   r   r?   r?   r?   r@   test_zorderF  s   r   ).collectionsr   r   numpyr   numpy.testingr   ry   matplotlib.testing.decoratorsr   matplotlib.pyplotpyplotr-   matplotlib.patchespatchesr/   matplotlib.lineslinesr1   matplotlib.backend_basesr   matplotlib.offsetboxr   r   r   r	   r
   r   r   r   rA   rF   rS   r]   markparametrizerh   _Paramsrr   ru   rx   r|   r   r   r   r   r?   r?   r?   r@   <module>   s    (
"%
	






0
C