a
    ëÝEbRÀ  ã                   @   s  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 d dlmZ d dlZdd„ Zdd	„ Zdd
d„Zej dddgddgg¡dd„ ƒZdd„ Zdd„ Zej dddg¡dd„ ƒZej dddg¡dd„ ƒZdd„ Zdd„ Zd d!„ Z ej d"ddg¡d#d$„ ƒZ!ej d%ddg¡d&d'„ ƒZ"d(d)„ Z#d*d+„ Z$ej d"ddg¡d,d-„ ƒZ%ej d%ddg¡d.d/„ ƒZ&ej d0ddg¡d1d2„ ƒZ'd3d4„ Z(d5d6„ Z)ej d7d8d9g¡d:d;„ ƒZ*ej d7d8d9g¡d<d=„ ƒZ+d>d?„ Z,ej d@dA¡dBdC„ ƒZ-dDdE„ Z.dFdG„ Z/dHdI„ Z0ej dJg dK¢¡dLdM„ ƒZ1edNgdOddP�dQdR„ ƒZ2edSgdOddP�dTdU„ ƒZ3dVdW„ Z4dXdY„ Z5dZd[„ Z6d\d]„ Z7d^d_„ Z8d`da„ Z9ej dbdcddg¡dedf„ ƒZ:dgdh„ Z;didj„ Z<dkdl„ Z=dmdn„ Z>dodp„ Z?ej dqg dr¢¡dsdt„ ƒZ@eƒ dudv„ ƒZAej dwg dx¢¡dydz„ ƒZBd{d|„ ZCd}d~„ ZDdS )€é    )ÚMatplotlibDeprecationWarningN)Úcheck_figures_equalÚimage_comparison)Údo_eventÚget_axÚ
mock_event)Úassert_allclosec                     s˜   t ƒ ‰ ‡ fdd„}tjˆ |fi | ¤Ž}t|ddddd� t|ddddd� t|d	d
d
dd� |  dd ¡dvrŠt|jg d¢g d¢g|jd� ˆ js”J ‚d S )Nc                    sB   dˆ _ | jdksJ ‚| jdks"J ‚|jdks0J ‚|jdks>J ‚d S ©NTéd   éÇ   )Ú_got_onselectÚxdataÚydata©ZepressZerelease©Úax© ú]/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_widgets.pyÚonselect   s
    z!check_rectangle.<locals>.onselectÚpressr
   é   ©r   r   ÚbuttonÚonmover   Úreleaseéú   Údrawtype)ÚlineÚnone)ç      Y@r
   r   r   r
   )r
   r   r   r
   r
   )Úerr_msg)r   ÚwidgetsÚRectangleSelectorr   Úgetr   Úgeometryr   ©Úkwargsr   Útoolr   r   r   Úcheck_rectangle   s    ÿýr(   c                   C   sª   t ƒ  tjtdd�� t ddd� W d   ƒ n1 s60    Y  t ddd� tjtd	d�� t d
ddd� W d   ƒ n1 s~0    Y  t dddd� t tdd�d� d S )Nz)Support for drawtype='line' is deprecated)Úmatchr   F)r   ÚuseblitTr   ©r*   r   z)Support for drawtype='none' is deprecatedr   é
   )r   ÚminspanxÚminspanyZpixels)r-   r.   Z
spancoords©Úfill©Úprops)r(   ÚpytestZwarnsr   Údictr   r   r   r   Útest_rectangle_selector'   s    þ*þ,r5   c                 C   sf   t | d||dd� |d ur(t | d|d� t | d||dd� |d urPt | d|d� t | d||dd� | S )	Nr   r   r   Úon_key_press©Úkeyr   Úon_key_releaser   )r   )r'   r   r   Ú	xdata_newÚ	ydata_newÚuse_keyr   r   r   Ú_resize_rectangle:   s    r=   zdrag_from_anywhere, new_centerT)é<   éK   F)é   é   c                 C   sð   t ƒ }dd„ }tj||d| d�}t|ddddd	� t|d
dddd	� t|ddddd	� |jdksdJ ‚t|ddddd	� t|d
dddd	� t|ddddd	� |j|ks¨J ‚t|ddddd	� t|d
dddd	� t|ddddd	� |jdksìJ ‚d S )Nc                 S   s   d S ©Nr   r   r   r   r   r   M   s    z%test_rectangle_drag.<locals>.onselectT©ÚinteractiveÚdrag_from_anywherer   r   r,   r   r   r   r
   éx   r   )é2   éA   é   é   é#   é¯   é¹   éÃ   )é´   é¾   )r   r!   r"   r   Úcenter)rE   Z
