o
    ‘i‡B  ã                   @   s¾  d dl 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 d dlmZ d dlmZ d dlmZ d dlmZ d dlZd dlZdZdd	„ Zd
d„ Zdd„ Zdd„ Zej d¡dd„ ƒZdd„ Z ej !dg d¢¡dd„ ƒZ"dd„ Z#dd„ Z$dd„ Z%ej !dd d!g¡ej !d"d#d$g¡ej !d%d&ej&d'fd&ej'd(fd)ej&d*fd)ej'd+fg¡d,d-„ ƒƒƒZ(d.d/„ Z)d0d1„ Z*ej !d2d3d4dej+d5ed6g¡d7d8„ ƒZ,ej !d9g d:¢¡d;d<„ ƒZ-d=d>„ Z.d?d@„ Z/dAdB„ Z0dS )Cé    N)ÚpathÚ
transforms)ÚFigureCanvasBaseÚKeyEventÚLocationEventÚMouseButtonÚ
MouseEventÚNavigationToolbar2ÚRendererBase)ÚRubberbandBase©ÚFigure)Úneeds_pgf_xelatexzƒTreat the new Tool classes introduced in v[0-9]*.[0-9]* as experimental for now; the API and rcParam may change in future versions.c               	      sR  t  ¡ ‰ dd„ tddƒD ƒ} ‡ fdd„tddƒD ƒ}t d¡ d	¡}d
dg}d
dg}dd„ }|ˆ | ||||ƒ |ˆ | dd… ||||ƒ |ˆ g ||||ƒ |ˆ | |dd… |||ƒ |ˆ | g |||ƒ td|jd ƒD ]}|ˆ | ||d|…d d …f ||ƒ qk|ˆ | ||g |ƒ |ˆ | |||g ƒ |ˆ | ||g g ƒ |ˆ | |||dd… |ƒ d S )Nc                 S   s   g | ]}t j |¡‘qS © )r   ÚPathZunit_regular_polygon©Ú.0Úir   r   úr/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/matplotlib/tests/test_backend_bases.pyÚ
<listcomp>   s    z&test_uses_per_path.<locals>.<listcomp>é   é   c                    s   g | ]}ˆ   |¡ ¡  ¡ ‘qS r   )ÚrotateZ
get_matrixÚcopyr   ©Úidr   r   r      s    é   é   é   )é
   é   ÚredÚgreenc                 S   s¢   t ƒ }t| | ||¡ƒ}| ¡ }dd„ | |tt|ƒƒ|t | ¡||g g dgg d¡D ƒ}	| 	|||||¡}
|rMt
j|	t|ƒd}t|ƒ |
d |
g¡sOJ ‚d S d S )Nc                 S   s   g | ]	\}}}}}|‘qS r   r   )r   ZxoZyoZpath_idZgc0ZrgbFacer   r   r   r   $   s    z5test_uses_per_path.<locals>.check.<locals>.<listcomp>FÚscreen)Z	minlengthr   )r
   ÚlistZ_iter_collection_raw_pathsZnew_gcZ_iter_collectionÚrangeÚlenr   ZAffineDeltaTransformZ_iter_collection_uses_per_pathÚnpZbincountÚsetÚissubset)Zmaster_transformÚpathsZall_transformsÚoffsetsÚ
