§
    ‡ÛgÃ<  ã                   ó2  — 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„ Zd	„ Zd
„ Zd„ Zej                             d¦  «        d„ ¦   «         Zej                              dg d¢¦  «        d„ ¦   «         Z!d„ Z"d„ Z#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!„ ¦   «         ¦   «         ¦   «         Z'd"„ Z(ej                              d#d$d%d ej)        d&e¬'¦  «        g¦  «        d(„ ¦   «         Z*ej                              d)g d*¢¦  «        d+„ ¦   «         Z+d,„ Z,d-„ Z-d.„ Z.dS )/é    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            
      óÂ  ‡— t          j        ¦   «         Šd„ t          dd¦  «        D ¦   «         } ˆfd„t          dd¦  «        D ¦   «         }t          j        d¦  «                             d¦  «        }d	d
g}d	d
g}d„ } |‰| ||||¦  «          |‰| dd…         ||||¦  «          |‰g ||||¦  «          |‰| |dd…         |||¦  «          |‰| g |||¦  «         t          d|j        d         ¦  «        D ]} |‰| ||d|…d d …f         ||¦  «         Œ |‰| ||g |¦  «          |‰| |||g ¦  «          |‰| ||g g ¦  «          |‰| |||dd…         |¦  «         d S )Nc                 óL   — g | ]!}t           j                             |¦  «        ‘Œ"S © )r   ÚPathÚunit_regular_polygon)Ú.0Úis     úY/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_backend_bases.pyú
<listcomp>z&test_uses_per_path.<locals>.<listcomp>   s(   € ÐDÐDÐD°1�TŒY×+Ò+¨AÑ.Ô.ÐDÐDÐDó    é   é   c                 ó‚   •— g | ];}‰                      |¦  «                             ¦   «                              ¦   «         ‘Œ<S r   )ÚrotateÚ
get_matrixÚcopy)r   r   Úids     €r   r   z&test_uses_per_path.<locals>.<listcomp>   s;   ø€ ÐMÐMÐM¸A�r—y’y ‘|”|×.Ò.Ñ0Ô0×5Ò5Ñ7Ô7ÐMÐMÐMr   é   é   é   )é
   é   ÚredÚgreenc                 ó  — t          ¦   «         }t          |                     | ||¦  «        ¦  «        }|                     ¦   «         }d„ |                     |t          t          |¦  «        ¦  «        |t          j        | ¦  «        ||g g dgg d¦  «        D ¦   «         }	| 	                    |||||¦  «        }
|rLt          j        |	t          |¦  «        ¬¦  «        }t          |¦  «                             |
dz
  |