new_centerr   r   r'   r   r   r   Útest_rectangle_dragG   s"    
ÿrR   c                  C   s  t ƒ } dd„ }tj| |dtddd�tdd�d	�}t|d
dddd� t|ddddd� t|ddddd� |j}| ¡ tjddd�ks†J ‚|j	ddd� | ¡ tjddd�ks®J ‚|j
D ]$}| ¡ dksÈJ ‚| ¡ dks´J ‚q´|jddd� |j
D ]&}| ¡ dk�sJ ‚| ¡ dksîJ ‚qîd S )Nc                 S   s   d S rB   r   r   r   r   r   r   m   s    z@test_rectangle_selector_set_props_handle_props.<locals>.onselectTÚbçš™™™™™É?©Z	facecolorÚalphaç      à?©rV   ©rD   r2   Úhandle_propsr   r   r,   r   r   r   r
   rF   r   Úrç333333Ó?Úblack)ÚmarkeredgecolorrV   )r   r!   r"   r4   r   Ú_selection_artistÚget_facecolorÚmcolorsÚto_rgbaÚ	set_propsÚ_handles_artistsÚget_markeredgecolorÚ	get_alphaÚset_handle_props©r   r   r'   Úartistr   r   r   Ú.test_rectangle_selector_set_props_handle_propsj   s(    

þ

rj   c                  C   sÎ  t ƒ } dd„ }tj| |dd�}t|ddddƒ |jd	ks<J ‚|j}|d
 |d  }}|d |d  }}t|||||ƒ |j|d ||d |fks”J ‚|j}|d
 |d |d |d  d   }}|d | }}t|||||ƒ |j|d ||d |d fk�sJ ‚|j}|d |d |d |d  d   }}|d | }}t|||||ƒ |j||d
 |d |d fk�spJ ‚|j}|d |d  }}|d |d  }}t|||||ƒ |j||d
 ||d fk�sÊJ ‚d S )Nc                 S   s   d S rB   r   r   r   r   r   r   ‰   s    z'test_rectangle_resize.<locals>.onselectT©rD   r   r,   r
   rF   )ç        r   ç      $@ç      ^@r   é   é   é   rJ   rA   rI   )r   r!   r"   r=   Úextents)r   r   r'   rr   r   r   r:   r;   r   r   r   Útest_rectangle_resize†   s2    &$&$rs   Úuse_default_statec                 C   s  t ƒ }dd„ }tj||dd�}t|ddddƒ |jd	ks<J ‚| rR|j d