facecolorsÚ
edgecolorsÚrbZ	raw_pathsÚgcZidsZusesÚseenr   r   r   Úcheck   s*   ÿüÿ
ÿþz!test_uses_per_path.<locals>.checkr   )r   ZAffine2Dr%   r'   ÚarangeÚreshapeÚshape)r*   Ztforms_matricesr+   r,   r-   r1   Únr   r   r   Útest_uses_per_path   s(   ÿr6   c                   C   s   t tƒ jtƒs	J ‚d S ©N)Ú
isinstancer   Úfigurer   r   r   r   r   Útest_canvas_ctor>   s   r:   c                   C   s   t  ¡ j ¡ dksJ ‚d S )Nz	image.png)Úpltr9   ÚcanvasZget_default_filenamer   r   r   r   Útest_get_default_filenameB   s   r=   c                  C   s.   t  ¡ } t| ƒ}t  | ¡ t  | j¡rJ ‚d S r7   )r;   r9   r   ÚcloseZfignum_existsÚnumber)Úfigr<   r   r   r   Útest_canvas_changeF   s   
rA   Zpdfc                 C   sÎ   t  ¡  |  dd¡ t t¡}t  ¡  t|ƒdksJ ‚dt|d j	ƒv s'J ‚W d   ƒ n1 s1w   Y  t t¡"}t  
¡  ¡  t|ƒdksJJ ‚dt|d j	ƒv sUJ ‚W d   ƒ d S 1 s`w   Y  d S )NZDISPLAYz:999r   z<FigureCanvasPdf is non-interactive, and thus cannot be shownr   )r;   ÚsubplotsZsetenvÚpytestÚwarnsÚUserWarningÚshowr&   ÚstrÚmessageÚgcf)ZmonkeypatchZrecr   r   r   Útest_non_gui_warningO   s    
ÿý
ÿ"ýrJ   c                  C   sD   t  ¡ \} }| j |¡ | jj|ksJ ‚|  ¡  | jjd u s J ‚d S r7   )r;   rB   r<   Z
grab_mouseZmouse_grabberÚclear)r@   Úaxr   r   r   Útest_grab_clearb   s
   rM   zx, y))é*   é   )NrN   )NN)éÈ   gq=
×£ Y@)g     ¸i@g       @c                 C   s
  t  ¡ \}}t|ƒ}td|| |ƒ}| d u r|jd u sJ ‚n|jt| ƒks&J ‚t|jtƒs.J ‚|d u r:|jd u s9J ‚n|jt|ƒksCJ ‚t|jtƒsKJ ‚| d ur|d urt 	d| 
| ¡› d| |¡› | | |¡¡skJ ‚dd„  |_|_t 	d| | |¡¡sƒJ ‚d S d S d S )NZ
test_eventzx=z +y=c                 S   s   dS )NÚfoor   )Úxr   r   r   Ú<lambda>   s    z.test_location_event_position.<locals>.<lambda>zx=foo +y=foo)r;   rB   r   r   rR   Úintr8   ÚyÚreÚmatchZformat_xdataZformat_ydataZformat_coordZ	fmt_xdataZ	fmt_ydata)rR   rU   r@   rL   r<   Úeventr   r   r   Útest_location_event_positionl   s(   
þûrY   c                     s¤   t  ¡ } | jddddddd | j ¡  g ‰ ‡ fdd„}| j d|¡ td	| jd
ƒ ¡  td| jg| j	 
d¡¢tj‘R Ž  ¡  td| jd
ƒ ¡  tˆ ƒdksPJ ‚d S )Nç      à?ZhelloÚcenterT)ZhaÚvaZpickerc                    s   | j jdksJ ‚ˆ  | ¡ d S )NÚa)Z
mouseeventÚkeyÚappend)rX   ©Zpicksr   r   Úhandle_pick‹   s   ztest_pick.<locals>.handle_pickZ
pick_eventÚkey_press_eventr]   Úbutton_press_event©rZ   rZ   Zkey_release_eventr   )r;   r9   Útextr<   ÚdrawZmpl_connectr   Ú_processr   ZtransFigureÚ	transformr   ÚLEFTr&   )r@   ra   r   r`   r   Ú	test_pick…   s   