g¦  «        sJ ‚d S d S )Nc                 ó   — g | ]
\  }}}}}|‘ŒS r   r   )r   ÚxoÚyoÚpath_idÚgc0ÚrgbFaces         r   r   z5test_uses_per_path.<locals>.check.<locals>.<listcomp>$   s/   € ð "ð "ð "Ñ8˜2˜r 7¨C°ˆwð "ð "ð "r   FÚscreen)Ú	minlengthr!   )r   ÚlistÚ_iter_collection_raw_pathsÚnew_gcÚ_iter_collectionÚrangeÚlenr   ÚAffineDeltaTransformÚ_iter_collection_uses_per_pathÚnpÚbincountÚsetÚissubset)Úmaster_transformÚpathsÚall_transformsÚoffsetsÚ
facecolorsÚ
edgecolorsÚrbÚ	raw_pathsÚgcÚidsÚusesÚseens               r   Úcheckz!test_uses_per_path.<locals>.check   s#  € å‰^Œ^ˆÝ˜×6Ò6Ø˜e ^ñ5ô 5ñ 6ô 6ˆ	à�YŠY‰[Œ[ˆð"ð "Ø×"Ò"Ø•u�S ™^œ^Ñ,Ô,¨gÝÔ2Ð3CÑDÔDØ˜z¨2¨r°E°7Ø�xñ	!ô !ð"ñ "ô "ˆð ×0Ò0Ø�> 7¨J¸
ñDô Dˆàð 	8Ý”;˜s­c°)©n¬nÐ=Ñ=Ô=ˆDÝ�t‘9”9×%Ò% t¨a¡x°Ð&6Ñ7Ô7Ð7Ð7Ð7ð	8ð 	8à7Ð7r   r   )r   ÚAffine2Dr5   r9   ÚarangeÚreshapeÚshape)r>   Útforms_matricesr@   rA   rB   rI   Únr    s          @r   Útest_uses_per_pathrP      sì  ø€ Ý	Ô	Ñ	Ô	€BØDÐD½¸aÀ¹¼ÐDÑDÔD€EØMÐMÐMÐMÅÀqÈ!ÁÄÐMÑMÔM€OÝŒi˜‰mŒm×#Ò# GÑ,Ô,€GØ˜Ð!€JØ˜Ð!€Jð8ð 8ð 8ð$ 
€Eˆ"ˆe�_ g¨z¸:ÑFÔFÐFØ	€Eˆ"ˆe�A�a�CŒj˜/¨7°JÀ
ÑKÔKÐKØ	€Eˆ"ˆb�/ 7¨J¸
ÑCÔCÐCØ	€Eˆ"ˆe�_ Q q SÔ)¨7°JÀ
ÑKÔKÐKØ	€Eˆ"ˆe�R˜ *¨jÑ9Ô9Ð9Ý�1�g”m AÔ&Ñ'Ô'ð &ð &ˆØˆˆb�%˜¨'°!°A°#°q°q°q°&¬/Ø˜*ñ	&ô 	&ð 	&ð 	&à	€Eˆ"ˆe�_ g¨r°:Ñ>Ô>Ð>Ø	€Eˆ"ˆe�_ g¨z¸2Ñ>Ô>Ð>Ø	€Eˆ"ˆe�_ g¨r°2Ñ6Ô6Ð6Ø	€Eˆ"ˆe�_ g¨z¸!¸A¸#¬À
ÑKÔKÐKÐKÐKr   c                  óV   — t          t          ¦   «         j        t          ¦  «        sJ ‚d S ©N)Ú
isinstancer   Úfigurer   r   r   r   Útest_canvas_ctorrU   >   s(   € ÝÕ&Ñ(Ô(Ô/µÑ8Ô8Ð8Ð8Ð8Ð8Ð8r   c                  óf   — t          j        ¦   «         j                             ¦   «         dk    sJ ‚d S )Nz	image.png)ÚpltrT   ÚcanvasÚget_default_filenamer   r   r   Útest_get_default_filenamerZ   B   s.   € ÝŒ:‰<Œ<Ô×3Ò3Ñ5Ô5¸ÒDÐDÐDÐDÐDÐDr   c                  ó¨   — t          j        ¦   «         } t          | ¦  «        }t          j        | ¦  «         t          j        | j        ¦  «        rJ ‚d S rR   )rW   rT   r   ÚcloseÚfignum_existsÚnumber)ÚfigrX   s     r   Útest_canvas_changer`   F   sF   € Ý
Œ*‰,Œ,€Cå˜cÑ"Ô"€Få„Iˆc�N„N€NÝÔ  ¤Ñ,Ô,Ð,Ð,Ð,Ð,Ð,r   Úpdfc                 ó^  — t          j        ¦   «          |                      dd¦  «         t          j        t
          ¦  «        5 }t          j        ¦   «          t          |¦  «        dk    sJ ‚dt          |d         j	        ¦  «        v sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5 }t          j
        ¦   «                              ¦   «          t          |¦  «        dk    sJ ‚dt          |d         j	        ¦  «        v sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NÚDISPLAYz:999r!   z=Matplotlib is currently using pdf, which is a non-GUI backendr   )rW   ÚsubplotsÚsetenvÚpytestÚwarnsÚUserWarningÚshowr6   ÚstrÚmessageÚgcf)ÚmonkeypatchÚrecs     r   Útest_non_gui_warningro   O   s™  € å„L�N„N€Nà×Ò�y &Ñ)Ô)Ð)å	Œ•kÑ	"Ô	"ð ( cÝŒ‰
Œ
ˆ
Ý�3‰xŒx˜1Š}ˆ}ˆ}ˆ}ØOÝ�s˜1”v”~Ñ&Ô&ð'ð 'ð 'ð 'ð 'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (õ 
Œ•kÑ	"Ô	"ð ( cÝŒ‰	Œ	�ŠÑÔÐÝ�3‰xŒx˜1Š}ˆ}ˆ}ˆ}ØOÝ�s˜1”v”~Ñ&Ô&ð'ð 'ð 'ð 'ð 'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s&   ÁABÂBÂBÂ;AD"Ä"D&Ä)D&zx, y))é*   é   )Nrp   )NN)éÈ   gq=
×£ Y@)g     ¸i@g       @c                 óÊ  — t          j        ¦   «         \  }}t          |¦  «        }t          d|| |¦  «        }| €
|j        �J ‚n6|j        t          | ¦  «        k    sJ ‚t          |j        t
          ¦  «        sJ ‚|€
|j        �J ‚n6|j        t          |¦  «        k    sJ ‚t          |j        t
          ¦  «        sJ ‚| �¡|�¡t          j	        d 
                    |                     | ¦  «        |                     |¦  «        ¦  «        |                     | |¦  «        ¦  «        sJ ‚d„ x|_        |_        t          j	        d|                     | |¦  «        ¦  «        sJ ‚d S d S d S )NÚ
test_eventz
x={} +y={}c                 ó   — dS )NÚfoor   )Úxs    r   ú<lambda>z.test_location_event_position.<locals>.<lambda>w   s   € °€ r   zx=foo +y=foo)rW   rd   r   r   rw   ÚintrS   ÚyÚreÚmatchÚformatÚformat_xdataÚformat_ydataÚformat_coordÚ	fmt_xdataÚ	fmt_ydata)rw   rz   r_   ÚaxrX   Úevents         r   Útest_location_event_positionr…   b   sg  € õ Œl‰nŒn�G€CˆÝ˜cÑ"Ô"€FÝ˜,¨°°1Ñ5Ô5€EØ€yØŒwˆˆˆˆàŒw�#˜a™&œ&Ò Ð Ð Ð Ý˜%œ'¥3Ñ'Ô'Ð'Ð'Ð'Ø€yØŒwˆˆˆˆàŒw�#˜a™&œ&Ò Ð Ð Ð Ý˜%œ'¥3Ñ'Ô'Ð'Ð'Ð'Ø€}˜˜ÝŒxØ×Ò §¢°Ñ 2Ô 2°B·O²OÀAÑ4FÔ4FÑGÔGØ�OŠO˜A˜qÑ!Ô!ñ#ô #ð 	#ð 	#ð 	#ð '6 oÐ5ˆŒ�r”|ÝŒx˜¨¯ª¸¸1Ñ(=Ô(=Ñ>Ô>Ð>Ð>Ð>ð €}˜˜ð
 	?Ð>r   c                  ó6  ‡— t          j        ¦   «         } |                      dddddd¬¦  «         | j                             ¦   «          g Šˆfd„}| j                             d|¦  «         t          d| j        d	¦  «                             ¦   «          t          d
| j        g| j	         
                    d¦  «        ¢t          j        ‘R Ž                      ¦   «          t          d| j        d	¦  «                             ¦   «          t          ‰¦  «        dk    sJ ‚d S )Nç      à?ÚhelloÚcenterT)ÚhaÚvaÚpickerc                 óV   •— | j         j        dk    sJ ‚‰                     | ¦  «         d S )NÚa)Ú
mouseeventÚkeyÚappend)r„   Úpickss    €r   Úhandle_pickztest_pick.<locals>.handle_pick�   s2   ø€ ØÔÔ# sÒ*Ð*Ð*Ð*Ø�Š�UÑÔÐÐÐr   Ú
pick_eventÚkey_press_eventrŽ   Úbutton_press_event©r‡   r‡   Úkey_release_eventr!   )rW   rT   ÚtextrX   ÚdrawÚmpl_connectr   Ú_processr	   ÚtransFigureÚ	transformr   ÚLEFTr6   )r_   r“   r’   s     @r   Ú	test_pickr    {   s  ø€ Ý
Œ*‰,Œ,€CØ‡H‚HˆR��W ¨h¸t€HÑDÔDÐDØ„J‡O‚OÑÔÐà€Eðð ð ð ð ð „J×Ò˜<¨Ñ5Ô5Ð5åÐ ¤
¨CÑ0Ô0×9Ò9Ñ;Ô;Ð;ÝÐ# S¤Zð !Ø”×)Ò)¨(Ñ3Ô3ð!åÔð!ð !ð !ç!)¢¡¤ ÝÐ  #¤*¨cÑ2Ô2×;Ò;Ñ=Ô=Ð=Ýˆu‰:Œ:˜Š?ˆ?ˆ?ˆ?ˆ?ˆ?r   c                  óJ  — t          j        ¦   «         \  } }|                     d¬¦  «         |                     ¦   «         �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	¬
¦  «        k    sJ ‚|                     ¦   «         t-          j        |dd	¬
¦  «        k    sJ ‚|                     ¦   «          |                     ¦   «         �J ‚|                     ¦   «         s|                     ¦   «         rJ ‚d S )NÚlogit)ÚxscaleÚZOOM)g�íµ ÷Æ°>çš™™™™™¹?)gwJëÿï?çš™™™™™é?r–   Úbutton_release_eventr   g»½×Ùß|Û=)ÚrelÚabs)rW   rd   r;   Úget_navigate_moder
   rX   ÚzoomÚget_xlimÚget_ylimÚ	transDatarž   Úastypery   r	   r   rŸ   Ú	callbacksÚprocessÚnameÚxdataÚydataÚRIGHTrf   ÚapproxÚget_autoscalex_onÚget_autoscaley_on)r_   rƒ   ÚtbÚxlim0Úylim0Úd0Úd1Ús0Ús1Ústart_eventÚ
stop_events              r   Útest_interactive_zoomrÂ   Ž   s  € ÝŒl‰nŒn�G€CˆØ‡F‚F�'€FÑÔÐØ×ÒÑ!Ô!Ð)Ð)Ð)å	˜CœJÑ	'Ô	'€BØ‡G‚G�I„I€IØ×ÒÑ!Ô! VÒ+Ð+Ð+Ð+à�KŠK‰MŒM€EØ�KŠK‰MŒM€Eð 
€BØ	€Bð 
Œ×	Ò	 Ñ	#Ô	#×	*Ò	*­3Ñ	/Ô	/€BØ	Œ×	Ò	 Ñ	#Ô	#×	*Ò	*­3Ñ	/Ô	/€Bõ Ø˜cœjðAØ+-ðAÝ/:Ô/?ðAð Að A€Kà„JÔ× Ò  Ô!1°;Ñ?Ô?Ð?ÝØ ¤
ðCØ-/ðCÝ1<Ô1AðCð Cð C€Jà„JÔ× Ò  ¤°*Ñ=Ô=Ð=Ø�;Š;‰=Œ=˜[Ô.°
Ô0@ÐAÒAÐAÐAÐAØ�;Š;‰=Œ=˜[Ô.°
Ô0@ÐAÒAÐAÐAÐAõ Ø˜cœjðBØ+-ðBÝ/:Ô/@ðBð Bð B€Kà„JÔ× Ò  Ô!1°;Ñ?Ô?Ð?ÝØ ¤
ðDØ-/ðDÝ1<Ô1BðDð Dð D€Jà„JÔ× Ò  ¤°*Ñ=Ô=Ð=à�;Š;‰=Œ=�FœM¨%°Q¸EÐBÑBÔBÒBÐBÐBÐBØ�;Š;‰=Œ=�FœM¨%°Q¸EÐBÑBÔBÒBÐBÐBÐBà‡G‚G�I„I€IØ×ÒÑ!Ô!Ð)Ð)Ð)à×#Ò#Ñ%Ô%ÐD¨b×.BÒ.BÑ.DÔ.DÐDÐDÐDÐDÐDr   c                  ój  — t          j        ¦   «         \  } }|                     ddgddg¦  «         | j                             |¦  «         t          | j        ¦  «        }|                     ¦   «          |                     ¦   «         �J ‚|                     ¦   «          |                     ¦   «         �J ‚d S )Nr   r!   )	rW   rd   ÚplotrX   Ú
widgetlockr
   r«   rª   Úpan)r_   rƒ   r¹   s      r   Útest_widgetlock_zoompanrÇ   ¾   s¢   € ÝŒl‰nŒn�G€CˆØ‡G‚GˆQ�ˆF�Q˜�FÑÔÐØ„J×Ò˜"ÑÔÐÝ	˜CœJÑ	'Ô	'€BØ‡G‚G�I„I€IØ×ÒÑ!Ô!Ð)Ð)Ð)Ø‡F‚F�H„H€HØ×ÒÑ!Ô!Ð)Ð)Ð)Ð)Ð)r   Ú	plot_funcÚimshowÚcontourfÚorientationÚverticalÚ
horizontalztool,button,expectedr«   ©é   é   )iìÿÿÿé   rÆ   )éþÿÿÿé   )g…ëQ¸…÷?g…ëQ¸@c                 óÂ  — t          j        ¦   «         \  }}t          j        d¦  «                             d¦  «        }d\  }}	 t          || ¦  «        |||	¬¦  «        }
|                     |
||¬¦  «        }| dk    r|j                             ¦   «         rJ ‚d S |j                             ¦   «         sJ ‚d\  }}|df}|df}|d	k    r|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    rT|                     ¦   «          |                     |¦  «         |                     |¦  «         |                     |¦  «         nS|                     ¦   «          |                     |¦  «         |                     |¦  «         |                     |¦  «         |j        |j        ft5          j        |d¬¦  «        k    sJ ‚d S )Né   )rÏ   r   )r   r$   )ÚvminÚvmax)rƒ   rË   rÊ   rÎ   r‡   rÌ   éÿÿÿÿr–   r§   r«   g333333Ã?©r©   )rW   rd   r9   rK   rL   ÚgetattrÚcolorbarrƒ   Úget_navigater®   rž   r¯   ry   r	   rX   r
   r«   Ú
press_zoomÚ	drag_zoomÚrelease_zoomrÆ   Ú	press_panÚdrag_panÚrelease_panrÖ   r×   rf   r¶   )rÈ   rË   ÚtoolÚbuttonÚexpectedr_   rƒ   ÚdataÚvmin0Úvmax0ÚcollÚcbrÖ   r×   r¼   r½   r¾   r¿   rÀ   rÁ   r¹   s                        r   Útest_interactive_colorbarrë   É   sr  € õ Œl‰nŒn�G€CˆÝŒ9�R‰=Œ=× Ò  Ñ(Ô(€DØ�L€Eˆ5Ø!�7�2�yÑ!Ô! $¨U¸Ð?Ñ?Ô?€Dà	�Š�d˜r¨{ˆÑ	;Ô	;€BØ�JÒÐà”5×%Ò%Ñ'Ô'Ð'Ð'Ð'ØˆàŒ5×ÒÑÔÐÐÐð �J€Dˆ$ð
 �ˆ€BØ
�ˆ€Bà�jÒ Ð Ø���"�ŒXˆØ���"�ŒXˆð 
ŒŒ×	"Ò	" 2Ñ	&Ô	&×	-Ò	-­cÑ	2Ô	2€BØ	ŒŒ×	"Ò	" 2Ñ	&Ô	&×	-Ò	-­cÑ	2Ô	2€Bõ Ø˜cœjð7Ø+-ð7Ø/5ð7ð 7ð 7€KåØ ¤
ð9Ø-/ð9Ø17ð9ð 9ð 9€Jõ 
˜CœJÑ	'Ô	'€BØˆv‚~€~Ø
�Š‰	Œ	ˆ	Ø
�Š�kÑ"Ô"Ð"Ø
�Š�ZÑ Ô Ð Ø
�Š˜
Ñ#Ô#Ð#Ð#à
�Š‰ŒˆØ
�Š�[Ñ!Ô!Ð!Ø
�Š�JÑÔÐØ
�Š�zÑ"Ô"Ð"ð ŒG�R”WÐ¥¤¨x¸TÐ!BÑ!BÔ!BÒBÐBÐBÐBÐBÐBr   c                  óò  — t          j        t          t          ¬¦  «        5  dt          j        d<   d d d ¦  «         n# 1 swxY w Y   t	          j        ¦   «         } |                      ¦   «         �J ‚| j        j	        j
        j                             d¦  «         |                      ¦   «         dk    sJ ‚| j        j	        j
        j                             d¦  «         |                      ¦   «         dk    sJ ‚d S )N©r|   ÚtoolmanagerÚtoolbarr«   r¤   rÆ   ÚPAN)rf   rg   rh   Ú_EXPECTED_WARNING_TOOLMANAGERrW   ÚrcParamsÚgcarª   rT   rX   Úmanagerrî   Útrigger_tool)rƒ   s    r   Útest_toolbar_zoompanrö     s  € Ý	Œ•kÕ)FÐ	GÑ	GÔ	Gð 0ð 0Ø"/�Œ�YÑð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0å	Œ‰Œ€BØ×ÒÑ!Ô!Ð)Ð)Ð)Ø„IÔÔÔ(×5Ò5°fÑ=Ô=Ð=Ø×ÒÑ!Ô! VÒ+Ð+Ð+Ð+Ø„IÔÔÔ(×5Ò5°eÑ<Ô<Ð<Ø×ÒÑ!Ô! UÒ*Ð*Ð*Ð*Ð*Ð*ó   ¡=½AÁAÚbackendÚsvgÚpsÚpgf)Úmarksc                 óô  — ddl m} ddlm} t	          j        d| › �¦  «        }|j        } |d¬¦  «        } ||¦  «         |                     dd¦  «        } |d¬¦  «        } ||¦  «         |                     dd¦  «        }d„ |                     ¦   «         D ¦   «         }	|j         	                    ¦   «          |j         	                    ¦   «          d	„ |                     ¦   «         D ¦   «         }
d
„ |                     ¦   «         D ¦   «         }t          |	|
¦  «        D ]\  }}t          j        ||d¬¦  «        rJ ‚Œt          ||
¦  «        D ]'\  }}t          j                             ||d¬¦  «         Œ(d S )Nr   r   )ÚFigureCanvaszmatplotlib.backends.backend_T)Úconstrained_layoutr%   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   ©Úget_position©r   rƒ   s     r   r   ztest_draw.<locals>.<listcomp>&  s"   € Ð>Ð>Ð> b�—’Ñ!Ô!Ð>Ð>Ð>r   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   r  r  s     r   r   ztest_draw.<locals>.<listcomp>+  s"   € ÐHÐHÐH°˜"Ÿ/š/Ñ+Ô+ÐHÐHÐHr   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   r  r  s     r   r   ztest_draw.<locals>.<listcomp>,  s"   € ÐFÐFÐF¨r˜ŸšÑ*Ô*ÐFÐFÐFr   g{®Gázt?)Úatol)Úmatplotlib.figurer   Úmatplotlib.backends.backend_aggrþ   rf   Úimportorskiprd   ÚravelrX   rš   Úzipr9   ÚallcloseÚtestingÚassert_allclose)rø   r   rþ   Útest_backendÚ
TestCanvasÚfig_testÚ	axes_testÚfig_aggÚaxes_aggÚinit_posÚlayed_out_pos_testÚlayed_out_pos_aggÚinitÚplacedÚrefÚtests                   r   Ú	test_drawr    sÇ  € ð
 )Ð(Ð(Ð(Ð(Ð(Ø<Ð<Ð<Ð<Ð<Ð<ÝÔ&Ø0 wÐ0Ð0ñô €Lð Ô*€JØˆv¨Ð.Ñ.Ô.€HØ€JˆxÑÔÐØ×!Ò! ! QÑ'Ô'€Ið ˆf¨Ð-Ñ-Ô-€Gà€L�ÑÔÐØ×Ò  1Ñ%Ô%€Hà>Ð>¨I¯OªOÑ,=Ô,=Ð>Ñ>Ô>€Hà„O×ÒÑÔÐØ„N×ÒÑÔÐàHÐH°i·o²oÑ6GÔ6GÐHÑHÔHÐØFÐF°X·^²^Ñ5EÔ5EÐFÑFÔFÐå˜HÐ&8Ñ9Ô9ð 9ð 9‰ˆˆfÝ”;˜t V°%Ð8Ñ8Ô8Ð8Ð8Ð8Ð8åÐ*Ð,>Ñ?Ô?ð :ð :‰	ˆˆTÝ
Œ
×"Ò" 3¨°5Ð"Ñ9Ô9Ð9Ð9ð:ð :r   z&key,mouseend,expectedxlim,expectedylim))N©çš™™™™™É?r  ©gìQ¸…ë@g{®Gáú(@©gš™™™™™@gffffff'@)N)r  r‡   r  ©r   é	   )N)r‡   r  r!  r   )Nr—   r!  r!  )N©r¦   ç      Ð?©gÃõ(\�ÂÀg…ëQ¸@©g      @g     €&@)N©r  r$  r  r&  )N)r¦   ç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+  )r¦   gÍÌÌÌÌÌì?©g¤p=
×£Àg¤p=
×£@r.  )r+  r*  r  )gìQ¸…ëÀg
×£p=
@)rw   )r  r¥   r  r!  )rz   )r¥   r  r!  r   )Úcontrolr  r  r  )r/  r-  ©gÃõ(\�Â@gq=
×£p'@r0  c                 óà  — t          j        ¦   «         \  }}|                     t          j        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¬¦  «        k    sJ ‚t)          |                     ¦   «         ¦  «        t-          j        |d¬¦  «        k    sJ ‚d S )	Nr$   Úequalr—   r–   )rä   r�   r§   g{®Gáz”?rÙ   )rW   rd   rÄ   r9   rK   rÜ   Ú
set_aspectr®   rž   r¯   ry   r	   rX   r   rŸ   r
   rÆ   rà   rá   râ   Útupler¬   rf   r¶   r­   )r�   ÚmouseendÚexpectedxlimÚexpectedylimr_   rƒ   Ú
mousestartÚsstartÚsendrÀ   rÁ   r¹   s               r   Útest_interactive_panr;  5  sÎ  € õ, Œl‰nŒn�G€CˆØ‡G‚G�BŒI�b‰MŒMÑÔÐØ�?Š?ÑÔÐÐÐà‡M‚M�'ÑÔÐð €Jð Œ\×#Ò# JÑ/Ô/×6Ò6µsÑ;Ô;€FØŒ<×!Ò! (Ñ+Ô+×2Ò2µ3Ñ7Ô7€Dõ Ø˜cœjðØ+1ðð Ý:EÔ:JØðð ð €Kõ Ø ¤
ðØ-1ðð Ý:EÔ:JØðð ð €Jõ 
˜CœJÑ	'Ô	'€BØ‡F‚F�H„H€HØ‡L‚L�ÑÔÐØ‡K‚K�
ÑÔÐØ‡N‚N�:ÑÔÐå�—’‘”ÑÔ¥6¤=°À4Ð#HÑ#HÔ#HÒHÐHÐHÐHÝ�—’‘”ÑÔ¥6¤=°À4Ð#HÑ#HÔ#HÒHÐHÐHÐHÐHÐHr   c                  ó  — t          j        t          t          ¬¦  «        5  dt          j        d<   d d d ¦  «         n# 1 swxY w Y   t	          j        ¦   «         } t          | j        j	        j
        j        ¦  «        }d| j        j	        j
        j        v sJ ‚| j        j	        j
                             d¦  «         t          | j        j	        j
        j        ¦  «        |dz
  k    sJ ‚d| j        j	        j
        j        vsJ ‚d S )Nrí   rî   rï   Úforwardr!   )rf   rg   rh   rñ   rW   rò   rl   r6   rX   rô   rî   ÚtoolsÚremove_tool)r_   Úinitial_lens     r   Útest_toolmanager_removerA  k  s  € Ý	Œ•kÕ)FÐ	GÑ	GÔ	Gð 0ð 0Ø"/�Œ�YÑð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0å
Œ'‰)Œ)€CÝ�c”jÔ(Ô4Ô:Ñ;Ô;€KØ˜œ
Ô*Ô6Ô<Ð<Ð<Ð<Ð<Ø„JÔÔ"×.Ò.¨yÑ9Ô9Ð9ÝˆsŒzÔ!Ô-Ô3Ñ4Ô4¸Àa¹ÒGÐGÐGÐGØ˜CœJÔ.Ô:Ô@Ð@Ð@Ð@Ð@Ð@Ð@r÷   c                  ó:  — t          j        t          t          ¬¦  «        5  dt          j        d<   d d d ¦  «         n# 1 swxY w Y   t	          j        ¦   «         } | j        j        j	         
                    d¦  «        }t          |t          ¦  «        sJ ‚| j        j        j	         
                    |¦  «        |u sJ ‚t          j        t          d¬¦  «        5  | j        j        j	         
                    d¦  «        �J ‚	 d d d ¦  «         n# 1 swxY w Y   | j        j        j	         
                    dd¬¦  «        �J ‚t          j        t          d¬¦  «        5  | j        j        j	                             d¦  «        �J ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )	Nrí   rî   rï   Ú
rubberbandz'ToolManager does not control tool 'foo'rv   F)Úwarn)rf   rg   rh   rñ   rW   rò   rl   rX   rô   rî   Úget_toolrS   r   rõ   )r_   rC  s     r   Útest_toolmanager_get_toolrF  v  sk  € Ý	Œ•kÕ)FÐ	GÑ	GÔ	Gð 0ð 0Ø"/�Œ�YÑð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0å
Œ'‰)Œ)€CØ”Ô#Ô/×8Ò8¸ÑFÔF€JÝ�j¥.Ñ1Ô1Ð1Ð1Ð1ØŒ:ÔÔ)×2Ò2°:Ñ>Ô>À*ÐLÐLÐLÐLÝ	Œ•kØEð
Gñ 
Gô 
Gð Fð FàŒzÔ!Ô-×6Ò6°uÑ=Ô=ÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Œ:ÔÔ)×2Ò2°5¸uÐ2ÑEÔEÐMÐMÐMå	Œ•kØEð
Gñ 
Gô 
Gð Jð JàŒzÔ!Ô-×:Ò:¸5ÑAÔAÐIÐIÐIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð Jð Js3   ¡=½AÁAÃ'DÄDÄDÅ'FÆFÆFc                  óÂ  — t          j        t          t          ¬¦  «        5  dt          j        d<   d d d ¦  «         n# 1 swxY w Y   t	          j        ¦   «         } d| j        j        j	         
                    d¦  «        v sJ ‚t          j        t          d¬¦  «        5  | j        j        j	                             dd¦  «         d d d ¦  «         n# 1 swxY w Y   | j        j        j	         
                    d¦  «        dgk    sJ ‚t          j        t          d¬¦  «        5  | j        j        j	                             d	d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nrí   rî   rï   Úvr=  z"Key c changed from back to forwardÚcz'foo' not in Toolsrv   )rf   rg   rh   rñ   rW   rò   rl   rX   rô   rî   Úget_tool_keymapÚupdate_keymapÚraisesÚKeyError)r_   s    r   Útest_toolmanager_update_keymaprN  ‡  s%  € Ý	Œ•kÕ)FÐ	GÑ	GÔ	Gð 0ð 0Ø"/�Œ�YÑð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0å
Œ'‰)Œ)€CØ�#”*Ô$Ô0×@Ò@ÀÑKÔKÐKÐKÐKÐKÝ	Œ•kØ@ð
Bñ 
Bô 
Bð Eð EàŒ
ÔÔ&×4Ò4°YÀÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eð Œ:ÔÔ)×9Ò9¸)ÑDÔDÈÈÒMÐMÐMÐMÝ	Œ•xÐ';Ð	<Ñ	<Ô	<ð Að AØŒ
ÔÔ&×4Ò4°U¸CÑ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að As3   ¡=½AÁAÂ&CÃCÃCÄ!&EÅEÅE)/r{   Ú
matplotlibr   r   Úmatplotlib.backend_basesr   r   r   r   r	   r
   r   Úmatplotlib.backend_toolsr   r  r   Úmatplotlib.testing._markersr   Úmatplotlib.pyplotÚpyplotrW   Únumpyr9   rf   rñ   rP   rU   rZ   r`   Úmarkrø   ro   Úparametrizer…   r    rÂ   rÇ   rŸ   rµ   rë   rö   Úparamr  r;  rA  rF  rN  r   r   r   ú<module>rY     sn  ðØ 	€	€	€	à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ð&ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø $Ð $Ð $Ð $Ð $Ð $Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€ð9ð ð%Lð %Lð %LðP9ð 9ð 9ðEð Eð Eð-ð -ð -ð „×Ò�UÑÔð(ð (ñ Ôð(ð$ „×ÒØ
ÐNÐNÐNñPô Pð?ð ?ñPô Pð?ð.ð ð ð&-Eð -Eð -Eð`*ð *ð *ð „×Ò˜ x°Ð&<Ñ=Ô=Ø„×Ò˜¨°\Ð(BÑCÔCØ„×ÒÐ/Ø! ;Ô#3°VÐ<Ø! ;Ô#4°iÐ@Ø  +Ô"2°GÐ<Ø  +Ô"3°\ÐBðDñEô Eð
3Cð 3CñEô Eñ DÔCñ >Ô=ð3Cðl+ð +ð +ð „×ÒØ��t˜UØ�”˜UÐ*;Ð<Ñ<Ô<ð>ñô ð:ð :ñ	ô ð:ð@ „×ÒØ,ðð ð ñô ð*Ið Iñ+ô ð*IðBAð Að AðJð Jð Jð"
Að 
Að 
Að 
Að 
Ar   