¡ d }nd}|j}|d |d  }}d\}}	|| ||	  }
}t||||
||ƒ |j|d | |
|d |	 |fksÀJ ‚|j}|d |d |d |d  d   }}d}|| | }
}t||||
||ƒ |j|d | |
|d |d fk�s8J ‚|j}|d |d |d |d  d   }}d}|| | }
}t||||
||ƒ |j|d | |
|d |d fk�s°J ‚|j}|d |d |d |d  d   }}d}|| | }
}t||||
||ƒ |j|
|d | |d |d fk�s(J ‚|j}|d |d |d |d  d   }}d}|| | }
}t||||
||ƒ |j|
|d | |d |d fk�s J ‚|j}|d |d  }}d\}}	|| ||	  }
}t||||
||ƒ |j|
|d | ||d |	 fk�sJ ‚d S )Nc                 S   s   d S rB   r   r   r   r   r   r   ²   s    z.test_rectangle_resize_center.<locals>.onselectTrk   éF   rH   é}   é‚   )ç     €Q@ç     @_@ç     @P@g     @`@rQ   Úcontrolr   ro   ©r,   rp   r   rq   r,   éìÿÿÿrJ   éçÿÿÿ©rA   rI   ©r   r!   r"   r=   rr   Ú_default_stateÚadd©rt   r   r   r'   r<   rr   r   r   ÚxdiffÚydiffr:   r;   r   r   r   Útest_rectangle_resize_center®   sr    ÿ
&ÿ&ÿ&ÿ&ÿÿr†   c                 C   s  t ƒ }dd„ }tj||dd�}t|ddddƒ |jd	ks<J ‚| rR|j d
¡ d }nd}|j}|d |d  }}d\}}	|| ||	  }
}t||||
||ƒ |j|d |
|d |d | fksÀJ ‚|j}|d |d |d |d  d   }}d}|| | }
}t||||
||ƒ |j|d |
|d |d | fk�s8J ‚|j}|d |d |d |d  d   }}d}|| | }
}t||||
||ƒ |j|d |
|d |d | fk�s°J ‚|j}|d |d |d |d  d   }}d}|| | }
}t||||
||ƒ |j|
|d |d |d | fk�s(J ‚|j}|d |d |d |d  d   }}d}|| | }
}t||||
||ƒ |j|
|d |d |d | fk�s J ‚|j}|d |d  }}d\}}	|| ||	  }
}t||||
||ƒ |j|d |	 |d ||d fk�sJ ‚d S )Nc                 S   s   d S rB   r   r   r   r   r   r   û   s    z.test_rectangle_resize_square.<locals>.onselectTrk   ru   rH   rF   és   ©rx   rn   rz   g     À\@ÚsquareÚshiftr   ro   r|   r   rq   r,   r}   rJ   r~   r   r€   rƒ   r   r   r   Útest_rectangle_resize_square÷   sr    ÿ
&ÿ&ÿ&ÿ&ÿÿr‹   c            
      C   s2  t ƒ } dd„ }tj| |dd�}t|ddddƒ |j d	¡ |j d
¡ |jdksTJ ‚|j}|d |d  }}d\}}|| ||  }}	t|||||	ƒ |j|d | ||d | |d | fksÄJ ‚|j}|d |d |d |d  d   }}d}|| | }}	t|||||	ƒ |j|d | ||d | |d | fk�sBJ ‚|j}|d |d |d |d  d   }}d}|| | }}	t|||||	ƒ |j|d | ||d | |d | fk�sÀJ ‚|j}|d |d |d |d  d   }}d}|| | }}	t|||||	ƒ |j||d | |d | |d | fk�s>J ‚|j}|d |d |d |d  d   }}d}|| | }}	t|||||	ƒ |j||d | |d | |d | fk�s¼J ‚|j}|d |d  }}d\}}|| ||  }}	t|||||	ƒ |j|d | |d | |	|d | fk�s.J ‚d S )Nc                 S   s   d S rB   r   r   r   r   r   r   C  s    z5test_rectangle_resize_square_center.<locals>.onselectTrk   ru   rH   rF   r‡   r‰   rQ   rˆ   r   ro   r|   r   rq   r,   r}   rp   r~   r   )r   r!   r"   r=   r�   r‚   rr   )
r   r   r'   rr   r   r   r„   r…   r:   r;   r   r   r   Ú#test_rectangle_resize_square_center@  sn    ÿ
&ÿ&ÿ&ÿ&ÿÿrŒ   c                  C   s
  t ƒ } dd„ }tj| |ddd�}d|_t|ddddd	d
� t|ddddd� t|ddddd� |jdkslJ ‚t|dddddd
� t|ddddd� t|ddddd� t|ddddd� t|dddddd
� |jdksØJ ‚t|dddddd
� t|ddddd� t|ddddd� t|ddddd� t|dddddd
� dd„ |jD ƒ}|g d¢k�sXJ ‚t|dddddd
� t|ddddd� t|ddddd� t|ddddd� t|dddddd
� dd„ |jD ƒ}|g d¢k�sØJ ‚|jjdk�sêJ ‚t|jd d …d!f d"dgƒ d S )#z'For ellipse, test out the key modifiersc                 S   s   d S rB   r   r   r   r   r   r   ˆ  s    ztest_ellipse.<locals>.onselectr,   T)r   Ú
grab_rangerD   ©r
   é–   r
   r�   r   r   ú )r   r   r   r8   r   r@   r   r   )rF   éª   rF   r‘   r6   r
   r{   rv   r9   )r?   rv   r?   rv   rŠ   rK   c                 S   s   g | ]}t |ƒ‘qS r   ©Úint©Ú.0Úer   r   r   Ú
<listcomp>©  ó    z test_ellipse.<locals>.<listcomp>)r,   rK   r,   é"   z
ctrl+shiftrw   c                 S   s   g | ]}t |ƒ‘qS r   r’   r”   r   r   r   r—   ´  r˜   )ru   é�   ru   rw   )rq   éI   Nr   rx   )r   r!   ZEllipseSelectorrr   r   r$   Úshaper   )r   r   r'   rr   r   r   r   Útest_ellipse„  s\    ÿÿÿÿÿÿÿÿr�   c                  C   sb  t ƒ } dd„ }tj| |dddddœd�}d	|_|jd
ks<J ‚|jd	ksJJ ‚|jdksXJ ‚|jd	ksfJ ‚t|dddd� t|dddd� t|dddd� |jdks¤J ‚t|dddd� t|dddd� t|dddd� |jdksâJ ‚t|dddd� t|dddd� t|dddd� |jdk�s"J ‚t |j	j
d  ¡ d¡�s@J ‚t |j	j
d  ¡ d¡�s^J ‚d S )Nc                 S   s   d S rB   r   r   r   r   r   r   ¾  s    z(test_rectangle_handles.<locals>.onselectr,   Tr[   rS   )Zmarkerfacecolorr^   )r   r�   rD   rZ   rŽ   ))r
   r�   r�   r
   )r
   r
   r�   r�   ))r
   ry   r�   ry   )ry   r
   ry   r�   r   r
   ©r   r   r   rF   r   )rF   r�   rF   r�   é„   )él   éŠ   r    r¡   )r,   r
   r,   r
   r   )r   r!   r"   rr   ZcornersZedge_centersr   ra   Z
same_colorZ_corner_handlesÚartistsZget_markerfacecolorre   ©r   r   r'   r   r   r   Útest_rectangle_handles»  s@    ÿýÿ
ÿr¤   rD   c                    s®   t ƒ ‰ ‡ fdd„}tjˆ || d�}t|ddddd� t|d	d
ddd� t|dd
ddd� |jjsdJ ‚|jdksrJ ‚d|j_t|ddddd� t|ddddd� |jjsªJ ‚d S )Nc                    s
   dˆ _ d S ©NT©r   ©ZvminZvmaxr   r   r   r   í  s    z2test_rectangle_selector_onselect.<locals>.onselectrk   r   r
   én   r   r   r   r�   rF   r   ©r   ç     Àb@g     €[@rn   Fr,   ©r   r!   r"   r   r   r   rr   ©rD   r   r'   r   r   r   Ú test_rectangle_selector_onselectè  s    r­   Úignore_event_outsidec                    sè   t ƒ ‰ ‡ fdd„}tjˆ || d�}t|ddddd� t|d	d
ddd� t|dd
ddd� |jjsdJ ‚|jdksrJ ‚dˆ _t|dd
d
dd� t|d	dddd� t|ddddd� | rÌˆ jr¼J ‚|jdksäJ ‚nˆ jsÖJ ‚|jdksäJ ‚d S )Nc                    s
   dˆ _ d S r¥   r¦   r§   r   r   r   r     s    z8test_rectangle_selector_ignore_outside.<locals>.onselect)r®   r   r
   r¨   r   r   r   r�   rF   r   r©   Fé    )rª   ç      d@rª   r°   r«   )r®   r   r'   r   r   r   Ú&test_rectangle_selector_ignore_outside  s&    ÿ

r±   c                     sž   t ƒ ‰ ‡ fdd„}‡ fdd„}d|v r.||d< tjˆ |g| ¢R i |¤Ž}t|ddddd	� t|d
dddd	� t|ddddd	� ˆ jsˆJ ‚d|v ršˆ jsšJ ‚d S )Nc                    s"   dˆ _ | dksJ ‚|dksJ ‚d S r	   r¦   r§   r   r   r   r   $  s    zcheck_span.<locals>.onselectc                    s"   | dksJ ‚|dksJ ‚dˆ _ d S )Nr
   r   T©Ú_got_on_mover§   r   r   r   r   )  s    zcheck_span.<locals>.onmoveÚonmove_callbackr   r
   r   r   r   r   r   r   )r   r!   ÚSpanSelectorr   r   r³   )Úargsr&   r   r   r'   r   r   r   Ú
check_span!  s    
r·   c                   C   s>   t dddd� t dddd� t dtdd�d	� t ddd
� d S )NÚ
horizontalr,   T)Zminspanr*   Úverticalr   )r´   r   r/   r1   rk   )r·   r4   r   r   r   r   Útest_span_selector=  s    rº   c                    s°   t ƒ ‰ ‡ fdd„}tjˆ |d| d�}t|ddddd� t|d	d
ddd� t|dd
ddd� |jjsfJ ‚|jdkstJ ‚d|j_t|ddddd� t|ddddd� |jjs¬J ‚d S )Nc                    s
   dˆ _ d S r¥   r¦   r§   r   r   r   r   I  s    z-test_span_selector_onselect.<locals>.onselectr¸   rk   r   r
   r   r   r   r�   r   )r
   r�   Fr,   )r   r!   rµ   r   r   r   rr   r¬   r   r   r   Útest_span_selector_onselectD  s    
ÿr»   c                    s  t ƒ ‰ ‡ fdd„}‡ fdd„}tjˆ |d|| d�}t|dddd	d
� t|dddd	d
� t|dddd	d
� ˆ jsrJ ‚ˆ js|J ‚|jdksŠJ ‚dˆ _dˆ _t|dddd	d
� t|dddd	d
� t|dddd	d
� | rôˆ jrÚJ ‚ˆ jräJ ‚|jdksòJ ‚n&ˆ jsþJ ‚ˆ j�s
J ‚|jdk�sJ ‚d S )Nc                    s
   dˆ _ d S r¥   r¦   r§   r   r   r   r   b  s    z3test_span_selector_ignore_outside.<locals>.onselectc                    s
   dˆ _ d S r¥   r²   r§   r   r   r   r   e  s    z1test_span_selector_ignore_outside.<locals>.onmover¸   )r´   r®   r   r
   r   r   r   rv   r   )r
   rv   Fr�   r¯   )r�   r¯   )r   r!   rµ   r   r   r³   rr   )r®   r   r   r'   r   r   r   Ú!test_span_selector_ignore_outside_  s2    
þ




r¼   rE   c                 C   s  t ƒ }dd„ }tj||dd| d�}t|ddddd	� t|d
dddd	� t|ddddd	� |jdksfJ ‚t|ddddd	� t|d
dddd	� t|ddddd	� | r°|jdks¾J ‚n|jdks¾J ‚t|ddddd	� t|d
dddd	� t|ddddd	� |jdk�sJ ‚d S )Nc                  W   s   d S rB   r   ©r¶   r   r   r   r   ‰  s    z)test_span_selector_drag.<locals>.onselectr¸   TrC   r   r,   r   r   r   r
   rF   r   ©r,   r
   rI   rJ   rK   )rA   r¨   )rI   rK   rL   rM   rN   )rL   rM   )r   r!   rµ   r   rr   )rE   r   r   r'   r   r   r   Útest_span_selector_drag…  s&    ÿr¿   c                  C   sÎ   t ƒ } dd„ }tj| |ddd�}|jdks.J ‚|jjdks>J ‚t t¡� t | |d¡}W d   ƒ n1 sl0    Y  d|_|jdksŠJ ‚|jjdksšJ ‚t t¡� d|_W d   ƒ n1 sÀ0    Y  d S )	Nc                  W   s   d S rB   r   r½   r   r   r   r   ¬  s    z.test_span_selector_direction.<locals>.onselectr¸   Trk   Zinvalid_directionr¹   Zinvalid_string)r   r!   rµ   Ú	directionÚ_edge_handlesr3   ÚraisesÚ
ValueErrorr£   r   r   r   Útest_span_selector_direction©  s    ,rÄ   c               	   C   s  t ƒ } dd„ }tj| |ddtddd�tdd	�d
�}t|ddddd� t|ddddd� t|ddddd� |j}| ¡ tjddd	�ksˆJ ‚|j	ddd� | ¡ tjddd	�ks°J ‚|j
D ]$}| ¡ dksÊJ ‚| ¡ dks¶J ‚q¶|jddd� |j
D ]&}| ¡ dk�sJ ‚| ¡ dksðJ ‚qðd S )Nc                 S   s   d S rB   r   r   r   r   r   r   Á  s    z;test_span_selector_set_props_handle_props.<locals>.onselectr¸   TrS   rT   rU   rW   rX   rY   r   r   r,   r   r   r   r
   rF   r   r[   r\   ©ÚcolorrV   )r   r!   rµ   r4   r   r_   r`   ra   rb   rc   rd   Ú	get_colorrf   rg   rh   r   r   r   Ú)test_span_selector_set_props_handle_props¾  s(    
þ

rÈ   ÚselectorÚspanZ	rectanglec                 C   sV  t ƒ }dd„ }t||dd�}| dkr4tj}d|d< ntj}|f i |¤Ž}t|dd	d	d
d� t|dddd
d� t|dddd
d� t|dddd
d� t|dddd
d� |jr¬J ‚t ƒ }d|d< |f i |¤Ž}|jsÒJ ‚t|dd	d	d
d� t|dddd
d� t|dddd
d� t|dddd
d� t|dddd
d� |j�s8J ‚t|ddd� |j�rRJ ‚d S )Nc                  W   s   d S rB   r   r½   r   r   r   r   Þ  s    z%test_selector_clear.<locals>.onselectT)r   r   rD   rÊ   r¸   rÀ   r   r,   r   r   r   r
   rF   r   rw   r®   r6   Úescaper7   )r   r4   r!   rµ   r"   r   Ú_selection_completedr®   )rÉ   r   r   r&   ZSelectorr'   r   r   r   Útest_selector_clearÚ  s4    


