403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/matplotlib/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/matplotlib/tests/__pycache__/test_widgets.cpython-312.pyc
�

G8�cC��
�4�ddlmZddlZddlmZddlmZddlmZddl	m
Zddlm
Z
ddlmZddlmZmZddlmZmZmZmZmZddlZddlmZddlZej>d	��Z ejBjEd
e#�dfe#dd�
�dfe#dd��dfe#ddd��dfe#ddd��dfe#e#d����dfg�d��Z$ejBjEdddg�ejBjEdddgddgddgg�ejBjEd ddgddgddgg�d!����Z%d"�Z&ejBjEd#dd$gdd%gg�d&��Z'd'�Z(d(�Z)d)�Z*ejBjEd*ddg�d+��Z+ejBjEd*ddg�d,��Z,d-�Z-ejBjEd.e
j\e
j^g�d/��Z0d0�Z1ejBjEd1ddg�d2��Z2d3�Z3d4�Z4ejBjEd5ddg�d6��Z5ejBjEd7ddg�d8��Z6ejBjEd9d:de#dd�;�fd<de#d�=�fd:de#e#d����fd:de#d�>�fg�d?��Z7ejBjEd5ddg�d@��Z8ejBjEd7ddg�dA��Z9ejBjEdBddg�dC��Z:dD�Z;dE�Z<ejBjEdFdGdHg�dI��Z=ejBjEdFdGdHg�dJ��Z>dK�Z?dL�Z@ejBjEdMdN�dO��ZAejBj�dPd�Q�dR��ZCdS�ZDdT�ZEejBjEdUe#�e#de#dV�W��X�e#dd��g�dY��ZFdZ�ZGejBjEd[gd\��d]��ZHed^gd_d�`�da��ZIedbgd_d�`�dc��ZJdd�ZKde�ZLdf�ZMdg�ZNdh�ZOdi�ZPejBjEdjd:d<g�dk��ZQejBjEdjd:d<g�dl��ZRdm�ZSdn�ZTdo�ZUejBjEdpddg�dq��ZVejBjEdpddg�dr��ZWe�ds��ZXejBjEdtgdu��ejBjEdpddg�dv���ZYejBjEdpddg�dw��ZZejBjEdpddg�dx��Z[ejBjEdpddg�edyg�z�d{���Z\d|�Z]ejBjEd}ddg�ejBjEd~ddg�d���Z^y)��)�nullcontextN)�mock)�MatplotlibDeprecationWarning)�
MouseEvent)�check_figures_equal�image_comparison)�click_and_drag�do_event�get_ax�
mock_event�noop)�assert_allclosec��t�S�N)r���?/usr/lib/python3/dist-packages/matplotlib/tests/test_widgets.py�axrs	���8�Orzkwargs, warning_msg�lineF)�drawtype�useblitz)Support for drawtype='line' is deprecatedT�)r�button�none�
)r�minspanx�minspanyz)Support for drawtype='none' is deprecated�pixels)rr�
spancoords)�fill)�propsc��tjtd��}|rtjt
|��n	t
�5tj||fi|��}ddd�tdddd��t|dddd��t|d	d
d
d��|jdd�dvr(t|jgd
�gd�g|j��|j�|j\\}}}|jdk(sJ�|j dk(sJ�|jdk(sJ�|j dk(sJ�|ik(sJ�y#1swY��xYw)N��spec�return_value��match�press�dr��xdata�ydatar�onmove���release�r)rr)�Y@r)r.r.r))r)r.r.r)r))�err_msg)r�Mockr
�pytest�warnsrr�widgets�RectangleSelectorr
�getr�geometry�assert_called_once�	call_argsr+r,)r�kwargs�warning_msg�onselect�tool�epress�ereleases       r�test_rectangle_selectorrBs>���y�y�d��6�H���,�,�3�;�
G� +�
�A��(�(��X�@��@��A�
�T�7�#�S��;��T�8�3�c�!�<�
�T�9�C�s�1�=�
�z�z�*�d�#�+;�;���
�
�3�2�4� $�
�
�	/�

���!�!)�!3�!3���V�X���<�<�3�����<�<�3�����>�>�S� � � ��>�>�S� � � ��R�<��<�+A�A�s�D=�=Er�datazminspanx, x1�%@�zminspany, y1c���tjtd��}d\}}|dk(r>|jj	||f�|jj	||f�z
\}}tj||d|||��}	t|	||f||f��|	jrJ�|j�t|	dd��|	jsJ�|j�|j�t|	||f||f��|	jrJ�|j�|j\\}
}}|
j|k(sJ�|
j|k(sJ�|j|k(sJ�|j|k(sJ�|ik(sJ�y)	Nr#�rrrT)�interactiverrr��start�end��rM��rO)rr3r
�	transData�	transformr6r7r	�_selection_completed�assert_not_calledr:�
reset_mockr;r+r,)
rrr�x1r�y1r>�x0�y0r?r@rAr<s
             r�test_rectangle_minspanrY>s|��
�y�y�d��6�H�
�F�B���X�� �l�l�4�4�b�"�X�>� �l�l�4�4�b�"�X�>�?���(��$�$�R��t�0:�.6��K�D��4��B�x�b�"�X�6��(�(�(�(���� ��4�x�X�6��$�$�$�$����!�
�����4��B�x�b�"�X�6��(�(�(�(����!�!)�!3�!3���V�X���<�<�2�����<�<�2�����>�>�R�����>�>�R�����R�<��<rc���tj|d��}|j�sJ�tjt
d��5d|_ddd�|j�rJ�y#1swY�xYw)Nc��yrr��argss r�<lambda>z=test_deprecation_selector_visible_attribute.<locals>.<lambda>e��rz was deprecated in Matplotlib 3.6r&F)r6r7�get_visibler4r5r�visible�rr?s  r�+test_deprecation_selector_visible_attributercdsn���$�$�R�);�<�D�������	���$�4�
6���������!�!�!�!�	��s�A(�(A1zdrag_from_anywhere, new_center)�<�K�rOrMc��tj|td|��}t|dd��|jdk(sJ�t|dd��|j|k(sJ�t|d	d
��|jdk(sJ�y)NT)r>rH�drag_from_anywhere�rr�r)�xrI)�2�A�����#ro����ru��)��)r6r7r
r	�center)rrh�
new_centerr?s    r�test_rectangle_dragr|ps~���$�$�R�$�D�8J�L�D��4�w�J�7��;�;�(�"�"�"��4�x�X�6��;�;�*�$�$�$��4�z�z�:��;�;�*�$�$�$rc	�~�tj|tdtdd��td����}t	|dd	�
�|j
}|j
�tjdd��k(sJ�|jdd��|j
�tjdd��k(sJ�|jD],}|j�d
k(sJ�|j�dk(r�,J�|jdd��|jD],}|j�dk(sJ�|j�dk(r�,J�y)NT�b皙�����?��	facecolor�alpha��?�r�)r>rHr!�handle_propsrirjrI�r�333333�?�black)�markeredgecolorr�)r6r7r
�dictr	�_selection_artist�
get_facecolor�mcolors�to_rgba�	set_props�_handles_artists�get_markeredgecolor�	get_alpha�set_handle_props�rr?�artists   r�.test_rectangle_selector_set_props_handle_propsr��s2���$�$�R�$�D�+/�#�S�+I�26�S�/�C�D��4�w�J�7�
�
#�
#�F����!�W�_�_�S��%D�D�D�D��N�N�S��N�,����!�W�_�_�S��%D�D�D�D��'�'�)���)�)�+�w�6�6�6����!�S�(�(�(�)�	���#�S��9��'�'�)���)�)�+�s�2�2�2����!�S�(�(�(�)rc��tj|td��}t|dd��|jdk(sJ�|j}|d|d}}|d	z|d
z}}t|||f||f��|j|d||d|fk(sJ�|j}|d|d|d|dz
dzz}}|d	z|}}t|||f||f��|j|d||d|dfk(sJ�|j}|d|d|d|dz
dzz}}|d
z|}}t|||f||f��|j||d|d|dfk(sJ�|j}|d|d}}|dz|dz}}t|||f||f��|j||d||dfk(sJ�y)NT�r>rHrirjrI)�r1�$@�^@r�r�r�rprMro)r6r7r
r	�extents)rr?r�r+r,�	xdata_new�	ydata_news       r�test_rectangle_resizer��s����$�$�R�$�D�I�D��4�w�J�7��<�<�4�4�4�4��l�l�G��1�:�w�q�z�5�E� �2�:�u�q�y�y�I��4��u�~�I�y�3I�J��<�<�G�A�J�	�7�1�:�y�I�I�I�I��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E� �2�:�u�y�I��4��u�~�I�y�3I�J��<�<�G�A�J�	�7�1�:�w�q�z�J�J�J�J��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E� �2�:�u�y�I��4��u�~�I�y�3I�J��<�<�I�w�q�z�7�1�:�w�q�z�J�J�J�J��l�l�G��1�:�w�q�z�5�E� �2�:�u�r�z�y�I��4��u�~�I�y�3I�J��<�<�I�w�q�z�9�g�a�j�I�I�I�Irc��tj|td��}t|dd��t	j
t�5|jd�ddd�t	j
t�5|jd�ddd�|jd�|jd	�|jd
�y#1swY�pxYw#1swY�IxYw)NTr���Frm��}�rI�unsupported_state�clear�move�squarerz)r6r7r
r	r4�raises�
ValueError�	add_staterbs  r�test_rectangle_add_stater��s����$�$�R�$�D�I�D��4�x�Z�8�	���z�	"�,����*�+�,�
���z�	"� ����w�� ��N�N�6���N�N�8���N�N�8��,�,�� � �s�C�7C�C�Cr�c��tj|td��}t|dd��|jdk(sJ�|r|jd�d}nd}|j}|d	|d
}}d\}}||z||z}
}	t|||f|	|
f|��|j|d
|z
|	|d|z
|
fk(sJ�|j}|d	|d|d
|dz
dzz}}d}||z|}
}	t|||f|	|
f|��|j|d
|z
|	|d|d
fk(sJ�|j}|d	|d|d
|dz
dzz}}d}||z|}
}	t|||f|	|
f|��|j|d
|z
|	|d|d
fk(sJ�|j}|d
|d|d
|dz
dzz}}d}||z|}
}	t|||f|	|
f|��|j|	|d	|z
|d|d
fk(sJ�|j}|d
|d|d
|dz
dzz}}d}||z|}
}	t|||f|	|
f|��|j|	|d	|z
|d|d
fk(sJ�|j}|d
|d}}d\}}||z||z}
}	t|||f|	|
f|��|j|	|d	|z
|
|d
|z
fk(sJ�y)NTr�r�r�rI)��Q@�@_@�@P@g@`@rz�controlrr��rr��rJrK�keyrr�r���rp����rMro�r6r7r
r	r�r��rr�r?�use_keyr�r+r,�xdiff�ydiffr�r�s           r�test_rectangle_resize_centerr��s����$�$�R�$�D�I�D��4�x�Z�8��<�<�5�5�5�5�����x� ������l�l�G��1�:�w�q�z�5�E��L�E�5� �5�=�%�%�-�y�I��4��u�~�I�y�3I�� ��<�<�G�A�J��.�	�#�A�J��.�	�;�;�;�;��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�� ��<�<�G�A�J��.�	�#�A�J���
�4�4�4�4��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�� ��<�<�G�A�J��.�	�#�A�J���
�4�4�4�4��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�� ��<�<�I�w�q�z�E�'9�#�A�J���
�4�4�4�4��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�� ��<�<�I�w�q�z�E�'9�#�A�J���
�4�4�4�4��l�l�G��1�:�w�q�z�5�E��L�E�5� �5�=�%�%�-�y�I��4��u�~�I�y�3I�� ��<�<�I�w�q�z�E�'9�%�w�q�z�E�'9�;�;�;�;rc��tj|td��}t|dd��|jdk(sJ�|r|jd�d}nd}|j}|d	|d
}}d\}}||z||z}
}	t|||f|	|
f|��|j|d
|	|d|d
|zfk(sJ�|j}|d	|d|d
|dz
dzz}}d}||z|}
}	t|||f|	|
f|��|j|d
|	|d|d
|zfk(sJ�|j}|d	|d|d
|dz
dzz}}d}||z|}
}	t|||f|	|
f|��|j|d
|	|d|d
|zfk(sJ�|j}|d
|d|d
|dz
dzz}}d}||z|}
}	t|||f|	|
f|��|j|	|d	|d|d
|z
fk(sJ�|j}|d
|d|d
|dz
dzz}}d}||z|}
}	t|||f|	|
f|��|j|	|d	|d|d
|z
fk(sJ�|j}|d
|d}}d\}}||z||z}
}	t|||f|	|
f|��|j|d
|z|d	|
|d
fk(sJ�y)NTr�r��rk�srI�r�r�r�g�\@r��shiftrr�r�r�rr�rr�rpr�r�r�r�s           r�test_rectangle_resize_squarer�s����$�$�R�$�D�I�D��4�x�Z�8��<�<�5�5�5�5�����x� ������l�l�G��1�:�w�q�z�5�E��L�E�5� �5�=�%�%�-�y�I��4��u�~�I�y�3I�� ��<�<�G�A�J�	�#�A�J���
�U�(:�<�<�<�<��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�� ��<�<�G�A�J�	�#�A�J���
�U�(:�<�<�<�<��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�� ��<�<�G�A�J�	�#�A�J���
�U�(:�<�<�<�<��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�� ��<�<�I�w�q�z�#�A�J���
�U�(:�<�<�<�<��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�� ��<�<�I�w�q�z�#�A�J���
�U�(:�<�<�<�<��l�l�G��1�:�w�q�z�5�E��L�E�5� �5�=�%�%�-�y�I��4��u�~�I�y�3I�� ��<�<�G�A�J��.���
�%�w�q�z�3�3�3�3rc��tj|td��}t|dd��|j	d�|j	d�t|jd�|j}|d	|d
}}d\}}||z||z}}t|||f||f��t|j|d|z
||d
|z
|d
|zf�|j}|d	|d
|d
|d
z
d
zz}}d}||z|}}t|||f||f��t|j|d|z
||d
|z
|d
|zf�|j}|d	|d
|d
|d
z
d
zz}}d}||z|}}t|||f||f��t|j|d|z
||d
|z
|d
|zf�|j}|d|d
|d
|d
z
d
zz}}d}||z|}}t|||f||f��t|j||d	|z
|d
|z|d
|z
f�|j}|d|d
|d
|d
z
d
zz}}d}||z|}}t|||f||f��t|j||d	|z
|d
|z|d
|z
f�|j}|d|d
}}d\}}||z||z}}t|||f||f��t|j|d|z|d	|z
||d
|z
f�y)NTr�r�r�rIr�rzr�rr�r�rr�rr�r�r�r�)r6r7r
r	r�rr�)	rr?r�r+r,r�r�r�r�s	         r�#test_rectangle_resize_square_centerr�cs����$�$�R�$�D�I�D��4�x�Z�8��N�N�8���N�N�8���D�L�L�"<�=��l�l�G��1�:�w�q�z�5�E��L�E�5� �5�=�%�%�-�y�I��4��u�~�I�y�3I�J��D�L�L�7�1�:��#5�y�#*�1�:��#5�w�q�z�E�7I�#K�L��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�J��D�L�L�7�1�:��#5�y�#*�1�:��#5�w�q�z�E�7I�#K�L��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�J��D�L�L�7�1�:��#5�y�#*�1�:��#5�w�q�z�E�7I�#K�L��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E�
�E� �5�=�%�y�I��4��u�~�I�y�3I�J��D�L�L�9�g�a�j�5�.@�#*�1�:��#5�w�q�z�E�7I�#K�L��l�l�G��1�:�w�q�z�W�Q�Z�'�!�*�-D��,I�I�5�E��E� �5�=�%�y�I��4��u�~�I�y�3I�J��D�L�L�9�g�a�j�5�.@�#*�1�:��#5�w�q�z�E�7I�#K�L��l�l�G��1�:�w�q�z�5�E��L�E�5� �5�=�%�%�-�y�I��4��u�~�I�y�3I�J��D�L�L�7�1�:��#5�w�q�z�E�7I�#,�g�a�j�5�.@�#B�Cr�selector_classc�\�||td��}t|dd��|jdk(sJ�t|j�dk(sJ�t|dd	�
�|jt
dg�k(sJ�t|j�dk(sJ�t|dd
��t|dd	�
�t|j�dk(sJ�|jdk(sJ�t|jdd��d|_|jdk(sJ�t|jtjgd�gd�g�d��t|dd��t|jdd��|tjk(r4tjt �5d|j"_ddd�yy#1swYyxYw)NTr��r)r)�r��rI�r)r�r)r�r�on_key_pressr��r��rotater)rk�g��(\�9@g{�G�z�?)�atol�-)gR���]@�xa@g=
ףp�[@g�V@)g�W@g=
ףp]@gb@g�(\��^@)�nr�)r��)r)r�r)g
ףp=�b@�
unvalid_value)r
r	r��len�_stater
�setr�rotation�corners�np�arrayr6r7r4r�r�r��rotation_point)rr�r?s   r�test_rectangle_rotater��s����"�t��>�D��4�z�z�:��<�<�/�/�/�/��t�{�{��q� � � �
�T�>�s�+��;�;�#�x�j�/�)�)�)��t�{�{��q� � � ��4�z�z�:��T�>�s�+��t�{�{��q� � � ��<�<�/�/�/�/��D�M�M�5�t�4��D�M��=�=�B�����D�L�L��H�H�=�=�?�@�FJ�L�
�4�z�z�:��D�L�L�"<�4�H���2�2�2�
�]�]�:�
&�	D�4C�D�"�"�1�	D�	D�3�	D�	D�s�F"�"F+c�h�tj|td��}t|dd��|jdk(sJ�t|j�dk(sJ�dD]X}|j|�t|j�d	k(sJ�|j|�t|j�dk(r�XJ�y)
NTr�r�r�rIr�r)r�r�rzr)	r6r7r
r	r�r�r�r��remove_state)rr?�states   r�test_rectangle_add_remove_setr��s����$�$�R�$�D�I�D��4�z�z�:��<�<�/�/�/�/��t�{�{��q� � � �/�%�����u���4�;�;��1�$�$�$����%� ��4�;�;��1�$�$�$�	%r�use_data_coordinatesc��|jd�tj|td|��}t	|dd��|j
dk(sJ�|j
d�|j
d	�|r|j
}|d
|d|d
|dz
}}}d
|d|d|dz
dzz}}||z|}
}	|dz|z}t	|||f|	|
f��t|j
|d|z
|	||z
||zg�y|j
}|d
|d}}d
}||z|}
}	|d
z|jz}t	|||f|	|
f��t|j
|d|z
|	ddg�y)N皙�����?T)r>rHr�r�r�rIr�r�rzrr�rrr�g G@g�`@)	�
set_aspectr6r7r
r	r�r�r�_aspect_ratio_correction)rr�r?r�r+r,�widthr��ycenterr�r��ychanges            r�*test_rectangle_resize_square_center_aspectr��s����M�M�#���$�$�R�$�D�:N�P�D��4�x�Z�8��<�<�5�5�5�5��N�N�8���N�N�8����,�,��%�a�j�'�!�*�g�a�j�7�1�:�6M�e�u���g�a�j�G�A�J����,C�q�+H�H�w��$�u�}�e�9�	��!�)�e�#���t�E�5�>�	�9�7M�N�����w�q�z�E�'9�9�'.��'8�'�G�:K�'M�	N��,�,���q�z�7�1�:�u����$�u�}�e�9�	��!�)�d�;�;�;���t�E�5�>�	�9�7M�N�����w�q�z�E�'9�9�',�f�'6�	7rc�:�tj|tdd��}d|_t	|dd��|jdk(sJ�t	|d	dd
��|jdk(sJ�t	|d
dd��|jD�cgc]
}t|���}}|gd�k(sJ�t	|d	dd��|jD�cgc]
}t|���}}|gd�k(sJ�|jjdk(sJ�t|jdd�dfddg�ycc}wcc}w)z'For ellipse, test out the key modifiersrT)r>�
grab_rangerH�r)�r)r��r�r�)r�r�rI)rk�rkr�r�r�r�)rer�rer�rG)rrrOr�)rrrrrrr�z
ctrl+shift)r�r�r�r�)r��INrr�r))	r6�EllipseSelectorr
r�r	�intr9�shaper)rr?�er�s    r�test_ellipser��s���"�"�2��.0�d�D�D�'�D�L��4�z�z�:��<�<�/�/�/�/��4�z�z�y�I��<�<�-�-�-�-��4�x�X�7�C�#�|�|�,�!�s�1�v�,�G�,��&�&�&�&��4�z�z�|�L�#�|�|�,�!�s�1�v�,�G�,��(�(�(�(��=�=���'�)�)�)��D�M�M�!�Q�$�'�#�s��4��-��
-s�D�;Dc	��tj|tddddd���}d|_t	|j
d�|jdk(sJ�t	|jd	�|jdk(sJ�t|d
d��|jd
k(sJ�t|dd��|jdk(sJ�t|dd
��|jdk(sJ�tj|jjdj�d�sJ�tj|jjdj�d�sJ�y)NrTr�r~)�markerfacecolorr�)r>r�rHr�r�))r)r�r�r))r)r)r�r�))r)r�r�r�)r�r)r�r�r�)rkrkrI)rkr�rkr�)�r�)�l�r�rrG)rr)rr)r)r6r7r
r�rr��edge_centersr	r��
same_color�_corner_handles�artists�get_markerfacecolorr�rbs  r�test_rectangle_handlesrsT���$�$�R�$�02�15�FI�FI�3K�L�D�
(�D�L��D�L�L�"N�O��<�<�/�/�/�/��D�%�%�H�J��<�<�/�/�/�/��4�z�z�:��<�<�/�/�/�/��4�z�z�:��<�<�/�/�/�/��4�x�Z�8��<�<�-�-�-�-�������$�$�Q�'�;�;�=�s�D�D�D�������$�$�Q�'�;�;�=�s�D�D�DrrHc�$�tjtd��}tj|||��}t|dd��|j
�|jdk(sJ�|j�t|dd��|j
�y)Nr#�rH�r)r��r�rkrI�r1��b@g�[@r��rr))	rr3r
r6r7r	r:r�rT�rrHr>r?s    r� test_rectangle_selector_onselectr1sw���y�y�d��6�H��$�$�R��{�K�D��4�z�z�:����!��<�<�7�7�7�7������4�y�i�8����!r�ignore_event_outsidec��tjtd��}tj|||��}t|dd��|j
�|jdk(sJ�|j�t|dd��|r"|j�|jdk(sJ�y|j
�|jd	k(sJ�y)
Nr#)rr	r
rIr�r�r��r�r�)r�d@rr)
rr3r
r6r7r	r:r�rTrS)rrr>r?s    r�&test_rectangle_selector_ignore_outsiderBs����y�y�d��6�H��$�$�R��:N�P�D��4�z�z�:����!��<�<�7�7�7�7������4�z�z�:���"�"�$��|�|�;�;�;�;�	�#�#�%��|�|�;�;�;�;rz$orientation, onmove_callback, kwargs�
horizontal)�minspanr�vertical)rrc�\�tjtd��}tjtd��}|r||d<tj|||fi|��}t|dddd��t|dddd��t|d	d
d
d��|j
dd�|r|j
dd�yy)Nr#�onmove_callbackr(r)rr*r-r.r/r0)rr3r
r6�SpanSelectorr
�assert_called_once_with)r�orientationrr<r>r-r?s       r�test_span_selectorrYs����y�y�d��6�H�
�Y�Y�D�t�
4�F��$*�� �!�����H�k�D�V�D�D��T�7�#�S��;��T�8�3�c�!�<��T�9�C�s�1�=��$�$�S�#�.���&�&�s�C�0�rc�&�tjtd��}tj||d|��}t|dd��|j
�|jdk(sJ�|j�t|dd��|j
�y)	Nr#rrr�)r�r)rI)r)r�r
)	rr3r
r6rr	r:r�rTrs    r�test_span_selector_onselectr ps{���y�y�d��6�H�����H�l�,7�9�D��4�z�z�:����!��<�<�:�%�%�%������4�y�i�8����!rc�H�tjtd��}tjtd��}tj||d||��}t|dd��|j
�|j
�|jdk(sJ�|j�|j�t|dd	��|r2|j�|j�|jdk(sJ�y|j
�|j
�|jd
k(sJ�y)Nr#r)rrr�r�rI)r)r�rr)r�r�)
rr3r
r6rr	r:r�rTrS)rrr>r-r?s     r�!test_span_selector_ignore_outsider"�s����y�y�d��6�H�
�Y�Y�D�t�
4�F�����H�l�06�5I�K�D��4�z�z�:����!�
�����<�<�:�%�%�%�����
�����4�z�z�:���"�"�$�� � �"��|�|�z�)�)�)�	�#�#�%��!�!�#��|�|�z�)�)�)rrhc� �tj|tdd|��}t|dd��|jdk(sJ�t|dd	��|r|jd
k(sJ�|jdk(sJ�t|dd
��|jdk(sJ�y)NrT)r>�	directionrHrhrGrjrIr
rnrq)rMr�)rorrrsrv)r6rr
r	r�)rrhr?s   r�test_span_selector_dragr%�s�������T�\�,0�3E�G�D��4�x�Z�8��<�<�9�$�$�$��4�x�X�6���|�|�y�(�(�(��|�|�x�'�'�'��4�z�z�:��<�<�:�%�%�%rc��tj|tdd��}|jdk(sJ�|jjdk(sJ�tjt�5tj|td��}ddd�d|_|jdk(sJ�|jjdk(sJ�tjt�5d|_ddd�y#1swY�fxYw#1swYyxYw)NrT)r>r$rH�invalid_direction)r>r$r�invalid_string)r6rr
r$�
_edge_handlesr4r�r�rbs  r�test_span_selector_directionr*�s�������T�\�,0�2�D��>�>�\�)�)�)����'�'�<�7�7�7�	���z�	"�C��#�#�B��.A�C��C� �D�N��>�>�Z�'�'�'����'�'�:�5�5�5�	���z�	"�*�)���*�*�C�C��*�*�s�#C%�C1�%C.�1C:c
��tj|tddtdd��td����}t	|d	d
��|j
}|j
�tjdd��k(sJ�|jdd
��|j
�tjdd
��k(sJ�|jD],}|j�dk(sJ�|j�dk(r�,J�|jdd
��|jD],}|j�dk(sJ�|j�d
k(r�,J�y)NrTr~rr�r�r�)r>r$rHr!r�rirjrIr�r���colorr�)r6rr
r�r	r�r�r�r�r�r��	get_colorr�r�r�s   r�)test_span_selector_set_props_handle_propsr/�s4������T�\�,0�&*�S��&D�-1��_�>�D�
�4�w�J�7�
�
#�
#�F����!�W�_�_�S��%D�D�D�D��N�N�S��N�,����!�W�_�_�S��%D�D�D�D��'�'�)�����!�S�(�(�(����!�S�(�(�(�)�	����3��/��'�'�)�����!�S�(�(�(����!�S�(�(�(�)r�selector�span�	rectanglec��t|td��}|dk(rtj}d|d<ntj}|di|��}t|dd��t|d	d	��|jrJ�d|d
<|di|��}|jsJ�t|dd��t|d	d	��|jsJ�t|dd�
�|jrJ�y)NT)rr>rHr1rr$rGrjrI)r�r�rr��escaper�r)	r�r
r6rr7r	rRrr
)rr0r<�Selectorr?s     r�test_selector_clearr6�s���
�R�$�D�
9�F��6���'�'��*��{���,�,����f��D��4�x�Z�8��4�z�z�:��(�(�(�(�%)�F�!�"���f��D��$�$�$�$��4�x�Z�8��4�z�z�:��$�$�$�$��T�>�x�0��(�(�(�(�(rc��|dk(rtj|tddd��}ntj|td��}t	|dd��|j
sJ�|j
�sJ�|dk(r|jd	k(sJ�|j�|j
rJ�|j
�rJ�t	|dd
��|j
sJ�|j
�sJ�|dk(r|jdk(sJ�yy)Nr1rT)r>r$rHrr�rGrjrIr
)rlrk)rrl)	r6rr
r7r	rRr`r�r�)rr0r?s   r�test_selector_clear_methodr8�s����6���#�#�B���04�9=�?���(�(��d��M���4�x�Z�8��$�$�$�$��������6���|�|�y�(�(�(��J�J�L��(�(�(�(����!�!�!��4�x�Y�7��$�$�$�$��������6���|�|�x�'�'�'�rc���tj|tdd��}tjt
�5|j
d�ddd�tjt
�5|j
d�ddd�tjt
�5|j
d�ddd�|j
d�y#1swY��xYw#1swY�ZxYw#1swY�3xYw)NrTrr�rzr�r�)r6rr
r4r�r�r�rbs  r�test_span_selector_add_stater:s�������D�,�,0�2�D�
���z�	"�,����*�+�,�	���z�	"�!����x� �!�	���z�	"�!����x� �!�	�N�N�6��,�,��!�!��!�!�s#�C	�*C�C!�	C�C�!C*c�x�gd�}tj||dd��}|jD]&}|j�rJ�|j	�s�&J�|jd�|j
d�|jD]&}|j�sJ�|j	�r�&J�|j|k(sJ�y)N)rMrOrlrF)rT)r6�ToolLineHandlesr�get_animatedr`�set_visible�set_animated�	positions)rr@�tool_line_handler�s    r�test_tool_line_handlerB$s����I��.�.�r�9�l�7<�>��#�*�*�(���&�&�(�(�(��%�%�'�'�'�(�� � ��&��!�!�$�'�"�*�*�$���"�"�$�$�$��!�!�#�#�#�$��%�%��2�2�2rr$)rrc��tjdd�\}}|jddgddg�|jjj�|j
�}|j�}tj|t|d��}|j
�|k(sJ�|j�|k(sJ�|dk(r|n|}|jjt|�k(sJ�dd	g}d
dg}|}	t|||��|j
�|k(sJ�|j�|k(sJ�|dk(rd
nd}
||
|	|
g}|jj|k(sJ�y)NrrrMrOTrrrDg'@rE�
rIr)�plt�subplots�plot�figure�canvas�draw�
get_xbound�
get_yboundr6r�printr)r@�listr	)r$�figr�x_bound�y_boundr?�bound�
press_data�	move_data�release_data�index�handle_positionss            r�test_span_selector_boundrX7sK���l�l�1�a� �G�C���G�G�R��H�r�2�h���I�I�������m�m�o�G��m�m�o�G�����E�9�$�G�D�
�=�=�?�g�%�%�%�
�=�=�?�g�%�%�%� �L�0�G�g�E����'�'�4��;�6�6�6����J��R��I��L��4�z�y�9�
�=�=�?�g�%�%�%�
�=�=�?�g�%�%�%��l�*�A��E�"�5�)�<��+>�?�����'�'�+;�;�;�;r�QtAgg)�skip_on_importerrorc	�B��	�
�tjddtjzd��
tj�
��	t	j
�\}}|j
�
�	d��\}|j
gd��\�t	jd�|j|�|jj|j���	�
fd�}tj||d|ddd�	�}d
dg}ddg}t|d|d|d
d
��t|d
|d|d
d
��|j�|�fk(sJ�|j dusJ��j sJ��j#�dk(sJ�|j%��j dusJ�ddg}ddg}ddg}t|d|d|d
d
��t|d
|d|d
d
��|j dusJ��j sJ��j#�dk(sJ�t|d|d|d
d
���j dusJ�y)zACheck that the animated artists changed in callbacks are updated.rr�r)T)�animated皙�����?c���tj�||f�\}}�||j�}�j�|�yr)r��searchsorted�mean�set_data)�vmin�vmax�indmin�indmax�v�ln2�values�xs     ���rr`z:test_span_selector_animated_artists_callback.<locals>.meands>�������T�4�L�9�����6�&�!�&�&�(�����Q��rr)r$rrHrhrrr(r*r-Fg�SG-��?�r�gȄ�C(�r/N)r��linspace�pi�sinrErFrG�pause�draw_artistrI�blit�bboxr6rr
�_get_animated_artists�stale�	get_ydata�update)rOr�lnr`r1rSrTrUrgrhris        @@@r�,test_span_selector_animated_artists_callbackrwSs���	���A�q�2�5�5�y�#�&�A�
�V�V�A�Y�F��l�l�n�G�C��
�'�'�!�V�d�'�
+�C�B�
�7�7�2��7�%�D�C�
�I�I�c�N��N�N�2���J�J�O�O�C�H�H�������D�L�04�,0�37�(,�	.�D��Q��J��A��I��T�7�*�Q�-�z�!�}�Q�O��T�8�9�Q�<�y��|�A�N��%�%�'�B��9�4�4�4�
�8�8�u�����9�9��9��=�=�?�0�0�0�0��K�K�M��9�9������Q��J��A��I��q�6�L��T�7�*�Q�-�z�!�}�Q�O��T�8�9�Q�<�y��|�A�N�
�8�8�u�����9�9��9��=�=�?�1�1�1�1��T�9�L��O���?�1�.��9�9����rc��d�}tj||d��}|j}tjddd�}tj
gd��}tj
gd��}|||�}t
||�y)	Nc��yrrr\s rr>z4test_snapping_values_span_selector.<locals>.onselect�s��rr)r$rr�rE)
g��������r]rr��333333�?�ffffff�?��������?g
ףp=
@�@�@)
r�r�r�r�r�r���?r}r}r})r6r�_snapr�rkr�r)rr>r?�
snap_function�snap_valuesrh�expects       r�"test_snapping_values_span_selectorr��sl��
�����H��F�D��J�J�M��+�+�a��B�'�K�
�X�X�J�
K�F�
�X�X�J�
K�F�
�6�;�
/�F��F�F�#rc����fd�}tjd�dz}tj�|d|��}d|_|jdk(sJ�d|_|j
�J�d|_|jdk(sJ�y)Nc���d�_y)NT)�
_got_onselect)rbrcrs  �rr>z)test_span_selector_snap.<locals>.onselect�s�����rrlrjr)r$r�)�rr)��$)r��aranger6rr�r�)rr>r�r?s`   r�test_span_selector_snapr��s���� ��)�)�B�-�!�#�K�����H��,7�9�D��D�L��<�<�8�#�#�#��D�����#�#�#��D�L��<�<�8�#�#�#rr<�red)r-)rr!c���tjtd��}tj||fi|��}t|dddd��t|dddd��t|dd	d	d��|j
gd
��y)Nr#r(r)rr*r-r�r/r�)r�r�r)rr3r
r6�
LassoSelectorr
r)rr<r>r?s    r�test_lasso_selectorr��sj���y�y�d��6�H�� � ��X�8��8�D��T�7�#�S��;��T�8�3�c�!�<��T�9�C�s�1�=��$�$�%I�Jrc��tj|dd�}|j�gd�k(sJ�|jd�|j�gd�k(sJ�|j	d��}|j|�y)N)�ar~�c)TFTr)FFTc��yrrrrrr^z#test_CheckButtons.<locals>.<lambda>�r_r)r6�CheckButtons�
get_status�
set_active�
on_clicked�
disconnect)r�check�cids   r�test_CheckButtonsr��ss��� � ��_�6I�J�E�����!4�4�4�4�	���Q������!5�5�5�5�
�
�
�<�
(�C�	���S�r�toolbar)r�toolbar2�toolmanagerc��tjtjd|�t	j
td��}t	j
td��}tj|d�}|j|�|j|�|jdk(sJ�t|d�|jd�|jdk(sJ�|jdk(sJ�|j|j�|j!�|jdk(sJ�t|d�t|dd	�
�t|dd�
�|jdk(sJ�y)
Nr�r#��_clickzx**2rr��	_keypress�+r��5r�)r��__setitem__rE�rcParamsrr3r
r6�TextBox�	on_submit�on_text_change�textr
�set_val�
call_count�begin_typing�stop_typing)rr��submit_event�text_change_eventr?s     r�test_TextBoxr��s��	���S�\�\�9�g�6��9�9�$�T�:�L��	�	�t�$�?���?�?�2�r�"�D��N�N�<� ����)�*��9�9��?��?��T�8���L�L����9�9������'�'�1�,�,�,����d�i�i� ������"�"�a�'�'�'��T�8���T�;�C�(��T�;�C�(��'�'�1�,�,�,rzcheck_radio_buttons.png�mpl20)�style�remove_textc� �t�}dtjd<tjd��tjgd��}tjgd��}tj|d�tj|dd	�y)
N�ztext.kerning_factorr�)�left)皙�����?r{�333333�?r�)r�rr�r�)zRadio 1zRadio 2zRadio 3)zCheck 1zCheck 2zCheck 3)FTT)rrEr��subplots_adjust�axesr6�RadioButtonsr�)r�rax1�rax2s   r�test_check_radio_buttons_imager��sk��	��B�*+�C�L�L�&�'����S�!��8�8�+�,�D��8�8�+�,�D�����@�A�����@�,�.rz check_bunch_of_radio_buttons.pngc�^�tjgd��}tj|d�y)N)r�r]r�r{)�B1�B2�B3�B4�B5�B6�B7�B8�B9�B10�B11�B12�B13�B14�B15)rEr�r6r�)�raxs r�!test_check_bunch_of_radio_buttonsr��s(���(�(�)�
*�C�����4�5rc�R�tj�\}}tjt�5tj|dddd��ddd�tjt�5tj|dddd��ddd�y#1swY�FxYw#1swYyxYw)Nr�r��8@r�)r�label�valmin�valmax�	slidermin)rr�r�r��	slidermax)rErFr4r�r�r6�Slider)rOrs  r�'test_slider_slidermin_slidermax_invalidr��s����l�l�n�G�C��	���z�	"�'����"�B�s�4�!%�	'�'�
���z�	"�'����"�B�s�4�!%�	'�'�'�'�'��'�'�s�B�-B�B�B&c�>�tj�\}}tj|dddd��}tj|dddd|��}|j|jk(sJ�tj|dddd|�	�}|j|jk(sJ�y)
Nr�r�r�r}�rr�r�r��valinitr)rr�r�r�r�r�r�)rr�r�r�r�r��rErFr6r��val)rOr�slider_�sliders    r�test_slider_slidermin_slidermaxr�s����l�l�n�G�C���n�n��"�S��%(�*�G��^�^�r��C��$'�7�<�F��:�:����$�$�$�
�^�^�r��C��$(�G�=�F��:�:����$�$�$rc��tj�\}}tj|dddd��}|j|j
k(sJ�tj|dddd��}|j|jk(sJ�y)Nr�r�r�g$�r�g9@)rErFr6r�r�r�r��rOrr�s   r�test_slider_valmin_valmaxr�so���l�l�n�G�C��
�^�^�r��C��$)�+�F��:�:����&�&�&�
�^�^�r��C��$(�*�F��:�:����&�&�&rc	���tj�\}}tj|ddddd��}|jdk(sJ�tj|ddddgd���}|jd	k(sJ�y)
Nr�r�r�g������&@r)rr�r�r�r��valsteprE)rrr~g33333�3@r~r�r�s   r�test_slider_valstep_snappingr� sm���l�l�n�G�C��
�^�^�r��C��$(�!�5�F��:�:�����
�^�^�r��C��$(�2C�E�F��:�:����rc��tj�\}}tj|ddddd��}|j	d�|j
dk(sJ�|jj�j|jj��}t|jgd��tj�\}}tj|ddddd	��}|j	d�|j
dk(sJ�|jj�j|jj��}t|jgd
��y)Nr�r��r)rr�r�r�r�rr)r��?竪�����?r�r)r�rr�r�)
rErFr6r�r�r��poly�get_extents�transformed�	transAxes�invertedr�bounds)rOrr��boxs    r�test_slider_horizontal_verticalr�+s���l�l�n�G�C��
�^�^�r��A�b�$&�L�B�F�
�N�N�2���:�:�����
�+�+�
!�
!�
#�
/�
/����0E�0E�0G�
H�C��C�J�J� 3�4��l�l�n�G�C��
�^�^�r��A�b�$&�J�@�F�
�N�N�2���:�:�����
�+�+�
!�
!�
#�
/�
/����0E�0E�0G�
H�C��C�J�J� 3�4rc���tj�\}}tj|dddd��}|j	d�|j�|jdk(sJ�y)Nr�rrr�r���?)rErFr6r�r��resetr�r�s   r�test_slider_resetr�?sN���l�l�n�G�C��
�^�^�r��A�a��
L�F�
�N�N�4��
�L�L�N��:�:����rrc	�>���dk(rgd�}ngd�}tj�\}}tj|ddd�ddg�	�}|jj�j
|jj��}t|j�j�|gd
��t|jd��fd�}|jd
�t|jd
�t||�d
�|jj�j
|jj��}t|j�j�|gd��|jd�t|jd�t||�d�|jd�t|jd�t||�d�|j�t|jd�t||�d�y)Nr�rrr�r��rrr�r�r�r�rr]��(\���?�rr�r�r�rr�)r]r�r�r�)r]r�c�����dk(r+|jD�cgc]}|j�d��c}S|jD�cgc]}|j�d��c}Scc}wcc}w)Nrr)�_handlesrt�	get_xdata)r��hrs  �rrWz+test_range_slider.<locals>.handle_positionsZsS����*�$�.4�o�o�>��A�K�K�M�!�$�>�>�.4�o�o�>��A�K�K�M�!�$�>�>��?��>s�A�A")rrz)rr�rzr�)rr])r]r)���r)rr)rErFr6�RangeSliderr�r�r�r�r�r�
get_points�flattenr�r�r�)r�idxrOrr�r�rWs`      r�test_range_sliderr	Gs�����j� ������l�l�n�G�C��
�
 �
 �
�R��C�[��d���F��+�+�
!�
!�
#�
/�
/����0E�0E�0G�
H�C��C�N�N�$�,�,�.�s�3�5L�M��F�J�J��,�?��N�N�:���F�J�J�
�+��$�V�,�j�9�
�+�+�
!�
!�
#�
/�
/����0E�0E�0G�
H�C��C�N�N�$�,�,�.�s�3�5I�J�
�N�N�:���F�J�J�
�+��$�V�,�j�9�
�N�N�8���F�J�J��'��$�V�,�f�5�
�L�L�N��F�J�J��,��$�V�,�k�:rc	�d�|dk(rgd�}ngd�}tj�\}}tj|ddd|ddg��}|jj�j
|jj��}t|j�j�|gd	��y)
Nrr�r�r�r�rrr�)rr�rr�)rErFr6rr�r�r�r�r�rrr)rrrOrr�r�s      r�"test_range_slider_same_init_valuesrts����j� ������l�l�n�G�C��
�
 �
 ��b��S�k��Q���F��+�+�
!�
!�
#�
/�
/����0E�0E�0G�
H�C��C�N�N�$�,�,�.�s�3�5G�Hrc���t�}tjtd��}t	j
||fi|��}|D]\}}t
||fi|���|j|k(sJ�|j|fifk(sJ�y)a4
    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`
    **kwargs
        Keyword arguments are passed to PolygonSelector.
    Nr#)	rrr3r
r6�PolygonSelectorr
r�r;)	�event_sequence�expected_result�selections_countr<rr>r?�etype�
event_argss	         r�check_polygon_selectorr�s���*
��B��y�y�d��6�H��"�"�2�x�:�6�:�D�-�,���
���u�+�
�+�,����"2�2�2�2����?�"5�r�!:�:�:�:rc�Z�dt||��fdt||��fdt||��fgS)Nr-�r+r,r(r/�r�rs  r�polygon_place_vertexr�s9��
�t�%�u�5�6�
�d��e�4�5�
��5��6�7�9�9rc�^�dt||��fdt||d��fdt||d��fgS)Nr-rr(r�r*r/rrs  r�polygon_remove_vertexr�s?��
�t�%�u�5�6�
�d��e�A�>�?�
��5��a�@�A�C�Cr�draw_bounding_boxc���tjt|��}gd�}gtdd��tdd��tdd��tdd��}|||d�gd�}gtdd��tdd��dt	d�	�f�d
t	dd��f�dt	dd��f�d
t	d
d��f�dt	d
d��f�dt	d�	�f�tdd��td
d��}|||d�gd�}gtdd��tdd��dt	d�	�f�d
t	dd��f�dt	dd��f�d
t	dd��f�dt	dd��f�dt	d�	�f�tdd��tdd
��}|||d�gd�}gtdd��tdd��tdd��tdd��d
t	dd��f�dt	dd��f�d
t	d
d��f�dt	d
d��f�}|||d�gd�}gtdd��tdd��tdd��tdd��dt	d�	�f�d
t	dd��f�dt	dd��f�d
t	dd��f�dt	dd��f�dt	d�	�f�}|||d�gd�}dt	d�	�fd
t	dd��fdt	dd��fd
t	dd��fdt	dd��fdt	d�	�fdt	d�	�fd
t	dd��fdt	dd��fd
t	dd��fdt	dd��fdt	d�	�fgtdd��tdd��tdd��tdd��}|||d�gd�}gtdd��tdd��dt	d�	�f�dt	d�	�f�tdd��tdd��tdd��tdd��}|||d�y)N�r�)rlrl�r�rl�rlr�rlr�r))rerlrrr�r�r�r-rr(rer/�on_key_release))rlre)r�rerr�r)r�r�))rere)rtre)rertr0r4)�	functools�partialrrr�)r�check_selectorrrs    r�test_polygon_selectorr$�so���&�&��2C�E�N�7�O��	�b�"�	%��	�c�2�	&��
�b�#�	&��
�b�"�	%�	�N��>�?�A�6�7�O��	�b�"�	%��	�c�2�	&��
��)�,�-��
�4�b��+�,�	�

�$�R�r�*�+��
�4�b��+�,�
�
�D�r��,�-��
�4�I�.�/��
�b�#�	&��
�b�"�	%��N��>�?�A�6�7�O��	�b�"�	%��	�c�2�	&��
��'�*�+��
�4�c��-�.�	�

�$�S��,�-��
�4�c��-�.�
�
�D�s�#�.�/��
�4�G�,�-��
�b�#�	&��
�b�"�	%��N��>�?�A�6�7�O�	�	�b�"�	%�	�	�c�2�	&�	�
�b�#�	&�	�
�b�"�	%�		�

�4�b��+�,�	�
�$�R�r�*�+�
	�
�4�b��+�,�	�
�D�r��,�-�	�N��>�?�A�6�7�O��	�b�"�	%��	�c�2�	&��
�b�#�	&��
�b�"�	%�	�

��'�*�+��
�4�c��-�.�
�
�$�S��,�-��
�4�c��-�.��
�D�s�#�.�/��
�4�G�,�-��N��>�?�A�6�7�O�	��)�,�-�	�4�c��-�.�	�$�S��,�-�	�4�c��-�.�	�D�s�#�.�/�	�4�I�.�/�	��'�*�+�	�4�c��-�.�	�$�S��,�-�	�4�c��-�.�	�D�s�#�.�/�	�4�G�,�-��
�b�"�	%��
�c�2�	&��
�b�#�	&�� 
�b�"�	%�!�N�$�>�?�A�6�7�O�	�	�b�"�	%�	�	�c�2�	&�	�
��(�+�,�	�
�4�H�-�.�		�

�b�"�	%�	�
�c�2�	&�
	�
�b�#�	&�	�
�b�"�	%�	�N��>�?�A�6rc���tj|ttdd��td��|��}gt	dd��t	dd��t	dd��t	dd��}|D]\}}t||fi|���|j}|j�dk(sJ�|j�dk(sJ�|jd	d
��|j�d	k(sJ�|j�d
k(sJ�|jD],}|j�dk(sJ�|j�dk(r�,J�|jd	d
��|jD],}|j�d	k(sJ�|j�d
k(r�,J�y)Nr~rr,r�r�)r>r!r�rrlr�r�r�)r6r
r
r�rr
r�r.r�r�r�r�)rrr?rrrr�s       r�,test_polygon_selector_set_props_handle_propsr&%s����"�"�2��)-�C�s�)C�04�3��5F�H�D�
�	�b�"�	%��	�c�2�	&��
�b�#�	&��
�b�"�	%�	�N� .�,���
���u�+�
�+�,��
#�
#�F������$�$�$������$�$�$��N�N��C�N�(������$�$�$������$�$�$��'�'�)�����!�S�(�(�(����!�S�(�(�(�)�	����3��/��'�'�)�����!�S�(�(�(����!�S�(�(�(�)rc��|j�}|j�}tj|tddi��}d|_y)NraF)r>r!)rr�r�r{)rFr6r7r
r�)�fig_test�fig_ref�ax_test�_r?s     r�test_rect_visibilityr,FsC�����!�G�����A��$�$�W�t�,5�u�+=�?�D�'�D�Lrr)rr�r�c��gd�}t|d�t|d�t|d�t|d�g}|j|tdd��|jtdd��t	|g�}t||d|��y)Nrrrr���r)r�insert�appendr�sumr)rr�vertsrs    r�test_polygon_selector_remover3Rs���
-�E�*�E�!�H�5�*�E�!�H�5�*�E�!�H�5�*�E�!�H�5�	7�N����#�3�C��=�>����/��S�9�:����,�N��>�5�!�->�@rc��gd�}gt|d��t|d��t|d��t|d��t|d��}t||ddd|��y)Nrrrr�r)rrr)rr2rs   r�(test_polygon_selector_remove_first_pointr5es���,�E��	�u�Q�x�	(��	�u�Q�x�	(��
�u�Q�x�	(��
�u�Q�x�	(�	�

��a��	)��N��>�5���9�a�->�@rc�8�gd�}gt|d��t|d��t|d��t|d��t|d��t|d��t|d��}tj|t|��}|D]\}}t||fi|���|j|ddk(sJ�y)Nrrrr��r>r)rrr6r
r
r
r2)rrr2rr?rrs       r�test_polygon_selector_redrawr8ss���,�E�
�	�u�Q�x�	(�
�	�u�Q�x�	(�
�
�u�Q�x�	(�
�
�u�Q�x�	(�	
�
��a��	)�
�
��a��	)�
�
�u�Q�x�	(�
�N��"�"�2��5F�H�D�-�,���
���u�+�
�+�,��:�:��q���#�#�#r�png)�
extensionsc�v�gd�}|j�}tj|t|��}||_|j|k(sJ�|j�}tj|t|��}gt|d��t|d��t|d��t|d��}|D]\}	}
t
||	fi|
���y)N))r]g�������?)r�r|)r�rr7rrr�)�add_subplotr6r
r
r2rr
)r(r)rr2r*�	tool_test�ax_ref�tool_refrrrs           r�"test_polygon_selector_verts_setterr@�s���
1�E��"�"�$�G��'�'��$�2C�E�I��I�O��?�?�e�#�#�#�
�
 �
 �
"�F��&�&���1B�D�H��	�u�Q�x�	(��	�u�Q�x�	(��
�u�Q�x�	(��
�u�Q�x�	(�	�N� .�0���
���5�/�J�/�0rc��gd�}gt|d��t|d��t|d��t|d��t|d��}tj|td��}|D]\}}t	||fi|���|j
}|jj}td|g|jd	��d���j�td
|g|jd����j�td|g|jd��d���j�tjj|jgd
��td|g|jd��d���j�td
|g|jd����j�td|g|jd��d���j�tjj|jgd��tjj|jj d�td|g|jd��d���j�td|g|jd��d���j�tjj|jgd��tjj|jj d�y)N))rMr)rrM)rM�()rBrMrrr�r�Tr7�button_press_event)rBrB�motion_notify_eventrL�button_release_event))rrri)rrM)rMrrGrN)rf�rMrO�rOrB�rBrO)�4@�D@rIrJrf)rFrGrH)rIrJg>@rJ)rr6r
r
r
rPrHrIrrQ�_processr��testingrr2�_boxr�)rr2rr?rr�trIs        r�test_polygon_selector_boxrO�s���2�E��	�u�Q�x�	(��	�u�Q�x�	(��
�u�Q�x�	(��
�u�Q�x�	(�	�

�u�Q�x�	(��N��"�"�2���M�D�-�,���
���u�+�
�+�,�
	���A�
�Y�Y�
�
�F���f�A�'(�{�{�8�'<�A�>?�A�AI�����v�?�()���H�(=�?�?G�x�z����C�)*���X�)>�C�@A�C�CK�8�:��J�J����
�
�:�<���f�A�'(�{�{�8�'<�A�>?�A�AI�����v�?�()���H�(=�?�?G�x�z����C�)*���X�)>�C�@A�C�CK�8�:��J�J����
�
�<�>��J�J����	�	���3�5���f�A�'(�{�{�8�'<�A�>?�A�AI������C�)*���X�)>�C�@A�C�CK�8�:��J�J����
�
�2�4��J�J����	�	���3�5r�horizOn�vertOnc���tj�jdd��\}}tj�j�}tjd||fd||��}t|j�|rdndk(sJ�t|j�|rdndk(sJ�t|dd�	�}|j|�|jD]}|j�d
k(r�J�|jD]}|j�dk(r�J�t|dd�	�}|j|�|jD]}|j�d
k(r�J�|jD]}|j�dk(r�J�y)
Nr�T)�sharexF)rrPrQrr�r�r)r�r�)r�r�r�)rErHrFr6�MultiCursorr��vlines�hlinesrr-rrt)rPrQ�ax1�ax3�ax2�multi�event�ls        r�test_MultiCursorr]�sf������&�&�q��&�6�J�S�#�

�*�*�,�
�
�
!�C�
����s�C�j�%���
�E�
�u�|�|��f��!�4�4�4��u�|�|��g��1�5�5�5�

�s�"�C�0�E�	�L�L����\�\�)���{�{�}��(�(�(�)�
�\�\�+���{�{�}�
�*�*�*�+�

�s�#�S�1�E�	�L�L���
�\�\�)���{�{�}��(�(�(�)�
�\�\�+���{�{�}�
�*�*�*�+r)_�
contextlibrr!�unittestr�matplotlib._api.deprecationr�matplotlib.backend_basesr�matplotlib.colors�colorsr��matplotlib.widgetsr6�matplotlib.pyplot�pyplotrE�matplotlib.testing.decoratorsrr�matplotlib.testing.widgetsr	r
rrr
�numpyr��
numpy.testingrr4�fixturer�mark�parametrizer�rBrYrcr|r�r�r�r�r�r�r7r�r�r�r�r�rrrrr r"r%r*r/r6r8r:rBrX�backendrwr�r�r�r�r�r�r�r�r�r�r�r�r�r	rrrrr$r&r,r3r5r8r@rOr]rrr�<module>ros]��"���D�/�#�$��O�:�:��)�
������������.�	�V�T�N�	�6�5�)�0�2�	�$�q�!�4�(�	�6�B��4�0�2�	�2��x�8�$�?�	��$�� �$�'�	1�	��	��6��������'9�:�������1�b�'�A�t�9�q�"�g�)F�G�������1�b�'�A�t�9�q�"�g�)F�G� �H�H�;� �F	"������9���*� �(�+�-�.�%�.�%�*)�* J�F�������t�U�m�4�F;�5�F;�R������t�U�m�4�F3�5�F3�R<C�~�����)�!�3�3�W�5L�5L�M�O�D�O�D�B
%������/�%���?�7�@�7�B5�8D�B�������u�
�6�
"�7�
"� �����/�$���?�<�@�<�,�����?��5�$�r�4�8�9���t�1�~�&��5�$�T�t�_�5�6��5�$�4�0�1�	B��1�
�1�"�������u�
�6�"�7�"������/�$���?�*�@�*�8�����-��e�}�=�&�>�&�2*�$)�,������f�k�%:�;�)�<�)�8������f�k�%:�;�(�<�(�2�3�&������&@�A�<�B�<�6�����W�$��7�5�8�5�p$�$�"�������F���d��/�0���a� �$��
K��
K��������$G�H�-�I�-�>�,�-�W�$�O�
.�P�
.��5�6��T�3�5�3�5�'�%�'��5�(��������z�(B�C�);�D�);�X�������z�(B�C�
I�D�
I� ;�D9�C������,�u�d�m�<�n7�=�n7�b�����,�u�d�m�<�)�=�)�@��(��(�������	�*������,�u�d�m�<�@�=�+�@�"�����,�u�d�m�<�
@�=�
@������,�u�d�m�<�$�=�$�.�����,�u�d�m�<����(�0�)�=�0�,45�n������U�D�M�2�������E�4�=�1� +�2�3� +r

Youez - 2016 - github.com/yon3zu
LinuXploit