ÿþrj   c                  C   sÎ  t  ¡ \} }|jdd | ¡ d u sJ ‚t| jƒ}| ¡  | ¡ dks%J ‚| ¡ }| ¡ }d}d}|j	 
|¡ t¡}|j	 
|¡ t¡}td| jg|¢tj‘R Ž }	| jj |	j|	¡ td| jg|¢tj‘R Ž }
| jj |
j|
¡ | ¡ |	j|
jfks{J ‚| ¡ |	j|
jfks‡J ‚td| jg|¢tj‘R Ž }	| jj |	j|	¡ td| jg|¢tj‘R Ž }
| jj |
j|
¡ | ¡ tj|dd	d
ksÁJ ‚| ¡ tj|dd	d
ksÏJ ‚| ¡  | ¡ d u sÛJ ‚| ¡ sã| ¡ råJ ‚d S )NZlogit)ZxscaleÚZOOM)gíµ ÷Æ°>çš™™™™™¹?)gwJëÿï?çš™™™™™é?rc   Úbutton_release_eventr   g»½×Ùß|Û=)ÚrelÚabs)r;   rB   r(   Úget_navigate_moder	   r<   ÚzoomÚget_xlimÚget_ylimÚ	transDatarh   ÚastyperT   r   r   ri   Ú	callbacksÚprocessÚnameZxdataZydataÚRIGHTrC   ÚapproxZget_autoscalex_onZget_autoscaley_on)r@   rL   ÚtbZxlim0Zylim0Úd0Úd1Ús0Ús1Ústart_eventÚ
stop_eventr   r   r   Útest_interactive_zoom˜   sf   
ÿÿÿÿÿÿÿÿÿÿÿÿrƒ   c                  C   sj   t  ¡ \} }| ddgddg¡ | j |¡ t| jƒ}| ¡  | ¡ d u s'J ‚| ¡  | ¡ d u s3J ‚d S )Nr   r   )	r;   rB   Úplotr<   Z
widgetlockr	   rr   rq   Úpan)r@   rL   r|   r   r   r   Útest_widgetlock_zoompanÈ   s   
r†   Ú	plot_funcZimshowÚcontourfÚorientationÚverticalÚ
horizontalztool,button,expectedrr   ©é   é   )iìÿÿÿé   r…   )éþÿÿÿé   )g…ëQ¸…÷?g…ëQ¸@c                 C   s†  t  ¡ \}}t d¡ d¡}d\}}	t|| ƒ|||	d}
|j|
||d}| dkr1|j ¡ r/J ‚d S |j ¡ s8J ‚d\}}|df}|df}|d	krV|d d d
… }|d d d
… }|jj	 
|¡ t¡}|jj	 
|¡ t¡}td|jg|¢|‘R Ž }td|jg|¢|‘R Ž }t|jƒ}|dkrŸ| ¡  | |¡ | |¡ | |¡ n| ¡  | |¡ | |¡ | |¡ |j|jftj|ddksÁJ ‚d S )Né   )r   r   ©r   r   )ÚvminÚvmax)rL   r‰   rˆ   rŒ   rZ   rŠ   éÿÿÿÿrc   rn   rr   g333333Ã?©rp   )r;   rB   r'   r2   r3   ÚgetattrZcolorbarrL   Úget_navigateru   rh   rv   rT   r   r<   r	   rr   Z
press_zoomZ	drag_zoomZrelease_zoomr…   Ú	press_panÚdrag_panÚrelease_panr”   r•   rC   r{   )r‡   r‰   ZtoolÚbuttonÚexpectedr@   rL   ÚdataZvmin0Zvmax0ZcollÚcbr”   r•   r}   r~   r   r€   r   r‚   r|   r   r   r   Útest_interactive_colorbarÓ   sT   ÿÿÿÿÿÿ