rÍ   c                 C   s"  t ƒ }dd„ }| dkr,tj||dddd�}ntj||dd�}t|dd	d	d
d� t|dddd
d� t|dddd
d� |js|J ‚|js†J ‚| dkrœ|jdksœJ ‚| ¡  |jr®J ‚|jr¸J ‚t|dd	d	d
d� t|dddd
d� t|dddd
d� |jsøJ ‚|j�sJ ‚| dk�r|jdk�sJ ‚d S )Nc                  W   s   d S rB   r   r½   r   r   r   r     s    z,test_selector_clear_method.<locals>.onselectrÊ   r¸   T)rD   r®   rk   r   r,   r   r   r   r
   rF   r   r¾   rG   )r,   rG   )	r   r!   rµ   r"   r   rÌ   Úvisiblerr   Úclear)rÉ   r   r   r'   r   r   r   Útest_selector_clear_method  s2    
þ





rÐ   c                  C   sŽ   t ƒ } g d¢}tj| |ddd�}|jD ]}| ¡ r6J ‚| ¡ r&J ‚q&| d¡ | d¡ |jD ]}| ¡ snJ ‚| ¡ s^J ‚q^|j|ksŠJ ‚d S )N)rA   r@   rG   r¸   F)r*   T)	r   r!   ZToolLineHandlesr¢   Zget_animatedZget_visibleZset_visibleZset_animatedÚ	positions)r   rÑ   Ztool_line_handleri   r   r   r   Útest_tool_line_handle&  s    
ÿ



