403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.217.120
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_axes.cpython-312.pyc
�

G8�c�0��:D�ddlmZddlZddlmZddlmZddlZddlZddl	m
Z
ddlZddlm
Z
ddlZddlZddlmZddlmZddlZddlZddlZdd	lmZdd
lmZddlmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z&ddl'm(Z)ddl*m+Z,ddl-m.Z/dd
l0m1Z1ddl2m3Z3ddl4m5Z6ddl7m8Z9ddl:m;Z<ddl=m>Z?ddl@mAZBddlCmDZDmEZEmFZFddlGmHZHmIZImJZJeIdg��d��ZKd�ZLd�ZMeI�d��ZNeI�d��ZOeI�d��ZPd�ZQeIdg��d��ZReIdg��d��ZSd�ZTeIdg��d��ZUeHgd��d��ZVd �ZWd!�ZXeHd"g�d#��ZYd$�ZZej�j�d%d&�eIdgd'�(�d)���Z]eHd*g�d+��Z^d,�Z_d-�Z`d.�Zad/�ZbeIdg��d0��ZceHd1gd2�3�d4��Zdej�j�d5�d6��Zgej�j�d5�d7��Zhej�j�d5�d8��ZieIdg��d9��ZjeHd:gd2�3�d;��ZkeHd<gd2�3�d=��Zld>�Zmd?�Znd@�ZodA�ZpeHdBgdCdDi�E�dF��ZqdG�ZreIdg��dH��ZseHdIdIg�dJ��ZteHdKgdL�M�dN��ZueIdg��dO��ZvdP�ZweHdQgdgd2dL�R�dS��ZxeHdTg�dU��ZyeHdVgdW�X�dY��ZzeHdZdZgd2�3�d[��Z{eHd\d\gd2�3�d]��Z|d^�Z}eHd_gdL�M�d`��Z~eHdagdLd2�b�dc��Zdd�Z�de�Z�eHdfg�dg��Z�ej�j�d5�ej�j�dhgdi��eIdg��dj����Z�eHdkdkgd2dL�l�dm��Z�eHdngdL�M�do��Z�dp�Z�eHdqgd2�3�dr��Z�ej�j�dse�jdt�dudufe�jdvdwdW�e�jdt�dufe�jdvdwdW�due�jdt�fggdx��y�dz��Z�ej�j�d{e�jdt�dudufe�jdvdwdW�e�jdt�dufe�jdvdwdW�due�jdt�fggd|��y�d}��Z�eHd~gd2�3�d��Z�eHd�gdLd2�b�d���Z�eHd�gd2�3�d���Z�eHd�g�d���Z�eHd�gd2�3�d���Z�d��Z�eHd�gd2�3�d���Z�eHd�gd�g��d���Z�eHd�gdd�gd2���d���Z�eHd�gdL�M�d���Z�eHd�gdL�M�d���Z�d��Z�eIdg��d���Z�eIdg��d���Z�d��Z�ej�j�d�d�d2g�eIdg��d����Z�eHd�g�d���Z�eHd�gd2d5�l�d���Z�eHd�gd2�3�d���Z�d��Z�eHd�gd2�3�d���Z�eHd�gd2d����d���Z�eHd�gd2d����d���Z�eHd�gd2�3�d���Z�eHd�gd2�3�d���Z�eHd�gd5d2�b�d���Z�eHd�gd2�3�d���Z�eHd�gd2�3�d���Z�eHd�d�g�d���Z�d��Z�d��Z�eHd�g�d���Z�eHd�g�d���Z�eIdg��d���Z�eIdg��d���Z�eIdg��d���Z�eIdg��d„�Z�dÄZ�dĄZ�eHd�g�dƄ�Z�dDŽZ�dȄZ�dɄZ�dʄZ�d˄Z�d̄Z�ej�j�d5�eI�d̈́��Z�ej�j�d�d�d�d�d�gd�fgdҢgdӢgdԢgdԢd�fgdҢgdӢgdբgdբd�fgdҢgdӢd�gdעd�fg�d؄�Z�dلZ�dڄZ�eHd�gd2�3�d܄�Z�eIdg��d݄�Z�dބZ�eHd�gd2�3�d��Z�d�Z�eHd�gd2�3�d��Z�eHd�gd2�3�d��Z�eHd�g�d��Z�d�Z�d�Z�ej�j�d�ej<�j�d�d�ggd��y�d��Z�ej�j�d�gd�fggd�fgggdwfg�d��Z�ej�j�d�d�ejV�j��j�fd�e�j��j��j�fd�ejV�j��j�fg�d���Z�eIdg��d���Z�eIdg��d���Z�eIdg��d���Z�eIdg��d���Z�d��Z�d��Z�d��Z�d��Z�d��Z�eHd�gd2�3��d��Z�eH�dg��d��Z�eIdg���d��Zېd�Z�eH�dgd2dL�l��d��Z�eH�dgdL�M��d��Z�eH�d	�d	gd2dL�l��d
��Z�eH�dgd2dL�l��d��Z�d
�Z�G�d��d�Z�dKd�d��d�Z�e�d�d�Z�ej�j��de�e�de�j�g�d�g����fe�d���e�de�j�g�d�g����fe�d�d���e�de�j�g�d�g����fe�d���e�de�j�g�d�g����fe�d�dg���e�d�dge�j�g�d�g�d�g����fg��d��Z�[�[�ej�j��de�dfe�d���dfe�d����dfe�d�dg����d�dgfe�d�� ��dfe�d!����d!fe�d"����d"fe�d�d��#��dfe�d�d�d��$��dfe�d����dfe�d�d��%��dfg��d&��Z�d'�Z�d(�Z�d)�Z�d*�Z�d+�Z�d,�Z�eH�d-�d-g��d.��Z�eH�d/gd2�3��d0��Z�i�d1�if�d2�Z�eH�d3gdC�d4id5��5��d6��Z�eH�d7gdC�d4id5��5��d8��Z�eH�d9gdC�d4id5��5��d:��Z�eH�d;gdC�d4id5��5��d<��Z�eH�d=gd2dC�d4id5�d>��?��d@��Z�eH�dAgdC�d4id5�d>��B��dC��Z�eH�dDgd2dC�d4id5��E��dF��Z�eH�dGgd2dC�dHid5��E��dI��Z�eH�dJgd2dC�d4id5��E��dK��Z�eH�dLgd2dC�d4id5��E��dM��Z�eH�dNgd2dC�d4id5��E��dO��Z�eH�dPgd2dC�d4id5��E��dQ��Z�eH�dRgd2dC�d4id5��E��dS��Z�eH�dTgd2dC�d4id5��E��dU��Z�eH�dVgd2dC�d4id5��E��dW���ZeH�dXgd2dC�d4id5��E��dY���ZeH�dZgd2dC�d4id5��E��d[���ZeH�d\gd2dC�d4id5��E��d]���ZeH�d^gd2dC�d4id5��E��d_���ZeH�d`gd2dC�d4id5��E��da���ZeH�dbgd2dC�d4id5��E��dc���ZeH�ddgd2dC�d4id5��E��de���ZeH�dfgd2dC�d4id5��E��dg���Z�dh��Z	�di��Z
eH�djgdC�d4id5��5��dk���ZeH�dlgdC�d4id5��5��dm���Z�dn��Z
eH�do�dog�dpd5��q��dr���ZeH�dsgdC�d4id5��5��dt���ZeH�dugd2d5�l��dv���ZeH�dwgd2dC�d4id5��E��dx���ZeH�dy�dzgd5�M��d{���Z�d|��ZeH�d}gdC�dHid2d�d5��~��d���ZeH�d�gd2dC�d4id5��E��d����ZeH�d�gd2dC�d4id5��E��d����Z�d���Z�d���Z�d���Z�d���ZeH�d�gd2dC�d4id5��E��d����ZeH�d��d�g��d����ZeH�d�g��d����ZeH�d�g��d����ZeH�d�g��d����ZeH�d�g��d����Z eH�d�g��d����Z!eH�d�g��d����Z"eH�d�g��d����Z#eH�d�g��d����Z$eH�d�g��d����Z%eH�d�g��d����Z&eH�d�g��d����Z'eH�d�g��d����Z(eH�d�g��d����Z)�d���Z*�d���Z+�d���Z,�d���Z-eIdg���d����Z.eIdg���d����Z/�d���Z0�d���Z1�d���Z2eHg�d����d����Z3�d���Z4eI��d����Z5�d���Z6eH�d�g��d����Z7�d���Z8�d���Z9eIdg���d����Z:�d���Z;�d���Z<eI��d����Z=ej�j��d�g�d��e�j�g�d���d�g��d����Z>eIdg���d����Z?eH�d��d�g��d����Z@eH�d�g��dÄ��ZAeH�d�gd2�3��dń��ZBeH�d�g��dDŽ��ZCeH�d�g��dɄ��ZDej�j��d�d2d�g�dːd�g�y�eH�d�gdLd2�b��d΄���ZE�dτ�ZF�dЄ�ZG�dф�ZHej�j��d�d2d�g�dːd�g�y�eH�d�gdLd2�b��dӄ���ZIeH�d�g��dՄ��ZJeH�d�g��dׄ��ZKeH�d�g��dل��ZLeH�d�gd2�3��dۄ��ZM�d܄�ZN�d݄�ZO�dބ�ZP�d߄�ZQ�d��ZR�d��ZS�d��ZT�d��ZUeH�d�g��d���ZV�d��ZW�d��ZX�d��ZYeH�d�gd2�3��d���ZZeH�d�gd2�3��d���Z[eH�d�gd2�3��d���Z\�d��Z]�d��Z^eH�d�gd2�3��d���Z_eH�d�d�gd2�3��d���Z`eH�d�gd2�3��d����Zaej�j��d�g�d����d����ZbeH�d�gd2�3��d����Zc�d���Zdej�j��d�gggdd�ggdd�gggg�ej�j��d�g�d����d����ZeeIdg���d���ZfeH�dgd2�3��d���ZgeH�dg��d���ZheH�dgd2�3��d���ZieH�d�d	ge�j���d
k(rdndW�X��d���ZkeI��d���ZleI��d
���ZmeI��d���ZneI��d���Zo�d��ZpeHg�d�dg���d���Zq�d��ZreHg�d�dg���d���Zs�d��Ztej�j��d�d�dwdue�j��dgej$�j�g�d��d�g�eIdg���d����ZweH�d�dgd2�3��d���ZxeH�dgd2�3��d���Zy�d��ZzeHg�d �d2�d!d5��"��d#���Z{eHg�d$�d2�d!d5��"��d%���Z|eHg�d&�d2�d!d5��"��d'���Z}�d(��Z~eIdg���d)���Z�d*��Z�eHg�d+�d2�d,����d-���Z�eHg�d.�d2�3��d/���Z��d0��Z�eIdg���d1���Z�eH�d2gd2�3��d3���Z�eH�d4�d4gd2�3��d5���Z�ej�j��d6g�d7���d8���Z��d9��Z��d:��Z�eIdg���d;���Z��d<��Z�ej�j��d=e6�je6�j�d>ge6�je6�j�d?gg��d@���Z��dA��Z��dB��Z��dC��Z��dD��Z��dE��Z�ej�j��dF�e��dGi�dHf�e��dIi�dJf�e�d�dwgfi�dKf�e��e���dLdi�dMff��dN���Z��dO��Z�ej�j�d%d&��dP���Z��dQ��Z��dR��Z�eH�dSg��dT���Z�eHg�dU�dgdL��V��dW���Z�eH�dXgdL�M��dY���Z�eH�dZgdL�M��d[���Z�eH�d\gdL�M��d]���Z�eH�d^gdL�M��d_���Z�eH�d`gdL�M��da���Z�eH�dbg��dc���Z��dd��Z��de��Z��df��Z�eH�dgg��dh���Z�eIdg���di���Z��dj��Z��dk��Z��dl��Z��dm��Z�eH�dng��do���Z��dp��Z�eH�dqgdC�dri�E��ds���Z��dt��Z��du��Z�ej�j��dF�e��dvi�dwf�e��dxi�dwf�e��e��dϐdyi�dwf�e��e���dz�dyi�dwf�e��d>d�d�d&��d{f�e��d>d�d�i�d{f�e��d|i�d}ff��d~���Z��d��Z��d���Z��d���Z��d���Z��d���Z��d���Z��d���Z��d���Z�eH�d�gdC�d4i�E��d����Z�eH�d�gdC�d4i�E��d����Z��d���Z��d���Z��d���Z��d���Z�ej�j��d��d�e�j��j�f�d�e�j��j�f�eŐd��eŐd�fe�j��j�fg�d��g�d��fe�j��j�fe�j��j��d��e�j��j��d��fej�j�fg�ej�j��d�e�j�d���j��d��e�j��j�du�ddu�g��d�����Zːd���Z̐d���Z͐d���Zΐd���Z�ej�j��d��eϫ��d����Z�eH�d�gd2�3��d����Zѐd���ZҐd���Z�ej�j��d�d2d�g��d����Z�eH�d�gd2dW����d����Z�eH�d�gd2dL�l��d����Z�ej�j�d5��d����Z�e�j�dϐdzg�����d����Z�e�j�g�d�������d����Zڐd���Zېd���Zܐd���Zݐd���Z�ej�j�d5��d����Z�ej�j�d5��d����Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�d���Z�eH�d�g�dìX��dĄ��Z�eH�d�g��dƄ��Z�eH�d�g�dìX��dȄ��Z�eH�d�gd2�3��dʄ��Z�d˄�Z�d̄�Z��d̈́�Z��d΄�Z�ej�j��d�g�dТg�dѢ�y��d҄��Z��dӄ�Z��dԄ�Z��dՄ�Z��dք�Z��dׄ�Z��d؄�Z��dل�Z��dڄ�Zej�j�d5��dۄ��Z�d܄�Z�d݄�Z�dބ�Z�d߄�Z�d��Zej�j��d�d�d�g�ej�j��d�d�d�g��d����Z�d��Z�d��Z	�d��Z
eIdg���d���ZeIdg���d���Z�d��Z
�d��Z�d��ZeH�d�gd2dL�l��d���Z�d��Z�d��Zej�j��d�d�d2g�ej�j��d�d�d2g��d����Z�d���Z�d���Z�d���Z�d���Z�d���ZeH�d�gdLd2�b��d����ZeH�d�gdL�M��d����Z�d���Z�d���Z�d��Z�d��Z�d��Z�d��Z �d��Z!�d��Z"�d��Z#�d��Z$�d��Z%eIdg���d	���Z&�d
��Z'�d��Z(�d��Z)�d
��Z*�d��Z+�d��Z,�d��Z-�d��Z.�d��Z/�d��Z0�d��Z1�d��Z2�d��Z3�d��Z4�d��Z5�d��Z6ej�j��dd&�ej�j��d�d��d����Z7eIdg���d���Z8ej�j�d5��d���Z9�d ��Z:�d!��Z;ej�j��d"e&�jxD�cgc]}|�|��c}g�d#�z�ej�j�d5��d$����Z=�d%��Z>�d&��Z?eId�g���d'���Z@eIdg���d(���ZA�d)��ZBej�j��d*g�d+���d,���ZC�d-��ZD�d.��ZE�d/��ZF�d0��ZG�d1��ZH�d2��ZI�d3��ZJ�d4��ZK�d5��ZL�d6��ZM�d7��ZN�d8��ZO�d9��ZP�d:��ZQej�j�d5��d;���ZR�d<��ZS�d=��ZTej�j��d>�d?�ej�j��d�d�d@�e�du�ig��dA����ZU�dB��ZV�dC��ZW�dD��ZX�dE��ZY�dF��ZZ�dG��Z[�dH��Z\�dI��Z]eIdg���dJ���Z^ycc}w(L�)�
namedtupleN)�Decimal)�partial)�product)�SimpleNamespace)�ma)�cycler)�
rc_context)�MatplotlibDeprecationWarning)�Figure)�Axes)�
HammerAxes)�	PolarAxes)�assert_allclose�assert_array_equal�assert_array_almost_equal)�image_comparison�check_figures_equal�remove_ticks_and_titles�png��
extensionsc�F�|j�}|jd�y�NF)�subplots�set_visible��fig_test�fig_ref�axs   �</usr/lib/python3/dist-packages/matplotlib/tests/test_axes.py�test_invisible_axesr"0s��	�	�	�	�B��N�N�5��c���tj�\}}|jd�|jd�|j	�dk(sJ�|j�dk(sJ�y)Nzx labelzy label)�pltr�
set_xlabel�
set_ylabel�
get_xlabel�
get_ylabel��figr s  r!�test_get_labelsr,6sQ���l�l�n�G�C���M�M�)���M�M�)��
�=�=�?�i�'�'�'�
�=�=�?�i�'�'�'r#c���tj�\}}|jd�|jd�|j	d�|jd�t
|�dk(sJ�y)N�label�title�x�yzO<AxesSubplot: label='label', title={'center': 'title'}, xlabel='x', ylabel='y'>)r%r�	set_label�	set_titler&r'�reprr*s  r!�	test_reprr5>s`���l�l�n�G�C���L�L����L�L����M�M�#���M�M�#����8�	L�M�M�Mr#c��|j�}|jddgddgddgd��}|j�|jdd��|j	dd	��|j|�}|j
d
d��|j�}|jddgddgddgd��}|j�|jddd	��|j	ddd	��|j|�}|j
d
dd	��y)
N���scatter��cr.�Y Label�top��loc�X Label�right�Z Label�r1�ha�r0rD�rr9�legendr'r&�colorbarr2�rrr �sc�cbars     r!�test_label_loc_verticalrLIs���	�	�	�	�B�	���Q��F�Q��F�q�!�f�I��	>�B��I�I�K��M�M�)��M�'��M�M�)��M�)����R� �D��N�N�9�%�N�(�	�	�	�	�B�	���Q��F�Q��F�q�!�f�I��	>�B��I�I�K��M�M�)�q�W�M�-��M�M�)�q�W�M�-����B��D��N�N�9��g�N�.r#c�&�|j�}|jddgddgddgd��}|j�|jdd��|j	dd	��|j|d
��}|j
dd	��|j�}|jddgddgddgd��}|j�|jdd
d	��|j	dd
d	��|j|d
��}|j
dd
d	��y)Nr7r8r9r:r<�bottomr>r@�left�
horizontal��orientationrBrrCrErFrIs     r!�test_label_loc_horizontalrS\s��	�	�	�	�B�	���Q��F�Q��F�q�!�f�I��	>�B��I�I�K��M�M�)��M�*��M�M�)��M�(����R�\��:�D��N�N�9�&�N�)�	�	�	�	�B�	���Q��F�Q��F�q�!�f�I��	>�B��I�I�K��M�M�)�q�V�M�,��M�M�)�q�V�M�,����B�L��9�D��N�N�9��f�N�-r#c�t�tjddd��5|j�}|jddgddgddgd��}|j	�|jd�|j
d	�|j|d
��}|jd�ddd�|j�}|jddgddgddgd��}|j	�|jddd�
�|j
d	dd��|j|d
��}|jddd��y#1swY��xYw)NrAr=)zxaxis.labellocationzyaxis.labellocationr7r8r9r:r<r@rPrQrBrCrE)	�
matplotlibr
rr9rGr'r&rHr2rIs     r!�test_label_loc_rcrVos'��	�	�	�w�7<� >�
?�"�
�
�
�
 ��
�Z�Z��A���A��1�a�&�	�Z�
B��
�	�	��
�
�
�i� �
�
�
�i� �� � ��� �>�����y�!�"�
�	�	�	�B�	���Q��F�Q��F�q�!�f�I��	>�B��I�I�K��M�M�)�q�W�M�-��M�M�)�q�W�M�-����B�L��9�D��N�N�9��g�N�.�!"�"�s�BD.�.D7c�~�tj�\}}|jdd��|jdd��|jj	�j�dk(sJ�|jdd��|jj	�j�dk(sJ�|jdd��|jj	�j�dk(sJ�|j
dd��|j
dd��|jj	�j�dk(sJ�|j
dd��|jj	�j�dk(sJ�|j
dd��|jj	�j�dk(sJ�y)Nz
Test labelrOr>�centerrAr=rN)r%rr&�xaxis�	get_label�get_horizontalalignmentr'�yaxisr*s  r!�test_label_shiftr]�sm���l�l�n�G�C���M�M�,�F�M�+��M�M�,�H�M�-�
�8�8����7�7�9�X�E�E�E��M�M�,�G�M�,�
�8�8����7�7�9�W�D�D�D��M�M�,�H�M�-�
�8�8����7�7�9�X�E�E�E��M�M�,�E�M�*��M�M�,�H�M�-�
�8�8����7�7�9�X�E�E�E��M�M�,�H�M�-�
�8�8����7�7�9�V�C�C�C��M�M�,�H�M�-�
�8�8����7�7�9�X�E�E�Er#c��tjjd�d}tjjdd|�j	�}|dz
}|j�}|j
||��|j�}tj||d��tj||�z}tj||dz�}||dz
|z
||z}|j|dg|�|jddd��y)	N�!N,�rr7)�maxlags�full)�mode)r1�xmin�xmax)�np�random�seed�normal�cumsumr�acorr�	correlate�dot�arange�vlines�axhline)	rr�Nxr0ra�ax_test�ax_ref�norm_auto_corr�lagss	         r!�
test_acorrrv�s����I�I�N�N�8��	�B�
�	�	����A�r�"�)�)�+�A���d�G����!�G��M�M�!�W�M�%�
�
�
�
�F��\�\�!�Q�V�4�R�V�V�A�q�\�A�N�
�9�9�g�X�w�q�y�)�D�#�B�q�D��L��G��<�N�
�M�M�$���^�,�
�N�N�Q�Q�Q�N�'r#c��tjjd�tjd�}d|ddtjj	|�|jd�}|j
d�}|dj|�|dj|dd	�
�|j
d�}|dj|dd�
�|djj�|djgtj|�ddd��d��ddi�|djd|dj�|dj�ddd���|D]}|jj!d��y)Nr_irr`)� rxr8r7�.�lower)�marker�origin�gray_r�nearest)�cmap�
interpolation����
markersize�
)�aspect�xlim�ylim�both)rfrgrh�ones�shuffle�reshaper�spy�imshowrY�tick_top�plot�nonzero�set�get_xlim�get_ylim�set_ticks_position)rr�a�axs_test�axs_refr s      r!�test_spyr��sQ���I�I�N�N�8��
�����A��A�h�w�K��I�I���a��	�	�	�(��A�� � ��#�H��Q�K�O�O�A���Q�K�O�O�A�c�'�O�2����q�!�G��A�J���a�h�i��@��A�J�������G�A�J�O�O�=�R�Z�Z��]�4�R�4�(�=�#�=�"�=��A�J�N�N��w�q�z�*�*�,�7�1�:�3F�3F�3H��2��3N��P��,��
���#�#�F�+�,r#c��tj�\}}ddiddd�fD]K}tjt�5|j
t
jdd�fi|��ddd��My#1swY�XxYw)Nr�r~�o�solid)r{�	linestyle�)r%r�pytest�raises�	TypeErrorr�rf�eye)r+r �unsupported_kws   r!�test_spy_invalid_kwargsr��sv���l�l�n�G�C��+�Y�7�&)��@�B�3��
�]�]�9�
%�	3��B�F�F�2�6�6�!�Q�<�2�>�2�	3�	3�3�	3�	3�s�(A0�0A9	c�l�tjjd�tjjdd�}|j
�j|�|j
�}|j|�|jj�|jjd�y)N�mpl20rxr�)�mpl�style�userfrg�rand�add_subplot�matshowr�rYr�r�)rrr�rss    r!�test_matshowr��sy���I�I�M�M�'��
�	�	���r�2��A�����"�"�1�%�
�
 �
 �
"�F�
�M�M�!��
�L�L����
�L�L�#�#�F�+r#)�formatter_ticker_001�formatter_ticker_002�formatter_ticker_003�formatter_ticker_004�formatter_ticker_005c��ddlmcm}|j�dtj
d<t
d�D�cgc]}||jz��}}t
d�D�cgc]}d|zdz
|jz��}}t
d�D�cgc]}d|zdz
|jz��}}tj�j�}|jd	�tj�j�}|jd	�|j||d
d��tj�j�}|jd	�|j||d
d��|jd
�tj�j�}|j||d
d��|j||dd��|jd�tj�j�}|j||d
d��|j||dd��|jd�|j�ycc}wcc}wcc}w)Nr�zlines.markeredgewidthr���?��?g�?��?zx-label 001�blue�sec)�color�xunitszx-label 003�green�hourzx-label 004zx-label 005)�matplotlib.testing.jpl_units�testing�	jpl_units�registerrU�rcParams�ranger��kmr%�figurerr&r��autoscale_view)�unitsr0�xdatar1�ydata1�ydata2r s       r!�test_formatter_tickerr��s���1�0�	�N�N��46�J���/�0�#(��)�,�Q�Q�u�y�y�[�,�E�,�.3�B�i�
8��s�1�u�s�{�E�H�H�$�
8�F�
8�/4�R�y�
9�!�t�A�v��|�U�X�X�%�
9�F�
9�	����	�	�	 �B��M�M�-� �	����	�	�	 �B��M�M�-� ��G�G�E�6���G�6�	����	�	�	 �B��M�M�-� ��G�G�E�6���G�6��M�M�-� �	����	�	�	 �B��G�G�E�6���G�6��G�G�E�6���G�8��M�M�-� �

����	�	�	 �B��G�G�E�6���G�6��G�G�E�6���G�8��M�M�-� ������7
-��
8��
9s�I�I�
Ic��d�}tj�j�}|jjsJ�|jj
sJ�|jjsJ�|jj
sJ�|jj|�|jjrJ�|jj
sJ�|jjsJ�|jj
sJ�tj|�}t|jj�tj�sJ�|jj�j|jk(sJ�y)Nc��y)N���r0�poss  r!�	_formfuncz4test_funcformatter_auto_formatter.<locals>._formfuncs��r#)
r%r�rrY�isDefault_majfmt�isDefault_minfmtr\�set_major_formatter�mticker�
FuncFormatter�
isinstance�get_major_formatter�func)r�r �targ_funcformatters   r!�!test_funcformatter_auto_formatterr�s,���

����	�	�	 �B�
�8�8�$�$�$�$�
�8�8�$�$�$�$�
�8�8�$�$�$�$�
�8�8�$�$�$�$��H�H� � ��+��x�x�(�(�(�(�
�8�8�$�$�$�$�
�8�8�$�$�$�$�
�8�8�$�$�$�$� �.�.�y�9���b�h�h�2�2�4��+�+�-�-�-��8�8�'�'�)�.�.�2D�2I�2I�I�I�Ir#c��d}tj�j�}|jjsJ�|jj
sJ�|jjsJ�|jj
sJ�|jj|�|jjsJ�|jj
sJ�|jjsJ�|jj
rJ�tj|�}t|jj�tj�sJ�|jj�j|jk(sJ�y)Nz	{x}_{pos})
r%r�rrYr�r�r\�set_minor_formatterr��StrMethodFormatterr��get_minor_formatter�fmt)�formstrr �targ_strformatters   r!�&test_strmethodformatter_auto_formatterr�s*���G�	����	�	�	 �B�
�8�8�$�$�$�$�
�8�8�$�$�$�$�
�8�8�$�$�$�$�
�8�8�$�$�$�$��H�H� � ��)�
�8�8�$�$�$�$�
�8�8�$�$�$�$�
�8�8�$�$�$�$��x�x�(�(�(�(��2�2�7�;���b�h�h�2�2�4��0�0�2�2�2��8�8�'�'�)�-�-�1B�1F�1F�F�F�Fr#�twin_axis_locators_formattersc�8�tjdddd��}tjtj|zdz�}t	j
|�}t	j
gd��}t	j�}|jddd�}|jdd	gddg�|jj|�|jj|�|jjt	jd
��|jjt	jgd���|j jt	j"��|j jt	j
gd���|j jt	jd
��|j jt	jgd���|j%�|j'�y)Nrr7�T)�num�endpoint�@�皙�����?皙�����?�333333�?r��dz%08.2lf)�tricks�mind�jedi)��#�7�Kz%05.2lf)r;�3�pr�)rf�linspace�sin�pir%�FixedLocatorr�r�r�r\�set_major_locator�set_minor_locatorr��FormatStrFormatterr��FixedFormatterrY�
LinearLocator�twiny�twinx)�vals�locs�majl�minlr+�ax1s      r!�"test_twin_axis_locators_formattersr6sr��
�;�;�q�!��T�2�D�
�6�6�"�%�%�$�,��$�%�D����D�!�D����O�,�D�

�*�*�,�C�

�/�/�!�Q��
"�C��H�H�c�3�Z�!�Q�� ��I�I����%��I�I����%��I�I�!�!�#�"8�"8��"C�D��I�I�!�!�#�"4�"4�6>�#?�@��I�I���� 1� 1� 3�4��I�I���� 0� 0�1A� B�C��I�I�!�!�#�"8�"8��"C�D��I�I�!�!�#�"4�"4�5I�"J�K��I�I�K��I�I�Kr#c�B�tj�\}}|j�}|j�}tj�|j
j
�rJ�|jj
�rJ�|j�|j�|j
j
�rJ�|jj
�rJ�|jj
�sJ�|j
j
�sJ�|jj
�rJ�|jj
�rJ�|j
j
�sJ�|jj
�sJ�|jj
�sJ�y�N)
r%rrr�drawrY�get_visible�patch�clar\)r+r �ax2�ax3s    r!�test_twinx_clarOs4���l�l�n�G�C��
�(�(�*�C�

�)�)�+�C��H�H�J��y�y�$�$�&�&�&��y�y�$�$�&�&�&��G�G�I��G�G�I��y�y�$�$�&�&�&��y�y�$�$�&�&�&��9�9� � �"�"�"��9�9� � �"�"�"��y�y�$�$�&�&�&��y�y�$�$�&�&�&�
�8�8���!�!�!�
�8�8���!�!�!�
�8�8���!�!�!r#�twin�r0r1�R���Q�?)r�tolc�r�d|��}d|�d�}tjdd�}|jddd�}t||��}t||�d�|j	||�|jddd�}t||�d�t||��}|j	||�dD]�}|jdd|�}	t|	|�d�|	j	||�t
jj}
|jt
jj|
d	d	gd	dgd	dgddgddgdd	gdd	gd	d	gg|
j|
jgd
z�|	jdtjdtjd
d�����t!|�t!|�y)Nr�set_�scaler7r�r8�log�r7r8r��nonezaxes.edgecolor�axes.linewidth�
projecting)�	transform�	facecolor�	edgecolor�	linewidth�capstyle)rfrnr��getattrr�rU�path�Path�
add_artist�patches�	PathPatch�MOVETO�LINETO�	transAxesr�r�r)rrr�	twin_func�	set_scaler0rr�ax_twin�irsr%s           r!�test_twin_logscaler0fs����t�f�
�I��t�f�E�"�I�
�	�	�!�S��A��"�"�1�a��+�G�)�g�g�y�)�+�G��G�G�Y���&��L�L��A���"�"�1�a��+�G��G�G�Y���&�)�g�g�y�)�+�G��L�L��A��
�(���$�$�Q��1�-��"���	�"�5�)����A�q�����#�#��������(�(��q�!�f�q�!�f��!�f�q�!�f��!�f�q�!�f��!�f�q�!�f�&��k�k�4�;�;�/�!�3�	5�
!�*�*� ��,�,�'7�8��,�,�'7�8�%�
)�

'�	(�(�*�H�%��G�$r#ztwin_autoscale.pngc��tjgd��}d|z}tjgd��}d|z}tj�}|j	ddd��}|j||dd	�
�tj|�}|j||dd�
�|jdd�|jdd�y)N�rr�r7r��rr7r8r8�rrr7r7F)�
autoscalex_on�
autoscaley_onr�r��r��lw�r--r��r8r)rf�arrayr%r��add_axesr�r�margins)r0r1�x2�y2r+r rs       r!�test_twinx_axis_scalesr@�s���
�����A��a��A�	���)�	�B�	
�R��B�

�*�*�,�C�	���l�%�u��	M�B��G�G�A�q��2�G�&�

�)�)�B�-�C��H�H�R��U�q�H�!��J�J�q�!���K�K��1�r#c��tj�\}}|j�}|jd�|j�}|j	�sJ�|j	�rJ�|j�}|j
d�|j�}|j�sJ�|j�rJ�yr)r%rr�set_autoscalex_on�get_autoscalex_onr�set_autoscaley_on�get_autoscaley_on)r+r �ax_x_on�ax_x_off�ax_y_on�ax_y_offs      r!�#test_twin_inherit_autoscale_settingrJ�s����l�l�n�G�C���h�h�j�G�������x�x�z�H��$�$�&�&�&��)�)�+�+�+��h�h�j�G�������x�x�z�H��$�$�&�&�&��)�)�+�+�+�+r#c�n�tjd�}|j�}|j�rJ�|j	�rJ�t
jj
d�}|j|�|j�rJ�|j	�sJ�|j�tjddt
jzd�}|j|tj|��|j�rJ�|j	�rJ�|j�|j|�tj�|j�rJ�|j	�sJ�|jD]}|j��tj d�}tj d|��}|j"j%d�|j	�sJ�|j|tj|��|j�|j	�rJ�|j�|j|�|j|tj|��|j�|j	�sJ�tj&|�y)	Nr)r�r�r8r�������shareyT)r%r��gca�xaxis_inverted�yaxis_invertedrfrgr�r
r�r�r��cos�	autoscale�axes�remove�subplotr\�set_inverted�close)r+r �imgr0�ax0rs      r!�test_inverted_clar\�s���*�*�Q�-�C�	����B�� � �"�"�"�� � �"�"�"�
�)�)�
�
�:�
&�C��I�I�c�N�� � �"�"�"�
�������F�F�H�
���A�q����w��$�A��G�G�A�r�v�v�a�y��� � �"�"�"�� � �"�"�"��F�F�H��I�I�c�N��M�M�O�� � �"�"�"�
�������h�h���
�	�	���
�+�+�c�
�C�

�+�+�c�#�
&�C��I�I���4� ��������H�H�Q����q�	���G�G�I��!�!�#�#�#��G�G�I��J�J�s�O��H�H�Q����q�	���G�G�I�
�������I�I�c�Nr#c��	�tjtd��5G�	fd�dt�}ddd�tjtd��5G�	fd�dt�}ddd�Gd�d�}G�	fd	�d
t�}G�	fd�dt�}Gd
�d|�}t	�}|||||fD])}d�	||gd��}�	sJ�d�	|j��	r�)J�y#1swY��xYw#1swY��xYw)NzOverriding `Axes.cla`��matchc���eZdZ�fd�Zy)�(test_subclass_clear_cla.<locals>.ClaAxesc�
��d�y�NTr���self�calleds �r!r
z,test_subclass_clear_cla.<locals>.ClaAxes.cla�s����r#N)�__name__�
__module__�__qualname__r
�rfs�r!�ClaAxesra�s���
r#rkc�"���eZdZ��fd�Z�xZS)�-test_subclass_clear_cla.<locals>.ClaSuperAxesc�&��d�t�|��yrc)�superr
�re�	__class__rfs ��r!r
z1test_subclass_clear_cla.<locals>.ClaSuperAxes.cla�s��������
r#)rgrhrir
�
__classcell__�rqrfs@�r!�ClaSuperAxesrm�s
���
�
r#rtc��eZdZy)�+test_subclass_clear_cla.<locals>.SubClaAxesN�rgrhrir�r#r!�
SubClaAxesrv����r#rxc���eZdZ�fd�Zy)�*test_subclass_clear_cla.<locals>.ClearAxesc�
��d�yrcr�rds �r!�clearz0test_subclass_clear_cla.<locals>.ClearAxes.clears����Fr#N)rgrhrir}rjs�r!�	ClearAxesr{s���	r#r~c�"���eZdZ��fd�Z�xZS)�/test_subclass_clear_cla.<locals>.ClearSuperAxesc�&��d�t�|��yrc)ror}rps ��r!r}z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clears����F��G�M�Or#)rgrhrir}rrrss@�r!�ClearSuperAxesr�s
���	�	r#r�c��eZdZy)�-test_subclass_clear_cla.<locals>.SubClearAxesNrwr�r#r!�SubClearAxesr�ryr#r�Fr4)r��warns�PendingDeprecationWarningr
rr
)
rkrtrxr~r�r�r+�
axes_classr rfs
         @r!�test_subclass_clear_clar��s����

���/�3�
5��	�d�	��
���/�3�
5��	�4�	��
�W�
��D��
���
�y�
��(�C���j� �.�,�@�
�
���
��\�
*���
�v���
�����
�v�
�C�����s�C#�C/�#C,�/C8c�t�tj�D]!}d|jvs�d|jvr�!J�y)Nr�r
)r
�__subclasses__ri�__dict__)�klasss r!�!test_cla_not_redefined_internallyr�s<���$�$�&�/��%�E�,>�,>�>�����.�.�.�	/r#c��tjddd��5|j�}|jddgddg�ddd�|j�}|jddgddg�|j	�y#1swY�@xYw)NT)zxtick.minor.visiblezytick.minor.visiblerr7)rUr
rr��
minorticks_on�rrrrrss    r!� test_minorticks_on_rcParams_bothr�$s���	�	�	�t�7;� =�
>�%��#�#�%�����a��V�a��V�$�%��
�
�
�F�
�K�K��A���A���
����
%�%�s�'A?�?B�autoscale_tiny_rangeT��remove_textc��tjdd�\}}t|j�D]&\}}dd|z
z}|j	ddgdd|zg��(y)Nr8r�i����rr7)r%r�	enumerate�flatr�)r+�axsr/r �y1s     r!�test_autoscale_tiny_ranger�/s[���|�|�A�q�!�H�C���3�8�8�$�%���2�
�#��'�]��
����A���A��F��$�%r#�defaultc�x�tjdd�\}}|jgd��|jddd��|jddd��t	|j�d�t	|j
�d	�|j�sJ�|j�sJ�|j�sJ�|jd�
�t	|j�d�t	|j
�d	�|j�sJ�|j�sJ�|j�sJ�y)Nr7�r7r8r�rTr0F)�enable�axis�tightr1)g333333ÿg333333	@)r��@)r�)
r%rr�rTrr�r�rCrE�get_autoscale_onr*s  r!�test_autoscale_tightr�8s���l�l�1�a� �G�C���G�G�L���L�L��3�e�L�4��L�L��3�d�L�3��B�K�K�M�=�1��B�K�K�M�:�.����!�!�!�
���!�!�!�
��� � � ��L�L��L���B�K�K�M�=�1��B�K�K�M�:�.�
���!�!�!�
���!�!�!�
��� � � r#c�"�tjdt��}tjddd��\}\}}|j||�|j
||�|jd��|jd��tj�|d|df}t|j�|�t|j�|�t|j�|�t|j�|d	|df�y)
Nr���dtyper8r7T��sharex)r�r�r)rfrn�floatr%r�loglog�semilogxrTr
rr�r�)r0r+rr�limss     r!�test_autoscale_log_sharedr�Ps���	�	�	�#�U�#�A��l�l�1�a��5�O�C��#�s��J�J�q�!���L�L��A���M�M��M���M�M��M���H�H�J�
�a�D�!�B�%�=�D��C�L�L�N�D�)��C�L�L�N�D�)��C�L�L�N�D�)��C�L�L�N�Q�q�T�1�R�5�M�2r#c��tj�\}}|jddgddggd��t|j	�d�t|j�d�d|_|j�d	d|jzz
d
d|jzzf}d	d|jzz
d
d|jzzf}t|j	�|�t|j�|�d|_|j�t|j	�d�t|j�d�y)Nrr7r8r�rz�r|)��r�Fr�r�T)
r%rr�rr�r��use_sticky_edgesrT�_xmargin�_ymargin)r+r r�r�s    r!�test_use_sticky_edgesr�bs����l�l�n�G�C���I�I��1�v��1�v��w�I�/��B�K�K�M�;�/��B�K�K�M�;�/��B���L�L�N��1�r�{�{�?�"�C�!�b�k�k�/�$9�:�D��1�r�{�{�?�"�C�!�b�k�k�/�$9�:�D��B�K�K�M�4�(��B�K�K�M�4�(��B���L�L�N��B�K�K�M�;�/��B�K�K�M�;�/r#c�"�tjd�jdd�}|jd�}|jd|��}|j	|�|jd�}|jd|��}|j	|�y)Nr�r�r�rLrMr�)rfrnr�r��
pcolormesh)rr�Zr[rs     r!�test_sticky_shared_axesr�us���	�	�	�"�
���a��#�A�
�
�
�s�
#�C�
�
�
�s�3�
�
/�C��N�N�1��
�
�
�c�
"�C�
�
�
�c�#�
�
.�C��N�N�1�r#�
offset_pointsc�.�tjddd�}tjdtjz|z�}t	j
�}|j
ddd��}|j||d	d
��\}|jdd
ddd��y)N��@�{�G�z�?r�F)r�r�����r�)�autoscale_onr�r�r��purple�r8r�z	local max�r�r7�data�r�r�z
offset points)�xy�xycoords�xytext�
textcoords)	rfrnrSr�r%r�r�r��annotate)�t�sr+r �lines     r!�test_basic_annotater��s���	�	�	�#�s�D�!�A�
���s�2�5�5�y�1�}��A��*�*�,�C�	���e�'���	H�B��G�G�A�q�Q�h�G�/�E�D��K�K�����/��;r#zarrow_simple.pngc���d}d}d}t|||�}tjdd�\}}tt	|j
|��D]�\}\}}|j
dd�|jdd�|\}}}dtjz|zdz}	|jddtj|	�tj|	�|	d	z||||	d
z|	d
z��
��y)N)TF)rbrOrAr�r���r8�rr�r�)�width�length_includes_head�shape�head_starts_at_zero�
head_width�head_length)
rr%rr��zipr��set_xlim�set_ylimrfr��arrowr�rS)
r�r�r��kwargsr+r�r/r �kwarg�thetas
          r!�test_arrow_simpler��s���)��%�E�'��
�)�5�2E�
F�F��|�|�A�q�!�H�C��#�C����&�$9�:�
)���;�B��
���B���
���B���=B�:�	�u�&9��B�E�E�	�A�
��"��
����A�r�v�v�e�}�b�f�f�U�m��S�y�&:��%8�!�B�J�"�R�Z�
	�	)�
)r#c�^�tj�\}}|jddddd��y)Nr)r�)r%rr���_r s  r!�test_arrow_emptyr��s'���L�L�N�E�A�r��H�H�Q��1�a�Q�H�'r#c��tj�\}}|jdddd�|j�dk(sJ�|j	�dk(sJ�y)Nr7)皙�����?皙����@)r%rr�r�r�r�s  r!�test_arrow_in_viewr��sK���L�L�N�E�A�r��H�H�Q��1�a��
�;�;�=�J�&�&�&�
�;�;�=�J�&�&�&r#c��tj�\}}|jddd��}|j�J�|jdddi��}|j�J�y)N�foo�rr7�r8r�)r�)r��
arrowprops)r%rr��arrow_patch)r+r �anns   r!�test_annotate_default_arrowr��s[���l�l�n�G�C��
�+�+�e�V�F�+�
3�C��?�?�"�"�"�
�+�+�e�V�F�r�+�
B�C��?�?�&�&�&r#c��tj�\}}tj|j�j
}tjtj�j
}t|j��t|j��k(sJ�t|j�|j��D]\}}||k(r�J�y)z?Check that the signature of Axes.annotate() matches Annotation.N)r%r�inspect�	signaturer��
parameters�mtext�
Annotation�list�keysr��values)r+r �annotate_params�annotation_params�p1�p2s      r!�test_annotate_signaturer��s����l�l�n�G�C���'�'����4�?�?�O��)�)�%�*:�*:�;�F�F����$�$�&�'�4�0A�0F�0F�0H�+I�I�I�I��o�,�,�.�0A�0H�0H�0J�K����B��R�x��x�r#zfill_units.png�dpi�<)�
savefig_kwargc��ddlmcm}|j�|j	dtj
ddd���}d|jz}|jdd�}tjd	d
d��}tj|�}tjd
d
�\}\\}}\}	}
|j|g|gdd��gd�}|j||gd�d�|j|g|gdd��|j||||z||zggd�d�|	j|g|gdd��|	j||d|jzd|jzd|jzd|jzgd�|
j|g|gdd��|
j||||z||zgd|jzd|jzd|jzd|jzgd��|j!�y)Nr�ET��r���dt�$@g�@z
2009-04-27z
2009-04-29�
datetime64[D]r�r8�deg�red)�yunitsr�r4)r�r�g�V@r��b�Zr�)r)r�r�r�r��Epoch�datetimer
�Durationrfrn�mdates�date2numr%rr��fill�
autofmt_xdate)r�r��value�dayr�dtnr+rrr�ax4�inds            r!�test_fill_unitsr�s���0�0�	�N�N��	���D�X�.�.�t�Q��;��<�A��5�9�9��E�
�.�.��1�
2�C�	���<��_�	E�B�
�/�/�"�
�C�$'�L�L��A�$6�!�C�	!�*�3��j�s�C��H�H�a�S�5�'�%�u�H�5�
�C��H�H�S��X�,�c�2��H�H�a�S�5�'�%�u�H�5��H�H�a��A��G�Q��W�
%�
"�C�)��H�H�a�S�5�'�%�u�H�5��H�H�S��X��%�)�)�m�Q����]�B����N�A��	�	�M�
J�
���H�H�a�S�5�'�%�u�H�5��H�H�a��A��G�Q��W�
%��%�)�)�m�Q����]�B����N�A��	�	�M�
J��
�����r#c��tjtd��5tjdgdgdd��ddd�tjtd��5tjdgdgdd	�
�ddd�tjtd��5tjdgdgdd
��ddd�tj
dgdgdd
��y#1swY��xYw#1swY�pxYw#1swY�=xYw)Nzmarker .* redundantly definedr^rr�r0�r{z linestyle .* redundantly defined�-�--�r�zcolor .* redundantly defined�rr��r�r)r�r�)r�r��UserWarningr%r��errorbarr�r#r!� test_plot_format_kwarg_redundantr%�s���	���k�)H�	I�,����!��q�c�3�s�+�,�	���k�)K�	L�0����!��q�c�3�$�/�0�	���k�)G�	H�.����!��q�c�3�f�-�.��L�L�!��q�c�v�V�4�,�,��0�0��.�.�s#�C�C&�C2�C#�&C/�2C;c��gd�}tj|�}|j�}|j�}|j||tj|�tj|���^}}|jddg�|j||tj|�tj|�ddg��y)Nr���xerr�yerrr8)r(r)�dashes)rfr�rPr$�abs�
set_dashes)rrr0r1rsrrr�r�s        r!�test_errorbar_dashesr-�s����A�
���q�	�A�
�[�[�]�F��l�l�n�G����q�!�"�&�&��)�"�&�&��)��D�H�D�1��O�O�Q��F�����Q�����q�	����q�	�1�a�&��Ir#�single_pointc�r�dtjd<dtjd<tjd�\}\}}|j	dgdgd�|j	dgdgd�dgdgd�}tjd�\}\}}|j	d	d	d|�
�|j	ddd|�
�y)Nr��lines.markerT�	axes.gridr8rr7�r�r
r��r�r
)rUr�r%rr�)r+rrr�s    r!�test_single_pointr4
s���+.�J����'�'+�J����$��l�l�1�o�O�C��#�s��H�H�a�S�1�#�s���H�H�a�S�1�#�s����A�3��D��l�l�1�o�O�C��#�s��H�H�S�#�s��H�&��H�H�S�#�s��H�&r#zsingle_date.pngr�)r�c��dtjd<tjt	j
d��}dg}dg}tjdd�\}}|dj||z|d	d
��|dj||d	d
��y)N)����zaxes.formatter.limitsz
0000-12-31gX&Ag�(\�bP�r8r7rr�r!r")	r%r�rrrf�
datetime64r�	plot_dater�)r�time1�data1r+r s     r!�test_single_dater<s���-2�C�L�L�(�)�	������|�4�	5�B�
�J�E�
�H�E��l�l�1�a� �G�C���q�E�O�O�E�B�J��s�#�O�6��q�E�J�J�u�e�S��J�,r#c��tjd�jd�}tjddd�jd�}|jd�}|dj	|�|dj	|�|jd�}|djdd	�
�|dj	|j
��y)Nr��r7r�rr��r�r7r8r7�g���Q������Q��?)r�	�r�r�)rfrnr�rr�r��ravel)rr�row�colr�s     r!�test_shaped_datarG+s���
�)�)�B�-�
�
��
(�C�
�)�)�A�s�B�
�
'�
'��
0�C�
�
�
�A�
�C���F�K�K�����F�K�K���
�
�
�1�
�C���F�J�J�K�f�J�-���F�K�K��	�	��r#c��tjddgdtfdtfg��}tj�jd�}|dj
dd|��|d	j
ddd
|��y)N�r7r7�r8r8r��twosr�r8rr3r7r!)rfr;r�r%r�rr�)�ptsr�s  r!�test_structured_datarM:sj��
�(�(�F�F�#�V�U�O�f�e�_�+M�
N�C��*�*�,�
�
��
"�C���F�K�K���S�K�)���F�K�K����#�K�.r#�aitoff_proj)rr�r�c���tjtjtjd�}tjtjdztjdzd�}tj||�\}}t	j
dt
d����\}}|j�|j|j|jdd�	�y
)z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
    �r8)��������@�aitoff��
projection)�figsize�
subplot_kwr�r)r�N)
rfr�r��meshgridr%r�dict�gridr�r�)r0r1�X�Yr+r s      r!�test_aitoff_projr]Ds���	���R�U�U�F�B�E�E�2�&�A�
���R�U�U�F�Q�J�����	�2�.�A�
�;�;�q�!��D�A�q��l�l�8�&*�h�&?�A�G�C���G�G�I��G�G�A�F�F�A�F�F�C�A�G�.r#�
axvspan_epochc��ddlmcm}|j�|j	dtj
ddd���}|j	dtj
ddd���}|j
d|jjd��}tj�}|j||d	d
��|j|d|zz
|d|zz�y�
Nrrrr7rPr�r�r���?)r�alphar�)
r�r�r�r�rrrr�convertr%rP�axvspanr��r��t0�tfrr s     r!�test_axvspan_epochriU���0�0�	�N�N��
���T�h�/�/��a��<��	=�B�	���T�h�/�/��a��<��	=�B�	����e�i�i�/�/��6�	7�B�	����B��J�J�r�2��t�J�4��K�K��S��V��R�#�b�&�[�)r#�
axhspan_epoch�{�G�z�?)rc��ddlmcm}|j�|j	dtj
ddd���}|j	dtj
ddd���}|j
d|jjd��}tj�}|j||d	d
��|j|d|zz
|d|zz�yr`)
r�r�r�r�rrrrrdr%rP�axhspanr�rfs     r!�test_axhspan_epochrodrjr#zhexbin_extent.pngc��tj�\}}tjd�dzj	d�}|\}}|j||gd���||d�}tj�\}}|jddgd�|��y)	N��)r8���r�r��333333�?�ffffff�?)�extentrr0r1)rvr�)r%rrfrnr��hexbin)r+r r�r0r1s     r!�test_hexbin_extentrxss|���l�l�n�G�C���I�I�d�O�d�"�+�+�I�6�D��D�A�q��I�I�a��+�I�,����D��l�l�n�G�C���I�I�c�3�/�d�I�;r#zhexbin_empty.pngc��tj�\}}|jgg�tj�\}}|jggd��y)Nr��bins)r%rrwr*s  r!�test_hexbin_emptyr|�sD���l�l�n�G�C���I�I�b�"���l�l�n�G�C���I�I�b�"�5�I�!r#c��tj�\}}tjd�dzj	d�}|\}}|j||gd�d��}t
dd��}|j|�d	sJ�y)
N���r8r�rsr�)rv�picker��,rr)r%rrfrnr�rwr�contains)r+r r�r0r1�hb�mouse_events       r!�test_hexbin_pickabler��sq���l�l�n�G�C���I�I�c�N�S� �)�)�(�3�D��D�A�q�	���1�a� 0���	<�B�!�C�3�/�K�
�;�;�{�#�A�&�&�&r#zhexbin_log.pngc���dtjd<tjj	d�d}tjj|�}dd|zzdtjj|�zz}tjd|d	z�}tj�\}}|j||d
d
dtj��}tj|�y)
NF�pcolormesh.snapr_順r��@r�r8r�rT)�yscaler{�	marginals�reduce_C_function)r%r�rfrgrh�standard_normal�powerrrw�sumrH)�nr0r1r+r �hs      r!�test_hexbin_logr��s���
',�C�L�L�"�#��I�I�N�N�8���A�
�	�	�!�!�!�$�A��c�A�g�
��b�i�i�7�7��:�:�:�A�
����A��G��A��l�l�n�G�C��
�	�	�!�Q�u�5� �B�F�F�	�	<�A��L�L��Or#zhexbin_linear.png�r�r�c�P�tjjd�d}tjj|�}dd|zzdtjj|�zz}t	j
�\}}|j
||ddtj��y)	Nr_r�r�r�r��r�r�T)�gridsizer�r�)rfrgrhr�r%rrwr�)r�r0r1r+r s     r!�test_hexbin_linearr��s����I�I�N�N�8���A�
�	�	�!�!�!�$�A��c�A�g�
��b�i�i�7�7��:�:�:�A��l�l�n�G�C���I�I�a��W�� "����(r#c���tjd�jd�\}}tj�\}}|j||ddd��}|j
�dk(sJ�y)Nr~rrr8r�)r{�vmin�vmax)rfrnr�r%rrw�get_clim)r0r1r+r r�s     r!�test_hexbin_log_climr��sY��
�9�9�S�>�!�!�(�+�D�A�q��l�l�n�G�C��
�	�	�!�Q�U���	�5�A��:�:�<�8�#�#�#r#c�f�tj�\}}|j�|jgd�gd��|j	�dk(sJ�|j�dk(sJ�tj�tj�\}}|j�|jgd�gd��|j	�dk(sJ�|j�dk(sJ�tj�\}}|jd�|jdd	�|j�d
k(sJ�y)N)���r�r8r)r7r8r�r�)rr�r�)r�r)r�r�rr�r7)r�r7)
r%r�invert_xaxisr�r�r�rY�invert_yaxis�
set_yscaler�r*s  r!�test_inverted_limitsr��s����l�l�n�G�C���O�O���G�G�N�M�*�
�;�;�=�G�#�#�#�
�;�;�=�G�#�#�#��I�I�K��l�l�n�G�C���O�O���G�G�N�M�*�
�;�;�=�G�#�#�#�
�;�;�=�G�#�#�#��l�l�n�G�C���M�M�%���K�K��A��
�;�;�=�G�#�#�#r#�nonfinite_limitsc�^�tjdtjd�}tjd��5tj|�}ddd�tj
|t
|�dz<tj�\}}|j|�y#1swY�RxYw)Nr�r��ignore��divider8)
rfrn�e�errstater�nan�lenr%rr��r0r1r+r s    r!�test_nonfinite_limitsr��sw��
�	�	�"�b�d�d�D�!�A�	���H�	%���F�F�1�I����6�6�A�c�!�f�a�i�L��l�l�n�G�C���G�G�A�q�M�	��s�B#�#B,�plot_fun)r9r��fill_betweenc	��tjddd��}|j�}|j�}t||�gg�||fD])}t||�|t	t|��d���+y)Nz
2010-01-01z
2011-01-01r	r��C0r")rfrnrr#r�r�)r�rrr0rrrsr s       r!�test_limits_empty_datar��sv��	�	�	�,��O�D�A����!�G�
�
�
�
�F��G�G�X��r�2�&����<�����H��a��s�1�v��d�;�<r#r�)r�r�c�v�dtjd<d}tj||f�\}}||dzz}||dzz}tj|dz|dzz||zz
�}tj�\}}|j|�d|i}tj�\}}|jd|��y)Nr~�image.interpolationr�r8r!r3)rUr�rf�indices�sqrtr%rr�)�Nr0r1r!r+r r�s       r!�test_imshowr��s���2;�J���-�.��A�
�Z�Z��A��
�F�Q����A��I�A���A��I�A�
����1��Q��T�	�!�A�#�
��A��l�l�n�G�C���I�I�a�L�
��8�D��l�l�n�G�C���I�I�c��I�r#�imshow_clipc���dtjd<d}tj||f�\}}||dzz}||dzz}tj|dz|dzz||zz
�}tj�\}}|j||dzg�}|jd}|j�d}|j�}tj||�}|j||��y)Nr~r�r�r8rr)�	clip_path)rUr�rfr�r�r%r�contour�collections�	get_paths�
get_transform�mtransforms�TransformedPathr�)	r�r0r1r!r+r r;r��clip_transforms	         r!�test_imshow_clipr�
s���2;�J���-�.�	�A�
�Z�Z��A��
�F�Q����A��I�A���A��I�A�
����1��Q��T�	�!�A�#�
��A��l�l�n�G�C��
�
�
�1�q��s�e��A�	�
�
�a��A����
�a� �I��_�_�&�N��+�+�I�~�F�I��I�I�a�9�I�%r#c���ddgddgg}tj�}tjtd��5|j|t
jdd�d	d
��ddd�y#1swYyxYw)
�4Parameters vmin, vmax should error if norm is given.r7r8r�r�LPassing a Normalize instance simultaneously with vmin/vmax is not supported.r^���r�rr�)�normr�r�N)r%rUr�r��
ValueErrorr��mcolors�	Normalize)r�r s  r!�test_imshow_norm_vminvmaxr�%sp��
�Q��!�Q���A�	����B�	���z�@�
A�F�	�	�	�!�'�+�+�C��4�1�1�	�E�F�F�F�s�*A+�+A4�polycollection_joinstylec�"�tj�\}}tjddgddgddgddgg�}tj
j
|gd��}|j|�|jdd�|jdd�y)Nr7r8�()�
linewidthsrr�)
r%rrfr;r�r��PolyCollection�add_collection�
set_xbound�
set_ybound)r+r �vertsr;s    r!�test_polycollection_joinstyler�/s���l�l�n�G�C���H�H�q�!�f�q�!�f�q�!�f�q�!�f�5�6�E����&�&��w�2�&�>�A����a���M�M�!�Q���M�M�!�Q�r#z	x, y1, y2rJr�r�r8)�
2d_x_input�2d_y1_input�2d_y2_input)�idsc��tj�\}}tjt�5|j|||�ddd�y#1swYyxYwr	)r%rr�r�r�r��r0r�r?r+r s     r!�test_fill_between_inputr�:sD���l�l�n�G�C��	���z�	"�#�
����2�r�"�#�#�#���A�Az	y, x1, x2)�
2d_y_input�2d_x1_input�2d_x2_inputc��tj�\}}tjt�5|j|||�ddd�y#1swYyxYwr	)r%rr�r�r��
fill_betweenx)r1�x1r>r+r s     r!�test_fill_betweenx_inputr�KsF���l�l�n�G�C��	���z�	"�$�
����B��#�$�$�$�r��fill_between_interpolatec	��tjddd�}tjdtjz|z�}dtjdtjz|z�z}t	j
ddd��\}\}}|j
||||d	�
�|j|||||k\ddd�
�|j|||||kdd��tjj|d�}tjj|d<|j
||||d	�
�|j|||||k\dd��|j|||||kdd��y)Nr�r8rl�333333�?rr7Tr��blackr"�white�/)�wherer�hatch�interpolater)r�rr�r�rr�)rfrnr�r�r%rr�r�r�masked_greater�masked)r0r�r?r+rrs      r!�test_fill_between_interpolater�\sN��
�	�	�#�q�$��A�	����"�%�%���	�	�B�	�R�V�V�A�b�e�e�G�A�I�
�	�B��l�l�1�a��5�O�C��#�s��H�H�Q��A�r��H�)����Q��B�b�B�h�'��!%��'����Q��B�b�B�h�%�!%��'�
���	�	�b�#�	&�B��E�E�L�L�B�q�E��H�H�Q��A�r��H�)����Q��B�b�B�h�'�!%��'����Q��B�b�B�h�%�!%��'r#�#fill_between_interpolate_decreasingc	��tjgd��}tjgd��}tjgd��}tjd��\}}|j	||d�|j	||d�|j|||||kdd	d
��|j|||||kDdd	d
��|j
d
d�|jdd�y)N)gfffff��@i�i�)g������"@r7r�)g������@gffffff@gffffff@)rBrB�rVztab:red�kr�T皙�����?�r�rr�rcrrr�� �X)rfr;r%rr�r�r�r�)r�r��profr+r s     r!�(test_fill_between_interpolate_decreasingr�ts���	���"�#�A�
�����A�
�8�8�O�$�D��l�l�6�*�G�C���G�G�A�q�)���G�G�D�!�S�����Q��4�t�a�x�%�4�s��D����Q��4�t�a�x�$�$�c��C��K�K��2���K�K��S�r#�fill_between_interpolate_nanc���tjd�}tjddtjdddddddg
�}tjddddddddtjtjg
�}t	j
�\}}|j
||d	�
�|j
||d�
�|j|||||k\dd
d��|j|||||k\dd
d��y)Nr�rQ����rxr�r��r;r
r�Tr�r�r)rfrn�asarrayr�r%rr�r�r�s     r!�!test_fill_between_interpolate_nanr�s���	�	�	�"�
�A�	���Q��B�F�F�B��2�r�2�q�"�=�	>�B�	���R��Q��B��B��B�F�F�B�F�F�C�	D�B��l�l�n�G�C���G�G�A�r�S�G���G�G�A�r�S�G���O�O�A�r�2�R�2�X�� $�C��1��O�O�A�r�2�R�2�X�� $�C��1r#z
symlog.pdfc��tjgd��}tjgd��}tj�\}}|j	||�|jd�|j
d�|jdd�y)N)rr7r8r�rBr�r)i@Bi �r�r�r�rrr�symlog�linearr�i���)rfr;r%rr�r��
set_xscaler�r�s    r!�test_symlogr�sb��
���+�,�A�
���;�<�A��l�l�n�G�C���G�G�A�q�M��M�M�(���M�M�(���K�K��H�r#zsymlog2.pdfc�&�tjddd�}tjdd�\}}t	|gd��D];\}}|j||�|j
d|��|jd	��=|d
jdd�y)
N�����2���MbP?r�r7)�4@r�r�r�r�r)�	linthreshTr�皙������r�)	rfrnr%rr�r�r
rZr�)r0r+r�r rs     r!�test_symlog2r�s���	�	�	�#�r�5�!�A��|�|�A�q�!�H�C���S�":�;��
��I�
����1�
�
�
�
�h�)�
�4�
����
����G���T�3�r#c
�j�gd�}gd�}tj||�\}}tj||�}tj|�tjt|��tj|||dd�dd�f�tj||t|dd�dd�f��y)N)�����r�r�r�r�r�)
rg�rg�r�gпrrbr���?r���?r�r�)rfrX�hypotr%�pcolorr�)r0r1r[r\r�s     r!�test_pcolorargs_5205r�s���.�A�	*�A�
�;�;�q�!��D�A�q�
����A��A��J�J�q�M��J�J�t�A�w���J�J�q�!�Q�s��s�C�R�C�x�[�!��J�J�q�!�T�!�C�R�C��"��H�+�&�'r#r�c�Z�dtjd<d}tjdd|�}tjdd|dz�}tj||�\}}tj
|�tj
|�z
}tj|�tj|�z}|dz}tj||�dz}||j�z
|j�z}tjtj|�d	tj|�zk|�}tjd
d�\}	\}
}}|
j|||dd�dd�fd	d
��|j|||dd�dd�fdddg��|j|||d��y)NFr�r�rr�r8皙�����?r�r�r7r�r�r��r8�
edgecolorsr
�w�gouraud��shading)r%r�rfr�rXrSr�r�min�ptpr�masked_wherer+�maxrr�)
r�r0r1r[r\�Qx�Qzr��Zmr+rrrs
             r!�test_pcolormeshr+�sj��',�C�L�L�"�#�
�A�
���D�#�q�!�A�
���D�#�q��s�#�A�
�;�;�q�!��D�A�q�	�����R�V�V�A�Y�	�B�	�����R�V�V�A�Y�	�B�
�s�(�B�
����A����A�	
�Q�U�U�W�������A�
��������c�B�F�F�2�J�&6�6��	:�B��<�<��1�-��C��#�s�C��N�N�2�r�1�S�b�S�#�2�#�X�;�3�3�N�?��N�N�2�r�1�S�b�S�#�2�#�X�;�1�#�s��N�D��N�N�2�r�1�i�N�0r#�pcolormesh_small�epsc�v�d}tjdd|�}tjdd|dz�}tj||�\}}tj|�tj|�z
}tj|�tj|�z}|dz}tj
||�dz}||j
�z
|j�z}tjtj|�dtj|�zk|�}tjdd�\}	\}
}}|
j|||dd	�dd	�fdd
��|j|||dd	�dd	�fddd
g��|j|||d��|	jD]}
|
j!��y)Nr�rr�r8rr�r�r7r�r�rr
r r!r")rfr�rXrSr�rr$r%rr&r+r'r%rr�rU�set_axis_off)r�r0r1r[r\r(r)r�r*r+rrrr s              r!�test_pcolormesh_smallr0�st��	�A�
���D�#�q�!�A�
���D�#�q��s�#�A�
�;�;�q�!��D�A�q�	�����R�V�V�A�Y�	�B�	�����R�V�V�A�Y�	�B�
�s�(�B�
����A����A�	
�Q�U�U�W�������A�	��������c�B�F�F�2�J�&6�6��	:�B��<�<��1�-��C��#�s�C��N�N�2�r�2�c�r�c�3�B�3�h�<�C�C�N�@��N�N�2�r�2�c�r�c�3�B�3�h�<�A�3��*�N�E��N�N�2�r�2�y�N�1��h�h���
����r#�pcolormesh_alpha�pdf)rr�c
��dtjd<d}tjtjdd|�tjdd|dz��\}}|}|tj
|�z}tj||�dz}||j�z
|j�z}tjdjd	�}|tjd	��}d
d
tj
tjd	��zz|dd�df<tj|�}tjdd�\}	\\}
}\}}
|
|||
fD]-}|j!t#j$dddgd
�d����/|
j'|||dd�dd�f|ddd��|j'||||ddd��|j'|||dd�dd�f|dd��|
j'||||dd��y)NFr�r�rr�r8r��viridis�r�r�)rr)rur�r�r�r)r�zorderr�r�r�r7)rrcr#r6r!)rr#r6)r%r�rfrXr�r�rr$r%r��	colormaps�	resampledrnr��ListedColormapr�	add_patch�mpatches�	Rectangler�)r�r[r\r(�Qyr��vir�colorsrr+rrrrr s               r!�test_pcolormesh_alphar@�s���',�C�L�L�"�#�
�A�
�;�;�
���D�#�q�!�
���D�#�q��s�#��D�A�q�
�B�	
�R�V�V�A�Y��B�
����A����A�	
�Q�U�U�W�������A�

�-�-�	�
"�
,�
,�R�
0�C�
����2��
�F���R�V�V�B�I�I�b�M�2�2�2�F�1�a�4�L��!�!�&�)�D�$'�L�L��A�$6�!�C�	!�*�3��j�s�C��3��S� ���
���X�'�'��s�A�)9�!�
�	��
�N�N�2�r�1�S�b�S�#�2�#�X�;�S��!�!��-��N�N�2�r�1�3�c�9�Q�N�O��N�N�2�r�1�S�b�S�#�2�#�X�;�T�6�!�N�L��N�N�2�r�1�4��1�N�Er#zpcolormesh_datetime_axis.pngc	���dtjd<tj�}|jddd��t	jddd�}tjtd	�D�cgc]}|t	j|�
�z��c}�}tjd	�}tjtjd�tjd��\}}||z}tjd�tj|dd
|dd
|dd
�dd
�f�tjd�tj|||�tj|t
jd	d��}tj|dd�t
jfd	d��}tjd�tj|dd
�dd
�f|dd
�dd
�f|dd
�dd
�f�tjd�tj|||�|j�D]9}|j!�D]$}	|	j#d�|	j%d��&�;ycc}w)NFr�r��\��(\�?�333333�?��hspacer=rN��r7ra��daysrP��r���r�r�����rAr�)r%r�r��subplots_adjustrrfr;r��	timedeltarnrXrWr��repeat�newaxis�get_axes�get_xticklabels�set_ha�set_rotation�
r+�base�dr0r1�z1�z2�zr r.s
          r!�test_pcolormesh_datetime_axisr\s���',�C�L�L�"�#�

�*�*�,�C����s��S��9����T�1�a�(�D�
���U�2�Y�G��$��+�+��3�3�G�H�A�
�	�	�"�
�A�
�[�[����2���	�	�"�
�
6�F�B��
�R��A��K�K����N�N�1�S�b�6�1�S�b�6�1�S�b�S�#�2�#�X�;�/��K�K����N�N�1�a���
�	�	�!�B�J�J�-��!�,�A�
�	�	�!�A�r�z�z�M�"�B�Q�/�A��K�K����N�N�1�S�b�S�#�2�#�X�;��#�2�#�s��s�(��Q�s��s�C�R�C�x�[�9��K�K����N�N�1�a����l�l�n�#���'�'�)�	#�E��L�L��!����r�"�	#�#��Hs�/ I,zpcolor_datetime_axis.pngc	��tj�}|jddd��tjddd�}t	j
t
d�D�cgc]}|tj|��z��c}�}t	jd�}t	jt	jd	�t	jd	��\}}||z}tjd
�tj|dd|dd|dd�dd�f�tjd�tj|||�t	j|tjdd
��}t	j|dd�tjfdd��}tjd�tj|dd�dd�f|dd�dd�f|dd�dd�f�tjd�tj|||�|j�D]9}|j�D]$}	|	j!d�|	j#d��&�;ycc}w)Nr�rBrCrDrFr7rarGrPrIr�rJrrKrLrMrAr�)r%r�rNrrfr;r�rOrnrXrWrrPrQrRrSrTrUrVs
          r!�test_pcolor_datetime_axisr^0s���

�*�*�,�C����s��S��9����T�1�a�(�D�
���U�2�Y�G��$��+�+��3�3�G�H�A�
�	�	�"�
�A�
�[�[����2���	�	�"�
�
6�F�B��
�R��A��K�K����J�J�q��"�v�q��"�v�q��"��c�r�c��{�+��K�K����J�J�q�!�Q��
�	�	�!�B�J�J�-��!�,�A�
�	�	�!�A�r�z�z�M�"�B�Q�/�A��K�K����J�J�q��"��c�r�c��{�A�c�r�c�3�B�3�h�K��3�B�3����8��5��K�K����J�J�q�!�Q���l�l�n�#���'�'�)�	#�E��L�L��!����r�"�	#�#��Hs� Ic	�F�d}tjdd|�}tjdd|dz�}tj||�\}}tj||�dz}t	j
�\}}t
jt�5|j|||�ddd�t
jt�5|j|||j�ddd�t
jt�5|j|||dd�dd�fd��ddd�t
jt�5|j|||dd�dd�fd��ddd�tj|d	<t
jt�5|j|||dd�dd�f�ddd�tjd
��5tjj||d	k��}ddd�t
jt�5|j|||dd�dd�f�ddd�gd
�}ddg}tj||�\}}tj |j"�}t
j$t&d��5|j|||d��ddd�y#1swY��xYw#1swY���xYw#1swY���xYw#1swY��}xYw#1swY��9xYw#1swY��xYw#1swY��xYw#1swYyxYw)Nr�rr�r8r�r�r!r"rr���invalid)�mask)igrr7r�r�z.are not monotonically increasing or decreasingr^�auto)rfr�rXrr%rr�r�r�r��T�NaNr�r�rr;�zerosr�r�r#)r�r0r1r[r\r�r�r s        r!�test_pcolorargsrgIs���
�A�
���D�#�q�!�A�
���D�#�q��s�#�A�
�;�;�q�!��D�A�q�
����A����A��L�L�N�E�A�r�	���y�	!��
�
�
�a��A���	���y�	!�!�
�
�
�a��A�C�C� �!�	���y�	!�<�
�
�
�a��A�c�r�c�3�B�3�h�K��
�;�<�	���y�	!�<�
�
�
�a��A�c�r�c�3�B�3�h�K��
�;�<�
�6�6�A�a�D�	���z�	"�)�
�
�
�a��A�c�r�c�3�B�3�h�K�(�)�	���X�	&�)��E�E�K�K���Q��K�(��)�	���z�	"�)�
�
�
�a��A�c�r�c�3�B�3�h�K�(�)�	�A�	�b�	�A�
�;�;�q�!��D�A�q�
�������A�	���k�L�
N�/�
�
�
�a��A�v�
�.�/�/�)���!�!��<�<��<�<��)�)��)�)��)�)��/�/�s`�J=�K
�
K�
K$�K1�%K>�L�L�=K�
K�K!�$K.�1K;�>L�L�L c���|j�}tjdd�}tjdd�}tjj	d�tjjdd�}|j
|||d��|j�}|dd	tj|�dzz}|dd	tj|�dzz}|j
|||d
��y)Nrr�r�r_r8rBr�r"r�r~�rrfrnrgrh�randnr��diff�rrr r0r1r�r>r?s        r!�test_pcolornearestrmjs���	�	�	�	�B�
�	�	�!�R��A�
�	�	�!�Q��A��I�I�N�N�8��
�	�	����1��A��M�M�!�Q��6�M�*�	�	�	�	�B�	
�3�B��"�'�'�!�*�q�.�	 �B�	
�3�B��"�'�'�!�*�q�.�	 �B��M�M�"�b�!�Y�M�/r#c�z�|j�}td�D�cgc]$}tjj|dz���&c}}t	j
dd�}tjjd�tjjdd�}|j|||d�	�|j�}td�D�cgc]'}tjj|d
zdz���)}}|ddt	j|�dzz}|j|||d�	�ycc}wcc}w)
Nr�irr�r_r8rBr�r"r�r�r~)rr�r�
fromtimestamprfrnrgrhrjr�rkrls        r!�test_pcolornearestunitsrpzs���	�	�	�	�B�<A�"�I�F�q��	�	�	(�	(��T��	2�F�A�
�	�	�!�Q��A��I�I�N�N�8��
�	�	����1��A��M�M�!�Q��6�M�*�	�	�	�	�B�EJ�1�X�	N��(�
�
�
)�
)�1�s�7�d�*:�
;�	N�B�	N�	
�3�B��"�'�'�!�*�q�.�	 �B��M�M�"�b�!�Y�M�/��	G��
Os�)D3�,D8c��tj�\}}tjdd�}tjdd�}tjjd�tjj
dd�}tjtd��5|j|||d��ddd�y#1swYyxYw)	NrrBr�r_zDimensions of Cr^r�r")r%rrfrnrgrhrjr�r�r�r�)r+r r0r1r�s     r!�test_pcolorflaterrorrr�s����l�l�n�G�C��
�	�	�!�Q��A�
�	�	�!�Q��A��I�I�N�N�8��
�	�	����1��A�	���y�(9�	:�/�
�
�
�a��A�v�
�.�/�/�/�s�B=�=C�snapFc���|j�}tjdd�}tjdd�}tjj	d�tjjdd�}|j
||||��|j�}|ddtj|�d	zz}|ddtj|�d	zz}|j
||||��y)
Nrr�rr_r�rB)rsr�r8ri)	rrrsr r0r1r�r>r?s	         r!�test_pcolorautoru�s���
�	�	�	�B�
�	�	�!�R��A�
�	�	�!�Q��A��I�I�N�N�8��
�	�	����1��A��M�M�!�Q���M�%�	�	�	�	�B�	
�3�B��"�'�'�!�*�q�.�	 �B�	
�3�B��"�'�'�!�*�q�.�	 �B��M�M�"�b�!�$�M�'r#�	canonicalc�X�tj�\}}|jgd��y)N�r7r8r��r%rr�r*s  r!�test_canonicalrz�s���l�l�n�G�C���G�G�I�r#zarc_angles.pngc�~�d}d}d}d}tjdd�\}}t|j�D�]�\}}|dzdz}|dz
}	|j	tj|||d�	��|j	tj||||	|�
��|j|tjtj|	��z|dz|d|tjtj|��z|dzg|tjtj|	��z|dz|d|tjtj|��z|dzg�|j||�|j||�|dz}|dz}|ddz|ddzf}|dz}���y)
Nr8r7)r�r�r��hrB�-r�)rc)�theta1�theta2rr�)r%rr�r�r:r;�Ellipse�Arcr�rfrS�deg2radr�r�r�)
r r��centrerr+r�r/r rr~s
          r!�test_arc_anglesr��s���	
�A�	�A�
�F�
�E��|�|�A�q�!�H�C���3�8�8�$����2��S��1����"���
���X�%�%�f�a��#�>�?�
���X�\�\�&�!�Q�v�f�M�N�
��������
�
�6� 2�3�3�f�Q�i�?���������
�
�6� 2�3�3�f�Q�i�?�A������
�
�6� 2�3�3�f�Q�i�?���������
�
�6� 2�3�3�f�Q�i�?�A�	B�	���U�F�E�"�
���U�F�E�"�	
�R���	�R�����)�b�.�&��)�b�.�1��
����-r#�arc_ellipsec	���d\}}d\}}d}tjtjd��}|dztj|�z}|dztj|�z}tj|�}tj
tj|�tj|�gtj|�tj|�gg�}	tj|	tj
||g��\}}||z
}||z
}tj�}
|
jdd��}|j||d	d
d
dd��tj||f|||d
dd
��}|j|�|
jdd��}|j||d	ddd��tj||f|||d
dd
��}
|j|
�y)N)gR���Q�?g�p=
ף�?)r�r����r|r�rLrc)r�r��yellowr7)rcrr r!r6r8F)�angler!rr6rM�equalr�)rcrr r6)rfr�rnrSr�r;rmr%r�r�rr;r�r:)�xcenter�ycenterr��heightr�r�r0r1�rtheta�Rr+r �e1�e2s              r!�test_arc_ellipser��s���!��G�W��M�E�6��E��J�J�r�y�y��~�&�E�
��
�R�V�V�E�]�"�A����b�f�f�U�m�#�A�
�Z�Z��
�F�
���	�����"�&�&��.��)�	����������(�*�	+�A��6�6�!�R�X�X�q�!�f�%�&�D�A�q���L�A���L�A�

�*�*�,�C�	����V��	,�B��G�G�A�q��x�8����#�
���w��(�%��!�Q�U�1�
F�B��L�L���	����W��	-�B��G�G�A�q��w�'�!�G�L�	���w��(�%��!�Q�U�1�
F�B��L�L��r#c���tj�\}}tjd�}|j	gd�gd�|��|jgd�gd�|��|j
gd�gd�|��y)Nr�rx�r�r8r7r)rr�r8)r�rr�)r%r�mmarkers�MarkerStyler�r9r$)�fixr �ms   r!�test_marker_as_markerstyler��sW���l�l�n�G�C�����S�!�A��G�G�I�y��G�+��J�J�y�)�A�J�.��K�K�	�9�Q�K�/r#�	markeveryc��tjddd�}tj|�tj|dzdz�z}t	j
�\}}|j
||dd��|j
||ddd	�
�|j
||ddd�
�|j
||d
dd�
�|j�y)Nrr�r�r�r�r��r.rX�mark all�r�r.r��
mark every 10�+�r�rP�mark every 5 starting at 10�rfr�r�r�r%rr�rGr�s    r!�test_markeveryr��s���
���A�r�3��A�
���q�	�B�G�G�A�b�D�3�J�'�'�A��l�l�n�G�C���G�G�A�q�#�Y�G�'��G�G�A�q�#��Z�G�8��G�G�A�q�#��?�G�;��G�G�A�q�#��0M�G�N��I�I�Kr#�markevery_lineg{�G�zt?)r�rc��tjddd�}tj|�tj|dzdz�z}t	j
�\}}|j
||dd��|j
||ddd	�
�|j
||ddd�
�|j
||d
dd�
�|j�y)Nrr�r�r�z-or�r�z-dr�r�z-sr�z-+r�r�r�r�s    r!�test_markevery_liner�
s���	���A�r�3��A�
���q�	�B�G�G�A�b�D�3�J�'�'�A��l�l�n�G�C���G�G�A�q�$�i�G�(��G�G�A�q�$�$�j�G�9��G�G�A�q�$�"�O�G�<��G�G�A�q�$�'�1N�G�O��I�I�Kr#�markevery_linear_scalesrc��dddgd�ddgtddd�d	d
ddd
g}d}tjjt	|�|zdz|�}d}tjddd|zz
d�|z}tj|�dz|z}t|�D]e\}}||z}||z}	tj|||	f�tjdt|�z�tj||ddd|���gy)NrQ�r�rQ�r5rr�rr�r�r~r�r�r�r��r�r����������?r�r7�)\��(�?r�r8r��markevery=%sr�rr��ls�msr�)�slicerU�gridspec�GridSpecr�rfr�r�r�r%rWr/�strr��
�cases�cols�gs�deltar0r1r/�caserErFs
          r!�test_markevery_linear_scalesr�s��
�
�
�
�A�r�7�
�3��Q�
�
�#�s�
��

&�E�
�D�	�	�	�	%�	%�c�%�j�D�&8�1�&<�d�	C�B��E�
���A�r�A��I�~�s�+�e�3�A�
���q�	�C��%��A��U�#�;���4��D�y���$�h�����B�s�C�x�L�!��	�	�.�3�t�9�,�-�����A�s�s�q�T�:�;r#�markevery_linear_scales_zoomedc�R�dddgd�ddgtddd�d	d
ddd
g}d}tjjt	|�|zdz|�}d}tjddd|zz
d�|z}tj|�dz|z}t|�D]�\}}||z}||z}	tj|||	f�tjdt|�z�tj||ddd|��tjd�tjd���y)NrQr�r�rr�r�r~r�r�r�r�r�r�r7r�r�r8r�r�r�rrr�)rg������@)rg333333�?)r�rUr�r�r�rfr�r�r�r%rWr/r�r�r�r�r�s
          r!�#test_markevery_linear_scales_zoomedr�5s��
�
�
�
�A�r�7�
�3��Q�
�
�#�s�
��

&�E�
�D�	�	�	�	%�	%�c�%�j�D�&8�1�&<�d�	C�B��E�
���A�r�A��I�~�s�+�e�3�A�
���q�	�C��%��A��U�#����4��D�y���$�h�����B�s�C�x�L�!��	�	�.�3�t�9�,�-�����A�s�s�q�T�:�����������r#�markevery_log_scalesc�R�dddgd�ddgtddd�d	d
ddd
g}d}tjjt	|�|zdz|�}d}tjddd|zz
d�|z}tj|�dz|z}t|�D]�\}}||z}||z}	tj|||	f�tjdt|�z�tjd�tjd�tj||ddd|����y)NrQr�r�rr�r�r~r�r�r�r�r�r�r7r�r�r8r�r�rr�rrr�)r�rUr�r�r�rfr�r�r�r%rWr/r��xscaler�r�r�s
          r!�test_markevery_log_scalesr�Ps��
�
�
�
�A�r�7�
�3��Q�
�
�#�s�
��

&�E�
�D�	�	�	�	%�	%�c�%�j�D�&8�1�&<�d�	C�B��E�
���A�r�A��I�~�s�+�e�3�A�
���q�	�C��%��A��U�#�;���4��D�y���$�h�����B�s�C�x�L�!��	�	�.�3�t�9�,�-��
�
�5���
�
�5������A�s�s�q�T�:�;r#�markevery_polarc���dddgd�ddgtddd�d	d
ddd
g}d}tjjt	|�|zdz|�}tjddd�}dt
jz|z}t|�D]g\}}||z}||z}tj|||fd��tjdt|�z�tj||ddd|���iy)NrQr�r�rr�r�r~r�r�r�r�r�r�r7r�r8T��polarr�r�rrr�)r�rUr�r�r�rfr�r�r�r%rWr/r�r�)	r�r�r�r!r�r/r�rErFs	         r!�test_markevery_polarr�ks���
�
�
�
�A�r�7�
�3��Q�
�
�#�s�
��

&�E�
�D�	�	�	�	%�	%�c�%�j�D�&8�1�&<�d�	C�B�
���A�s�C� �A�
����I��M�E��U�#�?���4��D�y���$�h�����B�s�C�x�L��-��	�	�.�3�t�9�,�-������3�3�1��>�?r#�markevery_linear_scales_nansc�8�dddgd�ddgtddd�d	d
ddd
g}d}tjjt	|�|zdz|�}d}tjddd|zz
d�|z}tj|�dz|z}t
jx|ddx|dd|ddt|�D]e\}}||z}||z}	tj|||	f�tjdt|�z�tj||ddd|���gy)NrQr�r�rr�r�r~r�r�r�r�r�r�r7r�r�r8r����r�Fr�r�rrr�)r�rUr�r�r�rfr�r�r�r�r%rWr/r�r�r�s
          r!�!test_markevery_linear_scales_nansr��s(��
�
�
�
�A�r�7�
�3��Q�
�
�#�s�
��

&�E�
�D�	�	�	�	%�	%�c�%�j�D�&8�1�&<�d�	C�B��E�
���A�r�A��I�~�s�+�e�3�A�
���q�	�C��%��A�"$�&�&�(�A�c�r�F�(�Q�s�t�W�q��B�x��U�#�;���4��D�y���$�h�����B�s�C�x�L�!��	�	�.�3�t�9�,�-�����A�s�s�q�T�:�;r#�marker_edgesc�h�tjddd�}tj�\}}|j	|tj
|�dddd��|j	|dztj
|�dddd��|j	|d	ztj
|�ddd
d��y)Nrr7r�zy.�>@r!)r��mew�mecr�r�r8r
)rfr�r%rr�r��r0r+r s   r!�test_marker_edgesr��s���
���A�q�"��A��l�l�n�G�C���G�G�A�r�v�v�a�y�$�4�Q�C�G�8��G�G�A�c�E�2�6�6�!�9�d�t���G�<��G�G�A�c�E�2�6�6�!�9�d�t���G�<r#zbar_tick_label_single.pngc���tj�}|jdddd��ddd�}tj�\}}tj�}|jdddd|�	�y)
Nrr7�edge�0)�align�
tick_labelr2r�r
)r�r�r�)r%rP�barr)r r�r+s   r!�test_bar_tick_label_singler��s_��

����B��F�F�1�a�v�#�F�.����D��l�l�n�G�C��	����B��F�F�3��6�c��F�=r#c�z�tj�\}}|jddgtjdg�y)Nrr7r)r%rr�rfr�r*s  r!�test_nan_bar_valuesr��s+���l�l�n�G�C���F�F�A�q�6�B�F�F�A�;�r#c�V�tj�\}}|jgg�yr	)r%rr�r*s  r!�test_bar_ticklabel_failr��s���l�l�n�G�C���F�F�2�r�Nr#zbar_tick_label_multiple.pngc�h�tj�}|jddgddgddgddgd�	�y)
Nr7�@r8r�r�r�r
rX�r�r�r�)r%rPr��r s r!�test_bar_tick_label_multipler��s;��

����B��F�F�A�s�8�a��V�C��:�3��*���r#z/bar_tick_label_multiple_old_label_alignment.pngc��dtjd<tj�}|j	ddgddgddgdd	gd�
�y)NrXzytick.alignmentr7r�r8r�r�r�r
r�)rUr�r%rPr�r�s r!�*test_bar_tick_label_multiple_old_alignmentr��sL��.6�J���)�*�	����B��F�F�A�s�8�a��V�C��:�3��*���r#c��|j�}gd�}gd�}|D�cgc]
}t|���c}}|D�cgc]
}t|���c}}|j||d��|j�}|j||d��ycc}wcc}w)N�r�g������ @g333333@rR�rr�gffffff
@g������@rX�r�)rrr��rrr �x0�y0r0r1s       r!�test_bar_decimal_centerr��s|��	�	�	�	�B�	�B�	�B�� ����� �A�� ����� �A��F�F�1�a�x�F� �	�	�	�	�B��F�F�2�r��F�"��
	!�� s
�B�B	c�(�|j�}gd�}gd�}|D�cgc]
}t|���c}}|D�cgc]
}t|���c}}|j||gd�d��|j�}|j||gd�d��ycc}wcc}w)Nr�r�)r�r�r7r7rX�r�r�)rr�barhr�s       r!�test_barh_decimal_centerr��s���	�	�	�	�B�	�B�	�B�� ����� �A�� ����� �A��G�G�A�q�)��G�:�	�	�	�	�B��G�G�B��+�8�G�<��
	!�� s
�B
�Bc���gd�}gd�}gd�}|D�cgc]
}t|���}}|j�}|j|||d��|j�}|j|||d��ycc}w)Nr�r��rug333333�?r7r8rX�r�r�)rrr�)rrr0r1�w0r/r r s        r!�test_bar_decimal_widthr��sq���A��A�	�B�� ����� �A� �	�	�	�	�B��F�F�1�a�q��F�)�	�	�	�	�B��F�F�1�a�r��F�*��
	!��A0c���gd�}gd�}gd�}|D�cgc]
}t|���}}|j�}|j|||d��|j�}|j|||d��ycc}w)Nr�r�r�rXr�)rrr�)rrr0r1�h0r/r�r s        r!�test_barh_decimal_heightr��sq���A��A�	�B�� ����� �A� �	�	�	�	�B��G�G�A�q��(�G�+�	�	�	�	�B��G�G�A�q��8�G�,��
	!r�c���tj�}|jddgddgddd��}|D],}|j�dk(sJ�|j	�d	k(r�,J�y)
Nr7r8rr�rr!�rcr�r �rrrr�r7rrr��r%rPr��
get_facecolor�
get_edgecolor�r �rects�rects   r!�test_bar_color_none_alpharsj��	����B��F�F�A�q�6�A�q�6��F�c�F�J�E��6���!�!�#�|�3�3�3��!�!�#�~�5�5�5�6r#c���tj�}|jddgddgddd��}|D],}|j�dk(sJ�|j	�d	k(r�,J�y)
Nr7r8rr�r!rr�rrrrs   r!�test_bar_edgecolor_none_alphar
sj��	����B��F�F�A�q�6�A�q�6��C�6�F�J�E��4���!�!�#�~�5�5�5��!�!�#�|�3�3�3�4r#zbarh_tick_label.pngc�h�tj�}|jddgddgddgddgd�	�y)
Nr7r�r8r�r�r�r
rX)r�r�r�)r%rPr�r�s r!�test_barh_tick_labelrs;��

����B��G�G�Q��H�q�!�f�c�3�Z�S�#�J���r#c
��tj�\}}|jtjddd�dtjd����|jtjddd�dtjd��tjd����tj�\}}|jtjddd�dtjd���	�|jtjddd�dtjd��tjd���
�tj�\}}|jtjddd�tjddd�gt
jddg�tjd���	�|jtjddd�tjddd�gt
jddg�dD�cgc]}tj|����c}�	�|jtjddd�tjd��fgd
�ycc}w)z>Smoketest that bar can handle width and height in delta units.��r7r�r���hours�r�r8)r(r�)r�)r�r)r�r)r�rPN)	r%rr�rrOr�rfr;�broken_barh�r+r r�s   r!�test_bar_timedeltars
���l�l�n�G�C���F�F�8���T�1�a�(�"��#�#�!�,��.��F�F�8���T�1�a�(�"��"�"��+��#�#�!�,��.��l�l�n�G�C���G�G�H���d�A�q�)�1��%�%�A�.��0��G�G�H���d�A�q�)�1��%�%�A�.��#�#�!�,��.��l�l�n�G�C���G�G�X�
�
�t�Q��
*�H�,=�,=�d�A�q�,I�J��H�H�a��X���%�%�A�.��0��G�G�X�
�
�t�Q��
*�H�,=�,=�d�A�q�,I�J��H�H�a��X��9?�@�A�H�&�&�Q�/�@��B��N�N�X�&�&�t�Q��2��'�'�a�0�2�3����As�Jc��tjjdd�}|jdd|j	d����j
}t
j�t
j||��y)Nr�r8z1/1/2000r7)�years)�periods�freq��	positions)	rfrgr��
date_range�
DateOffset�yearr%r��boxplot)�pdr�rs   r!�test_boxplot_dates_pandasr 8s[��
�9�9�>�>�!�Q��D��M�M�*�"#�"�-�-�a�-�*@�
�
B�BF�$�
��J�J�L��K�K���&r#c��tjjdd�}tjd�\}}|dj|gd�gd���|dj|gd�d	��|d
j|gd���|dj|dgd���|d
j|dd	��|dj|d��|dj|gd���|dj|d	��|dj|�y)Nr�r�rBr)r�r�r�r�)�	capwidths�widthsr7r�r8�r"r�rr�r#r7rQ)rfrgr�r%rr)r�r+r�s   r!�test_boxplot_capwidthsr&As���
�9�9�>�>�!�Q��D��|�|�A��H�C����F�N�N�4�?�?�N�K���F�N�N�4�?�3�N�?���F�N�N�4�?�N�3���F�N�N�4�3��N�?���F�N�N�4�3�s�N�3���F�N�N�4�3�N�'���F�N�N�4��N�0���F�N�N�4��N�$���F�N�N�4�r#c��ddlm}m}tj�}|jd�}t
jddd�g}t|�dkr:|j|dt
jd�	�z�t|�dkr�:tjd
�}tj||�\}}t|�dz
t|�dz
f}	tj|	d|	dz�}
|	|
_
	|�|j|||
�}|jj!�|�y#|�wxYw)Nr)�register_matplotlib_converters� deregister_matplotlib_converters�o��r7r7r��x)�secondsr�)�pandas.plottingr(r)r%r�r�rr��appendrOrfrnrXr�r��canvasr
)rr(r)r+r �times�y_vals�	time_axis�y_axisr��z_data�ims            r!�test_pcolor_regressionr7Rs
���
�*�*�,�C�	����	�B�
�
�
�t�Q��
*�+�E�

�e�*�q�.�
���U�2�Y��!3�!3�C�!@�@�A��e�*�q�.��Y�Y�q�\�F����E�6�2��I�v�
��[�1�_�c�%�j�1�n�-�E�
�Y�Y�u�Q�x�%��(�*�
+�F��F�L�+�&�(�
�]�]�9�f�f�
5���
�
����(�*��(�*�s�>4D:�:	Ec�j�|jgd�gd�gd�gd�d��}|j|gd��|d<|ddgjdg�j�}|j}|d}|d}tj�\}}|j||dd	�
�|j||dd�
�y)N)rrr�r7r7r7rx)r�monthrr)rr:r�daterr�rXr��orangerr7)	�	DataFrame�to_datetime�groupbyr��indexr%rr�r�)r�df�monthly�dates�forecast�baseliner+r s        r!�test_bar_pandasrFps���	���#����	�
�B�
����#;� <�=�B�v�J��&�'�"�#�+�+�V�H�5�9�9�;�G��M�M�E��w��H��w��H��l�l�n�G�C���F�F�5�(�"�H�F�5��G�G�E�8�8��G�2r#c��|jgd�gd�d�gd���}tj�\}}|j|jd|j
��y)N)r�r�r��r�r�rt)r0r�rx�r@r�r)r=r%rr�r0r��rrAr+r s    r!�test_bar_pandas_indexedrK�sH��	���L�<�@�%�
�
'�B��l�l�n�G�C���F�F�2�4�4��2�8�8�F�$r#c���|j�}|j�}ddg}ddg}ddg}td�D] }|j||||d||���"|j|||��y)	Nr7r8r�r0r�r�)r�r�)r�)rr�r�)rrrrrsr0r1�hatchesr/s        r!�test_bar_hatchesrN�s������!�G�
�
�
�
�F�	
�A��A�	
�A��A��C�j�G�
�1�X�=���
�
�1�Q�4��1��T����
�<�=��K�K��1�G�K�$r#)r0r�r.�expected_labels�container_labelr0r7�
_nolegend_�r�r
r;)r�rPr�)�A�B�C)r�r\rQ�bars)rQrQrQc���tj�\}}|j|||��}|D�cgc]}|j���}	}||	k(sJ�|j�|k(sJ�ycc}w)Nr�)r%rr�rZ)
r0r�r.rOrPr�r �
bar_containerr��
bar_labelss
          r!�test_bar_labelsrZ�sj��
�L�L�N�E�A�r��F�F�1�e�5�F�1�M�-:�;�c�#�-�-�/�;�J�;��j�(�(�(��"�"�$��7�7�7��<s�A&c�~�tj�\}}tjt�5|jddgddggd���ddd�tj�\}}tjt�5|jddgddgdg��ddd�y#1swY�\xYw#1swYyxYw)Nr0r1r7r8)r[r\r�r�r[)r%rr�r�r�r�r�s  r!�test_bar_labels_lengthr\�s����L�L�N�E�A�r�	���z�	"�:�
����S�z�A�q�6���9�:��L�L�N�E�A�r�	���z�	"�0�
����S�z�A�q�6�#���/�0�0�:�:��0�0�s�B'�B3�'B0�3B<c��|jddgd��|jddgd��fD]l}tj||�tj|j|�tj|�tj|j��n|j	dgd�i�}tj|�tj||�y)Nr7r8�float64r��Float64rFrx)�Seriesr%r�r@r=)rr0rAs   r!�test_pandas_minimal_plotra�s����i�i��A��i�i�0��i�i��A��i�i�0�2�������A��������!���������������
���u�i�(�	)�B��H�H�R�L��H�H�R��r#�hist_logc���tjddd�dz}tjd|z
d|zg�}tj�\}}|j|dd��y)Nrr7r~r�FT)rr)rfr��concatenater%r�hist)�data0r�r+r s    r!�
test_hist_logrg�sU���K�K��1�c�"�A�%�E�
�>�>�1�u�9�a�%�i�0�1�D��l�l�n�G�C���G�G�D�u�$�G�'r#c�x�|jdd�}|jdd�}tgd��D]�\}}|d|fjd�|d|fjdd|��|d|fjdd|��|d|fjd�|dd�|fD]}|jddd|�	����y)
Nr8r�)r��step�
stepfilledrrr7��histtypeT)rrl)rr�r�re)rrr�r�r/rlr s       r!�test_hist_log_2rm�s���� � ��A�&�H����q�!�$�G� �!>�?�	7���8���A���!�!�%�(���A�����A�q�8��4���A�����A�q�8��4���A���!�!�%�(��!�Q�$�-�	7�B��G�G�A�q�d�X�G�6�	7�	7r#c�t�tjd�\}}|djdgddggdd��|djd�|djgd�dd��|djd�|jj�|dj
�|dj
�k(sJ�y)Nr8rr7�
barstackedrkr�rrr7)r%rrer�r0r
r��r+r�s  r!�test_hist_log_barstackedrr�s����|�|�A��H�C����F�K�K�!��q�!�f�
�q�<�K�8���F���e����F�K�K�	�1�|�K�4���F���e���J�J�O�O���q�6�?�?���A���� 1�1�1�1r#zhist_bar_empty.pngc�R�tj�}|jgd��y)Nr�rk�r%rPrer�s r!�test_hist_bar_emptyru�s��

����B��G�G�B��G�r#c���tjjd�tjtjj	ddd��dd�jtj�}tj|dd�	�}|d
}tdt|��D]>}||dz
j�}||j�}|dd|ddkr�>J�y)Nr_r�r�rr��sizerr7r�)r{rcr8)rfrgrh�clipri�astype�float16r%rer�r��get_corners)r�r��bcr!�rleft�rrights      r!�test_hist_float16r��s����I�I�N�N�8��
�W�W�
�	�	����c���-�q�!�5�5;�V�B�J�J�5G������a�s�+�A�	
�1��B�
�1�c�"�g�
�+���1�Q�3��#�#�%���A��"�"�$���Q�x��{�f�Q�i��l�*�*�*�+r#zhist_step_empty.pngc�R�tj�}|jgd��y)Nrirkrtr�s r!�test_hist_step_emptyr��s��

����B��G�G�B��G� r#zhist_step_filled.pngc��tjjd�tjjdd�}d}ddiddiddiigdz}d	gd
zdgd
zz}t	j
dd
��\}}t
|||j�D]E\}}}|j||f|dd
�|��|j|�d|���|jd���G|dj}	td�|	D��sJ�y)Nrrrr�r�rTFr8rirrj)�nrows�ncols�rl�stackedr�r
�rN�rrc3�^K�|]%}|j�|j�k(���'y�wr	)rr)�.0r�s  r!�	<genexpr>z(test_hist_step_filled.<locals>.<genexpr>s#����G�!�q��� �A�O�O�$5�5�G�s�+-)
rfrgrhrjr%rr�r�rer3r�r'�all)
r0�n_binsr��typesr+r��kg�_typer r's
          r!�test_hist_step_filledr�s����I�I�N�N�1��
�	�	����a� �A�
�F��t�n�v�u�o���~�r�
B�1�
D�F�
�H�Q�J��~�a�'�'�E��|�|�!�1�-�H�C���V�U�C�H�H�5� �
��E�2������6�>�E�4�>�2�>�
����E�*�+�
���3��� �
�$�i���G��G�w�G�G�G�Gr#zhist_density.pngc���tjjd�tjjd�}t	j
�\}}|j
|d��y)Nr_rqT��density)rfrgrhr�r%rre�r�r+r s   r!�test_hist_densityr�sE���I�I�N�N�8��
�9�9�$�$�T�*�D��l�l�n�G�C���G�G�D�$�G�r#c���tjjd�}|jd�}gd�}t	j
||d��\}}}tj||d��\}}t||�y)Ni��r�)r�r�r�rr7r�T)r{r�)rfrg�RandomStaterjr%re�	histogramr)�rngr�r{�mpl_heightsr��
np_heightss      r!�test_hist_unequal_bins_densityr�sc��
�)�)�
�
��
&�C��	�	�#��A�"�D������t�<��K��A��L�L���t�<�M�J���K��,r#c�6�tjddd�tjddd�gtjddd�tjddd�gg}tj�\}}|j|d��|j|d��y)N��r7r8T)r�F)rr%rrer�s   r!�test_hist_datetime_datasetsr�)s���
�
�
�t�Q��
*�H�,=�,=�d�A�q�,I�J�
�
�
�t�Q��
*�H�,=�,=�d�A�q�,I�J�L�D��l�l�n�G�C���G�G�D�$�G���G�G�D�%�G� r#�bins_preprocessc��|Sr	r�rzs r!�<lambda>r�3s��t�r#c�J�tj|�jd�S)Nr8)rfrrzrzs r!r�r�4s��r�z�z�$�'7�'>�'>�|�'L�r#)rzdatetime.datetimez
np.datetime64c	��tjddd�tjddd�tjddd�tjddd�gtjddd�tjddd�tjddd�tjddd�gg}tjddd�tjddd�tjddd�g}tj�\}}|j|||�d�	�\}}}tj
j
|tjj|��|j|||�d
�	�\}}}tj
j
|tjj|��y)Ni�r7r�rr8r�r�T)r{r�F)
rr%rrerfr�rr�rCr)r�r��
date_edgesr+r r�r{s       r!� test_hist_datetime_datasets_binsr�1sw���
�
�t�Q��
*�H�,=�,=�d�A�r�,J�
�
�
�t�Q��
*�H�,=�,=�d�A�q�,I�
K�
�
�
�t�Q��
+�X�->�->�t�Q��-J�
�
�
�t�Q��
+�X�->�->�t�Q��-J�
L�M�D�
�#�#�D�!�Q�/��1B�1B�4��A�1N��#�#�D�!�Q�/�1�J��l�l�n�G�C������O�J�$?���N�J�A�t�Q��J�J���t�S�Y�Y�%7�%7�
�%C�D�����O�J�$?���O�J�A�t�Q��J�J���t�S�Y�Y�%7�%7�
�%C�Dr#zdata, expected_number_of_histsc��tj|�\}}}tj|�}|jdk(rd|k(sJ�y|j
d|k(sJ�y)Nr7r)r%rerfr�ndimr�)r��expected_number_of_hists�histsr�s    r!�test_hist_with_empty_inputr�HsV��
�(�(�4�.�K�E�1�a��J�J�u��E��z�z�Q���,�,�,�,��{�{�1�~�!9�9�9�9r#zhisttype, zorderr�rirjc���tj�j�}|jddg|��|jsJ�|jD]}|j�|k(r�J�y)Nr7r8rk)r%r�r�rer'�
get_zorder)rlr6r rs    r!�test_hist_zorderr�Vsb��


����	!�	!�	#�B��G�G�Q��F�X�G�&�
�:�:��:����,�����!�V�+�+�+�,r#c�`�ddlm}tjgd��}tjgd��}|j	dd�j�}|dj
||d��|dj
||dd�	�|dj
||�|dj
||d�
�|dj
||�|dj�|dj
||d�
�|dj�d
dd�}|j	dd�j�}|dj|tj||d�fddi|��|djtj|d|�|fddi|��|dj|tj||d�fddi|��|dj|j|d|dgd|dgfi|���|dj|j|d|dgd|dgfi|���|djdd�|djtj|d|�|fddi|��|dj|jd|dg|d|dgfi|���|dj|jd|dg|d|dgfi|���|djdd�|dj|tj||d�fddi|��|dj|j|d|dgd|dgfi|���|dj|j|d|dgd|dgfi|���|dj�|djtj|d|�|fddi|��|dj|jd|dg|d|dgfi|���|dj|jd|dg|d|dgfi|���|dj�y)Nr)r�rx�%�0rxrar)	r�r�r�r�r��@�@� @�"@r�r8�rEr7rP)rErRrQrr��miter�butt��solid_joinstyle�solid_capstyler��	drawstyle�
steps-post)�matplotlib.lines�linesrfr;r�flatten�stairs�semilogyr�r�r/�add_line�Line2Dr�r�)rr�mlinesr1r0�	test_axesr��ref_axess        r!�test_stairsr�bs5��%�
���0�1�A�
���5�6�A��!�!�!�Q�'�/�/�1�I�
�a�L����1�t��,�
�a�L����1�t���F�
�a�L����1��
�a�L����1�,��7�
�a�L����1��
�a�L����
�a�L����1�,��7�
�a�L����!(�6�B�E�����1�%�-�-�/�H��H�Q�K���Q��	�	�!�Q�r�U�+�M�|�M�u�M��H�Q�K���R�Y�Y�q��t�Q�'��L�l�L�e�L��H�Q�K���Q��	�	�!�Q�r�U�+�M�|�M�u�M��Q�K��������!��a��d�|�a��1��Y�H�%�H�I��Q�K��������"��q��u�~��1�R�5�z�K�U�K�L��Q�K����D�!��H�Q�K���R�Y�Y�q��t�Q�'��L�l�L�e�L��Q�K��������1�Q�4�y�1�Q�4��1��,�H�%�H�I��Q�K��������1�R�5�z�A�b�E�1�R�5�>�K�U�K�L��Q�K����D�!��H�Q�K���Q��	�	�!�Q�r�U�+�M�|�M�u�M��Q�K��������!��a��d�|�a��1��Y�H�%�H�I��Q�K��������"��q��u�~��1�R�5�z�K�U�K�L��Q�K�����H�Q�K���R�Y�Y�q��t�Q�'��L�l�L�e�L��Q�K��������1�Q�4�y�1�Q�4��1��,�H�%�H�I��Q�K��������1�R�5�z�A�b�E�1�R�5�>�K�U�K�L��Q�K���r#c	��gd�gd�}}d}|jdd�j�}|dj||d��|dj||d	d�
�|dj|||d��|dj|||d	d�
�|jdd�j�}|dj|t	j
||d�dd��|dj
dd�|dj|t	j
||d�dd��|djdd�|dj|t	j
||d�t	jt|�dz�|zdd��|dj
|d�|dj|t	j
||d�t	jt|�dz�|zdd��|dj|d�y)N)r7r8r�rr8)rr7r8r�rr�r�r8rT�rr7rP)rRr)rErr�)rErRrr��post)rir8)rr�r�r�rfr/r�r�r�r�r�)rrr�r{�bsr�r�s       r!�test_stairs_fillr��s����1�t�A�	�B��!�!�!�Q�'�/�/�1�I�
�a�L����4�d��+�
�a�L����4�\���E�
�a�L����4�"�4��8�
�a�L����4�"�,�!��#�����1�%�-�-�/�H��Q�K���T�2�9�9�Q��"��#6�V���J��Q�K����D�!��Q�K���d�B�I�I�a��2��$7�f���K��Q�K����D�!��Q�K���T�2�9�9�Q��"��#6��W�W�S��V�A�X�.�r�1��1��F��Q�K����T�"��Q�K���d�B�I�I�a��2��$7� �g�g�c�!�f�Q�h�/��2��A��G��Q�K����T�"r#c�j�d}|j�}|jgd��}|j|�|jgd��|jt	j
d�dz��|jgd�t	j
d�dz�|jgd��|jdt	j
d��t	j|j�dt	j
d	d��sJ�t	j|j�d	t	j
d��sJ�|jd
��|j�jd
k(sJ�|j�}|jgd�d
��}|j|�y)N)r�rrxr�rr8��edges)r7r8r7rr7r�r�)	r�r�r��set_datarfrn�allclose�get_datarE)rrr��test_axr��ref_axs      r!�test_stairs_updater��s9���D��"�"�$�G����y�!�A����T���J�J�y���J�J�R�Y�Y�q�\�!�^�J�$��J�J�y�"�)�)�A�,�q�.�)��J�J�y���J�J�t�R�Y�Y�q�\�"�
�;�;�q�z�z�|�A���	�	�!�Q��8�8�8�
�;�;�q�z�z�|�A���	�	�!��5�5�5��J�J��J���:�:�<� � �B�&�&�&��
 �
 �
"�F��
�
�i�"�
�-�A�
�O�O�D�r#c���|j�}|jgd�d��|j�}ddd�}|jtd�gd�fdd	i|��|j	d
d�y)N)r�rr7r�r�r�r�r)r�rr7r7r�r�r)r�r�r�r�r�)rrr�r�r�s     r!�test_stairs_baseline_0r��sh���"�"�$�G��N�N�9�t�N�,��
 �
 �
"�F� '�6�B�E��F�K�K��a��,�H�,�H�%�H�
�O�O�A�t�r#c���tj�j�}|jgdg�|j	�dk(sJ�|j�dk(sJ�y)N�*)�'r}r@)r%r�r�r�r�r�r�s r!�test_stairs_emptyr��sN��	����	!�	!�	#�B��I�I�b�2�$��
�;�;�=�H�$�$�$�
�;�;�=�M�)�)�)r#c��tjtd��5tjddgdt
jdg�ddd�y#1swYyxYw)N�Nan values in "edges"r^r7r8r)r�r�r�r%r�rfr�r�r#r!�test_stairs_invalid_nanr��sB��	���z�)@�	A�+��
�
�A�q�6�A�r�v�v�q�>�*�+�+�+�s�*A�Ac��tjtd��5tjddgddg�ddd�y#1swYyxYw)N�
Size mismatchr^r7r8r)r�r�r�r%r�r�r#r!�test_stairs_invalid_mismatchr��s;��	���z��	9�#��
�
�A�q�6�A�q�6�"�#�#�#�s�A�A	c���tjddggd��}tjtd��5|jdtjdg��ddd�y#1swYyxYw)Nr7r8r3r�r^r�)r%r�r�r�r�r�rfr��r�s r!�test_stairs_invalid_updater��sR���
�
�A�q�6�9�%�A�	���z�)@�	A�)�	�
�
�!�R�V�V�Q��
�(�)�)�)�s�$A#�#A,c���tjddggd��}tjtd��5|jt
jd���ddd�y#1swYyxYw)Nr7r8r3r�r^r�r�)r%r�r�r�r�r�rfrnr�s r!�test_stairs_invalid_update2r��sO���
�
�A�q�6�9�%�A�	���z��	9�'�	�
�
����1��
�&�'�'�'�s�&A%�%A.ztest_stairs_options.pngc�v�tjgd��tjgd��jt�}}|j	�}tj
|d<t
j�\}}|j|dz|ddd��|j||dzdz
d	dd
d��|j||d
ddd��|j|dz|dzdz
dddd
d��|j|ddd�dzdz|dz
d	dddd��|j|ddd�dzdz|ddddd��|j|ddd�dzdz|dztjdd t|��d!dd"d�#�|j|ddddd�dzd$z|dddzd%ddd&d'd(�)�|jd*�+�y),N�r7r8r�rr�r�r7r�r�TrS)r�rr.rrPrT)r�rrRr.r<rr8rU)r�r�r8r.r��D)r�r8rErRr.r��
�E)r�r�r8rEr.r�rr��F)rEr�r�r8r.r�r�r��G)rEr�r�r.rrr�r��//�H)r�r�r8rEr�r.rr>)rfr;rzr��copyr�r%rr�r�r�rG)r0r1�ynr+r s     r!�test_stairs_optionsr��s���
�8�8�O�$�b�h�h�|�&<�&C�&C�E�&J�q�A�	
����B��F�F�B�q�E��l�l�n�G�C���I�I�a��c�1�G�$�c�I�:��I�I�a��1��Q��e�$�&�c��3��I�I�b�!�8���#�I�>��I�I�b��d�A�a�C��E�d�q�3�&�c��3��I�I�a��"��g�a�i��l�A�a�C�u��!�d�����I�I�a��"��g�a�i��l�A����!�3��8��I�I�b��2��h�q�j��m�Q�q�S�2�;�;�r�2�s�1�v�+F��t�3�T��;��I�I�a���f�T�r�T�l�1�n�R���3�B����7�t����S��2��I�I�!�I�r#ztest_stairs_datetime.pngc	� �tjd��\}}|jtjd�tjtj
d�tj
d���tjd��y)NT)�constrained_layout�$z
2001-12-27z
2002-02-02r�)�rotation)r%rr�rfrnr8�xticks)�fr s  r!�test_stairs_datetimer�	s[���L�L�D�1�E�A�r��I�I�b�i�i��m��i�i��
�
�l�3��
�
�l�3�5�6��J�J��r#c��|j�}|jgd�dd��|j�}|jgd�d��}|jd�y)NrxrT)r�rr�)r�r��	set_color)rrr�r��sts     r!�test_stairs_edge_handlingr	sR���"�"�$�G��N�N�9�E��N�5��
 �
 �
"�F�	���y�t��	,�B��L�L��r#c���tjddd�}tjddd�}tj|�tj|dd�tjf�z}|||fS)Nr�r��r,)rfr�rSr�rQ)r0r1r[s   r!�contour_datr	sY��
���B��3��A�
���B��3��A�
���q�	�B�F�F�1�Q��
�
�]�+�,�,�A��a��7�Nr#�contour_hatchingc
��t�\}}}tj�\}}|j|||dgd�tj
ddd��y)Nr7)r��\r�r�grayr�r�)rMr�extendrc)rr%r�contourfr�r7)r0r1r[r+r s     r!�test_contour_hatchingr	sK���m�G�A�q�!��l�l�n�G�C���K�K��1�a��$:��]�]�6�*��S��*r#�contour_colorbarc
���t�\}}}tj�\}}|j|||t	j
ddd�tjdddd��}|j|||t	j
d	d
d�dgdd
��}|j|||t	j
ddd�dgd
��}|j||��}|j|�|j|d��y)Ng�������g7�A`��?r��RdBug333333�rtr�)�levelsrr�r�r
g�������g^�I+�r1r�r8)rr?�
linestylesr�r�r;)rr?r�r�F)�erase)rr%rrrfrnr�r7r�rH�	add_lines)	r0r1r[r+r �cs�cs1�cs2rKs	         r!�test_contour_colorbarr'	s����m�G�A�q�!��l�l�n�G�C��	���Q��1�R�Y�Y�t�U�C�%@��-�-��/���"�	
�
$�B�

�*�*�Q��1�R�Y�Y�t�V�S�%A� �E� '� !��#�C�
�*�*�Q��1�R�Y�Y�s�C��%=� �E� !��#�C��<�<��r�<�"�D��N�N�3���N�N�3�e�N�$r#�hist2dc��dtjd<tjj	d�tjjd�dzdz}tjjd�dz
}tj�\}}|j||dd�	�||d
�}tj�\}}|jddd|d�
�y)NFr�rr�r8r�r�T�r{�
rasterizedrr0r1)r{r�r)r%r�rfrgrhrjrr)r0r1r+r r�s     r!�test_hist2dr=	s���',�C�L�L�"�#��I�I�N�N�1��
�	�	�����Q��q� �A�
�	�	�����Q��A��l�l�n�G�C���I�I�a����I�-����D��l�l�n�G�C���I�I�c�3�R�d�t�I�<r#�hist2d_transposec�6�dtjd<tjj	d�tj
dgdz�}tjj
d�dz
}tj�\}}|j||dd�	�y)
NFr�rr�r�r8r�Tr)	r%r�rfrgrhr;rjrrr�s    r!�test_hist2d_transposerO	ss��',�C�L�L�"�#��I�I�N�N�1��	���!��S���A�
�	�	�����Q��A��l�l�n�G�C���I�I�a����I�-r#c���tjjd�\}}tj�j	�}|tfD]}|j||d���y)NrTr�)rfrgr%r�rr)r0r1r �objs    r!�test_hist2d_densityr"]	sS��
�9�9���H�%�D�A�q�	����	�	�	 �B��C�y�'���
�
�1�a��
�&�'r#c"�(�eZdZedgdd��d��Zedgd��d��Zed	gdd
g��d��Zed
g�
�d��Zd�Z	e
jjdddide
j�iddiddig�d��Zd�Zej$j'd�d��Zd�Zd�Zed
g�
�d��Zed
g�
�d��Zd�Zed
g�
�d ��Zed
g�
�d!��Zd"d#gd$fd%d&d'gd(�d)fd*d+gd$fd+gd,zd$fd-gd.zd)fd-gd,zd)fd-gd/zd0fgd1�d)fgd2�d)fgd3�d$fgd4�gd)fgd4�gd.zd0fgd4�gd,zd)fgd4�gd/zd0fgd5�gd)fgd5�gd.zd0fgd5�gd,zd)fgd5�gd/zd0fgd5�gd.zgd4�gzd)fgd5�d6d7gd0fgd5�d6d7d8gd)fgd5�d6d7d8gd9�gd0fgd5�d6d+gd$fgd5�d6d7d+gd$fgd5�d6d7d8d+gd$fgZe
jjd:e�d;��Zej$j'd�ed
g�
�d<���Zd=�Zy))>�TestScatterr9r�Tr�c�j�tjgd��tjgd��gd�gd�gd�d�}tj�\}}|j	|ddz
|d	dz
|d
|d��|j	|ddz|d	dz|d
|d��|j	dd	d
d|��y)N�r�rr8r�r8r�r8r��r!r1r
�lime�rr���)�0.5�0.6�0.7z0.8)r0r1r;r��c2r0r�r1r;r��r;r�r0)r;r�r�)rfr;r%rr9)rer�r+r s    r!�test_scatter_plotzTestScatter.test_scatter_plote	s����X�X�l�+�"�(�(�<�2H�,�3C�2�4���,�,�.���R�
�
�
�4��9�r�>�4��9�r�>�T�#�Y�$�s�)�
�L�
�
�
�4��9�r�>�4��9�r�>�T�$�Z�4��9�
�M�
�
�
�3��s�c��
�5r#zscatter_marker.pngr�c�F�tjd��\}\}}}|jgd�gd�gd�gd�gd�d�	�|jgd�gd�gd�gd�gd�tjd
d���	�d
\}}||zt
jz}tjddt
jzd�}tjtj|�|z|ztj|�|z|zg�}	|jgd�gd�gd�gd�gd�|	�	�y)Nr��r�r&r')�r7rrr1r
r))rrr�r�)r�r!�gr
r�)r;r�rr{r�r=��	fillstyler�rr8ra)r%rr9r�r�rfr�r��column_stackrSr�)
rer+r[rr�rx�ry�arear�r�s
          r!�test_scatter_markerzTestScatter.test_scatter_markerp	s��"�|�|�!�4���_�c�3�����L�,�3�&�3��		�	 �
	���L�,�3�&�3�#�/�/��u�E�		�	G����B��B�w���������A�q�2�5�5�y�"�-�����������!3�d�!:�!#������!3�d�!:�!<�=�����L�,�3�&�3� �		�	"r#�
scatter_2Dr)r�rc���tjd�}tjd�}tj||�\}}||z}tj�\}}|j|||dd��y)Nr�r8r~�face)r;r�r)rfrnrXr%rr9)rer0r1r[r+r s      r!�test_scatter_2DzTestScatter.test_scatter_2D�	s^���I�I�a�L���I�I�a�L���{�{�1�a� ���1�
��E���,�,�.���R�
�
�
�1�a�1���
�7r#rc���tjgd��}tjgd��}tj|D�cgc]
}t|���c}�}tj|D�cgc]
}t|���c}�}gd�}gd�}	|j�}
|
j	||||	��|j�}
|
j	||||	��ycc}wcc}w)Nr�r�r(r*r1)rfr;rrr9)rerrr�r�r/r0r1r;r�r s           r!�test_scatter_decimalz TestScatter.test_scatter_decimal�	s���
�X�X�*�
+��
�X�X�*�
+���H�H�"�-�Q�g�a�j�-�.���H�H�"�-�Q�g�a�j�-�.��#����
�
�
�
 ��
�
�
�1�a�1��
�"�
�
�
�
��
�
�
�2�r�Q�!�
�$��.��-s�C�.Cc�4�tjt�5tjddgddgddg��ddd�tjt�5tjgd�gd�gd���ddd�y#1swY�JxYw#1swYyxYw)Nr7r8r�r�r"rx)r�r�r�r%r9�res r!�test_scatter_colorzTestScatter.test_scatter_color�	su��
�]�]�:�
&�	:��K�K��A���A��s�C�j�9�	:�
�]�]�:�
&�	?��K�K�	�9�I�>�	?�	?�	:�	:��	?�	?�s�B�B�B�Br�rr	r�r�rr�c��d}tjt|��5tjggfi|��ddd�tjt|��5tjddgddgfdgi|��ddd�tjggfdgi|��tjddgddgfdddgi|��y#1swY��xYw#1swY�NxYw)	Nz"No data for colormapping provided r^r7r8r�rr;r�)r�r��Warningr%r9)rer��
warn_matchs   r!�test_scatter_color_warningz&TestScatter.test_scatter_color_warning�	s���:�
��\�\�'��
4�	*��K�K��B�)�&�)�	*�
�\�\�'��
4�	8��K�K��A���A��7�"�7��7�	8�	���B��+�b�+�F�+����Q��F�Q��F�7�q�!�f�7��7�
	*�	*��	8�	8�s�B8�C�8C�C
c	�.�tjgd�gd�gd�tjdd��gd���}|j	�j
d	k(sJ�t
|j�gd
�gd�gd�g�t
|j�gd��y)
Nr3�r7r�r8�z0.1z0.3r-r�rr7�rr���������?�r;r{r�)rr�r�r�r�r7�r�r�r�r7�r�r�r�r7)	r%r9r�r��get_facecolorsr�r�get_edgecolors�get_linewidths�re�colls  r!�test_scatter_unfilledz!TestScatter.test_scatter_unfilled�	s����{�{�9�i�3H�"*�"6�"6�s�f�"M�&5�7���"�"�$�*�*�f�4�4�4��4�.�.�0�3E�3E�3E�3G�	H�	�4�.�.�0�/�Br#r�c��tjgd�gd�gd�dgd���}t|j�|j	��t|j	�gd�gd�gd	�g�t|j�gd��y)
Nr3rLrMr0rNrPrQrRrS)r%r9rrTrUrVrWs  r!�test_scatter_unfillablez#TestScatter.test_scatter_unfillable�	ss���{�{�9�i�3H�"%�&5�7��	�4�.�.�0�$�2E�2E�2G�H��4�.�.�0�3E�3E�3E�3G�	H�	�4�.�.�0�/�Br#c���tjd�}tjtd��5tj|||dd�ddd�tjtd��5tj|dd|dd|�ddd�tjtd��5tj||d�ddd�y#1swY��xYw#1swY�QxYw#1swYyxYw)Nrzsame size as x and yr^r7zfloat array-liker�)rfrnr�r�r�r%r9)rer0s  r!�test_scatter_size_arg_sizez&TestScatter.test_scatter_size_arg_size�	s����I�I�a�L��
�]�]�:�-C�
D�	%��K�K��1�a���e�$�	%�
�]�]�:�-C�
D�	)��K�K��!�"��q���u�a�(�	)�
�]�]�:�-?�
@�	%��K�K��1�e�$�	%�	%�		%�	%��	)�	)��	%�	%�s#�C�/C�0C)�C�C&�)C2c��tjgd�dtjtjgd��}t	j
|j
�d�sJ�tjgd�dtjtjdgd��}t	j
|j
�d�sJ�y)Nrxr7r5�r r��r7rrr7)r%r9rfr�r��
same_colorrrWs  r!�test_scatter_edgecolor_RGBz&TestScatter.test_scatter_edgecolor_RGB�	s����{�{�9�q�"�&�&�"�&�&�&9�&/�1���!�!�$�"4�"4�"6�	�B�B�B��{�{�<�!�R�V�V�R�V�V�Q�)?�&2�4���!�!�$�"4�"4�"6��E�E�Er#c��|j�}tjdjd�}|j	dd�|jt
d�t
d�dtjdtjggd�|d�	�|j�}tjdjd�}|jd
dgd
dgddgddg|��|jddgddgddgd�
�y)Nr4r5r�r7rr8r�T�r;r�r�
plotnonfiniterr��r;r�r)r�r��	rr�r7r8�set_badr9r�rfr��rerrr rs     r!�test_scatter_invalid_colorz&TestScatter.test_scatter_invalid_color�	s���
�
�
�
 ���}�}�Y�'�1�1�"�5�����S�!��	�
�
�5��8�U�1�X������B�F�F�+�|��D�	�	2��
�
�
���}�}�Y�'�1�1�"�5��
�
�
�A�q�6�A�q�6�a��V��1�v�D�
�A�
�
�
�A�q�6�A�q�6�a��V�3�
�7r#c�~�|j�}tjdjd�}|j	dd�|jt
d�t
d�dtjdtjggd�|d�	�|j�}|jd
dgd
dgddgddg|��y)
Nr4r5r�r7rr8r�Frdrr�rfrgris     r!�test_scatter_no_invalid_colorz)TestScatter.test_scatter_no_invalid_color�	s����
�
�
 ���}�}�Y�'�1�1�"�5�����S�!��
�
�
�5��8�U�1�X������B�F�F�+�|��E�	�	3��
�
�
��
�
�
�A�q�6�A�q�6�a��V��1�v�D�
�Ar#c
���gd�}tj�}tjtd��5|j|||t
jdd�dd��d	d	d	�y	#1swYy	xYw)
r�rxr�r^r�r�rr�)r;r�r�r�N)r%rUr�r�r�r9r�r�)rer0r s   r!�test_scatter_norm_vminvmaxz&TestScatter.test_scatter_norm_vminvmax�	si����
�X�X�Z��
�]�]�:�"D�E�	'�
�J�J�q�!�q�w�'8�'8��b�'A��A�
�
'�	'�	'�	'�s�,A)�)A2c��|j�}|jddd��|j�}|jdgdgdg��y)Nr7r)rr9)rerrr s    r!�test_scatter_single_pointz%TestScatter.test_scatter_single_point
sH��
�
�
�
 ��
�
�
�1�a�1�
��
�
�
�
��
�
�
�A�3����s�
�#r#c�>�tjd�}|j�}|j||j	dd�|j	dd���|j�}|j|j	dd�||j	dd���y)Nr�r8r�r)rfrnrr9r�)rerrr0r s     r!�test_scatter_different_shapesz)TestScatter.test_scatter_different_shapes
sw���I�I�b�M��
�
�
�
 ��
�
�
�1�a�i�i��1�o����1�a��
�9�
�
�
�
��
�
�
�1�9�9�Q��?�A����1�a��
�9r#)r-N�rgby�
conversion)rN)rN)NN)r!r6r
rN)�jaunertrurr�r�r�r�)r-z0.4r.r/)r-rr.�C5)r-r�r.rvr5�r7rrr�rz0.0rv�rr7rzc_case, re_keyc�<�d�}d}ddd�}|�/tjjj|di||��yt	j
t||��5tjjj|di||��ddd�y#1swYyxYw)	Nc��y�Nr�r�r�r#r!�get_next_colorz2TestScatter.test_scatter_c.<locals>.get_next_colorG
s��r#rz!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r�rtr�)r;rr��xsize�get_next_color_funcr^)r�rUr
�_parse_scatter_color_argsr�r�r�)re�c_case�re_keyr|r}�REGEXPs      r!�test_scatter_czTestScatter.test_scatter_cE
s���	���9�9���
�>��H�H�M�M�3�3��W�R�u�$2�
4�
4����z����@�
8����
�
�7�7����5�(6�8�8�
8�
8�
8�s�/B�Bc���gd�g}gd�g}|j�}|jtjd�t	d�|��|jtjd�dzt	d�|��|j�}|jtjd�t	d�|��|jtjd�dzt	d�|��y)N)r7r�皙�����?)r7r�r�r�r�r"rr8r)rr9rfr�r�)rerr�rgb�rgbarsrrs       r!�test_scatter_single_color_cz'TestScatter.test_scatter_single_color_c[
s������"�#���!�!�#�����r�w�w�q�z�5��8�3��7����r�w�w�q�z�!�|�U�1�X�T��:��#�#�%���������
�E�!�H���4��������
�1��e�A�h�$��7r#c���tjd�}tj�\}}t	d�D]K}|j|tjd|�d|��dd|dz��}|j�|dzk(r�KJ�|j|tjdd�dddgt	dd��d���}t|j�gt	dd��tjd	��y)
Nr�r�rUr0r�r7)r;r{r�r��C3�lines.linewidth)rfrnr%rr�r9rbrVrr�r�)rer0r+r r/�pcs      r!�test_scatter_linewidthsz#TestScatter.test_scatter_linewidthsk
s����I�I�a�L���,�,�.���R��q��	0�A����A�r�w�w�q�!�}�!�A�3���s�'(�1�u��.�B��$�$�&�!�a�%�/�/�/�	0�
�Z�Z��2�7�7�1�a�=�D���#7�U�1�a�[�#7�$�#7��9���2�,�,�.�J�U�1�a�[�J�#�,�,�7H�*I�J�	Lr#) rgrhrirr2r=rArrCrFr��mark�parametrizer�r�rJrYr�r��contextr[r]rbrjrlrnrprr�params_test_scatter_cr�r�r�r�r#r!r$r$d	sP���y�k��d�C�6�D�6��+�,�$�?�"�@�"�0�|�n�$�E�7�K�8�L�8��U�G�,�%�-�%�?��[�[���X�%+�V�$4�%+�->�W�->�->�-@�$A�%+�Q�K�%+�Q�K�	!"�#�
8�#�
8�C�	�Y�Y���y�!�C�"�C�%�F��U�G�,�
8�-�
8��U�G�,�	B�-�	B�'��U�G�,�$�-�$��U�G�,�:�-�:�	�
��<� ����	 �$�'��
��L�!�
��1��l�#�

��q��$��

��q��$��

��q��'��	%�t�,�	$�d�+�	"�L�1�
��d��
��Q��� �
��Q����
��Q��� �
�	�4� �
�	�!�	�W�%�
�	�!�	�T�"�
�	�!�	�W�%�
�	�!�	�y�k�	)�4�0�
�%��	'��1�
�%���	-�t�4�
�%���i�	8�'�B�
�%��	)�<�8�
�%���	0�,�?�
�%���g�	6��E�Q)��V�[�[���-�/D�E�8�F�8�*	�Y�Y���y�!��U�G�,�8�-�"�8�Lr#r$)rc��|||�||fSi|fSr	r�)r;r}rr�s    r!�_paramsr�z
s ��
�z�V�%7�6��G�G�R��G�Gr#�_resultz	c, colorszparams, expected_resultr
r4)r;r?r!rr`r"r6)rr�rr7c��d�}tjjj|d|i�\}}}||jk(sJ�t||j�y)Nc��yr{r�r�r#r!r|z5test_parse_scatter_color_args.<locals>.get_next_color�
���r#r~)r�rUr
rr;rr?)�params�expected_resultr|r;r?�_edgecolorss      r!�test_parse_scatter_color_argsr�
sW���!�X�X�]�]�D�D�	�5�%3�5��A�v�{���!�!�!�!�!��F�O�2�2�3r#zkwargs, expected_edgecolorsr_r@r)r r)r;r r)r�r c���d�}|jdd�}|jdd�}tjjj	|||d|��\}}}||k(sJ�y)Nc��yr{r�r�r#r!r|z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_color�
r�r#r;rr8)r}r~)�popr�rUr
r)r��expected_edgecolorsr|r;rr��result_edgecolorss       r!�(test_parse_scatter_color_args_edgecolorsr��
sm���	�
�
�3���A����L�$�/�J����
�
�/�/�
�z�6���	0�	P��A�q�
�� 3�3�3�3r#c��d�}tjtd��5tjgd�gd�g�}t
jjj|did|��ddd�y#1swYyxYw)Nc��yr{r�r�r#r!r|z;test_parse_scatter_color_args_error.<locals>.get_next_color�
r�r#z&RGBA values should be within 0-1 ranger^)r�r�ru)r�r�gffffff�?r8)r�r}r~)	r�r�r�rfr;r�rUr
r)r|r;s  r!�#test_parse_scatter_color_args_errorr��
sn���
���z�E�
G�M��H�H�o��7�8�����
�
�/�/�
�t�B�a�^�	0�	M�M�M�M�s�A
A2�2A;c��Gd�d�}|�}|�}tj|_tjgd�|��}t|�tk(sJ�tj�tjd|��}t|�tjjjt�k(sJ�tj�y)Nc��eZdZd�Zd�Zy)�#test_as_mpl_axes_api.<locals>.Polarc��d|_y)Nr)�theta_offsetrEs r!�__init__z,test_as_mpl_axes_api.<locals>.Polar.__init__�
s
�� !�D�r#c�*�td|jifS)Nr�)rr�rEs r!�_as_mpl_axesz0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axes�
s���~�t�/@�/@�A�A�Ar#N)rgrhrir�r�r�r#r!�Polarr��
s
��	"�	Br#r�r4rT�y)rfr�r�r%rU�typerrYrWr��	_subplots�subplot_class_factory)r��prj�prj2r s    r!�test_as_mpl_axes_apir��
s���B�B��'�C��7�D����D��

���,�3�	/�B���8�y� � � ��I�I�K�

���S�S�	)�B���8�s�x�x�)�)�?�?�	�J�J�J�J��I�I�Kr#c�>�tj�\}}tj�\}}tj|�|tj�usJ�|tj�usJ�tj
|�tj
|�yr	)r%r�scarP�gcfrY)�fig1r�fig2rs    r!�test_pyplot_axesr��
si������I�D�#�����I�D�#��G�G�C�L��#�'�'�)�����3�7�7�9�����I�I�d�O��I�I�d�Or#c
�&�tj�\}}|jtjtj
dd���|j
dd��|j�|jdd��|j|jfD��cgc]H}|j�D�cgc],}|j�|jj�f��.c}��Jc}}\}}|gd�k(sJ�|gd�k(sJ�ycc}wcc}}w)	Nr�r�r�@)rWr�))r�z$\mathdefault{9^{0}}$)r�z$\mathdefault{9^{1}}$)g@T@z$\mathdefault{9^{2}}$�r�r��r�r��r�r��r�r�)r�r�)r�r�)r�r�)g2@r�)g;@r�)gB@r�)g�F@r�)gK@r�)g�O@r�)�R@r�))gF]t�E�?z$\mathdefault{5.5^{-1}}$)r�z$\mathdefault{5.5^{0}}$)r�z$\mathdefault{5.5^{1}}$)gF]t�E�?r�)gt�E]t�?r�)gF]t�E�?r�)g]t�E�?r�r�r�r�r�)r%rr�rfrr�r�r�r
rYr\�
_update_ticks�get_loc�label1�get_text)r+r r�r�r��ytickss      r!�test_log_scalesr��
s����l�l�n�G�C���G�G�B�F�F�2�;�;�s�C�(�)�*��M�M�%�c�M�"��O�O���M�M�%�c�M�"��X�X�r�x�x�(���6:�5G�5G�5I�J��!�)�)�+�q�x�x�(�(�*�	+�J��N�F�F������&������-	K��s�!D
�81D�)D
�D
c��tj�\}}|jdd��|jj	tjd��|j�|j�cxk(rdk(sJ�J�y)Nr)r�r�r7�r7r�)	r%rr�rYr�r��MultipleLocatorr�r�r�s  r!�test_log_scales_no_datar�sc���L�L�N�E�A�r��F�F�%��F�&��H�H���w�6�6�q�9�:�
�;�;�=�B�K�K�M�4�W�4�4�4�4�4r#c�~�tj�\}}|jd�tjt
d��5|j
dd�ddd�|jd�tjt
d��5|jdd�ddd�y#1swY�QxYw#1swYyxYw)NrzAttempt to set non-positiver^r�r�)	r%rr
r�r�r#r�r�r�r*s  r!�test_log_scales_invalidr�s����l�l�n�G�C���M�M�%��	���k�)F�	G��
���B�����M�M�%��	���k�)F�	G��
���B����������s�B'�B3�'B0�3B<�stackplot_test_imagec	���tj�}tjddd�}d|z}d|zdz}d|zdz}|j	ddd�}|j||||�|j
d�|jd	�||||d
�}tj�\}}|jddd
d|gd���|j
d�|jd	�y)Nrr�r�r�r7r�r8�rr�)rr�)r0r�r?�y3r0r�r?r�)r��C1�C2)r�r?)	r%r�rfr�r��	stackplotr�r�r)r+r0r�r?r�r r�s       r!�test_stackplotr� s���

�*�*�,�C�
���A�r�2��A�	�q��B�	�q��1��B�	�q��1��B�	����A�q�	!�B��L�L��B��B���K�K����K�K����"�B�b�1�D��l�l�n�G�C���L�L��d�D�$�T�:L�L�M��K�K����K�K��r#�stackplot_test_baselinec���tjjd�d�}|dd�}d|ddd�f<tjdd�\}}|djt
d�|jd�	�|d
jt
d�|jd�	�|djt
d�|jd
�	�|djt
d�|jd�	�y)Nrc���tj||f�}t|�D]�}td�D]�}ddtjj�zz}dtjj�zdz
}ddtjj�zz}|dd�|fxx|tjtj
|�|z|z
|zdz�zz
cc<����|S)Nr�r7r�r8r�r�)rfrfr�rg�exprn)r�r�r�r/�jr0r1r[s        r!�layersz'test_stackplot_baseline.<locals>.layers9s����H�H�a��V����q��	J�A��1�X�
J����b�i�i�.�.�0�0�1����	�	�(�(�*�*�R�/���"�r�y�y�/�/�1�1�2���!�Q�$��1�r�v�v����1���)9�A�)=��(B�q�'H�&H�I�I�I��	
J�	J��r#r�r�rr8r��zeror�r��sym�r7r�wigglerI�weighted_wiggle)rfrgrhr%rr�r�rd)r�rXr+r�s    r!�test_stackplot_baseliner�5s����I�I�N�N�1���	�q�#��A��A�b�!�e�H��|�|�A�q�!�H�C����I����c�
�A�C�C�&��9���I����c�
�A�C�C�%��8���I����c�
�A�C�C�(��;���I����c�
�A�C�C�2C��Dr#c��|Sr	r�)r�s r!r�r�Os��1�r#c��tjjd�tjj
tjj
ddd��fi|��}tj�\}}|jdd�r|jd�n|jd�|jd	d
�s$tjdtjd<|j||�fi|��y)
N�rr�)r�r)�mean�sigmarx�vertTr�patch_artistFr��boxplot.boxprops.linewidth)rfrgrhr��cbook�
boxplot_stats�	lognormalr%r�getr�r
r��bxp)�stats_kwargs�transform_stats�
bxp_kwargs�logstatsr+r s      r!�_bxp_test_helperr�Ns����I�I�N�N�3���y�y�&�&�
�	�	����R�g��>�P�BN�P�H��l�l�n�G�C���~�~�f�d�#�
�
�
�e��
�
�
�e���>�>�.�%�0��L�L�*�+�	���1�2�
�B�F�F�?�8�$�3�
�3r#zbxp_baseline.pngr�)rr�c��t�yr	�r�r�r#r!�test_bxp_baseliner�`s
���r#zbxp_rangewhis.pngc�4�ttddg����y)Nrr���whis�r��r�rYr�r#r!�test_bxp_rangewhisr�gs���$�Q��H�"5�6r#zbxp_percentilewhis.pngc�4�ttddg����y)Nr��_r�r�r�r�r#r!�test_bxp_percentilewhisr�ns���$�Q��G�"4�5r#zbxp_with_xlabels.pngc�"�d�}t|��y)Nc�J�t|td��D]
\}}||d<�|S�N�ABCDr.�r�r���statsr�r.s   r!rz(test_bxp_with_xlabels.<locals>.transformy�.���E�4��<�0�	�H�A�u��A�g�J�	��r#)r�r��rs r!�test_bxp_with_xlabelsr	us���
�Y�/r#zbxp_horizontal.pngr�)r�rr�rc�0�ttd����y)NF�r��r�r�r�r#r!�test_bxp_horizontalr
�s����%� 0�1r#zbxp_with_ylabels.png)rr�rc�8�d�}t|td����y)Nc�J�t|td��D]
\}}||d<�|Srrrs   r!rz(test_bxp_with_ylabels.<locals>.transform�rr#Fr�r�r�r�rs r!�test_bxp_with_ylabelsr�s��
�
�Y�4�U�;K�Lr#zbxp_patchartist.png)r�rr�c�0�ttd����y)NT)r�rr�r�r#r!�test_bxp_patchartistr�s��
��$� 7�8r#zbxp_custompatchartist.pngr�c
�J�ttdtddd������y)NTr�r��:)rr r�)r��boxpropsrr�r�r#r!�test_bxp_custompatchartistr�s$��
�����G��D�!F�Gr#zbxp_customoutlier.pngc	�H�tttddd������y)NrrXr6�r�r{�mfc)�
flierpropsrr�r�r#r!�test_bxp_customoutlierr�s!��
���&��#�>�!@�Ar#zbxp_withmean_custompoint.pngc
�J�ttdtddd������y)NTrrXr�r)�	showmeans�	meanpropsrr�r�r#r!�test_bxp_showcustommeanr �s"��
�������A�!�r#zbxp_custombox.pngc	�H�tttddd������y)Nrr
r��r�r�r8)rrr�r�r#r!�test_bxp_customboxr#����
����C�A�6�!8�9r#zbxp_custommedian.pngc	�H�tttddd������y)Nrr
r�r")�medianpropsrr�r�r#r!�test_bxp_custommedianr'�s��
���4�s�q�9�!;�<r#zbxp_customcap.pngc	�H�tttddd������y)Nrr6r�r")�cappropsrr�r�r#r!�test_bxp_customcapr*�r$r#zbxp_customwhisker.pngc	�H�tttddd������y)Nrr�r�r")�whiskerpropsrr�r�r#r!�test_bxp_customwhiskerr-�s��
���C�s�q�9�!;�<r#zbxp_withnotch.pngc�0�ttd����y)NT)�shownotchesrr�r�r#r!�test_bxp_shownotchesr0�s��
��� 6�7r#zbxp_nocaps.pngc�0�ttd����y)NF)�showcapsrr�r�r#r!�test_bxp_nocapsr3�s��
��e� 4�5r#z
bxp_nobox.pngc�0�ttd����y)NF)�showboxrr�r�r#r!�test_bxp_noboxr6�s��
��U� 3�4r#zbxp_no_flier_stats.pngc�8�d�}t|td����y)Nc�8�|D]}|jdd��|S)N�fliers)r�)rr�s  r!rz*test_bxp_no_flier_stats.<locals>.transform�s$���	"�A�
�E�E�(�D�!�	"��r#F)�
showfliersrr�rs r!�test_bxp_no_flier_statsr;�s��
�
�Y� $�� 6�8r#zbxp_withmean_point.pngc�2�ttdd����y)NTF�r�meanlinerr�r�r#r!�test_bxp_showmeanr?s��
��t�e� D�Er#zbxp_withmean_line.pngc�2�ttdd����y)NTr=rr�r�r#r!�test_bxp_showmeanaslinerAs��
��t�d� C�Dr#zbxp_scalarwidth.pngc�0�ttd����y)Nrbr%rr�r�r#r!�test_bxp_scalarwidthrCs��
��C� 0�1r#zbxp_customwidths.pngc�4�ttgd�����y)N)r�rbg�������?g333333�?r%rr�r�r#r!�test_bxp_customwidthsrEs��
��,D� E�Fr#zbxp_custompositions.pngc�4�ttgd�����y)N)r7r�rr7rrr�r�r#r!�test_bxp_custompositionsrG's��
��|� <�=r#c��tjt�5tt	dg����ddd�y#1swYyxYw)Nr7r%r�r�r�r�r�rYr�r#r!�test_bxp_bad_widthsrJ/s2��	���z�	"�6��D���$4�5�6�6�6��	�;�Ac��tjt�5tt	ddg����ddd�y#1swYyxYw)Nr8r�rrrIr�r#r!�test_bxp_bad_positionsrM4s4��	���z�	"�<��D�A�q�6�$:�;�<�<�<�s	�<�Azbxp_custom_capwidths.pngc�4�ttgd�����y)N)r�r�r�r�r$rr�r�r#r!�test_bxp_custom_capwidthsrO9s����/C� D�Er#zbxp_custom_capwidth.pngc�0�ttd����y)Nrtr$rr�r�r#r!�test_bxp_custom_capwidthrQ@s����s� 3�4r#c��tjt�5tt	dg����ddd�y#1swYyxYw)Nr7r$rrIr�r#r!�test_bxp_bad_capwidthsrSGs2��	���z�	"�9��D�A�3�$7�8�9�9�9�rKrg{�G�z�?)rr�c��tjjd�tjddd�}tjd|dg�}tj�\}}|j||gdd�	�|jd
�d||gi}tj�\}}|jddd|��|jd
�y)
Nr�r6r7����r��'r7��	bootstrap�notch�r�r�r0)rYrZr��	rfrgrhr��hstackr%rrr�)r0r+r r�s    r!�test_boxplotr^Ls����I�I�N�N�3��
���B��3��A�
�	�	�3��2�,��A��l�l�n�G�C���J�J��1�v��a�J�0��K�K�	��
�!�Q��=�D��l�l�n�G�C���J�J�s�e�1�4�J�8��K�K�	�r#zboxplot_custom_capwidths.pngc��tjddd�}tjd|dg�}tj�\}}|j||gdddg�	�y)
Nr6r7rUrVr�r7r�r�)rZr")rfr�r]r%rrr�s   r!�test_boxplot_custom_capwidthsr`_sS��	���B��3��A�
�	�	�3��2�,��A��l�l�n�G�C���J�J��1�v�Q�4��+�J�6r#zboxplot_sym2.pngc�t�tjjd�tjddd�}tjd|dg�}tjdd�\}\}}|j||gd	d
��|jd�|j||gd	d
��|jd�y)Nr�r6r7rUrVr�r7r8rW�^)rYr�r[r6r\)r0r+rrs    r!�test_boxplot_sym2rcjs����I�I�N�N�3��
���B��3��A�
�	�	�3��2�,��A��l�l�1�a�(�O�C��#�s��K�K��A��%�S�K�1��L�L����K�K��A��%�S�K�1��L�L��r#zboxplot_sym.pngc���tjddd�}tjd|dg�}tj�\}}|j||gd��|j
d�y)	Nr6r7rUrVr�r��r�r[)rfr�r]r%rrr�r�s   r!�test_boxplot_symrfzsY��
	���B��3��A�
�	�	�3��2�,��A��l�l�n�G�C���J�J��1�v�4�J� ��K�K�	�r#z$boxplot_autorange_false_whiskers.pngz#boxplot_autorange_true_whiskers.pngc��tjjd�tjd�}tjd|dg�}tj�\}}|j||gdd��|jd�tj�\}}|j||gddd	�
�|jd�y)Nr�rUrr8rWr7rX)r�r�T)rYrZ�	autorange)	rfrgrhr�r]r%rrr�)r0r�rr�rs     r!�test_boxplot_autorange_whiskersri�s���
�I�I�N�N�3��
�����A�
�	�	�1�a��)��A�����I�D�#��K�K��A��%�q�K�1��L�L�������I�D�#��K�K��A��%�q�D�K�A��L�L��r#c���tjddd�}tjd|dg�}tj|�5|j||g�ddd�|S#1swY|SxYw)Nr6r7rUrVr�)rfr�r]rUr
r)r �rc_dictr0s   r!�_rc_test_bxp_helperrl�s`��
���B��3��A�
�	�	�3��2�,��A�	�	�	�w�	'��
�
�
�A�q�6���
�I��
�I�s�A#�#A-�boxplot_rc_parameters)rr�rr�c
��tjjd�tjd�\}}idd�dddg�dd	�d
d�dd
�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�ddd ��}d!d"d#gdd$�}dd!d!d!dddddddd%d&�}|||g}t||�D]\}}t
||��tjj|d'j�D�cgc]
}t|���c}vsJ�ycc}w)(Nr�r�z
boxplot.notchT�boxplot.whiskersr�r�zboxplot.bootstraprWzboxplot.flierprops.colorr
�boxplot.flierprops.markerr�z"boxplot.flierprops.markerfacecolorr6z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestylerzboxplot.flierprops.linewidthr�zboxplot.boxprops.colorr!r�zboxplot.boxprops.linestylezboxplot.capprops.colorr;zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorr�)zboxplot.medianprops.linewidthzboxplot.medianprops.linestyleFrr�)zboxplot.verticalrozboxplot.patchartist�-.)rozboxplot.showcapszboxplot.showboxzboxplot.showflierszboxplot.showmeanszboxplot.meanlinezboxplot.meanprops.colorzboxplot.meanprops.linewidthzboxplot.meanprops.linestylezboxplot.whiskerprops.colorzboxplot.whiskerprops.linewidthzboxplot.whiskerprops.linestyler7)rfrgrhr%rr�rlrUr'r(�get_childrenr�)	r+r �rc_axis0�rc_axis1�rc_axis2�	dict_listr��rc_axisr�s	         r!�test_boxplot_rc_parametersrx�s���
�I�I�N�N�3���l�l�1�o�G�C�������Q��G��	�U��
	#�C��	$�S�
�	-�c��	-�c��	(���	'���	'���	!�#��	%�c��	%�d��"	!�#�#�$	%�c�%�&	%�d�'�*	$�S�+�,*-�)-�/�H�6"���H�#��H� �!� �#�!� �#&�'*�'+�&)�*-�*.��H� �8�X�.�I��R��+�+�
��g��D�'�*�+�
���(�(� ��e�0�0�2�3��T�!�W�3�
4�5�
4��3s�C7zboxplot_with_CIarray.pngc�Z�tjjd�tjddd�}tjd|dg�}tj�\}}tjddgd	d
gg�}|j||gdddg|d
��|jd�y)Nr�r6r7rUrVr�rr�r�@rWr�r7)rY�usermedians�conf_intervalsrZr[)
rfrgrhr�r]r%rr;rr�)r0r+r �CIss    r!�test_boxplot_with_CIarrayr~�s����I�I�N�N�3��
���B��3��A�
�	�	�3��2�,��A��l�l�n�G�C��
�(�(�T�2�J��c�
�+�
,�C��J�J��1�v��T�3�K�!���,��K�K�	�r#zboxplot_no_inverted_whisker.pngc�.�tjgd�tj��}tj�}|j|�|j
d�|jjdd��|jjd�y)N)r�i(#r�Xi^i@
ixi�r�rF�minor��which)
rfr;r^r%rUrr�r\rZrY)r0rs  r!�test_boxplot_no_weird_whiskerr��sb��	���;��z�z�	#�A�

�(�(�*�C��K�K��N��N�N�5���I�I�N�N�5��N�(��I�I�N�N�5�r#c��tjddd�}tjd|dg�}tj�\}}tjt�5|j|ddg��ddd�tjt�5|j||gddgddgg��ddd�y#1swY�GxYw#1swYyxYw)	Nr6r7rUrVr�r7r8)r{�	rfr�r]r%rr�r�r�rr�s   r!�test_boxplot_bad_mediansr�
s���
���B��3��A�
�	�	�3��2�,��A��l�l�n�G�C��	���z�	"�*�
�
�
�1�1�a�&�
�)�*�	���z�	"�9�
�
�
�A�q�6��A���A��'7�
�8�9�9�*�*��9�9�s� B<�C�<C�Cc��tjddd�}tjd|dg�}tj�\}}tjt�5|j||gddgg��ddd�tjt�5|j||gddgdgg��ddd�y#1swY�FxYw#1swYyxYw)	Nr6r7rUrVr�r7r8)r|r�r�s   r!�test_boxplot_bad_cir�
s���
���B��3��A�
�	�	�3��2�,��A��l�l�n�G�C��	���z�	"�4�
�
�
�A�q�6�A�q�6�(�
�3�4�	���z�	"�9�
�
�
�A�q�6�A�q�6�A�3�-�
�8�9�9�4�4��9�9�s� B>�C
�>C�
Cc��tjd�}tj�\}}|j	|�ddj�dk(sJ�|j	|d��ddj�dk(sJ�y)Nr��boxesrr8�r6)rfrnr%rrr�)r0r�r s   r!�test_boxplot_zorderr�
su��
�	�	�"�
�A��l�l�n�G�C��
�:�:�a�=��!�!�$�/�/�1�Q�6�6�6�
�:�:�a��:�#�G�,�Q�/�:�:�<��B�B�Br#c��dtjd<dtjd<dtjd<tj�\}}tjd�}d|d	<|j|d
��}dD]!}||D]}|j
�d
k(r�J��#|ddj
�dk(sJ�|ddj
�dk(sJ�y)Nr�r0r�rprbzboxplot.meanprops.markerr�rr�T)r)�whiskers�capsr��mediansr�r9r�means)r%r�rrfrnr�
get_marker)r+r �	test_data�
bxp_handle�	bxp_lines�	each_lines      r!�test_boxplot_marker_behaviorr�
s���#&�C�L�L�� �03�C�L�L�,�-�/2�C�L�L�+�,��l�l�n�G�C���	�	�#��I��I�b�M����I���6�J�=�0�	�#�I�.�	0�I��'�'�)�R�/�/�/�	0�0��h���"�-�-�/�3�6�6�6��g��q�!�,�,�.�#�5�5�5r#z&boxplot_mod_artists_after_plotting.pngc��gd�}tj�\}}|j|d��}|D]}||D]}|jd���y)N)rCr�rArA���Q��?g�Q����?g�Q����r�rer�)r%rrr)r0r+r �bp�keyr!s      r!�&test_boxplot_mod_artist_after_plottingr�.
sX��	4�A��l�l�n�G�C��	���A�3��	�B��#���c�7�	#�C��M�M�'�"�	#�#r#zviolinplot_vert_baseline.pngc��tjjd�td�D�cgc]"}tjj	d����$}}tj�}|j|td�ddd��d|i}tj�\}}|jdtd�ddd|��ycc}w)	Ni�e�rr�rwr�rr�showextrema�showmediansrX)rrr�r�r�)	rfrgrhr�rir%rU�
violinplotr)r�r�r r+s    r!�test_vert_violinplot_baseliner�9
s����I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9�	����B��M�M�$�%��(�a�Q���!�
��;�D��l�l�n�G�C���M�M�#��q��Q�A��d��,��:s�'Czviolinplot_vert_showmeans.pngc��tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�ddd��ycc}w)Niw5�+rr�rwr7rr��r%rUrfrgrhr�rir��r r�r�s   r!�test_vert_violinplot_showmeansr�J
�k��	����B��I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9��M�M�$�%��(�a�Q���!��:��'B
zviolinplot_vert_showextrema.pngc��tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�ddd��ycc}w)Ni�rr�rwrr7r�r�r�s   r!� test_vert_violinplot_showextremar�T
r�r�zviolinplot_vert_showmedians.pngc��tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�ddd��ycc}w)Nib}&rr�rwrr7r�r�r�s   r!� test_vert_violinplot_showmediansr�^
r�r�zviolinplot_vert_showall.pngc�8�tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�dddddgdd	gd
dgdd
gg��ycc}w)Ni�O�rr�rwr7r���������?r�r�r�rur�rt)rrr�r��	quantilesr�r�s   r!�test_vert_violinplot_showallr�h
s���	����B��I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9��M�M�$�%��(�a�Q��!�3�Z�#�s��c�3�Z�#�s��L��N��:s�'Bz#violinplot_vert_custompoints_10.pngc� �tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�dddd��ycc}w)Ni��$rr�rwrr��rrr�r��pointsr�r�s   r!�$test_vert_violinplot_custompoints_10r�s
sm��	����B��I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9��M�M�$�%��(�a�Q����,��:��'Bz$violinplot_vert_custompoints_200.pngc� �tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�dddd��ycc}w)NiYqVrr�rwrr~r�r�r�s   r!�%test_vert_violinplot_custompoints_200r�}
sm��	����B��I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9��M�M�$�%��(�a�Q����-��:r�zviolinplot_horiz_baseline.pngc� �tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�dddd��ycc}w)Ni�\drr�rwFr�rr�rr�r�r�r�s   r!�test_horiz_violinplot_baseliner��
�m��	����B��I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9��M�M�$�%��(��!��Q��0��:r�z violinplot_horiz_showmedians.pngc� �tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�dddd��ycc}w)	Ni�lo/rr�rwFrr7r�r�r�s   r!�!test_horiz_violinplot_showmediansr��
r�r�zviolinplot_horiz_showmeans.pngc� �tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�dddd��ycc}w)	Ni&�rr�rwFr7rr�r�r�s   r!�test_horiz_violinplot_showmeansr��
r�r�z violinplot_horiz_showextrema.pngc� �tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�dddd��ycc}w)	Ni�e�!rr�rwFrr7r�r�r�s   r!�!test_horiz_violinplot_showextremar��
r�r�zviolinplot_horiz_showall.pngc
�:�tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�ddddddgd	d
gddgd
dgg��ycc}w)Ni"��rr�rwFr7r�r�r�r�r�rur�rt)rr�rr�r�r�r�r�s   r!�test_horiz_violinplot_showallr��
s���	����B��I�I�N�N�8��05�a��9�1�B�I�I���#��&�9�D�9��M�M�$�%��(��!��Q�!�3�Z�#�s��c�3�Z�#�s��L��N��:s�'Bz$violinplot_horiz_custompoints_10.pngc	�"�tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�ddddd��ycc}w)	Ni
0rr�rwFrr��rr�rr�r�r�r�r�s   r!�%test_horiz_violinplot_custompoints_10r��
so��	����B��I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9��M�M�$�%��(��!��Q�r��;��:��'Bz%violinplot_horiz_custompoints_200.pngc	�"�tj�}tjj	d�td�D�cgc]"}tjj
d����$}}|j|td�ddddd��ycc}w)	Ni<�9!rr�rwFrr~r�r�r�s   r!�&test_horiz_violinplot_custompoints_200r��
so��	����B��I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9��M�M�$�%��(��!��Q�s��<��:r�c�t�tj�}tjj	d�td�D�cgc]"}tjj
d����$}}tjt�5|j|td���ddd�ycc}w#1swYyxYw)Ni�@3rr�rwr�r�r%rUrfrgrhr�rir�r�r�r�r�s   r!�test_violinplot_bad_positionsr��
s���	����B��I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9�	���z�	"�0�
�
�
�d�e�A�h�
�/�0�0��:�0�0�s�'B)�B.�.B7c�z�tj�}tjj	d�td�D�cgc]"}tjj
d����$}}tjt�5|j|td�gd���ddd�ycc}w#1swYyxYw)NiA#�rr�rwrx)rr#r�r�s   r!�test_violinplot_bad_widthsr��
s���	����B��I�I�N�N�9��05�a��9�1�B�I�I���#��&�9�D�9�	���z�	"�B�
�
�
�d�e�A�h�y�
�A�B�B��:�B�B�s�'B,� B1�1B:c�:�tj�}tjj	d�tjjd��g}t
jt�5|j|ddgddgg��ddd�y#1swYyxYw)	Ni��l r�rwr�r�r�ru�r��
r%rUrfrgrhrir�r�r�r��r r�s  r!�test_violinplot_bad_quantilesr��
s{��	����B��I�I�N�N�9���I�I���#��&�'�D�
���z�	"�@�
�
�
�d��S�z�C��:�&>�
�?�@�@�@�s�.B�Bc��tj�}tjj	d�tjjd��g}t
jt�5|j|gd�g��ddd�t
jt�5|j|gd�g��ddd�y#1swY�BxYw#1swYyxYw)Niq��4r�rw)r�r�r���������?r�)g��������r�r�rr�r�s  r!�$test_violinplot_outofrange_quantilesr��
s���	����B��I�I�N�N�9���I�I���#��&�'�D�
���z�	"�?�
�
�
�d�'<�&=�
�>�?�
���z�	"�A�
�
�
�d�'>�&?�
�@�A�A�	?�?��A�A�s�.C�&C�C�Cc��tjjd�tjjd��g}|j	�}|j|gd���|j	�}|j|gd�g��y)N�+�r�rw)r�r�r�r�)rfrgrhrirr�)rrr�r s    r!�%test_violinplot_single_list_quantilesr��
sq���I�I�N�N�9���I�I���#��&�'�D�
�	�	�	�B��M�M�$�/�M�2�
�	�	�	�B��M�M�$�?�"3�M�4r#c�>�tjjd�|jtjj	d��gd���}|jtjj	d��td���}|jtjj	d���}|j
�j|||g�|j
�j|j|j|jg�y)	Nr�r7rw)rBrQr7rr�rr�rIrB�	ABCDEFGHIr)	rfrgrhr`rir�rr�r�)rrr�s1�s2�s3s      r!�test_violinplot_pandas_seriesr�
s����I�I�N�N�9��	���2�9�9�#�#��#�+�3H��	I�B�	���2�9�9�#�#��#�+�4��3D��	E�B�	���2�9�9�#�#��#�,�	-�B�����"�"�B��B�<�0�����!�!�2�9�9�b�i�i����"C�Dr#c��tj�\}}|jdd�|j�}tj
j
d�tj
jddd�}tj
jddd�}|j||gddgd�	�|j�}t||�y)
Nrrr�r�rPr7r8F)r�manage_ticks)
r%rr�r�rfrgrhrirr)r�r �old_xlimr�r?�new_xlims      r!�test_manage_xticksr�s����L�L�N�E�A�r��K�K��1���{�{�}�H��I�I�N�N�1��	���	�	�"�a��	$�B�	���	�	�!�Q��	#�B��J�J��B�x�A�q�6��J�>��{�{�}�H��x��*r#c��tj�\}}|jtjjd�dg��|jtjjd�dg��|jj�|j�dk(sJ�t|j��ddgk(sJ�|j�D�cgc]}|j���c}ddgk(sJ�ycc}w)Nr�r�rr�)r�r�r��5)
r%rrrfrgr�r0r
r�r��
get_xticksrSr�rs   r!�test_boxplot_not_singler� s����l�l�n�G�C���J�J�r�y�y�~�~�c�"�q�c�J�2��J�J�r�y�y�~�~�c�"�q�c�J�2��J�J�O�O��
�;�;�=�J�&�&�&���
�
�� �Q��F�*�*�*�"$�"4�"4�"6�7�Q�A�J�J�L�7�C��:�E�E�E��7s�C=c���tjddgddg�tjj	ddi�tj�}tj|dd��y)Nrr7z	font.size�P�raw)r��format)r%r�rUr��update�io�BytesIO�savefig�r
s r!�test_tick_space_size_0r�*sN���H�H�a��V�a��V��������Q�/�0�
�
�
��A��K�K��r�%�(r#)�errorbar_basic�errorbar_mixedr�c	�p�tjdddtj��}tj|�}ddtj|�zz}d|z}tj�}|j�}|j||dd��|jd�tjd	d	d
��\}}|d}|j|||d
��|jd�|jd��|d}|j|||d
d��|jd�|d}|j|||d	|zg|d	|zgd��|jd�|d}|jd�tjd||z
�}||z
}|j|||d	|zg|d
dd	��|jd�|jdd�|jd�||d �}	tj�}|j�}|jd!d"dd|	�#�|jd�y)$Nr�rr�r�r�r�r'z&Simplest errorbars, 0.2 in x, 0.4 in yr8T)r�r�r�r�r��r)r�zVert. symmetric��nbinsr�)r(r�rczHor. symmetric w/ alphar�z--o�r)r(r�zH, V asymmetricrIrr�r6)r)r(r��ecolor�capthickzMixed sym., log yrzVariable errorbarsrr0r1�r(r)r�)rfrn�
longdoubler�r�r%r�rPr$r3r�locator_paramsr��maximumr��suptitle)
r0r1r)r(r+r r��ylower�
yerr_lowerr�s
          r!�
test_errorbarr3s��	�	�	�#�q�#�R�]�]�3�A�
����r�
�A���R�W�W�Q�Z���D���:�D��*�*�,�C�	����B��K�K��1�3�S�K�)��L�L�9�:��|�|�!�1�T�:�H�C��	�T��B��K�K��1�4�S�K�)��L�L�"�#����A���	�T��B��K�K��1�4�S��K�4��L�L�*�+�	�T��B��K�K��1�D�!�D�&�>��q��v��E�K�J��L�L�"�#�	�T��B��M�M�%��
�Z�Z��a�$�h�
'�F��V��J��K�K��1�J��$��/�d���a��1��L�L�$�%��K�K��c���L�L�%�&����D�

�*�*�,�C�	����B��K�K��S�s��4�K�8��L�L�9�:r#c�\�tj�\}}tjd�}d|z}|j	||d��\}}}|j	|d|zd��\}}}|j|d|z�\}t
j|j��t
jd�k(sJ�t
j|j��t
jd�k(sJ�t
j|j��t
jd�k(sJ�y)Nr�r8rrr�r�r�)	r%rrfrnr$r�r��to_rgba�	get_color)r�r r0r1r�r�r��ln1s        r!�test_errorbar_colorcycler	js����L�L�N�E�A�r�
�	�	�"�
�A�	�!��A��{�{�1�a�4�{�(�H�B��1��{�{�1�a��c�T�{�*�H�B��1�
�7�7�1�a��c�?�D�C��?�?�2�<�<�>�*�g�o�o�d�.C�C�C�C��?�?�2�<�<�>�*�g�o�o�d�.C�C�C�C��?�?�3�=�=�?�+�w���t�/D�D�D�Dr#c
�p�tjddd�}td�D�cgc]}tj||z���}}|j	�}|j	�}t|gd��D]:\}}|j
|||dzddd�	�|j
|||dzdd|d�
��<ycc}w)Nr�rr�)r�r�r�r�rbrr�r�)r)r�r{r�)r)r�r{r�r�)rfrnr�r�rr�r$)	rrr0r�r1�axt�axr�yir�s	         r!�test_errorbar_cycle_ecolorrys���
�	�	�#�q�#��A�$�Q�x�(�!������1���(�A�(�
�
�
�
�C�
�
�
�
�C���4�5�>�	��E����Q��"�t�)����	�	1����Q��"�t�)���u�W�	�	>�>��	)s� B3c���tj�}|j�}tjddd�}tj
|�}ddtj|�zz}tj|d|zf�j}d|z}tjt�5|j|||d��ddd�tjt�5|j|||d��ddd�tjt�5|j||||d�	�ddd�y#1swY�yxYw#1swY�NxYw#1swYyxYw)
Nr�rr�r�r8r�r�)r(r�r�)
r%r�rPrfrnr�r��vstackrdr�r�r�r$)r+r r0r1�yerr1r)r(s       r!�test_errorbar_shaper�s��

�*�*�,�C�	����B�
�	�	�#�q�#��A�
����r�
�A��#�b�g�g�a�j�.� �E�
�9�9�e�Q�u�W�%�&�(�(�D���:�D�	���z�	"�.�
���A�q�t���-�.�	���z�	"�.�
���A�q�t���-�.�	���z�	"�9�
���A�q�t�$�C��8�9�9�	.�.��.�.��9�9�s$�/D=�&E	�E�=E�	E�E�errorbar_limitsc��tjddd�}tj|�}d}d}d}tj�\}}|j|||||d��tj|�}d|gd	�<|j||dz||||d
��tj|�}d|gd�<|j||d
z||||d��|j||dzdd|||||d��
d}tj|d�}d|ddg<|}	|}
tj|�}tj|�}d|dg<d|dg<|j||dzdd|||	|
||dddd��|jd�|jd�y)Nr�r�r�r��dottedr�)r(r)r�r�T)r7r�rBr�)r(r)�uplimsr�r�)r8rrQr�r)r(r)�lolimsr�r�r�r�rQ�magenta)r{r�r(r)rrr�r�r�r�r�������@rr�cyan)r{r�r(r)�xlolims�xuplimsrrr�r��capsizer�)rr�zErrorbar upper and lower limits)
rfrnr�r%rr$�
zeros_like�	full_liker�r3)r0r1r(r)r�r+r rrrrs           r!�test_errorbar_limitsr �s���
�	�	�#�s�C� �A�
����r�
�A��D��D�	�B��l�l�n�G�C���K�K��1�4�d�r��K�@��]�]�1�
�F��F�9���K�K��1�S�5�t�$�v�"�����]�]�1�
�F��F�9���K�K��1�S�5�t�$�v�"�����K�K��1�S�5����D��f��9��F��D�
�<�<��3��D��D�!�Q��L��G��G�
�]�]�1�
�F�
�]�]�1�
�F��F�A�3�K��F�A�3�K��K�K��1�S�5����D�����&�f�a�����K�K����L�L�2�3r#c� �tjd�}tjd�}tj||ddd��\}}}|�J�|D]=}tj|j�t
jd�k(�r�=J�y)Nr�r7r)r(r)r�r�)rfrnr%r$r�rr�r)r0r1�plotliner��barlines�errbars      r!�test_errorbar_nonefmtr%�s��
�	�	�!��A�
�	�	�!��A��L�L��A�A�A�6�J��H�a�������C���v�v�f�&�&�(�G�O�O�D�,A�A�B�B�B�Cr#c��tjd�}tjd�}tj||ddddddddd	d
��\}}}|j	�dk(sJ�|j�dk(sJ�y)Nr�r7�Noner�rbz	steps-mid�roundr�r��bevel)
r(r)r�r{r8r��
dash_capstyle�dash_joinstyler�r�)rfrnr%r$�
get_fillstyle�
get_drawstyle)r0r1r"r�s    r!�"test_errorbar_line_specific_kwargsr.�s���	�	�	�!��A�
�	�	�!��A��\�\�!�Q�Q�Q�6�),��,7�07�18�17�29�
;�N�H�a���!�!�#�v�-�-�-��!�!�#�{�2�2�2r#c	�"�|j�}|jgd�gd�dddd��|jgd�gd�dd	d
dd��|jgd�gd
�ddddd��|jdd�tgd�gd�gd�gd���}t	j
d|��|j�}|jgd�gd�d��|jgd�gd�dd	��|jgd�gd
�dd��|jdd�y)N)r8rr�r3r�rr�r�)r0r1r)r�r{r�r8r�rz	tab:greenrr1)r0r1r)r�r�r{r�rr�rztab:bluerqr�r;)r0r1r)r�r�r{rr7r)rrrq)r�r�r�)r�r1r;)r
r6r!)r�r{rr�rU)�
prop_cycle�r0r1r))r0r1r)r�)r0r1r)r�)rr$r�r	r%�rc)rrr �_cycles    r!�test_errorbar_with_prop_cycler6�s���	�	�	�	�B��K�K�*�	������.��K�K�*�	��;��s���-��K�K�*�	�������.��K�K��2��
�(��'��@�F��F�F�6�f�%�	�	�	�	�B��K�K�*�	��K�4��K�K�*�	��;�K�G��K�K�*�	���K�D��K�K��2�r#c��tjddd�}|d|z
z}|dz}tj�j	�}tjtd��5|j|||d��ddd�tjtd��5|j|||d	��ddd�tjtd
��5|j|||ddg��ddd�tjtd
��5|j|||d��ddd�y#1swY��xYw#1swY��xYw#1swY�[xYw#1swYyxYw)Nrr7r�rznot a tuple of two integersr^rx)�
errorevery)rOr�znot a valid NumPy fancy indexFTznot a recognized value�foobar)	rfr�r%r�rr�r�r�r$)r0r1r)r s    r!�test_errorbar_every_invalidr:�s'��
���A�q�"��A�	�Q�q�S�	�A��Q�3�D�	����	�	�	 �B�	���z�)F�	G�6�
���A�q�$�9��5�6�	���z�)F�	G�5�
���A�q�$�8��4�5�	���z�)H�	I�:�
���A�q�$�E�4�=��9�:�	���z�)A�	B�5�
���A�q�$�8��4�5�5�
6�6��5�5��:�:��5�5�s0�"D.�D:�E�E�.D7�:E�E�Ec
�H�tj�j�}tjt
d��5|j
dgdgdgdggdgdgg��ddd�tjt
d��5|j
dgdgdgdgg��ddd�tjt
d��5|j
dgdgdgdgg�	�ddd�tjt
d��5tjd
�}|D�cgc]}tjdd|d
zdz���!}}|j
||tjd���	�ddd�y#1swY��xYw#1swY��xYw#1swY��xYwcc}w#1swYyxYw)Nz''xerr' must not contain negative valuesr^rr�r7)r0r1r(r))r0r1r(z''yerr' must not contain negative valuesr3r�r+rBr8r�rG)r%r�rr�r�r�r$rfrnrrO)r r0r/r1s    r!�test_xerr_yerr_not_negativer<s���	����	�	�	 �B�	���z�F�
H�J�
���q�c�a�S�����}�T�F�Q�C�=��I�J�
���z�F�
H�6�
���q�c�a�S�����}��5�6�
���z�F�
H�6�
���q�c�a�S�����}��5�6�
���z�F�
H�7��I�I�a�L��<=�>�q�X�
�
�t�Q��A���	�
2�>��>�
���a��!�+�+��5�	�	7�	7�7�J�J��6�6��6�6��
?�7�7�sA� E.�E;�?F�=F�$F�;*F�.E8�;F�F�F�F!c��tjddd�}|d|z
z}|dz}|j�}|j�}tdgd��D]a\}}|dz
}|j	||||dfd|�	�|j|||d
��|j	||dd�||dd�||dd�d|d�
��c|j	||dz|ddd��|j|ddd�|ddd�dzdd
��|j	||dz|dd��|j	||dz|t
ddd�t
ddd�ddd��|j|ddd�|ddd�dzddd
��|j	|ddd�|ddd�dz|ddd�ddd�
�|j	||dz|gd�dzgd�dzddd��|j|ddd�|ddd�dzddd
��|j	|ddd�|ddd�dz|ddd�ddd�
�y)Nrr7r�r�rgbk)rrr8r7rlr)r8rr;r)r;r6r)rr;r�r�)r7rr�)r�rr�r�)rr�r�r8r�r�)r8r�rr;r�)FTFr�r�)rfr�rr�r$r�r�)	rrr0r1r)rsrrr��shifts	         r!�test_errorbar_everyr@ s���
���A�q�"��A�	�Q�q�S�	�A��Q�3�D�
�
�
�
�F����!�G��F�L�1�8���u�	�S���	����A�t���
�!"�e�	�	-�
	���A�q�E�#��.�����%�(��(��Q�u�x�a�x�[�$�u�x�a�x�.� !�U��	�	8�8����Q��C�������L�
�K�K��!�$�Q�$���1�4�a�4��3���C�K�8�
�O�O�A�q�3�w��a�V�O�<����Q��C���%��4��2C�$�Q��a�0��$�C��1��K�K��!�$�Q�$���1�4�a�4��3���t�C�K�@�
�O�O�A�a�d��d�G�Q�q�t�!�t�W�s�]�D���A��J���6��3����Q��C���2F��2J�3�a�7��$�C��1��K�K��!�$�Q�$���1�4�a�4��3���t�C�K�@�
�O�O�A�a�d��d�G�Q�q�t�!�t�W�s�]�D���A��J���6��3r#�
elinewidthrxc�B�tjgd�gd�gd�|��y)Nrx)r)rA)r%r$)rAs r!�test_errorbar_linewidth_typerCLs���L�L��I�I�*�Mr#c��|j�}td�}tjddtjtjdg�}tjddtjtjdg�}|j|||�|j�}|jddgddgddg�|jdgdgdgd�	�y)
Nr�r7r8r�rrrr��r�)r�r�rfr;r�r$)rrr �xs�ys�ess      r!�test_errorbar_nanrISs���	�	�	�	�B�	�q��B�	���1�a��������+�	,�B�	���1�a��������+�	,�B��K�K��B���	�	�	�	�B��K�K��A���A���A��'��K�K���a�S�1�#�4�K�(r#�hist_stacked_stepfilledc��tjddd�}tjddd�}tj�\}}|j	||fdd�	�d
||fi}tj�\}}|j	d
dd|��y)Nr7r�rPrr�rrjTr�r0)rlr�r��rfr�r%rre)�d1�d2r+r r�s     r!�test_hist_stacked_stepfilledrO_s��
���Q��2�	�B�	���Q��B�	�B��l�l�n�G�C���G�G�R��H�|�T�G�:�
�"�b��?�D��l�l�n�G�C���G�G�C�,��4�G�@r#�hist_offsetc���tjddd�}tjddd�}tj�\}}|j	|d��|j	|d	��y)
Nrr�rr7r�rPr�r�r�rL�rMrNr+r s    r!�test_hist_offsetrSmsW��
���Q��B�	�B�	���Q��2�	�B��l�l�n�G�C���G�G�B�q�G���G�G�B�r�G�r#z
hist_step.pngc���tjddd�}tj�\}}|j	|d��|jdd�|j
dd	�y)
Nr7r�rPrirkrr�r�r�)rfr�r%rrer�r��rMr+r s   r!�test_hist_steprVwsQ��
���Q��2�	�B��l�l�n�G�C���G�G�B��G� ��K�K��2���K�K��A�r#zhist_step_horiz.pngc��tjddd�}tjddd�}tj�\}}|j	||fdd�	�y)
Nrr�rr7r�rPrirP)rlrRrLrRs    r!�test_hist_step_horizrX�sM��
���Q��B�	�B�	���Q��2�	�B��l�l�n�G�C���G�G�R��H�v�<�G�@r#�hist_stacked_weightsc��tjddd�}tjddd�}tjddd�}tjd	d
d�}tj�\}}|j	||f||fdd�
�y)Nrr�rr7r�rPr�rzr�r�rjT)�weightsrlr�rL)rMrN�w1�w2r+r s      r!�test_hist_stacked_weightedr^�sw��
���Q��B�	�B�	���Q��2�	�B�	���T�3��	#�B�	���T�2�r�	"�B��l�l�n�G�C���G�G�R��H�r�2�h��t�G�Lr#�use_line_collectionzw/ line collectionzw/o line collectionzstem.pngc
��tjddtjzd�}tj�\}}|r+|j|tj|�dddd��nOtjtd	�
�5|j|tj|�ddddd��ddd�|j�y#1swY�xYw)
Nr�r8r��C2-.zk+�C1-.� )�linefmt�	markerfmt�basefmtr.�
deprecatedr^F)rdrerfr.r_)rfr�r�r%r�stemrSr�r�rrG�r_r0r+r s    r!�	test_stemrj�s���	���C��R�U�U��C�(�A��l�l�n�G�C���
����2�6�6�!�9��$��c�	�	K��\�\�6�l�
K�	/��G�G�A�r�v�v�a�y�"�d�F�#�(-�
�
/�	/��I�I�K�		/�	/�s�,C
�
Cc���d�}tj�\}}gd�}gd�}||j|�gd�|f��||j||�||f��||j||d��||f��||j||d�||f��||j||dd�	�||f��||j|d��gd�|f��||j|d�gd�|f��y
)z5Test that stem() correctly identifies x and y values.c��tt|jj��\}}||dk(sJ�||dk(sJ�y�Nrr7)�mapr��
markerliner�)�stem_container�expectedr0r1s    r!�
_assert_equalz%test_stem_args.<locals>._assert_equal�sE���4��2�2�;�;�=�>���1��H�Q�K�����H�Q�K���r#�r7r�r��rBrQr7r3)rqr9�rdzb--)rdrfN�r%rrh�rrr+r r0r1s     r!�test_stem_argsrx�s��� �
�l�l�n�G�C���A��A��"�'�'�!�*�	�1�~�6��"�'�'�!�Q�-�1�a�&�1��"�'�'�!�Q��'�.�!�Q��@��"�'�'�!�Q��&�!�Q��8��"�'�'�!�Q��u�'�=��A��O��"�'�'�!�U�'�+�y�!�n�E��"�'�'�!�U�#�y�!�n�=r#c�Z�		dd�}tj�\}}gd�}gd�}||j||�dd��||j||d�	�dd��||j||d
�	�dd��||j||d�ddd��||j||d
�ddd��||j||dd�	�ddd��||j||dd
�	�dd
d��||j||dd�	�dd
d��||j||dd�	�ddd��||j||dd�	�ddd��||j||d��ddd��||j||dd��ddd��||j||dd��dd
d��y)zATest that stem(..., markerfmt=...) produces the intended markers.Nc�L�|�0tj|jj�|�sJ�|�0tj|jj�|�sJ�|�|jj�|k(sJ�|jj
�dk(sJ�y)zl
        Check that the given StemContainer has the properties listed as
        keyword-arguments.
        Nr')r�ra�	stemlinesrror��
get_linestyle)rp�	linecolor�markercolorr{s    r!rrz*test_stem_markerfmt.<locals>._assert_equal�s���� ��%�%��(�(�2�2�4���
���"��%�%��)�)�3�3�5���
����!�,�,�7�7�9�V�C�C�C��(�(�6�6�8�F�B�B�Br#rsrtr�r�)r~r{r0)rer:r!)r}r~r{r6�gxrcr'r�ru)rdre)NNNrvrws     r!�test_stem_markerfmtr��s���BF�!�C�$�l�l�n�G�C���A��A��"�'�'�!�Q�-�T�#�>��"�'�'�!�Q�#�'�.�D��M��"�'�'�!�Q�$�'�/�S��M��
����1�c���3�s�4��
����1�d���3�s�4��
����1�c�S��)��3�s�4��
����1�c�S��)��3�s�4��
����1�c�T��*��3�s�4��
����1�c�S��)��3�v�7��
����1�c�R��(��3�v�7�
�
����1�c��"��3�s�4��
����1�c�S��1��3�s�4��
����1�c�T��2��3�s�4r#c���tjdd�\}}tjj	d�tjj	d�g}ddg}|j||�y)Nr7z2013-9-28 11:00:00z2013-9-28 12:00:00r�r~)r%r�dateutil�parser�parserh)r+r rFrGs    r!�test_stem_datesr�sY���l�l�1�a� �G�C��
�/�/�
�
� 4�
5�
�/�/�
�
� 4�
5�
7�B�

�s��B��G�G�B��Or#zstem_orientation.pngc
��tjddtjzd�}tj�\}}|r+|j|tj|�dddd��ytjtd	�
�5|j|tj|�ddddd��ddd�y#1swYyxYw)
Nr�r8rra�kxrbrP)rdrerfrRrgr^F)rdrerfr_rR)
rfr�r�r%rrhrSr�r�rris    r!�test_stem_orientationr�s���	���C��2�5�5��"�%�A��l�l�n�G�C���
����2�6�6�!�9��$��(�	�	*��\�\�6�l�
K�	.��G�G�A�r�v�v�a�y�"�d�F�(-� ,�
�
.�	.�	.�	.�s�,B=�=C�hist_stacked_stepfilled_alphac��tjddd�}tjddd�}tj�\}}|j	||fddd	�
�y)Nr7r�rPrr�rrjTr�)rlr�rcrLrRs    r!�"test_hist_stacked_stepfilled_alphar�sO��
���Q��2�	�B�	���Q��B�	�B��l�l�n�G�C���G�G�R��H�|�T��G�Er#�hist_stacked_stepc��tjddd�}tjddd�}tj�\}}|j	||fdd�	�y)
Nr7r�rPrr�rriTr�rLrRs    r!�test_hist_stacked_stepr�$sM��
���Q��2�	�B�	���Q��B�	�B��l�l�n�G�C���G�G�R��H�v�t�G�4r#�hist_stacked_normedc��tjddd�}tjddd�}tj�\}}|j	||fdd��y)	Nr7r�rPrr�rT)r�r�rLrRs    r!�test_hist_stacked_densityr�-sM��
���Q��2�	�B�	���Q��B�	�B��l�l�n�G�C���G�G�R��H�d�D�G�1r#zhist_step_bottom.pngc��tjddd�}tj�\}}|j	|tj
d�d��y)Nr7r�rPr�rj)rNrl)rfr�r%rrernrUs   r!�test_hist_step_bottomr�6s?��
���Q��2�	�B��l�l�n�G�C���G�G�B�r�y�y��}�|�G�<r#c���gd�}gd�}tj||d��\}}\}ddgddgddgddgddgddgddgddgddgddgddgddgddgg
}t|j�|�y)	N�rr7r8r��rrr7r7r7r8rj�r{rlrr8r7r��r%rer�get_xy�r{r�r��polygonr�s     r!�test_hist_stepfilled_geometryr�>s����D��D�����&*�*6�8��A�q�+�7�
�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�
:�B��w�~�~�'��,r#c	��gd�}gd�}tj||d��\}}\}ddgddgddgddgddgddgddgddgg}t|j�|�y)	Nr�r�rir�rr8r7r�r�r�s     r!�test_hist_step_geometryr�Ist���D��D�����&*�*0�2��A�q�+�7�
�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�	I�B��w�~�~�'��,r#c���gd�}gd�}tj||gd�d��\}}\}ddgddgddgdd	gd
d	gd
dgddgddgd
dgd
d
gdd
gddgddgg
}t|j�|�y)
Nr�r��r7r8r�rj�r{rNrlrr7r�r�r8r�r�r�r�s     r!�$test_hist_stepfilled_bottom_geometryr�Ss����D��D�����&*�(3�*6�8��A�q�+�7�
�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�c�(�Q��H��c�(�Q��H�q�!�f�q�!�f�q�!�f�q�!�f�
>�B��w�~�~�'��,r#c	��gd�}gd�}tj||gd�d��\}}\}ddgddgddgdd	gd
d	gd
dgddgddgg}t|j�|�y)
Nr�r�r�rir�rr7r�r�r8r�r�r�r�s     r!�test_hist_step_bottom_geometryr�_sw���D��D�����&*�(3�*0�2��A�q�+�7�
�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�c�(�Q��H�q�#�h�	O�B��w�~�~�'��,r#c��gd�}gd�}gd�}tj||g|dd��\}}}t|�dk(sJ�|d\}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgddgddgd	dgd	dgddgg
}t|j	�|�|d	\}ddgdd
gd	d
gd	dgddgddgd
dgd
d	gdd	gdd
gd	d
gd	dgddgg
}t|j	�|�y)Nr�r�r3Trj�r{r�rlr8rr7r�r�r%rer�rr��r{�data_1�data_2r�r'r�r�s       r!�%test_hist_stacked_stepfilled_geometryr�js/���D�
�F�
�F��H�H�f�f�-�"&�%)�&2�4�M�A�q�'�
�w�<�1������
�H�G��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�
:�B��w�~�~�'��,���
�H�G��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�
:�B��w�~�~�'��,r#c	�f�gd�}gd�}gd�}tj||g|dd��\}}}t|�dk(sJ�|d\}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgg}t|j	�|�|d	\}ddgdd
gd	d
gd	dgddgddgd
dgd
d	gg}t|j	�|�y)Nr�r�r3Trir�r8rr7r�rr�r�s       r!�test_hist_stacked_step_geometryr��s����D�
�F�
�F��H�H�f�f�-�"&�%)�&,�.�M�A�q�'�
�w�<�1������
�H�G��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�	I�B��w�~�~�'��,���
�H�G��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�a�&�	I�B��w�~�~�'��,r#c��gd�}gd�}gd�}tj||g|dgd�d��\}}}t|�dk(sJ�|d	\}d	d
gd	dgd
dgd
dgddgdd
gdd
gddgddgddgd
dgd
d
gd	d
gg
}t|j	�|�|d
\}d	dgd	dgd
dgd
dgddgddgddgdd
gdd
gddgd
dgd
dgd	dgg
}t|j	�|�y)Nr�r�r3Tr�rj�r{r�rNrlr8rr7r�r�r�r�rrrzr�r�s       r!�,test_hist_stacked_stepfilled_bottom_geometryr��s2���D�
�F�
�F��H�H�f�f�-�"&�%)�$/�&2�	4�M�A�q�'��w�<�1������
�H�G��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�c�(�Q��H��c�(�Q��H�q�!�f�q�!�f�q�!�f�q�!�f�
>�B��w�~�~�'��,���
�H�G��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�c�(�Q��H��c�(�Q��H�q�!�f�q�!�f�q�!�f�q�!�f�
>�B��w�~�~�'��,r#c	�l�gd�}gd�}gd�}tj||g|dgd�d��\}}}t|�dk(sJ�|d	\}d	d
gd	dgd
dgd
dgddgdd
gdd
gddgg}t|j	�|�|d
\}d	dgd	dgd
dgd
dgddgddgddgdd
gg}t|j	�|�y)Nr�r�r3Tr�rir�r8rr7r�r�r�r�rrrzr�r�s       r!�&test_hist_stacked_step_bottom_geometryr��s����D�
�F�
�F��H�H�f�f�-�"&�%)�$/�&,�	.�M�A�q�'��w�<�1������
�H�G��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�c�(�Q��H�q�#�h�	O�B��w�~�~�'��,���
�H�G��a�&�1�a�&�1�a�&�1�a�&�1�a�&�1�c�(�Q��H�q�#�h�	O�B��w�~�~�'��,r#�hist_stacked_barc��gd�gd�gd�gd�gd�gd�g}gd�}gd�}tj�\}}|j|d	d
d||��|jd
dd��y)N)r�r�r�r�r~�@i�r�rPr��6r�)rP�rrr�i�)r,r,r,rUrUr�)rrrrr�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�r�))gX�xn�?r�r�)r�r�g`�p�?)r�r�g���ǟ��?)r�g�ˢ�`�?r�)g�C�?r�r�)g��K���?r�r�)r�r<z yellowrr�r�ro�mid)r{rlr�r�r.zupper right)r�r�r7)r?�bbox_to_anchorr�)r%rrerG)rXr?�labelsr+r s     r!�test_hist_stacked_barr��sn��
D�	#�%H�	8�	H�	A�		C�A�
O�F�@�F��l�l�n�G�C���G�G�A�B��U�&�����I�I�-�
�!�I�Dr#c��tjddg�}tjddgddggdd|��|j	�ddgk(sJ�y)Nr�rPrr7r8ro)rlrN)rfr;r%re�tolistr�s r!�%test_hist_barstacked_bottom_unchangedr��sK��
���"�b���A��H�H�q�!�f�q�!�f�
�q�<��B��8�8�:�"�b��!�!�!r#c��tj�\}}|jgtd�td�gd��y)Nr�rirk)r%rrer�r*s  r!�test_hist_emptydatar��s0���l�l�n�G�C���G�G�R��r��E�"�I�&��G�8r#c��tj�\}}|jddgd��\}}}|dj�dk(sJ�|jddgdg��\}}}|dj�dk(sJ�|jddgd��\}}}|dj�dk(sJ�|jddgd��\}}}|dj�dk(sJ�|jddgd��\}}}|dj�dk(sJ�y)Nrr7r�r�rQ�00)r%rrerZ)r+r r�rVs    r!�test_hist_labelsr��s&���l�l�n�G�C�����!�Q��q��)�J�A�q�$���7����#�%�%�%����!�Q���s��+�J�A�q�$���7����#�%�%�%����!�Q��t��,�J�A�q�$���7����,�.�.�.����!�Q��s��+�J�A�q�$���7����#�%�%�%����!�Q��t��,�J�A�q�$���7����$�&�&�&r#�transparent_markersc���tjjd�tjjd�}tj�\}}|j|ddd��y)Nrrr�rr�)rr��rfrgrhr%rr�r�s   r!�test_transparent_markersr��sI���I�I�N�N�1��
�9�9���B��D��l�l�n�G�C���G�G�D�#�6�c�G�2r#�rgba_markersc
��tjd��\}}ddg}ddg}ddg}tdd	�
�}t|�D]n\}}t|�D][\}}	t|�D]H\}
}||j|dz|
dzdf||	|d
�|��||j|dz|
dzdf|	|d�|���J�]�p|D]}|jgd���y)Nr8r4r`rwr4)rrr7r�r�r�rP)r�r�r7r�)rr�rcr�r0)r�rc)r�rrr�)r%rrYr�r�r�)
r+r��rcolors�bcolors�alphas�kwr/rcr��rcolorr��bcolorr s
             r!�test_rgba_markersr��s���|�|�!�$�H�C���^�,�G��^�,�G��C�[�F�	
��"�	�B��f�%�J���5�"�7�+�	J�I�A�v�&�w�/�
J�	��6���A����A�a�C��1��c�/�v�6�"'�/�+-�/���A����A�a�C��1��c�I�v�U�I�b�I�
J�	J�J����
���
��r#�mollweide_gridc�p�tj�}|jd��}|j�y)N�	mollweiderT)r%r�r�rZr*s  r!�test_mollweide_gridr�s(���*�*�,�C�	���K��	0�B��G�G�Ir#c��tj�}|jd��}tjtj
tj
d�}tjtj
dztj
dzd�}tj||�\}}tj|j�|j�f�j}|jj|�}|jj�j|�}tjj||d�y)Nr�rTr|r�r�r�)r%r�r�rfr�r�rXrr�rd�transProjectionr�invertedr�r)r+r �lon�lat�llr��ll2s       r!�&test_mollweide_forward_inverse_closurer�s����*�*�,�C�	���K��	0�B�
�+�+�r�u�u�f�b�e�e�S�
)�C�
�+�+�r�u�u�f�s�l�B�E�E�C�K��
5�C��{�{�3��$�H�C��	���C�K�K�M�3�;�;�=�1�	2�	4�	4�B�
�	�	�	%�	%�b�	)�B�
�
�
�
%�
%�
'�
1�
1�"�
5�C��J�J�(�(��S�!�4r#c���tj�}|jd��}tjddd�}tj
||�\}}tj|j�|j�f�j}|jj�j|�}|jj|�}tjj||d�y)Nr�rTrr7��r�)r%r�r�rfr�rXrr�rdr�r�rr�r)r+r r0r1r�r��xy2s       r!�&test_mollweide_inverse_forward_closurer�%s����*�*�,�C�	���K��	0�B�	���A�q�#��A�
�;�;�q�!��D�A�q�	���A�I�I�K�����-�	.�	0�	0�B�
�	�	�	$�	$�	&�	0�	0��	4�B�
�
�
�
&�
&�r�
*�C��J�J�(�(��S�!�4r#�
test_alphac	���tjjd�tjjd�}tj�\}}|j|dgd�gd�dd��|j|d	zdgd�gd�ddd
��|j|dzdgd�gd�ddd
��|j|dzdgd�gd�dd��|j|dzdgd�gd�dd��y)Nrrz-Dr5rwrPr�)r�rr�r8r8r7)r�rr�r8rcrr�rrQr�r�s   r!r�r�:s����I�I�N�N�1��
�9�9���B��D��l�l�n�G�C���G�G�D�$�i�]��b��"��G�G�D�1�H�d�-�]��b����
�G�G�D�1�H�d�)���b����
�G�G�D�1�H�d�-�]��b��"��G�G�D�1�H�d�-�Y��b��"r#�	eventplotc�V�tjjd�tjjddg�j�}tjjddg�j�}||z}t	|�}gd�gt	|�z}gd�gd�gd�gd	�gd
�gd�g}||z}dtj
dt	|��d
zz}gd�}|j�|z}	d
gt	|�z}
gd�}|
|z}t
j�}
|
j�}|j|||	|��}t	|�}||k(sJ�|||	|d�}t
j�}
|
j�}|jdddd|��}t	|�}||k(sJ�y)NrrxrPr)rr7rur5rxrp)r7rr)r7rr7)rr7r7r����Q��?)i�r�r7r�rr�)r�r8r7r7r�r�)r?�lineoffsets�linelengths)r�r;�lor�r�r;r�r�)r?r�r�r�)
rfrgrhr�r�rnr%r�r�r�)r;�data2r��num_datasets�colors1�colors2r?�lineoffsets1�lineoffsets2r��linelengths1�linelengths2r�r+�axobj�colls�num_collectionss                 r!�test_eventplotr�Xs����I�I�N�N�1���I�I���b�"�X�&�-�-�/�E��I�I���a��W�%�,�,�.�E��5�=�D��t�9�L��l�S��Z�'�G��������G��w�
�F���	�	�!�S��Z�0�3�6�6�L�+�L��%�%�'�,�6�K��5�3�u�:�%�L�'�L���-�K�

�*�*�,�C��O�O��E��O�O�D��[�(3�
�
5�E��%�j�O��l�*�*�*��f�K�{�K�D�

�*�*�,�C��O�O��E��O�O�E�#�4�(,�4�
�
9�E��%�j�O��l�*�*�*r#ztest_eventplot_defaults.pngc�r�tjjd�tjjddg�j�}tjjddg�j�}||z}t	j
�}|j
�}|j|�y)zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    rrxrPrN)rfrgrhr�r%r�r�r�)r;r�r�r+r�s     r!�test_eventplot_defaultsr��s����I�I�N�N�1���I�I���b�"�X�&�-�-�/�E��I�I���a��W�%�,�,�.�E��5�=�D�

�*�*�,�C��O�O��E�	�O�O�D�r#r?))r-)z
tab:orangeztab:pinkztab:cyan�bLacK)rrxN)r7rr7r�c��dgdgdgdgg}|D�cgc]}|�|nd��
}}t|�dk(r|d}tjtj|�t|�df�}tj�\}}t|�dk(r|d}|j||��}t||�D]\}}t|j�|��!ycc}w)	zBTest the *colors* parameter of eventplot. Inspired by issue #8193.rr7r8r�Nr�r�r?)r�rf�broadcast_tor��
to_rgba_arrayr%rr�r�rr)	r?r�r;rqr+r r�rXr�s	         r!�test_eventplot_colorsr��s����C�!��q�c�A�3��D�7=�=��Q�]���,�=�H�=��8�}����A�;�����w�4�4�X�>��T��A��O�H��l�l�n�G�C��
�6�{�a�������,�,�t�F�,�3�K��;��1�1���e�����(�%�0�1��>s�
Cz!test_eventplot_problem_kwargs.pngc
���tjjd�tjjdg�j�}tjjdg�j�}||g}t	j
�}|j
�}|j|ddgddgdd	gd	dgd
dgdd
g��t|�dk(sJ�td�|D��sJ�y)z�
    test that 'singular' versions of LineCollection props raise an
    MatplotlibDeprecationWarning rather than overriding the 'plural' versions
    (e.g., to prevent 'color' from overriding 'colors', see issue #4297)
    rrPr�r!r
r;r�r8r7r��dashed�dashdotr)r?r�r�r!rr�r�c3�PK�|]}t|jt���� y�wr	)�
issubclass�categoryr)r��wis  r!r�z0test_eventplot_problem_kwargs.<locals>.<genexpr>�s$����"���"�+�+�'C�D�"�s�$&N)
rfrgrhr�r%r�r�r�r�r�)�recwarnr;r�r�r+r�s      r!�test_eventplot_problem_kwargsr�s����I�I�N�N�1���I�I���b�T�"�)�)�+�E��I�I���b�T�"�)�)�+�E��5�>�D�

�*�*�,�C��O�O��E�	�O�O�D���:���*� !�1�v� �!�f� '��2�(�(�3�
�5��w�<�1�����"� �"�"�"�"r#c��tjdd�\}}|jggdg��tj�y)Nr7)r�r�r�r�r��r%rr�r
r*s  r!�test_empty_eventplotr
�s5���l�l�1�a� �G�C���L�L�"��3�4�L�5��H�H�Jr#r�rR)N�verticalrPc��|�ind|i}tjdd�\}}|j|fi|��tj�y)z#Introduced when fixing issue #6412.NrRr7r	)r�rR�optsr+r s     r!�test_eventplot_orientationr�sE���$�2�=�+�*F�D��l�l�1�a� �G�C���B�L�L������H�H�Jr#c��tjddd�tjddd�tjddd�g}tjddd�tjddd�g}|j�}|j|d��|j|d��|j�}|j||g�y)	Nr+r7r8r�r�r5r)r�)rrr�)rr�ts_1�ts_2r s     r!�test_eventplot_units_listr�s���
���d�A�q�)�8�+<�+<�T�1�a�+H����d�A�q�)�+�D����d�A�r�*�H�,=�,=�d�A�r�,J�K�D�	�	�	�	�B��L�L��1�L�%��L�L��1�L�%�	�	�	�	�B��L�L�$���r#zmarker_styles.pngc
��tj�\}}ttjj
jd���}|j
d�dg|�}t|�D]Z\}}|j|dzdztjd�dzztjd�dz|zd|d|dzz|���\y)	Nc�B�tt|��t|�zSr	)r�r��r0s r!r�z$test_marker_styles.<locals>.<lambda>�s��3�t�A�w�<��A��#6�r#)r�rr8r�r�r�)r�r{r�r.)r%r�sortedrU�markersr�rVr�r�rfrnr�)r+r rr1r{s     r!�test_marker_stylesr�s����l�l�n�G�C��
�Z�'�'�3�3�;�;�6�8�G��N�N�6��� �� �G��w�'�@�	��6�
����Q���	�B�I�I�b�M�"�,�,�b�g�g�b�k�"�n�Q�.>�"��"�Q�q�S�&��	�	@�@r#zrc_markerfill.pngc���tj�\}}tjd�}t	gd��D]1\}\}}|t
jd<|j||z|���3y)Nr7))r=r�)rNr�)rrbzmarkers.fillstyler)r%rrfrnr�rUr�r�)r+r r0�idxr�r{s      r!�test_markers_fillstyle_rcparamsr�sc���l�l�n�G�C��
�	�	�!��A� )�:�!<�&���_�e�V�38�
���/�0�
����#��f��%�&r#zvertex_markers.pngc��ttd��}d}gd�}tj�\}}|j	|d|d��|j	|ddd�d|d��|jddg�|j
ddg�y)Nr�))r�r�r>rIr?r�r�rr�r
)r�r�r%rr�r�r�)r��marker_as_tuple�marker_as_listr+r s     r!�test_vertex_markersrsx����b�	�?�D�:�O�9�N��l�l�n�G�C���G�G�D�B��C�G�@��G�G�D��2��J�"�^��G�E��K�K��R����K�K��R��r#�vline_hline_zorder�errorbar_zorder�x86_64c���ttd��}tj�}|j	�}|j|dd��|j
dddd��|j
dddd��|jdd	dd��|jd
ddd��|jd
�tj�}|j	�}ttd��}tjd�}ttd��}|j|||ddd��td�D]-}|j
|dd|��|j
|dd|���/|jd�y)Nr�r�)r8r6r7r)r�r8r6r�r7r�r8r�r�zaxvline and axhline zorder testr!)r)r6r8r�)r8r�r6zerrorbar zorder test)r�r�r%r�rPr�rp�axvliner3rfrfr$)r0r+r r1r)r�s      r!�test_eb_line_zorderr%s;��	
�U�2�Y��A��*�*�,�C�	����B��G�G�A�"�Q�G���J�J�q��"�Q�J�/��J�J�q��B�r�J�2��J�J�q���1�J�-��J�J�q���1�J�-��L�L�2�3��*�*�,�C�	����B��U�2�Y��A�
�����A���b�	�?�D��K�K��1�4��a�s�K�;�
�2�Y�2��
�
�
�1��#�a�
�0�
�
�
�A�2�!�3�q�
�1�2��L�L�'�(r#c�D�|j�}|jdd��|jddgddgd�|jddd	�
�|j�}|jdd��|jddgddgd�|jddgd
dgd	�
�y)N)r�r�)rr7rCr�rtz.-)r7r)r�r�r�rr7r�rr�)rr�r��axliners   r!�test_axline_loglogr(/s���	�	�	�	�B��F�F�	�	�F�*��I�I�r�2�h��R��$�'��I�I�i��s�I�+�	�	�	�	�B��F�F�	�	�F�*��I�I�r�2�h��R��$�'��I�I�q�"�g��d�|�s�I�+r#c��|j�}|jdd��|jdd�|jddd��|jdd	d
��|jddd
��|jddd��|jdtd�d��|j�}|jdd��|j	ddgddg�|jdd��|jdd
��|jdd
��|j	ddgddgd��|j
dd��y)Nr?rCr�rIr�r�r")rr��r7r�r�)gffffff�r�rr�)�sloper�)r7r�r��C4)r�r7�infrvr�r7r�)rr�r'r�r�rpr$rs   r!�test_axliner.<s��	�	�	�	�B��F�F��g�F�&��I�I�f�f���I�I�f�f�D�I�)��I�I�h���I�-��I�I�l�!�4�I�0��I�I�i�t�4�I�0��I�I�i�u�U�|�4�I�8�	�	�	�	�B��F�F��g�F�&��G�G�R��G�b�!�W���J�J�q��J���J�J�s�$�J���J�J�t�4�J� ��G�G�R��G�c�4�[��G�-��J�J�t�4�J� r#c�B�|j�}|jdd��|jdd|j��|jddd|j��|jd	d
d|j��|jdd
d|j��|j�}|jdd��|j	ddgddg�|j	d
dgdd
gd��|j	ddgd
d
gd��|j	d
d
gddgd��y)Nr?rCr�r7�r+rr*r��r+r�r�r�r�rr�)r�r)r�r7r�)r�rr�r")rr�r'r+r�rs   r!�test_axline_transaxesr3Ss��	�	�	�	�B��F�F��g�F�&��I�I�f�A����I�6��I�I�h�a�t�r�|�|�I�D��I�I�j������I�F��I�I�h������I�E�	�	�	�	�B��F�F��g�F�&��G�G�R��G�b�!�W���G�G�Q��F�R��G�4�G�(��G�G�R��G�a��V�4�G�(��G�G�Q��F�R��G�4�G�(r#c�B�|j�}|jdd��|jdd|j��|jddd|j�	�|jdd
d|j�	�|jdd
��|j	dd�|j�}|jdd
��|j	dd�|jd
dgd
dg�|jd
dgd
dgd��|jd
dgddgd��y)Nr?rCr�r7r0r2r8r�r1rr�)rr�r�r�r�r�r")rr�r'r+�set_size_inchesr�rs   r!�test_axline_transaxes_panzoomr6ds��
�	�	�	�B��F�F��g�F�&��I�I�f�A����I�6��I�I�j������I�F��I�I�j������I�F��F�F��W�F�%����Q��"�	�	�	�	�B��F�F��W�F�%����A�q�!��G�G�Q��F�Q��F���G�G�Q��F�Q��G�4�G�(��G�G�Q��F�Q��F�$�G�'r#c�l�tj�\}}tjt�5|jd�ddd�tjt�5|jddd��ddd�|j
d�tjt�5|jdd��ddd�|j
d�|jd�tjt�5|jdd��ddd�|jd�tjt�5|jdd�tj�ddd�y#1swY��7xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)z3Exactly one of *xy2* and *slope* must be specified.r�NrIr7)r+rr	)
r%rr�r�r�r'r
r�r�r
r*s  r!�test_axline_argsr8xs@���l�l�n�G�C��	���y�	!��
�	�	�&���	���y�	!�+�
�	�	�&�&��	�*�+��M�M�%��	���y�	!�#�
�	�	�&��	�"�#��M�M�(���M�M�%��	���y�	!�#�
�	�	�&��	�"�#��M�M�(��	���z�	"��
�	�	�&�&�!����
������+�+��#�#��#�#����s;�E8�$F�+F�F�'F*�8F�F�F�F'�*F3)�vlines_basic�vlines_with_nan�
vlines_maskedc�>�gd�}gd�}tj�\}}|j|d|dd��gd�}dd	d
dtjdg}tjd
d�
�\}\}}}	|j|d|dd��gd�}
tjdd	d
ddg}|j|
d|dd
d��gd�}tjdd	d
dtjg}
|	j|d|
dd��||||	fD]}|jdd��|j
�|j
�k(sJ�|j
�|j
�k(sJ�|j
�|	j
�k(sJ�tj�\}}tjjgd�d�}tjjgd�d�}tjjgd�d�}|j|||dd��|jdd�y�N)r8r�rr�r7)r8���r�rQr8rr6r��r?r!)r8r�rr�rr7r8r>r�rQ)rrQ)r�rVr!r)r?r!r�r�r�)r8rrrQr�r�)rr7r�rr8r7)r�r�r�r5�r�r�r�)	r%rrorfr�r�r�r�masked_equal)r�r�r�rr>r?r�rrr�x3r��x4�y4r �fig3�ax5�x5�ymin5�ymax5s                    r!�test_vlinesrJ�����
�B�	�B�����I�D�#��J�J�r�1�b���J�2�
�B�
�R��A�r�v�v�q�	!�B��L�L�q�&�A��D�/�3��S��J�J�r�1�b���J�2�	�B�
�&�&�!�R��A�q�	!�B��J�J�r�1�b���T�J�B�	�B�
�&�&�!�R��A�r�v�v�	&�B��J�J�r�1�b���J�2��C��c�"���
���A�r����<�<�>�S�\�\�^�+�+�+��<�<�>�S�\�\�^�+�+�+��<�<�>�S�\�\�^�+�+�+�����I�D�#�	���	�	�0�!�	4�B��E�E���2�A�6�E��E�E���7��<�E��J�J�r�5�%��q�J�9��L�L��B�r#c��tj�\}}tjddi�5|j	ddd�}tj
j
|j�d�sJ�	ddd�y#1swYyxYw�Nzlines.colorrr�rr7)r%rr�r
ror?rar�r+r r�s   r!�test_vlines_defaultrO��j���l�l�n�G�C��	�����.�	/�?��	�	�#�q�!�$���z�z�$�$�U�_�_�%6��>�>�>�?�?�?���AA=�=B)�hlines_basic�hlines_with_nan�
hlines_maskedc�>�gd�}gd�}tj�\}}|j|d|dd��gd�}dd	d
dtjdg}tjd
d�
�\}\}}}	|j|d|dd��gd�}
tjdd	d
ddg}|j|
d|dd
d��gd�}tjdd	d
dtjg}
|	j|d|
dd��||||	fD]}|jdd��|j
�|j
�k(sJ�|j
�|j
�k(sJ�|j
�|	j
�k(sJ�tj�\}}tjjgd�d�}tjjgd�d�}tjjgd�d�}|j|||dd��|jdd�yr=)	r%r�hlinesrfr�r�r�rrA)r�r�r�rr?r>r�rrrr�rBrDrCr rErF�y5�xmin5�xmax5s                    r!�test_hlinesrZ�rKr#c��tj�\}}tjddi�5|j	ddd�}tj
j
|j�d�sJ�	ddd�y#1swYyxYwrM)r%rr�r
rVr?rarrNs   r!�test_hlines_defaultr\�rPrQr�r�rc�T�gd�}|jddd�j|dd|d��|jddd�j|dd|d��gd�}gd�}|jddd�j|dd|d��|jddd�j|dd|d��y)	N)rr�r�r�r<r8r7rr�r?)r7r8r�r�)rr�r�r<)r�rorV)rrr��test_colors�	expect_xy�expect_colors      r!�test_lines_with_colorsra�s���?�K�����A�q�!�(�(��q�!�0;�q�)�J�����A�q�!�(�(��q�!�0;�q�)�J��I�5�L�����1�a� �'�'�	�1�a�/;�q�(�J�����1�a� �'�'�	�1�a�/;�q�(�Jr#�step_linestylec	��tjd�x}}tjdd�\}}|j	�}gd�}t||�D]s\}}|j
||d|d��|j
||dzd|d��|j
||dzd|d	��|jd
dg�|jd
dg��u|||dz|dzd�}tjdd�\}}|j	�}gd�}t||�D]p\}}|j
d
dd|d|��|j
d
dd|d|��|j
d
dd|d	|��|jd
dg�|jd
dg��ry)Nr�r8)rrrqrr��pre)r8r�r�r7r�r�r�r7)r[�Y0�Y1�Y2r[re)r8r�r�r�rfrg)	rfrnr%rr�r�rir�r�)r0r1r+�ax_lst�	ln_stylesr r�r�s        r!�test_step_linestylerj�s~���I�I�b�M��A���,�,�q�!�$�K�C��
�^�^�
�F�&�I��f�i�(����B�
����1��b���6�
����1�q�5�Q�"�E��:�
����1�q�5�Q�"�F��;�
���R��G��
���R��G����!�1�Q�3�a��c�2�D��,�,�q�!�$�K�C��
�^�^�
�F�&�I��f�i�(����B�
����T�a�2�U���F�
����T�a�2�U���F�
����T�a�2�V�$��G�
���R��G��
���R��G��r#�mixed_collectionc��tj�\}}tjdddd��}tj
j
|gd��}|jddgd	d	gg�|jd
dg�tj
j
|gd��}|jddgd
dgg�|jd
dg�|jgd�gd�g�|jjd�|j|�|j|�|jdd�|jdd�y)N)rQrQrrr�)�radiusrr T)�match_originalrrr7r�r�i��i�)rrr�r�)rrr�r�r-r5)r%rr;�Circler�r��PatchCollection�set_offsets�set_linewidths�set_edgecolorsrrr�r�r�)r+r r;r�r�s     r!�test_mixed_collectionrts���l�l�n�G�C������q�F�g�N�A�

���	(�	(�!��T�	(�	B�B��N�N�Q��F�R��H�%�&����q�!�f��

���	(�	(�!��T�	(�	B�B��N�N�R��G�c�3�Z�(�)����q�!�f�����'�)9�:�;��H�H���u�����b�����b���K�K��2���K�K��2�r#c���tjtjd�tjd�d�}|j�|j
�j�dk(sJ�y)Nr�r7)r�r7rr)r%rWrf�int32�int64r�get_subplotspec�get_geometryr�s r!�test_subplot_key_hashrz4sM��	���R�X�X�a�[�"�(�(�1�+�q�	1�B��H�H�J�
����,�,�.�,�>�>�>r#)zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.png��Q���?)r�rr�c
���dtjd<d}d}|dz|dz|dzg|dz|d	z|d
zgg}td|ztj|�z�}tj
d|d
|z�}tjtjdtjztjj||�z�jd
���}td|zdz�}tjjd�tjtjj|�tjj|�g�}gd�}||f||ffD]�\}	}
|
dz}tdtj tj"|
��z�}t%t'j(�j+d�|�D]\}
}|
j-|	|
||||���t%t'j(�j+d�|�D]:\}
}|
j-|	|
||||dtj.j1����<��y)z)Test axes.specgram in default (psd) mode.r~r�rrrrr�r�������@�ffffff@�������'@r�rr7r8rK�r��onesided�twosidedr�)�NFFT�Fs�noverlap�pad_to�sidesr	)r�r�r�r�r�rr�N)rUr��intrfr$rnrdr�r��multiply�outerr�rgrhr�r��ceil�log2r�r%r�r�specgramr?�LogNorm)r�r��fstims�
NFFT_freqsr0�y_freqs�
NFFT_noise�y_noise�	all_sidesr1r�r�r�r r�s               r!�
test_specgramr�:s��2;�J���-�.��A�	�B��!�t�R��T�2�b�5�!�B�s�F�B�s�F�B�t�G�#<�
=�F��R�"�W�r�v�v�f�~�-�.�J�
�	�	�!�Q��"���A��n�n�
���q�2�5�5�y�2�;�;�,�,�V�Q�7�7�8�<�<�!�<�D�F�G��R�"�W�r�\�"�J��I�I�N�N�1���n�n�b�i�i�7�7��:�B�I�I�N�N�1�<M�N�O�G�3�I��j�)�G�Z�+@�A�	J���4��1�9���Q�"�'�'�"�'�'�$�-�0�0�1���S�Z�Z�\�2�2�1�5�y�A�	4�I�B���K�K����h�%�U�
�
4�	4��S�Z�Z�\�2�2�1�5�y�A�	J�I�B���K�K����h�%�U�&�Z�->�->�-F�-F�-H�
�
J�	J�
	Jr#)zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc���dtjd<d}d}|dz|dz|dzg|dz|d	z|d
zgg}td|ztj|�z�}tj
d|d
|z�}tjdtjztjj||�z�jd
��}d
|dd�df<tj|�}td|zdz�}tjjd�tjtjj|�tjj!|�g�}gd�}	||f||ffD]�\}}
|
dz}tdtj"tj$|
��z�}t't)j*�j-d�|	�D]\}
}|
j/||
||||d���t't)j*�j-d�|	�D];\}
}|
j/||
||||ddtj0j3���	�=��y)z%Test axes.specgram in magnitude mode.r~r�rrrrr�rr}r~rr�rr7r8rKNr�r�r�r��	magnitude�r�r�r�r�r�rcr	)r�r�r�r�r�rcrr�)rUr�r�rfr$rnr�r�r�r�r�r]rgrhrdr�r�r�r�r�r%r�rr�r?r�)r�r�r�r�r0r1r�r�r�r�r�r�r�r r�s               r!�test_specgram_magnituder�^s)��2;�J���-�.��A�	�B��!�t�R��T�2�b�5�!�B�s�F�B�s�F�B�t�G�#<�
=�F��S�2�X����v��.�/�J�
�	�	�!�Q��"���A�
���q�2�5�5�y�2�;�;�,�,�V�Q�7�7�8�<�<�!�<�D�A��A�a��e�H��i�i��l�G��R�"�W�r�\�"�J��I�I�N�N�1���n�n�b�i�i�7�7��:�B�I�I�N�N�1�<M�N�O�G�3�I��j�)�G�Z�+@�A�	J���4��1�9���Q�"�'�'�"�'�'�$�-�0�0�1���S�Z�Z�\�2�2�1�5�y�A�	F�I�B���K�K����h�%�U��
�
F�	F��S�Z�Z�\�2�2�1�5�y�A�	J�I�B���K�K����h�%�U��&�Z�->�->�-F�-F�-H�
�
J�	J�
	Jr#)zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc��dtjd<d}d}|dz|dz|dzg|dz|d	z|d
zgg}td|ztj|�z�}tj
d|d
|z�}tjdtjztjj||�z�jd
��}d
|dd�df<tj|�}td|zdz�}tjjd�tjtjj|�tjj!|�g�}gd�}	||f||ffD]�\}}
|
dz}tdtj"tj$|
��z�}dD]�}
t't)j*�j-d�|	�D]X\}}|j/||
|||||
��t1j2t4�5|j/||
|||||
d��ddd��Z����y#1swY�ixYw)z,Test axes.specgram in angle and phase modes.r~r�rrrrr�rr}r~rr�rr7r8rKNr�r�)r��phaser�r��dB)r�r�r�r�r�rcr)rUr�r�rfr$rnr�r�r�r�r�r]rgrhrdr�r�r�r�r�r%r�rr�r�r�r�)r�r�r�r�r0r1r�r�r�r�r�r�r�rcr r�s                r!�test_specgram_angler��s��2;�J���-�.��A�	�B��!�t�R��T�2�b�5�!�B�s�F�B�s�F�B�t�G�#<�
=�F��R�"�W�r�v�v�f�~�-�.�J�
�	�	�!�Q��"���A�
���q�2�5�5�y�2�;�;�,�,�V�Q�7�7�8�<�<�!�<�D�A��A�a��e�H��i�i��l�G��R�"�W�r�\�"�J��I�I�N�N�1���n�n�b�i�i�7�7��:�B�I�I�N�N�1�<M�N�O�G�3�I��j�)�G�Z�+@�A�
,���4��1�9���Q�"�'�'�"�'�'�$�-�0�0�1��&�	,�D� �����!6�!6�q�!9�9�E�
,�	��E����A�D�R�(�#)��T��C��]�]�:�.�,��K�K����h�'-�U��&*� �,�,�,�
,�	,�
,�,�,�s�I	�I
c��tjtjd�dd��\}}}}|j	�\}}}}|dk(r|dk(sJ�y)z;Test axes.specgram when Fs is None, should not throw error.r�Nr	)r�rrx�`)r%r�rfr��
get_extent)�spec�freqsr�r6rdre�freq0�freq1s        r!�test_specgram_fs_noner��sN�����b�g�g�c�l�t�8�L��D�%��B�!�}�}���D�$��u��2�:�$�"�*�$�$�*r#c� �tjd�}tj|�}dtjd<|j�j
|�dtjd<|j�j
|�y)zCTest specgram ignores image.origin rcParam and uses origin 'upper'.r��upperzimage.originrzN)rfrnr�r%r�rr�)rrr��signals    r!�test_specgram_origin_rcparamr��sn��	�	�	�#��A�
�V�V�A�Y�F�#*�C�L�L�� ��������'�$+�C�L�L�� �
���� � ��(r#c���tjd�}tj|�}tjt
�5t
j|d��ddd�y#1swYyxYw)z4Ensure passing origin as a kwarg raises a TypeError.r�rzr�N)rfrnr�r�r�r�r%r�)r�r�s  r!�test_specgram_origin_kwargr��sK��
�	�	�#��A�
�V�V�A�Y�F�	���y�	!�-����V�G�,�-�-�-�s�A%�%A.)z
psd_freqs.pngz
csd_freqs.pngz
psd_noise.pngz
csd_noise.pngg����Mb`?c
�*�d}d}|dz|dz|dzg|dz|dz|dzgg}td	|ztj|�z�}tjd
|d|z�}tjdtj
ztjj||�z�jd�
�}td	|zdz�}tjjd
�tjj|�tjj|�g}ddiddd�ddd�g}||f||ffD�]W\}	}
|
dz}tdtjtj|
��z�}tt!j"�j%d�|�D]f\}
}|
j&tj(|	�f|
|||d�|��}t+|�d|j-dd�zk(sJ�|
j/dd���htt!j"�j%d�|�D]R\}
}|
j0|	|
|||d�|��}t+|�d|j-dd�zk(sJ�|
j/dd���T��Zy)NrW�Y@rr�rr}r~rrrrr7r8rKr�r�r�F)r��return_liner�Tr�)r�r�r�r�r�r���xlabel�ylabel)r�rfr$rnr�r�r�r�r�rgrhr�r�r�r�r�r%r�r�psdrdr�r�r��csd)r�r�r�r�r0�ys_freqsr��ys_noise�
all_kwargsrGr�r�r�r r��rets                r!�test_psd_csdr��sr��	�A�	
�B��!�t�R��T�2�b�5�!�B�s�F�B�s�F�B�t�G�#<�
=�F��T�B�Y������/�0�J�
�	�	�!�Q��"���A��v�v�a�"�%�%�i�"�+�+�"3�"3�F�A�">�>�?�C�C��C�K�H��T�B�Y��^�$�J��I�I�N�N�1���	�	�)�)�!�,�b�i�i�n�n�Q�.?�@�H��I�&�&�u�=�&�t�<�>�J��
�+�h�
�-C�D�)���D��1�9���Q�"�'�'�"�'�'�$�-�0�0�1���c�j�j�l�3�3�A�6�
�C�	)�J�B���"�&�&�����+�E�$�2�"*�6�E�=C�E�C��s�8�q�6�:�:�m�U�#C�C�C�C�C��F�F�"�R�F�(�		)�
�c�j�j�l�3�3�A�6�
�C�	)�J�B���"�&�&�"�4�B�"*�6�E�=C�E�C��s�8�q�6�:�:�m�U�#C�C�C�C�C��F�F�"�R�F�(�		)�)r#)z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc���d}d}|dz|dz|dzg}td|zt|�z�}tdtjtj|��z�}tj
d|d	|z�}tjdtjztj||�z�d
tj
d�zzjd	��}tjjd�tjtjj|�tjj|�g�d
z
}gd�}||d�}	||fD�]�}
tt!j"�j%d�|�D]1\}}|j&|
fd|i|	��\}
}}|j)dd���3tt!j"�j%d�|�D]5\}}|j&|
fd|i|	�ddi��\}
}}|j)dd���7tt!j"�j%d�|�D]1\}}|j*|
fd|i|	��\}
}}|j)dd���3tt!j"�j%d�|�D]1\}}|j,|
fd|i|	��\}
}}|j)dd���3���y)NrWr�rr�rrrr8rr7r�r�rKr�r�)r�r�r�r�r�rr�)r�r$rfr�r�rnr�r�r�r�rgrhr]r�r�r�r%r�r�magnitude_spectrumr��angle_spectrum�phase_spectrum)r�r��fstims1r�r�r0r�r�r�r�r1r r�r�r�r�s                r!�
test_spectrumr��s���	�A�	
�B��!�t�R��T�2�b�5�!�G��t�b�y�3�w�<�'�(�D�
��b�g�g�b�g�g�d�m�,�,�
-�F�
�	�	�!�Q��"���A����q�2�5�5�y�2�8�8�A�w�#7�7�8�2�r�y�y��|�;K�K��������I�I�N�N�1���i�i����2�2�1�5�r�y�y�~�~�a�7H�I�J�R�O�G�3�I��&�
)�F��w�
�
)���S�Z�Z�\�2�2�1�5�y�A�	)�I�B�� 5�� 5� 5�a� O�u� O�� O��D�%���F�F�"�R�F�(�	)��S�Z�Z�\�2�2�1�5�y�A�	)�I�B�� 5�� 5� 5�a�!B�u�!B��!B�<@�!B��D�%���F�F�"�R�F�(�	)��S�Z�Z�\�2�2�1�5�y�A�	)�I�B�� 1�� 1� 1�!� K�5� K�F� K��D�%���F�F�"�R�F�(�	)��S�Z�Z�\�2�2�1�5�y�A�	)�I�B�� 1�� 1� 1�!� K�5� K�F� K��D�%���F�F�"�R�F�(�	)�
)r#c��tj�jd�}|D]}|jj	d��� tjd��5|djtjd��|djtjd�tjd��ddd�y#1swYyxYw)	Nr8T)r�r�r�rr�r7)
r%r�rr\r�rfr�r�rfr��r�r s  r!�test_psd_csd_edge_casesr�s���

�*�*�,�
�
��
"�C��$��
�����d��#�$�	���H�	%�-��A��
�
�2�8�8�A�;���A��
�
�2�8�8�A�;������,�-�-�-�s
�A#C	�	Cc�,�|j�}|j�}|j�}|j�|j�|j�}|jj�|jj�yr	)r�rrrVrY�tick_bottomr\�	tick_left)rrrr�ax_twinx�ax_twinyrss      r!�test_twin_remover�!sj���"�"�$�G��}�}��H��}�}��H��O�O���O�O��
�
 �
 �
"�F��L�L����
�L�L���r#ztwin_spines.pngc���d�}tjd��}|jd��|j�}|j	�}|j	�}|j
jjd�||�|j
jjd�|jgd�gd�d	�\}|jgd�gd
�d�\}|jgd�gd�d
�\}|jdd�|jdd�|jdd�|jdd�|jjj|j��|jjj|j��|jjj|j��t!dd��}|j"dd|j�d�|��|j"dd|j�d�|��|j"dd|j�d�|��|j"dddi|��y)Nc��|jd�|jjd�|jddjd�y)NTF)�set_frame_onrr�spinesr�s r!�make_patch_spines_invisiblez5test_twin_spines.<locals>.make_patch_spines_invisible3s6��
�����
�����U�#�
�	�	�!�� � ��'r#)rr�r�r)rA)rUr�Tr3zb-)rr�r8zr-)rr�r�zg-rr8rr7�Ar�)rxr�r1)r�r?r�r0r�)r%r�rNr�rr�rA�set_positionrr�r�r�r\r.rrrY�tick_params)	r�r+�host�par1�par2r�r��p3�tkws	         r!�test_twin_spinesr�0s���(�
�*�*�V�
$�C����d��#��?�?��D��:�:�<�D��:�:�<�D�	�K�K���"�"�=�1� ��%��K�K���!�!�$�'�
�)�)�I�y�$�
/�C�B�
�)�)�I�y�$�
/�C�B�
�)�)�I�|�T�
2�C�B��M�M�!�Q���M�M�!�Q���M�M�!�Q���M�M�!�R���J�J�����r�|�|�~�.��J�J�����r�|�|�~�.��J�J�����r�|�|�~�.�
�A�S�
!�C��D���<�#�b�l�l�n�<��<��D���<�#�b�l�l�n�<��<��D���<�#�b�l�l�n�<��<��D���%�#�%��%r#ztwin_spines_on_top.pngc��dtjd<dtjd<tj�}|j	ddd�}tjgd�gd�g�}|j�}|j|d|ddzd	�
�|j|d|ddzd	d��|j|d|ddzd
�
�|j|d|ddzd
d��|d|ddzd�}tj�}|j	ddd�}|j�}|jddd	|��|jddd	d|��|jddd
|��|jddd
d|��y)NgH@rr�r7)rriLi�i�)r�i-r|r�rg@�@z#BEAED4r"r�)r�rcz#7FC97Fr�)r/r�r/r�)r�r�)r�rcr�)
rUr�r%r�r�rfr;rr�r�)r+rr�rs    r!�test_twin_spines_on_topr�]s���-1�J���(�)�-1�J���)�*�

�*�*�,�C�

�/�/�!�Q��
"�C�
�8�8�-�)�+�,�D��)�)�+�C��H�H�T�!�W�d�1�g�c�k��H�3����T�!�W�d�1�g�c�k��"��E��H�H�T�!�W�d�1�g�c�k��H�3����T�!�W�d�1�g�c�k��"��E��a��t�A�w�s�{�+�D�

�*�*�,�C�

�/�/�!�Q��
"�C�

�)�)�+�C��H�H�S�#�Y�T�H�2����S�#�Y�b�t��D��H�H�S�#�Y�T�H�2����S�#�Y�b�t��Dr#z(grid_which, major_visible, minor_visible))r�TT)�majorTF)r�FTc�V���tjjd|d��tj�\}}|j
j
�t�fd�|jjD��sJ�t�fd�|jjD��sJ�y)NT)r1zaxes.grid.whichc3�X�K�|]!}|jj��k(���#y�wr	��gridliner)r��tick�
major_visibles  �r!r�z*test_rcparam_grid_minor.<locals>.<genexpr>��+�����0���}�}�(�(�*�m�;�0���'*c3�X�K�|]!}|jj��k(���#y�wr	r�)r�r��
minor_visibles  �r!r�z*test_rcparam_grid_minor.<locals>.<genexpr>�r�r�)r�r�r�r%rr0r
r�rY�
majorTicks�
minorTicks)�
grid_whichr�r�r+r s ``  r!�test_rcparam_grid_minorr�|s�����L�L���d�z�J�K��l�l�n�G�C���J�J�O�O���0��8�8�.�.�0�0�0�0��0��8�8�.�.�0�0�0�0r#c�"�tj�\}}|j�|jj	�|j
jdjj�sJ�|jd��|jj	�|j
jdjj�rJ�|jd��|jj	�|j
jdjj�sJ�|j�|jj	�|j
jdjj�rJ�y)NrF��visibleT)	r%rrZr0r
rYr�r�rr*s  r!�	test_gridr��s���l�l�n�G�C���G�G�I��J�J�O�O��
�8�8���q�!�*�*�6�6�8�8�8��G�G�E�G���J�J�O�O���x�x�"�"�1�%�.�.�:�:�<�<�<��G�G�D�G���J�J�O�O��
�8�8���q�!�*�*�6�6�8�8�8��G�G�I��J�J�O�O���x�x�"�"�1�%�.�.�:�:�<�<�<�<r#c�R�tj�\}}|jddd��|jjdj
j
�rJ�|jd��|jjdj
j
�sJ�tjddi�5|j�|jddd��|jjdj
j
�sJ�	ddd�y#1swYyxYw)	NTr�r�)�resetr��	labelsizerrr"r1)
r%rr�rYr�r�rrZr
r}r*s  r!�test_reset_gridr��s����l�l�n�G�C���N�N��W��N�;��x�x�"�"�1�%�.�.�:�:�<�<�<��G�G�%�G��
�8�8���q�!�*�*�6�6�8�8�8�	����d�+�	,�=�
���
�
���T��B��?��x�x�"�"�1�%�.�.�:�:�<�<�<�=�=�=�s
�;AD�D&c�<�||fD]P}|j�}|jd�|jdddddddd	d
ddd
��|j��R|jD]6}|j
j
�|jj
��8y)NT�inr�r�r�r�r�r�r}r�r�r�r)�	direction�lengthr�r��padr��
labelcolor�
labelrotation�
grid_color�
grid_alpha�grid_linewidth�grid_linestyle)r�rZr��draw_without_renderingrUrY�reset_ticksr\)rrr+r s    r!�test_reset_ticksr��s�����"�%��
�_�_�
��
����
�
����2�Q�d���T����A��		�	!�
	�"�"�$�%��m�m���
������
������r#c���tj�}|j�}|jd�|j	gd��t|j
�d�y)Nr�)rrr�r�)rr�)r%r�rPr$r�rr�r*s  r!�test_vline_limitr��s@��

�*�*�,�C�	����B��J�J�s�O��G�G�� ��B�K�K�M�9�-r#zfv, fh, args)r7rIc�
�tjjd�}tjt
d��5|||dd��ddd�tjt
d��5||d|d��ddd�tjt
d��5|||dd��ddd�tjt
d��5||d|d��ddd�y#1swY��xYw#1swY�pxYw#1swY�OxYw#1swYyxYw)	Nr7z"ymin must be a single scalar valuer^)�ymin�ymaxz"ymax must be a single scalar valuez"xmin must be a single scalar value)rdrez"xmax must be a single scalar value)rUrC�num2dater�r�r�)�fv�fh�args�bad_lims    r!�test_axline_minmaxr	�s������'�'��*�G�	���z�)M�	N�(�
�D�w�Q�'�(�	���z�)M�	N�(�
�D�q�w�'�(�
���z�)M�	N�(�
�D�w�Q�'�(�	���z�)M�	N�(�
�D�q�w�'�(�(�(�(��(�(��(�(��(�(�s/�
C�(
C!�
C-�
C9�C�!C*�-C6�9Dc��tjdddd��\}}|djgd�gd��|dj�\}}|dj	�\}}|dksJ�|dk\sJ�|dksJ�|d	k\sJ�y)
Nr7r8T)r�r�r�rOrrx)r8rrr�r)r%rr�r�r�)r+r�r�r�r�r�s      r!�test_empty_shared_subplotsr		�s����|�|�!�1�T�$�G�H�C����F�K�K�	�9�%�
��V�_�_�
�F�B��
��V�_�_�
�F�B��
��7�N�7�
��7�N�7�
��7�N�7�
��7�N�7r#c�d�dD]�}tjdd��\}}|djd|d��|dj�dk(sJ�|dj	�|k(sJ�tjdd��\}}|djd|��|dj�d	k(r��J�y)
N��box�datalimr8T)r�r�r)�
adjustable�sharer7�r	rc)r%r�
set_aspect�
get_aspect�get_adjustable)r	r+r�s   r!�test_shared_with_aspect_1r	�s���(�-�
��<�<�a��5���S��A����!�
�$��?��1�v� � �"�a�'�'�'��1�v�$�$�&�*�4�4�4��<�<�a��5���S��A����!�
��3��1�v� � �"�f�,�,�,�-r#c��tjddd��\}}|djdd��|djddgddg�|djddgddg�tj�|dj�|dj�k(sJ�|dj
�|dj
�k(sJ�y)	Nr8T)r�r�rOr)r	r7r�r)r%rr	r�r
r�r�rqs  r!�test_shared_with_aspect_2r	�s����|�|�!�D��>�H�C����F���a�t��$���F�K�K��A���A�����F�K�K��A���A����H�H�J��q�6�?�?���A���� 1�1�1�1��q�6�?�?���A���� 1�1�1�1r#c�H�dD�]�}tjdd��\}}|djd|��|djd|��|djddgd	d
g�|djd	d
gddg�tj�|dj�|dj�k7sJ�|dj
�|dj
�k(sJ�|jj|jjz}|D]�}|j�}|j|jz}|jj|jjz}||z|z}t|d
�t|j�d
�k(r��J����y)Nr	r8T)r�rOrr	r7r�r�r)r%rr	r�r
r�r��bbox_inchesr�r��get_position�viewLimr(r	)	r	r+r��
fig_aspectr r��
box_aspect�
lim_aspectrqs	         r!�test_shared_with_aspect_3r	�sv��(�C�
��<�<�a��5���S��A����!�
��3��A����#�*��5��A����Q��F�Q��F�#��A����Q��F�Q��F�#����
��1�v��� �C��F�O�O�$5�5�5�5��1�v��� �C��F�O�O�$5�5�5�5��_�_�+�+�c�o�o�.C�.C�C�
��	C�B����!�A����A�G�G�+�J����*�*�R�Z�Z�-=�-=�=�J�!�J�.��;�H���1�%��r�}�}���)B�B�B�B�	C�Cr#c���tjdddd��\}}|djd�tjt
d��5|j
�ddd�y#1swYyxYw)	Nr7r8T�r�rOrr�zset_aspect\(..., adjustable=r^)r%rr�r�r��RuntimeErrorr�)r+rUs  r!�test_shared_aspect_errorr"	sZ�����Q��$�t�<�I�C����G�L�L���	���|�+J�	K�%��"�"�$�%�%�%�s�A&�&A/zerr, args, kwargs, matchrz;axis\(\) takes 0 or 1 positional arguments but 2 were given)r�z4Unrecognized string 'foo' to axis; try 'on' or 'off'zthe first argument to axis*r�z1axis\(\) got an unexpected keyword argument 'foo'c��tj||��5tj|i|��ddd�y#1swYyxYw�Nr^)r�r�r%r�)�errr	r�r_s    r!�test_axis_errorsr&	s8��
���s�%�	(�"����$�!�&�!�"�"�"�s	�7�Ac���tj�}tjtd��5|jd�ddd�tjtd��5|j
d�ddd�tjtd��5|jdd��ddd�tjtd��5|jd�ddd�tjtd��5|jd	�
�ddd�tjtd��5|jddd	�
�ddd�tjtd��5|jddd	��ddd�tjtd��5|jdd	��ddd�tjtd��5|jdd	��ddd�tjtd��5|jdd	��ddd�tjtd��5|jdd	��ddd�y#1swY��.xYw#1swY��xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��`xYw#1swY��5xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)Nzunknown value for which: 'foo'r^r�z!Cannot supply both positional andr�r�zargument must be amongzscilimits must be a sequencer7)�	scilimitszSpecifying 'loc' is disallowedrO)r?r0r=)r?r1zCannot pass both 'left'r)rOrdzCannot pass both 'right')rArezCannot pass both 'bottom')rNr	zCannot pass both 'top')r=r	)r%rPr�r�r��get_xaxis_transform�get_yaxis_transformr��set_prop_cycle�
set_anchor�ticklabel_formatr&r'r�r�r�s r!�test_axis_method_errorsr.	%sN��	����B�	���z�)I�	J�&�
���u�%�&�	���z�)I�	J�&�
���u�%�&�	���y�(K�	L�.�
���%�u��-�.�	���z�)A�	B��
�
�
�e���	���z�)G�	H�)�
���a��(�)�	���y�(H�	I�.�
�
�
�e��1�
�-�.�	���y�(H�	I�-�
�
�
�e��!�
�,�-�	���y�(A�	B�$�
������#�$�	���y�(B�	C�%�
���!�!��$�%�	���y�(C�	D�&�
���1�1��%�&�	���y�(@�	A�#�
������"�#�#�)&�&��&�&��.�.�����)�)��.�.��-�-��$�$��%�%��&�&��#�#�s��I.�%I;�J�J�J"�<J/�4J<�,K	�#K�K"�K.�.I8�;J�J�J�"J,�/J9�<K�	K�K�"K+�.K7c��tj�\}}t|dj|���}|j	d�|j	d�t|jj|jj�y)Nztwin{}r�r8)r%rr#r�r	r�bbox�extents)rr+r r.s    r!�test_twin_with_aspectr2	?sd���l�l�n�G�C��0�g�b�(�/�/�$�/�0�2�G��M�M�!�����q���r�w�w����|�|�+�+�-r#c�r�d}d}d}d}tjj�}|j�}|j	||�|j�|k(sJ�|j
�|k(sJ�|j	||�\}|j�|k(sJ�|j
�|k(sJ�|jd�|j�|k(sJ�|j
�|k(sJ�|jd��|j�|j�|k(sJ�|j
�|k(sJ�y)N)r�r)�$�r)r4	r�FT)�visible_only)
rUr�rr�r�r�r�r�relimr�)r�r�r>r?r+r r�s       r!�test_relim_visible_onlyr7	Js��	�B�	�B�	�B�	�B�
�
�
�
"�
"�
$�C�	���	�B��G�G�B��O�
�;�;�=�B����
�;�;�=�B�����G�G�B��O�E�D�
�;�;�=�B����
�;�;�=�B�������U��
�;�;�=�B����
�;�;�=�B�����H�H�$�H������
�;�;�=�B����
�;�;�=�B���r#c��tj�}|j�}|jd��|jd��y)z
    tests for issue #1172
    �large)r��out�r�N)r%r�rPr�r*s  r!�test_text_labelsizer<	cs6���*�*�,�C�	����B��N�N�W�N�%��N�N�U�N�#r#zpie_default.pngc	�~�d}gd�}gd�}d}tjd��\}}|j||||ddd	�
�y)N��Frogs�Hogs�Dogs�Logs�r�r�r}r���yellowgreen�gold�lightskyblue�
lightcoral�rr�rr)rQrr��%1.1f%%Tr)�exploder�r?�autopct�shadow�
startangle)r%r�pie)r��sizesr?rK	r�rs      r!�test_pie_defaultrQ	msJ��-�F��E�
B�F��G����V�,�I�D�#��G�G�E�7�6�&��d�r��;r#)�pie_linewidth_0rR	rR	)rr�c���d}gd�}gd�}d}tj||||ddddd	i�
�tjd�||||d�}tj�}|j	�}|jd
dddddddd	i|��	|jd�tj�tjd
dddddddd	i|��	tjd�y)Nr>	rC	rD	rI	rJ	Trr!r�rK	r�r?rL	rM	rN	�
wedgepropsr�)�lr�r;�exr�rW	rV	r;)rK	r�r?rL	rM	rN	rU	r�)r%rO	r�r�rP)r�rP	r?rK	r�r+r s       r!�test_pie_linewidth_0rX	ys���-�F��E�
B�F��G��G�G�E�7�6�&��d�r�#�Q�'�)��H�H�W���e�&��@�D�

�*�*�,�C�	����B��F�F�3��S���T�b�"�A�&�T��3��G�G�G���J�J�L��G�G�C��c�#��d�r�#�Q�'�d�4��H�H�W�r#zpie_center_radius.pngc���d}gd�}gd�}d}tj||||ddddd	id
d��
tjd
d
dtdd��tdd����tjd�y)Nr>	rC	rD	rI	rJ	Trr!rrr�)	rK	r�r?rL	rM	rN	rU	rXrmzCenter point)r7rO�->�arc3)�
arrowstyle�connectionstyle�square�	lightgrey)�boxstyler)r�r�r�r0	r�)r%rO	r�rYr��r�rP	r?rK	s    r!�test_pie_center_radiusrb	�sz��-�F��E�
B�F��G��G�G�E�7�6�&��d�r�#�Q�'��s�D��L�L��F�8� �D�17�9��H��D�F�
�H�H�W�r#zpie_linewidth_2.pngc��d}gd�}gd�}d}tj||||ddddd	i�
�tjd�y)Nr>	rC	rD	rI	rJ	Trr!r8rT	r��r%rO	r�ra	s    r!�test_pie_linewidth_2re	�sI��-�F��E�
B�F��G��G�G�E�7�6�&��d�r�#�Q�'�)��H�H�W�r#zpie_ccw_true.pngc
��d}gd�}gd�}d}tj||||dddd��tjd	�y)
Nr>	rC	rD	rI	rJ	Tr)rK	r�r?rL	rM	rN	�counterclockr�rd	ra	s    r!�test_pie_ccw_truerh	�sD��-�F��E�
B�F��G��G�G�E�7�6�&��d�r����H�H�W�r#zpie_frame_grid.pngc�$�d}gd�}gd�}d}tj||||ddddd	idd
��
tj|ddd�|||ddddd	idd
��
tj||ddd�||ddddd	idd��
tjd�y)Nr>	rC	rD	rI	rJ	Trr!rrJ)	rK	r�r?rL	rM	rN	rU	�framerXr�)r�r8)r�r�r�rd	ra	s    r!�test_pie_frame_gridrk	�s���-�F��E�
B�F��G��G�G�E�7�6�&��d�r�#�Q�'��v�'�
�G�G�E�$�B�$�K�����d�r�#�Q�'��v�'�
�G�G�E�7�4�R�4�=����d�r�#�Q�'��v�'�
�H�H�W�r#zpie_rotatelabels_true.pngc
��d}gd�}gd�}d}tj||||dddd��tjd	�y)
N)�Hogwartsr?	rA	rB	rC	rD	rI	rJ	Tr)rK	r�r?rL	rM	rN	�rotatelabelsr�rd	ra	s    r!�test_pie_rotatelabels_truero	�sD��1�F��E�
B�F��G��G�G�E�7�6�&��d�r����H�H�W�r#zpie_no_label.pngc���d}gd�}gd�}d}tj||||ddddd��	tjd	�tjd
d�tj�y)Nr>	rC	rD	rI	rJ	Tr)rK	r�r?rL	rM	rN	�
labeldistancern	r�g333333�r�)r%rO	r�r�rGra	s    r!�test_pie_nolabel_but_legendrr	�s[��
,�F��E�
B�F��G��G�G�E�7�6�&��d�r�����H�H�W���H�H�T�3���J�J�Lr#c���gd�}gd�}tdddddd�	�}tj�j||d
|��\}}}||fD]�}|D]�}|j	�|dk(sJ�|j�|d
k(sJ�|j
�|dk(sJ�|j�|dk(sJ�|j�|dk(sJ�|j�|dk(r��J���y)N)r��"r})zLong name 1zLong name 2zLong name 3rXr=r�anchorr�r)�horizontalalignment�verticalalignmentr��
rotation_moderxr��%.2f)r�rL	�	textpropsrv	rw	r�rx	rxr�)
rYr%rPrO	�get_ha�get_va�get_rotation�get_rotation_mode�get_sizer)r�r�rz	r��textsrL	�txs       r!�test_pie_textpropsr�	s���D�
:�F���',� �#+��E�	+�I����	�
�
�d�6�6�09�&�;��A�u�g��'�"�8���	8�B��9�9�;�)�,A�"B�B�B�B��9�9�;�)�,?�"@�@�@�@��?�?�$�	�*�(=�=�=�=��'�'�)�Y��-G�G�G�G��;�;�=�I�f�$5�5�5�5��<�<�>�Y�w�%7�7�7�7�
	8�8r#c��tj�\}}tjt�5|jgd�gd���ddd�y#1swYyxYw)N)r�r�r�)rr�r�)rK	)r%rr�r�r�rO	r*s  r!�test_pie_get_negative_valuesr�	sB���l�l�n�G�C��	���z�	"�0�
���z�;��/�0�0�0�s�A�Ac��tj�\}}gd�}|j|d��}t|ddjdz
�dksJ�|j|d��}t|ddjdz
�dkDsJ�y)	N)r�r�r�T)r0�	normalizerr�g�v@rF)r%rrO	r+r)r+r r0�t1�t2s     r!�test_normalize_kwarg_pier�	!s����l�l�n�G�C���A�	���!�t��	$�B��r�!�u�R�y���$�&�'�$�.�.�.�	���!�u��	%�B��r�!�u�R�y���$�&�'�$�.�.�.r#zset_get_ticklabels.pngc�D�tjd�\}}ddg}|djtjd��|dj|d�|djtjd��|dj|d�|dj
td��|djtd��|djgd�dd	gzz�|djgd
�dd	gzz�|dj
|dj��|dj|dj��|dj|dj��|dj|dj��y)Nr8rizset_x/yticklabelsrr�r7�r�r
r;rXrr�)�11�12�13�14)r%rr�rfrnr3�
set_xticksr��
set_yticks�set_xticklabels�set_yticklabelsr��
get_yticksrS�get_yticklabels)r+r rDs   r!�test_set_get_ticklabelsr�	*s`���l�l�1�o�G�C��
�'�	(�B��q�E�J�J�r�y�y��}���q�E�O�O�B�q�E���q�E�J�J�r�y�y��}���q�E�O�O�B�q�E���q�E���U�2�Y���q�E���U�2�Y���q�E���.��b�T��9�:��q�E���2�Q�"��X�=�>��q�E���R��U�%�%�'�(��q�E���R��U�%�%�'�(��q�E���"�Q�%�/�/�1�2��q�E���"�Q�%�/�/�1�2r#c��|j�}|jgd��|jgd�d��|jgd��|jddgd�	�|j	d
dgd�	�|j�}|jgd�gd�d��|jgd��|jddgd
dgd�	�y)
z�
    Test that these two are identical::

        set_xticks(ticks); set_xticklabels(labels, **kwargs)
        set_xticks(ticks, labels, **kwargs)

    )r7r8rrr�	�bold)�
fontweightrsr8rT)r�rSrTN)rr�	r�	r�	r�	rs   r!�test_set_ticks_with_labelsr�	Ds���
�	�	�	�B��M�M�,�����+���?��M�M�)���M�M�1�a�&��M�%�����S�z���.�	�	�	�	�B��M�M�,� 4��M�H��M�M�)���M�M�1�a�&�3��*�D�M�1r#c���tjtd��5tjd�\}}|djddgd�ddd�y#1swYyxYw)Nzmust be a sequencer^r8r7rBg������@)r�r�r�r%rr�	r*s  r!�test_set_noniterable_ticklabelsr�	ZsQ��
���y�(<�	=�&��,�,�q�/���R�
�1����!�Q���%�&�&�&�s�0A�Ac�
�tj�\}}|jtjd��|j
j
tjd�dz�|jd��|j
jdD�cgc]}|��c}�tj�|j
j�D�cgc]}|j���}}|gd�k(sJ�ycc}wcc}w)Nr�r�r�r��
bcdefghijk)r
rXr�r�r�)r%rr�rfrnrY�	set_ticksr��set_ticklabelsr
�get_ticklabelsr�)r+r r;r�r�s     r!�test_subsampled_ticklabelsr�	cs����l�l�n�G�C���G�G�B�I�I�b�M���H�H���r�y�y��}�s�*�+����A����H�H����5�1�Q�5�6��H�H�J�$&�H�H�$;�$;�$=�
>�q�a�j�j�l�
>�F�
>��.�.�.�.��6��
>s�	C;�Dc�J�tj�\}}|jtjd��|j
j
ddg�tjt�5|j
jgd��ddd�y#1swYyxYw)Nr�r�r�rR)r%rr�rfrnrYr�	r�r�r�r�	r*s  r!�test_mismatched_ticklabelsr�	osn���l�l�n�G�C���G�G�B�I�I�b�M���H�H����S�z�"�	���z�	"�1�
������0�1�1�1�s�2B�B"c��tj�\}}|jddgddg�|jddg�|j	g�y)Nr7r8)r%rr�r�	r�	r*s  r!�test_empty_ticks_fixed_locr�	wsE���l�l�n�G�C���F�F�A�q�6�A�q�6���M�M�1�a�&�����r�r#zretain_tick_visibility.pngc���tj�\}}tjgd�gd��tj|j	�d��|jddd��y)	Nr3)rr�rFr�r1r�r�r�r�r�)r%rr��setpr�	r�r*s  r!�test_retain_tick_visibilityr�	sH���l�l�n�G�C���H�H�Y�
�#��H�H�R�
�
�
!�5�1��N�N��6�!�N�4r#c��tj�\}}d�}|jjtj|��|jgd��|j
dd�|jjj�|jj�D�cgc]}|j���}}|gd�k(sJ�ycc}w)Nc��|dk(rdSdS)Nr7�
unit valuer�r�r�s  r!�formatter_funcz.test_tick_label_update.<locals>.formatter_func�s�� �A�v�|�-�2�-r#)r�rr7r8r�r�r�)r�r�r�	r�r�)r%rrYr�r�r�	r�r�r0r
r�	r�)r+r r�	r��
tick_textss     r!�test_tick_label_updater�	�s����l�l�n�G�C��.��H�H� � ��!2�!2�>�!B�C��M�M�"�#��K�K��c���I�I������.0�h�h�.E�.E�.G�H�d�$�-�-�/�H�J�H��7�7�7�7��Is�.Czo_marker_path_snap.png�Hc�b�tj�\}}|jd�tdd�D]/}|j	ddgtjd�|zd|���1tjddd�D]/}|j	d	d
gtjd�|zd|���1y)Nr�r7r�r8r�)r�r�r�r�r)r%rr=r�r�rfr�r�)r+r r�s   r!�test_o_marker_path_snapr�	�s����l�l�n�G�C���J�J�r�N��A�r�l�7��
����A��"�'�'�!�*�r�/�3�2��6�7��k�k�!�R��$�7��
����A��"�'�'�!�*�r�/�3�2��6�7r#c�*�ddg}d}t|�dz
}t|�}t|�}tjdd�\}}|j|�|j
d�|j
�dk(sJ�|j�|||z
dzz
|||z
dzzfk(sJ�|j�|||z
dzz
|||z
dzzfk(sJ�tjdd�\}}|j|�|j
dd�|j
�dk(sJ�|j�|||z
dzz
|||z
dzzfk(sJ�|j�|||z
dzz
|||z
dzzfk(sJ�tjdd�\}	}
|
j|�|
j
d	d�
�|
j
�dk(sJ�|
j�|||z
d	zz
|||z
d	zzfk(sJ�|
j�|||z
dzz
|||z
dzzfk(sJ�y)Nr7r�r�r�rIr�r8)r�r8皙����ɿr)r�	r�)	r�r$r'r%rr�r=r�r�)r�rdrer	r	r�rr�rrErs           r!�test_marginsr�	�si��
�r�7�D��D��t�9�s�?�D��t�9�D��t�9�D����Q��"�I�D�#��H�H�T�N��K�K��N��;�;�=�F�"�"�"��<�<�>�d�d�T�k�Q�%6�6�"�d�T�k�Q�%6�6�8�8�8�8��<�<�>�d�d�T�k�Q�%6�6�"�d�T�k�Q�%6�6�8�8�8�8����Q��"�I�D�#��H�H�T�N��K�K��Q���;�;�=�H�$�$�$��<�<�>�d�d�T�k�S�%8�8�"�d�T�k�S�%8�8�:�:�:�:��<�<�>�d�d�T�k�Q�%6�6�"�d�T�k�Q�%6�6�8�8�8�8����Q��"�I�D�#��H�H�T�N��K�K�$�#�K���;�;�=�K�'�'�'��<�<�>�d�d�T�k�T�%9�9�"�d�T�k�T�%9�9�;�;�;�;��<�<�>�d�d�T�k�S�%8�8�"�d�T�k�S�%8�8�:�:�:�:r#c���tjjd�tj�\}}|jddgddg�|j
dd��|j�dk(sJ�y)Nr�r7r8rr)r��xmarginr)r�r�r�r%rr�r�r�r*s  r!�test_set_margin_updates_limitsr�	�s[���I�I�M�M�)���l�l�n�G�C���G�G�Q��F�Q��F���F�F�%��F�#�
�;�;�=�F�"�"�"r#)r�z!margin must be greater than -0\.5r>r�r1z@Cannot pass both positional and keyword arguments for x and/or yr9z&Must pass a single positional argumentc���tj||��5tj�}|j	�}|j
|i|��ddd�y#1swYyxYwr$	)r�r�r%r�r�r=)r%	r	r�r_r+r s      r!�test_margins_errorsr�	�sQ��
���s�%�	(�$��j�j�l��
�_�_�
����
�
�D�#�F�#�$�$�$�s�7A�A!c�x�tj�\}}|jd�|jdg�y�Nr7)r%rrer*s  r!�test_length_one_histr�	�s)���l�l�n�G�C���G�G�A�J��G�G�Q�C�Lr#c��tj�}|j�}|jdd�|j	�dk(sJ�|j�dk(sJ�|jd��|j	�dk(sJ�|j�dk(sJ�|jd��|j	�dk(sJ�|j�dk(sJ�|j
dd�|j�dk(sJ�|j�dk(sJ�|j
d��|j�dk(sJ�|j�dk(sJ�|j
d��|j�dk(sJ�|j�dk(sJ�y)	Nr�r�)r�r�r�)r�)r�r�)rz)r�r�)	r%r�r�r��
get_xboundr�r��
get_yboundr�r*s  r!�test_set_xy_boundr�	�s]��

�*�*�,�C�	���	�B��M�M�#�s��
�=�=�?�j�(�(�(�
�;�;�=�J�&�&�&��M�M��M��
�=�=�?�j�(�(�(�
�;�;�=�J�&�&�&��M�M��M��
�=�=�?�j�(�(�(�
�;�;�=�J�&�&�&��M�M�#�s��
�=�=�?�j�(�(�(�
�;�;�=�J�&�&�&��M�M��M��
�=�=�?�j�(�(�(�
�;�;�=�J�&�&�&��M�M��M��
�=�=�?�j�(�(�(�
�;�;�=�J�&�&�&r#c��dgdz}tjdd�\}}|j||�|jt	j
��y)Nr�r�r7)r%rrwr�r�r�)�mylistr+r s   r!�test_pathological_hexbinr�	sA���T�C�Z�F��l�l�1�a� �G�C���I�I�f�f���K�K��
�
��r#c�b�tj�\}}|jddgddgd��y)Nr7r8r"ryr*s  r!�test_color_Noner�		s+���l�l�n�G�C���G�G�Q��F�Q��F�$�G�'r#c��tj�\}}|jddgd��d}d|j�k(sJ�y)Nrr7r)r)r%rr�r�r+r r�s   r!�test_color_aliasr�	sA���l�l�n�G�C��
�7�7�A�q�6�V�7�$�Q�'�D��T�^�^�%�%�%�%r#c��tj�\}}|jtd�gdztd���|j	�y)Nr�r�r�)r%rrer�rGr*s  r!�test_numerical_hist_labelr�	s8���l�l�n�G�C���G�G�U�2�Y�K�!�O�5��8�G�,��I�I�Kr#c���tj�\}}d}d}|jd�d|jd�g}|jt	d�gdz|��|j�y)Ns 很漂亮, römän chäráctèrssשלוםzutf-8zhi aardvarkr�r�r�)r%r�decoderer�rG)r+r r�r
r�s     r!�test_unicode_hist_labelr�	se���l�l�n�G�C��
@�A�+�A��h�h�w����h�h�w���F�
�G�G�U�2�Y�K�!�O�6�G�*��I�I�Kr#c���tjjd�dz}tj�\}}|j	|�|j
j
�|jjj�}|jjj�dk(sJ�|jj�|j
j
�|jjj�}|d|dkDr|d|dk(sJ�|jjj�dk(sJ�tj�\}}|j	|�|j
j
�|jjj�}|jjj�dk(sJ�|jj�|j
j
�|jjj�}|d|dk(r|d|dkDsJ�|jjj�dk(sJ�y)	Nr�g�^ 9^;rOrr7rAr=rN)rfrgr%rr�r0r
r\�
offsetTextr	r[�
tick_rightrY�get_verticalalignmentr�)r�r+r �before�afters     r!�test_move_offsetlabelr�	*s���
�9�9���B��%�'�D��l�l�n�G�C���G�G�D�M��J�J�O�O��
�X�X�
 �
 �
-�
-�
/�F�
�8�8���6�6�8�F�B�B�B��H�H�����J�J�O�O���H�H���,�,�.�E���8�f�Q�i��E�!�H��q�	�$9�9�9�
�8�8���6�6�8�G�C�C�C��l�l�n�G�C���G�G�D�M��J�J�O�O��
�X�X�
 �
 �
-�
-�
/�F�
�8�8���4�4�6�%�?�?�?��H�H�����J�J�O�O���H�H���,�,�.�E���8�v�a�y� �U�1�X��q�	�%9�9�9�
�8�8���4�4�6�(�B�B�Br#z
rc_spines.pngc��ddddd�}tj|�5tj�ddd�y#1swYyxYw)NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rUr
r%r)rks r!�test_rc_spinesr�	DsE��"�"� �#�	%�G�

�	�	�w�	'���������s	�;�Azrc_grid.pngc��tj�}ddd�}ddd�}ddd�}|||g}t|d�D]6\}}tj|�5|jdd|�ddd��8y#1swY�CxYw)NTr�)r1zaxes.grid.axisr0r1r7r�)r%r�r�rUr
r�)r+�rc_dict0�rc_dict1�rc_dict2rvr/rks       r!�test_rc_gridr�	Os���

�*�*�,�C�� ��H�
���H�
���H��8�X�.�I��	�1�-�%�
��7�
�
"�
"�7�
+�	%��O�O�A�q�!�$�	%�	%�%�	%�	%�s�A/�/A8	c��ddddd�}tj|��5tj�}|jddd�}|j}|j
}|jdrJ�|jdsJ�|jdrJ�|jdsJ�|jdsJ�|jdrJ�|jdsJ�|jdrJ�	ddd�y#1swYyxYw)NFT)�xtick.bottom�	xtick.top�
ytick.left�ytick.right�r4r7�tick1On�tick2On�r%r
r�r�rYr\�_major_tick_kw�_minor_tick_kw�rXr+r�xax�yaxs     r!�test_rc_tickr�	es���T��E�	3�A�	���1�	�1��j�j�l���o�o�a��A�&���i�i���i�i���%�%�i�0�0�0��!�!�)�,�,�,��%�%�i�0�0�0��!�!�)�,�,�,��!�!�)�,�,�,��%�%�i�0�0�0��!�!�)�,�,�,��%�%�i�0�0�0�0�1�1�1�s�CC0�0C9c	��ddddddddd�}tj|��5tj�}|jddd�}|j}|j
}|jdrJ�|jdsJ�|jdrJ�|jdsJ�|jdrJ�|jdsJ�|jdrJ�|jdsJ�	ddd�y#1swYyxYw)NTF)r�	r�	r�	r�	zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr�	r7r�	r�	r�	r�	s     r!�test_rc_major_minor_tickr�	ys���4��T�$�E�"��		?�A�


���1�	�-��j�j�l���o�o�a��A�&���i�i���i�i���%�%�i�0�0�0��!�!�)�,�,�,��%�%�i�0�0�0��!�!�)�,�,�,��%�%�i�0�0�0��!�!�)�,�,�,��%�%�i�0�0�0��!�!�)�,�,�,�-�-�-�s�CC4�4C=c�.�tjd�}tjgd��}tj�\}}|j||d�|j
d�|j�|j�}}tj|�tj|�k(sJ�|j�dk(sJ�t|jd��jd�t|jd	��jd
�y)Nr)r�r�r�r��mor^	r7T)�original�g�?r�r�r�F)g333333�?r�g�?r�)rfrnr;r%rr�r�r�r�rkr	rr	r1	)r0r1r+r r�r�s      r!�test_square_plotr�	�s���
�	�	�!��A�
���!�"�A��l�l�n�G�C���G�G�A�q�$���G�G�H���������
�$�D�
�7�7�4�=�B�G�G�D�M�)�)�)�
�=�=�?�a�����
�����&�.�.�0F�H��
�����'�/�/�1K�Mr#c��tjt�5tjd�ddd�tjt�5tjdd�ddd�tjt�5tjtjd�tjd��ddd�tjt�5tjtjd�jd�tjd�jdd�f�ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)NrJr�r�r>r�r7)	r�r�r�r%r�rfrfrnr�r�r#r!�test_bad_plot_argsr�	�s��	���z�	"��������	���z�	"������t���	���z�	"�5�������&�!�2�8�8�F�#3�4�5�	���z�	"�O����"�)�)�A�,�&�&�w�/����1��1E�1E�b�!�1L�M�N�O�O�
������5�5��O�O�s0�E
�E�	=E&�'AE2�
E�E#�&E/�2E;zxy, clsr�))r�r7)r8r)r7r8rrQr5r�)rr�r�)r�rc�v�tj�\}}t|jg|�|����|k(sJ�yr	)r%rr��
pcolorfast)r�r��clsr+r s     r!�test_pcolorfastr�	�s9���l�l�n�G�C���
��
�
�(�r�(�4�(�)�S�0�0�0r#c���tjdddd��\}}|djd�|djd�|jD],}|j�dk(sJ�|j
�dk(r�,J�|djd�|djd�|jD],}|j�dk(sJ�|j
�dk(r�,J�y)Nr8Tr 	r�rrIr	)r%rr
r�r��
get_yscale�
get_xscale�r+r�r s   r!�test_shared_scaler�	�s����|�|�A�q��d�;�H�C����I�������I������h�h�(���}�}��%�'�'�'��}�}��%�'�'�'�(���I����"���I����"��h�h�+���}�}��(�*�*�*��}�}��(�*�*�*�+r#c��tjt�5tjd��ddd�tjt�5tjd��ddd�y#1swY�BxYw#1swYyxYw)NTr�rN)r�r�r�r%rWr�r#r!�test_shared_boolr
�sa��	���y�	!�!����4� �!�	���y�	!�!����4� �!�!�!�!��!�!�s�A2�A>�2A;�>Bc�X�tjtjddg��y)z4Violin plot should handle point mass pdf gracefully.rN)r%r�rfr;r�r#r!�test_violin_point_massr
�s���N�N�2�8�8�Q��F�#�$r#c
���tdtjd�g�tdtjd�g�z}tddgd�gd�gd�gtjd�tjd�dg�}td|�}td	|�}tdgg�tdgg�ztdgdg�ztd	gdg�z}||z}||z}||z|z}g|�|�|�|�S)
Nr0r�r1r%	r7)r7r7r7r7r7)r8r�r(r))r	rfrnr�)�base_xy�
err_cycler�xerr_cy�yerr_cy�empty�	xerr_only�	yerr_only�both_errs        r!�generate_errorbar_inputsr
�s���S�2�9�9�Q�<�.�)�F�3�������,E�E�G���� /�!0�!0�!2� "����
� "����� $�
 "�#�J��V�Z�(�G��V�Z�(�G��S�2�$��&��r�d�"3�3�
�F�R��J�
'�(�*0��"�d��*D�E�E��'�!�I��'�!�I��� �7�*�H�6�Y�6��6�X�6��6�6r#r�c�p�tj�}|jdi|��}|j�y)Nr�)r%rPr$rV)r�r �ebs   r!�test_errorbar_inputs_shotgunr
�s)��	����B�	����	�v�	�B��I�I�Kr#�dash_offsetc���tj�\}}tjdd�}tj|�}tddd�D]}|j
|||z|dfdd���y)	Nrr�r�r8�r�r�r�r�)r�r8r�)r%rrfr��	ones_liker�r�)r+r r0r1r�s     r!�test_dash_offsetr
�sd���l�l�n�G�C��
���A�r��A�
���Q��A�
�1�c�1�
�;��
����1�Q�3�A�x�=�Q�c��:�;r#c���tj�\}}|jdd��|jj	�}|dd|j
zk(sJ�|jdd��|jj	�}|ddk(sJ�|jdd��|jj	�}|dtjddz|j
zk(sJ�y)	N�aardvarkr��r�r>g�������?r�z
axes.titlepadr�)r%rr3�titleOffsetTrans�
get_matrixr�rUr�)r+r r�s   r!�test_title_padr
s����l�l�n�G�C���L�L���L�%�
���&�&�(�A��U�8�	�C�G�G�+�,�,�,��L�L���L�$�
���&�&�(�A��U�8�r�>��>��L�L���L�&�
���&�&�(�A��U�8�
�+�+�O�<�s�B�S�W�W�L�M�M�Mr#c�R�tj�\}}dtjd<|jd�|jdd��|jdd��d|j	d��k(sJ�d|j	d��k(sJ�d|j	d��k(sJ�tjt�5|j	d��ddd�tjt�5|jdd��ddd�y#1swY�?xYw#1swYyxYw)	NrXzaxes.titlelocationr
rOr>rAr��fail)r%rr�r3�	get_titler�r�r�r*s  r!�test_title_location_roundtripr
s����l�l�n�G�C��)1�C�L�L�%�&��L�L����L�L��V�L�$��L�L��g�L�&��R�\�\�f�\�-�-�-�-��b�l�l�w�l�/�/�/�/�����(��3�3�3�3�	���z�	"� �
������ �	���z�	"�(�
���V���'�(�(� � ��(�(�s�D�4D�D�D&r�c�R�tjdd|��\}}|djdd��|djdd��|j�|djj�\}}|djj�\}}||cxk(rd	k(sJ�J�y)
Nr8r7r�rrSi���r
rTr�)r%rr3r�r/r	)r�r+r�r0r�r?s      r!�test_title_location_sharedr 
#s����|�|�A�q��0�H�C����F���S�c��"���F���S�c��"���� ���F�L�L�%�%�'�E�A�r���F�L�L�%�%�'�E�A�r�
��?�s�?��?��?r#z
loglog.pngc���tj�\}}tjdd�}|j	||dzd��|jdd��|jd	dd
��y)Nr7rr�r�r:r�r8)r�r�r�r�)r�r�r�)r%rrfrnr�r�)r+r r0s   r!�test_loglogr"
.sY���l�l�n�G�C��
�	�	�!�R��A��I�I�a��A��!�I���N�N�"�A�N�&��N�N�"�A�W�N�5r#ztest_loglog_nonpos.pngc���tjdd�\}}tjdd�}|dz}d|d<d|d<t	tgd�d	�
�|j�D]�\\}}}||k(r3|r|j||dzd	|���)|j||dzd	���A|j||dzd	��|r|jd
|��|s�p|jd
|����y)Nr�r7rg�r7r�r)rbryr�r8)rP)r8�nonpositiver:r)r$
)
r%rrfrnr�rr�r�r
r�)r+r�r0r1�mcy�mcxr s       r!�test_loglog_nonposr'
7s����|�|�A�q�!�H�C��
�	�	�!�R��A�	�1��A��A�a�D��A�a�D��g�&:�1�E�!�h�h�(�6��
��c�B��#�:���	�	�!�Q��T�a�S�	�9��	�	�!�Q��T�a�	�(��I�I�a��A��!�I�$���
�
�e��
�5���
�
�e��
�5�6r#c��tj�\}}|jgd��|j�ddk7sJ�tj�\}}|j	gd�gd��|j�ddk(sJ�tj�\}}|jgd�gd��|j
�ddk(sJ�tj�\}}|jtjd��|j
�dk(sJ�|j�dk(sJ�tj�\}}|jtjd��|j
�dk(sJ�|j�dk(sJ�tj�\}}|jtjd��|j�ddk(sJ�tj�\}}|jtjd��|j
�dk(sJ�|j�dk(sJ�y)Nr�r)r7r7r7r7r
r�r�)r�g#@)r%rr�r�	r�r�r�	rrfrfr�	rernr�r*s  r!�test_axes_marginsr)
Ms����l�l�n�G�C���G�G�L��
�=�=�?�1���"�"�"��l�l�n�G�C���F�F�<��&�
�=�=�?�1���"�"�"��l�l�n�G�C���G�G�L�,�'�
�=�=�?�1���"�"�"��l�l�n�G�C���I�I�b�h�h�x� �!�
�=�=�?�g�%�%�%�
�=�=�?�g�%�%�%��l�l�n�G�C���M�M�"�(�(�8�$�%�
�=�=�?�g�%�%�%�
�=�=�?�g�%�%�%��l�l�n�G�C���G�G�B�I�I�b�M��
�=�=�?�1���"�"�"��l�l�n�G�C���I�I�b�h�h�x� �!�
�=�=�?�k�)�)�)�
�=�=�?�k�)�)�)r#)r�c�2�d�}d�}||d�|jS)Nc��|j�}|j�|jdd�|jj	��}|ddkDsJ�y�Nrr�r�r�)rrVr�rY�get_major_locator�r rr!s   r!�	_helper_xz&shared_axis_remover.<locals>._helper_xq�K���h�h�j���
�
��
���A�r��(�B�H�H�&�&�(�*����u�r�z��zr#c��|j�}|j�|jdd�|jj	��}|ddkDsJ�yr,
)rrVr�r\r-
r.
s   r!�	_helper_yz&shared_axis_remover.<locals>._helper_yxr0
r#r)�param)�requestr/
r2
s   r!�shared_axis_removerr5
os"������+�G�M�M�:�:r#)rPr�subplots_sharedr<c��|jdk(r(tj�}|j�}||fS|jdk(rtj�\}}||fS|jdk(r(tjdddd��\}}|dd}||fS|jdk(r'tj�}|jgd	��}fS)
NrPrr6
r8r�r 	rr<�r�r�r�r�)r3
r%r�rPrr<)r4
r+r rhs    r!�shared_axes_generatorr9
�s����}�}����j�j�l��
�W�W�Y����7�N�
���*�	$��,�,�.���R���7�N�

���+�	+��l�l�1�a��e�D���V�
�A�Y�q�\����7�N�
���*�	$��j�j�l��
�\�\�*�
+����7�Nr#c��|\}}||�yr	r�)r9
r5
r+r s    r!�test_remove_shared_axesr;
�s��#�G�C����r#c��tjdddd��\}}|dd}|ddj�}|j�|j	dd�t|ddj�|�y)Nr8r�r 	rr7r�)r%rr�rVr�r)r+rhr �	orig_xlims    r!�test_remove_shared_axes_relimr>
�so���,�,�q�!�E�%�@�K�C��	���1��B��q�	�!��%�%�'�I��I�I�K��K�K��1���v�a�y��|�,�,�.�	�:r#c��tjddd�}tjj|j|jf�}tjdddd��\}\}}|jdd	�|jdd	�|j|||�|j|||�|j�s|j�rJ�|j�s|j�rJ�|j�|j�cxk(rd
k(sJ�J�|j�|j�cxk(rd
k(sJ�J�y)Ni����rr�r8r7Tr 	����rr)r@
rr)rfrnrg�
random_samplerxr%rr�r�r�rCrEr�r�)rV	r�r+rrs     r!�test_shared_axes_autoscalerB
�s��
�	�	�#�r�2��A�
�	�	��������� 0�1�A��l�l�1�a��T�B�O�C��#�s��L�L�����L�L�����K�K��1�a���K�K��1�a���$�$�&�s�/D�/D�/F�F�F��$�$�&�s�/D�/D�/F�F�F��<�<�>�S�\�\�^�<�}�<�<�<�<�<��<�<�>�S�\�\�^�<�}�<�<�<�<�<r#c��tj�\}}|jj�j	d��|jdd�|j
d�|jj�t|jj���dk(sJ�|jdd�|jj�t|jj���dkDsJ�y)Nrcr�rrrr�r8)r%rr\r-
�
set_paramsr�r	r0r
r�r�r*s  r!�test_adjust_numtick_aspectrE
�s����l�l�n�G�C���H�H��� �+�+�&�+�9��K�K��4���M�M�'���J�J�O�O���+�r�x�x�)�)�+�-�.�!�3�3�3��K�K��4���J�J�O�O���+�r�x�x�)�)�+�-�.��2�2�2r#c���tj�jdd�}|jD]4}g|j	��g|j��cxk(r	gd�k(r�1J�J�y)Nrr2)r%r�rr�r�r�	r�s  r!�test_auto_numticksrG
�s_��

�*�*�,�
�
��1�
%�C��h�h�G��!�����!�%7�r�}�}��%7�F�;�F�F�F�F�F�Gr#c��tj�\}}dtjd<|j	ddgddg�tj|j��tjddd	�k(j�sJ�tj|j��tjd
dd�k(j�sJ�y)N�
round_numbers�axes.autolimit_modeg#B����;gj�@g��ؗ�Ҝ<r�i��r�rr�r�)r%rr�r�r�rf�log10r�rnr�r�	r*s  r!�test_auto_numticks_logrL
�s����l�l�n�G�C��*9�C�L�L�&�'��I�I�u�c�l�U�B�K�(��H�H�R�]�]�_�%����3��A�)>�>�C�C�E�E�E��H�H�R�]�]�_�%����3��A�)>�>�C�C�E�E�Er#c�V�tj�\}}|jgd�y)N)r�r�)r%rrr*s  r!�test_broken_barh_emptyrN
�s���l�l�n�G�C���N�N�2�x� r#c��tj�\}}tjdddddd�}|j|tjd��fgddg�}|j�djdtj|�k(sJ�|j�djd	tj|�d
zk(sJ�y)z9Check that timedelta works as x, dx pair for this method.rrrBrr7rr8r��r8rgUUUUUU�?N)	r%rrrrOr��verticesrr)r+r �d0�pps    r!�test_broken_barh_timedeltarT
�s����l�l�n�G�C��	�	�	�4��Q��1�a�	0�B�	���"�h�0�0�q�9�:�;�a��V�	D�B�
�<�<�>�!��%�%�d�+�v���r�/B�B�B�B�
�<�<�>�!��%�%�d�+�v���r�/B�V�/K�K�K�Kr#c���|jdd��}tjd�}tjj	dd�}tj�\}}|j|||�y)Nz
2000-01-01r�)rrPr+rB)rrfrnrgr�r%rr�)r�time�depthr�r+r s      r!�test_pandas_pcolormeshrX
�sT��
�=�=��r�=�2�D��I�I�b�M�E�
�9�9�>�>�"�a� �D��l�l�n�G�C���M�M�$��t�$r#c	��tjddd��}tjtjt	t|����}|j
||d��}tj�}|tj|j�dzdk(j�}|jdd	|�
�y)Nz2005-02z2005-03r	r�)rCr�r8r7rCr�r3)rfrnr�r;r�r�r=r%rPr@r�r�)rrCr�rAr �without_zero_indexs      r!�test_pandas_indexing_datesr[
�s����I�I�i��/�B�E�
�V�V�B�H�H�U�3�u�:�.�/�
0�F�	�����8�	9�B�	����B��B�H�H�R�X�X�.��2�a�7�8�=�=�?���G�G�G�X�$6�G�7r#c���|jtjjd��gd�gd���}t	j
�\}}|j
dddd	|�
�y)N)r�rrw)r0r1�xe�yer�)�columnsr@r0r1r]
r^
r�)r=rfrg�uniformr%rr$rJs    r!�test_pandas_errorbar_indexingra
�sV��	���b�i�i�'�'�V�'�4�4�+�
�
-�B��l�l�n�G�C���K�K��S�t�$�R�K�8r#c��|jgd�gd�d��}tj�\}}|j|j|d�y)Nr1)r7r7r8)�XX�YYrd
)r=r%rr�r@rJs    r!�test_pandas_index_shapere
�s:��	���Y�i�8�	9�B��l�l�n�G�C���G�G�B�H�H�b��h�r#c��|jgd���}|jdd}tj�\}}|j	|�y)N)
r7r8r8r�r�rrrrr�r3r7)r`�ilocr%rre)r�ser_1�ser_2r+r s     r!�test_pandas_indexing_histrj
s<���I�I�9�I�:�E��J�J�q�r�N�E��l�l�n�G�C���G�G�E�Nr#c�0�|jtd�td�d��}tjd�\}}|j	|j
|ddk(df|j
|ddk(dfd��|jj�y)Nr8r2r7r�r
rXr�)r=r�r%rr�r?r0r
rJs    r!�test_pandas_bar_align_centerrl
s���	���E�!�H�5��8�4�	5�B��l�l�1�o�G�C���F�F�2�6�6�"�S�'�Q�,��#�$�
�6�6�"�S�'�Q�,��#�$�����J�J�O�O�r#c��ddlm}tj�}|j	|d�}tjtd��5|jd�ddd�|j|d�}tjtd��5|jd�ddd�y#1swY�QxYw#1swYyxYw)Nrz;The apply_tickdir function was deprecated in Matplotlib 3.5r^r:	)
�matplotlib.axisr�r%rU�XTickr�r�r�
apply_tickdir�YTick)�maxisr r�s   r!�#test_tick_apply_tickdir_deprecationrs
s���#�	����B��;�;�r�1��D�	���2�-�
.�"�	
���5�!�"�
�;�;�r�1��D�	���2�-�
.�"�	
���5�!�"�"�
"�"��"�"�s�B*�B6�*B3�6B?c��tj�}|jjddd��|jjdj
dk(sJ�|jjdjj�dk(sJ�|jjdjj�dk(sJ�|jjdjj�dk(sJ�y)	Nr�rr:	)r�r�r�rr�r�r�)
r%rWr\�set_tick_paramsr��_size�	tick1linerr�r	)�axis_1s r!�.test_axis_set_tick_params_labelsize_labelcolorry
&s���
�[�[�]�F�
�L�L� � �2�%�+0�!�2��<�<�"�"�1�%�+�+�s�2�2�2��<�<�"�"�1�%�/�/�9�9�;�s�B�B�B��<�<�"�"�1�%�,�,�5�5�7�4�?�?�?��<�<�"�"�1�%�,�,�6�6�8�E�A�A�Ar#c���tj�}|jdddd��|j|jfD]�}|j
djj�dk(sJ�|j
djj�dk(sJ�|j
djj�dk(sJ�|j
djj�dk(r��J�y)Nr
r�r�r)r�r�r�r�rrq)r%rWr�rYr\r�r�r�
get_linewidth�	get_alphar|)r r�s  r!�test_axes_tick_params_gridlinesr}
3s���	����B��N�N�c�!��"+��-����"�(�(�"�C�����q�!�*�*�4�4�6�#�=�=�=����q�!�*�*�8�8�:�a�?�?�?����q�!�*�*�4�4�6�#�=�=�=����q�!�*�*�8�8�:�d�B�B�B�	Cr#c�$�tj�}|jddd��|jddd��|jjdj
j
�dusJ�|jjdjj
�dusJ�|jjdj
j
�dusJ�|jjdjj
�dusJ�y)NFTr�)�	labelleft�
labelrightr�r�r)	r%rWr�r\r�r�r�label2r�r�s r!� test_axes_tick_params_ylabelsider�
?s���	����B��N�N�U�t� ��"��N�N�U�t� ��"��8�8���q�!�(�(�4�4�6�%�?�?�?�
�8�8���q�!�(�(�4�4�6�$�>�>�>�
�8�8���q�!�(�(�4�4�6�%�?�?�?�
�8�8���q�!�(�(�4�4�6�$�>�>�>r#c�$�tj�}|jddd��|jddd��|jjdj
j
�dusJ�|jjdjj
�dusJ�|jjdj
j
�dusJ�|jjdjj
�dusJ�y)NTFr�)�labeltop�labelbottomr�r�r)	r%rWr�rYr�r�rr�
r�r�s r!� test_axes_tick_params_xlabelsider�
Ms���	����B��N�N�D�e� ��"��N�N�D�e� ��"�
�8�8���q�!�(�(�4�4�6�%�?�?�?�
�8�8���q�!�(�(�4�4�6�$�>�>�>�
�8�8���q�!�(�(�4�4�6�%�?�?�?�
�8�8���q�!�(�(�4�4�6�$�>�>�>r#c��tj�j�}|jt	d�d��\}|j�dk(sJ�y)Nrxr r)r%r�rr�r�r|)r �lns  r!�test_none_kwargsr�
]sE��	����	�	�	 �B�
�'�'�%��)�t�'�
,�C�B�
�����$�$�$r#c���gd�}tjtj|tj��gd�d��}t|j|�D]\}}|jd|k(r�J�y)Nr�r�)r8r�rr�r�r�r)r%r�rfr;�uint8r�r'r�)rFr
rr0s    r!�test_bar_uint8r�
cs\��	�B��������2�8�8�,�l�&�I�A��!�)�)�R�(� �
����x�x��{�a���� r#zdate_timezone_x.pngr�c��td�D�cgc]9}tjddd|tjj	d�����;}}tjd��tjdd	d	�tj|dgdzd�
�tjdd	d�tj|dgdzd�
�ycc}w)Nr���r8��Canada/Eastern�r��tzinfo�rPr�r�r7)�tz�UTC�	r�rr�r�
�gettzr%r�rWr9�r0�
time_indexs  r!�test_date_timezone_xr�
js���
!��8�%���#�#�D�!�R�a�+3�;�;�+<�+<�=M�+N�P�%�J�%�
�J�J�x� ��K�K��1�a���M�M�*�q�c�A�g�*:�;��K�K��1�a���M�M�*�q�c�A�g�%�0��%s�>Czdate_timezone_y.pngc��td�D�cgc]9}tjddd|tjj	d�����;}}tjd��tjdd	d	�tjdgdz|dd
d��tjdd	d�tjdgdz|d
d
d��ycc}w)Nr�r�
r8r�
r�
r�
r�
r�r7FT)r�
�xdate�ydater�
r�
r�
s  r!�test_date_timezone_yr�
{s���
!��8�%���#�#�D�!�R�a�+3�;�;�+<�+<�=M�+N�P�%�J�%�
�J�J�x� ��K�K��1�a���M�M�1�#��'��!1��d�L��K�K��1�a���M�M�1�#��'�:�%�u�D�I��%s�>Czdate_timezone_x_and_y.pngc
��tjj}td�D�cgc]}tjddd||����}}t	j
d��t	jddd�t	j||d	d
��t	jddd�t	j||dd
��ycc}w)
Nr�r�
r8r�
r�
r�
r�r7r�
T)r�
r�
z
US/Eastern)r�timezone�utcr�r%r�rWr9)r�
r0r�
s   r!�test_date_timezone_x_and_yr�
�s����
�
�
�
�C� ��8�%���#�#�D�!�R�a��D�%�J�%��J�J�x� ��K�K��1�a���M�M�*�j�U�$�?��K�K��1�a���M�M�*�j�\��F��%s�!Cz
axisbelow.pngc���tj�jddd��}d}t||�D]�\}}|j	dddd��tjd	d
��}|j|�|jdd
d��|jdddd��|jddjd�|j|�|j�|k(r��J�y)Nr�T)r�r�rO)Fr�Tr�r�r�r�r�r!r"r;r)r�r�r!F)r=rNrOrA)r%r�rr�r�r;ror:rZr�r�r�
set_axisbelow�
get_axisbelow)r��settingsr �setting�circs     r!�test_axisbelowr�
�s���
�*�*�,�
�
�a��T�
�
B�C�$�H��3��)�	-���G�
�����R�s��3����v�S�1��
���T��
���c�S�A��6�
���5��!��	�	0�
�	�	�!�� � ��'�
����!����!�W�,�,�,�	-r#c���tjjd�tjd��\}}|j	�}|jd�}|j
d�}|jj�|jj�}|j|�j}|j|�j}||z
}tj|d�sJ�y)Nr�r�	)r��Xlabel2�Titler�)r%r�r�rrr&r3r0r
�get_renderer�get_window_extentr�r�rf�isclose)	r+r r�xlabel2r/�renderer�
bbox_y0_title�bbox_y1_xlabel2�y_diffs	         r!�test_titletwinyr�
�s����I�I�M�M�'���l�l�r�"�G�C��
�(�(�*�C��n�n�Y�'�G��L�L��!�E��J�J�O�O���z�z�&�&�(�H��+�+�H�5�8�8�M��/�/��9�<�<�O�
�_�
,�F�
�:�:�f�a� � � r#c��tj�\}}|jd��|j�}|j	d�|j	d�|jd�d}|jj|�|jj�}|j|�|jj�|k(sJ�y)Nr�)r=�Xlabelr�
r�
)r�g�(\���?)r%rrNrr&r3r/r�r0r�
�_update_title_positionr	)r+r rr�r�
s     r!�test_titlesetposr�
�s����l�l�n�G�C�����C�� �
�(�(�*�C��M�M�(���N�N�9���L�L���
�C��H�H���#���z�z�&�&�(�H����h�'�
�8�8� � �"�c�)�)�)r#c�(�dtjd<tj�\}}|jjd�|j
d�|jj�|jj�ddkDsJ�y)N�axes.titleyr=�
xlabel topr7�p=
ף�?)r�r�r%rrYr�r3r0r
r/r	r*s  r!�test_title_xticks_topr�
�sk��"&�C�L�L����l�l�n�G�C���H�H����&��L�L����J�J�O�O��
�8�8� � �"�1�%��,�,�,r#c��dtjd<tj�\}}|j	ddddd��|jd�|jj�|jj�ddkDsJ�y)Nr�
r0T�r�rNr=r�
r�
r�
r7r�
)
r�r�r%rr�r3r0r
r/r	r*s  r!�test_title_xticks_top_bothr�
�sv��"&�C�L�L����l�l�n�G�C���N�N���D�d�T��K��L�L����J�J�O�O��
�8�8� � �"�1�%��,�,�,r#zleft, center))rOr�)r�rX)rOrX)zleft title movedzcenter title keptzboth titles alignedc��dtjd<tj�\}}|j	d�|j|d��|j|�|j
�|r%|s#|jj�ddkDsJ�y|s%|r#|jj�ddk(sJ�y|jj�d}|jj�d}|dkDsJ�||k(sJ�y)Nr�
g�vH7BrOr>r7r�)
r�r�r%rr�r3r��_left_titler	r/)rOrXr+r �yleftr�s      r!�test_title_above_offsetr�
�s���#'�C�L�L����l�l�n�G�C���K�K����L�L��6�L�"��L�L������ ��F��~�~�*�*�,�Q�/�#�5�5�5�
�f��x�x�$�$�&�q�)�S�0�0�0����+�+�-�a�0���(�(�'�'�)�!�,���s�{��{��%���r#c�*�dtjd<tj�}|j	gd��}|jddddd��|j
d�}|jj�|j�ddk(sJ�y)	Nr�
)r�r�r�r�r0Tr�
�Boor7r�)
r�r�r%r�r<r�r3r0r
r	)r+r �tts   r!�test_title_no_move_off_pager�
s��#'�C�L�L���

�*�*�,�C�	���+�	,�B��N�N���D�d�T��K�	���e�	�B��J�J�O�O��
�?�?��Q��3�&�&�&r#c���tj�\}}|jgd��|jj	d��|jj�j
�dk(sJ�y)N�g@��Ag��e�Ag�F��Ar)r�)r%rr�r\ru
�get_offset_textrr*s  r!�test_offset_label_colorr�
sW���l�l�n�G�C���G�G�$�%��H�H�����.�
�8�8�#�#�%�/�/�1�U�:�:�:r#c�r�tj�\}}|jgd��|jj	dd��|jj�j
�sJ�|jj	d��|jj�j
�rJ�y)Nr�
FT)�label1On�label2On)r�
)r%rr�r\ru
r�
rr*s  r!�test_offset_text_visibler�
s����l�l�n�G�C���G�G�$�%��H�H���e�d��;�
�8�8�#�#�%�1�1�3�3�3��H�H���e��,��x�x�'�'�)�5�5�7�7�7�7r#c��tj�\}}|jdtjddg�zdz�|j
j
�y)Nr7rg�-���q=g���qىE)r%rr�rfr;r0r
r*s  r!�test_large_offsetr�
!sB���l�l�n�G�C���G�G�Q����1�f�+�&�
&�%�/�0��J�J�O�O�r#c
�J�tj�\}}tddd�D�cgc]}tjdddd|���}}t	j
ddt
|��}t	j
dd	t
|��x}}|j||||�ycc}w�
Nrrr�r�r7r�r�r�r)r%rr�rrfr�r��barbs�r+r r/rCr1�u�vs       r!�test_barb_unitsr�
's����l�l�n�G�C��<A�!�R��<L�M�q�X�
�
�t�Q��B��
2�M�E�M�
���A�q�#�e�*�%�A��K�K��2�s�5�z�*�*�A���H�H�U�A�q�!���
N�� B c
�J�tj�\}}tddd�D�cgc]}tjdddd|���}}t	j
ddt
|��}t	j
dd	t
|��x}}|j||||�ycc}wr�
)r%rr�rrfr�r��quiverr�
s       r!�test_quiver_unitsr�
/s����l�l�n�G�C��<A�!�R��<L�M�q�X�
�
�t�Q��B��
2�M�E�M�
���A�q�#�e�*�%�A��K�K��2�s�5�z�*�*�A���I�I�e�Q��1���
Nr�
c�^�tj}tj�\}}t	d�D]x}|jt	d��\}|j
t	d�t	d��}|D]1}||j��||j��k(r�1J��zy)Nr�r�)	r��to_rgbr%rr�r�r�rr)r�
r+r r�r�
�brs�brs       r!�test_bar_color_cycler�
7s���
�^�^�F��l�l�n�G�C��
�1�X�H���g�g�e�A�h�����f�f�U�1�X�u�Q�x�(���	H�B��"�,�,�.�)�V�B�4D�4D�4F�-G�G�G�G�	H�Hr#c��tjdd�\}\}}|jddgddg�|jddgddg�|jj	dd��|j
j	dd��|j
d��D]}|j�dk(r�J�|jd��D]}|j�dk(r�J�|jd	d
��|jdd
��|j
d��D]}|j�d
k(r�J�|jd��D]}|j�d
k(r�J�y)Nr7r8rr�r�)r�r�rr�r0�5)r�r�r1r�)r�r�r�)
r%rr�rYru
r\rSr}	r�	r�)r�r r�texts    r!�test_tick_param_label_rotationr�
Asf���\�\�!�Q�'�N�C��"�c��G�G�Q��F�Q��F���H�H�a��V�a��V���H�H���6�B��7��H�H���6�B��7��"�"��"�0�)��� � �"�b�(�(�(�)��"�"��"�0�)��� � �"�b�(�(�(�)��O�O��B�O�/��O�O��r�O�*��#�#�'�#�2�)��� � �"�b�(�(�(�)��#�#�'�#�2�)��� � �"�b�(�(�(�)r#c��tj�\}}td�D]}|jtd�td��}t	j
dj
|��}t|j�j��t|�k(r�J�tdd�D]}|jtd�td��}t	j
dj
|��}t|j�j��t|�k(r�J�t	j
d�}dD]_}|jtd�td�fi|di��}t|j�j��t|�k(r�_J�t	j
d�}tddgd��D]�\}}|jtd�td�fi|di��}t	j
dj
|��}t|j�j��t|�k(sJ�t|j�j��t|�k(r��J�y)	Nr�zC{}rr�)r�
facecolorsr�r r)�start)
r%rr�r�r�rr��tuplerT�squeezer�r�rU)	r+r r��cc�target�al�edge_target�el�face_targets	         r!�test_fillbetween_cycler�
Ts���l�l�n�G�C��
�1�X�E��
�_�_�U�1�X�u�Q�x�
0��������a��1���R�&�&�(�0�0�2�3�u�V�}�D�D�D�E�
�1�a�[�E��
�
�
�e�A�h��a��
1��������a��1���R�&�&�(�0�0�2�3�u�V�}�D�D�D�E�
�_�_�S�
!�F�2�E��
�R�_�_�U�1�X�u�Q�x�
=�B��9�
=���R�&�&�(�0�0�2�3�u�V�}�D�D�D�E��/�/�#�&�K��K��6�a�@�J���2�
�R�_�_�U�1�X�u�Q�x�
=�B��9�
=���o�o�e�l�l�1�o�6���R�&�&�(�0�0�2�3�u�[�7I�I�I�I��R�&�&�(�0�0�2�3�u�[�7I�I�I�I�	Jr#c��dtjd<tj�\}}d}|j|�|j	ddgddg�|j�\}}|jj�}|j||g�\}}|jddg�\}}	|	|z
|z}
t||
z||
z
g||	g�y)Nr�rJ
r�r�r�)
r%r�r�set_xmarginr�r�rYr�rr)r+r �margin�xlim0�xlim1r�xlim0t�xlim1t�x0t�x1tr�s           r!�test_log_marginsr�
ps���*0�C�L�L�&�'��l�l�n�G�C��
�F��N�N�6���K�K��S�	�B��9�%��;�;�=�L�E�5����&�&�(�I��(�(�%���8�N�F�F��"�"�B��9�-�H�C��
�3�Y�&� �E��V�e�^�V�e�^�4�s�C�j�Ar#c��d}tj|�tj|�}}tj|dz�}tj�\}}t	j
t�5|j|||��ddd�d}|j|||��|j|||g|z��y#1swY�8xYw)Nr�r7r)r�r�r�)rfrnr%rr�r�r�r9)r�r0r1r?r+r �c_rgbs       r!�test_color_length_mismatchr~s���	�A�
�9�9�Q�<����1��q�A�
�Y�Y�q��s�^�F��l�l�n�G�C��	���z�	"�#�
�
�
�1�a�6�
�"�#��E��J�J�q�!�u�J���J�J�q�!��w��{�J�#�	#�#�s�5C�C
c�\�tjdgd��tj�y)Nr��Labelr�)r%r�rGr�r#r!�test_eventplot_legendr�s���M�M�3�%�w�'��J�J�Lr#c�2�tj�\}}|jtd�d�|j	ddtd�d��|jddgddgd��\}}|j�|j�cxk(rdk(sJ�J�y)Nrr7r)rOr�)r�r�r�r�r_)r%rr�r�r�r)r+r �rect1�rect2s    r!�test_bar_broadcast_argsr�s����l�l�n�G�C���F�F�5��8�Q���G�G�A�q�u�Q�x��G�*��6�6�1�a�&�1�a�&�4D�6�E�L�E�5���� �E�$7�$7�$9�M�=M�M�M�M�M�Mr#c��tjddgddg�tjt�5tj
tj�ddd�tjt�5tj
tj�ddd�tjt�5tjtj�ddd�tjt�5tjtj�ddd�y#1swY��xYw#1swY��xYw#1swY�gxYw#1swYyxYwrm)
r%r�r�r�r�r�rfr�r-r�r�r#r!�test_invalid_axis_limitsr	�s����H�H�a��V�a��V��	���z�	"����������	���z�	"����������	���z�	"����������	���z�	"�����������
�����������s/�$D0�9$D<�>$E�$E�0D9�<E�E�Er�rrr�c��tj�}|jgd��|j|�|j	|�|j�y)Nr�)r%rWr�r
r�r�)r�r�r s   r!�test_minorticks_onr�s?��

����B��G�G�L���M�M�&���M�M�&�����r#c��tj�\}}|jdd�|j�}|j	ddgddg�tj�\}}|jdd�|j	ddgddg�t|jj|jj�y)Nr7r8rr�)r%rrerr�rr	�	intervalx)r+r �xtwinr�rs     r!�test_twinx_knows_limitsr�s����l�l�n�G�C���J�J�q�!���H�H�J�E�	�J�J��3�x�!�Q�� �����I�D�#��K�K��1���H�H�a��X��1�v���u�}�}�.�.����0E�0E�Fr#c�>�tjddgddgdd��y)Nrr7r)r�r8)r%r�r�r#r!�test_zero_linewidthr�s���H�H�a��V�a��V���+r#c��tj�\}}|jgggd��|jgggd��|j�y)Nzempty y)r(r.zempty x)r)r.)r%rr$rGr*s  r!�test_empty_errorbar_legendr�sB���l�l�n�G�C���K�K��B�R�y�K�1��K�K��B�R�y�K�1��I�I�Kr#c�~�tjddd�}|D�cgc]}d|dzzd|dzzz
d|zzd	z��}}|D�cgc]
}t|���}}|D�cgc]
}t|���}}|j�j	||�|j�j	||�ycc}wcc}wcc}w)
Nr�r�r�g������@r�rr8g\��(\@�@)rfrnrrr�)rrr�r0r�r/r1s       r!�test_plot_decimalr�s���	���3��C�	 �B�@B�	C�1�#��Q��,��q�A�v��
%��q��
0�3�
6�	C�B�	C�� ����� �A� �� ����� �A� �������Q��"�������B��#��

D�� �� s�!B0�B5�B:c��|j�jdddd��|j�jdddd��y)Nrr�rr�)rrcr )rr�)rrs  r!�test_markerfacecolor_none_alphar�sB��������Q���r��:�������A�s��2��6r#c��dtjd<dtjd<tj�\}}|j|jj��}|j
d�|j|jj��}|j|jksJ�|j|jksJ�y)z5Test that tick padding gets turned off if axis is offr:	zxtick.directionzytick.direction�offN)	r%r�r�
get_tightbboxr0r�
r�r�r��r+r �bb�bb2s    r!�test_tick_padding_tightbboxr�s���&+�C�L�L�"�#�&+�C�L�L�"�#��l�l�n�G�C��	�	�	�#�*�*�1�1�3�	4�B��G�G�E�N�
�
�
�3�:�:�2�2�4�
5�C�
�5�5�3�6�6�>��>�
�5�5�3�6�6�>��>r#c��d\}}tjtdd|z|�tdd|z|�f\}}tj|�dztjd||zz�tj|�zz}tj�\}}|j|||dd�dd�f�|jd�|j�dd	g}d
dg}|d|d|d|dz
|d|dz
g}	|j|	�
�\}
}|�J�|jj�tjddgd	dgg�}tj|
j�j!�|k(�sJ�y)z:
    Ensure that inset_ax argument is indeed optional
    �r�r�r7r�r�Nr�r�r��333333@r8r�r)�boundsr�)rf�mgridr�r�rSr%rr�r	�apply_aspect�indicate_insetr0r
r;r��get_bbox�
get_points)
�dx�dyr1r0r[r+r r�r�r�rec�
connectors�xxs
             r!�
test_insetr.�sw���F�B��
�8�8�E�!�Q��V�R�(��!�Q��V�R�(�)�*�D�A�q�
���q�	�R��"�&�&��a�!�e��,�r�v�v�a�y�8�8�A��l�l�n�G�C���M�M�!�Q��#�2�#�s��s�(��$��M�M�"���O�O��
��;�D�
�s�8�D���G�T�!�W�d�1�g��Q��/��a��4��7�1B�C�D��'�'�t�'�4�O�C�������J�J�O�O��	���C��9��#�;� �
!�B�
�6�6�#�,�,�.�+�+�-��3�4�4�4r#c�j�d\}}tjtdd|z|�tdd|z|�f\}}tj|�dztjd||zz�tj|�zz}tj�\}}|j|||dd�dd�f�|jd�|j�|jgd��}|j|||dd�dd�f�|jdd	g�|jd
dg�|j|j��|j|�\}}	t|	�dk(sJ�|j j#�tj$dd
gd	dgg�}
tj&|j)�j+�|
k(�sJ�tj$ddgddgg�}
tj,j/|j1�j+�|
d��y)Nr!r7r�r�r�r�)ruru�ffffff�?r0r�r"r8r�rr�g=
ףp=�?gKXc'�?g�(\���?g����?g-C��6?��rtol)rfr$r�r�rSr%rr�r	r%�
inset_axesr�r�r	�indicate_inset_zoomr�r0r
r;r�r'r(r�rr	)r)r*r1r0r[r+r �axin1r+r,r-s           r!�test_zoom_insetr6s���
�F�B��
�8�8�E�!�Q��V�R�(��!�Q��V�R�(�)�*�D�A�q�
���q�	�2�
����r�A�a�C�x�(�2�6�6�!�9�4�4�A��l�l�n�G�C���M�M�!�Q��#�2�#�s��s�(��$��M�M�"���O�O��
�M�M�0�1�E�	���Q��1�S�b�S�#�2�#�X�;�'�	�N�N�C��;��	�N�N�A�s�8��	���R�]�]�_�%��,�,�U�3�O�C���z�?�a�����J�J�O�O��	���C�"�:��#�;� �
!�B�
�6�6�#�,�,�.�+�+�-��3�4�4�4�	���F�H�%��H�%�'�
(�B��J�J���
����'�'�)�2�D��:r#zinset_polar.pngc�"�tj�\}}|jgd�d��}t|t�sJ�tjddd�}dt
jz|z}|j||�|j||�y)N)r�r�r�r�Tr�rr8r�)	r%rr3r�rrfrnr�r�)r�r �axinsr!r�s     r!�test_inset_polarr9)ss���L�L�N�E�A�r��M�M�0��M�=�E��e�Y�'�'�'�
�	�	�!�Q���A�
����I��M�E��G�G�E�1��	�J�J�u�a�r#c��tj�\}}|jgd�d��}t|t�sJ�y)N�r�r�r�r��hammerrT)r%rr3r�r�r�r r8s   r!�test_inset_projectionr>6s4���L�L�N�E�A�r��M�M�.�8�M�D�E��e�Z�(�(�(r#c��tj�\}}|jgd�tj��}t|tj�sJ�y)Nr;)r�)r%rr3�AAr
r�r=s   r!�test_inset_subclassrA<s<���L�L�N�E�A�r��M�M�.�2�7�7�M�C�E��e�R�W�W�%�%�%r#�
x_inverted�
y_invertedc�`�tjdd�\}\}}tjd�}|j	||d�|r|j�|r|j
�|jgd�|�\}}|\}}	}
}|rdnd}|rdnd}
||
jd|jdz
zdkDsJ�||jd|	jdz
zdkDsJ�|
|	jd|jdz
zdkDsJ�|
|jd|
jdz
zdkDsJ�y)	zR
    Test that the inset lines are correctly located with inverted data axes.
    r7r8r�r�)r8r8r�rr�rN)	r%rrfrnr�r�r�r&r�)rBrCr+rrr0rr#�
lower_left�
upper_left�lower_right�upper_right�sign_x�sign_ys              r!�test_indicate_inset_invertedrKBs5���l�l�1�a�(�O�C��#�s�
�	�	�"�
�A��H�H�Q��3�������������%�%�l�C�8�L�D�&�7=�4�J�
�K���R�1�F��R�1�F��[�_�_�Q�'�*�.�.��*;�;�<�q�@�@�@��[�_�_�Q�'�*�.�.��*;�;�<�q�@�@�@��Z�^�^�A�&�����):�:�;�a�?�?�?��[�_�_�Q�'�+�/�/�!�*<�<�=��A�A�Ar#c�6�tj�\}}|jd�|jgd�d��t	j
|j
�jd�sJ�|jd�|jgd�d��t	j
|j
�jd�sJ�|jd�|jgd�d	��t	j
|j
�jd�sJ�y)
Nr�)r�r�r�r�r�r�r�r�r�	rC�active)r%rr	r�rfr�r	r�r*s  r!�test_set_positionrN\s����l�l�n�G�C���M�M�"���O�O�(��O�7�
�;�;�r���(�.�.��4�4�4��M�M�"���O�O�(�
�O�;�
�;�;�r���(�.�.��5�5�5��M�M�"���O�O�(��O�9�
�;�;�r���(�.�.��4�4�4r#c���tj�\}}|jjj	|j
j
��}|jddddd�|jjj	|j
j
��}tjj|j�|j�d��y)N)r�r�r�r�r�Fg���ư>r1)r%rr�rNr�
r0r�
�_set_view_from_bboxrfr�rr(rs    r!�!test_spines_properbbox_after_zoomrQis����l�l�n�G�C��	���	�	�	+�	+�C�J�J�,C�,C�,E�	F�B����/�����/�
�)�)�
�
�
,�
,�S�Z�Z�-D�-D�-F�
G�C��J�J���r�}�}�����0@�t��Lr#c�0�tj�\}}t|�|jtj
dd�|jj�}tjj|j|�jd�y)Nr7r�
i�)r%rrr�
rfrer0r�
r�rrr�)r+r r�
s   r!�test_gettightbbox_ignore_nanrSssd���l�l�n�G�C���C� ��G�G�B�F�F�A�u���z�z�&�&�(�H��J�J���r�/�/��9�?�?��Er#c�8�tdd�}|jtjj	d��|��}|jtjj	d��|��}|jgd�|��}tj|||�y)Nr�r�rQrwrI)r7r7r7r7r7rrr)r�r`rfrgr`
r%r9)rr�r0r1r;s     r!�"test_scatter_series_non_zero_indexrU{sx��
��B�-�C�
�	�	�"�)�)�#�#��#�+�3�	�7�A�
�	�	�"�)�)�#�#��#�+�3�	�7�A�
�	�	�*�#�	�6�A��K�K��1�a�r#c�b�tjgg�tjgggg��y)N)r�r;)r%r9r�r#r!�test_scatter_empty_datarW�s"���K�K��B���K�K��B�"��#r#zannotate_across_transforms.pngc
��tjddd�}tj|�tj|�z}t	j
d��\}}|j
||�|jgd��}|jd�|jjd�|jjd�|jd	|d
|d
f|jd|jtd�
���y)Nrr�r~)g��Q�@r�r�)r�r�r�r�r�Fr�rr�rZ	)r\	)r�r�r�r�r�)rfr�r�r�r%rr�r3r	rYrr\r��	transDatar+rY)r0r1r+r r8s     r!�test_annotate_across_transformsrZ�s���	���A�r�3��A�
����r�
�R�V�V�A�Y��A��l�l�9�-�G�C���G�G�A�q�M��M�M�.�/�E�	���S��	�K�K���E�"�	�K�K���E�"��K�K���#���#��'�"�,�,��%�/�/��4�0��2r#zsecondary_xy.pngc�x�tjdddd��\}}d�}t|�D]�\}}|jt	j
dd�t	j
dd��|dk(r
|j}n|j}|d	||f�
�|dd�d
�f�
�|dd�d�f�
�|d���y)Nr7r8r�T)rVr�c�d�tjd��5d|zcddd�S#1swYyxYw�Nr�r�r7�rfr�rs r!�invertz!test_secondary_xy.<locals>.invert��*��
�[�[��
)�	��q�5�	�	�	���&�/rrr���	functionsr�c��d|zS�Nr8r�rs r!r�z#test_secondary_xy.<locals>.<lambda>�s
���A��r#c��|dzSrer�rs r!r�z#test_secondary_xy.<locals>.<lambda>�s
���Q��r#rtc��|dzSrer�rs r!r�z#test_secondary_xy.<locals>.<lambda>�s
���1��r#c��|dzS)Nr�r�rs r!r�z#test_secondary_xy.<locals>.<lambda>�s
���C��r#r�)r%rr�r�rfrn�secondary_xaxis�secondary_yaxis)r+r�r_�nnr �secaxs      r!�test_secondary_xyrm�s����|�|�A�q�'�d�K�H�C����C�.�
���B�
����	�	�!�R� �"�)�)�A�r�"2�3�
��7��&�&�E��&�&�E�
�c�f�f�-�.�
�c�o��?�@�
�c�n�.@�A�B�
�c�
�
r#c�&�tj�\}}|jtjdd�tjdd��tjt�5|jdd���ddd�tjt�5|jd�ddd�tjt�5|jd�ddd�y#1swY�pxYw#1swY�IxYw#1swYyxYw)Nr8rr�c��d|zSr�	r�rs r!r�z%test_secondary_fail.<locals>.<lambda>�s
��Q��U�r#rbrArN)
r%rr�rfrnr�r�r�rirjr*s  r!�test_secondary_failrp�s����l�l�n�G�C���G�G�B�I�I�a���b�i�i��2�.�/�	���z�	"�=�
���3�?��<�=�	���z�	"�$�
���7�#�$�	���z�	"�%�
���8�$�%�%�	=�=��$�$��%�%�s$�+C/�!C;�D�/C8�;D�Dc�|�tjd��\}}|jtjdd�tjdd��d�}|jd||f��|jj�|jd�t|j�jgd	��y)
Nr�r�r8rc�d�tjd��5d|zcddd�S#1swYyxYwr]r^rs r!r_z%test_secondary_resize.<locals>.invert�r`rar=rb)r7rr�	)r%rr�rfrnrir0r
r5rr	r1	)r+r r_s   r!�test_secondary_resizers�s����l�l�7�+�G�C���G�G�B�I�I�a���b�i�i��2�.�/�����u���(8��9��J�J�O�O��������B�O�O�%�-�-�/E�Fr#c�.�tjd��\}}|jtjdd�tjdd��d�}|jd||f��}t
|jj�tj�sJ�|j�t
|jj�tj�sJ�|jd�tj�t
|jj�tj�sJ�|jd	�tj�t
|jj�tj�sJ�y)
Nr�r�r8rc�d�tjd��5d|zcddd�S#1swYyxYwr]r^rs r!r_z'test_secondary_minorloc.<locals>.invert�r`rar=rbrr	)r%rr�rfrnrir��_axis�get_minor_locatorr��NullLocatorr��AutoMinorLocatorr
r
�
LogLocator)r+r r_rls    r!�test_secondary_minorlocr{�s7���l�l�7�+�G�C���G�G�B�I�I�a���b�i�i��2�.�/��
���u���0@��A�E��e�k�k�3�3�5��)�)�+�+�+�	�����e�k�k�3�3�5��.�.�0�0�0��M�M�%���H�H�J��e�k�k�3�3�5��(�(�*�*�*��M�M�(���H�H�J��e�k�k�3�3�5��)�)�+�+�+r#c�l�tj�\}}|jd�|jd�}|jjt
j��|jj�t|jj�tj�sJ�y)Nrr=)r%rr
rirYr�r��ScalarFormatterr0r
r�r��r+r rls   r!�test_secondary_formatterr�s����l�l�n�G�C���M�M�%�����u�%�E�	�K�K�#�#�G�$;�$;�$=�>��J�J�O�O���
���'�'�)�7�+B�+B�D�D�Dr#c�t�tj�\}}|jd�}t|�dk(sJ�y)Nr=z<SecondaryAxis: >)r%rrir4r~s   r!�test_secondary_reprr��s4���l�l�n�G�C�����u�%�E���;�-�-�-�-r#c�~�|jj�|jj�}g}t|j|j
g�D]v\}}|j
|�}|rXtj|j|jf|j|jddddd��}|j|�||gz
}�xg}tgd��D]�\}}	|j|	j|�}tj|j|jf|j|jddddd��}
|j|
�||gz
}��|j�}tj|j|jf|j|jd	d
ddd��}|j|�|}|j
|�}
tj|
j|
jf|
j|
jddddd
��}|j|�|
}||||fS)zS
    Helper for the tests below that test the extents of various axes elements
    rur1rNr�)r�r�r!r rrr6)rNr=rOrAr�r�rr8rr7)r0r
r�
r�rYr\rr;r<r�r�r�r�r&r�r�
)r+r r�
�bbaxisrk�axxr�axisr�bbspinesr��spinerr�bbaxr�bbtbs               r!�color_boxesr��s����J�J�O�O���z�z�&�&�(�H�
�F��b�h�h����1�2����C�
�
�
�x�
(��
��&�&��������b�h�h�r�y�y����$���E�
�N�N�5�!��2�$�����H��=�>����A�
�Y�Y�q�\�
+�
+�H�
5���#�#�
�U�U�B�E�E�N�"�(�(�2�9�9��W��$����	���v���R�D����
�	�	�	�B����	�������b�h�h�r�y�y���f���
�E��N�N�5��
�D�
�
�
�8�
$�C����	��������	�	�#�*�*��u��$��
�E��N�N�5���D��8�T�4�'�'r#c�4�tddi�5tjdd��\}}|jj	�tj
|�t
||�\}}}}ddd�gd�gd�g}t�D]F\}}tjj||�}	t|j|	jd�	��Hgd
�gd�gd�gd
�g}t�D]F\}}tjj||�}	t|j|	jd�	��Hgd�}tjj|�}	tj|	jd�	�gd�}tjj|�}	tj|	jd�	�j�jj�j}
t|
|j!�jd�	�y#1swY���xYw)N�_internal.classic_modeFr~�rr�r�rV)g�^@g��8��R@g��@g�@@)g��8��`U@g������X@g�J@g�@r8)�decimal���b@�-���]@��@�F���8&@�r�g�@r�r��r��Nё\��]@r���@�g�R�!���@r�r�r��r�g������]@r�r�)g�+e�`U@gb��h�R@g{�G��@g{�G�ȏ@)r
r%rr0r
rYr�r�r��Bbox�from_boundsrr#r	�transformed�transFigurer�
)r+r r�r�r�r�r�
rkr
�targetbb�axbbs           r!�test_normal_axesr�s���	�-�u�5�	6�<��,�,�3��7���R��
�
�����	�	�#��'2�3��';�$���$��	<�	3�=��F��6�"�H���A��#�#�/�/����<��!�!�(�(�H�O�O�Q�G�H�
	(�#�(�,�	�F��8�$�H���A��#�#�/�/����<��!�!�(�(�H�O�O�Q�G�H�7�F����+�+�V�4�H��d�k�k�8�?�?�A�F�
2�F����+�+�V�4�H��d�k�k�8�?�?�A�F��?�?��(�(����9�@�@�D��d�B�$8�$8�$:�$A�$A�1�M�G<�<�s�AH
�
Hc���tddi�5tjdd��\}}|jj	�|jgg��t
||�\}}}}ddd�t�D]	\}}|��	J�gd�gd�gd	�gd
�g}t�D]F\}}tjj||�}	t|j|	jd���Hgd
�}tjj|�}	tj|	jd��gd�}tjj|�}	tj|	jd��y#1swY��xYw)Nr�Fr~r�r���xticklabels�yticklabelsr�r�r�r�r���atolr�)r��^@r�r�)
r
r%rr0r
r�r�r�r�r�r�rr#)
r+r r�r�r�r�rkr
r�
r�s
          r!�test_nodecoratorr�FsM��	�-�u�5�	6�<��,�,�3��7���R��
�
����
���2�2��.�'2�3��';�$���$��	<��6�"����A��y��y��	(�#�(�,�	�F��8�$�>���A��#�#�/�/����<������(�/�/��=�>�7�F����+�+�V�4�H��D�K�K����t�<�
%�F����+�+�V�4�H��D�K�K����t�<�5<�<�s�AE-�-E7c�
�tddi�5tjdd��\}}|jgg��|jj
j
d�|jj�t||�\}}}}ddd�gd�gd	�gd
�gd�g}t|�D]C\}}tjj|�}	t|j|	jd�
��Egd�}tjj|�}	tj|	jd�
�gd�}tjj|�}	tj|	jd�
�y#1swY��xYw)Nr�Fr~r�r�r�)rUr)r��8@r�g�s~��8&@r�r�r�r�r�r�)r�r�r�g��@)r
r%rr�r�rNr�r0r
r�r�r�r�r�rr#)
r+r r�r�r�r��targetsr�
�bbspiner�s
          r!�test_displaced_spiner�dsA��	�-�u�5�	6�<��,�,�3��7���R�
���2�2��.�
�	�	���%�%�n�5��
�
����'2�3��';�$���$��<�	%�#�(�,�	�G��w��1�D�����#�#�/�/��8���������d�C�D�7�F����+�+�V�4�H��D�K�K����t�<�
%�F����+�+�V�4�H��D�K�K����t�<�/<�<�s�A>E9�9Fc��gd�gd�ggd�gd�ggd�gd�gg}tgd��D]�\}}tdd	i�5tjd
d��\}}|j	|�
�|j
j
�t||�\}}}}tddg�D]L\}	}
tjj|||	�}t||
j|jd���N	ddd���y#1swY��xYw)zG
    Switch the tickdirs and make sure the bboxes switch with them
    )r�r�r���+e�8&@)r�r�r�r�)r�g�ZӼ�8[@r���8��8&@)g�� �r\a@r,r�r�)r�g�q�q�\@r�r�)g�8��8b@r�r�r�)r�r:	�inoutr�Fr~r�r�r;	rr8r�r�N)
r�r
r%rr�r0r
r�r�r�r�rr#)r��dnum�dirsr+r r�r�r�r�rkr�r�s            r!�
test_tickdirsr�s��/�-�/�<�-�/�F�<�>�	?�G� � 6�7�	F�
��d�
�1�5�9�
:�	F��l�l�s�F�;�G�C���N�N�T�N�*��J�J�O�O��+6�s�B�+?�(�F�H�d�D�$�a��V�,�
F���C�&�+�+�7�7����r�9J�K����S�M�(�(�(�/�/��F�
F�	F�	F�	F�	F�	F�s�B4C8�8D	c���tddi�5tjdd��\}}|jj	�|jdd��t
||�\}}}}t
||�\}}}}gd	�gd
�g}td�D]I}tjj||�}t||dzj|jd�
��Ktjdd��\}}|jj	�|jdd��|j�|jddd��|jj	�t
||�\}}}}gd�gd�g}td�D]I}tjj||�}t||dzj|jd�
��K	ddd�y#1swYyxYw)Nr�Fr~r�r�r�r:	)r�r�)r�g��8��8[@r�r�)gC�i�q\a@r�r�r�r8r�r�r�r�r�	)r�gPUUUUUB@r�gVUUUU�T@)g�z6��P@r�go��T�T@r�)r
r%rr0r
r�r�r�r�r�r�rr#r�)	r+r r�r�r�r�r�r�r�s	         r!�test_minor_accountedforr��s���	�-�u�5�	6�D��,�,�3��7���R��
�
����
���V�u��5�'2�3��';�$���$��'2�3��';�$���$��I�7�9���q��	D�A�"�'�'�3�3�W�Q�Z�@�H����Q���&�&����d�
D�	D�
�,�,�3��7���R��
�
����
���V�u��5�
����
���F�'�"��=��
�
����'2�3��';�$���$��G�3�5���q��	D�A�"�'�'�3�3�W�Q�Z�@�H����Q���&�&����d�
D�	D�1D�D�D�s�F>G�Gc�*�|jd�jd�|jd�jd�|jd�}|jd�|jd�|jd�jd�y)NrLFrrMT�on)r�r�rs   r!�test_axis_bool_argumentsr��su��
�����"�"�5�)������!�!�%�(�	�	�	�c�	"�B��G�G�E�N��G�G�D�M������!�!�$�'r#c���tj�\}}d}d}d}d}|j||||g�}t|�||||fk(sJ�||f|j	�k(sJ�||f|j�k(sJ�y)Nr�r�r�rP�r%rr�r�
r�r��r+r rdrer	r	rvs       r!�test_axis_extent_argr��s����l�l�n�G�C���D�
�D�
�D�
�D�
�W�W�d�D�$��-�
.�F���=�T�4��t�4�4�4�4�
�$�<�2�;�;�=�(�(�(��$�<�2�;�;�=�(�(�(r#c���tj�\}}d}d}d}d}|j||||��}t|�||||fk(sJ�||f|j	�k(sJ�||f|j�k(sJ�y)Nr�r�r�rP)rdrer	r	r�r�s       r!�test_axis_extent_arg2r��s����l�l�n�G�C���D�
�D�
�D�
�D�
�W�W�$�T��4�W�
@�F���=�T�4��t�4�4�4�4�
�$�<�2�;�;�=�(�(�(��$�<�2�;�;�=�(�(�(r#c�n�tjgd�gd�gd��\}}}|ddksJ�|ddk\sJ�y)	Nrx)r�rr�rrcrzrr7r�r)r%re�r�r{s  r!�test_hist_auto_binsr��s=�����9�l�3�&�A�J�A�t�Q���7�a�<��<���8�q�=��=r#c��tjd�\}\}}gd�}|tjgz}|j	|�\}}}tj
d��5|j	|�\}}	}ddd�tjj|�tjj|	�y#1swY�JxYw)Nr8rxr�r`)r%rrfr�rer�r�r)
r+rrr��nan_datar{r�r��nanbins�nanedgess
          r!�test_hist_nan_datar��s����l�l�1�o�O�C��#�s��D��r�v�v�h��H��X�X�d�^�N�D�%��	���X�	&�2�"�x�x��1����1�2��J�J���t�W�-��J�J���u�h�/�	2�2�s�B>�>Cc��tjtjj	d�ddd��\}}}|ddk(sJ�|ddk(sJ�y)	Nr�rcr�T)r�r�rr�r7)r%rerfrgr�r�s  r!�test_hist_range_and_densityr��sL�����"�)�)�.�.��,�f� &��6�J�A�t�Q���7�a�<��<���8�q�=��=r#c�D�tj�\}}gd�}|j|||dd��}|jj\}}}|j
D]F}|D]}|j|jkDr�J�|D]}	|	j|jkDr�J��Hy)Nrxr�r�)r0r�r)rr6)r%rr�r$r�r'r6)
r+r r0�barcont�	data_line�caplines�barlinecolsr��capline�
barlinecols
          r!�test_bar_errbar_zorderr��s����l�l�n�G�C���A��f�f�q���A�a�f�@�G�'.�'7�'7�'=�'=�$�I�x�����2���	/�G��>�>�C�J�J�.�.�.�	/�%�	2�J��$�$�s�z�z�1�1�1�	2�2r#c���tj�\}}|j�|jddg�|j	�dk(sJ�|jdg�|j	�dk(sJ�y)Nr�rur�r�r>)r%rr�r�	r�r*s  r!�test_set_ticks_invertedr�sa���l�l�n�G�C���O�O���M�M�2�r�(��
�;�;�=�F�"�"�"��M�M�2�$��
�;�;�=�G�#�#�#r#c��tjd��}|j�}|jddgddg�|j	ddddd	d
��|jd�|jj|j��}|j|jztjd
�k(sJ�y)Nr
r�r�rtrr��logit)�F]t�E�?g��'^P?r7r	�r�r�r�r�r�r	rr8)
r%r�r�r�r�r=r��transform_bboxr	r�r�r��approx)r+r r�s   r!�$test_aspect_nonlinear_adjustable_boxr�s���

�*�*�X�
&�C�	���	�B��G�G�R��H�r�2�h���F�F�%�g������'��J�J�q�M�

�/�/�
(�
(����):�
;�C��:�:��	�	�!�V�]�]�1�%5�5�5�5r#c�p�tjd��}|jgd��}|jddgddg�|j	dddd	d
d��|jd
�|j
�|j�tjddg�k(sJ�|j�d	k(sJ�y)Nr
r�r8
r�rtr)r7r�r�)g��be�F�?r�r7r
	r�rgS[�:XL	@g'�In�?@)r%r�r<r�r�r=r%r�r�r�r�r*s  r!�(test_aspect_nonlinear_adjustable_datalimr�!s���

�*�*�X�
&�C�	���&�	'�B��G�G�R��H�r�2�h���F�F�%�h�� 1��	��+��J�J�q�M��O�O��
�;�;�=�F�M�M�;�
�*F�G�G�G�G�
�;�;�=�-�-�-�-r#c��tj�\}}|j�}|jddg�|j	d�|j�dk(sJ�tj�\}}|j
d�|jddgddg�|jd	d
��|jj�|jj�|j�}|j�}|j�}t|j|j�t|j|j�y)Nr�iXr7r�rr8rrQr�r	r	)
r%rrr��set_box_aspect�get_box_aspectr=r	r0r
r	rr1	)r�r�axtwinr�r�bb1�bbtrs        r!�test_box_aspectr�0s������I�D�#�
�Y�Y�[�F�
�K�K��S�	�����q������3�&�&�&�����I�D�#��K�K��N��H�H�a��V�a��V���N�N�7�u�N�-��K�K�����K�K����

�
�
�
�C�
�
�
�
�C�

�
�
�
�C��s�{�{�C�K�K�0��s�{�{�C�K�K�0r#c�@�tj�\}}|jgd��|jj	�|jd�tj�\}}|jd�|jj	�|jgd��|jj	�|jj	�|j
�}|j
�}t|j|j�y)N)r�r�r�r�r�)	r%rr�r0r
r�r	rr1	)r�rr�rr�rs      r!�test_box_aspect_custom_positionr�Ks�������I�D�#����)�*��K�K�������r������I�D�#����r���K�K�������)�*��K�K�����K�K����

�
�
�
�C�

�
�
�
�C��s�{�{�C�K�K�0r#c�l�tjddtd��d��\}}|jj	�|jj�}g}|jD]:}|j|�}|j|j|jg��<t||d�y)Nr8r�r7)r	T)rWr�r)r%rrYr0r
r�
r�r�
r
r�r�r)r+r�r�
rP	r rs      r!�test_bbox_aspect_axes_initr�bs����|�|�A�q�T�Q�-?�/3�5�H�C���J�J�O�O���z�z�&�&�(�H��E��h�h�,��
�
!�
!�(�
+��
���b�h�h��	�	�*�+�,��E�5��8�$r#c��tjdd�\}}|jgd��|jj	�|j�y)Nr7rx)r%rr�r0r
�redraw_in_framer*s  r!�test_redraw_in_framer�qs<���l�l�1�a� �G�C���G�G�I���J�J�O�O�����r#c���tj�\}}|jjd��J�|j	d�|jjd��J�y)N)r~r~F)r%rr0�inaxesrr*s  r!�test_invisible_axes_eventsr�xsS���l�l�n�G�C���:�:���Z�(�4�4�4��N�N�5���:�:���Z�(�0�0�0r#c���dtjd<tj�}|jj	�}|D]!}|j
j
�dk7r�!J�y�Nr�zlines.markeredgecolor)r%r�rUrY�get_major_ticksrw
�get_markeredgecolor�r �ticksr�s   r!�"test_xtickcolor_is_not_markercolorr���X��,3�C�L�L�(�)�	����B��H�H�$�$�&�E��?���~�~�1�1�3�w�>�>�>�?r#c���dtjd<tj�}|jj	�}|D]!}|j
j
�dk7r�!J�yr�)r%r�rUr\r�rw
r�r�s   r!�"test_ytickcolor_is_not_markercolorr��r�r#r�rc)TFNc��tj�\}}tjd�}tjddd�}|j||�t
|d|�d��}t
|d|�d��}t
|d|�d��}|�|�n|}	|d	|�
�|	|�k(sJ�|jj�t|�d	�y)Nr�rr��
get_autoscale�_onr�lim�get_)r�r�)rc)
r%rrfrnr�r9r#r0r
r)
r�rcr+r r0r1r��set_lim�get_lim�	post_autos
          r!�test_unautoscaler�s����l�l�n�G�C��
�	�	�#��A�
���C��S�!�A��J�J�q�!���r�]�4�&��#<�=���b�D���c�*�+�G��b�D���c�*�+�G�&*�l� �"��I��K�d�#��(�*�*�*�*��J�J�O�O���w�y�+�.r#c�Z�|jd��jdtjdzgddg�\}d|j	�_|jd��jtjdtjdzd�tjddd��y)Nr�rTrr8r7r��e)r�r�rfr��get_path�_interpolation_stepsr�)rrrV	s   r!�)test_polar_interpolation_steps_variable_rr�s���	�	�	��	�	1�	6�	6��2�5�5��7�|�a��V�	L�B�A�(+�A�J�J�L�%����7��+�0�0�
���A�r�u�u�Q�w��$�b�k�k�!�Q��&<�>r#c��tj�\}}|jdd�|jj	�|j�dk(sJ�y)Nrg��&�.>)rg�����	>)r%rr�r0r
r�r*s  r!�test_autoscale_tiny_stickyr�s@���l�l�n�G�C���F�F�1�d�O��J�J�O�O��
�;�;�=�L�(�(�(r#c�6�dtjd<dtjd<tj�}|jj	�}|D]@}|j
j
�dk(sJ�|jj
�dk(r�@J�y)Nr�zxtick.colorr�zxtick.labelcolor)r%r�rUrYr�rw
rr�r�s   r!�&test_xtickcolor_is_not_xticklabelcolorr
����"*�C�L�L���'-�C�L�L�#�$�	����B��H�H�$�$�&�E��1���~�~�'�'�)�X�5�5�5��{�{�$�$�&�&�0�0�0�1r#c�6�dtjd<dtjd<tj�}|jj	�}|D]@}|j
j
�dk(sJ�|jj
�dk(r�@J�y)Nr�zytick.colorr�zytick.labelcolor)r%r�rUr\r�rw
rr�r�s   r!�&test_ytickcolor_is_not_yticklabelcolorr
�rr#rx)rQr�r�c��|tjd<|tjd<tj�\}}|jj�t
ddg|j|jg�D]H\}}|j�D]0}|jj�|j|�k(r�0J��Jy)Nzxtick.labelsizezytick.labelsizer0r1)
r�r�r%rr0r
r�rYr\r�r�r	�_get_tick_label_size)rxr+r �namer�r�s      r!�test_relative_ticklabel_sizesr�s���'+�C�L�L�"�#�&*�C�L�L�"�#��l�l�n�G�C���J�J�O�O���3��*�r�x�x����&:�;�M�
��d��(�(�*�	M�D��;�;�'�'�)�T�-F�-F�t�-L�L�L�L�	M�Mr#c��tj�}|jddd��\}}|jgd�gd��|j	dd�|j�}t
j|d	d
g�sJ�y)Nr8r7r�r�r�)r8r�r8r�r�r�r�r)r%r�rr9rnr�rfr�)r+rrr�s    r!�test_multiplot_autoscaler�sd��

�*�*�,�C��|�|�A�q��|�/�H�C���K�K��l�+��K�K��A���<�<�>�D�
�;�;�t�c�3�Z�(�(�(r#c�:�tj�}|jd�}|jgd�|��}|j	�}|jd��|j	�j
�|j
�k(j�sJ�y)NrI)rtrtr�r�r�r�rO)r%r�r�r<r	rNr(r�)r+r[r�init_poss    r!�$test_sharing_does_not_link_positionsr�s��

�*�*�,�C�

�/�/�#�
�C�

�,�,�'��,�
4�C����!�H����Q�������)�)�+�x�/B�/B�/D�D�I�I�K�K�Kr#c�~�tjgd��}|jd�}|djddgddg|j	d���|djddgddg|j	d���|dj
ddgddg|j	d���|djtjd	�|j	d��
�|djtjd	�tjd	�|j	d��
�|jd�}|djddgddg|j	d���|djddgddg|j	d���|dj
ddgddg|j	d���|djtjd	�|j	d��
�|djtjd	�tjd	�|j	d��
�y)
Nr�r�rr7r8r�rr�r�r"rr>)
rfr;rr�r�r9rirernr�)rrr�r�s    r!�test_2dcolor_plotr�s����H�H�_�%�E�
�
�
�A�
�C���F�K�K��A���A��%�-�-��"3�K�4���F�N�N�A�q�6�A�q�6�U�]�]�2�%6�N�7���F�K�K��A���A��%�-�-��"3�K�4���F�K�K��	�	�"�
�U�]�]�2�%6�K�7���F�J�J�r�y�y��}�b�i�i��m�5�=�=��3D�J�E�
�
�
�1�
�C���F�K�K��A���A��%�-�-��"8�K�9���F�N�N�A�q�6�A�q�6�U�]�]�7�%;�N�<���F�K�K��A���A��%�-�-��"8�K�9���F�K�K��	�	�"�
�U�]�]�7�%;�K�<���F�J�J�r�y�y��}�b�i�i��m�5�=�=��3I�J�Jr#c�~�tjddtjzd�}tj|�}|j	dddd��}|j
D]}|j
||��|j	dddd��}|j
D]$}|j�|j
||��&y)Nr�r8r�Tr 	)rfrnr�r�rr�r�r})rrr0r1r�r s      r!�test_shared_axes_clearr�s���
�	�	�#�q����w��%�A�
���q�	�A�
�
�
�1�a��T�
�
:�C��h�h���
����1�
���
�
�A�q��d�
�
;�C��h�h���
���
�
����1�
�r#c��tjdddd��\}}|jD]}|jddgd��|dj	gd��|jD](}|j�|dj�k(r�(J�|dj
gd��|jD](}|j�|dj�k(r�(J�y)	Nr8r�r 	rzo-r�)r�rr7r�)r�rr8r�)r%rr�r�r�	r�r�	r�r�	s   r!�test_shared_axes_retickr
s����|�|�A�q��u�=�H�C���h�h���
����A�������I���*�+��h�h�5���{�{�}��D�	� 2� 2� 4�4�4�4�5���I���*�+��h�h�5���{�{�}��D�	� 2� 2� 4�4�4�4�5r#rD)rOrXrAc���t�}|j�}|jdd|��|jj	d�|jj�j
�|k(sJ�y)N�testr7rCrA)rrr'r\�set_label_positionrZr{	)rDr+r s   r!�test_ylabel_ha_with_positionr!s\��
�(�C�	����B��M�M�&�A�"�M�%��H�H����(�
�8�8����&�&�(�B�.�.�.r#c��tj�}ddgddg}}|j||�}|j|�}|dj|d|dfk(sJ�|dj�dk(sJ�|dj
�dk(sJ�|dj|d|dfk(sJ�|dj�dk(sJ�|dj
�dk(sJ�y)	Nr7r8r����rrXrNr=�r%rPr��	bar_labelr�r{	r|	�r rF�heightsrr�s     r!� test_bar_label_location_verticalr("s���	����B��a�&�1�b�'��B��F�F�2�w��E�
�\�\�%�
 �F��!�9�<�<�B�q�E�7�1�:�.�.�.�.��!�9�����)�)�)��!�9�����)�)�)��!�9�<�<�B�q�E�7�1�:�.�.�.�.��!�9�����)�)�)��!�9�����&�&�&r#c���tj�}|j�ddgddg}}|j||�}|j	|�}|dj
|d|dfk(sJ�|dj
�dk(sJ�|dj�dk(sJ�|dj
|d|dfk(sJ�|dj
�dk(sJ�|dj�dk(sJ�y)	Nr7r8r�r#rrXr=rN)r%rPr�r�r%r�r{	r|	r&s     r!�*test_bar_label_location_vertical_yinvertedr*/s���	����B��O�O���a�&�1�b�'��B��F�F�2�w��E�
�\�\�%�
 �F��!�9�<�<�B�q�E�7�1�:�.�.�.�.��!�9�����)�)�)��!�9�����&�&�&��!�9�<�<�B�q�E�7�1�:�.�.�.�.��!�9�����)�)�)��!�9�����)�)�)r#c��tj�}ddgddg}}|j||�}|j|�}|dj|d|dfk(sJ�|dj�dk(sJ�|dj
�dk(sJ�|dj|d|dfk(sJ�|dj�dk(sJ�|dj
�dk(sJ�y�	Nr7r8r�r#rrOrXrA�r%rPr�r%r�r{	r|	�r rGr#rr�s     r!�"test_bar_label_location_horizontalr/=s���	����B��Q��!�R���B��G�G�B���E�
�\�\�%�
 �F��!�9�<�<�F�1�I�r�!�u�-�-�-�-��!�9�����'�'�'��!�9�����)�)�)��!�9�<�<�F�1�I�r�!�u�-�-�-�-��!�9�����(�(�(��!�9�����)�)�)r#c���tj�}|j�ddgddg}}|j||�}|j	|�}|dj
|d|dfk(sJ�|dj
�dk(sJ�|dj�dk(sJ�|dj
|d|dfk(sJ�|dj
�dk(sJ�|dj�dk(sJ�yr,)r%rPr�r�r%r�r{	r|	r.s     r!�,test_bar_label_location_horizontal_yinvertedr1Js���	����B��O�O���Q��!�R���B��G�G�B���E�
�\�\�%�
 �F��!�9�<�<�F�1�I�r�!�u�-�-�-�-��!�9�����'�'�'��!�9�����)�)�)��!�9�<�<�F�1�I�r�!�u�-�-�-�-��!�9�����(�(�(��!�9�����)�)�)r#c���tj�}|j�ddgddg}}|j||�}|j	|�}|dj
|d|dfk(sJ�|dj
�dk(sJ�|dj�dk(sJ�|dj
|d|dfk(sJ�|dj
�dk(sJ�|dj�dk(sJ�y�	Nr7r8r�r#rrArXrO)r%rPr�r�r%r�r{	r|	r.s     r!�,test_bar_label_location_horizontal_xinvertedr4Xs���	����B��O�O���Q��!�R���B��G�G�B���E�
�\�\�%�
 �F��!�9�<�<�F�1�I�r�!�u�-�-�-�-��!�9�����(�(�(��!�9�����)�)�)��!�9�<�<�F�1�I�r�!�u�-�-�-�-��!�9�����'�'�'��!�9�����)�)�)r#c���tj�}|j�|j�ddgddg}}|j	||�}|j|�}|dj|d|dfk(sJ�|dj�dk(sJ�|dj�dk(sJ�|dj|d|dfk(sJ�|dj�dk(sJ�|dj�dk(sJ�yr3)	r%rPr�r�r�r%r�r{	r|	r.s     r!�-test_bar_label_location_horizontal_xyinvertedr6fs��	����B��O�O���O�O���Q��!�R���B��G�G�B���E�
�\�\�%�
 �F��!�9�<�<�F�1�I�r�!�u�-�-�-�-��!�9�����(�(�(��!�9�����)�)�)��!�9�<�<�F�1�I�r�!�u�-�-�-�-��!�9�����'�'�'��!�9�����)�)�)r#c���tj�}ddgddg}}|j||�}|j|d��}|dj|ddz|dfk(sJ�|dj�dk(sJ�|dj
�dk(sJ�|dj|ddz|dfk(sJ�|dj�dk(sJ�|dj
�dk(sJ�y)Nr7r8r�r#rX)�
label_typerr-r.s     r!�test_bar_label_location_centerr9us���	����B��Q��!�R���B��G�G�B���E�
�\�\�%�H�\�
5�F��!�9�<�<�F�1�I��M�2�a�5�1�1�1�1��!�9�����)�)�)��!�9�����)�)�)��!�9�<�<�F�1�I��M�2�a�5�1�1�1�1��!�9�����)�)�)��!�9�����)�)�)r#c���tj�}ddgddg}}|j||d��}|j|�}|dj|d|ddzfk(sJ�|dj�dk(sJ�|dj
�dk(sJ�|dj|d|ddz
fk(sJ�|dj�dk(sJ�|dj
�d	k(sJ�y)
Nr7r8r�r#�r)rrXrNr=r$r&s     r!�!test_bar_label_location_errorbarsr<�s���	����B��a�&�1�b�'��B��F�F�2�w�Q�F�'�E�
�\�\�%�
 �F��!�9�<�<�B�q�E�7�1�:��>�2�2�2�2��!�9�����)�)�)��!�9�����)�)�)��!�9�<�<�B�q�E�7�1�:��>�2�2�2�2��!�9�����)�)�)��!�9�����&�&�&r#c���tj�}|jddgddg�}|j|d��}|dj	�dk(sJ�|dj	�d	k(sJ�y)
Nr7r8r�r#ry	rErz3.00z-4.00�r%rPr�r%r��r rr�s   r!�test_bar_label_fmtr@�sm��	����B��F�F�A�q�6�A�r�7�#�E�
�\�\�%�V�\�
,�F��!�9����6�)�)�)��!�9����7�*�*�*r#c���tj�}|jddgddg�}|j|ddg��}|dj	�dk(sJ�|dj	�dk(sJ�y)	Nr7r8r�r#rSrT)r�rr>r?s   r!�test_bar_label_labelsrB�sq��	����B��F�F�A�q�6�A�r�7�#�E�
�\�\�%��c�
�\�
3�F��!�9����3�&�&�&��!�9����3�&�&�&r#c�B�tj�}|jddgtjdg�}|j|�}|D�cgc]}|j
���c}ddgk(sJ�|djdk(sJ�|dj�dk(sJ�ycc}w�	Nr8r�r7r��1rrP
rN)	r%rPr�rfr�r%r�r�r|	�r rVr�rV	s    r!�test_bar_label_nan_ydatarG�s���	����B�
�6�6�1�a�&�2�6�6�1�+�&�D�
�\�\�$�
�F�"(�)�Q�A�J�J�L�)�b�#�Y�6�6�6��!�9�<�<�6�!�!�!��!�9�����)�)�)��*s�Bc�b�tj�}|j�|jddgtj
dg�}|j
|�}|D�cgc]}|j���c}ddgk(sJ�|djdk(sJ�|dj�dk(sJ�ycc}wrD)
r%rPrRr�rfr�r%r�r�r|	rFs    r!�!test_bar_label_nan_ydata_invertedrI�s���	����B�����
�6�6�1�a�&�2�6�6�1�+�&�D�
�\�\�$�
�F�"(�)�Q�A�J�J�L�)�b�#�Y�6�6�6��!�9�<�<�6�!�!�!��!�9�����)�)�)��*s�B,c��tj�\}}|jgd�tjddggd���}|j|�}|D�cgc]}|j
���c}gd�k(sJ�tj|j�d�sJ�tj�\}}|jgd�gd�d	tjd
g��}|j|�}|D�cgc]}|j
���c}gd�k(sJ�tj|j�d�sJ�tj�\}}|jgd�tjddgtjtjd
g��}|j|�}|D�cgc]}|j
���c}gd�k(sJ�tj|j�d�sJ�ycc}wcc}wcc}w)
Nrxr7r8rHr;)r�rE�2)r�r�r3r�rt)r�rErK)r�r�)	r%rr�rfr�r%r�r�r�)r+r rVr�rV	s     r!�test_nan_barlabelsrL�s}���l�l�n�G�C��
�6�6�)�b�f�f�a��^�/�6�B�D�
�\�\�$�
�F�"(�)�Q�A�J�J�L�)�^�;�;�;�
�;�;�r�{�{�}�j�1�1�1��l�l�n�G�C��
�6�6�)�Y�c�2�6�6�3�-?�6�@�D�
�\�\�$�
�F�"(�)�Q�A�J�J�L�)�_�<�<�<�
�;�;�r�{�{�}�k�2�2�2��l�l�n�G�C��
�6�6�)�b�f�f�a��^�2�6�6�2�6�6�3�2G�6�H�D�
�\�\�$�
�F�"(�)�Q�A�J�J�L�)�^�;�;�;�
�;�;�r�{�{�}�j�1�1�1��*��*��*s�G3�2G8�+G=c	��tj�\}}|jtjddddd���dtjdt
jzd	z�d
zz}t
jjtjd|dzd|dzf�|jjd
�y)N)rr�r�rr,r�rgffffff�?r�r�r8g�������r�r5)
r%rr:r;�Wedgerfr�r�r��assert_array_almost_equal_nulpr;�dataLimr#)r+r �bots   r!�test_patch_boundsrR�s����l�l�n�G�C���L�L������r�3�c�B�C�

�b�f�f�R����X�c�\�"�A�%�
%�C��J�J�-�-�
���&�C��H�+�t�S��W�5�6��
�
�8I�8I�2�Or#c	��tjtd��5tjdgdgdddd��ddd�y#1swYyxYw)	Nz!You passed a edgecolor/edgecolorsr^rr�r�r!r
)r{r�rr )r�r�r#r%r9r�r#r!� test_warn_ignored_scatter_kwargsrT�sG��	���k�@�
B�O����Q�C�!��S�C�3�#�N�O�O�O�s�A�Ac
�j�tj�\}}td�D�cgc]-}|jt	j
||dz��d��/}}|j
t	j
d�t	j
d��}|jt	jd��}|jtjddd��}|jddd�}t|j�|gk(sJ�t|j�|gk(sJ�t|j �|k(sJ�t|j"�|gk(sJ�|j$rJ�t|j&�|gk(sJ�|j d|dusJ�|j d|dusJ�t)j*t,d�	�5|j t/|�d
zddd�t)j0t2d�	�5|j d=ddd�t)j0t2d�	�5|j dd�=ddd�t)j0t2d�	�5|j d
d�=ddd�t)j0t2d�	�5|j d=ddd�|j5�|jrJ�|j5�|jrJ�|j5�|j"rJ�|j5�|j&rJ�|j rJ�|j$rJ�t)j0t2d�	�5|j&j7|�ddd�t)j0t2d
�	�5|jj7|�ddd�t)j0t2d�	�5|jj7|�ddd�t)j0t2d�	�5|j"j7|�ddd�t|j�|gk(sJ�t|j�|gk(sJ�t|j"�|gk(sJ�t|j&�|gk(sJ�t)j0t2d�	�5|j j7|d�ddd�t|j �|dgk(sJ�t)j0t2d�	�5|j j7|d�ddd�t|j �|ddk(sJ�t)j0t2d�	�5|j j9d|d�ddd�t|j �|d|d|dgk(sJ�t)j0t2d�	�5|d|j d<ddd�t|j �|d|d|dgk(sJ�t)j0t2d�	�5|d
d|j d
d
ddd�t|j �|k(sJ�|j gd�zg|�d
�d�d�k(sJ�gd�|j zd
ddg|�k(sJ�|j D]}|j5��t/|j �dk(sJ�ycc}w#1swY��xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��^xYw#1swY��,xYw#1swY���xYw#1swY��8xYw#1swY���xYw#1swY���xYw#1swY��GxYw)Nrr�r)r�r�r�r�r�zout of ranger^r7z'modification of the Axes.lines propertyz'modification of the Axes.texts propertyz-modification of the Axes.collections propertyz(modification of the Axes.images propertyz)modification of the Axes.patches propertyr�rxr8r�)r%rr�r�rfrnr9r�rfr:r;r<r�
r�r��imagesr�r'�tablesr�	r�r��
IndexErrorr�r�rrVr/�insert)	r+r r/r�rFr6rr�
r�
s	         r!�test_artist_sublistsrZ�s����l�l�n�G�C��6;�A�h�?��R�W�W�R�Y�Y�q�!�a�%�(�
)�!�
,�?�E�?�
�*�*�R�Y�Y�q�\�2�9�9�Q�<�
0�C�	���2�8�8�F�#�	$�B��L�L��+�+�F�A�q�9�:�E�
�7�7�1�a���D������C�5�(�(�(���	�	�?�r�d�"�"�"�����>�U�"�"�"���
�
���w�&�&�&��y�y��=�����>�d�V�#�#�#��8�8�A�;�%��(�"�"�"�
�8�8�B�<�5��9�$�$�$�	���z��	8�!�
����U��a�� �!�
���2�E�
G���H�H�R�L��
���2�E�
G���H�H�R�S�M��
���2�E�
G���H�H�Q�R�L��
���2�E�
G���H�H�Q�K��
�J�J�L��~�~����I�I�K��y�y��=�	�L�L�N��z�z��>��K�K�M��x�x��<��x�x��<��y�y��=�	���2�E�
G��
��������
���2�K�
M�#�
�����c�"�#�
���2�F�
H��
�	�	������
���2�G�
I�!�
�
�
���%� �!������C�5�(�(�(���	�	�?�r�d�"�"�"���
�
���w�&�&�&�����>�d�V�#�#�#�
���2�E�
G�#�
������b�	�"�#�����>�e�B�i�[�(�(�(�	���2�E�
G�#�
������b�	�"�#�����>�U�2�3�Z�'�'�'�	���2�E�
G�&�
������E�!�H�%�&�����>�e�A�h��b�	�5��9�=�=�=�=�
���2�E�
G���A�h�����������>�e�A�h��b�	�5��9�=�=�=�=�	���2�E�
G�$��a�������1�
�$�����>�U�"�"�"��8�8�i��#4�U�#4�A�#4�q�#4�!�#4�4�4�4��r�x�x��A�q�!�#4�e�#4�4�4�4��h�h���
�	�	����r�x�x�=�A�����A
@�"!�!��������������$���#�#�����!�!��#�#��#�#��&�&�����$�$�s��2[:�	[?�\�9\�,\&�\3�$]�#]
�"]�!]'�]4�,^� ^�4^�^(�?\	�\�\#�&\0�3\=�]
�
]�]$�']1�4]>�^�^�^%�(^2c�<�tjd�}tjd�}tj�\}}|j	||�}t|�dk(sJ�tj�\}}|j	gg�}t|�dk(sJ�y)Nr�)r�rrr7)rfr�r%rr�r�)r0r1r�r r�s     r!�test_empty_line_plotsr\:s{��
�����A�
�����A��L�L�N�E�A�r�
�7�7�1�a�=�D��t�9��>��>�
�L�L�N�E�A�r�
�7�7�2�r�?�D��t�9��>��>r#z
fmt, match))r�z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))�rkz7'rk' is not a valid format string \(two color symbols\))z:o-rz=':o-r' is not a valid format string \(two linestyle symbols\)�stringc���tj�\}}|�|jdd�}tjt
d|zdz��5|j
d||��ddd�y#1swYyxYw)N�notzneither a data key norz\Az\Zr^r^r3)r%r�replacer�r�r�r�)r�r_r�r+r s     r!�test_plot_format_errorsrbHsh���l�l�n�G�C�����
�
�e�%=�>��	���z�����)>�	?�*�
����#�D��)�*�*�*�s�
A+�+A4c��tj�\}}|jgd�d�}|dj�dk(sJ�|dj	�dk(sJ�tj�\}}|jgd�d�}|dj	�dk(sJ�tj�\}}|jddgddgdd�}|j
j
�|dj�dk(sJ�|j�dj�dk(sJ�tj�\}}|jddgddgdd�}|j
j
�|dj	�dk(sJ�|j�dj�dk(sJ�tj�\}}|jgd�d	�}|dj	�d
k(sJ�|dj�dk(sJ�y)Nrxz1.0r)r�r�r�r�r'rEr7r8�k3r�r�)	r%rr�rr�r0r
r�	r�r�	s   r!�test_plot_formatreXs����l�l�n�G�C��
�7�7�9�e�$�D���7����"6�6�6�6���7����6�)�)�)��l�l�n�G�C��
�7�7�9�c�"�D���7����3�&�&�&��l�l�n�G�C��
�7�7�A�q�6�A�q�6�5�#�.�D��J�J�O�O����7����"6�6�6�6�
�����"�+�+�-��4�4�4��l�l�n�G�C��
�7�7�A�q�6�A�q�6�3��.�D��J�J�O�O����7����3�&�&�&�
�����"�+�+�-��6�6�6��l�l�n�G�C��
�7�7�9�d�#�D���7����3�&�&�&���7����#�%�%�%r#c���tj�\}}|jddddi��|j�}|jj�|j
�dj�dk(sJ�|j�dj�dk(sJ�tj�\}}|jdddddi��|j�}|jj�|j
�dj�dk(sJ�|j�dj�dk(sJ�|j�dj�dk(sJ�y)Nr�r
rXr8r3rr;)
r%rr�rGr0r
�	get_textsr�r�	rS)r+r �legs   r!�test_automatic_legendrips3���l�l�n�G�C���G�G�C��C��8�G�$�
�)�)�+�C��J�J�O�O���=�=�?�1��&�&�(�C�/�/�/�
�����"�+�+�-��4�4�4��l�l�n�G�C���G�G�C��c��a��G�)�
�)�)�+�C��J�J�O�O���=�=�?�1��&�&�(�C�/�/�/�
�����"�+�+�-��4�4�4�
�����"�+�+�-��4�4�4r#c	��tjtd��5tjgd�d��ddd�tjt
d��5tjgd�gd�gd�gd�dd	g�
�ddd�tjt
d��5tjgd�dg�ddd�tjt
d��5tjt
jd
��ddd�tjt
d��5tjddddddi��ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swY�oxYw#1swYyxYw)Nzplot got an unexpected keywordr^rxr7rzplot\(\) with multiple groupsr0rErKr�zx and y must have same firstzx and y can be no greater than)r8r8r8zUsing arbitrary long args withr�r
r;rXr8r3)r�r�r�r%r�r�rfr�r�r#r!�test_plot_errorsrk�s"��	���y�(H�	I�!�����a� �!�	���z�)I�	J�O�����I�y�)�C��:�N�O�	���z�)G�	H�!�����Q�C� �!�	���z�)I�	J�%��������#�$�%�	���z�)I�	J�4�����c�3��3��(�3�4�4�!�!��O�O��!�!��%�%��4�4�s;�E�%E�!E)�)E5�*F�E�E&�)E2�5E>�F
c
��tj�j�}t|jtd�td�td���t|jddgddgg�t|jddgddgg�t|jddgddgg�t|jddgddgg�fD]4}d}||��j}|j|jf|k(r�4J�y)Nr�rrr7r8)r7rQ)�clim)
r%r�r�rr9r�r�rr�r�	r�r�r�)r �plot_methodrmr�s    r!�	test_climro�s���	����	!�	!�	#�B��B�J�J��a��%��(�e�A�h�?��B�I�I��A���A��/�0��B�I�I�!�Q��!�Q�� 0�1��B�M�M�Q��F�Q��F�#3�4��B�M�M�Q��F�Q��F�#3�4��	.������%�*�*���	�	�4�9�9�%��-�-�-�	.r#c���ddgddgddgddgg}tjjtjjtjjtjjg}tj||�}tj�\}}|jtj|��|j�|j�ddk(sJ�y)Nr�rr7r�)�mpathr%r)�CURVE3�	CLOSEPOLYr%rr:r;r(rTr�)r��codesr�r+r s     r!�test_bezier_autoscaleru�s����!�W���W���V���V�
�E��Z�Z�
�
�
�Z�Z�
�
�
�Z�Z�
�
�
�Z�Z�
!�
!�
#�E�	�
�
�5�%� �A��l�l�n�G�C���L�L��#�#�A�&�'��L�L�N��;�;�=���t�#�#�#r#c��tjgddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�d	dg�d	dg�d
dg�d
dg�ddg�ddg�ddg�ddg�d
dg�d
dg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�dd g�d!d g�d!d"g�d#d"g�d#d$g�d%d$g�d%d&g�d'd&g�d'd(g�d)d(g�d)d*g�d+d*g�d+d,g�d-d,g�d-d.g�d/d.g�d/d0g�d1d0g�d1d2g�d3d2g�d3d4g�d5d4g�d5d2g�d6d2g�d6d4g�d.d4g�d.d7g�d8d7g�d8d0g�d9d0g�d9d:g�d;d:g�d;d*g�d<d*g�d<d(g�d=d(g�d=d&g�d>d&g�d>d$g�d?d$g�d?d@g�dAd@g�dAd g�dBd g�dBdg�dCdg�dCdg�dDdg�dDdEg�dFdEg�dFdGg�dHdGg�dHdg�dIdg�dIdg�dJdg�dJdg�dKdg�dKdg�dLdg�dLdg�dMdg�dMdg�dNdg�dNdg�dOdg�dOdg�dPdg�dPdg�dQdg�dQdg�dRdg�dRdg�dSdg�dSdg�dTdg�dTdg�dUdg�dUdg�dVdg�dVdg�dWdg�dWdg�dXdg�dXdg��}tj|dd�dYf�}tj|dd�dZf�}tj|dd�dYf�}tj|dd�dZf�}t	j
|�}t
j�\}}|jtj|��|j�|j�dY|ksJ�|j�dZ|k\sJ�|j�dY|ksJ�|j�dZ|k\sJ�y)[Ng�������r�g)\��(�g��Q���g�z�G��g=
ףp=�g�������g�(\���gR���Q�g�G�z��g
ףp=
�g�������g��Q��
�g=
ףp=�g�(\��
�g�G�z�	�r�gffffff�g��Q��gףp=
��rlg��(\��g{�G�z�?gH�z�G�g�rAg���Q��g{�G�z�?g�z�G�r�gR���Q��r�g�(\���g�Q���?g333333��g�(\���?g�������rg=
ףp=�g)\��(�?g\��(\�rbg=
ףp=�gH�z�G�?g��Q��g��(\��?r�r�g�(\��տg{�G�z�?g
ףp=
ǿr�g{�G�z��g�p=
ף�?gףp=
��?r�g��Q���?g�Q����?�p=
ף�?g�(\���?gq=
ףp�?rg��(\��?rCg��Q��?g�G�z��?g=
ףp=�?gffffff@r{g�G�z�@r�g�(\��@g=
ףp=@g��Q��@g������@g�G�z@g\��(\	@g�p=
ף
@g�Q���@g333333
@g{�G�z@g�(\��@g��Q��@g)\��(@g������@gq=
ףp@g�G�z@g���Q�@rr7)rfr;r$r'rqr%r%rr:r;r(rTr�r�)r��minx�miny�maxx�maxyr�r+r s        r!�test_small_autoscaler|�sQ���H�H��	��
���t�}��',�d�m��6;�T�]��	��
���t�}��',�d�m��6;�T�]��
��
���t�}��(-�d�m��7<�T�]��
��
�	��t�}�	�(-�d�m�	�7<�T�]�	�

��
��
�t�}��
(-�d�m��
7<�T�]��
��
�
��t�}�
�(-�d�m�
�7<�T�]�
�
��
���t�}��(-�d�m��7<�T�]��
��
���t�}��(-�d�m��7<�T�]��
��
���t�}��(-�d�m��7<�T�]��
��
���t�}��(-�d�m��7<�T�]��
��
���t�}��(-�d�m��7<�T�]��
��
���t�}��(-�d�m��7<�T�]��
��
���t�}��(-�d�m��7<�T�]��
��
���t�}��(-�d�m��7<�T�]��
��
���t�}��(-�d�m��7<�T�]�� 
��
�!� �t�}�!� (-�d�m�!� 7<�T�]�!�"
��
�#�"�t�}�#�"(-�d�m�#�"7<�T�]�#�$
��
�%�$�t�}�%�$(,�T�l�%�$6:�4�L�%�$DH��,�%�&
�t��'�&�T�l�'�&&*�4�L�'�&48��,�'�&BF�t��'�(
�t��)�(�T�l�)�(&*�4�L�)�(48��,�)�(BF�t��)�*
�t��+�*�T�l�+�*&*�4�L�+�*48��,�+�*BF�t��+�,
�t��-�,�T�l�-�,&*�4�L�-�,48��,�-�,BF�t��-�.
�t��/�.�T�l�/�.&*�4�L�/�.48��,�/�.BF�t��/�0
�t��1�0�T�l�1�0&*�4�L�1�048��,�1�0BF�t��1�2
�t��3�2�T�l�3�2&*�4�L�3�248��,�3�2BF�t��3�4
�t��5�4�T�l�5�4&*�4�L�5�448��,�5�4BF�t��5�6
�t��7�6�T�l�7�6&*�4�L�7�648��,�7�6BF�t��7�8
�t��9�8�T�l�9�8&*�4�L�9�848��,�9�8BF�t��9�:
�t��;�:�T�l�;�:&*�4�L�;�:48��,�;�:BF�t��;�<
�t��=�<�T�l�=�<&*�4�L�=�<48��,�=�
�E�B�6�6�%��1��+��D�
�6�6�%��1��+��D�
�6�6�%��1��+��D�
�6�6�%��1��+��D�
�
�
�5��A��l�l�n�G�C���L�L��#�#�A�&�'��L�L�N�
�;�;�=���t�#�#�#�
�;�;�=���t�#�#�#�
�;�;�=���t�#�#�#�
�;�;�=���t�#�#�#r#c�6�tj�\}}|jtjd��td�D]P}|j
�|j�|�k(sJ�|j�|j�|�k(r�PJ�y)Nr�)	r%rr�rfrnr�rSr�r�	)r+r rs   r!�test_get_xticklabelr~�s����l�l�n�G�C���G�G�B�I�I�b�M���R�y�@���!�!�#�C�(�1�1�3�#��?�?�?��!�!�#�C�(�1�1�3�#��?�?�?�@r#c��tjdt��}tjgd��}tjdgdz�}tj|d<tj�\}}|j|||��}|j|||��}||fD]�}|^}}	tj|j�j�sJ�tj|j��sJ�|	D]V}
tj|
j�j�sJ�tj|
j��r�VJ���y)Nr�r�)r�r�r�rwrr�r)rfrnr�r;rer%rr�r��isfiniter��any�	get_widthr�)�barx�
barheights�	barstartsr+r rV�hbars�bar_set�nanful�restr
s           r!�test_bar_leading_nanr��s��
�9�9�Q�e�$�D����/�*�J����$����"�I��f�f�D��G��l�l�n�G�C��
�6�6�$�
�9�6�5�D��G�G�D�*�9�G�5�E��%�=�.���
������V�Y�Y�'�'�,�,�.�.�.��{�{�6�+�+�-�.�.�.��	.�A��;�;�q�t�t�$�(�(�*�*�*��;�;�q�{�{�}�-�-�-�	.�.r#c�v�tjjd�|j�}|j�}|j	t
jgt
jg�|j	dgdg�|j	dgdg�j�|j	dgdg�y)Nr�r7)r�r�r�rr�rfr�rVr�s    r!�test_bar_all_nanr� s����I�I�M�M�'�����!�G�
�
�
�
�F��K�K�����2�6�6�(�#��K�K���a�S��
�J�J��s�Q�C����!�
�J�J��s�Q�C�r#re(_r�rrr�r�	functoolsrr�r��	itertoolsr�platformr�r�dateutil.tzr��numpyrfrr	r�rUr�r
�matplotlib._apir�matplotlib.colorsr?r��matplotlib.datesrCr�matplotlib.figurer�matplotlib.axesr
�matplotlib.font_manager�font_manager�
mfont_manager�matplotlib.markersrr��matplotlib.patchesr'r;�matplotlib.pathr$rq�matplotlib.projections.geor�matplotlib.projections.polarr�matplotlib.pyplot�pyplotr%�matplotlib.textr�
r��matplotlib.ticker�tickerr��matplotlib.transforms�
transformsr��mpl_toolkits.axisartist�
axisartistr@�
numpy.testingrrr�matplotlib.testing.decoratorsrrrr"r,r5rLrSrVr]rvr�r�r�r�r�r�rrr�r�r0r@rJr\r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr%r-r4r<rGrMr]rirorxr|r�r�r�r�r�r�r�r�r�r�r�rfrnr�r�r�r�rrrrr+r0r@r\r^rgrmrprrrurzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrr r&r7rFrKrNrZr\rargrmrrrur�r�r�r�r�r�rr�r��Patchr6r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrr"r$r�r�r;r�rYr�r�r�r�r�r�r�r�r�r�r�r�r�r	r
rrrrr r#r'r*r-r0r3r6r;r?rArCrErGrJrMrOrQrSr^r`rcrfrirlrxr~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�rr	rrr r%r.r6r:r<r@rCrIrOrSrVrXr^rjrxr�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�rr
rrrrr�machiner%r(r.r3r6r8rJrOrZr\r�rArarjrtrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r$rprernr	r		r	r	r	r"	r�r�r�
r&	r.	r2	r7	r<	rQ	rX	rb	re	rh	rk	ro	rr	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�	�image�	AxesImager��PcolorImagerg�QuadMeshr�r�r�	r�	r
r
r
r
r
r
r
r 
r"
r'
r)
�fixturer5
r9
r;
r>
rB
rE
rG
rL
rN
rT
rX
r[
ra
re
rj
rl
rs
ry
r}
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
rrrr	rrrrrrrr.r6r9r>rArKrNrQrSrUrWrZrmrprsr{rr�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
�
font_scalingsrrrrrrr!r(r*r/r1r4r6r9r<r@rBrGrIrLrRrTrZr\rbrerirkrorur|r~r�r�rws0r!�<module>r�s�-��"�����	���!�����
���!�8�#�!�$� �/�%�%��1�2���#�+�$�D�D�D�D����(��)��
(�M���/��/�$��.��.�$��/��/�(F�,���(�(�)�(�$���(�,�)�,�*3����(�,�)�,����$�
�$�NJ�4G�2�2�3�4��5��0"�.�������,����T�2�'%�3�-�'%�T�'�(�)��*��",�"1�h0�f/����(��)���)�*��=�%�>�%������9��!��!�.�����9��3��3�"�����9��0��0�$���(��)���?�#��6�;�7�;��%�&�D�9�)�:�)�4(�'�'���#�$�U�B�K�@��A��B5����(�
J�)�
J��>�>�2�3�'�4�'�"�$�%�W�5�-�6�-����(��)��/��=�/�u�g�"�'�3�/�3�/��?�#�$�*�%�*��?�#��.�*�/�*��&�(;�<�$�O�<�P�<��%�'9�:��M�"�N�"�'��#�$�G�4��5��$�&�'�w�D�I�	(�J�	(�$�$�4�%�&�'��(�������9��������<�>����(�
<�)�>��
<��8�X�&�D��H��I��(�=�/��1�&�2�&�4F��-�.�D�A��B��������	����&�	�1�a� �	����3��4�	 �(�"�(�(�6�"2�A�6�	����3��4�	 �!�X�R�X�X�f�%5�6����
�#�
�#�������	����&�	�1�a� �	����3��4�	 �(�"�(�(�6�"2�A�6�	����3��4�	 �!�X�R�X�X�f�%5�6����
�$�
�$��-�.�D�A�'�B�'�.�8�9��T�3��3��&�1�2��E�
1�F�
1�&�<�.�!��"���=�/�t�4�	 �5�	 �(��<�.�d�3�1�4�1�.�%�&�E�7�;��<��(�%�&�E�5�>�"�$�F�$�F�B�1�2�'�B�#�C�#�6�-�.�g�>�#�?�#�0/�B���(�0�)�0����(�0�)�0�/�������%���/����(�(�)�0�(�"�;�-� ��!��
�#�$�$�i�H��I��B�=�/�t�4�!�5�!�H0��;�-�T�2�
�3�
��#�$�$�E�B��C��"�,�-�4�U�K�;�L�;�0�3�4�$�G��H��4�)�*��=�;�>�;�4�$�%�Y�D�I�?�J�?�.�1�2��E�;�F�;�2�>�"��5�=�6�=��.�0K�L�M�	>�N�	>� �
�
�0�1�2��3���D�E�F��G�����(�
#�)�
#����(�
=�)�
=����(�
+�)�
+����(�
-�)�
-�6�4��(�)�*��+���4'��"+�<3�&%������9����
%���
%������A�	�a��|�n�c�*�	�,��	�,�	(�	�,�(@�	!�<�	1�	�,��	3�V�	=�
��8��8�0�
��:�,�D�1�(�2�(����(�7�)�7�2��'�(�d�;� �<� �+��(�)�t�<�!�=�!��)�*��=�H�>�H�$�%�&�'� �(� �-�!������*��)�)�,�,�+�L�N�/�	�0�E�
0�E�"�����9��q�'��4��)���8�Q�-�)�*�:�	*�:������+� �#�+�+�"3�"3�":�":�;�!�3�9�9�#3�#3�#:�#:�;�'����):�):�)A�)A�B�D�E�,�	E�,����(�(�)�(�V���(�#�)�#�2���(��)��.���(�	�)�	�*�+�
#�
)�'��,�-�4�@��A��.�-�.�/��0�����(��)����%�&�D��H�*�I�*��%�&�g�6�%�7�%�*�8�X�&�D��H�=�I�=�"�%�&�D��H�
.�I�
.�'�SL�SL�lH�4�H�
�Y��
,��������
�i�
��H�B�H�H�l�^�4�5�7�
��n�
��H�B�H�H�l�^�4�5�7�
��C� �
��H�B�H�H�l�^�4�5�7��C��
��H�B�H�H�l�^�4�5�7�
�S�#�J��
��c�
�8�2�8�8�\�=�,I�#J�K�M��
�4�
�4��������!�
�f�d�^�
�S�k�4��
�c��C� �
�s�C�j�!�C��:�.�
�S��3��
�f��v�&�
�f��v�&�
�S�S�)�3�/�
�S�C�C�0�#�6�
��o�s��
���$�c�*��
�	4�
�	4�M��2�)�X5���)�+A�B�C��D��(�,�-�4�@�E�A�E�2���4�$�%�&�!&���!�#��#���&�'�!&���!�#�7�#�7��+�,�!&���!�#�6�#�6��)�*�!&���!�#�0�#�0��'�(�"�!&���!��	�
2��
2��)�*�!&���!���M�	�M��(�)�"�!&���!�#�9�	#�9��.�/�"�!&���!�#�G�	#�G��*�+�"�!&���!�#�A�	#�A�
�1�2�"�!&���!�#��	#���&�'�"�!&���!�#�9�	#�9�
�)�*�"�!&���!�#�<�	#�<�
�&�'�"�!&���!�#�9�	#�9�
�*�+�"�!&���!�#�<�	#�<�
�&�'�"�!&���!�#�8�	#�8��#�$�"�!&���!�#�6�	#�6��?�#�"�!&���!�#�5�	#�5��+�,�"�!&���!�#�8�	#�8��+�,�"�!&���!�#�F�	#�F��*�+�"�!&���!�#�E�	#�E��(�)�"�!&���!�#�2�	#�2��)�*�"�!&���!�#�G�	#�G��,�-�"�!&���!�#�>�	#�>�6�
<�
�-�.�!&���!�#�F�#�F��,�-�!&���!�#�5�#�5�9�
�9�i�(�d�)�D��E��$�1�2�!&���9�>�7�>�7��%�&�D�	�J��K���$�%�"�!&���!�#��	#���9�8�:�!�#�
�#�
� ��*�+�!&���$��y�*�;5�*�;5�|�-�.�"�5�"�+�Y�P�
�P�
� �4�5�"�5�"�+�Y�P��P��9�9�C�6�$�;�<�"�5�"�+�Y�P�#�P�#��1�1�3�4�,�4�,��2�3�4�!�5�!��4�5�6�!�7�!��4�5�6�!�7�!��0�1�2�N�3�N��8�9�:�,�;�,��9�:�;�-�<�-��2�3�4�0�5�0��5�6�7�0�8�0��3�4�5�0�6�0��5�6�7�0�8�0��1�2�3�N�4�N��9�:�;�;�<�;��:�;�<�<�=�<�0�B�@�A����(�5�)�5����(�E�)�E�	+�F�)��H�I�3;�J�3;�lE���>��>�9�$�$�%�&�+4�'�+4�\C�3�"���(��)��(5�"7�*��(3��(3�V������	�(0�����(;�()�(+�,�N�,�N����(�)�)�)��,�.G�H�I�
A�J�
A��=�/�"��#���?�#��6��7���(�)�*�A�+�A��)�*�+�M�,�M������.��u�
�2�4I�J��L��:�,�g�4�@��A�L��">�,>4�B������.��u�
�2�4I�J��L��)�*�'�t�L�
.�M�L�
.� �2�3�4�F�5�F��&�'�(�5�)�5��(�)�*�2�+�2��)�*��=�=�>�=�-�-�	-�-�-�,-�(-�.-�*�%�&�'�E�(�E�""�9�
'��(�)�t�<�3�=�3��>�"��5�
�6�
� �#�$�$�7��8��5�,5�*�<�.�d�3�"�4�"�:�;��,�$�?�(+�@�(+�V�0�1�t�D�
�E�
� �����(�&��
1��
1�*�6�7�T�J�"�K�"�8�������2�$��a��V���1�v�r�l�!C�D�������(H�I��J�E�����(��)���&�'�T�:�@�;�@��&�'�(�&�)�&��'�(�d�;��<���'�):�;�+�8�+�+�-��9�a�t�E�)�E�)�8��	,��	,���!��!�,��
)��
)� ��(��(�&�(�F�#�W�&�#�&�#�L?��F�#�W�&�#�&�#�L?�������1�a��B�F�F�A�"6�"$�%�%�"4�"4�_�a�"H�"J�K����(�J�)�K�J��#�%5�6�D�I��J��:�%�&�D�9��:��2?��8��$�i�1�J�	1�J�@�L��$�i�1�J�	1�J�B�=��$�i�1�,�	1�,�D%����(�)�)�)�"-��H��%�!�)�!�)�>�!��	�)�	�)�@-����(��)���$�%�4�8�)&�9�)&�X�+�-E�F�"�$�E�$�E�:�����C�F��
0��
0�
=� 
=����(��)��&.�������3�;�;����T�*J�+.�;�;����V�*L�*N�O�(�O�(�	�
-�2�C�(%������3�$�f�b�)�*�&�y�"�#�$�%��1�v�j�"�8�:�$�e�g��t�}�#�$���"��"�
#�4�������,�-�-�-��2$��$�%�&�;�'�;��K�#�W�G�5��5��>�*�+�7�;��<��&�(�)��9��:���%�&�g�6��7���'�(��8��9��4�.�/�w�?��@���%�&�'�
�(�
�8�,0�/��+�,�-�3�.�3�2���(�2�)�2�*&�	/�1���/�0�1�5�2�5�8�&�+�,�U�B�K�H�7�I�7�!:�H#������3�	�U�B� D�E�	�W�b�"F�G�	�U�W�s�B�i�)M�N�	�U�W�s�B�i�)M�N�	�E���+�	K�	M�	�E�C��8�	K�	M�	�I�r�#K�L�
6�
�$�
�$��'�0�(�&���C�4�?�#�E�2�;�?��@���=�/�%���=�%�>�%�*1�(-�.M�O������
�	�S�Y�Y�
 �
 �!�	�3�9�9�.�.�/�
��(�E�!�H�	�s�y�y�2�2�3�
�L�	)�	���	�	�	 �
�)�)�
�
�6�
"�B�I�I�$4�$4�V�$<�	=�	���	!�	!�	#�
�
������
�Y�R�Y�Y�r�]�
"�
"�6�
*�B�I�I�N�N�1�a��,C�D��1��
�1�
+�$!�%�
7�,������#;�#=�>��?���=�/�t�4�;�5�;�
N� (�$������D�%�=�1��2���<�.�d��=�6�>�6��+�,�$�g�N�6�O�6�*�����9��*��*�B�����S�z�"�;�#�;�$����I�J�
�K�
� �;�=�"	3������9��G��G������9��F��F�!�
L�%�8�9� ��
�"�$
B�	C�?�
?� %� ��(�)�s�3�
1�4�
1� �(�)�*�J�+�J�"�.�/�S�9�
G�:�
G� �?�#��6�-�7�-�&!�*�-�-����������
� �
� �&
'�;�8����H�)�&�����9��J��J�6B�	$��
N�	�������H�e�#4�5�������H�e�#4�5��6�6��G�,�
����(�$�)�$����(�7�)�7�
	�5�::�B�$�%�4�w�G�	�H�	�)�&��������t�}�5��������t�}�5�B�6�6�B�0
5�M�F��$��3�4��T�3�2�3�2��%�&�g�6��7��(%�G�+�0D�.�+(�\$N�N=�<=�6F�,D�>���(�(�)�(�
)� )�"�0��2�$�
6�.�1�61�.%��1�?�?��������,�������!4�5�/�6�-�/�$���(�>�)�>������9��)��)�1�1�������=�3N�3N�"7�4�%)�%5�#'�"7�9D�"E�F������9��M��F�M�)�L����(�K�)�K�$���(��)��5�������:�;�/�<�/�
'�*�
*�*�*�*�
*�
'�+�'�*�*�2�(O������9��O��O�b�J�������(��������$��5��8�(<�!=�>�*�?��*�&�05�"
4�.�$�*1$�h@�.�0���(�	�)�	��}"7s�A?BH

Youez - 2016 - github.com/yon3zu
LinuXploit