B
    0uf,                 @   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%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-dS )O    )
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 )Nd   T)clip)r   r   z#CCCCCCNoner   )	facecolor	edgecolor	linewidthg      ?g      ?   black
   )colorr   centerg        F)g      ?g      ?)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 r3   a/home/ankuromar296_gmail_com/myenv/lib/python3.7/site-packages/matplotlib/tests/test_offsetbox.pytest_offsetbox_clipping   s.    	
"



r5   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rtd|_| jstd S )Nr   T)r   )r   r   z#CCCCCCr   r   )r   r   r   g      ?g      ?r   r   r   )r   r   r   g        F)g      ?g      ?)r   r   r   r   r   r   r    )r"   r#   r	   r$   r%   r&   r'   r   r(   r)   canvasdrawstaleAssertionErrorZclip_children)r,   r-   r.   r/   r0   r1   r2   r3   r3   r4   test_offsetbox_clip_children6   s2    
"




r:   c              C   sb   ddddddddd	d
d
} t  \}}tdd}x"| D ]}t||d}|| q6W |j  d S )Nr!   r                     	   r   )
zupper rightz
upper leftz
lower leftzlower rightrightzcenter leftzcenter rightzlower centerzupper centerr   r   )r   r   )r"   r#   r	   r   r)   r6   r7   )codesr,   r-   r/   coder2   r3   r3   r4   test_offsetbox_loc_codes[   s     

rE   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)r,   r-   Zd1Zd2r3   r3   r4   test_expand_with_tight_layoutp   s    rJ   wd_list)   r!   r;   )g?r!   r   total)   r   r   Nsep)rN   r!   r   rO   rH   )rG   fixedequalc             C   s   t | |||d d S )N)rH   )r   )rK   rM   rP   rH   r3   r3   r4   test_get_packed_offsets}   s    rS   _paramszwd_list, total, sep, expected)r;   r   )r!   r   )r   r   r!   r@   r<   r>   )rM   rP   expectedr   r=   c             C   s:   t | ||dd}|d |d ks$tt|d |d  d S )NrQ   )rH   r   r!   )r   r9   r   )rK   rM   rP   rU   resultr3   r3   r4   test_get_packed_offsets_fixed   s    	rW   )g?r   g?g?g      @c             C   s:   t | ||dd}|d |d ks$tt|d |d  d S )NrG   )rH   r   r!   )r   r9   r   )rK   rM   rP   rU   rV   r3   r3   r4   test_get_packed_offsets_expand   s    	rX   )g      ?r   g      ?g      ?)g?r   c             C   s:   t | ||dd}|d |d ks$tt|d |d  d S )NrR   )rH   r   r!   )r   r9   r   )rK   rM   rP   rU   rV   r3   r3   r4   test_get_packed_offsets_equal   s    rY   c            	   C   s0   t t tdgd d d dd W d Q R X d S )N)r!   r   r;   rR   )rM   rP   rH   )pytestZraises
ValueErrorr   r3   r3   r3   r4   1test_get_packed_offsets_equal_total_none_sep_none   s    r\   
child_typer7   imagetext	boxcoordszaxes fractionzaxes pixelsz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     |j||tj t dkr d j|kst|dd |dd |j     |j||tj t dkstd S )Nr7   r=   )r   r   r   )r   r^   )r=   r=   )r   r   r_   u   ■Zfontsize)Z	textpropsFzUnknown picking child type )g      ?g      ?)r`   TZ
pick_eventc                s
     | S )N)append)event)callsr3   r4   <lambda>       ztest_picking.<locals>.<lambda>zaxes pointsg      ?H   zaxes pixelsr!   rO   )r	   r)   r$   r%   npZonesr   r   r9   r"   r#   r   Z
set_pickerr6   Zmpl_connectr(   Ztransform_pointdpir7   clearZbutton_press_eventr   LEFTlenZartistr*   r+   )	r]   r`   Zpicking_childimr,   r-   abxyr3   )rd   r4   test_picking   sF    








"
rq   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 textzcenter leftg?haleft)r   r   propr   zcenter rightrB   )r"   r#   r   r)   )r,   r-   Ztext0Ztext1Ztext2r3   r3   r4   &test_anchoredtext_horizontal_alignment   s    

rv   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)r<   r;   r   )Zfigsizeri   r   r!   Z
Annotation)g?g?)g?g?z->)Z
arrowstyleFZbaselinert   )ZxyZxytext
arrowpropsZclip_onvars      T)r   )i       g      ?)gɿg      ?ra   zaxes fraction)g        g      ?)xyboxxycoordsr`   Zbox_alignmentrw   r   r;   )Zzoom)g      ?g333333ӿ)r   K   zoffset pointsg333333?)r|   r}   r`   r   rw   gffffft@gYn@g     0}@gfffffr@r   )Zatolg1g      `@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   rh   randomZrandr^   Zaxesr6   r7   Zget_rendererZget_window_extentZget_tightbboxr   ZextentsioBytesIOZsavefigseekZimreadshaperI   )r,   r-   Zan1r/   pZab3rm   Zab6rendererZbb1wZbb1eZtarget1Zbb3wZbb3eZtarget3Zbb6wZbb6eZtarget6bufr   Ztargetshaper3   r3   r4   test_annotationbbox_extents  s\    















r   c               C   s   t ddjdkstd S )N*   )zorder)r
   r   r9   r3   r3   r3   r4   test_zorderF  s    r   ).collectionsr   r   numpyrh   Znumpy.testingr   rZ   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   r5   r:   rE   rJ   markZparametrizerS   Z_ParamsrW   rX   rY   r\   rq   rv   r   r   r3   r3   r3   r4   <module>   sf   (#%

**	1C