rÒ   rÀ   )r¸   r¹   c                 C   s6  t  dd¡\}}| ddgddg¡ |jj ¡  | ¡ }| ¡ }tj	|t
| dd�}| ¡ |ksbJ ‚| ¡ |ksrJ ‚| dkr~|n|}|jjt|ƒks–J ‚dd	g}d
dg}|}	t|d|d |d dd� t|d|d |d dd� | ¡ |ksîJ ‚| ¡ |ksþJ ‚| dk�rdnd}
||
 |	|
 g}|jj|k�s2J ‚d S )Nr   r,   rA   r@   Trk   r¸   g      %@g      '@é   é   r   r   r   r   )ÚpltÚsubplotsZplotÚfigureÚcanvasZdrawZ
get_xboundZ
get_yboundr!   rµ   ÚprintrÁ   rÑ   Úlistr   )rÀ   Úfigr   Zx_boundZy_boundr'   ÚboundZ
press_dataZ	move_dataZrelease_dataÚindexZhandle_positionsr   r   r   Útest_span_selector_bound<  s(    rÞ   c                     sj   t ƒ ‰ ‡ fdd„}tjˆ |fi | ¤Ž}t|ddddd� t|ddddd� t|d	d
d
dd� ˆ jsfJ ‚d S )Nc                    s   dˆ _ | g d¢ksJ ‚d S )NT))r
   r
   )rv   rv   )r�   r�   r¦   ©Úvertsr   r   r   r   \  s    z&check_lasso_selector.<locals>.onselectr   r
   r   r   r   rv   r   r�   )r   r!   ZLassoSelectorr   r   r%   r   r   r   Úcheck_lasso_selectorY  s    rá   c                   C   s(   t ƒ  t dtdd�d� t ddd� d S )NFÚred)rÆ   )r*   r2   Tr   r+   )rá   r4   r   r   r   r   Útest_lasso_selectorh  s    rã   c                  C   sb   t ƒ } t | dd¡}| ¡ g d¢ks(J ‚| d¡ | ¡ g d¢ksFJ ‚| dd„ ¡}| |¡ d S )N)ÚarS   Úc)TFTr   )FFTc                   S   s   d S rB   r   r   r   r   r   Ú<lambda>u  r˜   z#test_CheckButtons.<locals>.<lambda>)r   r!   ÚCheckButtonsZ