"r¡   c                  C   s˜   t jttd dtjd< W d   ƒ n1 sw   Y  t ¡ } |  ¡ d u s(J ‚| jj	j
j d¡ |  ¡ dks9J ‚| jj	j
j d¡ |  ¡ dksJJ ‚d S )N©rW   ÚtoolmanagerÚtoolbarrr   rk   r…   ZPAN)rC   rD   rE   Ú_EXPECTED_WARNING_TOOLMANAGERr;   ÚrcParamsZgcarq   r9   r<   Úmanagerr£   Útrigger_tool)rL   r   r   r   Útest_toolbar_zoompan  s   ÿr©   c                  C   s¬  t  ¡ \} }| tdƒtdƒ¡ t| jƒ}| ¡  td| jdddƒ ¡  td| jdddƒ ¡  | 	¡ | 
¡   kr>dksAJ ‚ J ‚td| jdddƒ ¡  td| jdddƒ ¡  | 	¡ | 
¡   krfdksiJ ‚ J ‚|j dd	g¡\}}td
| jg|¢tj‘R Ž  ¡  td| jg|¢tj‘R Ž  ¡  td| jdƒ ¡  | 	¡ | 
¡   kr©dks¬J ‚ J ‚td| jdddƒ ¡  td| jdddƒ ¡  | 	¡ | 
¡   krÑdksÔJ ‚ J ‚d S )Né   rb   Úkéd   Úl)r   r   r“   )r    r    )r   r   rc   rn   Úh)r;   rB   r„   r%   r	   r<   rr   r   rg   rs   rt   ru   rh   r   r   ri   )r@   rL   r|   ÚstartÚstopr   r   r   Ú$test_toolbar_home_restores_autoscale  s$   
$$$(r±   ÚbackendÚsvgZpsZpgf)Zmarksc                 C   s  ddl m} ddlm} t d| › ¡}|j}|dd}||ƒ | dd¡}|dd}||ƒ | dd¡}dd	„ | ¡ D ƒ}	|j 	¡  |j 	¡  d
d	„ | ¡ D ƒ}
dd	„ | ¡ D ƒ}t
|	|
ƒD ]\}}tj||ddrmJ ‚q_t
||
ƒD ]\}}tjj||dd qsd S )Nr   r   )ÚFigureCanvaszmatplotlib.backends.backend_T)Zconstrained_layoutr    c                 S   ó   g | ]}|  ¡ ‘qS r   ©Zget_position©r   rL   r   r   r   r   N  ó    ztest_draw.<locals>.<listcomp>c                 S   rµ   r   r¶   r·   r   r   r   r   S  r¸   c                 S   rµ   r   r¶   r·   r   r   r   r   T  r¸   g{®Gázt?)Zatol)Úmatplotlib.figurer   Zmatplotlib.backends.backend_aggr´   rC   ZimportorskiprB   Zravelr<   rf   Úzipr'   ZallcloseÚtestingZassert_allclose)r²   r   r´   Ztest_backendZ
TestCanvasZfig_testZ	axes_testZfig_aggZaxes_aggZinit_posZlayed_out_pos_testZlayed_out_pos_aggÚinitZplacedÚrefÚtestr   r   r   Ú	test_draw9  s,   ÿ



ÿr¿   z&key,mouseend,expectedxlim,expectedylim))N©çš™™™™™É?rÁ   ©gìQ¸…ë@g{®Gáú(@©gš™™™™™@gffffff'@)N)rÁ   rZ   rÂ   ©r   é	   )N)rZ   rÁ   rÄ   rÃ   )Nrd   rÄ   rÄ   )N©rm   ç      Ð?©gÃõ(\ÂÀg…ëQ¸@©g      @g     €&@)N©rÁ   rÇ   rÂ   rÉ   )N)rm   ç333333ë?rÈ   ©g…ëQ¸	Àgq=
×£p@)N©rÁ   rË   rÂ   rÌ   )Úshift)rÁ   çš™™™™™Ù?rÂ   rÄ   )rÎ   ©rÏ   rÁ   rÄ   rÃ   )rÎ   rÊ   rÂ   rÂ   )rÎ   rÆ   rÈ   )gÃõ(\Â@gq=
×£ð(@)rÎ   )rm   gÍÌÌÌÌÌì?©g¤p=
×£Àg¤p=
×£@rÑ   )rÎ   rÍ   rÂ   )gìQ¸…ëÀg
×£p=
@)rR   )rÁ   rl   rÂ   rÄ   )rU   )rl   rÁ   rÄ   rÃ   )ÚcontrolrÀ   rÂ   rÂ   )rÒ   rÐ   ©gÃõ(\Â@gq=
×£p'@rÓ   c                 C   s  t  ¡ \}}| t d¡¡ | ¡ sJ ‚| d¡ d}|j |¡ 	t
¡}|j |¡ 	t
¡}td|jg|¢R tj| dœŽ}	td|jg|¢R tj| dœŽ}
t|jƒ}| ¡  | |	¡ | |
¡ | |
¡ t| ¡ ƒtj|ddksrJ ‚t| ¡ ƒtj|ddksJ ‚d S )	Nr   Úequalrd   rc   )r   r^   rn   g{®Gáz”?r—   )r;   rB   r„   r'   r2   r™   Z
set_aspectru   rh   rv   rT   r   r<   r   ri   r	   r…   rš   r›   rœ   Útuplers   rC   r{   rt   )r^   ZmouseendZexpectedxlimZexpectedylimr@   rL   Z
mousestartZsstartÚsendr   r‚   r|   r   r   r   Útest_interactive_pan]  s<   
ÿÿþÿÿþ