get_statusZ
set_activeZ
on_clickedZ
disconnect)r   ÚcheckZcidr   r   r   Útest_CheckButtonsn  s    
ré   Útoolbar)r   Ztoolbar2Ztoolmanagerc                 C   sæ   t  tjd| ¡ ddlm} |ƒ }|ƒ }tƒ }t |d¡}| 	|¡ | 
|¡ |jdks\J ‚t|dƒ | d¡ |jdks~J ‚|jdksŒJ ‚| |j¡ | ¡  |jdks®J ‚t|dƒ t|d	d
d� t|d	dd� |jdksâJ ‚d S )Nrê   r   )ÚMockÚ Z_clickzx**2r   rq   Z	_keypressú+r7   Ú5ro   )r4   Ú__setitem__rÕ   ÚrcParamsZunittest.mockrë   r   r!   ZTextBoxZ	on_submitZon_text_changeÚtextr   Úset_valZ
call_countZbegin_typingZstop_typing)rê   rë   Zsubmit_eventZtext_change_eventr   r'   r   r   r   Útest_TextBoxy  s(    




ró   zcheck_radio_buttons.pngZmpl20)ÚstyleZremove_textc                  C   sV   dt jd< tƒ  t jdd� t  g d¢¡} t  g d¢¡}t | d¡ t |dd	¡ d S )
Né   ztext.kerning_factorr\   )Úleft)çš™™™™™©?çffffffæ?ç333333Ã?rù   )r÷   rT   rù   rù   )zRadio 1zRadio 2zRadio 3)zCheck 1zCheck 2zCheck 3)FTT)rÕ   rð   r   Zsubplots_adjustÚaxesr!   ÚRadioButtonsrç   )Zrax1Zrax2r   r   r   Útest_check_radio_buttons_image›  s    
ÿrü   z check_bunch_of_radio_buttons.pngc                  C   s   t  g d¢¡} t | d¡ d S )N)r÷   çš™™™™™¹?rù   rø   )ZB1ZB2ZB3ZB4ZB5ZB6ZB7ZB8ZB9ZB10ZB11ZB12ZB13ZB14ZB15)rÕ   rú   r!   rû   )Zraxr   r   r   Ú!test_check_bunch_of_radio_buttons©  s    rþ   c                  C   sŒ   t  ¡ \} }t t¡�$ tj|ddddd� W d   ƒ n1 s@0    Y  t t¡�$ tj|ddddd� W d   ƒ n1 s~0    Y  d S )Nrì   rl   ç      8@rm   )r   ÚlabelÚvalminÚvalmaxÚ	slidermin)r   r   r  r  Ú	slidermax)rÕ   rÖ   r3   rÂ   rÃ   r!   ÚSlider)rÛ   r   r   r   r   Ú'test_slider_slidermin_slidermax_invalid²  s    ÿ$ÿr  c                  C   sp   t  ¡ \} }tj|ddddd�}tj|dddd|d�}|j|jksFJ ‚tj|dddd|d	�}|j|jkslJ ‚d S )
Nrì   rl   rÿ   g      @©r   r   r  r  Úvalinitç      ð?)r   r   r  r  r  r  rm   )r   r   r  r  r  r  ©rÕ   rÖ   r!   r  Úval)rÛ   r   Zslider_Úsliderr   r   r   Útest_slider_slidermin_slidermax½  s    ÿÿÿr  c                  C   sX   t  ¡ \} }tj|ddddd�}|j|jks0J ‚tj|ddddd�}|j|jksTJ ‚d S )Nrì   rl   rÿ   g      $Àr  g      9@)rÕ   rÖ   r!   r  r  r  r  ©rÛ   r   r  r   r   r   Útest_slider_valmin_valmaxË  s    ÿÿr  c                  C   s\   t  ¡ \} }tj|dddddd�}|jdks0J ‚tj|ddddg d¢d�}|jd	ksXJ ‚d S )
Nrì   rl   rÿ   gÍÌÌÌÌÌ&@r   )r   r   r  r  r  ZvalsteprÓ   )r   r   ç      @g33333³3@r  r
  r  r   r   r   Útest_slider_valstep_snappingÖ  s    ÿÿr  c                  C   sÄ   t  ¡ \} }tj|dddddd�}| d¡ |jdks:J ‚|j ¡  |j	 
¡ ¡}t|jg d¢ƒ t  ¡ \} }tj|ddddd	d�}| d¡ |jdksšJ ‚|j ¡  |j	 
¡ ¡}t|jg d
¢ƒ d S )Nrì   r   é   é   r¸   )r   r   r  r  r  Úorientationr,   )r   ç      Ð?ç«ªªªªªÚ?rW   r¹   )r  r   rW   r  )rÕ   rÖ   r!   r  rò   r  ÚpolyÚget_extentsÚtransformedÚ	transAxesÚinvertedr   Zbounds)rÛ   r   r  Úboxr   r   r   Útest_slider_horizontal_verticalá  s     ÿ
ÿ
r  c                  C   sD   t  ¡ \} }tj|ddddd�}| d¡ | ¡  |jdks@J ‚d S )Nrì   r   r   rW   r  ç      è?)rÕ   rÖ   r!   r  rò   Úresetr  r  r   r   r   Útest_slider_resetõ  s
    
r   r  r¸   r¹   c                 C   s
  | dkrg d¢}ng d¢}t  ¡ \}}tj|ddd| ddgd	�}|j ¡  |j ¡ ¡}t	| 
¡  ¡ | g d
¢ƒ t	|jdƒ | d¡ t	|jdƒ |j ¡  |j ¡ ¡}t	| 
¡  ¡ | g d¢ƒ | d¡ t	|jdƒ | d¡ t	|jdƒ | ¡  t	|jddgƒ d S )Nr¹   )r   r   ro   rq   )r   r   rq   ro   rì   rl   r	  rý   çÃõ(\�ÂÕ?)r   r   r  r  r  r  )rý   r  r!  r  )rý   r!  )rT   ç333333ã?)rT   r  r"  r  )rT   rý   )rý   rT   )éÿÿÿÿr,   )r   r   )rÕ   rÖ   r!   ZRangeSliderr  r  r  r  r  r   Z
get_pointsÚflattenr  rò   r  )r  ÚidxrÛ   r   r  r  r   r   r   Útest_range_sliderý  s*    

þ