"r×   c                  C   s¨   t jttd dtjd< W d   ƒ n1 sw   Y  t ¡ } t| jj	j
jƒ}d| jj	j
jv s2J ‚| jj	j
 d¡ t| jj	j
jƒ|d ksHJ ‚d| jj	j
jvsRJ ‚d S )Nr¢   r£   r¤   Úforwardr   )rC   rD   rE   r¥   r;   r¦   rI   r&   r<   r§   r£   ZtoolsZremove_tool)r@   Zinitial_lenr   r   r   Útest_toolmanager_remove“  s   ÿrÙ   c                  C   s$  t jttd dtjd< W d   ƒ n1 sw   Y  t ¡ } | jjj	 
d¡}t|tƒs/J ‚| jjj	 
|¡|u s;J ‚t jtdd | jjj	 
d¡d u sOJ ‚W d   ƒ n1 sYw   Y  | jjj	j
dddd u slJ ‚t jtdd | jjj	 d¡d u s€J ‚W d   ƒ d S 1 s‹w   Y  d S )	Nr¢   r£   r¤   Ú
rubberbandz'ToolManager does not control tool 'foo'rQ   F)Úwarn)rC   rD   rE   r¥   r;   r¦   rI   r<   r§   r£   Zget_toolr8   r   r¨   )r@   rÚ   r   r   r   Útest_toolmanager_get_toolž  s$   ÿÿþÿ"þrÜ   c                  C   sø   t jttd dtjd< W d   ƒ n1 sw   Y  t ¡ } d| jjj	 
d¡v s,J ‚t jtdd | jjj	 dd¡ W d   ƒ n1 sGw   Y  | jjj	 
d¡dgksYJ ‚t jtdd | jjj	 d	d¡ W d   ƒ d S 1 suw   Y  d S )
Nr¢   r£   r¤   ÚvrØ   z"Key c changed from back to forwardÚcz'foo' not in ToolsrQ   )rC   rD   rE   r¥   r;   r¦   rI   r<   r§   r£   Zget_tool_keymapZupdate_keymapZraisesÚKeyError)r@   r   r   r   Útest_toolmanager_update_keymap¯  s   ÿÿþ"ÿrà   )1rV   Z
matplotlibr   r   Zmatplotlib.backend_basesr   r   r   r   r   r	   r
   Zmatplotlib.backend_toolsr   r¹   r   Zmatplotlib.testing._markersr   Zmatplotlib.pyplotZpyplotr;   Únumpyr'   rC   r¥   r6   r:   r=   rA   Úmarkr²   rJ   rM   ZparametrizerY   rj   rƒ   r†   ri   rz   r¡   r©   r±   Úparamr¿   r×   rÙ   rÜ   rà   r   r   r   r   Ú<module>   sf    $ÿ(
	

ÿ
0



ýÿ6ÿÿ
 þ
!