r&  c                    sd   t ƒ ‰ dˆ _‡ fdd„}t ˆ |¡}| D ]\}}t||fi |¤Ž q(ˆ j|ksRJ ‚ˆ j|ks`J ‚dS )aî  
    Helper function to test Polygon Selector.

    Parameters
    ----------
    event_sequence : list of tuples (etype, dict())
        A sequence of events to perform. The sequence is a list of tuples
        where the first element of the tuple is an etype (e.g., 'onmove',
        'press', etc.), and the second element of the tuple is a dictionary of
         the arguments for the event (e.g., xdata=5, key='shift', etc.).
    expected_result : list of vertices (xdata, ydata)
        The list of vertices that are expected to result from the event
        sequence.
    selections_count : int
        Wait for the tool to call its `onselect` function `selections_count`
        times, before comparing the result to the `expected_result`
    r   c                    s   ˆ  j d7  _ | ˆ _d S ©Nr   ©Ú_selections_countÚ_current_result©Zverticesr   r   r   r   5  s    z(check_polygon_selector.<locals>.onselectN)r   r)  r!   ÚPolygonSelectorr   r*  )Úevent_sequenceÚexpected_resultZselections_countr   r'   ÚetypeÚ
event_argsr   r   r   Úcheck_polygon_selector  s    r1  c                 C   s.   dt | |d�fdt | |d�fdt | |d�fgS )Nr   rž   r   r   ©r4   rž   r   r   r   Úpolygon_place_vertexB  s    þr3  c                 C   s2   dt | |d�fdt | |dd�fdt | |dd�fgS )Nr   rž   r   ro   r   r   r2  rž   r   r   r   Úpolygon_remove_vertexH  s    þr4  c                  C   s´  g d¢} t ddƒt ddƒ t ddƒ t ddƒ }t|| dƒ g d¢} t ddƒt ddƒ dtdd�fd	tddd
�fdtddd
�fd	tddd
�fdtddd
�fdtdd�fg t ddƒ t ddƒ }t|| dƒ g d¢} t ddƒt ddƒ dtdd�fd	tddd
�fdtddd
�fd	tddd
�fdtddd
�fdtdd�fg t ddƒ t ddƒ }t|| dƒ g d¢} t ddƒt ddƒ t ddƒ t ddƒ d	tddd
�fdtddd
�fd	tddd
�fdtddd
�fg }t|| dƒ g d¢} t ddƒt ddƒ t ddƒ t ddƒ dtdd�fd	tddd
�fdtddd
�fd	tddd
�fdtddd
�fdtdd�fg }t|| dƒ g d¢} dtdd�fd	tddd
�fdtddd
�fd	tddd
�fdtddd
�fdtdd�fdtdd�fd	tddd
�fdtddd
�fd	tddd
�fdtddd
�fdtdd�fgt ddƒ t ddƒ t ddƒ t ddƒ }t|| dƒ g d¢} t ddƒt ddƒ dtdd�fdtdd�fg t ddƒ t ddƒ t ddƒ t ddƒ }t|| dƒ d S )N©)rG   rG   ©r�   rG   ©rG   r�   rG   r�   r   ))r?   rG   r6  r7  r6   r{   r7   r   rž   r   r?   r   r9   ))rG   r?   )r�   r?   r7  rŠ   r
   rv   rq   ))r?   r?   )rL   r?   )r?   rL   r   rË   )r3  r1  r4   )r.  r-  r   r   r   Útest_polygon_selectorN  sæ    ÿþýÿûþø	÷
ÿûþø	÷
ÿþýýüÿþýûü
õôóòñÿÿþüûúùr8  c                     sD  t ƒ ‰ dˆ _‡ fdd„} tjˆ | tddd�tdd�d	�}td
d
ƒtdd
ƒ td
dƒ td
d
ƒ }|D ]\}}t||fi |¤Ž qd|j}| ¡ dks–J ‚| 	¡ dks¦J ‚|j
ddd� | ¡ dksÄJ ‚| 	¡ dksÔJ ‚|jD ]$}| ¡ dksîJ ‚| 	¡ dksÚJ ‚qÚ|jddd� |jD ]*}| ¡ dk�s*J ‚| 	¡ dk�sJ ‚�qd S )Nr   c                    s   ˆ  j d7  _ | ˆ _d S r'  r(  r+  r   r   r   r   ³  s    z>test_polygon_selector_set_props_handle_props.<locals>.onselectrS   rT   rÅ   rW   rX   )r2   rZ   rG   r�   r[   r\   )r   r)  r!   r,  r4   r3  r   r_   rÇ   rf   rc   rd   rg   )r   r'   r-  r/  r0  ri   r   r   r   Ú,test_polygon_selector_set_props_handle_props®  s:    
þÿþý

r9  zhorizOn, vertOn))TT)TF)FTc           	      C   s  t jddd�\}\}}}tj|j||fd| |d�}|rHt|jƒdksHJ ‚| r^t|jƒdks^J ‚t|ddd	�}| 	|¡ |jD ]}| 
¡ d
ks|J ‚q||jD ]}| ¡ dks˜J ‚q˜t|ddd	�}| 	|¡ |jD ]}| 
¡ d
ksÌJ ‚qÌ|jD ]}| ¡ dksèJ ‚qèd S )Nro   T)ZsharexF)r*   ÚhorizOnÚvertOnrq   rW   r  rž   )rW   rW   )r  r  r  )rÕ   rÖ   r!   ZMultiCursorrØ   ÚlenZvlinesZhlinesr   r   Z	get_xdataZ	get_ydata)	r:  r;  rÛ   Zax1Zax2Zax3ZmultiÚeventÚlr   r   r   Útest_MultiCursorÓ  s(    ÿ





r?  c                 C   s6   |   ¡ }|  ¡ }dd„ }tj||ddid�}d|_d S )Nc                 S   s   d S rB   r   rß   r   r   r   r     s    z&test_rect_visibility.<locals>.onselectrÎ   Fr1   )rT   gš™™™™™é?r\   rø   )rÖ   r!   r"   rr   )Zfig_testZfig_refZax_testÚ_r   r'   r   r   r   Útest_rect_visibilityû  s    ÿrA  r%  )r   rq   ro   c                 C   sp   g d¢}t |d Ž t |d Ž t |d Ž t |d Ž g}| | t ddƒ¡ | tddƒ¡ t|g ƒ}t||dƒ d S )Nr5  r   r   rq   éÈ   )r3  ÚinsertÚappendr4  Úsumr1  )r%  rà   r-  r   r   r   Útest_polygon_selector_remove
  s    



ü
rF  c                  C   s\   g d¢} t | d Ž t | d Ž  t | d Ž  t | d Ž  t| d Ž  }t|| dd … dƒ d S )Nr5  r   r   rq   )r3  r4  r1  )rà   r-  r   r   r   Ú(test_polygon_selector_remove_first_point  s    

ÿ
þ
ý
ürG  c                  C   s°   g d¢} t | d Ž t | d Ž  t | d Ž  t | d Ž  t| d Ž  t| d Ž  t | d Ž  }tƒ }dd„ }t ||¡}|D ]\}}t||fi |¤Ž qz|j| dd… ks¬J ‚d S )Nr5  r   r   rq   c                 S   s   d S rB   r   r+  r   r   r   r   4  s    z.test_polygon_selector_redraw.<locals>.onselect)r3  r4  r   r!   r,  r   rà   )rà   r-  r   r   r'   r/  r0  r   r   r   Útest_polygon_selector_redraw%  s(    

ÿ
þ
ý
û
ú	
÷rH  )N)EZmatplotlib._api.deprecationr   Zmatplotlib.colorsÚcolorsra   Zmatplotlib.widgetsr!   Zmatplotlib.pyplotZpyplotrÕ   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing.widgetsr   r   r   Znumpy.testingr   r3   r(   r5   r=   ÚmarkZparametrizerR   rj   rs   r†   r‹   rŒ   r�   r¤   r­   r±   r·   rº   r»   r¼   r¿   rÄ   rÈ   rÍ   rÐ   rÒ   rÞ   rá   rã   ré   ró   rü   rþ   r  r  r  r  r  r   r&  r1  r3  r4  r8  r9  r?  rA  rF  rG  rH  r   r   r   r   Ú<module>   s¤    ÿ
ÿÿ
 (
H
HD7-



%
#
(
"

!
ÿ

!#`%þ
$


