U
    d»{jA! ã                   @   s*2  d dl mZ d dlZd dlmZ d dlmZ d dlZd dlZd dl	m
Z
 d dlZd dlmZ d dlZd dlZd dlmZ d dlmZ d dlZd dlZd dlZd d	lmZ d d
lmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z# d dl$m%Z& d dl'm(Z) d dl*m+Z, d dl-m.Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z6 d dl7m8Z9 d dl:m;Z< d dl=m>Z? d dl@mAZB d dlCmDZDmEZEmFZF d dlGmHZHmIZImJZJ eIdgd�dd„ ƒZKdd„ ZLdd„ ZMeIƒ dd„ ƒZNeIƒ dd„ ƒZOeIƒ dd„ ƒZPdd „ ZQeIdgd�d!d"„ ƒZReIdgd�d#d$„ ƒZSd%d&„ ZTeIdgd�d'd(„ ƒZUeHd)d*d+d,d-gƒd.d/„ ƒZVd0d1„ ZWd2d3„ ZXeHd4gƒd5d6„ ƒZYd7d8„ ZZej[ \d9d:¡eIdgd;d<�d=d>„ ƒƒZ]eHd?gƒd@dA„ ƒZ^dBdC„ Z_dDdE„ Z`dFdG„ ZadHdI„ ZbeIdgd�dJdK„ ƒZceHdLgdMdN�dOdP„ ƒZdeje fdQ¡dRdS„ ƒZgeje fdQ¡dTdU„ ƒZheje fdQ¡dVdW„ ƒZieIdgd�dXdY„ ƒZjeHdZgdMdN�d[d\„ ƒZkeHd]gdMdN�d^d_„ ƒZld`da„ Zmdbdc„ Znddde„ Zodfdg„ ZpeHdhgdidjidk�dldm„ ƒZqdndo„ ZreIdgd�dpdq„ ƒZseHdrdrgƒdsdt„ ƒZteHdugdvdw�dxdy„ ƒZueIdgd�dzd{„ ƒZvd|d}„ ZweHd~gdgdMdvd�d€d�„ ƒZxeHd‚gƒdƒd„„ ƒZyeHd…gd†d‡�dˆd‰„ ƒZzeHdŠdŠgdMdN�d‹dŒ„ ƒZ{eHd�gdMdN�dŽd�„ ƒZ|d�d‘„ Z}eHd’gdvdw�d“d”„ ƒZ~eHd•gdvdMd–�d—d˜„ ƒZd™dš„ Z€d›dœ„ Z�eHd�gƒdždŸ„ ƒZ‚eje fdQ¡ej[ \d d¡d¢d£g¡eIdgd�d¤d¥„ ƒƒƒZƒeHd¦d¦gdMdvd§�d¨d©„ ƒZ„eHdªgdvdw�d«d¬„ ƒZ…d­d®„ Z†eHd¯gdMdN�d°d±„ ƒZ‡ej[j\d²e ˆd³¡d´d´fe ‰dµd¶d†¡e ˆd³¡d´fe ‰dµd¶d†¡d´e ˆd³¡fgd·d¸d¹gdº�d»d¼„ ƒZŠej[j\d½e ˆd³¡d´d´fe ‰dµd¶d†¡e ˆd³¡d´fe ‰dµd¶d†¡d´e ˆd³¡fgd¾d¿dÀgdº�dÁdÂ„ ƒZ‹eHdÃgdMdN�dÄdÅ„ ƒZŒeHdÆgdvdMd–�dÇdÈ„ ƒZ�eHdÉgdMdN�dÊdË„ ƒZŽeHdÌgƒdÍdÎ„ ƒZ�eHdÏgdMdN�dÐdÑ„ ƒZ�dÒdÓ„ Z‘eHdÔgdMdN�dÕdÖ„ ƒZ’eHd×gdØgd�dÙdÚ„ ƒZ“eHdÛgddÜgdMdÝ�dÞdß„ ƒZ”eHdàgdvdw�dádâ„ ƒZ•eHdãgdvdw�dädå„ ƒZ–dædç„ Z—eIdgd�dèdé„ ƒZ˜eIdgd�dêdë„ ƒZ™dìdí„ Zšej[ \dîdïdMg¡eIdgd�dðdñ„ ƒƒZ›eHdògƒdódô„ ƒZœeHdõgdMdQd§�död÷„ ƒZ�eHdøgdMdN�dùdú„ ƒZždûdü„ ZŸeHdýgdMdN�dþdÿ„ ƒZ eH�d gdM�d�d��d�d„ ƒZ¡eH�dgdM�d�d��d�d„ ƒZ¢eH�d	gdMdN��d
�d„ ƒZ£eH�dgdMdN��d�d„ ƒZ¤eH�dgdQdMd–��d�d„ ƒZ¥eH�dgdMdN��d�d„ ƒZ¦eH�dgdMdN��d�d„ ƒZ§eH�d�dgƒ�d�d„ ƒZ¨�d�d„ Z©�d�d„ ZªeH�dgƒ�d �d!„ ƒZ«eH�d"gƒ�d#�d$„ ƒZ¬eIdgd��d%�d&„ ƒZ­eIdgd��d'�d(„ ƒZ®eIdgd��d)�d*„ ƒZ¯eIdgd��d+�d,„ ƒZ°�d-�d.„ Z±�d/�d0„ Z²eH�d1gƒ�d2�d3„ ƒZ³�d4�d5„ Z´�d6�d7„ Zµ�d8�d9„ Z¶�d:�d;„ Z·�d<�d=„ Z¸�d>�d?„ Z¹eje fdQ¡eIƒ �d@�dA„ ƒƒZºej[ \�dB�dC�dD�dC�dEg�dCf�dF�dG�dHg�dI�dJ�dKg�dL�dM�dNg�dL�dM�dNg�dEf�dF�dG�dHg�dI�dJ�dKg�dO�dP�dEg�dO�dP�dEg�dEf�dF�dG�dHg�dI�dJ�dKg�dQ�dE�dE�dEg�dQfg¡�dR�dS„ ƒZ»�dT�dU„ Z¼�dV�dW„ Z½eH�dXgdMdN��dY�dZ„ ƒZ¾eIdgd��d[�d\„ ƒZ¿�d]�d^„ ZÀeH�d_gdMdN��d`�da„ ƒZÁ�db�dc„ ZÂeH�ddgdMdN��de�df„ ƒZÃeH�dggdMdN��dh�di„ ƒZÄeH�djgƒ�dk�dl„ ƒZÅ�dm�dn„ ZÆ�do�dp„ ZÇej[j\�dqejjÈ�dr�ds„ �dt�ds„ g�du�dv�dwgdº��dx�dy„ ƒZÉej[ \�dzg �dDfg g�dDfg g gd¶fg¡�d{�d|„ ƒZÊej[ \�d}�d~ej+jËjÌf�dejÍjÎjÌf�d€ej+jËjÌfg¡�d��d‚„ ƒZÏeIdgd��dƒ�d„„ ƒZÐeIdgd��d…�d†„ ƒZÑeIdgd��d‡�dˆ„ ƒZÒeIdgd��d‰�dŠ„ ƒZÓ�d‹�dŒ„ ZÔ�d��dŽ„ ZÕ�d��d�„ ZÖ�d‘�d’„ Z×�d“�d”„ ZØeH�d•gdMdN��d–�d—„ ƒZÙeH�d˜gƒ�d™�dš„ ƒZÚeIdgd��d›�dœ„ ƒZÛ�d��dž„ ZÜeH�dŸgdMdvd§��d �d¡„ ƒZÝeH�d¢gdvdw��d£�d¤„ ƒZÞeH�d¥�d¥gdMdvd§��d¦�d§„ ƒZßeH�d¨gdMdvd§��d©�dª„ ƒZà�d«�d¬„ ZáG �d­�d®„ �d®ƒZâ�djd�d¯œ�d°�d±„Zãe�d²�d³ƒZäej[ \�d´eãƒ eä�dGe åd d �dD�dDgg¡�dµ�feã�d¶�d·�eä�d¶e å�dDd d �dDgg¡�dµ�feã�d¶�dG�dµ�eä�d¶e å�dDd d �dDgg¡�dµ�feã�dG�d¸�eä�dGe åd d �dD�dDgg¡�dµ�feã�dG�d¹g�d¸�eä�dG�d¹ge åd d �dD�dDgd �dºd �dDgg¡�dµ�fg¡�d»�d¼„ ƒZæ[ã[äej[ \�d½eçƒ dfeç�dG�d·�dfeç�d¶�d¯��d¶feç�d¶�d¹g�d¯��d¶�d¹gfeç�d¶�d¾��d¶feç�d¿�d¯��d¿feç�dÀ�d¯��dÀfeç�d¶�d¹�dÁ��d¶feç�dG�d¶�d¹�dÂ��d¶feç�d¶�d¸��d¶feç�d¶�d¹�dÃ��d¹fg¡�dÄ�dÅ„ ƒZè�dÆ�dÇ„ Zé�dÈ�dÉ„ Zê�dÊ�dË„ Zë�dÌ�dÍ„ Zì�dÎ�dÏ„ Zí�dÐ�dÑ„ ZîeH�dÒ�dÒgƒ�dÓ�dÔ„ ƒZïeH�dÕgdMdN��dÖ�d×„ ƒZði �dØ�ds„ i f�dÙ�dÚ„ZñeH�dÛgdi�dÜidQ�dÝ��dÞ�dß„ ƒZòeH�dàgdi�dÜidQ�dÝ��dá�dâ„ ƒZóeH�dãgdi�dÜidQ�dÝ��dä�då„ ƒZôeH�dægdi�dÜidQ�dÝ��dç�dè„ ƒZõeH�dégdMdi�dÜidQ�dê�dë��dì�dí„ ƒZöeH�dîgdi�dÜidQ�dê�dï��dð�dñ„ ƒZ÷eH�dògdMdi�dÜidQ�dó��dô�dõ„ ƒZøeH�dögdMdi�d÷idQ�dó��dø�dù„ ƒZùeH�dúgdMdi�dÜidQ�dó��dû�dü„ ƒZúeH�dýgdMdi�dÜidQ�dó��dþ�dÿ„ ƒZûeH�d gdMdi�dÜidQ�dó��d�d„ ƒZüeH�dgdMdi�dÜidQ�dó��d�d„ ƒZýeH�dgdMdi�dÜidQ�dó��d�d„ ƒZþeH�d	gdMdi�dÜidQ�dó��d
�d„ ƒZÿeH�dgdMdi�dÜidQ�dó��d�d„ ƒ�Z eH�dgdMdi�dÜidQ�dó��d�d„ ƒ�ZeH�dgdMdi�dÜidQ�dó��d�d„ ƒ�ZeH�dgdMdi�dÜidQ�dó��d�d„ ƒ�ZeH�dgdMdi�dÜidQ�dó��d�d„ ƒ�ZeH�dgdMdi�dÜidQ�dó��d�d„ ƒ�ZeH�dgdMdi�dÜidQ�dó��d�d „ ƒ�ZeH�d!gdMdi�dÜidQ�dó��d"�d#„ ƒ�ZeH�d$gdMdi�dÜidQ�dó��d%�d&„ ƒ�Z�d'�d(„ �Z	�d)�d*„ �Z
eH�d+gdi�dÜidQ�dÝ��d,�d-„ ƒ�ZeH�d.gdi�dÜidQ�dÝ��d/�d0„ ƒ�Z�d1�d2„ �ZeH�d3�d3g�d4dQ�d5��d6�d7„ ƒ�ZeH�d8gdi�dÜidQ�dÝ��d9�d:„ ƒ�ZeH�d;gdMdQd§��d<�d=„ ƒ�ZeH�d>gdMdi�dÜidQ�dó��d?�d@„ ƒ�ZeH�dA�dBgdQdw��dC�dD„ ƒ�Z�dE�dF„ �ZeH�dGgdi�d÷idM�dDdQ�dH��dI�dJ„ ƒ�ZeH�dKgdMdi�dÜidQ�dó��dL�dM„ ƒ�ZeH�dNgdMdi�dÜidQ�dó��dO�dP„ ƒ�Z�dQ�dR„ �Z�dS�dT„ �Z�dU�dV„ �Z�dW�dX„ �ZeH�dYgdMdi�dÜidQ�dó��dZ�d[„ ƒ�ZeH�d\�d\gƒ�d]�d^„ ƒ�ZeH�d_gƒ�d`�da„ ƒ�ZeH�dbgƒ�dc�dd„ ƒ�ZeH�degƒ�df�dg„ ƒ�ZeH�dhgƒ�di�dj„ ƒ�Z eH�dkgƒ�dl�dm„ ƒ�Z!eH�dngƒ�do�dp„ ƒ�Z"eH�dqgƒ�dr�ds„ ƒ�Z#eH�dtgƒ�du�dv„ ƒ�Z$eH�dwgƒ�dx�dy„ ƒ�Z%eH�dzgƒ�d{�d|„ ƒ�Z&eH�d}gƒ�d~�d„ ƒ�Z'eH�d€gƒ�d��d‚„ ƒ�Z(eH�dƒgƒ�d„�d…„ ƒ�Z)�d†�d‡„ �Z*�dˆ�d‰„ �Z+�dŠ�d‹„ �Z,�dŒ�d�„ �Z-eIdgd��dŽ�d�„ ƒ�Z.eIdgd��d��d‘„ ƒ�Z/�d’�d“„ �Z0�d”�d•„ �Z1�d–�d—„ �Z2eH�d˜�d™�d˜gƒ�dš�d›„ ƒ�Z3�dœ�d�„ �Z4eIƒ �dž�dŸ„ ƒ�Z5�d �d¡„ �Z6eH�d¢gƒ�d£�d¤„ ƒ�Z7�d¥�d¦„ �Z8�d§�d¨„ �Z9eIdgd��d©�dª„ ƒ�Z:�d«�d¬„ �Z;�d­�d®„ �Z<eIƒ �d¯�d°„ ƒ�Z=ej[ \�d±�dDd¶d´ge å�dDd¶d´g¡�dDg¡�d²�d³„ ƒ�Z>eIdgd��d´�dµ„ ƒ�Z?eH�d¶�d¶gƒ�d·�d¸„ ƒ�Z@eH�d¹gƒ�dº�d»„ ƒ�ZAeH�d¼gdMdN��d½�d¾„ ƒ�ZBeH�d¿gƒ�dÀ�dÁ„ ƒ�ZCeH�dÂgƒ�dÃ�dÄ„ ƒ�ZDej[j\�dÅdMdïg�dÆ�dÇgdº�eH�dÈgdvdMd–��dÉ�dÊ„ ƒƒ�ZE�dË�dÌ„ �ZF�dÍ�dÎ„ �ZG�dÏ�dÐ„ �ZHej[j\�dÅdMdïg�dÆ�dÇgdº�eH�dÑgdvdMd–��dÒ�dÓ„ ƒƒ�ZIeH�dÔgƒ�dÕ�dÖ„ ƒ�ZJeH�d×gƒ�dØ�dÙ„ ƒ�ZKeH�dÚgƒ�dÛ�dÜ„ ƒ�ZLeH�dÝgdMdN��dÞ�dß„ ƒ�ZM�dà�dá„ �ZN�dâ�dã„ �ZO�dä�då„ �ZP�dæ�dç„ �ZQ�dè�dé„ �ZR�dê�dë„ �ZS�dì�dí„ �ZT�dî�dï„ �ZUeH�dðgƒ�dñ�dò„ ƒ�ZV�dó�dô„ �ZW�dõ�dö„ �ZX�d÷�dø„ �ZYeH�dùgdMdN��dú�dû„ ƒ�ZZeH�dügdMdN��dý�dþ„ ƒ�Z[eH�dÿgdMdN��d �d„ ƒ�Z\�d�d„ �Z]�d�d„ �Z^eH�dgdMdN��d�d„ ƒ�Z_eH�d�dgdMdN��d	�d
„ ƒ�Z`eH�dgdMdN��d�d„ ƒ�Zaej[ \�d�d�d�dg¡�d�d„ ƒ�ZbeH�dgdMdN��d�d„ ƒ�Zc�d�d„ �Zdej[ \�dg gg d �dDggd �dDgg gg¡ej[ \�dd�d�dg¡�d�d„ ƒƒ�ZeeIdgd��d�d „ ƒ�ZfeH�d!gdMdN��d"�d#„ ƒ�ZgeH�d$gƒ�d%�d&„ ƒ�ZheH�d'gdMdN��d(�d)„ ƒ�ZieH�d*�d+ge� j¡ �d,k�r:d nd†d‡��d-�d.„ ƒ�ZkeIƒ �d/�d0„ ƒ�ZleIƒ �d1�d2„ ƒ�ZmeIƒ �d3�d4„ ƒ�ZneIƒ �d5�d6„ ƒ�Zo�d7�d8„ �ZpeH�d9�d:�d;gdgd��d<�d=„ ƒ�Zq�d>�d?„ �ZreH�d@�dA�dBgdgd��dC�dD„ ƒ�Zs�dE�dF„ �Ztej[ \�d�dDd¶d´e�ju�dGgej� v�dDd¶d´�dH�dGg�dH¡g¡eIdgd��dI�dJ„ ƒƒ�ZweH�dK�dKgdMdN��dL�dM„ ƒ�ZxeH�dNgdMdN��dO�dP„ ƒ�Zy�dQ�dR„ �ZzeH�dS�dT�dU�dVgdM�dWdQ�dX��dY�dZ„ ƒ�Z{eH�d[�d\�d]�d^gdM�dWdQ�dX��d_�d`„ ƒ�Z|eH�da�db�dc�ddgdM�dWdQ�dX��de�df„ ƒ�Z}�dg�dh„ �Z~eIdgd��di�dj„ ƒ�Z�dk�dl„ �Z€eH�dm�dn�do�dpgdM�dq�d��dr�ds„ ƒ�Z�eH�dt�du�dv�dw�dx�dy�dz�d{gdMdN��d|�d}„ ƒ�Z‚�d~�d„ �ZƒeIdgd��d€�d�„ ƒ�Z„eH�d‚gdMdN��dƒ�d„„ ƒ�Z…eH�d…�d…gdMdN��d†�d‡„ ƒ�Z†ej[ \�dˆ�d‰�dŠ�d‹g¡�dŒ�d�„ ƒ�Z‡�dŽ�d�„ �Zˆ�d��d‘„ �Z‰eIdgd��d’�d“„ ƒ�ZŠ�d”�d•„ �Z‹ej[ \�d–e6�jŒe6�j��d—ge6�jŽe6�j��d˜gg¡�d™�dš„ ƒ�Z��d›�dœ„ �Z‘�d��dž„ �Z’�dŸ�d „ �Z“�d¡�d¢„ �Z”�d£�d¤„ �Z•ej[ \�d¥�e–�d¦i �d§f�e—�d¨i �d©f�e–�dDd¶gfi �dªf�e–�e˜ƒ �d«di�d¬ff¡�d­�d®„ ƒ�Z™�d¯�d°„ �Zšej[ \d9d:¡�d±�d²„ ƒ�Z›�d³�d´„ �Zœ�dµ�d¶„ �Z�eH�d·gƒ�d¸�d¹„ ƒ�ZžeH�dº�dº�dºgdgdv�d»��d¼�d½„ ƒ�ZŸeH�d¾gdvdw��d¿�dÀ„ ƒ�Z eH�dÁgdvdw��dÂ�dÃ„ ƒ�Z¡eH�dÄgdvdw��dÅ�dÆ„ ƒ�Z¢eH�dÇgdvdw��dÈ�dÉ„ ƒ�Z£eH�dÊgdvdw��dË�dÌ„ ƒ�Z¤eH�dÍgƒ�dÎ�dÏ„ ƒ�Z¥�dÐ�dÑ„ �Z¦�dÒ�dÓ„ �Z§�dÔ�dÕ„ �Z¨eH�dÖgƒ�d×�dØ„ ƒ�Z©eIdgd��dÙ�dÚ„ ƒ�Zª�dÛ�dÜ„ �Z«�dÝ�dÞ„ �Z¬�dß�dà„ �Z­�dá�dâ„ �Z®eH�dãgƒ�dä�då„ ƒ�Z¯�dæ�dç„ �Z°eH�dègdi�déidk��dê�dë„ ƒ�Z±�dì�dí„ �Z²�dî�dï„ �Z³ej[ \�d¥�e—�dði �dñf�e—�dòi �dñf�e—�e˜ƒ �dC�dói�dñf�e—�e˜ƒ �dô�dói�dñf�e–�d—�dD�dDd:œ�dõf�e–�d—�dC�dDi�dõf�e–�döi �d÷ff¡�dø�dù„ ƒ�Z´�dú�dû„ �Zµ�dü�dý„ �Z¶�dþ�dÿ„ �Z·�d �d„ �Z¸�d�d„ �Z¹�d�d„ �Zº�d�d„ �Z»�d�d	„ �Z¼eH�d
gdi�dÜidk��d�d„ ƒ�Z½eH�dgdi�dÜidk��d�d„ ƒ�Z¾�d�d„ �Z¿�d�d„ �ZÀ�d�d„ �ZÁ�d�d„ �ZÂej[ \�d�de�jÃ�jÄf�de�jÃ�jÄf�eÅ�dGƒ�eÅ�dHƒfe�jÃ�jÄf�dDd¶�dH�d�dgd �dDd¶d´gfe�jÃ�jÆfe�jÇ� Ç�d¡e�jÇ� Ç�d¡fej �jÈfg¡ej[ \�de ‰�d¡� É�d¡e�jÇ� Êd´�dHd´¡g¡�d �d!„ ƒƒ�ZË�d"�d#„ �ZÌ�d$�d%„ �ZÍ�d&�d'„ �ZÎ�d(�d)„ �ZÏej[ \�d*�eÏƒ ¡�d+�d,„ ƒ�ZÐeH�d-gdMdN��d.�d/„ ƒ�ZÑ�d0�d1„ �ZÒ�d2�d3„ �ZÓej[ \�d4dMdïg¡�d5�d6„ ƒ�ZÔeH�d7gdMd†�d��d8�d9„ ƒ�ZÕeH�d:gdMdvd§��d;�d<„ ƒ�ZÖeje fdQ¡�d=�d>„ ƒ�Z×e�jØ�dC�dôg�d?��d@�dA„ ƒ�ZÙe�jØ�dB�dC�dD�dEg�d?��dF�dG„ ƒ�ZÚ�dH�dI„ �ZÛ�dJ�dK„ �ZÜ�dL�dM„ �ZÝ�dN�dO„ �ZÞeje fdQ¡�dP�dQ„ ƒ�Zßeje fdQ¡�dR�dS„ ƒ�Zà�dT�dU„ �Zá�dV�dW„ �Zâ�dX�dY„ �Zã�dZ�d[„ �Zä�d\�d]„ �Zå�d^�d_„ �Zæ�d`�da„ �Zç�db�dc„ �Zè�dd�de„ �Zé�df�dg„ �Zê�dh�di„ �Zë�dj�dk„ �Zì�dl�dm„ �Zí�dn�do„ �Zî�dp�dq„ �ZïeH�drg�dsd‡��dt�du„ ƒ�ZðeH�dvgƒ�dw�dx„ ƒ�ZñeH�dyg�dsd‡��dz�d{„ ƒ�ZòeH�d|gdMdN��d}�d~„ ƒ�Zó�d�d€„ �Zô�d��d‚„ �Zõ�dƒ�d„„ �Zö�d…�d†„ �Z÷ej[j\�d‡�dˆ�d‰�dŠg�d‹�dŒ�d�gdº��dŽ�d�„ ƒ�Zø�d��d‘„ �Zù�d’�d“„ �Zú�d”�d•„ �Zû�d–�d—„ �Zü�d˜�d™„ �Zý�dš�d›„ �Zþ�dœ�d�„ �Zÿ�dž�dŸ„ �Z eje fdQ¡�d �d¡„ ƒ�Z�d¢�d£„ �Z�d¤�d¥„ �Z�d¦�d§„ �Z�d¨�d©„ �Z�dª�d«„ �Zej[ \�d¬�d­�d®g¡ej[ \�d¯�d­�d®g¡�d°�d±„ ƒƒ�Z�d²�d³„ �Z�d´�dµ„ �Z	�d¶�d·„ �Z
eIdgd��d¸�d¹„ ƒ�ZeIdgd��dº�d»„ ƒ�Z�d¼�d½„ �Z�d¾�d¿„ �Z�dÀ�dÁ„ �ZeH�dÂgdMdvd§��dÃ�dÄ„ ƒ�Z�dÅ�dÆ„ �Z�dÇ�dÈ„ �Zej[ \�dÉdïdMg¡ej[ \�dÊdïdMg¡�dË�dÌ„ ƒƒ�Z�dÍ�dÎ„ �Z�dÏ�dÐ„ �Z�dÑ�dÒ„ �Z�dÓ�dÔ„ �Z�dÕ�dÖ„ �ZeH�d×gdvdMd–��dØ�dÙ„ ƒ�ZeH�dÚgdvdw��dÛ�dÜ„ ƒ�Z�dÝ�dÞ„ �Z�dß�dà„ �Z�dá�dâ„ �Z�dã�dä„ �Z�då�dæ„ �Z�dç�dè„ �Z �dé�dê„ �Z!�dë�dì„ �Z"�dí�dî„ �Z#�dï�dð„ �Z$�dñ�dò„ �Z%eIdgd��dó�dô„ ƒ�Z&�dõ�dö„ �Z'�d÷�dø„ �Z(�dù�dú„ �Z)�dû�dü„ �Z*�dý�dþ„ �Z+�dÿ�d „ �Z,�d�d„ �Z-�d�d„ �Z.�d�d„ �Z/�d�d„ �Z0�d	�d
„ �Z1�d�d„ �Z2�d�d„ �Z3�d�d„ �Z4�d�d„ �Z5�d�d„ �Z6ej[ \�dd:¡ej[ \�d�d¡�d�d„ ƒƒ�Z7eIdgd��d�d„ ƒ�Z8eje fdQ¡�d�d„ ƒ�Z9�d�d„ �Z:�d �d!„ �Z;ej[ \�d"�d#�d$„ e&�j<D ƒ�d�dI�dg ¡eje fdQ¡�d%�d&„ ƒƒ�Z=�d'�d(„ �Z>�d)�d*„ �Z?eIdÜgd��d+�d,„ ƒ�Z@eIdgd��d-�d.„ ƒ�ZA�d/�d0„ �ZBej[ \�d1�d2�d3�d4g¡�d5�d6„ ƒ�ZC�d7�d8„ �ZD�d9�d:„ �ZE�d;�d<„ �ZF�d=�d>„ �ZG�d?�d@„ �ZH�dA�dB„ �ZI�dC�dD„ �ZJ�dE�dF„ �ZK�dG�dH„ �ZL�dI�dJ„ �ZM�dK�dL„ �ZN�dM�dN„ �ZO�dO�dP„ �ZP�dQ�dR„ �ZQeje fdQ¡�dS�dT„ ƒ�ZR�dU�dV„ �ZS�dW�dX„ �ZTej[ \�dY�dZ¡ej[ \�dd�d[�eÅd´ƒig¡�d\�d]„ ƒƒ�ZU�d^�d_„ �ZV�d`�da„ �ZW�db�dc„ �ZX�dd�de„ �ZY�df�dg„ �ZZ�dh�di„ �Z[dS (k  é    )Ú
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                 C   s   |   ¡ }| d¡ d S ©NF)ÚsubplotsÚset_visible©Úfig_testÚfig_refÚax© r    úY/var/www/html/bwave/python/venv/lib/python3.8/site-packages/matplotlib/tests/test_axes.pyÚtest_invisible_axes0   s    r"   c                  C   sD   t  ¡ \} }| d¡ | d¡ | ¡ dks0t‚| ¡ dks@t‚d S )Nzx labelzy label)Úpltr   Ú
set_xlabelÚ
set_ylabelZ
get_xlabelÚAssertionErrorZ
get_ylabel©Úfigr   r    r    r!   Útest_get_labels6   s
    

r)   c                  C   sH   t  ¡ \} }| d¡ | d¡ | d¡ | d¡ t|ƒdksDt‚d S )NÚlabelÚtitleÚxÚyzO<AxesSubplot: label='label', title={'center': 'title'}, xlabel='x', ylabel='y'>)r#   r   Ú	set_labelÚ	set_titler$   r%   Úreprr&   r'   r    r    r!   Ú	test_repr>   s    



ÿr1   c                 C   sÎ   |   ¡ }|jddgddgddgdd�}| ¡  |jddd� |jdd	d� |  |¡}|jd
dd� |  ¡ }|jddgddgddgdd�}| ¡  |jddd	d� |jddd	d� | |¡}|jd
dd	d� d S )Né   é   Úscatter©Úcr*   úY LabelÚtop©ÚlocúX LabelÚrightúZ Label©r-   Úha©r,   r?   ©r   r4   Úlegendr%   r$   Úcolorbarr.   ©r   r   r   ÚscÚcbarr    r    r!   Útest_label_loc_verticalI   s    

rG   c                 C   sÖ   |   ¡ }|jddgddgddgdd�}| ¡  |jddd� |jdd	d� | j|d
d�}|jdd	d� |  ¡ }|jddgddgddgdd�}| ¡  |jddd	d� |jddd	d� |j|d
d�}|jddd	d� d S )Nr2   r3   r4   r5   r7   Úbottomr9   r;   ÚleftÚ
horizontal©Úorientationr=   r   r>   r@   rA   rD   r    r    r!   Útest_label_loc_horizontal\   s    rM   c              	   C   sæ   t  dddœ¡�` |  ¡ }|jddgddgddgdd�}| ¡  | d¡ | d	¡ | j|d
d�}| d¡ W 5 Q R X | ¡ }|jddgddgddgdd�}| ¡  |jdddd� |jd	ddd� |j|d
d�}|jdddd� d S )Nr<   r8   )zxaxis.labellocationzyaxis.labellocationr2   r3   r4   r5   r7   r;   rJ   rK   r=   r>   r@   )	Ú
matplotlibr
   r   r4   rB   r%   r$   rC   r.   rD   r    r    r!   Útest_label_loc_rco   s"    ÿ


rO   c                  C   s  t  ¡ \} }|jddd� |jddd� |j ¡  ¡ dks>t‚|jddd� |j ¡  ¡ dksbt‚|jddd� |j ¡  ¡ dks†t‚|jddd� |jddd� |j ¡  ¡ dks¸t‚|jddd� |j ¡  ¡ dksÜt‚|jddd� |j ¡  ¡ dk�st‚d S )Nz
Test labelrI   r9   Úcenterr<   r8   rH   )	r#   r   r$   ÚxaxisÚ	get_labelÚget_horizontalalignmentr&   r%   Úyaxisr'   r    r    r!   Útest_label_shift„   s    rU   c           	      C   s´   t j d¡ d}t j dd|¡ ¡ }|d }|  ¡ }|j||d� | ¡ }t j||dd�t  ||¡ }t  	| |d ¡}||d | || … }| 
|dg|¡ |jdddd� d S )	Né!N,é   r   r2   )ÚmaxlagsÚfull)Úmode)r-   ÚxminÚxmax)ÚnpÚrandomÚseedÚnormalZcumsumr   ZacorrZ	correlateÚdotÚarangeÚvlinesÚaxhline)	r   r   ZNxr,   rX   Úax_testÚax_refZnorm_auto_corrZlagsr    r    r!   Ú
test_acorrš   s    rg   c                 C   s   t j d¡ t  d¡}d|d d…< t j |¡ | d¡}|  d¡}|d  |¡ |d j|dd	d
� | d¡}|d j|ddd� |d j	 
¡  |d jt  |¡d d d… džddiŽ |d jd|d  ¡ |d  ¡ d d d… d� |D ]}|j	 d¡ qêd S )NrV   i   r   rW   )é    rh   r3   r2   Ú.Úlower)ÚmarkerÚoriginZgray_rÚnearest)ÚcmapÚinterpolationéÿÿÿÿÚ
markersizeé
   )ÚaspectÚxlimÚylimÚboth)ri   )r]   r^   r_   ÚonesÚshuffleÚreshaper   ÚspyÚimshowrQ   Útick_topÚplotZnonzeroÚsetÚget_xlimÚget_ylimÚset_ticks_position)r   r   ÚaÚaxs_testÚaxs_refr   r    r    r!   Útest_spy­   s&    



( 
 ÿr…   c               
   C   sT   t  ¡ \} }ddidddœfD ]0}t t¡� |jt dd¡f|Ž W 5 Q R X qd S )Nro   rm   ÚoÚsolid)rk   Ú	linestyleé   )r#   r   ÚpytestÚraisesÚ	TypeErrorrz   r]   Úeye)r(   r   Zunsupported_kwr    r    r!   Útest_spy_invalid_kwargsÃ   s    ÿrŽ   c                 C   sT   t j d¡ tj dd¡}|  ¡  |¡ | ¡ }| |¡ |j	 
¡  |j	 d¡ d S )NÚmpl20rh   rv   )ÚmplÚstyleÚuser]   r^   ÚrandÚadd_subplotZmatshowr{   rQ   r|   r�   )r   r   r‚   rf   r    r    r!   Útest_matshowË   s    

r•   Zformatter_ticker_001Zformatter_ticker_002Zformatter_ticker_003Zformatter_ticker_004Zformatter_ticker_005c                     sV  dd l m  m‰  ˆ  ¡  dtjd< ‡ fdd„tdƒD ƒ} ‡ fdd„tdƒD ƒ}‡ fdd„tdƒD ƒ}t ¡  	¡ }| 
d	¡ t ¡  	¡ }| 
d	¡ |j| |d
dd� t ¡  	¡ }| 
d	¡ |j| |d
dd� | 
d¡ t ¡  	¡ }|j| |d
dd� |j| |ddd� | 
d¡ t ¡  	¡ }|j| |d
dd� |j| |ddd� | 
d¡ | ¡  d S )Nr   é   zlines.markeredgewidthc                    s   g | ]}|ˆ j  ‘qS r    )Úsec©Ú.0r,   ©Úunitsr    r!   Ú
<listcomp>å   s     z)test_formatter_ticker.<locals>.<listcomp>rr   c                    s   g | ]}d | d ˆ j  ‘qS )ç      ø?ç      à?©Úkm©r™   r-   rš   r    r!   rœ   æ   s     c                    s   g | ]}d | d ˆ j  ‘qS )g      ü?ç      ð?rŸ   r¡   rš   r    r!   rœ   ç   s     zx-label 001Úbluer—   )ÚcolorZxunitszx-label 003ÚgreenÚhourzx-label 004zx-label 005)Úmatplotlib.testing.jpl_unitsÚtestingÚ	jpl_unitsÚregisterrN   ÚrcParamsÚranger#   Úfigurer   r$   r}   Úautoscale_view)ZxdataZydata1Zydata2r   r    rš   r!   Útest_formatter_tickerÖ   s0    






r¯   c                  C   sº   dd„ } t  ¡  ¡ }|jjs t‚|jjs,t‚|jjs8t‚|jjsDt‚|j | ¡ |jjr\t‚|jjsht‚|jjstt‚|jjs€t‚t	 
| ¡}t|j ¡ t	j
ƒs t‚|j ¡ j|jks¶t‚d S )Nc                 S   s   dS )NÚ r    ©r,   Úposr    r    r!   Ú	_formfunc  s    z4test_funcformatter_auto_formatter.<locals>._formfunc)r#   r­   r   rQ   ÚisDefault_majfmtr&   ÚisDefault_minfmtrT   Úset_major_formatterÚmtickerÚFuncFormatterÚ
isinstanceÚget_major_formatterÚfunc)r³   r   Ztarg_funcformatterr    r    r!   Ú!test_funcformatter_auto_formatter  s     

ÿr¼   c                  C   s¶   d} t  ¡  ¡ }|jjst‚|jjs(t‚|jjs4t‚|jjs@t‚|j | ¡ |jjsXt‚|jjsdt‚|jjspt‚|jjr|t‚t	 
| ¡}t|j ¡ t	j
ƒsœt‚|j ¡ j|jks²t‚d S )Nz	{x}_{pos})r#   r­   r   rQ   r´   r&   rµ   rT   Úset_minor_formatterr·   ZStrMethodFormatterr¹   Zget_minor_formatterÚfmt)Zformstrr   Ztarg_strformatterr    r    r!   Ú&test_strmethodformatter_auto_formatter  s     

ÿr¿   Ztwin_axis_locators_formattersc                  C   s  t jddddd�} t  t j|  d ¡}t |¡}t ddd	g¡}t ¡ }| ddd¡}| dd
gddg¡ |j	 
|¡ |j	 |¡ |j	 t d¡¡ |j	 t dddg¡¡ |j 
t ¡ ¡ |j t ddddg¡¡ |j t d¡¡ |j t ddddg¡¡ | ¡  | ¡  d S )Nr   r2   é   T)ÚnumZendpointç       @çš™™™™™¹?çš™™™™™É?ç333333Ó?éd   z%08.2lfZtricksZmindZjedié   é#   é7   éK   z%05.2lfr6   Ú3Úpr†   )r]   ÚlinspaceÚsinÚpir#   ZFixedLocatorr­   r”   r}   rT   Úset_major_locatorZset_minor_locatorr¶   ZFormatStrFormatterr½   ZFixedFormatterrQ   ZLinearLocatorÚtwinyÚtwinx)ÚvalsZlocsZmajlZminlr(   Úax1r    r    r!   Ú"test_twin_axis_locators_formatters6  s&    
ÿrÕ   c                  C   sÒ   t  ¡ \} }| ¡ }| ¡ }t  ¡  |j ¡ r2t‚|j ¡ r@t‚| 	¡  | 	¡  |j ¡ r^t‚|j ¡ rlt‚|j
 ¡ szt‚|j ¡ sˆt‚|j ¡ r–t‚|j
 ¡ r¤t‚|j ¡ s²t‚|j ¡ sÀt‚|j
 ¡ sÎt‚d S ©N)r#   r   rÒ   rÑ   ÚdrawrQ   Úget_visibler&   ÚpatchÚclarT   )r(   r   Úax2Úax3r    r    r!   Útest_twinx_claO  s"    rÝ   Útwin©r,   r-   gR¸…ëQÈ?)r   Útolc                 C   sF  d|› �}d|› d�}t  dd¡}|  ddd¡}t||ƒƒ }t||ƒdƒ | ||¡ |  ddd¡}t||ƒdƒ t||ƒƒ }| ||¡ dD ]¢}| dd|¡}	t|	|ƒdƒ |	 ||¡ tjj}
| tj	j
|
d	d	gd	dgd	dgddgddgdd	gdd	gd	d	gg|
j|
jgd
 ƒ|	jdtjd tjd dd�¡ qŽt| ƒ t|ƒ d S )NrÞ   Úset_Úscaler2   rÆ   r3   Úlog©r2   r3   r   é   Únonezaxes.edgecolorúaxes.linewidthZ
projecting)Ú	transformÚ	facecolorÚ	edgecolorÚ	linewidthZcapstyle)r]   rb   r”   Úgetattrr}   rN   ÚpathÚPathÚ
add_artistÚpatchesÚ	PathPatchÚMOVETOZLINETOÚ	transAxesr�   r«   r   )r   r   rÞ   Z	twin_funcZ	set_scaler,   re   Úax_twinÚirf   rî   r    r    r!   Útest_twin_logscalef  sJ    
   ýüöÿrö   ztwin_autoscale.pngc                  C   s’   t  dddg¡} d|  }t  dddg¡}d| }t ¡ }|jdddd�}|j| |dd	d
� t |¡}|j||ddd� | dd¡ | dd¡ d S )Nr   rž   r2   r3   ©r   r   r2   r2   F)Zautoscalex_onZautoscaley_onr£   rr   ©r¤   Úlwúr--rÀ   ©rù   )r]   Úarrayr#   r­   Úadd_axesr}   rÒ   Úmargins)r,   r-   Úx2Úy2r(   r   rÛ   r    r    r!   Útest_twinx_axis_scales’  s    
r  c                  C   st   t  ¡ \} }| ¡ }| d¡ | ¡ }| ¡ s2t‚| ¡ r>t‚| ¡ }| d¡ | ¡ }| ¡ sdt‚| ¡ rpt‚d S r   )	r#   r   rÒ   Zset_autoscalex_onÚget_autoscalex_onr&   rÑ   Zset_autoscaley_onÚget_autoscaley_on)r(   r   Zax_x_onZax_x_offZax_y_onZax_y_offr    r    r!   Ú#test_twin_inherit_autoscale_setting¤  s    

r  c                  C   s†  t  d¡} |  ¡ }| ¡ rt‚| ¡ r*t‚tj d¡}| |¡ | ¡ rLt‚| ¡ sXt‚| 	¡  t 
ddtj d¡}| |t |¡¡ | ¡ r’t‚| ¡ ržt‚| 	¡  | |¡ t  ¡  | ¡ rÄt‚| ¡ sÐt‚| jD ]}| ¡  qÖt  d¡}t jd|d�}|j d¡ | ¡ �st‚| |t |¡¡ | 	¡  | ¡ �r>t‚| 	¡  | |¡ | |t |¡¡ | 	¡  | ¡ �sxt‚t  | ¡ d S )	Nr   )rÆ   rÆ   r3   rÆ   éÓ   éÔ   ©ÚshareyT)r#   r­   ÚgcaZxaxis_invertedr&   Úyaxis_invertedr]   r^   r{   rÚ   rÍ   rÏ   r}   ÚcosÚ	autoscaleÚaxesÚremoveÚsubplotrT   Zset_invertedÚclose)r(   r   Zimgr,   Úax0rÔ   r    r    r!   Útest_inverted_claµ  sB    






r  c            	   	      sò   t jdd�� G ‡ fdd„dtƒ} W 5 Q R X t jdd�� G ‡ fdd„dtƒ}W 5 Q R X G dd„ d| ƒ}G ‡ fd	d
„d
tƒ}G ‡ fdd„dtƒ}G dd„ d|ƒ}tƒ }| |||||fD ]6}d‰ ||ddddgƒ}ˆ sØt‚d‰ | ¡  ˆ s¶t‚q¶d S )NzOverriding `Axes.cla`©Úmatchc                       s   e Zd Z‡ fdd„ZdS )z(test_subclass_clear_cla.<locals>.ClaAxesc                    s   d‰ d S ©NTr    ©Úself©Úcalledr    r!   rÚ   ð  s    z,test_subclass_clear_cla.<locals>.ClaAxes.claN)Ú__name__Ú
__module__Ú__qualname__rÚ   r    r  r    r!   ÚClaAxesï  s   r  c                       s   e Zd Z‡ ‡fdd„Z‡  ZS )z-test_subclass_clear_cla.<locals>.ClaSuperAxesc                    s   d‰t ƒ  ¡  d S r  )ÚsuperrÚ   r  ©Ú	__class__r  r    r!   rÚ   ö  s    z1test_subclass_clear_cla.<locals>.ClaSuperAxes.cla)r  r  r  rÚ   Ú__classcell__r    r  ©r   r!   ÚClaSuperAxesõ  s   r#  c                   @   s   e Zd ZdS )z+test_subclass_clear_cla.<locals>.SubClaAxesN©r  r  r  r    r    r    r!   Ú
SubClaAxesû  s   r%  c                       s   e Zd Z‡ fdd„ZdS )z*test_subclass_clear_cla.<locals>.ClearAxesc                    s   d‰ d S r  r    r  r  r    r!   Úclearÿ  s    z0test_subclass_clear_cla.<locals>.ClearAxes.clearN)r  r  r  r&  r    r  r    r!   Ú	ClearAxesþ  s   r'  c                       s   e Zd Z‡ ‡fdd„Z‡  ZS )z/test_subclass_clear_cla.<locals>.ClearSuperAxesc                    s   d‰t ƒ  ¡  d S r  )r  r&  r  r  r    r!   r&    s    z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear)r  r  r  r&  r!  r    r  r"  r!   ÚClearSuperAxes  s   r(  c                   @   s   e Zd ZdS )z-test_subclass_clear_cla.<locals>.SubClearAxesNr$  r    r    r    r!   ÚSubClearAxes	  s   r)  Fr   r2   )rŠ   Úwarnsr   r   r&   rÚ   )	r  r#  r%  r'  r(  r)  r(   Ú
axes_classr   r    r  r!   Útest_subclass_clear_claé  s(      ÿr,  c                  C   s*   t  ¡ D ]} d| jkrd| jkst‚qd S )Nr,  rÚ   )r   Ú__subclasses__r  Ú__dict__r&   )Úklassr    r    r!   Ú!test_cla_not_redefined_internally  s    
r0  c              	   C   s`   t  dddœ¡�" |  ¡ }| ddgddg¡ W 5 Q R X | ¡ }| ddgddg¡ | ¡  d S )NT)zxtick.minor.visiblezytick.minor.visibler   r2   )rN   r
   r   r}   Úminorticks_on)r   r   re   rf   r    r    r!   Ú test_minorticks_on_rcParams_both"  s    ÿ
r2  Zautoscale_tiny_rangeT©Úremove_textc                  C   sL   t  dd¡\} }t|jƒD ],\}}dd|  }| ddgdd| g¡ qd S )Nr3   rr   iõÿÿÿr   r2   )r#   r   Ú	enumerateÚflatr}   )r(   Úaxsrõ   r   Úy1r    r    r!   Útest_autoscale_tiny_range-  s    r9  Údefaultc                  C   sÒ   t  dd¡\} }| ddddg¡ |jdddd� |jdd	dd� t| ¡ d
ƒ t| ¡ dƒ | ¡ sjt‚| 	¡ svt‚| 
¡ s‚t‚|jd d� t| ¡ d
ƒ t| ¡ dƒ | ¡ s¶t‚| 	¡ sÂt‚| 
¡ sÎt‚d S )Nr2   r3   r‰   rå   Tr,   F)ÚenableÚaxisÚtightr-   )g333333Ã¿g333333	@)r¢   ç      @)r;  )r#   r   r}   r  r   r   r€   r  r&   r  Úget_autoscale_onr'   r    r    r!   Útest_autoscale_tight6  s    r@  c                  C   s¶   t jdtd�} tjdddd�\}\}}| | | ¡ | | | ¡ |jdd� |jdd� t ¡  | d | d f}t	| 
¡ |ƒ t	| ¡ |ƒ t	| 
¡ |ƒ t	| ¡ | d	 | d fƒ d S )
NrÆ   ©Zdtyper3   r2   T©Úsharex)r=  rp   r   )r]   rb   Úfloatr#   r   ÚloglogÚsemilogxr  r×   r   r   r€   )r,   r(   rÔ   rÛ   Zlimsr    r    r!   Útest_autoscale_log_sharedN  s    rG  c                  C   sÒ   t  ¡ \} }|jddgddggdd� t| ¡ dƒ t| ¡ dƒ d|_| ¡  d	d|j  d
d|j  f}d	d|j	  d
d|j	  f}t| ¡ |ƒ t| ¡ |ƒ d|_| ¡  t| ¡ dƒ t| ¡ dƒ d S )Nr   r2   r3   r‰   rj   ©rl   )ç      à¿r�   FrI  r�   T)
r#   r   r{   r   r   r€   Zuse_sticky_edgesr  Z_xmarginZ_ymargin)r(   r   rt   ru   r    r    r!   Útest_use_sticky_edges`  s    rJ  c                 C   sZ   t  d¡ dd¡}|  d¡}| jd|d�}| |¡ | d¡}|jd|d�}| |¡ d S )NrÇ   r‰   rÀ   r  r  rB  )r]   rb   ry   r”   Ú
pcolormesh)r   r   ÚZr  rÔ   r    r    r!   Útest_sticky_shared_axess  s    


rM  Zoffset_pointsc                  C   sf   t  ddd¡} t  dt j |  ¡}t ¡ }|jdddd�}|j| |d	d
d�\}|jdddddd� d S )Nç        ç      @ç{®Gáz„?rÂ   F)rp   rÀ   ©éýÿÿÿrÀ   )Zautoscale_onrt   ru   r‰   Úpurple©rù   r¤   z	local max©r‰   r2   Údata©r‰   r‰   zoffset points)ÚxyÚxycoordsÚxytextÚ
textcoords)	r]   rb   r  rÏ   r#   r­   r”   r}   Úannotate)ÚtÚsr(   r   Úliner    r    r!   Útest_basic_annotate‚  s    
 ÿr`  zarrow_simple.pngc            
      C   s´   d} d}d}t | ||ƒ}t dd¡\}}tt|j|ƒƒD ]v\}\}}| dd¡ | dd¡ |\} }}dtj	 | d }	|j
ddt |	¡t |	¡|	d	 | |||	d
 |	d
 d�
 q8d S )N)TF)rY   rI   r<   r‰   rå   éþÿÿÿr3   é   r   rÆ   rr   )ÚwidthÚlength_includes_headÚshapeÚhead_starts_at_zeroZ
head_widthÚhead_length)r   r#   r   r5  Úzipr6  Úset_xlimÚset_ylimr]   rÏ   ÚarrowrÎ   r  )
rd  re  rf  Úkwargsr(   r7  rõ   r   ÚkwargÚthetar    r    r!   Útest_arrow_simple’  s$    
úro  c                  C   s$   t  ¡ \} }|jdddddd� d S )Nr   )rg  )r#   r   rk  ©Ú_r   r    r    r!   Útest_arrow_empty­  s    rr  c                  C   s@   t  ¡ \} }| dddd¡ | ¡ dks,t‚| ¡ dks<t‚d S )Nr2   )çš™™™™™é?çš™™™™™@)r#   r   rk  r   r&   r€   rp  r    r    r!   Útest_arrow_in_view³  s    ru  c                  C   sN   t  ¡ \} }|jdddd�}|jd ks*t‚|jdddi d�}|jd k	sJt‚d S )NÚfoo©r   r2   ©r3   r‰   )rZ  )rZ  Ú
arrowprops)r#   r   r\  Zarrow_patchr&   )r(   r   Úannr    r    r!   Útest_annotate_default_arrowº  s
    r{  c                  C   sp   t  ¡ \} }t |j¡j}t tj¡j}t| 	¡ ƒt| 	¡ ƒksDt
‚t| ¡ | ¡ ƒD ]\}}||ksVt
‚qVdS )z?Check that the signature of Axes.annotate() matches Annotation.N)r#   r   ÚinspectÚ	signaturer\  Ú
parametersÚmtextZ
AnnotationÚlistÚkeysr&   rh  Úvalues)r(   r   Zannotate_paramsZannotation_paramsÚp1Úp2r    r    r!   Útest_annotate_signatureÃ  s    r…  zfill_units.pngÚdpié<   )Úsavefig_kwargc                  C   s   dd l m  m}  |  ¡  | jdt ddd¡d�}d| j }|  dd¡}tj	d	d
dd�}t
 |¡}t dd¡\}\\}}\}	}
|j|g|gddd� ddddg}| || ddddgd¡ |j|g|gddd� | |||| || gddddgd¡ |	j|g|gddd� |	 || d| j d| j d| j d| j gd¡ |
j|g|gddd� |
j|||| || gd| j d| j d| j d| j gdd� | ¡  d S )Nr   ÚETéÙ  rå   é   ©Údtç      $@g     õ@z
2009-04-27z
2009-04-29údatetime64[D]rA  r3   ÚdegÚred)Zyunitsr¤   r2   rN  g     €V@ÚbéZ   r£   )ré   )r§   r¨   r©   rª   ÚEpochÚdatetimer�  ÚDurationr]   rb   ÚmdatesÚdate2numr#   r   r}   ÚfillZautofmt_xdate)r›   r]  ÚvalueÚdayr�  Zdtnr(   rÔ   rÛ   rÜ   Úax4Úindr    r    r!   Útest_fill_unitsÍ  s6    


 ÿ
"þ"þrž  c                	   C   sª   t jtdd�� tjdgdgddd� W 5 Q R X t jtdd�� tjdgdgdd	d
� W 5 Q R X t jtdd�� tjdgdgddd� W 5 Q R X tjdgdgddd� d S )Nzmarker .* redundantly definedr  r   r†   r,   ©rk   z linestyle .* redundantly definedú-ú--©rˆ   zcolor .* redundantly definedÚrr£   ©r¤   ræ   )r¾   r¤   )rŠ   r*  ÚUserWarningr#   r}   Úerrorbarr    r    r    r!   Ú test_plot_format_kwarg_redundantï  s       r§  c                 C   s~   ddddg}t  |¡}| ¡ }|  ¡ }|j||t  |¡t  |¡d�^}}| ddg¡ |j||t  |¡t  |¡ddgd� d S )Nr2   r3   r‰   rå   ©ÚxerrÚyerr)r©  rª  Údashes)r]   rÎ   r	  r¦  ÚabsZ
set_dashes)r   r   r,   r-   rf   re   r_  rq  r    r    r!   Útest_errorbar_dashesú  s    
"r­  Zsingle_pointc                  C   s’   dt jd< dt jd< t d¡\} \}}| dgdgd¡ | dgdgd¡ dgdgdœ}t d¡\} \}}|jd	d	d|d
� |jddd|d
� d S )Nr†   úlines.markerTú	axes.gridr3   r   r2   ©r‚   r’  r‚   ©rV  r’  )rN   r«   r#   r   r}   )r(   rÔ   rÛ   rV  r    r    r!   Útest_single_point  s    

r²  zsingle_date.pngr�   )r‘   c                  C   sj   dt jd< t t d¡¡} dg}dg}t  dd¡\}}|d j||  |d	d
d� |d j||d	d
d� d S )N)éùÿÿÿé   zaxes.formatter.limitsz
0000-12-31g    X&AgÃõ(\�bPÀr3   r2   r   r†   r£  r¤  )	r#   r«   r—  r˜  r]   Ú
datetime64r   Ú	plot_dater}   )r�  Ztime1Údata1r(   r   r    r    r!   Útest_single_date  s    
r¸  c                 C   s|   t  d¡ d¡}t  ddd¡ d¡}|  d¡}|d  |¡ |d  |¡ | d¡}|d jdd	d
� |d  | ¡ ¡ d S )Nrr   ©r2   rp   r   rÆ   ©rp   r2   r3   r2   ©g¸…ëQ¸®¿ç¸…ëQ¸®?)r   é	   ©rt   ru   )r]   rb   ry   r   r}   r~   Zravel)r   r   ÚrowÚcolr7  r    r    r!   Útest_shaped_data)  s    

rÁ  c                  C   sZ   t jddgdtfdtfgd�} t ¡  d¡}|d jdd| d� |d	 jddd
| d� d S )N©r2   r2   ©r3   r3   rw   ZtwosrA  r3   r   r±  r2   r£  )r]   rü   rD  r#   r­   r   r}   )Zptsr7  r    r    r!   Útest_structured_data8  s    rÄ  Zaitoff_proj)r   r4  r‘   c                  C   sz   t  t j t jd¡} t  t j d t jd d¡}t  | |¡\}}tjdtdd�d�\}}| ¡  |j|j	|j	ddd	� d
S )z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
    é   r3   )é   çÍÌÌÌÌÌ@Zaitoff©Z
projection)ÚfigsizeÚ
subplot_kwr†   rå   )rq   N)
r]   rÍ   rÏ   Úmeshgridr#   r   ÚdictÚgridr}   r6  )r,   r-   ÚXÚYr(   r   r    r    r!   Útest_aitoff_projB  s    ÿ
rÐ  Zaxvspan_epochc                  C   s˜   dd l m  m}  |  ¡  | jdt ddd¡d�}| jdt ddd¡d�}|  d| j d¡¡}t	 
¡ }|j||d	d
d� | |d|  |d|  ¡ d S ©Nr   r‰  rŠ  r2   rÅ  rŒ  é   r—   r£   ç      Ð?)ré   ÚalpharO  )r§   r¨   r©   rª   r”  r•  r–  r›  Úconvertr#   r	  Úaxvspanri  ©r›   Út0Útfr�  r   r    r    r!   Útest_axvspan_epochS  s    rÚ  Zaxhspan_epochç{®Gáz”?)rà   c                  C   s˜   dd l m  m}  |  ¡  | jdt ddd¡d�}| jdt ddd¡d�}|  d| j d¡¡}t	 
¡ }|j||d	d
d� | |d|  |d|  ¡ d S rÑ  )r§   r¨   r©   rª   r”  r•  r–  r›  rÕ  r#   r	  Úaxhspanrj  r×  r    r    r!   Útest_axhspan_epochb  s    rÝ  zhexbin_extent.pngc                  C   st   t  ¡ \} }t d¡d  d¡}|\}}|j||ddddgd� ||dœ}t  ¡ \} }|jd	d
ddddg|d� d S )NéÐ  )r3   éè  rÃ   rÅ   ç333333ã?çffffffæ?)Úextentrß   r,   r-   )râ  rV  )r#   r   r]   rb   ry   Úhexbin)r(   r   rV  r,   r-   r    r    r!   Útest_hexbin_extentq  s    
rä  zhexbin_empty.pngc                  C   s   t  ¡ } |  g g ¡ d S rÖ   )r#   r	  rã  ©r   r    r    r!   Útest_hexbin_empty�  s    ræ  c                  C   sd   t  ¡ \} }t d¡d  d¡}|\}}|j||ddddgdd�}td	d
d�}| |¡d s`t‚d S )NéÈ   ©r3   rÆ   rÃ   rÅ   rà  rá  rp   )râ  Zpickeré�  é,  rß   r   )	r#   r   r]   rb   ry   rã  r   Úcontainsr&   )r(   r   rV  r,   r-   ZhbZmouse_eventr    r    r!   Útest_hexbin_pickableˆ  s    rì  zhexbin_log.pngc                  C   s„   dt jd< tj d¡ d} tj | ¡}dd|  dtj | ¡  }t d|d	 ¡}t  ¡ \}}|j||d
d
dtj	d�}t  
|¡ d S )NFúpcolormesh.snaprV   é † rÂ   ç      @r>  r3   rž   rã   T)ÚyscaleÚbinsÚ	marginalsÚreduce_C_function)r#   r«   r]   r^   r_   Ústandard_normalÚpowerr   rã  ÚsumrC   )Únr,   r-   r(   r   Úhr    r    r!   Útest_hexbin_log’  s    
 ÿrù  zhexbin_linear.png©r‘   r4  c                  C   s^   t j d¡ d} t j | ¡}dd|  dt j | ¡  }t ¡ \}}|j||ddt jd� d S )	NrV   rî  rÂ   rï  r>  ©rr   rÀ   T)Zgridsizerò  ró  )r]   r^   r_   rô  r#   r   rã  rö  )r÷  r,   r-   r(   r   r    r    r!   Útest_hexbin_linear¥  s    ÿrü  c                  C   sH   t  d¡ d¡\} }t ¡ \}}|j| |dddd�}| ¡ dksDt‚d S )Nrç  rè  rã   r3   rÆ   )rñ  ÚvminÚvmax)r]   rb   ry   r#   r   rã  Zget_climr&   )r,   r-   r(   r   rø  r    r    r!   Útest_hexbin_log_clim²  s    rÿ  c                  C   sÞ   t  ¡ \} }| ¡  | ddddgddddg¡ | ¡ dks@t‚| ¡ dksPt‚t  ¡  t  ¡ \} }| ¡  | ddddgddddg¡ | ¡ d	ks˜t‚| ¡ d
ks¨t‚t  ¡ \} }| 	d¡ | 
dd¡ | ¡ dksÚt‚d S )NéûÿÿÿrR  r3   rå   r2   rÀ   )rå   r   rQ  )r   rå   )rÀ   rR  rã   rr   )rr   r2   )r#   r   Úinvert_xaxisr}   r   r&   r€   r  Úinvert_yaxisÚ
set_yscalerj  r'   r    r    r!   Útest_inverted_limits¹  s    
r  Znonfinite_limitsc               	   C   s`   t  dt jd¡} t jdd�� t  | ¡}W 5 Q R X t j| t| ƒd < t ¡ \}}| 	| |¡ d S )NrN  rP  Úignore©Údivider3   )
r]   rb   ÚeÚerrstaterã   ÚnanÚlenr#   r   r}   ©r,   r-   r(   r   r    r    r!   Útest_nonfinite_limitsÓ  s    r  Úplot_funr4   r}   Úfill_betweenc                 C   s^   t jdddd�}| ¡ }| ¡ }t|| ƒg g ƒ ||fD ] }t|| ƒ|tt|ƒƒdd� q8d S )Nz
2010-01-01z
2011-01-01r�  rA  ÚC0r¤  )r]   rb   r   rì   r¬   r  )r  r   r   r,   re   rf   r   r    r    r!   Útest_limits_empty_dataÞ  s    r  r{   )r4  r‘   c                  C   s’   dt jd< d} t | | f¡\}}|| d 8 }|| d 8 }t |d |d  ||  ¡}t ¡ \}}| |¡ d|i}t ¡ \}}|jd|d� d S )Nrm   úimage.interpolationrÆ   r3   r£  r±  )rN   r«   r]   ÚindicesÚsqrtr#   r   r{   )ÚNr,   r-   r£  r(   r   rV  r    r    r!   Útest_imshowï  s    

r  Zimshow_clipc            	      C   s°   dt jd< d} t | | f¡\}}|| d 8 }|| d 8 }t |d |d  ||  ¡}t ¡ \}}| || d g¡}|jd }| 	¡ d }| 
¡ }t ||¡}|j||d� d S )Nrm   r  rÆ   r3   rå   r   )Ú	clip_path)rN   r«   r]   r  r  r#   r   ÚcontourÚcollectionsÚ	get_pathsÚget_transformÚmtransformsZTransformedPathr{   )	r  r,   r-   r£  r(   r   r6   r  Zclip_transformr    r    r!   Útest_imshow_clip  s    

r  c               	   C   sP   ddgddgg} t  ¡ }tjtdd��  |j| t dd¡d	d
d� W 5 Q R X dS )ú4Parameters vmin, vmax should error if norm is given.r2   r3   r‰   rå   úLPassing a Normalize instance simultaneously with vmin/vmax is not supported.r  éöÿÿÿrr   r   rÀ   )Únormrý  rþ  N)r#   r  rŠ   r‹   Ú
ValueErrorr{   ÚmcolorsÚ	Normalize)r‚   r   r    r    r!   Útest_imshow_norm_vminvmax  s    ÿr%  Zpolycollection_joinstylec                  C   sf   t  ¡ \} }t ddgddgddgddgg¡}tjj|gdd�}| |¡ | dd¡ | 	dd¡ d S )Nr2   r3   é(   )Ú
linewidthsr   r‰   )
r#   r   r]   rü   r�   r  ZPolyCollectionÚadd_collectionÚ
set_xboundÚ
set_ybound)r(   r   Úvertsr6   r    r    r!   Útest_polycollection_joinstyle)  s    "
r,  z	x, y1, y2rÃ  r‰   rN  r3   Z
2d_x_inputZ2d_y1_inputZ2d_y2_input)Úidsc              	   C   s4   t  ¡ \}}t t¡� | | ||¡ W 5 Q R X d S rÖ   )r#   r   rŠ   r‹   r"  r  ©r,   r8  r   r(   r   r    r    r!   Útest_fill_between_input4  s    r/  z	y, x1, x2Z
2d_y_inputZ2d_x1_inputZ2d_x2_inputc              	   C   s4   t  ¡ \}}t t¡� | | ||¡ W 5 Q R X d S rÖ   )r#   r   rŠ   r‹   r"  Úfill_betweenx)r-   Úx1rÿ   r(   r   r    r    r!   Útest_fill_betweenx_inputE  s    r2  Zfill_between_interpolatec               	   C   s  t  ddd¡} t  dt j |  ¡}dt  dt j |  ¡ }tjdddd�\}\}}|j| || |d	d
� |j| ||||kdddd� |j| ||||kddd� t j 	|d¡}t jj
|d< |j| || |d	d
� |j| ||||kddd� |j| ||||kddd� d S )NrN  r3   rÛ  ç333333ó?rå   r2   TrB  Úblackr¤  Úwhiteú/)Úwhereré   ÚhatchÚinterpolater‘  )r7  ré   r9  r¢   r   r¥   )r]   rb   rÎ   rÏ   r#   r   r}   r  r   Zmasked_greaterZmasked)r,   r8  r   r(   rÔ   rÛ   r    r    r!   Útest_fill_between_interpolateV  s(    ÿÿÿÿr:  Z#fill_between_interpolate_decreasingc               	   C   s°   t  dddg¡} t  dddg¡}t  ddd	g¡}tjd
d�\}}| || d¡ | || d¡ |j| ||||k dddd� |j| ||||kdddd� | dd¡ | dd¡ d S )Ngfffff¢†@i¼  i�  gÍÌÌÌÌÌ"@r´  rt  gš™™™™™@gffffff@gffffff@)r½  r½  ©rÉ  ztab:redÚkr£   Tçš™™™™™Ù?©r7  ré   r9  rÔ  r‘  r   r–   é   éX  )r]   rü   r#   r   r}   r0  ri  rj  )rÌ   r]  Zprofr(   r   r    r    r!   Ú(test_fill_between_interpolate_decreasingn  s$      ÿ  ÿrA  Zfill_between_interpolate_nanc                  C   s´   t  d¡} t  ddt jdddddddg
¡}t  ddddddddt jt jg
¡}t ¡ \}}|j| |d	d
� |j| |dd
� |j| ||||kdddd� |j| ||||kdddd� d S )Nrr   rÆ  é   é   é   é   rh   r–   r<  ©r6   r’  r¥   Trž   r>  r‘  )r]   rb   Úasarrayr
  r#   r   r}   r  r.  r    r    r!   Ú!test_fill_between_interpolate_nanƒ  s    
 " ÿ ÿrH  z
symlog.pdfc               
   C   sp   t  ddddddddg¡} t  d	d
ddddddg¡}t ¡ \}}| | |¡ | d¡ | d¡ | dd¡ d S )Nr   r2   r3   rå   é   r½  rb  rC  i@B i ¡ rî  rÆ   rÀ   ÚsymlogÚlinearrp   i€–˜ )r]   rü   r#   r   r}   r  Ú
set_xscalerj  r  r    r    r!   Útest_symlog—  s    

rM  zsymlog2.pdfc                  C   st   t  ddd¡} t dd¡\}}t|dddd	d
gƒD ],\}}| | | ¡ |jd|d� | d¡ q2|d  dd	¡ d S )NéÎÿÿÿé2   çü©ñÒMbP?rÀ   r2   ç      4@rÂ   r¢   rÃ   rP  rJ  )Ú	linthreshTrp   çš™™™™™¹¿)	r]   rb   r#   r   rh  r}   rL  rÍ  rj  )r,   r(   r7  r   rR  r    r    r!   Útest_symlog2£  s    rT  c                  C   s¨   dddddddg} dddd	dd
dddddddg}t  | |¡\}}t  ||¡}t |¡ t t|ƒ¡ t | ||d d…d d…f ¡ t ||t|d d…d d…f ƒ¡ d S )Nç      ø¿ç      ð¿rI  rN  rž   r¢   r�   g      ô¿g      è¿g      Ð¿r   rÓ  ç      è?ç      ô?rp   )r]   rË  Úhypotr#   Úpcolorr€  )r,   r-   rÎ  rÏ  rL  r    r    r!   Útest_pcolorargs_5205°  s         ÿ
r[  rK  c                  C   s*  dt jd< d} t dd| ¡}t dd| d ¡}t ||¡\}}t |¡t |¡ }t |¡t |¡ }|d }t ||¡d }|| ¡  | 	¡  }t
 t |¡d	t |¡ k |¡}t  d
d¡\}	\}
}}|
j|||d d…d d…f d	dd� |j|||d d…d d…f dddgd� |j|||dd� d S )NFrí  rb  rU  r�   r3   çš™™™™™ñ?rÀ   rž   r2   r‰   rp   r<  ©rù   Ú
edgecolorsr’  ÚwÚgouraud©Úshading)r#   r«   r]   rÍ   rË  r  rÎ   rY  ÚminÚptpr   Úmasked_wherer¬  Úmaxr   rK  )r÷  r,   r-   rÎ  rÏ  ÚQxÚQzrL  ÚZmr(   rÔ   rÛ   rÜ   r    r    r!   Útest_pcolormesh¾  s    
 $(rj  Zpcolormesh_smallÚepsc                  C   s6  d} t  dd| ¡}t  dd| d ¡}t  ||¡\}}t  |¡t  |¡ }t  |¡t  |¡ }|d }t  ||¡d }|| ¡  | ¡  }t 	t  
|¡dt  |¡ k |¡}t dd¡\}	\}
}}|
j|||d d	…d d	…f dd
d� |j|||d d	…d d	…f dddgd� |j|||dd� |	jD ]}| ¡  �q"d S )Nr‰   rU  r�   r3   r\  rÀ   rž   r2   rp   r<  r]  r’  r_  r`  ra  )r]   rÍ   rË  r  rÎ   rY  rc  rd  r   re  r¬  rf  r#   r   rK  r  Zset_axis_off)r÷  r,   r-   rÎ  rÏ  rg  rh  rL  ri  r(   rÔ   rÛ   rÜ   r   r    r    r!   Útest_pcolormesh_smallÖ  s      $(
rl  Zpcolormesh_alphaZpdf)r   r4  c                  C   sˆ  dt jd< d} t t dd| ¡t dd| d ¡¡\}}|}|t |¡ }t ||¡d }|| ¡  | ¡  }t	j
d  d	¡}|t d	¡ƒ}d
d
t t d	¡¡  |d d …df< t |¡}t  dd¡\}	\\}
}\}}|
|||fD ]&}| tjddddddd
gdd�¡ qà|
j|||d d…d d…f |dddd� |j||||dddd� |j|||d d…d d…f |ddd� |j||||ddd� d S )NFrí  rb  rU  r�   r3   rÀ   Úviridisé   rž   r‰   )r   rU  rá  rÃ   r   )ré   Úzorderrp   r=  r6  r2   )rn   rÔ  rb  ro  r`  )rn   rb  ro  )r#   r«   r]   rË  rÍ   rÎ   rY  rc  rd  r�   Ú	colormapsÚ	resampledrb   r#  ZListedColormapr   Ú	add_patchÚmpatchesÚ	RectanglerK  )r÷  rÎ  rÏ  rg  ZQyrL  ZvirÚcolorsrn   r(   rÔ   rÛ   rÜ   rœ  r   r    r    r!   Útest_pcolormesh_alphaë  s<    
þ$
   
 ÿ
 ÿ&rv  zpcolormesh_datetime_axis.pngc                     s–  dt jd< t  ¡ } | jdddd� t ddd¡‰ t ‡ fd	d
„tdƒD ƒ¡}t d¡}t 	t d¡t d¡¡\}}|| }t  
d¡ t  |d d… |d d… |d d…d d…f ¡ t  
d¡ t  |||¡ tj|tj ddd�}tj|d d …tjf ddd�}t  
d¡ t  |d d…d d…f |d d…d d…f |d d…d d…f ¡ t  
d¡ t  |||¡ |  ¡ D ]*}| ¡ D ]}| d¡ | d¡ �qr�qfd S )NFrí  r=  ç\�Âõ(\ï?ç333333Ã?©Zhspacer8   rH   éÝ  r2   c                    s   g | ]}ˆ t j|d � ‘qS ©©Údays©r•  Ú	timedelta©r™   Úd©Úbaser    r!   rœ     s     z1test_pcolormesh_datetime_axis.<locals>.<listcomp>rÒ  rÅ  éÝ   rp   éÞ   r   ©r<  éß   éà   r<   r–   )r#   r«   r­   Úsubplots_adjustr•  r]   rü   r¬   rb   rË  r  rK  ÚrepeatÚnewaxisÚget_axesÚget_xticklabelsÚset_haÚset_rotation©r(   r,   r-   Zz1Zz2Úzr   r*   r    r‚  r!   Útest_pcolormesh_datetime_axis  s,    


.

>

r’  zpcolor_datetime_axis.pngc                     sŒ  t  ¡ } | jdddd� t ddd¡‰ t ‡ fdd„td	ƒD ƒ¡}t d	¡}t t d
¡t d
¡¡\}}|| }t  	d¡ t  
|d d… |d d… |d d…d d…f ¡ t  	d¡ t  
|||¡ tj|tj d	dd�}tj|d d …tjf d	dd�}t  	d¡ t  
|d d…d d…f |d d…d d…f |d d…d d…f ¡ t  	d¡ t  
|||¡ |  ¡ D ]*}| ¡ D ]}| d¡ | d¡ �qh�q\d S )Nr=  rw  rx  ry  rz  r2   c                    s   g | ]}ˆ t j|d � ‘qS r{  r~  r€  r‚  r    r!   rœ   /  s     z-test_pcolor_datetime_axis.<locals>.<listcomp>rÒ  rÅ  r„  rp   r…  r   r†  r‡  rˆ  r<   r–   )r#   r­   r‰  r•  r]   rü   r¬   rb   rË  r  rZ  rŠ  r‹  rŒ  r�  rŽ  r�  r�  r    r‚  r!   Útest_pcolor_datetime_axis*  s*    

.

>

r“  c               	   C   s  d} t  dd| ¡}t  dd| d ¡}t  ||¡\}}t  ||¡d }t ¡ \}}t t¡� | 	|||¡ W 5 Q R X t t¡� | 	|||j
¡ W 5 Q R X t t¡�( |j	|||d d…d d…f dd� W 5 Q R X t t¡�( |j	|||d d…d d…f dd� W 5 Q R X t j|d	< t t¡�$ | 	|||d d…d d…f ¡ W 5 Q R X t jd
d�� t jj||d	k d�}W 5 Q R X t t¡�$ | 	|||d d…d d…f ¡ W 5 Q R X dd	dg}ddg}t  ||¡\}}t  |j¡}tjtdd�� |j	|||dd� W 5 Q R X d S )Nrb  rU  r�   r3   rÀ   rp   r`  ra  r   r  ©Úinvalid)Úmaskig  r2   r   rr   z.are not monotonically increasing or decreasingr  Úauto)r]   rÍ   rË  rY  r#   r   rŠ   r‹   rŒ   rK  ÚTÚNaNr"  r	  r   rü   Úzerosre  r*  r¥  )r÷  r,   r-   rÎ  rÏ  rL  rq  r   r    r    r!   Útest_pcolorargsC  s:    ,,
((
ÿr›  c                 C   sž   |   ¡ }t dd¡}t dd¡}tj d¡ tj dd¡}|j|||dd� |  ¡ }|d d	… t |¡d  }|d d	… t |¡d  }|j|||d
d� d S )Nr   rr   r‰   rV   r3   r½  r6  ra  rp   rm   ©r   r]   rb   r^   r_   ÚrandnrK  Údiff©r   r   r   r,   r-   rL  rÿ   r   r    r    r!   Útest_pcolornearestd  s    r   c                 C   sœ   |   ¡ }dd„ tdƒD ƒ}t dd¡}tj d¡ tj dd¡}|j|||d	d
� |  ¡ }dd„ tdƒD ƒ}|d d… t |¡d  }|j|||dd
� d S )Nc                 S   s   g | ]}t j  |d  ¡‘qS )é  ©r•  Úfromtimestampr˜   r    r    r!   rœ   w  s     z+test_pcolornearestunits.<locals>.<listcomp>rr   r   r‰   rV   r3   r½  r6  ra  c                 S   s    g | ]}t j  |d  d ¡‘qS )rž   r¡  r¢  r˜   r    r    r!   rœ     s     rp   rm   )	r   r¬   r]   rb   r^   r_   r�  rK  rž  rŸ  r    r    r!   Útest_pcolornearestunitst  s    r¤  c               	   C   sn   t  ¡ \} }t dd¡}t dd¡}tj d¡ tj dd¡}tjt	dd�� |j
|||dd� W 5 Q R X d S )	Nr   r½  r‰   rV   zDimensions of Cr  r6  ra  )r#   r   r]   rb   r^   r_   r�  rŠ   r‹   rŒ   rK  )r(   r   r,   r-   rL  r    r    r!   Útest_pcolorflaterror„  s    r¥  ÚsnapFc           	      C   sž   |   ¡ }t dd¡}t dd¡}tj d¡ tj dd¡}|j||||d� |  ¡ }|d d… t |¡d	  }|d d… t |¡d	  }|j||||d� d S )
Nr   rr   rå   rV   r‰   r½  )r¦  rp   r3   rœ  )	r   r   r¦  r   r,   r-   rL  rÿ   r   r    r    r!   Útest_pcolorautoŽ  s    r§  Ú	canonicalc                  C   s    t  ¡ \} }| dddg¡ d S ©Nr2   r3   r‰   ©r#   r   r}   r'   r    r    r!   Útest_canonical¡  s    r«  zarc_angles.pngc            
      C   sL  d} d}d}d}t  dd¡\}}t|jƒD �]\}}|d d }|d }	| tj|| |dd	�¡ | tj|| ||	|d
�¡ | |t	 
t	 |	¡¡ |d  |d |t	 
t	 |¡¡ |d  g|t	 t	 |	¡¡ |d  |d |t	 t	 |¡¡ |d  g¡ | | |¡ | | |¡ | d9 } |d9 }|d d |d d f}|d9 }q*d S )Nr3   r2   )rÄ   rž   r‰   éh  r½  é-   rÅ   )rÔ  )Útheta1Útheta2r   rr   )r#   r   r5  r6  rr  rs  ZEllipseÚArcr}   r]   r  Údeg2radrÎ   ri  rj  )
r_  rø  Zcentrerâ   r(   r7  rõ   r   r¯  r®  r    r    r!   Útest_arc_angles§  s2    þþýr²  Zarc_ellipsec               	   C   sN  d\} }d\}}d}t  t  d¡¡}|d t  |¡ }|d t  |¡ }t  |¡}t  t  |¡t  |¡ gt  |¡t  |¡gg¡}	t  |	t  ||g¡¡\}}|| 7 }||7 }t ¡ }
|
j	ddd�}|j
||d	d
d
ddd� tj| |f|||dddd�}| |¡ |
j	ddd�}|j
||d	dddd� tj| |f|||dddd�}| |¡ d S )N)gR¸…ëQØ?g¤p=
×£à?)rÃ   rÅ   éâÿÿÿr¬  rÂ   r  r—  )rs   rÄ   Úyellowr2   )rÔ  ré   rê   rë   ro  r3   F)Úanglerë   r™  ro  r  Úequalr¥   )rÔ  ré   rê   ro  )r]   r±  rb   r  rÎ   rü   ra   r#   r­   r”   r™  rs  r°  rr  )ZxcenterÚycenterrc  Úheightrµ  rn  r,   r-   ZrthetaÚRr(   r   Úe1Úe2r    r    r!   Útest_arc_ellipseÉ  sH    
þ ÿ   ÿ
   ÿr¼  c                  C   sn   t  ¡ \} }t d¡}|jdddgdddg|d� |jdddgdddg|d� |jdddgdddg|d� d S )Nr†   r2   r3   r‰   rŸ  rå   rÀ   )r#   r   ÚmmarkersÚMarkerStyler}   r4   r¦  )Úfixr   Úmr    r    r!   Útest_marker_as_markerstyleî  s
    
rÁ  Ú	markeveryc                  C   s�   t  ddd¡} t  | ¡t  | d d ¡ }t ¡ \}}|j| |ddd� |j| |dd d	d
� |j| |dddd
� |j| |dddd
� | ¡  d S )Nr   rr   rÆ   rž   r†   r:  ©r*   r�  úmark all©rÂ  r*   r^  úmark every 10ú+©rÀ   rÅ  úmark every 5 starting at 10©r]   rÍ   rÎ   r  r#   r   r}   rB   r  r    r    r!   Útest_markeveryö  s    rË  Zmarkevery_lineg{®Gázt?)r4  rà   c                  C   s�   t  ddd¡} t  | ¡t  | d d ¡ }t ¡ \}}|j| |ddd� |j| |dd d	d
� |j| |dddd
� |j| |dddd
� | ¡  d S )Nr   rr   rÆ   rž   z-or:  rÃ  z-drÄ  rÅ  z-srÆ  z-+rÈ  rÉ  rÊ  r  r    r    r!   Útest_markevery_line  s    rÌ  Zmarkevery_linear_scalesrP  c            
      C   sÚ   d dddddgddgt dd	d
ƒdddddg} d
}tj t| ƒ| d |¡}d}t ddd|  d	¡| }t |¡d | }t| ƒD ]R\}}|| }|| }	t	 
|||	f ¡ t	 dt|ƒ ¡ t	j||ddd|d� q‚d S )NrÆ  ©r–   rÆ  rn  rC  r–   r   rp   rÆ   rç  r‰   rÃ   rÅ   r�   ©rN  rÃ   ©çÍÌÌÌÌÌÜ?rÃ   r2   ç)\�Âõ(¼?rr   r3   r¢   úmarkevery=%sr†   r   rå   ©ÚlsÚmsrÂ  )ÚslicerN   ÚgridspecÚGridSpecr  r]   rÍ   rÎ   r5  r#   r  r+   Ústrr}   ©
ÚcasesÚcolsÚgsÚdeltar,   r-   rõ   Úcaser¿  rÀ  r    r    r!   Útest_markevery_linear_scales  s.     
   úrà  Zmarkevery_linear_scales_zoomedc            
      C   sî   d dddddgddgt dd	d
ƒdddddg} d
}tj t| ƒ| d |¡}d}t ddd|  d	¡| }t |¡d | }t| ƒD ]f\}}|| }|| }	t	 
|||	f ¡ t	 dt|ƒ ¡ t	j||ddd|d� t	 d¡ t	 d¡ q‚d S )NrÆ  rÍ  rn  rC  r–   r   rp   rÆ   rç  r‰   rÃ   rÅ   r�   rÎ  rÏ  r2   rÑ  rr   r3   r¢   rÒ  r†   r   rå   rÓ  )rI  gÍÌÌÌÌÌ@)r\  g333333û?)rÖ  rN   r×  rØ  r  r]   rÍ   rÎ   r5  r#   r  r+   rÙ  r}   rt   ru   rÚ  r    r    r!   Ú#test_markevery_linear_scales_zoomed/  s2     
   ú
rá  Zmarkevery_log_scalesc            
      C   sî   d dddddgddgt dd	d
ƒdddddg} d
}tj t| ƒ| d |¡}d}t ddd|  d	¡| }t |¡d | }t| ƒD ]f\}}|| }|| }	t	 
|||	f ¡ t	 dt|ƒ ¡ t	 d¡ t	 d¡ t	j||ddd|d� q‚d S )NrÆ  rÍ  rn  rC  r–   r   rp   rÆ   rç  r‰   rÃ   rÅ   r�   rÎ  rÏ  r2   rÑ  rr   r3   r¢   rÒ  rã   r†   r   rå   rÓ  )rÖ  rN   r×  rØ  r  r]   rÍ   rÎ   r5  r#   r  r+   rÙ  Úxscalerð  r}   rÚ  r    r    r!   Útest_markevery_log_scalesJ  s2     
   ú

rã  Zmarkevery_polarc            	      C   sÊ   d dddddgddgt dd	d
ƒdddddg} d
}tj t| ƒ| d |¡}t ddd	¡}dtj | }t| ƒD ]V\}}|| }|| }t	j
|||f dd� t	 dt|ƒ ¡ t	j||ddd|d� qnd S )NrÆ  rÍ  rn  rC  r–   r   rp   rÆ   rç  r‰   rÃ   rÅ   r�   rÎ  rÏ  r2   rï  r3   T©ÚpolarrÒ  r†   r   rå   rÓ  )rÖ  rN   r×  rØ  r  r]   rÍ   rÏ   r5  r#   r  r+   rÙ  r}   )	rÛ  rÜ  rÝ  r£  rn  rõ   rß  r¿  rÀ  r    r    r!   Útest_markevery_polare  s,     
   úræ  Zmarkevery_linear_scales_nansc            
      C   s   d dddddgddgt dd	d
ƒdddddg} d
}tj t| ƒ| d |¡}d}t ddd|  d	¡| }t |¡d | }tj |d d…<  |dd …< |dd…< t	| ƒD ]R\}}|| }|| }	t
 |||	f ¡ t
 dt|ƒ ¡ t
j||ddd|d� q¨d S )NrÆ  rÍ  rn  rC  r–   r   rp   rÆ   rç  r‰   rÃ   rÅ   r�   rÎ  rÏ  r2   rÑ  rr   r3   r¢   éìÿÿÿrO  éF   rÒ  r†   r   rå   rÓ  )rÖ  rN   r×  rØ  r  r]   rÍ   rÎ   r
  r5  r#   r  r+   rÙ  r}   rÚ  r    r    r!   Ú!test_markevery_linear_scales_nans}  s0     
   ú&ré  Zmarker_edgesc                  C   sz   t  ddd¡} t ¡ \}}|j| t  | ¡ddddd� |j| d t  | ¡ddddd� |j| d	 t  | ¡ddd
dd� d S )Nr   r2   rr   zy.ç      >@r£  )rÕ  ÚmewÚmecrÃ   rÄ   r3   r’  )r]   rÍ   r#   r   r}   rÎ   ©r,   r(   r   r    r    r!   Útest_marker_edges—  s
     rî  zbar_tick_label_single.pngc                  C   sP   t  ¡ } | jddddd� dddœ}t  ¡ \}} t  ¡ } | jdddd|d	� d S )
Nr   r2   ÚedgeÚ0)ÚalignÚ
tick_labelr°  r‚   r’  )rñ  rò  rV  )r#   r	  Úbarr   )r   rV  r(   r    r    r!   Útest_bar_tick_label_single   s    
rô  c                  C   s&   t  ¡ \} }| ddgtjdg¡ d S )Nr   r2   rå   )r#   r   ró  r]   r
  r'   r    r    r!   Útest_nan_bar_values­  s    rõ  c                  C   s   t  ¡ \} }| g g ¡ d S rÖ   )r#   r   ró  r'   r    r    r!   Útest_bar_ticklabel_fail²  s    rö  zbar_tick_label_multiple.pngc                  C   s0   t  ¡ } | jddgddgddgddgdd	� d S )
Nr2   ç      @r3   rÄ   rž   r‚   r’  rP   ©rc  rò  rñ  )r#   r	  ró  rå  r    r    r!   Útest_bar_tick_label_multiple·  s    ÿrù  z/bar_tick_label_multiple_old_label_alignment.pngc                  C   s:   dt jd< t ¡ } | jddgddgddgdd	gdd
� d S )NrP   zytick.alignmentr2   r÷  r3   rÄ   rž   r‚   r’  rø  )rN   r«   r#   r	  ró  rå  r    r    r!   Ú*test_bar_tick_label_multiple_old_alignment¿  s
    
ÿrú  c                 C   sh   |   ¡ }ddddg}ddddg}d	d
„ |D ƒ}dd
„ |D ƒ}|j||dd� |  ¡ }|j||dd� d S )Nr�   çÍÌÌÌÌÌ @ç333333@rÇ  r\  rt  çffffff
@çš™™™™™@c                 S   s   g | ]}t |ƒ‘qS r    r   r˜   r    r    r!   rœ   Í  s     z+test_bar_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ‘qS r    r   r¡   r    r    r!   rœ   Î  s     rP   ©rñ  ©r   ró  ©r   r   r   Úx0Úy0r,   r-   r    r    r!   Útest_bar_decimal_centerÈ  s    r  c                 C   s|   |   ¡ }ddddg}ddddg}d	d
„ |D ƒ}dd
„ |D ƒ}|j||ddddgdd� |  ¡ }|j||ddddgdd� d S )Nr�   rû  rü  rÇ  r\  rt  rý  rþ  c                 S   s   g | ]}t |ƒ‘qS r    r   r˜   r    r    r!   rœ   Û  s     z,test_barh_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ‘qS r    r   r¡   r    r    r!   rœ   Ü  s     rž   r2   rP   ©r¸  rñ  ©r   Úbarhr  r    r    r!   Útest_barh_decimal_centerÖ  s    r  c                 C   sj   ddddg}ddddg}d	d
ddg}dd„ |D ƒ}|   ¡ }|j|||dd� |  ¡ }|j|||dd� d S )Nr�   rû  rü  rÇ  r\  rt  rý  rþ  rá  ç333333÷?r2   r3   c                 S   s   g | ]}t |ƒ‘qS r    r   ©r™   rõ   r    r    r!   rœ   é  s     z*test_bar_decimal_width.<locals>.<listcomp>rP   ©rc  rñ  r   )r   r   r,   r-   Zw0r_  r   r    r    r!   Útest_bar_decimal_widthä  s    r  c                 C   sj   ddddg}ddddg}d	d
ddg}dd„ |D ƒ}|   ¡ }|j|||dd� |  ¡ }|j|||dd� d S )Nr�   rû  rü  rÇ  r\  rt  rý  rþ  rá  r	  r2   r3   c                 S   s   g | ]}t |ƒ‘qS r    r   r
  r    r    r!   rœ   ÷  s     z,test_barh_decimal_height.<locals>.<listcomp>rP   r  r  )r   r   r,   r-   Zh0rø  r   r    r    r!   Útest_barh_decimal_heightò  s    r  c                  C   sR   t  ¡ } | jddgddgdddd�}|D ]$}| ¡ dks<t‚| ¡ d	ks(t‚q(d S )
Nr2   r3   rå   rÅ   ræ   r£  ©rÔ  r¤   rê   ©r   r   r   r   ©r2   r   r   rÅ   ©r#   r	  ró  Úget_facecolorr&   Úget_edgecolor©r   ÚrectsÚrectr    r    r!   Útest_bar_color_none_alpha   s
    r  c                  C   sR   t  ¡ } | jddgddgdddd�}|D ]$}| ¡ dks<t‚| ¡ d	ks(t‚q(d S )
Nr2   r3   rå   rÅ   r£  ræ   r  r  r  r  r  r    r    r!   Útest_bar_edgecolor_none_alpha  s
    r  zbarh_tick_label.pngc                  C   s0   t  ¡ } | jddgddgddgddgdd	� d S )
Nr2   r÷  r3   rÄ   rž   r‚   r’  rP   )r¸  rò  rñ  )r#   r	  r  rå  r    r    r!   Útest_barh_tick_label  s    ÿr  c                  C   s^  t  ¡ \} }|jt ddd¡dtjdd�d� |jt ddd¡dtjdd�tjdd�d� t  ¡ \} }|jt ddd¡dtjdd�d	� |jt ddd¡dtjdd�tjdd�d
� t  ¡ \} }|jt ddd¡t ddd¡gt ddg¡tjdd�d	� |jt ddd¡t ddd¡gt ddg¡dd„ dD ƒd	� | t ddd¡tjdd�fgd¡ dS )z>Smoketest that bar can handle width and height in delta units.éâ  r2   r¢   r‰   ©Úhours©rc  r3   )r©  rc  )r¸  )r¸  rª  r�   c                 S   s   g | ]}t j|d �‘qS )r  r~  ©r™   r]  r    r    r!   rœ   ,  s     z&test_bar_timedelta.<locals>.<listcomp>rä   )rr   rÅ  N)	r#   r   ró  r•  r  r  r]   rü   Úbroken_barhr'   r    r    r!   Útest_bar_timedelta  s<    
ÿ

þ
ÿ

þ
þþ
ÿþr   c                 C   sB   t j dd¡}| jdd| jdd�d�j}t ¡  tj||d� d S )NrÀ   r3   z1/1/2000r2   )Úyears)ÚperiodsÚfreq©Ú	positions)	r]   r^   r“   Ú
date_rangeZ
DateOffsetÚyearr#   r­   Úboxplot)ÚpdrV  r!  r    r    r!   Útest_boxplot_dates_pandas2  s     
ÿr*  c                  C   sê   t j dd¡} t d¡\}}|d j| dddgdddgd� |d	 j| dddgdd� |d
 j| dddgd� |d j| ddddgd� |d j| ddd� |d j| dd� |d j| dddgd� |d j| dd� |d  | ¡ d S )NrÀ   r‰   r½  r   rÅ   rÄ   rÃ   )Ú	capwidthsÚwidthsr2   r3   ©r+  rž   rå   rI  ©r,  r´  rÆ  )r]   r^   r“   r#   r   r(  )rV  r(   r7  r    r    r!   Útest_boxplot_capwidths;  s     r/  c                 C   sØ   ddl m}m} t ¡ }| d¡}t ddd¡g}t|ƒdk rZ| |d tj	dd	� ¡ q2t
 d
¡}t
 ||¡\}}t|ƒd t|ƒd f}	t
 |	d |	d  ¡}
|	|
_z"|ƒ  | |||
¡}|j ¡  W 5 |ƒ  X d S )Nr   )Úregister_matplotlib_convertersÚ deregister_matplotlib_converterséo   éå  r2   r´  rp   éx   )ÚsecondsrÀ   )Zpandas.plottingr0  r1  r#   r­   r”   r•  r  Úappendr  r]   rb   rË  re  rK  Úcanvasr×   )r)  r0  r1  r(   r   ÚtimesZy_valsZ	time_axisZy_axisre  Zz_dataÚimr    r    r!   Útest_pcolor_regressionL  s     

r:  c                 C   s¦   |   dddgdddgdddgdddgdœ¡}|  |dddg ¡|d	< |d	d
g  d	g¡ ¡ }|j}|d
 }|d
 }t ¡ \}}|j||ddd� |j||ddd� d S )Nr  r2   r3   r‰   )r'  Úmonthr›  rš  r'  r;  r›  Údaterš  rr   rP   r  Úorangerå   rø   )	Ú	DataFrameÚto_datetimeÚgroupbyrö  Úindexr#   r   ró  r}   )r)  ÚdfZmonthlyÚdatesZforecastÚbaseliner(   r   r    r    r!   Útest_bar_pandasj  s    ýÿrE  c                 C   sJ   | j dddgdddgdœdd	d
gd�}t ¡ \}}|j|jd|jd� d S )Nr¢   rÂ   rï  rÄ   r=  rà  )r,   rc  r2   r3   r‰   ©rA  r  )r>  r#   r   ró  r,   rc  ©r)  rB  r(   r   r    r    r!   Útest_bar_pandas_indexed}  s
    ÿrH  c                 C   sh   |   ¡ }|  ¡ }ddg}ddg}ddg}tdƒD ]"}|j|| || d|| d� q0|j|||d� d S )	Nr2   r3   r‰   r,   r†   r  )r¤   r8  )r8  )r   r¬   ró  )r   r   re   rf   r,   r-   Úhatchesrõ   r    r    r!   Útest_bar_hatches…  s     rJ  )r,   rc  r*   Úexpected_labelsÚcontainer_labelr,   r2   Ú
_nolegend_r‚   r’  r6   rr   rÅ  rÇ   ÚAÚBÚCr¹  rÏ  Úbarsc           	      C   sJ   t  ¡ \}}|j| ||d�}dd„ |D ƒ}||ks6t‚| ¡ |ksFt‚d S )NrÃ  c                 S   s   g | ]}|  ¡ ‘qS r    )rR   )r™   ró  r    r    r!   rœ   £  s     z#test_bar_labels.<locals>.<listcomp>)r#   r   ró  r&   rR   )	r,   rc  r*   rK  rL  rq  r   Zbar_containerZ
bar_labelsr    r    r!   Útest_bar_labels”  s
    rR  c               	   C   s€   t  ¡ \} }t t¡�$ |jddgddgdddgd� W 5 Q R X t  ¡ \} }t t¡�  |jddgddgdgd� W 5 Q R X d S )	Nr,   r-   r2   r3   rÎ  rÏ  rL  rÃ  )r#   r   rŠ   r‹   r"  ró  rp  r    r    r!   Útest_bar_labels_length¨  s    (rS  c                 C   sˆ   | j ddgdd�| j ddgdd�fD ]4}t ||¡ t |j|¡ t |¡ t |j¡ q$|  ddddgi¡}t |¡ t ||¡ d S )Nr2   r3   Úfloat64rA  ZFloat64rÀ  r‰   )ÚSeriesr#   r}   rA  r>  )r)  r,   rB  r    r    r!   Útest_pandas_minimal_plot±  s    ÿ

rV  Zhist_logc                  C   sH   t  ddd¡d } t  d|  d|  g¡}t ¡ \}}|j|ddd� d S )Nr   r2   rç  r‰   FT)r™  rã   )r]   rÍ   Úconcatenater#   r   Úhist)Zdata0rV  r(   r   r    r    r!   Útest_hist_log¾  s    rY  c                 C   s°   |   dd¡}|  dd¡}tdddgƒD ]„\}}|d|f  d¡ |d|f jdd|d	� |d|f jdd|d	� |d|f  d¡ |d d …|f D ]}|jddd
|d� q’q&d S )Nr3   r‰   ró  ÚstepÚ
stepfilledr   rã   r2   ©ÚhisttypeT)rã   r]  )r   r5  r  rX  )r   r   rƒ   r„   rõ   r]  r   r    r    r!   Útest_hist_log_2Æ  s    r^  c                  C   sŒ   t  d¡\} }|d jdgddggddd� |d  d¡ |d jdddgddd� |d  d¡ | j ¡  |d  ¡ |d  ¡ ksˆt‚d S )Nr3   r   r2   Ú
barstackedr\  rã   )r#   r   rX  r  r7  r×   r€   r&   ©r(   r7  r    r    r!   Útest_hist_log_barstackedÖ  s    
ra  zhist_bar_empty.pngc                  C   s   t  ¡ } | jg dd� d S )Nró  r\  ©r#   r	  rX  rå  r    r    r!   Útest_hist_bar_emptyà  s    rc  c                  C   s˜   t j d¡ t  t jjdddd�dd¡ t j¡} tj| ddd	�}|d
 }t	dt
|ƒƒD ]<}||d   ¡ }||  ¡ }|d d |d d ksVt‚qVd S )NrV   rž   rÅ   rß  ©Úsizer   r2   r‰   )rñ  rÔ  r3   )r]   r^   r_   Úclipr`   ÚastypeZfloat16r#   rX  r¬   r  Zget_cornersr&   )r‚  rø  Úbcr£  ZrleftZrrightr    r    r!   Útest_hist_float16ç  s      ÿÿri  zhist_step_empty.pngc                  C   s   t  ¡ } | jg dd� d S )NrZ  r\  rb  rå  r    r    r!   Útest_hist_step_emptyö  s    rj  zhist_step_filled.pngc            
      C   sÖ   t j d¡ t j dd¡} d}ddiddidd ii gd }d	gd
 dgd
  }tjdd
d�\}}t|||jƒD ]B\}}}|j| |f|ddœ|—Ž | 	d||f ¡ |j
dd� qn|d j}	tdd„ |	D ƒƒsÒt‚d S )Nr   rß  r‰   rr   r™  TFr3   rZ  rå   r[  )ÚnrowsÚncols©r]  Ústackedz%s/%srN  ©rH   ©r   r   c                 s   s   | ]}|  ¡ | ¡ kV  qd S rÖ   )r  r  )r™   rÌ   r    r    r!   Ú	<genexpr>  s     z(test_hist_step_filled.<locals>.<genexpr>)r]   r^   r_   r�  r#   r   rh  r6  rX  r/   rj  rð   Úallr&   )
r,   Zn_binsrl  Útypesr(   r7  ZkgÚ_typer   rð   r    r    r!   Útest_hist_step_filledý  s    
ru  zhist_density.pngc                  C   s6   t j d¡ t j d¡} t ¡ \}}|j| dd� d S )NrV   rÞ  T©Údensity)r]   r^   r_   rô  r#   r   rX  ©rV  r(   r   r    r    r!   Útest_hist_density  s    ry  c                  C   s^   t j d¡} |  d¡}ddddddg}tj||d	d
�\}}}t j||d	d
�\}}t||ƒ d S )Ni‹à  rÆ   rR  rp   rI  r   r2   rÀ   T)rñ  rw  )r]   r^   ZRandomStater�  r#   rX  Z	histogramr   )Úrngr]  rñ  Zmpl_heightsrq  Z
np_heightsr    r    r!   Útest_hist_unequal_bins_density  s    
r{  c                  C   sd   t   ddd¡t   ddd¡gt   ddd¡t   ddd¡gg} t ¡ \}}|j| dd� |j| dd� d S )Néá  r2   r3   T)rn  F)r•  r#   r   rX  rx  r    r    r!   Útest_hist_datetime_datasets#  s    ÿr}  Úbins_preprocessc                 C   s   | S rÖ   r    ©rñ  r    r    r!   Ú<lambda>-  ó    r€  c                 C   s   t  | ¡ d¡S )Nrµ  )r]   rG  rg  r  r    r    r!   r€  .  r�  r˜  zdatetime.datetimeznp.datetime64c              	   C   s   t   ddd¡t   ddd¡t   ddd¡t   ddd¡gt   ddd¡t   ddd¡t   ddd¡t   ddd¡gg}t   ddd¡t   ddd¡t   ddd¡g}t ¡ \}}|j|| |ƒdd	�\}}}tj |tj 	|¡¡ |j|| |ƒd
d	�\}}}tj |tj 	|¡¡ d S )Niã  r2   rÀ   rD  r3   r‰   rB  T)rñ  rn  F)
r•  r#   r   rX  r]   r¨   r   r�   rC  r˜  )r~  rV  Z
date_edgesr(   r   rq  rñ  r    r    r!   Ú test_hist_datetime_datasets_bins+  s"     ÿ ÿþÿr‚  zdata, expected_number_of_histsc                 C   sH   t  | ¡\}}}t |¡}|jdkr2d|ksDt‚n|jd |ksDt‚d S )Nr2   r   )r#   rX  r]   rG  Úndimr&   re  )rV  Zexpected_number_of_histsZhistsrq  r    r    r!   Útest_hist_with_empty_inputB  s
    

r„  zhisttype, zorderró  rZ  r[  c                 C   sH   t  ¡  ¡ }|jddg| d� |js(t‚|jD ]}| ¡ |ks.t‚q.d S )Nr2   r3   r\  )r#   r­   r”   rX  rð   r&   Ú
get_zorder)r]  ro  r   rÙ   r    r    r!   Útest_hist_zorderP  s
    

r†  c                 C   s’  dd l m} t ddddddddg¡}t d	d
dddddddg	¡}|  dd¡ ¡ }|d j||d d� |d j||d dd� |d  ||¡ |d j||dd� |d  ||¡ |d  ¡  |d j||dd� |d  ¡  dddœ}| dd¡ ¡ }|d j	|t 
||d ¡fddi|—Ž |d j	t 
|d |¡|fddi|—Ž |d j	|t 
||d ¡fddi|—Ž |d  |j|d |d gd|d gf|Ž¡ |d  |j|d |d gd|d gf|Ž¡ |d  dd ¡ |d j	t 
|d |¡|fddi|—Ž |d  |jd|d g|d |d gf|Ž¡ |d  |jd|d g|d |d gf|Ž¡ |d  dd ¡ |d j	|t 
||d ¡fddi|—Ž |d  |j|d |d gd|d gf|Ž¡ |d  |j|d |d gd|d gf|Ž¡ |d  ¡  |d j	t 
|d |¡|fddi|—Ž |d  |jd|d g|d |d gf|Ž¡ |d  |jd|d g|d |d gf|Ž¡ |d  ¡  d S ) Nr   rI  é   rh   é%   é0   rÒ  rå   r¢   rÂ   rï  r>  rO  ç      @ç      @ç       @ç      "@r‰   r3   ©rD  r2   rJ   )rD  rL   rK   rÀ   ÚmiterÚbutt©Úsolid_joinstyleÚsolid_capstylerp   Ú	drawstyleú
steps-post)Zmatplotlib.linesÚlinesr]   rü   r   ÚflattenÚstairsZsemilogyrF  r}   r6  Úadd_lineÚLine2Drj  ri  )r   r   Zmlinesr-   r,   Ú	test_axesr‘   Úref_axesr    r    r!   Útest_stairs\  s@    
(((..(..(..(..r�  c                 C   s�  dddddgddddddg }}d}|   dd¡ ¡ }|d j||dd	� |d j||d
dd� |d j|||dd� |d j|||d
dd� |  dd¡ ¡ }|d j|t ||d ¡ddd� |d  dd ¡ |d j|t ||d ¡ddd� |d  dd ¡ |d j|t ||d ¡t 	t
|ƒd ¡| ddd� |d  |d ¡ |d j|t ||d ¡t 	t
|ƒd ¡| ddd� |d  |d ¡ d S )Nr2   r3   r‰   rå   r   rÀ   ra  T©r™  rJ   )rL   r™  )rD  r™  )rD  rL   r™  rp   Úpost)rZ  rù   )r   r—  r˜  r  r]   r6  rj  r0  ri  rw   r  )r   r   rø  rñ  Úbsr›  rœ  r    r    r!   Útest_stairs_fillˆ  s4     ÿ""  ÿ  ÿr¡  c                 C   s  d}|   ¡ }| dddg¡}| |¡ | dddg¡ |jt d¡d d� | dddgt d¡d ¡ | dddg¡ | d t d¡¡ t | ¡ d t dd¡¡sªt‚t | ¡ d t d¡¡sÈt‚|jdd	� | ¡ j	dksæt‚|  ¡ }|jdddgdd	�}| |¡ d S )
N)rR  rå   r2   r3   r‰   rå   ©Úedgesr   ra  rŽ  )
r”   r˜  rj  Úset_datar]   rb   ÚallcloseÚget_datar&   rD  )r   r   ru   Útest_axrø  Úref_axr    r    r!   Útest_stairs_update¢  s     
 r©  c                 C   sb   |   ¡ }|jdddgd d� |  ¡ }dddœ}|jtdƒddddgfd	d
i|—Ž | dd ¡ d S )NrÀ   rI  r´  rŽ  r�  r�  r‘  rå   r”  r•  r   )r”   r˜  r}   r¬   rj  )r   r   r§  r¨  r‘   r    r    r!   Útest_stairs_baseline_0º  s    
$rª  c                  C   s>   t  ¡  ¡ } |  g dg¡ |  ¡ dks*t‚|  ¡ dks:t‚d S )Né*   )é'   r­  r»  )r#   r­   r”   r˜  r   r&   r€   rå  r    r    r!   Útest_stairs_emptyÇ  s    r­  c                	   C   s6   t jtdd�� t ddgdtjdg¡ W 5 Q R X d S )NúNan values in "edges"r  r2   r3   r   )rŠ   r‹   r"  r#   r˜  r]   r
  r    r    r    r!   Útest_stairs_invalid_nanÎ  s    r¯  c                	   C   s2   t jtdd�� t ddgddg¡ W 5 Q R X d S )NúSize mismatchr  r2   r3   r   )rŠ   r‹   r"  r#   r˜  r    r    r    r!   Útest_stairs_invalid_mismatchÓ  s    r±  c               	   C   sH   t  ddgdddg¡} tjtdd�� | jdtjdgd� W 5 Q R X d S )Nr2   r3   r   r®  r  r¢  )r#   r˜  rŠ   r‹   r"  r¤  r]   r
  ©rø  r    r    r!   Útest_stairs_invalid_updateØ  s    r³  c               	   C   sF   t  ddgdddg¡} tjtdd�� | jt d¡d� W 5 Q R X d S )Nr2   r3   r   r°  r  rÀ   r¢  )r#   r˜  rŠ   r‹   r"  r¤  r]   rb   r²  r    r    r!   Útest_stairs_invalid_update2Þ  s    r´  ztest_stairs_options.pngc               
   C   s   t  dddddg¡t  ddddg¡ t¡ } }| ¡ }t j|d< t ¡ \}}|j|d | dddd	� |j|| d d d
dddd� |j|| ddddd� |j|d | d d dddddd� |j|d d d… d d | d d
ddd dd� |j|d d d… d d | dddddd� |j|d d d… d d | d t  	dd t
|ƒ¡d!dd"dd#� |j|d d… d d d… d d$ | d d… d d%ddd&d'd(d)� |jd*d+� d S ),Nr2   r3   r‰   rå   rÀ   r¥   TrN  )r¤   r™  r*   r‘  rJ   rO  )r¤   r™  rL   r*   r=  r¡  rP  )r¤   rÔ  rù   r*   rž   ÚD)rÔ  rù   rD  rL   r*   rp   é   ÚE)r¤   rÔ  rù   rD  r*   r‡  rE  rS  ÚF)rD  r¤   rÔ  rù   r*   rÇ   r‹  é   r£   ÚG)rD  r¤   rÔ  r*   r™  rD  r4  rb  ú//ÚH)r¤   rÔ  rù   rD  r8  r*   r   r9   )r]   rü   rg  rD  Úcopyr
  r#   r   r˜  rÍ   r  rB   )r,   r-   Zynr(   r   r    r    r!   Útest_stairs_optionsä  sF    .
 ÿ ÿ&ÿ   ÿ.   ÿ4  ÿr¾  ztest_stairs_datetime.pngc               	   C   sF   t jdd�\} }| t d¡t t d¡t d¡¡¡ t jdd� d S )NT)Úconstrained_layouté$   z
2001-12-27z
2002-02-02r–   )Úrotation)r#   r   r˜  r]   rb   rµ  Úxticks)Úfr   r    r    r!   Útest_stairs_datetimeü  s    ÿÿrÄ  c                 C   sH   |   ¡ }|jdddgddd� |  ¡ }|jdddgdd�}| d¡ d S )Nr2   r3   r‰   r‘  T)r¤   r™  rž  )r”   r˜  Ú	set_color)r   r   r§  r¨  Ústr    r    r!   Útest_stairs_edge_handling	  s
    rÇ  c                  C   sH   t  ddd¡} t  ddd¡}t  | ¡t  |d d …t jf ¡ }| ||fS )NrR  rÀ   é–   r4  )r]   rÍ   r  rÎ   r‹  )r,   r-   r‘  r    r    r!   Úcontour_dat	  s    "rÉ  Zcontour_hatchingc               
   C   sD   t ƒ \} }}t ¡ \}}|j| ||dddddgtjd ddd	� d S )
Nr´  r6  ú\r»  r   Úgrayrv   rž   )rI  rn   ÚextendrÔ  )rÉ  r#   r   Úcontourfr�   rp  )r,   r-   r‘  r(   r   r    r    r!   Útest_contour_hatching	  s     þrÎ  Zcontour_colorbarc            	   
   C   s²   t ƒ \} }}t ¡ \}}|j| ||t ddd¡tjd dddd�}|j| ||t d	d
d¡dgddd�}|j| ||t ddd¡dgdd�}|j	||d�}| 
|¡ |j
|dd� d S )NgÍÌÌÌÌÌü¿g7‰A`åÐü?rÄ   ZRdBug333333ã¿rà  rv   )Úlevelsrn   rý  rþ  rÌ  gš™™™™™Àg^ºI+ã¿r-   r‡   r3   )rÏ  ru  Ú
linestylesr'  rt  r6   )rÏ  ru  r'  rå  F)Zerase)rÉ  r#   r   rÍ  r]   rb   r�   rp  r  rC   Z	add_lines)	r,   r-   r‘  r(   r   ÚcsZcs1Zcs2rF   r    r    r!   Útest_contour_colorbar!	  s(    üýþ
rÒ  Úhist2dc                  C   s†   dt jd< tj d¡ tj d¡d d } tj d¡d }t  ¡ \}}|j| |ddd	� | |d
œ}t  ¡ \}}|jddd|dd� d S )NFrí  r   rÆ   r3   rÀ   rr   T©rñ  Ú
rasterizedrß   r,   r-   )rñ  rV  rÕ  )r#   r«   r]   r^   r_   r�  r   rÓ  )r,   r-   r(   r   rV  r    r    r!   Útest_hist2d7	  s    

rÖ  Zhist2d_transposec                  C   sX   dt jd< tj d¡ t dgd ¡} tj d¡d }t  ¡ \}}|j| |ddd	� d S )
NFrí  r   rÀ   rÆ   r3   rr   TrÔ  )	r#   r«   r]   r^   r_   rü   r�  r   rÓ  r  r    r    r!   Útest_hist2d_transposeI	  s    
r×  c                  C   s>   t j d¡\} }t ¡  ¡ }|tfD ]}|j| |dd� q$d S )Nrè  Trv  )r]   r^   r#   r­   r   rÓ  )r,   r-   r   Úobjr    r    r!   Útest_hist2d_densityW	  s    rÙ  c                "   @   s$  e Zd Zedgddd�dd„ ƒZedgdd�d	d
„ ƒZedgddgd�dd„ ƒZedgd�dd„ ƒZdd„ Z	e
j dddide ¡ iddiddig¡dd„ ƒZdd„ Zej d ¡d!d"„ ƒZd#d$„ Zd%d&„ Zedgd�d'd(„ ƒZedgd�d)d*„ ƒZd+d,„ Zedgd�d-d.„ ƒZedgd�d/d0„ ƒZd1d2gd3fd4d5d6d7d8d9d:gd;fd<d=gd3fd=gd> d3fd?gd@ d;fd?gd> d;fd?gdA dBfdCdDdEdFgd;fdCdGdEdHgd;fdCd?dEdHgd3fdIddggd;fdIddggd@ dBfdIddggd> d;fdIddggdA dBfdIddd?ggd;fdIddd?ggd@ dBfdIddd?ggd> d;fdIddd?ggdA dBfdIddd?ggd@ dIddgg d;fdIddd?gdGdJgdBfdIddd?gdGdJdHgd;fdIddd?gdGdJdHddIdggdBfdIddd?gdGd=gd3fdIddd?gdGdJd=gd3fdIddd?gdGdJdHd=gd3fgZe
j dKe¡dLdM„ ƒZej d ¡edgd�dNdO„ ƒƒZdPdQ„ Zd;S )RÚTestScatterr4   r�   Trú  c                 C   s¼   t  ddddg¡t  ddddg¡dddd	gd
dddgddddgdœ}t ¡ \}}|j|d d |d d |d |d d� |j|d d |d d |d |d d� |jdddd|d� d S )Nr‰   rå   r3   rI  rÀ   r£  r-   r’  ÚlimerC  rÇ   é   é   ú0.5ú0.6ú0.7z0.8)r,   r-   r6   r^  Úc2r,   r¢   r6   r^  ©r6   r^  rá  )r6   r^  rV  )r]   rü   r#   r   r4   )r  rV  r(   r   r    r    r!   Útest_scatter_plot_	  s     
 

þ**zTestScatter.test_scatter_plotzscatter_marker.pngr3  c           
   
   C   s2  t jdd�\}\}}}|jddddgddddgddd	d
gddddgdddd	gdd� |jddddgddddgddd	d
gddddgdddd	gtjddd�d� d\}}|| tj }t ddtj d¡}t t 	|¡| | t 
|¡| | g¡}	|jddddgddddgddd	d
gddddgdddd	g|	d� d S )Nr‰   ©rl  rå   r3   rI  rÀ   ©r2   r   r   r-   r’  rÛ  r‡  rO  r&  r–   r<  r£  Úgr^  )r6   r^  r^  rk   r†   r8   ©Ú	fillstylerU  r   rÒ  )r#   r   r4   r½  r¾  r]   rÏ   rÍ   Zcolumn_stackr  rÎ   )
r  r(   r  rÔ   rÛ   ÚrxZryZarearn  r+  r    r    r!   Útest_scatter_markerj	  s2    


ü


üÿ


üzTestScatter.test_scatter_markerZ
scatter_2Dr   )r4  r   c                 C   sP   t  d¡}t  d¡}t  ||¡\}}|| }t ¡ \}}|j|||ddd� d S )Nr‰   r3   rç  Úface)r6   r^  r^  )r]   rb   rË  r#   r   r4   )r  r,   r-   r‘  r(   r   r    r    r!   Útest_scatter_2Dƒ	  s    

zTestScatter.test_scatter_2Dr   c           
      C   sœ   t  ddddg¡}t  ddddg¡}t  d	d
„ |D ƒ¡}t  dd
„ |D ƒ¡}ddddg}ddddg}| ¡ }	|	j||||d� | ¡ }	|	j||||d� d S )Nr�   rû  rü  rÇ  r\  rt  rý  rþ  c                 S   s   g | ]}t |ƒ‘qS r    r   r
  r    r    r!   rœ   �	  s     z4TestScatter.test_scatter_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ‘qS r    r   r
  r    r    r!   rœ   ‘	  s     r£  r-   r’  rÛ  rC  rÇ   rÜ  rÝ  râ  )r]   rü   r   r4   )
r  r   r   r  r  r,   r-   r6   r^  r   r    r    r!   Útest_scatter_decimalŒ	  s    z TestScatter.test_scatter_decimalc              	   C   sn   t  t¡�" tjddgddgddgd� W 5 Q R X t  t¡�( tjdddgdddgdddgd� W 5 Q R X d S )Nr2   r3   rÃ   rÄ   r¤  r‰   )rŠ   r‹   r"  r#   r4   r  r    r    r!   Útest_scatter_color›	  s    &zTestScatter.test_scatter_colorrl  rn   rË  r!  rý  r   rþ  c              	   C   s¨   d}t jt|d�� tjg g f|Ž W 5 Q R X t jt|d��& tjddgddgfdg i|—Ž W 5 Q R X tjg g fdg i|—Ž tjddgddgfdddgi|—Ž d S )	Nz"No data for colormapping provided r  r2   r3   r‰   rå   r6   rÀ   )rŠ   r*  ÚWarningr#   r4   )r  rl  Z
warn_matchr    r    r!   Útest_scatter_color_warning¢	  s    *z&TestScatter.test_scatter_color_warningc                 C   sŒ   t jdddgdddgdddgtjdd	d
�dddgd�}| ¡ jdksHt‚t| ¡ ddddgddddgddddggƒ t| 	¡ dddgƒ d S )Nr   r2   r3   r‰   ú0.1ú0.3rÞ  r†   ræ   rç  r\  r3  çÍÌÌÌÌÌô?©r6   rk   r'  )r   rå   rÃ   rÅ   rž   )
r#   r4   r½  r¾  Úget_facecolorsre  r&   r   Úget_edgecolorsÚget_linewidths©r  Úcollr    r    r!   Útest_scatter_unfilledµ	  s    þ

þz!TestScatter.test_scatter_unfilledr:  c                 C   s‚   t jdddgdddgdddgdd	d
dgd�}t| ¡ | ¡ ƒ t| ¡ ddddgddddgddddggƒ t| ¡ d	d
dgƒ d S )Nr   r2   r3   r‰   rñ  rò  rÞ  r,   r\  r3  ró  rô  rÃ   rÅ   rž   )r#   r4   r   rõ  rö  r÷  rø  r    r    r!   Útest_scatter_unfillable¿	  s    þ

þz#TestScatter.test_scatter_unfillablec              	   C   sž   t  d¡}tjtdd�� t |||dd … ¡ W 5 Q R X tjtdd��$ t |dd … |dd … |¡ W 5 Q R X tjtdd�� t ||d¡ W 5 Q R X d S )Nrå   zsame size as x and yr  r2   zfloat array-likerv  )r]   rb   rŠ   r‹   r"  r#   r4   )r  r,   r    r    r!   Útest_scatter_size_arg_sizeÊ	  s    
 (z&TestScatter.test_scatter_size_arg_sizec                 C   sp   t jdddgdtjtjgdd�}t | ¡ d¡s4t‚t jddddgdtjtjdgdd�}t | ¡ d¡slt‚d S )Nr2   r3   r‰   rå  ©rê   rå   ©r2   r   r   r2   )r#   r4   r]   r
  r#  Ú
same_colorr  r&   rø  r    r    r!   Útest_scatter_edgecolor_RGBÓ	  s    ÿÿz&TestScatter.test_scatter_edgecolor_RGBc                 C   s´   |  ¡ }tjd  d¡}| dd¡ |jtdƒtdƒdtjdtjgddddg|dd	� |  ¡ }tjd  d¡}|jd
dgd
dgddgddg|d� |jddgddgddgdd� d S )Nrm  rn  r<  r2   rå   r3   r‰   T©r6   r^  rn   Zplotnonfiniter   ©r6   r^  rn   )r^  r¤   ©	r   r�   rp  rq  Zset_badr4   r¬   r]   r
  ©r  r   r   r   rn   r    r    r!   Útest_scatter_invalid_colorÜ	  s     
 þ$z&TestScatter.test_scatter_invalid_colorc                 C   s†   |  ¡ }tjd  d¡}| dd¡ |jtdƒtdƒdtjdtjgddddg|dd	� |  ¡ }|jd
dgd
dgddgddg|d� d S )Nrm  rn  r<  r2   rå   r3   r‰   Fr  r   r  r  r  r    r    r!   Útest_scatter_no_invalid_colorì	  s     
 þz)TestScatter.test_scatter_no_invalid_colorc              	   C   sN   dddg}t  ¡ }tjtdd��$ |j|||t dd¡dd	d
� W 5 Q R X dS )r  r2   r3   r‰   r  r  r   rr   r   rÀ   )r6   r!  rý  rþ  N)r#   r  rŠ   r‹   r"  r4   r#  r$  )r  r,   r   r    r    r!   Útest_scatter_norm_vminvmaxø	  s    
ÿ ÿz&TestScatter.test_scatter_norm_vminvmaxc                 C   s:   |  ¡ }|jdddd� |  ¡ }|jdgdgdgd� d S )Nr2   rF  )r   r4   )r  r   r   r   r    r    r!   Útest_scatter_single_point
  s    z%TestScatter.test_scatter_single_pointc                 C   s^   t  d¡}| ¡ }|j|| dd¡| dd¡d� | ¡ }|j| dd¡|| dd¡d� d S )Nrr   r3   rÀ   rF  )r]   rb   r   r4   ry   )r  r   r   r,   r   r    r    r!   Útest_scatter_different_shapes	
  s
    
 z)TestScatter.test_scatter_different_shapes)rÞ  NZrgbyÚ
conversion)r‘  N)ræ   N)NNr£  ræ  r’  ræ   N)Újauner
  r  rå   rž   r‰   rÀ   re  rÞ  z0.4rß  rà  r‘  ÚC5r2   z0.0zc_case, re_keyc              	   C   sr   dd„ }d}dddœ}|d kr8t jjj|di ||d� n6tjt|| d	�� t jjj|di ||d� W 5 Q R X d S )
Nc                   S   s   dS ©Nr£   r    r    r    r    r!   Úget_next_colorA
  s    z2TestScatter.test_scatter_c.<locals>.get_next_colorrå   z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)re  r
  r4  )r6   r^  rl  ÚxsizeÚget_next_color_funcr  )r�   r  r   Ú_parse_scatter_color_argsrŠ   r‹   r"  )r  Zc_caseZre_keyr  r  ÚREGEXPr    r    r!   Útest_scatter_c?
  s*    þ   þ   þzTestScatter.test_scatter_cc                 C   sž   dddgg}ddddgg}|  ¡ }|jt d¡tdƒ|d� |jt d¡d tdƒ|d� |  ¡ }|jt d¡tdƒ|d� |jt d¡d tdƒ|d� d S )	Nr2   rž   çš™™™™™©?r‰   r¤  rå   r3   rF  )r   r4   r]   rw   r¬   )r  r   r   ÚrgbZrgbarf   re   r    r    r!   Útest_scatter_single_color_cU
  s    z'TestScatter.test_scatter_single_color_cc              	   C   s¬   t  d¡}t ¡ \}}tdƒD ]@}|j|t  d|¡d|› �dd|d d�}| ¡ |d kst‚q|j|t  dd¡dddtddƒd
•d�}t	| ¡ tddƒt
jd	 f•ƒ d S )NrÀ   r‰   rP  r,   rÆ   r2   )r6   rk   r^  r'  ÚC3úlines.linewidth)N)r]   rb   r#   r   r¬   r4   rY   r÷  r&   r   r�   r«   )r  r,   r(   r   rõ   Zpcr    r    r!   Útest_scatter_linewidthse
  s    
ÿÿÿz#TestScatter.test_scatter_linewidths) r  r  r  r   rã  rê  rì  r   rí  rî  rŠ   ÚmarkÚparametrizer#  r$  rð  rú  r�   r‘   Úcontextrû  rü  r   r  r  r  r  r	  Zparams_test_scatter_cr  r  r  r    r    r    r!   rÚ  ^	  sˆ   






üÿ




		








 Ø+


rÚ  )r^  c                K   s   | ||d k	r|ni |fS rÖ   r    )r6   r  r^  rl  r    r    r!   Ú_paramst
  s    r  Ú_resultz	c, colorszparams, expected_result)r6   ru  r£  rF  r¤  ræ  rž   c                 C   s@   dd„ }t jjj| d|iŽ\}}}||jks0t‚t||jƒ d S )Nc                   S   s   dS r  r    r    r    r    r!   r  ˆ
  s    z5test_parse_scatter_color_args.<locals>.get_next_colorr  )r�   r  r   r  r6   r&   r   ru  )ÚparamsZexpected_resultr  r6   ru  Z_edgecolorsr    r    r!   Útest_parse_scatter_color_argsy
  s    ÿÿr   zkwargs, expected_edgecolorsrý  rë  ræ   )rê   r^  )r6   rê   r^  )r¤   rê   c                 C   sN   dd„ }|   dd ¡}|   dd ¡}tjjj||| d|d�\}}}||ksJt‚d S )Nc                   S   s   dS r  r    r    r    r    r!   r  £
  s    z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_colorr6   r^  r3   )r  r  )Úpopr�   r  r   r  r&   )rl  Zexpected_edgecolorsr  r6   r^  rq  Zresult_edgecolorsr    r    r!   Ú(test_parse_scatter_color_args_edgecolors”
  s        ÿÿr"  c               	   C   sX   dd„ } t jtdd��8 t dddgddd	gg¡}tjjj|d i d
| d� W 5 Q R X d S )Nc                   S   s   dS r  r    r    r    r    r!   r  ¯
  s    z;test_parse_scatter_color_args_error.<locals>.get_next_colorz&RGBA values should be within 0-1 ranger  rÃ   rÄ   rá  r=  gffffffö?r3   )rl  r  r  )	rŠ   r‹   r"  r]   rü   r�   r  r   r  )r  r6   r    r    r!   Ú#test_parse_scatter_color_args_error®
  s    ÿ    ÿr#  c                  C   s„   G dd„ dƒ} | ƒ }| ƒ }t j|_tjddddg|d�}t|ƒtksHt‚t ¡  tj	d|d�}t|ƒt
jj t¡ksxt‚t ¡  d S )Nc                   @   s   e Zd Zdd„ Zdd„ ZdS )z#test_as_mpl_axes_api.<locals>.Polarc                 S   s
   d| _ d S )Nr   )Útheta_offsetr  r    r    r!   Ú__init__¼
  s    z,test_as_mpl_axes_api.<locals>.Polar.__init__c                 S   s   t d| jifS )Nr$  )r   r$  r  r    r    r!   Ú_as_mpl_axes¿
  s    z0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axesN)r  r  r  r%  r&  r    r    r    r!   ÚPolar»
  s   r'  r   r2   rÈ  éy   )r]   rÏ   r$  r#   r  Útyper   r&   r  r  r�   Z	_subplotsZsubplot_class_factory)r'  ZprjZprj2r   r    r    r!   Útest_as_mpl_axes_api¹
  s    r*  c                  C   sZ   t  ¡ \} }t  ¡ \}}t  |¡ |t  ¡ ks2t‚| t  ¡ ksBt‚t  | ¡ t  |¡ d S rÖ   )r#   r   Zscar	  r&   Zgcfr  )Úfig1rÔ   Úfig2rÛ   r    r    r!   Útest_pyplot_axesÒ
  s    

r-  c                  C   s¶   t  ¡ \} }| t t dd¡¡¡ |jddd� | ¡  |jddd� dd„ |j	|j
fD ƒ\}}|d	d
dddddddddddddddgks�t‚|ddddddd ddddgks²t‚d S )!NrÃ   rÆ   rã   ç      @r‚  r�  c                 S   s   g | ]}d d„ |  ¡ D ƒ‘qS )c                 S   s   g | ]}|  ¡ |j ¡ f‘qS r    )Zget_locÚlabel1Úget_textr  r    r    r!   rœ   ä
  s     z.test_log_scales.<locals>.<listcomp>.<listcomp>)Z_update_ticks)r™   r<  r    r    r!   rœ   ã
  s   ÿz#test_log_scales.<locals>.<listcomp>)r¢   z$\mathdefault{9^{0}}$)r�  z$\mathdefault{9^{1}}$)g     @T@z$\mathdefault{9^{2}}$)rÂ   r°   )rï  r°   )r>  r°   )rO  r°   )rŠ  r°   )r‹  r°   )rŒ  r°   )g      2@r°   )g      ;@r°   )g      B@r°   )g     €F@r°   )g      K@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ã   rÍ   r  r  rL  rQ   rT   r&   )r(   r   rÂ  Zyticksr    r    r!   Útest_log_scalesÝ
  sP    
þ
ï
õr2  c                  C   sR   t  ¡ \} }|jddd� |j t d¡¡ | ¡ | ¡   krHdksNn t	‚d S )Nrã   )râ  rð  r2   ©r2   rr   )
r#   r   r~   rQ   rÐ   r·   ZMultipleLocatorr   r€   r&   rp  r    r    r!   Útest_log_scales_no_data	  s    r4  c               	   C   sp   t  ¡ \} }| d¡ tjtdd�� | dd¡ W 5 Q R X | d¡ tjtdd�� | dd¡ W 5 Q R X d S )Nrã   zAttempt to set non-positiver  rp   rr   )	r#   r   rL  rŠ   r*  r¥  ri  r  rj  r'   r    r    r!   Útest_log_scales_invalid  s    

r5  Zstackplot_test_imagec                  C   s®   t  ¡ } t ddd¡}d| }d| d }d| d }|  ddd¡}| ||||¡ | d¡ | d	¡ ||||d
œ}t  ¡ \} }|jdddd|d� | d¡ | d	¡ d S )Nr   rr   r¢   rÂ   r2   rï  r3   ©r   rr   )r   rè  )r,   r8  r   Úy3r,   r8  r   r7  r±  )	r#   r­   r]   rÍ   r”   Ú	stackplotri  rj  r   )r(   r,   r8  r   r7  r   rV  r    r    r!   Útest_stackplot  s    


r9  Zstackplot_test_baselinec                  C   sª   t j d¡ dd„ } | ddƒ}d|dd d …f< t dd¡\}}|d jtdƒ|jd	d
� |d jtdƒ|jdd
� |d jtdƒ|jdd
� |d jtdƒ|jdd
� d S )Nr   c                 S   sž   t  || f¡}t| ƒD ]‚}tdƒD ]t}ddt j ¡   }dt j ¡  d }ddt j ¡   }|d d …|f  |t  t  |¡| | | d  ¡ 7  < q"q|S )NrÀ   r2   rÃ   r3   rž   rr   )r]   rš  r¬   r^   Úexprb   )r÷  rÀ  r‚   rõ   Újr,   r-   r‘  r    r    r!   Úlayers2  s    >z'test_stackplot_baseline.<locals>.layersr‰   rÆ   rO  r3   rp  ÚzerorŽ  rw  Úsym©r2   r   ZwigglerÂ  Zweighted_wiggle)r]   r^   r_   r#   r   r8  r¬   r˜  )r<  r�  r(   r7  r    r    r!   Útest_stackplot_baseline.  s    

r@  c                 C   s   | S rÖ   r    )r^  r    r    r!   r€  H  r�  c                 C   sŠ   t j d¡ tjjt jjdddd�f| Ž}t ¡ \}}| 	dd¡rN| 
d¡ n
| d¡ | 	d	d
¡sttjd tjd< |j||ƒf|Ž d S )Né©  rX  r¢   )rˆ  rå   )ZmeanÚsigmare  ÚvertTrã   Úpatch_artistFr  úboxplot.boxprops.linewidth)r]   r^   r_   r�   ZcbookZboxplot_statsZ	lognormalr#   r   Úgetr  rL  r«   Zbxp)Ústats_kwargsÚtransform_statsÚ
bxp_kwargsZlogstatsr(   r   r    r    r!   Ú_bxp_test_helperG  s    ÿÿ
ÿrJ  zbxp_baseline.pngr&  )rˆ  r‘   c                   C   s
   t ƒ  d S rÖ   ©rJ  r    r    r    r!   Útest_bxp_baselineY  s    rL  zbxp_rangewhis.pngc                   C   s   t tddgd�d� d S )Nr   rÆ   ©Zwhis©rG  ©rJ  rÌ  r    r    r    r!   Útest_bxp_rangewhis`  s    rP  zbxp_percentilewhis.pngc                   C   s   t tddgd�d� d S )NrÀ   é_   rM  rN  rO  r    r    r    r!   Útest_bxp_percentilewhisg  s    rR  zbxp_with_xlabels.pngc                  C   s   dd„ } t | d� d S )Nc                 S   s$   t | tdƒƒD ]\}}||d< q| S ©NZABCDr*   ©rh  r€  ©Ústatsr^  r*   r    r    r!   rè   r  s    
z(test_bxp_with_xlabels.<locals>.transform)rH  rK  ©rè   r    r    r!   Útest_bxp_with_xlabelsn  s    rX  zbxp_horizontal.pngrÃ   )r4  rˆ  r‘   rà   c                   C   s   t tdd�d� d S )NF©rC  ©rI  rO  r    r    r    r!   Útest_bxp_horizontalz  s    r[  zbxp_with_ylabels.png)rˆ  r‘   rà   c                  C   s   dd„ } t | tdd�d� d S )Nc                 S   s$   t | tdƒƒD ]\}}||d< q| S rS  rT  rU  r    r    r!   rè   ˆ  s    
z(test_bxp_with_ylabels.<locals>.transformFrY  ©rH  rI  rO  rW  r    r    r!   Útest_bxp_with_ylabelsƒ  s    r]  zbxp_patchartist.png)r4  rˆ  r‘   c                   C   s   t tdd�d� d S )NT)rD  rZ  rO  r    r    r    r!   Útest_bxp_patchartist�  s    r^  zbxp_custompatchartist.pngrÆ   c                   C   s    t tdtdddd�d�d� d S )NTr´  r¥   ú:)ré   rê   rÔ  )rD  ÚboxpropsrZ  rO  r    r    r    r!   Útest_bxp_custompatchartist˜  s    þra  zbxp_customoutlier.pngc                   C   s   t ttdddd�d�d� d S )Nræ   r�  ræ  ©rˆ   rk   Úmfc)Z
flierpropsrZ  rO  r    r    r    r!   Útest_bxp_customoutlier¢  s    ÿrd  zbxp_withmean_custompoint.pngc                   C   s    t tdtdddd�d�d� d S )NTræ   r�  r¥   rb  )Ú	showmeansZ	meanpropsrZ  rO  r    r    r    r!   Útest_bxp_showcustommean«  s    þrf  zbxp_custombox.pngc                   C   s   t ttdddd�d�d� d S )Nr¡  r’  r‰   ©rˆ   r¤   rù   )r`  rZ  rO  r    r    r    r!   Útest_bxp_custombox¶  s    ÿrh  zbxp_custommedian.pngc                   C   s   t ttdddd�d�d� d S )Nr¡  r’  r‰   rg  )ZmedianpropsrZ  rO  r    r    r    r!   Útest_bxp_custommedian¿  s    ÿri  zbxp_customcap.pngc                   C   s   t ttdddd�d�d� d S )Nr¡  ræ  r‰   rg  )ZcappropsrZ  rO  r    r    r    r!   Útest_bxp_customcapÈ  s    ÿrj  zbxp_customwhisker.pngc                   C   s   t ttdddd�d�d� d S )Nr   rÀ  r‰   rg  )ZwhiskerpropsrZ  rO  r    r    r    r!   Útest_bxp_customwhiskerÑ  s    ÿrk  zbxp_withnotch.pngc                   C   s   t tdd�d� d S )NT)ZshownotchesrZ  rO  r    r    r    r!   Útest_bxp_shownotchesÚ  s    rl  zbxp_nocaps.pngc                   C   s   t tdd�d� d S )NF)ZshowcapsrZ  rO  r    r    r    r!   Útest_bxp_nocapsâ  s    rm  zbxp_nobox.pngc                   C   s   t tdd�d� d S )NF)ZshowboxrZ  rO  r    r    r    r!   Útest_bxp_noboxê  s    rn  zbxp_no_flier_stats.pngc                  C   s   dd„ } t | tdd�d� d S )Nc                 S   s   | D ]}|  dd ¡ q| S )NÚfliers)r!  )rV  r^  r    r    r!   rè   ÷  s    z*test_bxp_no_flier_stats.<locals>.transformF)Z
showfliersr\  rO  rW  r    r    r!   Útest_bxp_no_flier_statsò  s    ÿrp  zbxp_withmean_point.pngc                   C   s   t tddd�d� d S )NTF©re  ZmeanlinerZ  rO  r    r    r    r!   Útest_bxp_showmean   s    rr  zbxp_withmean_line.pngc                   C   s   t tddd�d� d S )NTrq  rZ  rO  r    r    r    r!   Útest_bxp_showmeanasline  s    rs  zbxp_scalarwidth.pngc                   C   s   t tdd�d� d S )NrÓ  r.  rZ  rO  r    r    r    r!   Útest_bxp_scalarwidth  s    rt  zbxp_customwidths.pngc                   C   s   t tddddgd�d� d S )NrÃ   rÓ  gÍÌÌÌÌÌä?g333333ë?r.  rZ  rO  r    r    r    r!   Útest_bxp_customwidths  s    ru  zbxp_custompositions.pngc                   C   s   t tddddgd�d� d S )Nr2   rÀ   rI  r´  r$  rZ  rO  r    r    r    r!   Útest_bxp_custompositions   s    rv  c                	   C   s,   t  t¡� ttdgd�d� W 5 Q R X d S )Nr2   r.  rZ  ©rŠ   r‹   r"  rJ  rÌ  r    r    r    r!   Útest_bxp_bad_widths(  s    rx  c                	   C   s.   t  t¡� ttddgd�d� W 5 Q R X d S )Nr3   r‰   r$  rZ  rw  r    r    r    r!   Útest_bxp_bad_positions-  s    ry  zbxp_custom_capwidths.pngc                   C   s   t tddddgd�d� d S )NrN  rÃ   rž   r¢   r-  rZ  rO  r    r    r    r!   Útest_bxp_custom_capwidths2  s    rz  zbxp_custom_capwidth.pngc                   C   s   t tdd�d� d S )Nrà  r-  rZ  rO  r    r    r    r!   Útest_bxp_custom_capwidth9  s    r{  c                	   C   s,   t  t¡� ttdgd�d� W 5 Q R X d S )Nr2   r-  rZ  rw  r    r    r    r!   Útest_bxp_bad_capwidths@  s    r|  r(  g{®Gázô?)rà   r‘   c                  C   sŒ   t j d¡ t  ddd¡} t  d| dg¡} t ¡ \}}|j| | gddd	� | d
¡ d| | gi}t ¡ \}}|jddd|d� | d
¡ d S )NrA  r³  r´  éŒ   éçÿÿÿr¹  é'  r2   ©Ú	bootstrapÚnotch©r³  r–   r,   )r�  r‚  rV  ©	r]   r^   r_   rÍ   Úhstackr#   r   r(  rj  )r,   r(   r   rV  r    r    r!   Útest_boxplotE  s    
r†  zboxplot_custom_capwidths.pngc                  C   sF   t  ddd¡} t  d| dg¡} t ¡ \}}|j| | gdddgd	� d S )
Nr³  r´  r}  r~  r¹  r2   rP  rÄ   )r‚  r+  )r]   rÍ   r…  r#   r   r(  rí  r    r    r!   Útest_boxplot_custom_capwidthsX  s    r‡  zboxplot_sym2.pngc                  C   s~   t j d¡ t  ddd¡} t  d| dg¡} t dd¡\}\}}|j| | gd	d
d� | d¡ |j| | gd	dd� | d¡ d S )NrA  r³  r´  r}  r~  r¹  r2   r3   r  ú^)r�  r>  rƒ  ræ  r„  )r,   r(   rÔ   rÛ   r    r    r!   Útest_boxplot_sym2c  s    
r‰  zboxplot_sym.pngc                  C   sJ   t  ddd¡} t  d| dg¡} t ¡ \}}|j| | gdd� | d¡ d S )	Nr³  r´  r}  r~  r¹  rÝ  ©r>  rƒ  )r]   rÍ   r…  r#   r   r(  rj  rí  r    r    r!   Útest_boxplot_syms  s
    r‹  z$boxplot_autorange_false_whiskers.pngz#boxplot_autorange_true_whiskers.pngc                  C   s€   t j d¡ t  d¡} t  d| dg¡} t ¡ \}}|j| | gddd� | d¡ t ¡ \}}|j| | gddd	d
� | d¡ d S )NrA  r}  r   r3   r  r2   r€  )r   rÀ   T)r�  r‚  Z	autorange)	r]   r^   r_   rw   r…  r#   r   r(  rj  )r,   r+  rÔ   r,  rÛ   r    r    r!   Útest_boxplot_autorange_whiskers€  s    

rŒ  c              	   C   sF   t  ddd¡}t  d|dg¡}t |¡� |  ||g¡ W 5 Q R X | S )Nr³  r´  r}  r~  r¹  )r]   rÍ   r…  rN   r
   r(  )r   Úrc_dictr,   r    r    r!   Ú_rc_test_bxp_helper“  s
    rŽ  Zboxplot_rc_parameters)rˆ  r4  rà   r‘   c                  C   sÆ   t j d¡ t d¡\} }dddgdddd	ddd
dddd
ddd
ddd
dœ}dddgddœ}ddddddddd
ddddœ}|||g}t||ƒD ]\}}t||ƒ qŒtjj	dd„ |d  
¡ D ƒksÂt‚d S )NrA  r‰   TrÀ   rQ  r  r’  r†   ræ  r¡  rÂ   r£  r6   r<  )zboxplot.notchúboxplot.whiskerszboxplot.bootstrapzboxplot.flierprops.colorúboxplot.flierprops.markerz"boxplot.flierprops.markerfacecolorz"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestylezboxplot.flierprops.linewidthzboxplot.boxprops.colorrE  zboxplot.boxprops.linestylezboxplot.capprops.colorzboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorzboxplot.medianprops.linewidthzboxplot.medianprops.linestyleFr   rÆ   )zboxplot.verticalr�  zboxplot.patchartistú-.)r�  zboxplot.showcapszboxplot.showboxzboxplot.showflierszboxplot.showmeanszboxplot.meanlinezboxplot.meanprops.colorzboxplot.meanprops.linewidthzboxplot.meanprops.linestylezboxplot.whiskerprops.colorzboxplot.whiskerprops.linewidthzboxplot.whiskerprops.linestylec                 S   s   g | ]}t |ƒ‘qS r    )r)  r  r    r    r!   rœ   Ù  s     z.test_boxplot_rc_parameters.<locals>.<listcomp>r2   )r]   r^   r_   r#   r   rh  rŽ  rN   rð   rñ   Zget_childrenr&   )r(   r   Zrc_axis0Zrc_axis1Zrc_axis2Ú	dict_listr<  Zrc_axisr    r    r!   Útest_boxplot_rc_parameters›  sZ    éýò
ÿr“  zboxplot_with_CIarray.pngc                  C   sv   t j d¡ t  ddd¡} t  d| dg¡} t ¡ \}}t  ddgd	d
gg¡}|j| | gdd dg|dd� | 	d¡ d S )NrA  r³  r´  r}  r~  r¹  rU  rï  rV  ç      @r  r¢   r2   )r�  ÚusermediansÚconf_intervalsr‚  rƒ  )
r]   r^   r_   rÍ   r…  r#   r   rü   r(  rj  )r,   r(   r   ZCIsr    r    r!   Útest_boxplot_with_CIarrayÜ  s     ÿr—  zboxplot_no_inverted_whisker.pngc               	   C   s\   t jddddddddgt jd	�} t ¡ }| | ¡ | d
¡ |jjddd� |j	 d¡ d S )Nr‰   i(#  rÈ  éX   i^  i@ ix  iÀ  rA  rã   FÚminor©Úwhich)
r]   rü   rT  r#   r  r(  r  rT   rÍ  rQ   )r,   rÔ   r    r    r!   Útest_boxplot_no_weird_whiskerî  s    ÿ

rœ  c               	   C   sŠ   t  ddd¡} t  d| dg¡} t ¡ \}}t t¡� |j| ddgd� W 5 Q R X t t¡�$ |j| | gddgddggd� W 5 Q R X d S )	Nr³  r´  r}  r~  r¹  r2   r3   )r•  ©	r]   rÍ   r…  r#   r   rŠ   r‹   r"  r(  rí  r    r    r!   Útest_boxplot_bad_mediansú  s    rž  c               	   C   sŽ   t  ddd¡} t  d| dg¡} t ¡ \}}t t¡� |j| | gddggd� W 5 Q R X t t¡�" |j| | gddgdggd� W 5 Q R X d S )	Nr³  r´  r}  r~  r¹  r2   r3   )r–  r�  rí  r    r    r!   Útest_boxplot_bad_ci  s    "rŸ  c                  C   sZ   t  d¡} t ¡ \}}| | ¡d d  ¡ dks4t‚|j| dd�d d  ¡ dksVt‚d S )Nrr   Úboxesr   r3   ©ro  )r]   rb   r#   r   r(  r…  r&   )r,   r¿  r   r    r    r!   Útest_boxplot_zorder  s    
r¢  c                  C   s¦   dt jd< dt jd< dt jd< t  ¡ \} }t d¡}d|d	< |j|d
d�}dD ]"}|| D ]}| ¡ dksZt‚qZqN|d d  ¡ dksŠt‚|d d  ¡ dks¢t‚d S )Nr^  r®  r†   r�  rˆ  zboxplot.meanprops.markerrÆ   rÈ  rp   T)re  )ZwhiskersZcapsr   Zmediansr°   ro  r   Zmeans)r#   r«   r   r]   rb   r(  Ú
get_markerr&   )r(   r   Z	test_dataZ
bxp_handleZ	bxp_linesZ	each_liner    r    r!   Útest_boxplot_marker_behavior  s    



r¤  z&boxplot_mod_artists_after_plotting.pngc                  C   sR   dddddddg} t  ¡ \}}|j| dd�}|D ]}|| D ]}| d	¡ q<q0d S )
Nrx  rÑ  r¼  g¸…ëQ¸¾?gìQ¸…ëá?gìQ¸…ëá¿r†   rŠ  r¥   )r#   r   r(  rÅ  )r,   r(   r   ÚbpÚkeyrØ  r    r    r!   Ú&test_boxplot_mod_artist_after_plotting'  s    r§  zviolinplot_vert_baseline.pngc                  C   sp   t j d¡ dd„ tdƒD ƒ} t ¡ }|j| tdƒdddd� d| i} t ¡ \}}|jdtdƒddd| d� d S )	Niºe°c                 S   s   g | ]}t jjd d�‘qS ©rÆ   rd  ©r]   r^   r`   ©r™   rq  r    r    r!   rœ   7  s     z1test_vert_violinplot_baseline.<locals>.<listcomp>rå   r   ©r%  re  ÚshowextremaÚshowmediansr�  )r%  re  r¬  r­  rV  )r]   r^   r_   r¬   r#   r  Ú
violinplotr   )rV  r   r(   r    r    r!   Útest_vert_violinplot_baseline2  s    ÿ ÿr¯  zviolinplot_vert_showmeans.pngc                  C   sB   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒdddd� d S )Niw5¢+c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   H  s     z2test_vert_violinplot_showmeans.<locals>.<listcomp>rå   r2   r   r«  ©r#   r  r]   r^   r_   r¬   r®  ©r   rV  r    r    r!   Útest_vert_violinplot_showmeansC  s    ÿr²  zviolinplot_vert_showextrema.pngc                  C   sB   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒdddd� d S )Ni‰c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   R  s     z4test_vert_violinplot_showextrema.<locals>.<listcomp>rå   r   r2   r«  r°  r±  r    r    r!   Ú test_vert_violinplot_showextremaM  s    ÿr³  zviolinplot_vert_showmedians.pngc                  C   sB   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒdddd� d S )Nib}&c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   \  s     z4test_vert_violinplot_showmedians.<locals>.<listcomp>rå   r   r2   r«  r°  r±  r    r    r!   Ú test_vert_violinplot_showmediansW  s    ÿr´  zviolinplot_vert_showall.pngc                  C   s\   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒdddddgdd	gd
dgddggd� d S )Ni–Oßc                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   f  s     z0test_vert_violinplot_showall.<locals>.<listcomp>rå   r2   rÃ   çÍÌÌÌÌÌì?rÄ   rs  rÅ   rá  r=  rà  )r%  re  r¬  r­  Ú	quantilesr°  r±  r    r    r!   Útest_vert_violinplot_showalla  s    þr·  z#violinplot_vert_custompoints_10.pngc                  C   sD   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒddddd� d S )Ni«ú$c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   q  s     z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>rå   r   rr   ©r%  re  r¬  r­  Úpointsr°  r±  r    r    r!   Ú$test_vert_violinplot_custompoints_10l  s     ÿrº  z$violinplot_vert_custompoints_200.pngc                  C   sD   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒddddd� d S )NiYqVc                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   {  s     z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>rå   r   rç  r¸  r°  r±  r    r    r!   Ú%test_vert_violinplot_custompoints_200v  s     ÿr»  zviolinplot_horiz_baseline.pngc                  C   sD   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒddddd� d S )Niÿ\dc                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   …  s     z2test_horiz_violinplot_baseline.<locals>.<listcomp>rå   Fr   ©r%  rC  re  r¬  r­  r°  r±  r    r    r!   Útest_horiz_violinplot_baseline€  s     ÿr½  z violinplot_horiz_showmedians.pngc                  C   sD   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒddddd� d S )	Niãlo/c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   �  s     z5test_horiz_violinplot_showmedians.<locals>.<listcomp>rå   Fr   r2   r¼  r°  r±  r    r    r!   Ú!test_horiz_violinplot_showmediansŠ  s     ÿr¾  zviolinplot_horiz_showmeans.pngc                  C   sD   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒddddd� d S )	Ni&õc                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   ™  s     z3test_horiz_violinplot_showmeans.<locals>.<listcomp>rå   Fr2   r   r¼  r°  r±  r    r    r!   Útest_horiz_violinplot_showmeans”  s     ÿr¿  z violinplot_horiz_showextrema.pngc                  C   sD   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒddddd� d S )	NiŠe×!c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   £  s     z5test_horiz_violinplot_showextrema.<locals>.<listcomp>rå   Fr   r2   r¼  r°  r±  r    r    r!   Ú!test_horiz_violinplot_showextremaž  s     ÿrÀ  zviolinplot_horiz_showall.pngc                  C   s^   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒddddddgd	d
gddgddggd� d S )Ni"Ûîc                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   ­  s     z1test_horiz_violinplot_showall.<locals>.<listcomp>rå   Fr2   rÃ   rµ  rÄ   rs  rÅ   rá  r=  rà  )r%  rC  re  r¬  r­  r¶  r°  r±  r    r    r!   Útest_horiz_violinplot_showall¨  s     þrÁ  z$violinplot_horiz_custompoints_10.pngc               	   C   sF   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒdddddd� d S )	Ni0c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   ¸  s     z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>rå   Fr   rr   ©r%  rC  re  r¬  r­  r¹  r°  r±  r    r    r!   Ú%test_horiz_violinplot_custompoints_10³  s      ÿrÃ  z%violinplot_horiz_custompoints_200.pngc               	   C   sF   t  ¡ } tj d¡ dd„ tdƒD ƒ}| j|tdƒdddddd� d S )	Ni<Ö9!c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   Â  s     z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>rå   Fr   rç  rÂ  r°  r±  r    r    r!   Ú&test_horiz_violinplot_custompoints_200½  s      ÿrÄ  c               	   C   sR   t  ¡ } tj d¡ dd„ tdƒD ƒ}t t¡� | j	|tdƒd� W 5 Q R X d S )NiÈ@ 3c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   Ë  s     z1test_violinplot_bad_positions.<locals>.<listcomp>rå   rÀ   r$  ©
r#   r  r]   r^   r_   r¬   rŠ   r‹   r"  r®  r±  r    r    r!   Útest_violinplot_bad_positionsÇ  s
    rÆ  c               	   C   sZ   t  ¡ } tj d¡ dd„ tdƒD ƒ}t t¡�  | j	|tdƒdddgd� W 5 Q R X d S )	NiA#²c                 S   s   g | ]}t jjd d�‘qS r¨  r©  rª  r    r    r!   rœ   Ô  s     z.test_violinplot_bad_widths.<locals>.<listcomp>rå   r2   r3   r‰   )r%  r,  rÅ  r±  r    r    r!   Útest_violinplot_bad_widthsÐ  s
    rÇ  c               	   C   sX   t  ¡ } tj d¡ tjjdd�g}t t¡�  | j	|ddgddggd� W 5 Q R X d S )	Ni¡Öl rÆ   rd  rÃ   rÄ   rž   rá  ©r¶  ©
r#   r  r]   r^   r_   r`   rŠ   r‹   r"  r®  r±  r    r    r!   Útest_violinplot_bad_quantilesÙ  s
    rÊ  c               	   C   s„   t  ¡ } tj d¡ tjjdd�g}t t¡� | j	|ddddggd� W 5 Q R X t t¡� | j	|d	ddd
ggd� W 5 Q R X d S )NiqÅð4rÆ   rd  rÃ   rÄ   rÅ   çÍÌÌÌÌÌð?rÈ  gš™™™™™©¿rW  rÉ  r±  r    r    r!   Ú$test_violinplot_outofrange_quantilesä  s    "rÌ  c                 C   sZ   t j d¡ t jjdd�g}|  ¡ }|j|dddgd� | ¡ }|j|dddggd� d S )Né+•rÆ   rd  rÃ   rÅ   rµ  rÈ  )r]   r^   r_   r`   r   r®  )r   r   rV  r   r    r    r!   Ú%test_violinplot_single_list_quantilesó  s    rÎ  c              	   C   s”   t j d¡ |jt jjdd�ddddddd	gd
�}|jt jjdd�tdƒd
�}| t jjdd�¡}|  ¡  |||g¡ | ¡  |j|j|jg¡ d S )NrÍ  r´  rd  r½  rÆ  rI  rÀ   rå   r‰   rF  Z	ABCDEFGHIrD  )	r]   r^   r_   rU  r`   r€  r   r®  r‚  )r   r   r)  Ús1Ús2Zs3r    r    r!   Útest_violinplot_pandas_series  s    &rÑ  c                  C   sz   t  ¡ \} }| dd¡ | ¡ }tj d¡ tj ddd¡}tj ddd¡}|j||gddgdd	� | ¡ }t	||ƒ d S )
Nr   rå   rr   r‰   rÅ  r2   r3   F)r%  Zmanage_ticks)
r#   r   ri  r   r]   r^   r_   r`   r(  r   )rq  r   Zold_xlimr8  r   Znew_xlimr    r    r!   Útest_manage_xticks  s    rÒ  c                  C   s�   t  ¡ \} }|jtj d¡dgd� |jtj d¡dgd� | j ¡  | ¡ dksVt	‚t
| ¡ ƒddgksnt	‚dd„ | ¡ D ƒdd	gksŒt	‚d S )
NrÆ   r‰   r$  rÀ   )r÷  r.  c                 S   s   g | ]}|  ¡ ‘qS r    ©r0  r  r    r    r!   rœ      s     z+test_boxplot_not_single.<locals>.<listcomp>rË   Ú5)r#   r   r(  r]   r^   r“   r7  r×   r   r&   r€  Ú
get_xticksr�  r'   r    r    r!   Útest_boxplot_not_single  s    
rÖ  c                  C   s@   t  ddgddg¡ tj ddi¡ t ¡ } t j| ddd� d S )Nr   r2   z	font.sizeéP   Úraw)r†  Úformat)r#   r}   rN   r«   ÚupdateÚioÚBytesIOÚsavefig©r’  r    r    r!   Útest_tick_space_size_0#  s    rß  Zerrorbar_basicZerrorbar_mixedc            
   	   C   s¬  t jdddt jd�} t  |  ¡}ddt  | ¡  }d| }t ¡ }| ¡ }|j| |ddd� | 	d¡ tj
d	d	d
d�\}}|d }|j| ||dd� | 	d¡ |jdd� |d }|j| ||ddd� | 	d¡ |d }|j| ||d	| g|d	| gdd� | 	d¡ |d }| d¡ t  d|| ¡}|| }|j| ||d	| g|ddd	d� | 	d¡ | dd¡ | d¡ | |d œ}	t ¡ }| ¡ }|jd!d"dd|	d#� | 	d¡ d S )$NrÃ   rå   rž   rA  rÄ   r=  r¨  z&Simplest errorbars, 0.2 in x, 0.4 in yr3   T)rk  rl  rC  rp  r†   ©rª  r¾   zVert. symmetric©Znbinsrw  )r©  r¾   rÔ  zHor. symmetric w/ alphar?  z--o©rª  r©  r¾   zH, V asymmetricrÂ  rã   rP  ræ  )rª  r©  r¾   ÚecolorZcapthickzMixed sym., log yrŽ  zVariable errorbarsrß   r,   r-   ©r©  rª  rV  )r]   rb   Z
longdoubler:  r  r#   r­   r	  r¦  r/   r   Úlocator_paramsr  Úmaximumrj  Zsuptitle)
r,   r-   rª  r©  r(   r   r7  ZylowerZ
yerr_lowerrV  r    r    r!   Útest_errorbar,  sH    


$

  ÿ


rç  c                  C   s¸   t  ¡ \} }t d¡}d| }|j||d d�\}}}|j|d| d d�\}}}| |d| ¡\}t | ¡ ¡t d¡ks|t	‚t | ¡ ¡t d¡ks˜t	‚t | ¡ ¡t d¡ks´t	‚d S )Nrr   r3   rF  rå   r  ÚC1ÚC2)
r#   r   r]   rb   r¦  r}   r#  Úto_rgbaÚ	get_colorr&   )rÃ  r   r,   r-   rº  rq  r»  Zln1r    r    r!   Útest_errorbar_colorcyclec  s    
rì  c              
      sŠ   t  ddd¡‰ ‡ fdd„tdƒD ƒ}|  ¡ }| ¡ }t|dddd	gƒD ]>\}}|jˆ ||d
 dddd� |jˆ ||d
 dd|dd� qFd S )NrÃ   rå   rž   c                    s   g | ]}t  ˆ  | ¡‘qS r    )r]   r:  )r™   r÷  ©r,   r    r!   rœ   u  s     z.test_errorbar_cycle_ecolor.<locals>.<listcomp>r  rè  ré  r  rÓ  r   r†   r4  )rª  rˆ   rk   rã  )rª  rˆ   rk   r¤   rã  )r]   rb   r¬   r   rh  r¦  )r   r   r-   ZaxtZaxrÚyir¤   r    rí  r!   Útest_errorbar_cycle_ecolorr  s     ÿ  ÿrï  c               	   C   sÖ   t  ¡ } |  ¡ }t ddd¡}t | ¡}ddt |¡  }t |d| f¡j}d| }t	 
t¡� |j|||dd� W 5 Q R X t	 
t¡� |j|||dd� W 5 Q R X t	 
t¡� |j||||dd	� W 5 Q R X d S )
NrÃ   rå   rž   rÄ   r3   r†   rà  )r©  r¾   râ  )r#   r­   r	  r]   rb   r:  r  Úvstackr˜  rŠ   r‹   r"  r¦  )r(   r   r,   r-   Zyerr1rª  r©  r    r    r!   Útest_errorbar_shape�  s    rñ  Zerrorbar_limitsc                  C   s`  t  ddd¡} t  |  ¡}d}d}d}t ¡ \}}|j| ||||dd� t  | ¡}d|d	d
dg< |j| |d ||||dd� t  | ¡}d|dddg< |j| |d ||||dd� |j| |d dd|||||dd�
 d}t  | d¡}d|ddg< |}	|}
t  | ¡}t  | ¡}d|dg< d|dg< |j| |d dd|||	|
||ddddd� | d ¡ | 	d!¡ d S )"Nrž   r.  rÃ   rÄ   Údottedr£   )r©  rª  rÔ  r¤   Tr2   rÀ   r½  r¥   )r©  rª  ÚuplimsrÔ  r¤   r3   rå   rÆ  r¢   r‘  )r©  rª  ÚlolimsrÔ  r¤   r�   r†   Úmagenta)rk   rÕ  r©  rª  rô  ró  rÔ  r¤   rÅ   r‰   rI  çÍÌÌÌÌÌ @ræ   r   Úcyan)rk   rÕ  r©  rª  ÚxlolimsÚxuplimsró  rô  rÔ  rì  Úcapsizer¤   )r   r.  zErrorbar upper and lower limits)
r]   rb   r:  r#   r   r¦  Z
zeros_likeZ	full_likeri  r/   )r,   r-   r©  rª  rÔ  r(   r   ró  rô  rø  rù  r    r    r!   Útest_errorbar_limits“  sX    
ÿ
ÿ   ÿ



     ý
rû  c                  C   sd   t  d¡} t  d¡}tj| |dddd�\}}}|d ks:t‚|D ] }t  | ¡ t d¡k¡s>t‚q>d S )NrÀ   r2   ræ   )r©  rª  r¾   r  )	r]   rb   r#   r¦  r&   rr  rë  r#  rê  )r,   r-   Úplotlinerq  ZbarlinesZerrbarr    r    r!   Útest_errorbar_nonefmtÂ  s    

rý  c                  C   s`   t  d¡} t  d¡}tj| |ddddddddd	d
d�\}}}| ¡ dksLt‚| ¡ dks\t‚d S )NrÀ   r2   ÚNoner^  rY   z	steps-midÚroundr�  r�  Zbevel)
r©  rª  rÔ  rk   rè  r”  Zdash_capstyleZdash_joinstyler“  r’  )r]   rb   r#   r¦  Zget_fillstyler&   Zget_drawstyle)r,   r-   rü  rq  r    r    r!   Ú"test_errorbar_line_specific_kwargsÍ  s    

 úr   c              	   C   s$  |  ¡ }|jdddgdddgdddd	d
� |jdddgdddgdddddd� |jdddgdddgdddddd� | dd¡ tdddgdddgd	ddgdddgd�}tjd|d� |   ¡ }|jdddgdddgdd� |jdddgdddgddd� |jdddgdddgddd � | dd¡ d S )!Nr3   rå   rr   r   r2   rž   r¡  r^  r<  )r,   r-   rª  rÔ  rk   rc  r‰   z	tab:greenr_  r-   )r,   r-   rª  r¤   rÔ  rk   rc  rÀ   rI  ztab:bluer‘  r†   r6   )r,   r-   rª  r¾   rÔ  rk   rc  rD  r’  ræ  r£  )rÔ  rk   rc  r¤   r  )Z
prop_cycle©r,   r-   rª  )r,   r-   rª  r¤   )r,   r-   rª  r¾   )r   r¦  ri  r	   r#   Úrc)r   r   r   Z_cycler    r    r!   Útest_errorbar_with_prop_cycleÞ  s6      ÿ  ÿ  ÿ ÿr  c               	   C   sæ   t  ddd¡} | d|   }|d }t ¡  ¡ }tjtdd�� |j| ||dd� W 5 Q R X tjtdd�� |j| ||d	d� W 5 Q R X tjtd
d�� |j| ||ddgd� W 5 Q R X tjtdd�� |j| ||dd� W 5 Q R X d S )Nr   r2   rÇ   rI  znot a tuple of two integersr  )r2   r3   r‰   )Ú
errorevery)ró  r‰   znot a valid NumPy fancy indexFTznot a recognized valueZfoobar)	r]   rÍ   r#   r­   r   rŠ   r‹   r"  r¦  )r,   r-   rª  r   r    r    r!   Útest_errorbar_every_invalidó  s     r  c               	   C   s  t  ¡  ¡ } tjtdd��, | jdgdgdgdggdgdggd� W 5 Q R X tjtdd��" | jdgdgdgdggd� W 5 Q R X tjtdd��" | jdgdgdgdggd	� W 5 Q R X tjtdd��6 t d
¡}dd„ |D ƒ}| j||t	j
dd�d	� W 5 Q R X d S )Nz''xerr' must not contain negative valuesr  r   rI  r2   )r,   r-   r©  rª  )r,   r-   r©  z''yerr' must not contain negative valuesr  rÀ   c                 S   s"   g | ]}t   d d|d d ¡‘qS )r3  r½  r3   r2   ©r•  r
  r    r    r!   rœ     s     z/test_xerr_yerr_not_negative.<locals>.<listcomp>r   r|  )r#   r­   r   rŠ   r‹   r"  r¦  r]   rb   r•  r  )r   r,   r-   r    r    r!   Útest_xerr_yerr_not_negative  s,    ÿ0ÿ&ÿ&ÿ

þr  c           	   
   C   s>  t  ddd¡}|d|  }|d }| ¡ }|  ¡ }tdddddgƒD ]p\}}|d7 }|j||||d	fd	|d
� |j|||dd� |j||d d	… ||d d	… ||d d	… d	|dd� qD|j||d |dd	dd� |j|dd d	… |dd d	… d ddd� |j||d |d	dd� |j||d |tdd dƒtdd dƒd	ddd� |j|dd d… |dd d… d dddd� |j|dd d… |dd d… d |dd d… d	ddd� |j||d |dddgd dddgd d	ddd� |j|dd d… |dd d… d dddd� |j|dd d… |dd d… d |dd d… d	ddd� d S )Nr   r2   rÇ   rI  Zrgbkr3   r´  rÛ  rå   )r  rú  r6   rö  )r6   ro  ræ   )rú  r6   r¾   rÃ   )r2   rå   r†   )rÂ  rú  r¾   r¡  )rú  r¾   rÄ   r‰   r  )r  rÂ  rú  r6   r¾   FTrÀ   rè  )r]   rÍ   r   rh  r¦  r}   rÖ  )	r   r   r,   r-   rª  rf   re   r¤   Úshiftr    r    r!   Útest_errorbar_every  sX     ÿ(  ÿ*
  þ,,  ÿ  þ,,  ÿr	  Ú
elinewidthc                 C   s(   t jdddgdddgdddg| d� d S )Nr2   r3   r‰   )rª  r
  )r#   r¦  )r
  r    r    r!   Útest_errorbar_linewidth_typeE  s    r  c                 C   sŒ   |   ¡ }tdƒ}t ddtjtjdg¡}t ddtjtjdg¡}| |||¡ |  ¡ }| ddgddgddg¡ |jdgdgdgdd	� d S )
NrÀ   r2   r3   r‰   rå   rI  r   r  ©r¾   )r”   r¬   r]   rü   r
  r¦  )r   r   r   ÚxsÚysÚesr    r    r!   Útest_errorbar_nanL  s    r  Zhist_stacked_stepfilledc                  C   sj   t  ddd¡} t  ddd¡}t ¡ \}}|j| |fddd	� d
| |fi}t ¡ \}}|jd
dd|d� d S )Nr2   r‰   rÅ  r   rr   rO  r[  Trm  r,   )r]  rn  rV  ©r]   rÍ   r#   r   rX  )Úd1Úd2r(   r   rV  r    r    r!   Útest_hist_stacked_stepfilledX  s    r  Zhist_offsetc                  C   sH   t  ddd¡} t  ddd¡}t ¡ \}}|j| dd� |j|d	d� d S )
Nr   rr   rO  r2   r‰   rÅ  rÀ   ro  rÇ   r  ©r  r  r(   r   r    r    r!   Útest_hist_offsetf  s
    r  zhist_step.pngc                  C   sD   t  ddd¡} t ¡ \}}|j| dd� | dd¡ | dd	¡ d S )
Nr2   r‰   rÅ  rZ  r\  r   rr   rp   rÀ   )r]   rÍ   r#   r   rX  rj  ri  ©r  r(   r   r    r    r!   Útest_hist_stepp  s
    r  zhist_step_horiz.pngc                  C   s@   t  ddd¡} t  ddd¡}t ¡ \}}|j| |fddd	� d S )
Nr   rr   rO  r2   r‰   rÅ  rZ  rJ   )r]  rL   r  r  r    r    r!   Útest_hist_step_horizz  s    r  Zhist_stacked_weightsc                  C   sb   t  ddd¡} t  ddd¡}t  ddd¡}t  d	d
d¡}t ¡ \}}|j| |f||fddd� d S )Nr   rr   rO  r2   r‰   rÅ  rP  r”  r  rÂ   r[  T)Úweightsr]  rn  r  )r  r  Zw1Zw2r(   r   r    r    r!   Útest_hist_stacked_weightedƒ  s    r  Úuse_line_collectionzw/ line collectionzw/o line collectionzstem.pngc              
   C   s†   t  ddt j d¡}t ¡ \}}| rB|j|t  |¡ddddd� n8tjt	d	d
��$ |j|t  |¡dddddd� W 5 Q R X | 
¡  d S )NrÃ   r3   rÆ   úC2-.zk+úC1-.ú )ÚlinefmtÚ	markerfmtÚbasefmtr*   Ú
deprecatedr  F)r   r!  r"  r*   r  )r]   rÍ   rÏ   r#   r   Ústemr  rŠ   r*  r   rB   ©r  r,   r(   r   r    r    r!   Ú	test_stemŽ  s$       ÿ   þr&  c                  C   sò   dd„ } t  ¡ \}}dddg}dddg}| | |¡d	dd
g|fd� | | ||¡||fd� | |j||dd�||fd� | | ||d¡||fd� | |j||ddd�||fd� | |j|dd�d	dd
g|fd� | | |d¡d	dd
g|fd� dS )z5Test that stem() correctly identifies x and y values.c                 S   s8   t t| j ¡ ƒ\}}||d ks$t‚||d ks4t‚d S ©Nr   r2   )Úmapr€  Ú
markerliner¦  r&   )Ústem_containerÚexpectedr,   r-   r    r    r!   Ú_assert_equal¤  s    z%test_stem_args.<locals>._assert_equalr2   r‰   rÀ   r½  rÆ  r´  r   r3   )r+  rú   ©r   zb--)r   r"  N©r#   r   r$  ©r,  r(   r   r,   r-   r    r    r!   Útest_stem_args¢  s    

 r0  c                  C   sš  ddd„} t  ¡ \}}dddg}ddd	g}| | ||¡d
dd� | |j||dd�d
dd� | |j||dd�ddd� | | ||d¡dddd� | | ||d¡dddd� | |j||ddd�dddd� | |j||ddd�dddd� | |j||ddd�dddd� | |j||ddd�dddd� | |j||ddd�dddd� | |j||dd�dddd� | |j||ddd�dddd� | |j||ddd�dddd� dS )zATest that stem(..., markerfmt=...) produces the intended markers.Nc                 S   sl   |dk	rt  | j ¡ |¡st‚|dk	r<t  | j ¡ |¡s<t‚|dk	rV| j ¡ |ksVt‚| j ¡ dksht‚dS )zl
        Check that the given StemContainer has the properties listed as
        keyword-arguments.
        Nrþ  )r#  rÿ  Z	stemlinesrë  r&   r)  r£  Úget_linestyle)r*  Ú	linecolorÚmarkercolorrk   r    r    r!   r,  º  s    þþz*test_stem_markerfmt.<locals>._assert_equalr2   r‰   rÀ   r½  rÆ  r´  r  r†   )r3  rk   r,   )r!  ré  r£  )r2  r3  rk   ræ  Zgxr  rþ  r°   r-  )r   r!  )NNNr.  r/  r    r    r!   Útest_stem_markerfmt¸  sŠ      ÿ


  þ  þ  þ  þ  þ  þ  þ  þ  þ  þr4  c                  C   s@   t  dd¡\} }tj d¡tj d¡g}ddg}| ||¡ d S )Nr2   z2013-9-28 11:00:00z2013-9-28 12:00:00rÆ   rç  )r#   r   ÚdateutilÚparserÚparser$  )r(   r   r  r  r    r    r!   Útest_stem_datesù  s    

ÿr8  zstem_orientation.pngc              
   C   s~   t  ddt j d¡}t ¡ \}}| rB|j|t  |¡ddddd� n8tjt	d	d
��$ |j|t  |¡dddddd� W 5 Q R X d S )NrÃ   r3   rO  r  Zkxr  rJ   )r   r!  r"  rL   r#  r  F)r   r!  r"  r  rL   )
r]   rÍ   rÏ   r#   r   r$  r  rŠ   r*  r   r%  r    r    r!   Útest_stem_orientation  s"      þ  ýr9  Zhist_stacked_stepfilled_alphac                  C   sB   t  ddd¡} t  ddd¡}t ¡ \}}|j| |fddd	d
� d S )Nr2   r‰   rÅ  r   rr   rO  r[  Trž   )r]  rn  rÔ  r  r  r    r    r!   Ú"test_hist_stacked_stepfilled_alpha  s    r:  Zhist_stacked_stepc                  C   s@   t  ddd¡} t  ddd¡}t ¡ \}}|j| |fddd	� d S )
Nr2   r‰   rÅ  r   rr   rO  rZ  Trm  r  r  r    r    r!   Útest_hist_stacked_step  s    r;  Zhist_stacked_normedc                  C   s@   t  ddd¡} t  ddd¡}t ¡ \}}|j| |fddd� d S )	Nr2   r‰   rÅ  r   rr   rO  T)rn  rw  r  r  r    r    r!   Útest_hist_stacked_density&  s    r<  zhist_step_bottom.pngc                  C   s4   t  ddd¡} t ¡ \}}|j| t  d¡dd� d S )Nr2   r‰   rÅ  rr   r[  )rH   r]  )r]   rÍ   r#   r   rX  rb   r  r    r    r!   Útest_hist_step_bottom/  s    r=  c                  C   s˜   ddddg} ddddddg}t j|| dd�\}}\}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g}t| ¡ |ƒ d S )Nr   r2   r3   r‰   r[  ©rñ  r]  ©r#   rX  r   Úget_xy©rñ  rV  rq  ÚpolygonrX  r    r    r!   Útest_hist_stepfilled_geometry7  s    þ*     ÿrC  c               	   C   sz   ddddg} ddddddg}t j|| dd�\}}\}ddgddgddgddgddgddgddgddgg}t| ¡ |ƒ d S )Nr   r2   r3   r‰   rZ  r>  r?  rA  r    r    r!   Útest_hist_step_geometryB  s    þ4rD  c                  C   s    ddddg} ddddddg}t j|| dddgdd�\}}\}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g}t| ¡ |ƒ d S )
Nr   r2   r3   r‰   r�   r[  ©rñ  rH   r]  rÀ   r÷  r?  rA  r    r    r!   Ú$test_hist_stepfilled_bottom_geometryL  s     ý*     ÿrF  c               	   C   s‚   ddddg} ddddddg}t j|| dddgdd�\}}\}ddgddgddgddgddgdd	gdd	gddgg}t| ¡ |ƒ d S )
Nr   r2   r3   r‰   r�   rZ  rE  rÀ   r÷  r?  rA  r    r    r!   Útest_hist_step_bottom_geometryX  s    ý4rG  c                  C   s*  ddddg} ddddddg}dddg}t j||g| ddd�\}}}t|ƒdksRt‚|d \}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g}t| ¡ |ƒ |d \}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g}t| ¡ |ƒ d S )	Nr   r2   r3   r‰   Tr[  ©rñ  rn  r]  rå   ©r#   rX  r  r&   r   r@  ©rñ  Zdata_1Zdata_2rq  rð   rB  rX  r    r    r!   Ú%test_hist_stacked_stepfilled_geometryc  s:    

ý
*     ÿ
*     ÿrK  c               	   C   sî   ddddg} ddddddg}dddg}t j||g| ddd�\}}}t|ƒdksRt‚|d \}ddgddgddgddgddgddgddgddgg}t| ¡ |ƒ |d \}ddgddgddgddgddgddgddgddgg}t| ¡ |ƒ d S )	Nr   r2   r3   r‰   TrZ  rH  rå   rI  rJ  r    r    r!   Útest_hist_stacked_step_geometryy  s    

ý
4
4rL  c                  C   s2  ddddg} ddddddg}dddg}t j||g| ddddgdd�\}}}t|ƒdksZt‚|d \}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g}t| ¡ |ƒ |d \}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g}t| ¡ |ƒ d S )Nr   r2   r3   r‰   Tr�   r[  ©rñ  rn  rH   r]  rÀ   r÷  rå   rI  r”  rI  rJ  r    r    r!   Ú,test_hist_stacked_stepfilled_bottom_geometry�  s<    

ü
*     ÿ
*     ÿrN  c               	   C   sö   ddddg} ddddddg}dddg}t j||g| ddddgdd�\}}}t|ƒdksZt‚|d \}ddgddgddgdd	gdd	gdd
gdd
gddgg}t| ¡ |ƒ |d \}ddgddgddgddgddgddgddgdd
gg}t| ¡ |ƒ d S )Nr   r2   r3   r‰   Tr�   rZ  rM  rÀ   r÷  rå   rI  r”  rI  rJ  r    r    r!   Ú&test_hist_stacked_step_bottom_geometry¤  s     

ü
4
4rO  Zhist_stacked_barc                  C   sâ   dddddddddddd	gdd
ddddgdddddddgddddddddddddgddddddddddddddgddddddddddddgg} ddddddg}dd d!d"d#g}t  ¡ \}}|j| dd$d%||d&� |jd'd(d)d*� d S )+NrÆ   rç  é@  iÂ  r×  rÅ  r@  é6  r?  é   rO  rD  i¤  r4  r}  rÈ  é´   r‡  rê  rÀ   rr   i+  r–   ré  )gXÛ÷xnâ?r¢   rN  )rN  r¢   g `¢pÖ?)rN  r¢   g˜©­ÇŸõä?)rN  g¤Ë¢³`å?r¢   )g¢CÒ?rN  r¢   )g æõKÍêå?rN  r¢   r¥   r=  z yellowrõ  r4  r_  Úmid)rñ  r]  rñ  r¤   r*   zupper right)r¢   r¢   r2   )r:   Zbbox_to_anchorrl  )r#   r   rX  rB   )r�  ru  Úlabelsr(   r   r    r    r!   Útest_hist_stacked_bar¹  s&     ü  þÿrV  c                  C   sD   t  ddg¡} tjddgddggdd| d� |  ¡ ddgks@t‚d S )Nrr   rÅ  r   r2   r3   r_  )r]  rH   )r]   rü   r#   rX  Útolistr&   rÞ  r    r    r!   Ú%test_hist_barstacked_bottom_unchangedË  s    rX  c                  C   s,   t  ¡ \} }|jg tdƒtdƒgdd� d S )Nrr   rZ  r\  )r#   r   rX  r¬   r'   r    r    r!   Útest_hist_emptydataÑ  s    rY  c                  C   sî   t  ¡ \} }|jddgdd�\}}}|d  ¡ dks8t‚|jddgdgd�\}}}|d  ¡ dksft‚|jddgd d�\}}}|d  ¡ dks’t‚|jddgdd�\}}}|d  ¡ dks¾t‚|jddgdd�\}}}|d  ¡ dksêt‚d S )Nr   r2   rÃ  rð  rM  Z00)r#   r   rX  rR   r&   )r(   r   rq  rQ  r    r    r!   Útest_hist_labelsÖ  s    rZ  Ztransparent_markersc                  C   s:   t j d¡ t j d¡} t ¡ \}}|j| dddd� d S )Nr   rO  rµ  ræ   rÆ   )rc  rq   ©r]   r^   r_   r#   r   r}   rx  r    r    r!   Útest_transparent_markerså  s    r\  Zrgba_markersc               	   C   sÜ   t jdd�\} }ddg}ddg}d dg}tdd	d
�}t|ƒD ]~\}}t|ƒD ]l\}}	t|ƒD ]Z\}
}|| j|d |
d df||	|dœ|—Ž || j|d |
d df|	|dœ|—Ž q\qLq<|D ]}| ddddg¡ qÀd S )Nr3   rä  rþ  )r2   r   r   rž   r÷   )r   r   r2   rž   rÄ   rÆ   rÅ  )rÕ  rë  r2   r†   )rc  rì  rÔ  r‰   r,   )rì  rÔ  rp   rå   r   rÀ   )r#   r   rÌ  r5  r}   r<  )r(   r7  ZrcolorsZbcolorsZalphasÚkwrõ   rÔ  r;  Zrcolorr<  Zbcolorr   r    r    r!   Útest_rgba_markersî  s     ÿÿ.r^  Zmollweide_gridc                  C   s    t  ¡ } | jdd�}| ¡  d S )NÚ	mollweiderÈ  )r#   r­   r”   rÍ  r'   r    r    r!   Útest_mollweide_gridÿ  s    r`  c                  C   sœ   t  ¡ } | jdd�}t tj tjd¡}t tj d tjd d¡}t ||¡\}}t | ¡ | ¡ f¡j	}|j
 |¡}|j
 ¡  |¡}tj ||d¡ d S )Nr_  rÈ  r¬  rÂ   rS  r‰   )r#   r­   r”   r]   rÍ   rÏ   rË  rð  r—  r˜  ÚtransProjectionrè   Úinvertedr¨   r   )r(   r   ZlonZlatÚllrX  Zll2r    r    r!   Ú&test_mollweide_forward_inverse_closure  s    rd  c                  C   sz   t  ¡ } | jdd�}t ddd¡}t ||¡\}}t | ¡ | ¡ f¡j}|j	 
¡  |¡}|j	 |¡}tj ||d¡ d S )Nr_  rÈ  r   r2   éô  r‰   )r#   r­   r”   r]   rÍ   rË  rð  r—  r˜  ra  rb  rè   r¨   r   )r(   r   r,   r-   rX  rc  Úxy2r    r    r!   Ú&test_mollweide_inverse_forward_closure  s    rg  Ú
test_alphac               	   C   sò   t j d¡ t j d¡} t ¡ \}}|j| ddddgddddgddd� |j| d	 dddddgddddgdddd
� |j| d ddddgdddgdddd
� |j| d dddddgddddgddd� |j| d dddddgdddgddd� d S )Nr   rO  z-Dr2   rž   rÅ  rr   )r¤   rc  rq   rù   r3   )r¤   rc  rq   rù   rÔ  rå   rI  rÆ  r[  rx  r    r    r!   rh  3  s2     ÿ  þ þ  ÿ ÿÚ	eventplotc                  C   sr  t j d¡ t j ddg¡ ¡ } t j ddg¡ ¡ }| | }t|ƒ}dddggt| ƒ }dddgdddgdddgdddgdddgdddgg}|| }dt  dt| ƒ¡d	  }d
dddddg}| ¡ | }	d	gt| ƒ }
ddddddg}|
| }t ¡ }| ¡ }|j	|||	|d�}t|ƒ}||k�s&t
‚|||	|dœ}t ¡ }| ¡ }|j	dddd|d�}t|ƒ}||k�snt
‚d S )Nr   rh   rÅ  rI  r2   rá  rW  rb  g…ëQ¸Õ?iñÿÿÿrR  r�   rr   rÀ   r3   r‰   )ru  ÚlineoffsetsÚlinelengths)r²   r6   Úlorc  r²   r6   rl  rc  )ru  rj  rk  rV  )r]   r^   r_   rW  r  rb   r#   r­   r”   ri  r&   )r·  Údata2rV  Znum_datasetsZcolors1Zcolors2ru  Zlineoffsets1Zlineoffsets2rj  Zlinelengths1Zlinelengths2rk  r(   ÚaxobjZcollsZnum_collectionsr    r    r!   Útest_eventplotQ  sH    û
ÿ
 ÿro  ztest_eventplot_defaults.pngc                  C   sZ   t j d¡ t j ddg¡ ¡ } t j ddg¡ ¡ }| | }t ¡ }| ¡ }| |¡ dS )zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   rh   rÅ  rI  N)r]   r^   r_   rW  r#   r­   r”   ri  )r·  rm  rV  r(   rn  r    r    r!   Útest_eventplot_defaults}  s    rp  ru  )rÞ  )z
tab:orangeztab:pinkztab:cyanZbLacK)r‘  )r   r2   r   N)r2   r   r2   rž   c                 C   s¤   dgdgdgdgg}dd„ | D ƒ}t |ƒdkr6|d }t t |¡t |ƒdf¡}t ¡ \}}t | ƒdkrp| d } |j|| d�}t||ƒD ]\}}t	| 
¡ |ƒ qˆd	S )
zBTest the *colors* parameter of eventplot. Inspired by issue #8193.r   r2   r3   r‰   c                 S   s   g | ]}|d k	r|nd‘qS )Nr  r    ©r™   r6   r    r    r!   rœ   ˜  s     z)test_eventplot_colors.<locals>.<listcomp>rå   ©ru  N)r  r]   Zbroadcast_tor#  Zto_rgba_arrayr#   r   ri  rh  r   rë  )ru  rV  r+  r(   r   r  rù  r¤   r    r    r!   Útest_eventplot_colorsŽ  s    rs  z!test_eventplot_problem_kwargs.pngc              	   C   s¢   t j d¡ t j dg¡ ¡ }t j dg¡ ¡ }||g}t ¡ }| ¡ }|j|ddgddgdd	gd	dgd
dgddgd� t| ƒdksˆt	‚t
dd„ | D ƒƒsžt	‚dS )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)
    r   rÅ  rr   r£  r’  r6   rÀ  r3   r2   r‡   ZdashedÚdashdotrò  )ru  r¤   r'  rë   rÐ  rˆ   r‰   c                 s   s   | ]}t |jtƒV  qd S rÖ   )Ú
issubclassÚcategoryr   )r™   Zwir    r    r!   rq  Á  s   ÿz0test_eventplot_problem_kwargs.<locals>.<genexpr>N)r]   r^   r_   rW  r#   r­   r”   ri  r  r&   rr  )Zrecwarnr·  rm  rV  r(   rn  r    r    r!   Útest_eventplot_problem_kwargs¨  s$    úÿrw  c                  C   s.   t  dd¡\} }|jg gdgd� t  ¡  d S )Nr2   )rN  rN  rN  rN  rr  ©r#   r   ri  r×   r'   r    r    r!   Útest_empty_eventplotÅ  s    ry  rV  rL   ÚverticalrJ   c                 C   s>   |dkri nd|i}t  dd¡\}}|j| f|Ž t  ¡  dS )z#Introduced when fixing issue #6412.NrL   r2   rx  )rV  rL   Úoptsr(   r   r    r    r!   Útest_eventplot_orientationË  s    r|  c                 C   s‚   t   ddd¡t   ddd¡t   ddd¡g}t   ddd¡t   ddd¡g}| ¡ }|j|dd� |j|dd� |  ¡ }| ||g¡ d S )	Nr3  r2   r3   r‰   rÇ   rn  r   )rj  )r•  r   ri  )r   r   Zts_1Zts_2r   r    r    r!   Útest_eventplot_units_listÕ  s    ÿr}  zmarker_styles.pngc               	   C   sŒ   t  ¡ \} }ttjjjdd„ d�}| d¡ d
|•}t|ƒD ]J\}}|j|d d t	 
d¡d  t	 d¡d | d|d|d  |d	� q<d S )Nc                 S   s   t t| ƒƒt | ƒ S rÖ   )rÙ  r)  rí  r    r    r!   r€  ì  r�  z$test_marker_styles.<locals>.<lambda>)r¦  ræ   r3   rÀ   rr   r°   )rˆ   rk   rq   r*   )ræ   )r#   r   ÚsortedrN   Úmarkersr¾  r  r5  r}   r]   rb   rw   )r(   r   r  r-   rk   r    r    r!   Útest_marker_stylesä  s    
ÿ
. 
 ÿr€  zrc_markerfill.pngc                  C   sR   t  ¡ \} }t d¡}tdddgƒD ](\}\}}|tjd< |j|| |d� q$d S )Nr´  )r8   r^  )rH   r†   )ræ   rˆ  zmarkers.fillstylerŸ  )r#   r   r]   rb   r5  rN   r«   r}   )r(   r   r,   Úidxr‘   rk   r    r    r!   Útest_markers_fillstyle_rcparamsô  s    
ÿ
r‚  zvertex_markers.pngc                  C   sv   t tdƒƒ} d}ddddg}t ¡ \}}|j| d|dd	� |j| d d d
… d|dd	� | d
dg¡ | d
dg¡ d S )Nrr   )©rp   rp   r¹  rÂ  rº  rƒ  r¹  rÂ  rº  r°   r<  rb  rp   r’  )r€  r¬   r#   r   r}   ri  rj  )rV  Zmarker_as_tupleZmarker_as_listr(   r   r    r    r!   Útest_vertex_markersþ  s    r„  Zvline_hline_zorderZerrorbar_zorderÚx86_64c                  C   s  t tdƒƒ} t ¡ }| ¡ }|j| ddd� |jddddd� |jddddd� |jdd	ddd� |jd
dddd� | d¡ t ¡ }| ¡ }t tdƒƒ} t	 
d¡}t tdƒƒ}|j| ||dddd� tdƒD ]*}|j|dd|d� |j| dd|d� qÎ| d¡ d S )Nrr   rÀ   )rù   ro  r2   r‘  )r¤   rù   ro  r¥   r´  rÀ  r3   r<  r‰   zaxvline and axhline zorder testr£  )rª  ro  rù   r¤   )rù   r¤   ro  zerrorbar zorder test)r€  r¬   r#   r­   r	  r}   rd   Úaxvliner/   r]   rš  r¦  )r,   r(   r   r-   rª  r;  r    r    r!   Útest_eb_line_zorder
  s&    

r‡  c                 C   s„   |   ¡ }|jddd� | ddgddgd¡ |jddd	d
� |  ¡ }|jddd� | ddgddgd¡ |jddgddgd	d
� d S )N)rÃ   rr   )rP  r2   r¾  rÅ   rà  z.-)r2   rP  )rr   rP  r<  rF  r2   rr   rP  rP  )r   r~   rE  Úaxliner   r    r    r!   Útest_axline_loglog(  s    r‰  c                 C   sô   |   ¡ }|jddd� | dd¡ |jdddd� |jdd	d
d� |jdddd� |jdddd� |jdtdƒdd� |  ¡ }|jddd� | ddgddg¡ |jddd� |jdd
d� |jddd� |jddgddgdd� |jddd� d S )Nrº  r¾  rp  rÂ  r?  rè  r¤  )r   rž   ©r2   rž   ré  )gffffffæ¿rI  r   r  )Úsloper¤   )r2   rI  rI  ZC4)rI  r2   Úinfr  rp   r2   rž   )r   r~   rˆ  rD  r}   rd   r†  r   r    r    r!   Útest_axline5  s     r�  c                 C   sÚ   |   ¡ }|jddd� |jdd|jd� |jddd|jd� |jd	d
d|jd� |jddd|jd� |  ¡ }|jddd� | ddgddg¡ |jd
dgdd
gdd� |jddgd
d
gdd� |jd
d
gddgdd� d S )Nrº  r¾  rp  r2   ©r‹  rè   rŠ  rè  ©r‹  r¤   rè   ©rž   rž   r   ré  )rž   r   )rž   r2   r  )r¤   rè   rp   r¤  )r   r~   rˆ  ró   r}   r   r    r    r!   Útest_axline_transaxesL  s    r‘  c                 C   sÔ   |   ¡ }|jddd� |jdd|jd� |jddd|jd	� |jdd
d|jd	� |jddd� |  dd¡ |  ¡ }|jddd� | dd¡ | d
dgd
dg¡ |jd
dgd
dgdd� |jd
dgddgdd� d S )Nrº  r¾  rp  r2   rŽ  r�  r3   rè  r�  r   ré  )r   rÀ   r6  r‰   rÀ   rr   r¤  )r   r~   rˆ  ró   Úset_size_inchesr}   r   r    r    r!   Útest_axline_transaxes_panzoom]  s    r“  c               	   C   sð   t  ¡ \} }t t¡� | d¡ W 5 Q R X t t¡� |jdddd� W 5 Q R X | d¡ t t¡� |jddd� W 5 Q R X | d¡ | d¡ t t¡� |jddd� W 5 Q R X | d¡ t t¡� | dd¡ t  	¡  W 5 Q R X dS )z3Exactly one of *xy2* and *slope* must be specified.rp  rÂ  r2   )r‹  rã   rK  N)
r#   r   rŠ   r‹   rŒ   rˆ  rL  r  r"  r×   r'   r    r    r!   Útest_axline_argsq  s     



r”  Zvlines_basicZvlines_with_nanZvlines_maskedc                  C   sÚ  dddddg} dddddg}t  ¡ \}}|j| d|d	dd
� ddddddg}ddddtjdg}t jddd�\}\}}}	|j|d|d	dd
� ddddddg}
tjdddddg}|j|
d|dddd� ddddddg}tjddddtjg}|	j|d|ddd
� ||||	fD ]}| dd¡ �q| ¡ | ¡ k�s0t‚| ¡ | ¡ k�sFt‚| ¡ |	 ¡ k�s\t‚t  ¡ \}}tj 	ddddddgd¡}tj 	ddddddgd¡}tj 	ddddddgd¡}|j|||ddd
� | dd¡ d S ©Nr3   r‰   rå   rÀ   r´  iúÿÿÿrÆ  r   ræ  ©ru  rë   rI  )rå   rÆ  )rk  rÉ  r£  r¡  )ru  rë   rˆ   r<  rr   rb  r2   rp   r¶  r‡  rÇ   rn  é   rB  )
r#   r   rc   r]   r
  ri  r€   r&   r   Úmasked_equal)r1  r8  r+  rÔ   rÿ   r   r,  rÛ   rÜ   rœ  Úx3r7  Úx4Úy4r   Úfig3Úax5Zx5Zymin5Zymax5r    r    r!   Útest_vlines…  s2    rž  c               	   C   sN   t  ¡ \} }t ddi¡�* | ddd¡}tj | ¡ d¡s@t‚W 5 Q R X d S ©Nzlines.colorr‘  rž   r   r2   )	r#   r   r�   r
   rc   ru  rÿ  rë  r&   ©r(   r   r–  r    r    r!   Útest_vlines_default­  s    r¡  Zhlines_basicZhlines_with_nanZhlines_maskedc                  C   sÚ  dddddg} dddddg}t  ¡ \}}|j| d|d	dd
� ddddddg}ddddtjdg}t jddd�\}\}}}	|j|d|d	dd
� ddddddg}
tjdddddg}|j|
d|dddd� ddddddg}tjddddtjg}|	j|d|ddd
� ||||	fD ]}| dd¡ �q| ¡ | ¡ k�s0t‚| ¡ | ¡ k�sFt‚| ¡ |	 ¡ k�s\t‚t  ¡ \}}tj 	ddddddgd¡}tj 	ddddddgd¡}tj 	ddddddgd¡}|j|||ddd
� | dd¡ d S r•  )
r#   r   Úhlinesr]   r
  rj  r   r&   r   r˜  )r8  r1  r+  rÔ   r   rÿ   r,  rÛ   rÜ   rœ  r7  r™  r›  rš  r   rœ  r�  Zy5Zxmin5Zxmax5r    r    r!   Útest_hlines´  s2    r£  c               	   C   sN   t  ¡ \} }t ddi¡�* | ddd¡}tj | ¡ d¡s@t‚W 5 Q R X d S rŸ  )	r#   r   r�   r
   r¢  ru  rÿ  rë  r&   r   r    r    r!   Útest_hlines_defaultÜ  s    r¤  rÀ   rå   c                 C   s¢   dddddg}|   ddd¡j|dd|d	d
� |   ddd¡j|dd|d	d
� dddd	g}ddddg}|  ddd¡j|dd|d	d
� |  ddd¡j|dd|d	d
� d S )Nr‘  r¥   r£   rS  r=  r3   r2   r   rÀ   r–  r‰   )r”   rc   r¢  )r   r   rV  Ztest_colorsZ	expect_xyZexpect_colorr    r    r!   Útest_lines_with_colorsã  s&     ÿ ÿ ÿ ÿr¥  Zstep_linestylec               	   C   sV  t  d¡ } }t dd¡\}}| ¡ }ddddg}t||ƒD ]h\}}|j| |d|dd	� |j| |d
 d|dd	� |j| |d d|dd	� | ddg¡ | ddg¡ q<| ||d
 |d dœ}t dd¡\}}| ¡ }ddddg}t||ƒD ]f\}}|jddd|d|d� |jddd|d|d� |jddd|d|d� | ddg¡ | ddg¡ qêd S )Nrr   r3   r   r¡  r‘  r_  rÀ   Úpre)rù   rˆ   r7  r2   rT  rŸ  rp   r´  )rÎ  ÚY0ÚY1ÚY2rÎ  r§  )rù   rˆ   r7  rV  r¨  r©  )	r]   rb   r#   r   r—  rh  rZ  ri  rj  )r,   r-   r(   Úax_lstZ	ln_stylesr   rÔ  rV  r    r    r!   Útest_step_linestyleõ  s(    r«  Zmixed_collectionc                  C   sä   t  ¡ \} }tjddddd�}tjj|gdd�}| ddgd	d	gg¡ | d
dg¡ tjj|gdd�}| ddgddgg¡ | d
dg¡ | 	ddddgddddgg¡ |j
 d¡ | |¡ | |¡ | dd¡ | dd¡ d S )N)rÆ  rÆ  rå   ræ   r¥   )Úradiusré   rê   T)Zmatch_originalr   rC  r2   rÀ   r‰  iàÿÿÿiðÿÿÿrÃ   r¢   rž   rÞ  rn  )r#   r   rs  ÚCircler�   r  ZPatchCollectionZset_offsetsZset_linewidthsZset_edgecolorsrÙ   rÅ  r(  ri  rj  )r(   r   r6   rƒ  r„  r    r    r!   Útest_mixed_collection  s    

r®  c                  C   s:   t  t d¡t d¡d¡} |  ¡  |  ¡  ¡ dks6t‚d S )NrÀ   r2   )rÀ   r2   r   r   )	r#   r  r]   Zint32Zint64rÒ   Zget_subplotspecZget_geometryr&   rå  r    r    r!   Útest_subplot_key_hash-  s    r¯  zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pnggìQ¸…ë±?)r4  rà   r‘   c                  C   sŠ  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t |¡ ƒ}t d| d| ¡}t t dtj tj	 
||¡ ¡jdd�¡}td| d ƒ}tj d¡ t tj | ¡tj | ¡g¡}dddg}||f||ffD ]ž\}	}
|
d }tdt t |
¡¡ ƒ}tt ¡  d¡|ƒD ] \}}|j|	|
||||d� �q"tt ¡  d¡|ƒD ]*\}}|j|	|
||||dt j ¡ d� �qXqædS )z)Test axes.specgram in default (psd) mode.rm   r  rß  rŽ  rå   rÀ   rD  çÍÌÌÌÌÌ@çffffff@çÍÌÌÌÌÌ'@rr   r   r2   r3   r†  r:  ÚonesidedÚtwosidedr‰   )ÚNFFTÚFsÚnoverlapÚpad_toÚsidesrK  )rµ  r¶  r·  r¸  r¹  râ   r!  N)rN   r«   Úintr]   rc  rb   rW  rÎ   rÏ   ÚmultiplyÚouterrö  r^   r_   rô  r“   ÚceilÚlog2rh  r#   r­   r   Úspecgramru  ÚLogNorm)r÷  r¶  ÚfstimsÚ
NFFT_freqsr,   Úy_freqsÚ
NFFT_noiseÚy_noiseÚ	all_sidesr-   rµ  r·  r¸  r   r¹  r    r    r!   Útest_specgram3  s8    
,$ÿ
 ÿ
  þrÇ  zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                  C   s¢  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t |¡ ƒ}t d| d| ¡}t dtj tj 	||¡ ¡j
dd�}d|dd…df< t |¡}td| d ƒ}tj d¡ t tj | ¡tj | ¡g¡}dddg}	||f||ffD ]¢\}}
|
d }tdt t |
¡¡ ƒ}tt ¡  d¡|	ƒD ]"\}}|j||
||||dd� �q6tt ¡  d¡|	ƒD ],\}}|j||
||||ddt j ¡ d�	 �qnqúdS )z%Test axes.specgram in magnitude mode.rm   r  rß  rŽ  rå   rÀ   rD  r°  r±  r²  rÆ   r   r2   r3   r†  Nrp   rr   r:  r³  r´  r‰   Z	magnitude©rµ  r¶  r·  r¸  r¹  rZ   rK  )rµ  r¶  r·  r¸  r¹  rZ   râ   r!  )rN   r«   rº  r]   rc  rb   rÎ   rÏ   r»  r¼  rö  r…  r^   r_   rW  rô  r“   r½  r¾  rh  r#   r­   r   r¿  ru  rÀ  )r÷  r¶  rÁ  rÂ  r,   r-   rÃ  rÄ  rÅ  rÆ  rµ  r·  r¸  r   r¹  r    r    r!   Útest_specgram_magnitudeW  s<    
,&

  ÿ
   þrÉ  zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                  C   sœ  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t |¡ ƒ}t d| d| ¡}t dtj tj 	||¡ ¡j
dd�}d|dd…df< t |¡}td| d ƒ}tj d¡ t tj | ¡tj | ¡g¡}dddg}	||f||ffD ]œ\}}
|
d }tdt t |
¡¡ ƒ}dD ]n}tt ¡  d¡|	ƒD ]R\}}|j||
|||||d� t t¡�  |j||
|||||dd� W 5 Q R X �q>�q&qúdS )z,Test axes.specgram in angle and phase modes.rm   r  rß  rŽ  rå   rÀ   rD  r°  r±  r²  rr   r   r2   r3   r†  Nrp   r:  r³  r´  )rµ  Zphaser‰   rÈ  ÚdB)rµ  r¶  r·  r¸  r¹  rZ   râ   )rN   r«   rº  r]   rc  rb   rÎ   rÏ   r»  r¼  rö  r…  r^   r_   rW  rô  r“   r½  r¾  rh  r#   r­   r   r¿  rŠ   r‹   r"  )r÷  r¶  rÁ  rÂ  r,   r-   rÃ  rÄ  rÅ  rÆ  rµ  r·  r¸  rZ   r   r¹  r    r    r!   Útest_specgram_angle|  s<    
,&

  ÿ  þrË  c                  C   sF   t jt d¡ddd�\} }}}| ¡ \}}}}|dkr>|dksBt‚dS )z;Test axes.specgram when Fs is None, should not throw error.rê  NrK  )r¶  râ   rh   é`   )r#   r¿  r]   rw   Z
get_extentr&   )ÚspecÚfreqsr]  r9  r[   r\   Zfreq0Zfreq1r    r    r!   Útest_specgram_fs_none¢  s    rÏ  c                 C   sH   t  d¡}t  |¡}dtjd< | ¡  |¡ dtjd< |  ¡  |¡ dS )zCTest specgram ignores image.origin rcParam and uses origin 'upper'.re  Úupperzimage.originrj   N)r]   rb   rÎ   r#   r«   r   r¿  )r   r   r]  Úsignalr    r    r!   Útest_specgram_origin_rcparam©  s    



rÒ  c               	   C   s<   t  d¡} t  | ¡}t t¡� tj|dd� W 5 Q R X dS )z4Ensure passing origin as a kwarg raises a TypeError.re  rj   rH  N)r]   rb   rÎ   rŠ   r‹   rŒ   r#   r¿  )r]  rÑ  r    r    r!   Útest_specgram_origin_kwarg»  s    

rÓ  zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggü©ñÒMb`?c               	   C   sâ  d} d}|d |d |d g|d |d |d gg}t d	| t |¡ ƒ}t d
| d| ¡}t dtj tj ||¡ ¡jdd�}t d	| d ƒ}tj	 
d
¡ tj	 | ¡tj	 | ¡g}ddidddœdddœg}||f||ffD ]ü\}	}
|
d }t dt t |
¡¡ ƒ}tt ¡  d¡|ƒD ]X\}}|jt |	¡f|
|||dœ|—Ž}t|ƒd| dd¡ k�sdt‚|jddd� �qtt ¡  d¡|ƒD ]P\}}|j|	|
|||dœ|—Ž}t|ƒd| dd¡ k�sÊt‚|jddd� �qŠqàd S )Nr  ç      Y@rå   rÀ   rD  r°  r±  r²  rß  r   r2   r3   r†  r¹  r:  r³  F)r¹  Úreturn_liner´  Tr‰   )rµ  r¶  r·  r¸  rÕ  r°   ©ZxlabelZylabel)rº  r]   rc  rb   rÎ   rÏ   r»  r¼  rö  r^   r_   rô  r“   r½  r¾  rh  r#   r­   r   ÚpsdrW  r  rF  r&   r~   Úcsd)r÷  r¶  rÁ  rÂ  r,   Zys_freqsrÄ  Zys_noiseZ
all_kwargsr  rµ  r·  r¸  r   rl  Úretr    r    r!   Útest_psd_csdÄ  sD    ,&þ ÿÿ
 ÿÿrÚ  z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc                  C   s  d} d}|d |d |d g}t d| t|ƒ ƒ}t dt t |¡¡ ƒ}t d| d	| ¡}t dtj t ||¡ ¡d
t d¡  j	d	d�}tj
 d¡ t tj
 | ¡tj
 | ¡g¡d }dddg}||dœ}	||fD �]0}
tt ¡  d¡|ƒD ]2\}}|j|
fd|i|	—Ž\}}}|jddd� qòtt ¡  d¡|ƒD ]:\}}|j|
fd|i|	ddi—Ž\}}}|jddd� �q:tt ¡  d¡|ƒD ]4\}}|j|
fd|i|	—Ž\}}}|jddd� �qŠtt ¡  d¡|ƒD ]4\}}|j|
fd|i|	—Ž\}}}|jddd� �qÔqØd S )Nr  rÔ  rå   rÀ   rD  rß  r3   r   r2   rr   r‰   r†  rž   r:  r³  r´  )r¶  r¸  r¹  r°   rÖ  râ   rÊ  )rº  rc  r]   r½  r¾  rb   rÎ   rÏ   r¼  rö  r^   r_   r…  rô  r“   rh  r#   r­   r   Zmagnitude_spectrumr~   Zangle_spectrumZphase_spectrum)r÷  r¶  Zfstims1rµ  r¸  r,   rÃ  rÅ  rÆ  rl  r-   r   r¹  rÍ  rÎ  r_  r    r    r!   Útest_spectrumæ  s8    *ÿ"

ÿrÛ  c               	   C   sr   t  ¡  d¡} | D ]}|jjdd� qtjdd��6 | d  t d¡¡ | d  	t d¡t d¡¡ W 5 Q R X d S )	Nr3   T)rb  r  r  r   rÀ   r2   )
r#   r­   r   rT   r~   r]   r	  r×  rš  rØ  ©r7  r   r    r    r!   Útest_psd_csd_edge_cases  s    rÝ  c                 C   sH   |   ¡ }| ¡ }| ¡ }| ¡  | ¡  |  ¡ }|j ¡  |j ¡  d S rÖ   )r”   rÒ   rÑ   r  rQ   Ztick_bottomrT   Z	tick_left)r   r   re   Zax_twinxZax_twinyrf   r    r    r!   Útest_twin_remove  s    
rÞ  ztwin_spines.pngc            	      C   sˆ  dd„ } t jdd�}|jdd� | ¡ }| ¡ }| ¡ }|jj d¡ | |ƒ |jj d¡ | 	d	d
dgd	d
dgd¡\}| 	d	d
dgd	ddgd¡\}| 	d	d
dgdddgd¡\}| 
d	d¡ | d	d¡ | d	d¡ | d
d¡ |jj | ¡ ¡ |jj | ¡ ¡ |jj | ¡ ¡ tddd�}|jf d| ¡ dœ|—Ž |jf d| ¡ dœ|—Ž |jf d| ¡ dœ|—Ž |jf ddi|—Ž d S )Nc                 S   s.   |   d¡ | j d¡ | jd d …  d¡ d S )NTF)Zset_frame_onrÙ   r   Úspinesrå  r    r    r!   Úmake_patch_spines_invisible,  s    
z5test_twin_spines.<locals>.make_patch_spines_invisible)rå   r‰   r;  rW  )r<   )r  r3  Tr   r2   r3   zb-r‰   zr-rO  r–   rÇ   zg-rå   éA   r�   )re  rc  r-   )r<  ru  r<  r,   )r#   r­   r‰  r”   rÒ   rß  r<   Úset_positionr   r}   ri  rj  rT   r*   rÅ  rë  rÌ  Útick_params)	rà  r(   ÚhostZpar1Zpar2rƒ  r„  Zp3Ztkwr    r    r!   Útest_twin_spines)  s0    rå  ztwin_spines_on_top.pngc                  C   sH  dt jd< dt jd< t ¡ } |  ddd¡}t ddddgd	d
ddgg¡}| ¡ }|j|d |d d dd� |j	|d |d d ddd� |j|d |d d dd� |j	|d |d d ddd� |d |d d dœ}t ¡ } |  ddd¡}| ¡ }|jddd|d� |j	dddd|d� |jddd|d� |j	dddd|d� d S )Ng      H@rç   r  r2   rß  iL  i°  iâ  rQ  i-  r¬  ré  r   g     @�@z#BEAED4r¤  rs  )r¤   rÔ  z#7FC97Frž   )rõ   r;  rõ   r;  )r¤   rV  )r¤   rÔ  rV  )
rN   r«   r#   r­   r”   r]   rü   rÒ   r}   r  )r(   rÔ   rV  rÛ   r    r    r!   Útest_twin_spines_on_topV  s(    


ÿræ  z(grid_which, major_visible, minor_visible)rv   TT)ÚmajorTF)r™  FTc                    sh   t j d| dœ¡ t ¡ \}}|j ¡  t‡ fdd„|jj	D ƒƒsFt
‚t‡fdd„|jjD ƒƒsdt
‚d S )NT)r¯  zaxes.grid.whichc                 3   s   | ]}|j  ¡ ˆ kV  qd S rÖ   ©ÚgridlinerØ   ©r™   Útick)Úmajor_visibler    r!   rq  ~  s   ÿz*test_rcparam_grid_minor.<locals>.<genexpr>c                 3   s   | ]}|j  ¡ ˆ kV  qd S rÖ   rè  rê  )Úminor_visibler    r!   rq  €  s   ÿ)r�   r«   rÚ  r#   r   r7  r×   rr  rQ   Ú
majorTicksr&   Ú
minorTicks)Z
grid_whichrì  rí  r(   r   r    )rì  rí  r!   Útest_rcparam_grid_minoru  s    
ÿÿrð  c                  C   s¸   t  ¡ \} }| ¡  | j ¡  |jjd j ¡ s4t	‚|jdd� | j ¡  |jjd j ¡ r`t	‚|jdd� | j ¡  |jjd j ¡ sŒt	‚| ¡  | j ¡  |jjd j ¡ r´t	‚d S )Nr   F©ÚvisibleT)
r#   r   rÍ  r7  r×   rQ   rî  ré  rØ   r&   r'   r    r    r!   Ú	test_grid„  s    



ró  c               	   C   s    t  ¡ \} }|jdddd� |jjd j ¡ r2t‚|jdd� |jjd j ¡ sTt‚t  	ddi¡�4 | 
¡  |jdddd� |jjd j ¡ s’t‚W 5 Q R X d S )	NTrç  rr   )Úresetr›  Ú	labelsizer   r‘  r¤  r¯  )r#   r   rã  rQ   rî  ré  rØ   r&   rÍ  r
   r&  r'   r    r    r!   Útest_reset_grid”  s    rö  c                 C   sn   || fD ]@}|  ¡ }| d¡ |jdddddddd	d
dddd� | ¡  q| jD ]}|j ¡  |j ¡  qPd S )NTÚinrr   rÀ   r  rb  r‡  rè  r­  ré  rs  r‰   r¡  )Ú	directionÚlengthrc  r¤   Úpadrõ  Ú
labelcolorÚlabelrotationÚ
grid_colorÚ
grid_alphaÚgrid_linewidthÚgrid_linestyle)r”   rÍ  rã  Údraw_without_renderingr  rQ   Zreset_ticksrT   )r   r   r(   r   r    r    r!   Útest_reset_ticks¡  s*    
        ü


r  c                  C   s>   t  ¡ } |  ¡ }| d¡ | ddddg¡ t| ¡ dƒ d S )Nrž   rS  r   rÄ   rÃ   )rS  rÄ   )r#   r­   r	  r†  r}   r   r€   r'   r    r    r!   Útest_vline_limitµ  s
    
r  zfv, fh, args)r2   rÂ  c              	   C   s¸   t j d¡}tjtdd�� | ||ddœŽ W 5 Q R X tjtdd�� | |d|dœŽ W 5 Q R X tjtdd�� |||ddœŽ W 5 Q R X tjtdd�� ||d|dœŽ W 5 Q R X d S )	Nr2   z"ymin must be a single scalar valuer  )ÚyminÚymaxz"ymax must be a single scalar valuez"xmin must be a single scalar value)r[   r\   z"xmax must be a single scalar value)rN   rC  Znum2daterŠ   r‹   r"  )ZfvÚfhÚargsZbad_limr    r    r!   Útest_axline_minmax½  s    r  c                  C   s†   t jddddd�\} }|d  dddgdddg¡ |d  ¡ \}}|d  ¡ \}}|dks^t‚|dksjt‚|dksvt‚|dks‚t‚d S )	Nr2   r3   T)rk  rl  rC  r  r   r‰   rå   rI  )r#   r   r}   r   r€   r&   )r(   r7  r  r1  r  r8  r    r    r!   Útest_empty_shared_subplotsÍ  s    r	  c                  C   s”   dD ]Š} t jddd�\}}|d jd| dd� |d  ¡ dksBt‚|d  ¡ | ksVt‚t jddd�\}}|d jd| d� |d  ¡ d	kst‚qd S )
N©ÚboxÚdatalimr3   T)rk  rC  r   )Ú
adjustableÚsharer2   ©r  r—  )r#   r   Ú
set_aspectÚ
get_aspectr&   Zget_adjustable)r  r(   r7  r    r    r!   Útest_shared_with_aspect_1Ù  s    r  c                  C   sš   t jdddd�\} }|d jddd� |d  ddgddg¡ |d  ddgddg¡ t  ¡  |d  ¡ |d  ¡ kszt‚|d  ¡ |d  ¡ ks–t‚d S )	Nr3   T)rk  rC  r  r   )r  r2   r‰   rå   )r#   r   r  r}   r×   r   r&   r€   r`  r    r    r!   Útest_shared_with_aspect_2æ  s    r  c            	      C   s  dD �]} t jddd�\}}|d jd| d� |d jd| d� |d  ddgd	d
g¡ |d  d	d
gddg¡ t  ¡  |d  ¡ |d  ¡ ks”t‚|d  ¡ |d  ¡ ks°t‚|jj	|jj
 }|D ]P}| ¡ }|j	|j
 }|jj	|jj
 }|| | }t|d
ƒt| ¡ d
ƒksÄt‚qÄqd S )Nr
  r3   T)rk  r  r   r  r2   rž   r‰   rå   )r#   r   r  r}   r×   r   r&   r€   Zbbox_inchesr¸  rc  Úget_positionÚviewLimrÿ  r  )	r  r(   r7  Z
fig_aspectr   rÌ   Ú
box_aspectZ
lim_aspectr+  r    r    r!   Útest_shared_with_aspect_3ñ  s     
r  c               	   C   sJ   t jddddd�\} }|d  d¡ tjtdd�� |  ¡  W 5 Q R X d S )	Nr2   r3   T©rC  r  r   r¶  zset_aspect\(..., adjustable=r  )r#   r   r<  rŠ   r‹   ÚRuntimeErrorr  )r(   r  r    r    r!   Útest_shared_aspect_error  s    r  zerr, args, kwargs, matchrä   z;axis\(\) takes 0 or 1 positional arguments but 2 were given)rv  z4Unrecognized string 'foo' to axis; try 'on' or 'off'zthe first argument to axis*rv  z1axis\(\) got an unexpected keyword argument 'foo'c              	   C   s*   t j| |d�� tj||Ž W 5 Q R X d S ©Nr  )rŠ   r‹   r#   r<  )Úerrr  rl  r  r    r    r!   Útest_axis_errors  s    r  c               	   C   sº  t  ¡ } tjtdd�� |  d¡ W 5 Q R X tjtdd�� |  d¡ W 5 Q R X tjtdd�� | jddd� W 5 Q R X tjtdd�� |  	d¡ W 5 Q R X tjtdd�� | j
d	d
� W 5 Q R X tjtdd�� | jddd	d� W 5 Q R X tjtdd�� | jddd	d� W 5 Q R X tjtdd�� | jdd	d� W 5 Q R X tjtdd�� | jdd	d� W 5 Q R X tjtdd�� | jdd	d� W 5 Q R X tjtdd�� | jdd	d� W 5 Q R X d S )Nzunknown value for which: 'foo'r  rv  z!Cannot supply both positional andró  rÃ  zargument must be amongzscilimits must be a sequencer2   )Z	scilimitszSpecifying 'loc' is disallowedrI   )r:   r,   r8   )r:   r-   zCannot pass both 'left'r   )rI   r[   zCannot pass both 'right')r<   r\   zCannot pass both 'bottom')rH   r  zCannot pass both 'top')r8   r  )r#   r	  rŠ   r‹   r"  Zget_xaxis_transformZget_yaxis_transformrŒ   Zset_prop_cycleZ
set_anchorZticklabel_formatr$   r%   ri  rj  rå  r    r    r!   Útest_axis_method_errors  s.    r  c                 C   sH   t  ¡ \}}t|d | ¡ƒƒ }| d¡ | d¡ t|jj|jjƒ d S )Nztwin{}rÀ   r3   )r#   r   rì   rÙ  r  r   ÚbboxÚextents)rÞ   r(   r   rô   r    r    r!   Útest_twin_with_aspect8  s    

ÿr!  c                  C   sÞ   d} d}d}d}t j ¡ }| ¡ }| | |¡ | ¡ | ks>t‚| ¡ |ksNt‚| ||¡\}| ¡ |kslt‚| ¡ |ks|t‚| d¡ | ¡ |ks–t‚| ¡ |ks¦t‚|j	dd� | 
¡  | ¡ | ksÊt‚| ¡ |ksÚt‚d S )N)rN  rŽ  )ç      $ÀrQ  )r"  rê  FT)Zvisible_only)rN   r­   r   r”   r}   r   r&   r€   r   Zrelimr®   )r1  r8  rÿ   r   r(   r   r_  r    r    r!   Útest_relim_visible_onlyC  s&    

r#  c                  C   s,   t  ¡ } |  ¡ }|jdd� |jdd� dS )z
    tests for issue #1172
    Zlarge)rõ  Úout©rø  N)r#   r­   r	  rã  r'   r    r    r!   Útest_text_labelsize\  s    r&  zpie_default.pngc               	   C   sL   d} ddddg}dddd	g}d
}t jdd�\}}|j||| |dddd� d S )N©ÚFrogsZHogsÚDogsÚLogsrÇ   r–   r­  rr   ÚyellowgreenÚgoldÚlightskyblueÚ
lightcoral©r   rÃ   r   r   )rÆ  rI  r;  ú%1.1f%%Tr“  )ÚexploderU  ru  ÚautopctÚshadowÚ
startangle)r#   r   Úpie)rU  Úsizesru  r1  r+  rÔ   r    r    r!   Útest_pie_defaultf  s      ÿr7  Zpie_linewidth_0)r   r‘   c                  C   sÆ   d} ddddg}dddd	g}d
}t j||| |dddddid� t  d¡ | |||dœ}t  ¡ }| ¡ }|jdddddddddi|d�	 | d¡ t  ¡  t jdddddddddi|d�	 t  d¡ d S )Nr'  rÇ   r–   r­  rr   r+  r,  r-  r.  r/  r0  Tr“  rë   r   ©r1  rU  ru  r2  r3  r4  Ú
wedgepropsr¶  )Úlr^  r6   Úexr^  r;  r:  r6   )r1  rU  ru  r2  r3  r4  r9  rV  )r#   r5  r<  r­   r	  )rU  r6  ru  r1  rV  r(   r   r    r    r!   Útest_pie_linewidth_0r  s>      þ
   þ
   þr<  zpie_center_radius.pngc                  C   st   d} ddddg}dddd	g}d
}t j||| |dddddiddd�
 t jdddtddd�tddd�d� t  d¡ d S )Nr'  rÇ   r–   r­  rr   r+  r,  r-  r.  r/  r0  Tr“  rë   r   rä   r�   )	r1  rU  ru  r2  r3  r4  r9  rP   r¬  zCenter point)r2   ró  ú->Zarc3)Ú
arrowstyleZconnectionstyleÚsquareZ	lightgrey)Zboxstyleré   )rX  rZ  ry  r  r¶  )r#   r5  r\  rÌ  r<  ©rU  r6  ru  r1  r    r    r!   Útest_pie_center_radius“  s&        þ
ÿ
ýrA  zpie_linewidth_2.pngc               
   C   sL   d} ddddg}dddd	g}d
}t j||| |dddddid� t  d¡ d S )Nr'  rÇ   r–   r­  rr   r+  r,  r-  r.  r/  r0  Tr“  rë   r3   r8  r¶  ©r#   r5  r<  r@  r    r    r!   Útest_pie_linewidth_2§  s      þrC  zpie_ccw_true.pngc               
   C   sH   d} ddddg}dddd	g}d
}t j||| |ddddd� t  d¡ d S )Nr'  rÇ   r–   r­  rr   r+  r,  r-  r.  r/  r0  Tr“  )r1  rU  ru  r2  r3  r4  Zcounterclockr¶  rB  r@  r    r    r!   Útest_pie_ccw_true¶  s      þrD  zpie_frame_grid.pngc                  C   s¨   d} ddddg}dddd	g}d
}t j||| |dddddiddd�
 t j|d d d… || |dddddiddd�
 t j||d d d… | |dddddiddd�
 t  d¡ d S )Nr'  rÇ   r–   r­  rr   r+  r,  r-  r.  r/  r0  Tr“  rë   r   rÃ  )	r1  rU  ru  r2  r3  r4  r9  ÚframerP   rp   )rÀ   r3   )r‰   rÀ   r¶  rB  r@  r    r    r!   Útest_pie_frame_gridÅ  s:       ý   ý   ýrF  zpie_rotatelabels_true.pngc               
   C   sH   d} ddddg}dddd	g}d
}t j||| |ddddd� t  d¡ d S )N)ZHogwartsr(  r)  r*  rÇ   r–   r­  rr   r+  r,  r-  r.  r/  r0  Tr“  )r1  rU  ru  r2  r3  r4  Úrotatelabelsr¶  rB  r@  r    r    r!   Útest_pie_rotatelabels_trueà  s      þrH  zpie_no_label.pngc                  C   s^   d} ddddg}dddd	g}d
}t j||| |dddd dd�	 t  d¡ t  dd¡ t  ¡  d S )Nr'  rÇ   r–   r­  rr   r+  r,  r-  r.  r/  r0  Tr“  )r1  rU  ru  r2  r3  r4  ZlabeldistancerG  r¶  g333333ó¿r3  )r#   r5  r<  ru   rB   r@  r    r    r!   Útest_pie_nolabel_but_legendï  s       þ
rI  c                  C   sØ   dddg} dddg}t ddd	d
ddd�}t ¡ j| |d|d�\}}}||fD ]†}|D ]|}| ¡ |d kslt‚| ¡ |d ks€t‚| ¡ |d ks”t‚| ¡ |d ks¨t‚| 	¡ |d ks¼t‚| 
¡ |d ksTt‚qTqLd S )NrR  é"   r­  zLong name 1zLong name 2zLong name 3rP   r8   r“  Úanchorrb  r‘  )ÚhorizontalalignmentÚverticalalignmentrÁ  Úrotation_modere  r¤   ú%.2f)rU  r2  Ú	textpropsrL  rM  rÁ  rN  re  r¤   )rÌ  r#   r	  r5  Úget_har&   Úget_vaÚget_rotationZget_rotation_modeÚget_sizerë  )rV  rU  rP  rq  Útextsr2  Ztxr    r    r!   Útest_pie_textpropsý  s(    

 üÿrV  c               	   C   s@   t  ¡ \} }t t¡�  |jdddgdddgd� W 5 Q R X d S )NrÀ   rR  r   rÃ   rÄ   )r1  )r#   r   rŠ   r‹   r"  r5  r'   r    r    r!   Útest_pie_get_negative_values  s    rW  c                  C   sr   t  ¡ \} }dddg}|j|dd�}t|d d jd ƒdk sBt‚|j|d	d�}t|d d jd ƒdksnt‚d S )
NrÅ   rÃ   T)r,   Ú	normalizer   rp   g     €v@rP  F)r#   r   r5  r¬  r¯  r&   )r(   r   r,   Út1Út2r    r    r!   Útest_normalize_kwarg_pie  s    
r[  zset_get_ticklabels.pngc                  C   s"  t  d¡\} }ddg}|d  t d¡¡ |d  |d ¡ |d  t d¡¡ |d  |d ¡ |d  tdƒ¡ |d  tdƒ¡ |d  	ddd	d
gddg  ¡ |d  
ddddgddg  ¡ |d  |d  ¡ ¡ |d  |d  ¡ ¡ |d  	|d  ¡ ¡ |d  
|d  ¡ ¡ d S )Nr3   r`   zset_x/yticklabelsr   rr   r2   r‚   r’  r6   r�  rI  r°   Z11Z12Z13Z14)r#   r   r}   r]   rb   r/   Ú
set_xticksr¬   Ú
set_yticksÚset_xticklabelsÚset_yticklabelsrÕ  Ú
get_yticksr�  Úget_yticklabels)r(   r   r?   r    r    r!   Útest_set_get_ticklabels#  s      rb  c                 C   s¸   |  ¡ }| ddddg¡ |jddddgd	d
� | dddg¡ |jddgdd� |jddgdd� |   ¡ }|jddddgddddgd	d
� | dddg¡ |jddgddgdd� dS )z˜
    Test that these two are identical::

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

    r2   r3   rå   rI  r‚   r’  r6   r�  Úbold)Z
fontweightr‰   rÀ   T)r™  rN  rO  N)r   r\  r^  r]  r_  r   r    r    r!   Útest_set_ticks_with_labels=  s    	 rd  c               	   C   s@   t jtdd��( t d¡\} }|d  ddgd¡ W 5 Q R X d S )Nzmust be a sequencer  r3   r2   r½  gÍÌÌÌÌÌ@)rŠ   r‹   rŒ   r#   r   r\  r'   r    r    r!   Útest_set_noniterable_ticklabelsS  s    re  c                  C   sŠ   t  ¡ \} }| t d¡¡ |j t d¡d ¡ |jdd� |j dd„ dD ƒ¡ t  	¡  dd„ |j 
¡ D ƒ}|d	d
dddgks†t‚d S )Nrr   rÃ   rÀ   rá  c                 S   s   g | ]}|‘qS r    r    rq  r    r    r!   rœ   b  s     z.test_subsampled_ticklabels.<locals>.<listcomp>Z
bcdefghijkc                 S   s   g | ]}|  ¡ ‘qS r    rÓ  r  r    r    r!   rœ   d  s     r’  r�  rÃ  rø  r;  )r#   r   r}   r]   rb   rQ   Ú	set_ticksrå  Úset_ticklabelsr×   Úget_ticklabelsr&   )r(   r   rU  r    r    r!   Útest_subsampled_ticklabels\  s    ri  c               	   C   sX   t  ¡ \} }| t d¡¡ |j ddg¡ t t	¡� |j 
dddg¡ W 5 Q R X d S )Nrr   r�   r÷  r‚   r’  r6   )r#   r   r}   r]   rb   rQ   rf  rŠ   r‹   r"  rg  r'   r    r    r!   Útest_mismatched_ticklabelsh  s
    rj  c                  C   s<   t  ¡ \} }| ddgddg¡ | ddg¡ | g ¡ d S )Nr2   r3   )r#   r   ró  r\  r^  r'   r    r    r!   Útest_empty_ticks_fixed_locp  s    rk  zretain_tick_visibility.pngc                  C   sJ   t  ¡ \} }t  dddgdddg¡ t j| ¡ dd� |jdd	dd
� d S )Nr   r2   r3   rp   rå   Frñ  r-   rv   ©r<  r›  rù  )r#   r   r}   Zsetpra  rã  r'   r    r    r!   Útest_retain_tick_visibilityx  s    rm  c                  C   s€   t  ¡ \} }dd„ }|j t  |¡¡ | dddddg¡ | dd	¡ |jj 	¡  d
d„ |j 
¡ D ƒ}|dddddgks|t‚d S )Nc                 S   s   | dkrdS dS )Nr2   ú
unit valuer°   r    r±   r    r    r!   Úformatter_func†  s    z.test_tick_label_update.<locals>.formatter_funcrp   r   r2   r3   r‰   rI  r÷  c                 S   s   g | ]}|  ¡ ‘qS r    rÓ  rê  r    r    r!   rœ   �  s     z*test_tick_label_update.<locals>.<listcomp>r°   rn  )r#   r   rQ   r¶   r¸   r\  ri  r­   r7  r×   rh  r&   )r(   r   ro  Z
tick_textsr    r    r!   Útest_tick_label_update€  s    rp  zo_marker_path_snap.pngéH   c                  C   s~   t  ¡ \} }| d¡ tddƒD ]$}|jddgt d¡| d|d� q t ddd¡D ]$}|jd	d
gt d¡| d|d� qTd S )NrÃ   r2   rÇ   r3   r†   )rÕ  rr   r¹  r‰   rå   )r#   r   rþ   r¬   r}   r]   rw   rÍ   )r(   r   rÕ  r    r    r!   Útest_o_marker_path_snap“  s    
"rr  c                  C   sà  ddg} d}t | ƒd }t| ƒ}t| ƒ}t dd¡\}}| | ¡ | d¡ | ¡ dks\t‚| ¡ ||| d  ||| d  fksˆt‚| 	¡ ||| d  ||| d  fks´t‚t dd¡\}}| | ¡ | dd¡ | ¡ dksêt‚| ¡ ||| d  ||| d  fk�st‚| 	¡ ||| d  ||| d  fk�sFt‚t dd¡\}	}
|
 | ¡ |
jd	dd
� |
 ¡ dk�s€t‚|
 ¡ ||| d	  ||| d	  fk�s®t‚|
 	¡ ||| d  ||| d  fk�sÜt‚d S )Nr2   rr   rN  r¢   rÂ  rž   r3   )rž   r3   çš™™™™™É¿rß   )rs  rž   )
r  rc  rf  r#   r   r}   rþ   r&   r   r€   )rV  r[   r\   r  r  r+  rÔ   r,  rÛ   rœ  rÜ   r    r    r!   Útest_marginsž  sF    

ÿ
ÿ

ÿÿ
ÿÿrt  c                  C   sN   t j d¡ t ¡ \} }| ddgddg¡ |jddd� | ¡ dksJt‚d S )Nr:  r2   r3   rã   r   )râ  Zxmarginrä   )	r�   r‘   r’   r#   r   r}   r~   r   r&   r'   r    r    r!   Útest_set_margin_updates_limitsÂ  s
    ru  )rp   z!margin must be greater than -0\.5r¹  rp   r-   z@Cannot pass both positional and keyword arguments for x and/or y)r2   r2   r2   z&Must pass a single positional argumentc              	   C   s:   t j| |d��" t ¡ }| ¡ }|j||Ž W 5 Q R X d S r  )rŠ   r‹   r#   r­   r”   rþ   )r  r  rl  r  r(   r   r    r    r!   Útest_margins_errorsÊ  s    rv  c                  C   s&   t  ¡ \} }| d¡ | dg¡ d S ©Nr2   )r#   r   rX  r'   r    r    r!   Útest_length_one_histÜ  s    
rx  c                  C   s   t  ¡ } |  ¡ }| dd¡ | ¡ dks,t‚| ¡ dks<t‚|jdd� | ¡ dksXt‚| ¡ dksht‚|jdd� | ¡ dks„t‚| ¡ dks”t‚| dd¡ | ¡ dks°t‚| 	¡ dksÀt‚|jdd� | ¡ dksÜt‚| 	¡ dksìt‚|jdd� | ¡ dk�s
t‚| 	¡ dk�st‚d S )	NrÂ   rï  )rÂ   rï  r>  )rÐ  )rÂ   r>  )rj   )rï  r>  )
r#   r­   r”   r)  Ú
get_xboundr&   r   r*  Ú
get_yboundr€   r'   r    r    r!   Útest_set_xy_boundâ  s(    r{  c                  C   s8   dgd } t  dd¡\}}| | | ¡ | t ¡ ¡ d S )Nrr   rÆ   r2   )r#   r   rã  rÝ  rÛ  rÜ  )Zmylistr(   r   r    r    r!   Útest_pathological_hexbinú  s    
r|  c                  C   s(   t  ¡ \} }|jddgddgd d� d S )Nr2   r3   r¤  rª  r'   r    r    r!   Útest_color_None  s    r}  c                  C   s6   t  ¡ \} }|jddgdd�d }d| ¡ ks2t‚d S )Nr   r2   rÛ  rF  )r#   r   r}   rë  r&   ©r(   r   r_  r    r    r!   Útest_color_alias  s    r  c                  C   s4   t  ¡ \} }|jtdƒgd tdƒd� | ¡  d S )NrÇ   rÀ   rÃ  )r#   r   rX  r¬   rB   r'   r    r    r!   Útest_numerical_hist_label  s    r€  c                  C   sN   t  ¡ \} }d}d}| d¡d| d¡g}|jtdƒgd |d� | ¡  d S )Ns    å¾ˆæ¼‚äº®, rÃ¶mÃ¤n chÃ¤rÃ¡ctÃ¨rss   ×©×œ×•×�zutf-8zhi aardvarkrÇ   r‰   rÃ  )r#   r   ÚdecoderX  r¬   rB   )r(   r   r‚   r’  rU  r    r    r!   Útest_unicode_hist_label  s    þr‚  c                  C   sJ  t j d¡d } t ¡ \}}| | ¡ |j ¡  |jj 	¡ }|jj 
¡ dksPt‚|j ¡  |j ¡  |jj 	¡ }|d |d kr�|d |d ks”t‚|jj 
¡ dks¨t‚t ¡ \}}| | ¡ |j ¡  |jj 	¡ }|jj ¡ dksèt‚|j ¡  |j ¡  |jj 	¡ }|d |d k�r,|d |d k�s0t‚|jj ¡ dk�sFt‚d S )	Nrr   gæ^ 9^;rI   r   r2   r<   r8   rH   )r]   r^   r#   r   r}   r7  r×   rT   Z
offsetTextr  rS   r&   Z
tick_rightrQ   Zget_verticalalignmentr|   )rV  r(   r   ÚbeforeÚafterr    r    r!   Útest_move_offsetlabel#  s*    



$



(r…  zrc_spines.pngc               	   C   s0   dddddœ} t  | ¡� t ¡  W 5 Q R X d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rN   r
   r#   r   )r�  r    r    r!   Útest_rc_spines=  s    ür†  zrc_grid.pngc               
   C   sl   t  ¡ } dddœ}dddœ}dddœ}|||g}t|dƒD ],\}}t |¡� |  dd|¡ W 5 Q R X q:d S )NTrv   )r¯  zaxes.grid.axisr,   r-   r2   r‰   )r#   r­   r5  rN   r
   r”   )r(   Zrc_dict0Zrc_dict1Zrc_dict2r’  rõ   r�  r    r    r!   Útest_rc_gridH  s    þþþ
r‡  c               	   C   s¼   dddddœ} t j| d��˜ t  ¡ }| ddd¡}|j}|j}|jd rLt‚|jd sZt‚|jd rht‚|jd svt‚|jd s„t‚|jd r’t‚|jd s t‚|jd r®t‚W 5 Q R X d S )NFT)úxtick.bottomú	xtick.topú
ytick.leftúytick.right©r  r2   Útick1OnÚtick2On©	r#   r
   r­   r”   rQ   rT   Z_major_tick_kwr&   Z_minor_tick_kw©r�  r(   rÔ   ZxaxZyaxr    r    r!   Útest_rc_tick^  s"     ÿr‘  c               	   C   sÄ   dddddddddœ} t j| d��˜ t  ¡ }| ddd¡}|j}|j}|jd rTt‚|jd sbt‚|jd rpt‚|jd s~t‚|jd rŒt‚|jd sšt‚|jd r¨t‚|jd s¶t‚W 5 Q R X d S )NTF)r‰  r‹  rˆ  rŠ  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftrŒ  r2   r�  rŽ  r�  r�  r    r    r!   Útest_rc_major_minor_tickr  s*       ür’  c                  C   s¦   t  d¡} t  ddddg¡}t ¡ \}}| | |d¡ | d¡ | ¡ | ¡  }}t  	|¡t  	|¡ksjt
‚| ¡ dkszt
‚t|jd	d
�jdƒ t|jdd
�jdƒ d S )Nrå   r¢   rï  rO  r‹  Úmor?  r2   T)Úoriginal)ç      À?rÃ   rµ  rµ  F)g333333Ë?rÃ   g      ê?rµ  )r]   rb   rü   r#   r   r}   r<  r   r€   rž  r&   r  r   r  r   )r,   r-   r(   r   rt   ru   r    r    r!   Útest_square_plot‰  s     

 ÿ ÿr–  c                	   C   s²   t  t¡� t d ¡ W 5 Q R X t  t¡� t d d ¡ W 5 Q R X t  t¡� t t d¡t d¡¡ W 5 Q R X t  t¡�. t t d¡ d¡t d¡ dd¡f¡ W 5 Q R X d S )NrÃ  rx  rÀ   r¹  rp   r2   )	rŠ   r‹   r"  r#   r}   r]   rš  rb   ry   r    r    r    r!   Útest_bad_plot_args˜  s    "r—  zxy, clsr    ))r‰   r´  )r3   rI  rÆ  rn  )rå   rÀ   rb  )r‰   rå   c                 C   s,   t  ¡ \}}t|j| |fžŽ ƒ|ks(t‚d S rÖ   )r#   r   r)  Ú
pcolorfastr&   )rX  rV  Úclsr(   r   r    r    r!   Útest_pcolorfast£  s    rš  c                  C   sª   t jddddd�\} }|d  d¡ |d  d¡ |jD ]$}| ¡ dksLt‚| ¡ dks8t‚q8|d  d¡ |d  d¡ |jD ]$}| ¡ dks”t‚| ¡ dks€t‚q€d S )Nr3   Tr  rp  rã   rÂ  rK  )r#   r   rL  r  r6  Z
get_yscaler&   Z
get_xscale©r(   r7  r   r    r    r!   Útest_shared_scale¶  s    

rœ  c                	   C   sH   t  t¡� tjdd� W 5 Q R X t  t¡� tjdd� W 5 Q R X d S )NTrB  r  )rŠ   r‹   rŒ   r#   r  r    r    r    r!   Útest_shared_boolÈ  s    r�  c                   C   s   t  t ddg¡¡ dS )z4Violin plot should handle point mass pdf gracefully.r   N)r#   r®  r]   rü   r    r    r    r!   Útest_violin_point_massÏ  s    rž  c               
   C   sØ   t dt d¡gƒt dt d¡gƒ } t dddddddgdddddgdddddggt d¡t d¡d gƒ}t d|ƒ}t d|ƒ}t dg gƒt dg gƒ t dg d gƒ t dg d gƒ }| | }| | }| | | }||||•S )	Nr,   rÀ   r-   r  r2   )r3   rÀ   r©  rª  )r	   r]   rb   rw   )Zbase_xyZ
err_cyclerZxerr_cyZyerr_cyÚemptyZ	xerr_onlyZ	yerr_onlyZboth_errr    r    r!   Úgenerate_errorbar_inputsÔ  s*    $ÿú

ÿÿr   rl  c                 C   s    t  ¡ }|jf | Ž}| ¡  d S rÖ   )r#   r	  r¦  r  )rl  r   Zebr    r    r!   Útest_errorbar_inputs_shotgunê  s    r¡  Zdash_offsetc                  C   sT   t  ¡ \} }t dd¡}t |¡}tdddƒD ] }|j||| |dfddd� q.d S )	Nr   rr   rÆ   r3   ©rr   rr   rÀ   r<  )rÔ  rù   r¤   )r#   r   r]   rÍ   Z	ones_liker¬   r}   )r(   r   r,   r-   r;  r    r    r!   Útest_dash_offsetñ  s
    
r£  c                  C   sž   t  ¡ \} }|jddd� |j ¡ }|d d| j ks:t‚|jddd� |j ¡ }|d dksbt‚|jdd d� |j ¡ }|d tjd d | j ksšt‚d S )	NÚaardvarkrê  ©rú  r¹  g«ªªªªªÚ?rN  zaxes.titlepadr1  )	r#   r   r/   ZtitleOffsetTransZ
get_matrixr†  r&   rN   r«   )r(   r   rÀ  r    r    r!   Útest_title_padú  s    


r¦  c               	   C   sÂ   t  ¡ \} }dt jd< | d¡ |jddd� |jddd� d|jdd�ksPt‚d|jdd�ksdt‚d|jdd�ksxt‚t t¡� |jdd� W 5 Q R X t t¡� |jddd� W 5 Q R X d S )	NrP   zaxes.titlelocationr¤  rI   r9   r<   rv  Zfail)	r#   r   r«   r/   Z	get_titler&   rŠ   r‹   r"  r'   r    r    r!   Útest_title_location_roundtrip
  s    

r§  rC  c                 C   s‚   t jdd| d�\}}|d jddd� |d jddd� | ¡  |d j ¡ \}}|d j ¡ \}}||  krxd	ks~n t‚d S )
Nr3   r2   rB  r   rN  iØÿÿÿr¥  rO  r¢   )r#   r   r/   r  r+   r  r&   )rC  r(   r7  r,   r8  r   r    r    r!   Útest_title_location_shared  s    r¨  z
loglog.pngc                  C   sN   t  ¡ \} }t dd¡}|j||d dd� |jddd� |jd	dd
d� d S )Nr2   rD  r‰   rÀ   rû   r¹  r3   )rù  rc  rÇ   r™  )rù  rc  r›  )r#   r   r]   rb   rE  rã  )r(   r   r,   r    r    r!   Útest_loglog'  s
    r©  ztest_loglog_nonpos.pngc                  C   sÒ   t  dd¡\} }t dd¡}|d }d|d< d|d< ttdd	d
gdd�|jƒD ]~\\}}}||kr”|r~|j||d d|d� qÌ|j||d dd� qN|j||d dd� |rº|jd|d� |rN|j	d|d� qNd S )Nr‰   r2   rD  g      Àr´  r   rå   r–  rf  r°   r3   )rŠ  )rù   Únonpositiverû   rã   )rª  )
r#   r   r]   rb   rh  r   r6  rE  rL  r  )r(   r7  r,   r-   ZmcyZmcxr   r    r    r!   Útest_loglog_nonpos0  s"    ÿr«  c                  C   sœ  t  ¡ \} }| ddddg¡ | ¡ d dks2t‚t  ¡ \} }| ddddgddddg¡ | ¡ d dksnt‚t  ¡ \} }| ddddgddddg¡ | ¡ d dksªt‚t  ¡ \} }| t	 
d¡¡ | ¡ dksÖt‚| ¡ dksæt‚t  ¡ \} }| t	 
d¡¡ | ¡ dk�st‚| ¡ dk�s&t‚t  ¡ \} }| t	 d¡¡ | ¡ d dk�sXt‚t  ¡ \} }| t	 
d¡¡ | ¡ dk�s†t‚| ¡ dk�s˜t‚d S )	Nr   r2   r3   r‰   r¢  r6  rr   )rI  g      #@)r#   r   r}   rz  r&   ró  r  ry  rZ  r]   rš  r˜  rX  rb   r{   r'   r    r    r!   Útest_axes_marginsF  s0    r¬  )r  c                 C   s    dd„ }dd„ }||dœ| j  S )Nc                 S   s<   |   ¡ }| ¡  |  dd¡ | j ¡ ƒ }|d dks8t‚d S ©Nr   rÇ   rp   r‡  )rÒ   r  ri  rQ   Úget_major_locatorr&   ©r   rÛ   r£  r    r    r!   Ú	_helper_xj  s
    z&shared_axis_remover.<locals>._helper_xc                 S   s<   |   ¡ }| ¡  |  dd¡ | j ¡ ƒ }|d dks8t‚d S r­  )rÑ   r  rj  rT   r®  r&   r¯  r    r    r!   Ú	_helper_yq  s
    z&shared_axis_remover.<locals>._helper_yrß   )Úparam)Úrequestr°  r±  r    r    r!   Úshared_axis_removerh  s    r´  r	  r   Úsubplots_sharedrý   c                 C   sŽ   | j dkrt ¡ }| ¡ }nj| j dkr4t ¡ \}}nR| j dkrbtjddddd�\}}|d d }n$| j dkr†t ¡ }| d	d	d
d
g¡}||fS )Nr	  r   rµ  r3   rr  r  r   rý   rÃ   rs  )r²  r#   r­   r	  r   rý   )r³  r(   r   rª  r    r    r!   Úshared_axes_generator{  s    




r¶  c                 C   s   | \}}||ƒ d S rÖ   r    )r¶  r´  r(   r   r    r    r!   Útest_remove_shared_axesŒ  s    r·  c                  C   s`   t jddddd�\} }|d d }|d d  ¡ }| ¡  | dd¡ t|d d  ¡ |ƒ d S )Nr3   rr  r  r   r2   rÀ   )r#   r   r   r  ri  r   )r(   rª  r   Z	orig_xlimr    r    r!   Útest_remove_shared_axes_relim’  s    r¸  c                  C   sà   t  ddd¡} t j | j| jf¡}tjddddd�\}\}}| dd	¡ | dd	¡ | 	| | |¡ | 	| | |¡ | 
¡ s€| 
¡ r„t‚| ¡ s”| ¡ r˜t‚| ¡ | ¡   kr´d
ksºn t‚| ¡ | ¡   krÖd
ksÜn t‚d S )Ni°ÿÿÿr“  r&  r3   r2   Tr  éüÿÿrß  )r¹  rß  )r]   rb   r^   Zrandom_samplere  r#   r   ri  rj  r  r  r&   r  r   r€   )r:  r]  r(   rÔ   rÛ   r    r    r!   Útest_shared_axes_autoscale›  s    "rº  c                  C   sˆ   t  ¡ \} }|j ¡ jdd� | dd¡ | d¡ | j ¡  t	|j ¡ ƒ ƒdksVt
‚| dd¡ | j ¡  t	|j ¡ ƒ ƒdks„t
‚d S )Nr—  rá  r   rß  r¶  r3   )r#   r   rT   r®  Z
set_paramsri  r  r7  r×   r  r&   rj  r'   r    r    r!   Útest_adjust_numtick_aspect¬  s    


r»  c                  C   sL   t  ¡  dd¡} | jD ]0}| ¡ •| ¡ •  kr@dddgksn t‚qd S )Nrå   r   rž   r2   )r#   r­   r   r6  rÕ  r`  r&   rÜ  r    r    r!   Útest_auto_numticks¸  s    
r¼  c                  C   sv   t  ¡ \} }dtjd< | ddgddg¡ t | ¡ ¡t ddd	¡k 	¡ sNt
‚t | ¡ ¡t d
dd¡k 	¡ srt
‚d S )NZround_numbersúaxes.autolimit_modeg#B’¡œÇ;g     jø@g¼‰Ø—²Òœ<rr   iæÿÿÿrB  rå   rç  r‰   )r#   r   r�   r«   rE  r]   Úlog10rÕ  rb   rr  r&   r`  r'   r    r    r!   Útest_auto_numticks_log¿  s
    
$r¿  c                  C   s   t  ¡ \} }| g d¡ d S )N)rÃ   rž   )r#   r   r  r'   r    r    r!   Útest_broken_barh_emptyÉ  s    rÀ  c                  C   s†   t  ¡ \} }t dddddd¡}| |tjdd�fgddg¡}| ¡ d jd t |¡ks^t	‚| ¡ d jd	 t |¡d
 ks‚t	‚dS )z9Check that timedelta works as x, dx pair for this method.r  rD  r½  r   r2   r  r3   rp  ©r3   r   gUUUUUU¥?N)
r#   r   r•  r  r  r  Zverticesr—  r˜  r&   )r(   r   Zd0Úppr    r    r!   Útest_broken_barh_timedeltaÎ  s
     rÃ  c                 C   sD   | j ddd�}t d¡}tj dd¡}t ¡ \}}| |||¡ d S )Nz
2000-01-01rr   )r"  rÅ  rÜ  r½  )r&  r]   rb   r^   r“   r#   r   rK  )r)  ÚtimeÚdepthrV  r(   r   r    r    r!   Útest_pandas_pcolormesh×  s
    
rÆ  c                 C   sp   t jdddd�}t  t  tt|ƒƒ¡¡}|  ||dœ¡}t ¡ }|t  |j	¡d dk  
¡ }|jdd	|d
� d S )Nz2005-02z2005-03r�  rA  )rC  r‚  r3   r2   rC  r‚  r±  )r]   rb   rÎ   rü   r¬   r  r>  r#   r	  rA  r½  r}   )r)  rC  r‚  rB  r   Zwithout_zero_indexr    r    r!   Útest_pandas_indexing_datesà  s    rÇ  c                 C   sP   | j tjjdd�ddddgddd	d
dgd�}t ¡ \}}|jdddd|d� d S )N)rÀ   rå   rd  r,   r-   ZxeZyer2   r3   r‰   rå   rÀ   )ÚcolumnsrA  rä  )r>  r]   r^   Úuniformr#   r   r¦  rG  r    r    r!   Útest_pandas_errorbar_indexingë  s    
þrÊ  c                 C   s>   |   dddgdddgdœ¡}t ¡ \}}| |j|d ¡ d S )	Nrå   rÀ   rI  r´  r2   r3   )ZXXÚYYrË  )r>  r#   r   r}   rA  rG  r    r    r!   Útest_pandas_index_shapeó  s    rÌ  c                 C   sH   | j ddddddddddg
d�}|jdd … }t ¡ \}}| |¡ d S )Nr2   r3   r‰   rå   rÀ   r±  )rU  Zilocr#   r   rX  )r)  Zser_1Zser_2r(   r   r    r    r!   Útest_pandas_indexing_histù  s     rÍ  c                 C   sh   |   tdƒtdƒdœ¡}t d¡\}}|j|j|d dkdf |j|d dkdf dd� |j ¡  d S )Nr3   r°  r2   r‚   r’  rP   rÿ  )r>  r¬   r#   r   ró  r:   r7  r×   rG  r    r    r!   Útest_pandas_bar_align_center   s    þrÎ  c               	   C   sx   dd l m}  t ¡ }|  |d¡}tjtdd�� | d¡ W 5 Q R X |  	|d¡}tjtdd�� | d¡ W 5 Q R X d S )Nr   z;The apply_tickdir function was deprecated in Matplotlib 3.5r  r$  )
Zmatplotlib.axisr<  r#   r  ZXTickrŠ   r*  r   Zapply_tickdirZYTick)Zmaxisr   rë  r    r    r!   Ú#test_tick_apply_tickdir_deprecation  s    ÿÿrÏ  c                  C   s‚   t  ¡ } | jjdddd� | jjd jdks0t‚| jjd j ¡ dksJt‚| jjd j	 
¡ dksdt‚| jjd j	 ¡ dks~t‚d S )	Nr–   r‘  r$  )rõ  rû  rø  r   r>  r<  rê  )r#   r  rT   Úset_tick_paramsrî  Ú_sizer&   Ú	tick1linerë  r/  rT  )Zaxis_1r    r    r!   Ú.test_axis_set_tick_params_labelsize_labelcolor  s    
ÿrÓ  c                  C   s�   t  ¡ } | jddddd� | j| jfD ]d}|jd j ¡ dksBt‚|jd j 	¡ dksZt‚|jd j 
¡ dksrt‚|jd j ¡ dks&t‚q&d S )Nr’  rÀ   rž   rt  )rý  rÿ  rþ  r   r   r‘  )r#   r  rã  rQ   rT   rî  ré  rë  r&   Zget_linewidthZ	get_alphar1  )r   r<  r    r    r!   Útest_axes_tick_params_gridlines,  s    
ÿrÔ  c                  C   s”   t  ¡ } | jdddd� | jdddd� | jjd j ¡ dksBt‚| jjd j ¡ dks\t‚| jj	d j ¡ dksvt‚| jj	d j ¡ dks�t‚d S )NFTrç  )Z	labelleftZ
labelrightr›  r™  r   )
r#   r  rã  rT   rî  r/  rØ   r&   Úlabel2rï  rå  r    r    r!   Ú test_axes_tick_params_ylabelside8  s    ÿÿrÖ  c                  C   s”   t  ¡ } | jdddd� | jdddd� | jjd j ¡ dksBt‚| jjd j ¡ dks\t‚| jj	d j ¡ dksvt‚| jj	d j ¡ dks�t‚d S )NTFrç  )ÚlabeltopÚlabelbottomr›  r™  r   )
r#   r  rã  rQ   rî  r/  rØ   r&   rÕ  rï  rå  r    r    r!   Ú test_axes_tick_params_xlabelsideF  s    ÿÿrÙ  c                  C   s4   t  ¡  ¡ } | jtdƒd d�\}| ¡ dks0t‚d S )Nrh   r¢  r   )r#   r­   r   r}   r¬   r1  r&   )r   Úlnr    r    r!   Útest_none_kwargsV  s    rÛ  c                  C   s\   ddddg} t jtj| tjd�ddddgdd	�}t|j| ƒD ]\}}|jd |ks<t‚q<d S )
Nr   r2   r3   r‰   rA  rå   rÀ   rï  rÿ  )	r#   ró  r]   rü   Zuint8rh  rð   rX  r&   )r  r’  rÙ   r,   r    r    r!   Útest_bar_uint8\  s    $rÜ  zdate_timezone_x.pngr¢   c                  C   sj   dd„ t dƒD ƒ} tjdd� t ddd¡ tj| dgd dd	� t ddd¡ tj| dgd d
d	� d S )Nc              
   S   s(   g | ] }t j d dd|tj d¡d�‘qS ©éà  r3   é   úCanada/Eastern©r¦   Útzinfo©r•  r5  ÚtzZgettzr˜   r    r    r!   rœ   f  s   þ
ÿz(test_date_timezone_x.<locals>.<listcomp>r‰   ©rÅ  rb  r;  r3   r2   rà  )rä  ÚUTC©r¬   r#   r­   r  r¶  ©Z
time_indexr    r    r!   Útest_date_timezone_xc  s    þré  zdate_timezone_y.pngc                  C   sr   dd„ t dƒD ƒ} tjdd� t ddd¡ tjdgd | dd	d
d� t ddd¡ tjdgd | dd	d
d� d S )Nc              
   S   s(   g | ] }t j d dd|tj d¡d�‘qS rÝ  rã  r˜   r    r    r!   rœ   w  s   þ
ÿz(test_date_timezone_y.<locals>.<listcomp>r‰   rå  r;  r3   r2   rà  FT)rä  ZxdateÚydateræ  rç  rè  r    r    r!   Útest_date_timezone_yt  s    þ   ÿrë  zdate_timezone_x_and_y.pngc                     sn   t jj‰ ‡ fdd„tdƒD ƒ} tjdd� t ddd¡ tj| | dd	d
� t ddd¡ tj| | dd	d
� d S )Nc              	      s    g | ]}t j d dd|ˆ d�‘qS )rÞ  r3   rß  rá  r  r˜   ©ræ  r    r!   rœ   Š  s   ÿz.test_date_timezone_x_and_y.<locals>.<listcomp>r‰   rå  r;  r3   r2   ræ  T)rä  rê  z
US/Eastern)r•  ÚtimezoneÚutcr¬   r#   r­   r  r¶  rè  r    rì  r!   Útest_date_timezone_x_and_y†  s    
ÿrï  zaxisbelow.pngc                  C   sª   t  ¡ jdddd�} d}t| |ƒD ]‚\}}|jddddd� tjd	d
d�}| |¡ |jdddd� |j	ddddd� |j
d d …  d¡ | |¡ | ¡ |ks"t‚q"d S )Nr‰   T)rl  rC  r  )Fr_  Tr6  rr   rÀ  rT  rW  r£  r¤  r6   r   )r¤   rˆ   rë   F)r8   rH   rI   r<   )r#   r­   r   rh  r}   rs  r­  rr  rÍ  rã  rß  r   Zset_axisbelowZget_axisbelowr&   )r7  Úsettingsr   ZsettingÚcircr    r    r!   Útest_axisbelow—  s    
 ÿ
rò  c            	      C   s€   t j d¡ t jdd�\} }| ¡ }| d¡}| d¡}| j ¡  | j 	¡ }| 
|¡j}| 
|¡j}|| }t |d¡s|t‚d S )Nr�   rq  )r†  ÚXlabel2ÚTitler‰   )r#   r‘   r’   r   rÑ   r$   r/   r7  r×   Úget_rendererÚget_window_extentr  r8  r]   Úiscloser&   )	r(   r   rÛ   Zxlabel2r+   ÚrendererZbbox_y0_titleZbbox_y1_xlabel2Zy_diffr    r    r!   Útest_titletwiny«  s    



rù  c                  C   sx   t  ¡ \} }| jdd� | ¡ }| d¡ | d¡ | d¡ d}|j |¡ | j 	¡ }| 
|¡ |j ¡ |kstt‚d S )Nrs  )r8   ZXlabelró  rô  )rž   gÃõ(\�Âñ?)r#   r   r‰  rÑ   r$   r/   r+   râ  r7  rõ  Z_update_title_positionr  r&   )r(   r   rÛ   r²   rø  r    r    r!   Útest_titlesetposº  s    




rú  c                  C   sP   d t jd< t ¡ \} }|j d¡ | d¡ | j ¡  |j	 
¡ d dksLt‚d S )Núaxes.titleyr8   ú
xlabel topr2   ç¤p=
×£ð?)r�   r«   r#   r   rQ   r�   r/   r7  r×   r+   r  r&   r'   r    r    r!   Útest_title_xticks_topÉ  s    


rþ  c                  C   sX   d t jd< t ¡ \} }|jdddddd� | d¡ | j ¡  |j 	¡ d dksTt
‚d S )Nrû  r,   T©r<  rH   r8   rØ  r×  rü  r2   rý  )r�   r«   r#   r   rã  r/   r7  r×   r+   r  r&   r'   r    r    r!   Útest_title_xticks_top_bothÓ  s    
   ÿ

r   zleft, center)rI   r°   )r°   rP   )rI   rP   zleft title movedzcenter title keptzboth titles alignedc                 C   s¸   d t jd< t ¡ \}}| d¡ |j| dd� | |¡ | ¡  | r`|s`|j ¡ d dks´t	‚nT| s€|r€|j
 ¡ d dks´t	‚n4|j ¡ d }|j
 ¡ d }|dks¨t	‚||ks´t	‚d S )Nrû  g   èvH7BrI   r9   r2   r¢   )r�   r«   r#   r   rj  r/   r  Z_left_titler  r&   r+   )rI   rP   r(   r   Zyleftr·  r    r    r!   Útest_title_above_offsetÞ  s    


r  c                  C   sd   d t jd< t ¡ } |  ddddg¡}|jdddddd� | d	¡}| j ¡  | 	¡ d
 dks`t
‚d S )Nrû  rÃ   rI  rs  rÄ   r,   Trÿ  ÚBoor2   r¢   )r�   r«   r#   r­   rý   rã  r/   r7  r×   r  r&   )r(   r   Úttr    r    r!   Útest_title_no_move_off_pageü  s    
   ÿ

r  c                  C   sD   t  ¡ \} }| dddg¡ |jjdd� |j ¡  ¡ dks@t‚d S )Nç   @°ÎAç   €ûeÎAç   ÀF²ÎAr‘  )rû  )r#   r   r}   rT   rÐ  Úget_offset_textrë  r&   r'   r    r    r!   Útest_offset_label_color	  s    r	  c                  C   sb   t  ¡ \} }| dddg¡ |jjddd� |j ¡  ¡ s>t‚|jjdd� |j ¡  ¡ r^t‚d S )Nr  r  r  FT)Zlabel1OnÚlabel2On)r
  )r#   r   r}   rT   rÐ  r  rØ   r&   r'   r    r    r!   Útest_offset_text_visible  s    r  c                  C   s6   t  ¡ \} }| dt ddg¡ d ¡ | j ¡  d S )Nr2   r   gê-�™—q=g„þäqÙ‰E)r#   r   r}   r]   rü   r7  r×   r'   r    r    r!   Útest_large_offset  s    r  c                  C   s^   t  ¡ \} }dd„ tdddƒD ƒ}t ddt|ƒ¡}t ddt|ƒ¡ }}| ||||¡ d S )Nc              	   S   s   g | ]}t   d ddd|¡‘qS ©r|  r´  rÇ   rB  r  r
  r    r    r!   rœ   "  s     z#test_barb_units.<locals>.<listcomp>r   r‡  rr   rÀ   rO  )r#   r   r¬   r]   rÍ   r  Zbarbs©r(   r   rC  r-   ÚuÚvr    r    r!   Útest_barb_units   s
    r  c                  C   s^   t  ¡ \} }dd„ tdddƒD ƒ}t ddt|ƒ¡}t ddt|ƒ¡ }}| ||||¡ d S )Nc              	   S   s   g | ]}t   d ddd|¡‘qS r  r  r
  r    r    r!   rœ   *  s     z%test_quiver_units.<locals>.<listcomp>r   r‡  rr   rÀ   rO  )r#   r   r¬   r]   rÍ   r  Zquiverr  r    r    r!   Útest_quiver_units(  s
    r  c                  C   sn   t j} t ¡ \}}tdƒD ]N}| tdƒ¡\}| tdƒtdƒ¡}|D ] }| | ¡ ƒ| | ¡ ƒksFt	‚qFqd S )NrÀ   r‰   )
r#  Úto_rgbr#   r   r¬   r}   ró  rë  r  r&   )r  r(   r   r;  rÚ  ZbrsÚbrr    r    r!   Útest_bar_color_cycle0  s    r  c                  C   s  t  dd¡\} \}}| ddgddg¡ | ddgddg¡ |jjddd� |jjddd� |jdd�D ]}| ¡ dksht‚qh|j	dd�D ]}| ¡ dksŠt‚qŠ|j
d	d
d� |j
ddd� |jdd�D ]}| ¡ d
ksÈt‚qÈ|j	dd�D ]}| ¡ dksêt‚qêd S )Nr2   r3   r   rv   rÊ   )r›  rÁ  r“  rš  r,   é5   )r<  rü  r-   rÈ   )r<  rÁ  rç  )r#   r   r}   rQ   rÐ  rT   r�  rS  r&   ra  rã  )r¿  r   rÛ   Útextr    r    r!   Útest_tick_param_label_rotation:  s    r  c            	      C   sˆ  t  ¡ \} }tdƒD ]D}| tdƒtdƒ¡}t d |¡¡}t| ¡  	¡ ƒt|ƒkst
‚qtddƒD ]D}| tdƒtdƒ¡}t d |¡¡}t| ¡  	¡ ƒt|ƒksdt
‚qdt d¡}dD ]<}|jtdƒtdƒf|diŽ}t| ¡  	¡ ƒt|ƒks¸t
‚q¸t d¡}tddgdd�D ]r\}}|jtdƒtdƒf|diŽ}t d |¡¡}t| ¡  	¡ ƒt|ƒk�sbt
‚t| ¡  	¡ ƒt|ƒk�st
‚�qd S )	Nr‰   zC{}rI  r<  )ré   Z
facecolorsr¤   rê   r^  )Ústart)r#   r   r¬   r  r#  rê  rÙ  Útuplerõ  Zsqueezer&   r0  r5  rö  )	r(   r   r;  ÚccÚtargetÚalZedge_targetÚelZface_targetr    r    r!   Útest_fillbetween_cycleM  s&    

r  c                  C   sœ   dt jd< t  ¡ \} }d}| |¡ | ddgddg¡ | ¡ \}}|j ¡ }| ||g¡\}}| ddg¡\}}	|	| | }
t	||
 ||
 g||	gƒ d S )NrV  r½  r  rr   rÆ   )
r#   r«   r   Zset_xmarginrF  r   rQ   r  rè   r   )r(   r   ÚmarginZxlim0Zxlim1rè   Zxlim0tZxlim1tZx0tZx1trÞ  r    r    r!   Útest_log_marginsi  s    


r!  c               	   C   sˆ   d} t  | ¡t  | ¡ }}t  | d ¡}t ¡ \}}t t¡� |j|||d� W 5 Q R X d}|j|||d� |j|||g|  d� d S )NrÀ   r2   rF  )rž   rž   rž   )r]   rb   r#   r   rŠ   r‹   r"  r4   )r  r,   r-   ru  r(   r   Zc_rgbr    r    r!   Útest_color_length_mismatchw  s    r"  c                   C   s   t jdgdd� t  ¡  d S )Nr¢   ÚLabelrÃ  )r#   ri  rB   r    r    r    r!   Útest_eventplot_legendƒ  s    r$  c                  C   st   t  ¡ \} }| tdƒd¡ |jddtdƒdd� |jddgddgdd�\}}| ¡ | ¡   krjdkspn t‚d S )Nrå   r2   r   )rI   r¸  )rÃ   rÄ   rÅ   r=  rý  )r#   r   ró  r¬   r  r  r&   )r(   r   Zrect1Úrect2r    r    r!   Útest_bar_broadcast_argsˆ  s
    r&  c                	   C   s    t  ddgddg¡ t t¡� t  tj¡ W 5 Q R X t t¡� t  tj¡ W 5 Q R X t t¡� t  	tj¡ W 5 Q R X t t¡� t  	tj¡ W 5 Q R X d S r'  )
r#   r}   rŠ   r‹   r"  rt   r]   r
  rŒ  ru   r    r    r    r!   Útest_invalid_axis_limits“  s    r'  râ  rJ  rã   rð  c                 C   s:   t  ¡ }| ddddg¡ | | ¡ | |¡ | ¡  d S )Nr2   r3   r‰   rå   )r#   r  r}   rL  r  r1  )râ  rð  r   r    r    r!   Útest_minorticks_on   s
    

r(  c                  C   sv   t  ¡ \} }| dd¡ | ¡ }| ddgddg¡ t  ¡ \}}| dd¡ | ddgddg¡ t|jj|jjƒ d S )Nr2   r3   r   rž   )r#   r   rÖ  rÒ   r}   r   r  Z	intervalx)r(   r   Zxtwinr,  rÛ   r    r    r!   Útest_twinx_knows_limitsª  s    r)  c                   C   s   t jddgddgddd� d S )Nr   r2   r¡  )rÔ  rù   )r#   r}   r    r    r    r!   Útest_zero_linewidth¹  s    r*  c                  C   s<   t  ¡ \} }|jg g g dd� |jg g g dd� | ¡  d S )Nzempty y)r©  r*   zempty x)rª  r*   )r#   r   r¦  rB   r'   r    r    r!   Útest_empty_errorbar_legend¾  s    r+  c                 C   s\   t  ddd¡}dd„ |D ƒ}dd„ |D ƒ}dd„ |D ƒ}|  ¡  ||¡ | ¡  ||¡ d S )Nr   rr   rÅ   c                 S   s0   g | ](}d |d  d|d   d|  d ‘qS )gÍÌÌÌÌÌ@r‰   rö  r3   g\�Âõ(\@ç      @r    r˜   r    r    r!   rœ   È  s     z%test_plot_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ‘qS r    r   r
  r    r    r!   rœ   É  s     c                 S   s   g | ]}t |ƒ‘qS r    r   r
  r    r    r!   rœ   Ê  s     )r]   rb   r   r}   )r   r   r  r  r,   r-   r    r    r!   Útest_plot_decimalÅ  s    r-  c                 C   s0   |   ¡ jddddd� |  ¡ jddddd� d S )Nr   r†   ræ   rž   )rc  rÔ  r_  )r   r}   )r   r   r    r    r!   Útest_markerfacecolor_none_alphaÒ  s    r.  c                  C   sn   dt jd< dt jd< t  ¡ \} }| | j ¡ ¡}| d¡ | | j ¡ ¡}|j|jk sZt‚|j	|j	k sjt‚dS )z5Test that tick padding gets turned off if axis is offr$  zxtick.directionzytick.directionÚoffN)
r#   r«   r   Úget_tightbboxr7  rõ  r<  r  r&   r  ©r(   r   ÚbbÚbb2r    r    r!   Útest_tick_padding_tightbboxØ  s    


r4  c                  C   s0  d\} }t jtdd| |ƒtdd|  | ƒf \}}t  |¡d t  d||  ¡t  |¡  }t ¡ \}}| |||dd…dd…f ¡ | d¡ | 	¡  dd	g}d
dg}|d |d |d |d  |d |d  g}	|j
|	d�\}
}|dksðt‚|j ¡  t  ddgd	dgg¡}t  |
 ¡  ¡ |k¡�s,t‚dS )z:
    Ensure that inset_ax argument is indeed optional
    ©r  r  r2   rÀ   rr   Nrp   r¢   r�   ç333333@r3   r÷  r   )ÚboundsrÂ   )r]   ÚmgridrÖ  rÎ   r  r#   r   rK  r  Úapply_aspectÚindicate_insetr&   r7  r×   rü   rr  Úget_bboxÚ
get_points)ÚdxÚdyr-   r,   r‘  r(   r   rt   ru   r  ÚrecÚ
connectorsÚxxr    r    r!   Ú
test_insetä  s&    ÿ
*
,

ÿrB  c                  C   s‚  d\} }t jtdd| |ƒtdd|  | ƒf \}}t  |¡d t  d||  ¡t  |¡  }t ¡ \}}| |||d d…d d…f ¡ | d¡ | 	¡  | 
ddddg¡}| |||d d…d d…f ¡ | d	d
g¡ | ddg¡ | | ¡ ¡ | |¡\}}	t|	ƒdk�st‚|j ¡  t  d	dgd
dgg¡}
t  | ¡  ¡ |
k¡�sNt‚t  ddgddgg¡}
t jj| ¡  ¡ |
dd� d S )Nr5  r2   rÀ   rr   rp   r¢   rá  gffffffÖ?r�   r6  r3   r÷  rå   rÂ   g=
×£p=ä?gKXc'æ?gö(\�Âõê?gèÚÐí?g-Cëâ6?©Zrtol)r]   r8  rÖ  rÎ   r  r#   r   rK  r  r9  Ú
inset_axesri  rj  r  Zindicate_inset_zoomr  r&   r7  r×   rü   rr  r;  r<  r¨   r   r  )r=  r>  r-   r,   r‘  r(   r   Zaxin1r?  r@  rA  r    r    r!   Útest_zoom_inset  s:    ÿ
*


ÿ
ÿ
  ÿrE  zinset_polar.pngc                  C   sh   t  ¡ \} }|jddddgdd�}t|tƒs0t‚t ddd¡}dtj | }| 	||¡ | 	||¡ d S )	Nrž   rÃ   rÐ  Trä  r   r3   rP  )
r#   r   rD  r¹   r   r&   r]   rb   rÏ   r}   )rq  r   Úaxinsr£  rn  r    r    r!   Útest_inset_polar"  s    rG  c                  C   s4   t  ¡ \} }|jddddgdd�}t|tƒs0t‚d S )NrÄ   rÅ   ÚhammerrÈ  )r#   r   rD  r¹   r   r&   ©rq  r   rF  r    r    r!   Útest_inset_projection/  s    rJ  c                  C   s8   t  ¡ \} }|jddddgtjd�}t|tjƒs4t‚d S )NrÄ   rÅ   )r+  )r#   r   rD  ÚAAr   r¹   r&   rI  r    r    r!   Útest_inset_subclass5  s    rL  Ú
x_invertedÚ
y_invertedc                 C   s  t  dd¡\}\}}t d¡}| ||d¡ | r8| ¡  |rD| ¡  | ddddg|¡\}}|\}}	}
}| rpdnd}|r|dnd}||
jd |jd   dks t	‚||jd |	jd   dksÀt	‚||	jd |jd   dksàt	‚||jd |
jd   dk�st	‚d	S )
zR
    Test that the inset lines are correctly located with inverted data axes.
    r2   r3   rr   r†   rÀ   rå   rp   r   N)
r#   r   r]   rb   r}   r  r  r:  rf  r&   )rM  rN  r(   rÔ   rÛ   r,   r  r7  Z
lower_leftZ
upper_leftZlower_rightZupper_rightZsign_xZsign_yr    r    r!   Útest_indicate_inset_inverted;  s    
   rO  c                  C   s²   t  ¡ \} }| d¡ |jddddgdd� t | ¡ jd¡sBt‚| d¡ |jddddgdd� t | ¡ jd¡sxt‚| d¡ |jddddgd	d� t | ¡ jd¡s®t‚d S )
Nrï  rÃ   r=  rv   rš  rÂ   r”  rx  Zactive)	r#   r   r  râ  r]   r¥  r  rc  r&   r'   r    r    r!   Útest_set_positionU  s    


rP  c                  C   sd   t  ¡ \} }|jj | j ¡ ¡}| ddd dd¡ |jj | j ¡ ¡}tj	j
| ¡ | ¡ dd� d S )N)rP  rP  re  re  r÷  Fg�íµ ÷Æ°>rC  )r#   r   rß  rH   rö  r7  rõ  Z_set_view_from_bboxr]   r¨   r   r<  r1  r    r    r!   Ú!test_spines_properbbox_after_zoomb  s      ÿrQ  c                  C   sH   t  ¡ \} }t| ƒ | tjdd¡ | j ¡ }tj 	| 
|¡jd¡ d S )Nr2   r  ið  )r#   r   r   r  r]   r™  r7  rõ  r¨   r   r0  rc  )r(   r   rø  r    r    r!   Útest_gettightbbox_ignore_nanl  s
    
rR  c              	   C   sj   t ddƒ}| jtjjdd�|d�}| jtjjdd�|d�}| jddddddddg|d�}t |||¡ d S )Nrr   rB  rÆ  rd  rF  r2   r   )r¬   rU  r]   r^   rÉ  r#   r4   )r)  r-  r,   r-   r6   r    r    r!   Ú"test_scatter_series_non_zero_indext  s
    
rS  c                   C   s"   t  g g ¡ t jg g g g d� d S )N)r^  r6   )r#   r4   r    r    r    r!   Útest_scatter_empty_data}  s    rT  zannotate_across_transforms.pngc               	   C   s¤   t  ddd¡} t  |  ¡t  | ¡ }tjdd�\}}| | |¡ | ddddg¡}| d	¡ |j	 
d
¡ |j 
d
¡ |jd| d |d f|jd|jtdd�d� d S )Nr   rr   rç  )g…ëQ¸@r‰   r;  r=  rž   rÅ   rÄ   Fr°   rÈ  r?  r=  )r>  )rX  rY  rZ  r[  ry  )r]   rÍ   r:  rÎ   r#   r   r}   rD  r  rQ   r   rT   r\  Z	transDataró   rÌ  )r,   r-   r(   r   rF  r    r    r!   Útest_annotate_across_transformsƒ  s    
 þrU  zsecondary_xy.pngc                  C   s®   t jddddd�\} }dd„ }t|ƒD ]‚\}}| t dd¡t dd¡¡ |d	krZ|j}n|j}|d
||fd� |ddd„ dd„ fd� |ddd„ dd„ fd� |dƒ q&d S )Nr2   r3   rû  T)rÉ  r¿  c              
   S   s,   t jdd�� d|  W  5 Q R £ S Q R X d S ©Nr  r  r2   ©r]   r	  rí  r    r    r!   Úinvert˜  s    z!test_secondary_xy.<locals>.invertrD  r   rÄ   ©Z	functionsr=  c                 S   s   d|  S ©Nr3   r    rí  r    r    r!   r€  ¤  r�  z#test_secondary_xy.<locals>.<lambda>c                 S   s   | d S rZ  r    rí  r    r    r!   r€  ¤  r�  rà  c                 S   s   | d S rZ  r    rí  r    r    r!   r€  ¥  r�  c                 S   s   | d S )Nrž   r    rí  r    r    r!   r€  ¥  r�  rs  )r#   r   r5  r}   r]   rb   Úsecondary_xaxisÚsecondary_yaxis)r(   r7  rX  Únnr   Úsecaxr    r    r!   Útest_secondary_xy”  s    r_  c               	   C   s”   t  ¡ \} }| t dd¡t dd¡¡ t t¡� |jddd„ d� W 5 Q R X t t¡� | d¡ W 5 Q R X t t¡� | 	d¡ W 5 Q R X d S )	Nr3   rD  rÄ   c                 S   s   d|  S rw  r    rí  r    r    r!   r€  ­  r�  z%test_secondary_fail.<locals>.<lambda>rY  r<   rH   )
r#   r   r}   r]   rb   rŠ   r‹   r"  r[  r\  r'   r    r    r!   Útest_secondary_fail©  s    r`  c                  C   sv   t jdd�\} }| t dd¡t dd¡¡ dd„ }|jd||fd� | j ¡  |  d	¡ t	| 
¡ jd
dddgƒ d S )Nrû  r;  r3   rD  c              
   S   s,   t jdd�� d|  W  5 Q R £ S Q R X d S rV  rW  rí  r    r    r!   rX  ¸  s    z%test_secondary_resize.<locals>.invertr8   rY  )r´  rå   r•  rÃ   rµ  )r#   r   r}   r]   rb   r[  r7  r×   r’  r   r  r   )r(   r   rX  r    r    r!   Útest_secondary_resize´  s    

ra  c                  C   sÎ   t jdd�\} }| t dd¡t dd¡¡ dd„ }|jd||fd�}t|j ¡ t	j
ƒs\t‚| ¡  t|j ¡ t	jƒszt‚| d	¡ t  ¡  t|j ¡ t	jƒs¢t‚| d
¡ t  ¡  t|j ¡ t	j
ƒsÊt‚d S )Nrû  r;  r3   rD  c              
   S   s,   t jdd�� d|  W  5 Q R £ S Q R X d S rV  rW  rí  r    r    r!   rX  Æ  s    z'test_secondary_minorloc.<locals>.invertr8   rY  rã   rK  )r#   r   r}   r]   rb   r[  r¹   Z_axisZget_minor_locatorr·   ZNullLocatorr&   r1  ZAutoMinorLocatorrL  r×   Z
LogLocator)r(   r   rX  r^  r    r    r!   Útest_secondary_minorlocÂ  s*    
ÿ
ÿ

ÿ

ÿrb  c                  C   sT   t  ¡ \} }| d¡ | d¡}|j t ¡ ¡ | j 	¡  t
|j ¡ tjƒsPt‚d S )Nrã   r8   )r#   r   rL  r[  rQ   r¶   r·   ZScalarFormatterr7  r×   r¹   rº   r&   ©r(   r   r^  r    r    r!   Útest_secondary_formatterÚ  s    


 ÿrd  c                  C   s*   t  ¡ \} }| d¡}t|ƒdks&t‚d S )Nr8   z<SecondaryAxis: >)r#   r   r[  r0   r&   rc  r    r    r!   Útest_secondary_reprä  s    
re  c                 C   sh  | j  ¡  | j  ¡ }g }t|j|jgƒD ]P\}}| |¡}|rntj|j	|j
f|j|jdddddd�}|  |¡ ||g7 }q(g }tddd	d
gƒD ]R\}}	|j|	  |¡}tj|j	|j
f|j|jdddddd�}
|  |
¡ ||g7 }qŽ| ¡ }tj|j	|j
f|j|jdddddd�}|  |¡ |}| |¡}tj|j	|j
f|j|jdddddd�}|  |¡ |}||||fS )zS
    Helper for the tests below that test the extents of various axes elements
    rá  r-   ræ   Nr‰   )rc  r¸  rë   rê   ré   rè   ro  rH   r8   rI   r<   r¥   r�   rõ  r3   r‘  r2   )r7  r×   rõ  r5  rQ   rT   r0  rs  rt  r  r  rc  r¸  rï   rß  rö  )r(   r   rø  Úbbaxisr]  Zaxxr2  ZaxisrÚbbspinesr‚   Zspinerr%  Úbbaxr3  Úbbtbr    r    r!   Úcolor_boxesê  sx    



     ý

     ý

     ý


     ý
rj  c               	   C   sz  t ddiƒ�> tjddd�\} }| j ¡  t | ¡ t| |ƒ\}}}}W 5 Q R X dddd	gd
dddgg}t|ƒD ]*\}}tj	j
|| Ž }	t|j|	jdd� qpddddgddddgddddgddddgg}t|ƒD ]*\}}tj	j
|| Ž }	t|j|	jdd� qÐddddg}tj	j
|Ž }	t|j|	jdd� ddddg}tj	j
|Ž }	t|j|	jdd� | ¡  | j¡j}
t|
| ¡ jdd� d S )Nú_internal.classic_modeFrç  ©rI  rI  ©r†  rÉ  g     Ø^@gŒã8ŽãøR@g     ºŽ@g     €@@gŽã8Žã`U@gþÿÿÿÿÿX@g     °J@g     �@r3   )Údecimalç     Àb@ç-²�ïÿ]@ç     �@çF¶óýÔ8&@ç     à�@rN  çNÑ‘\þÿ]@ç      Ž@ç½R–!Ž³�@çþÿÿÿÿÿ]@gÔ+eâ`U@gb„ðhãøR@g{®Gáè�@g{®GáÈ�@)r
   r#   r   r7  r×   r  rj  r5  r  ÚBboxÚfrom_boundsr   r7  r  ZtransformedÚtransFigurerö  )r(   r   rf  rg  rh  ri  r  r]  r’  ÚtargetbbZaxbbr    r    r!   Útest_normal_axes  s6    



þ



ür|  c            
   	   C   s*  t ddiƒ�B tjddd�\} }| j ¡  |jg g d� t| |ƒ\}}}}W 5 Q R X t|ƒD ]\}}|d ks\t‚q\ddd	d
gddd	dgddd
dgddd
dgg}t|ƒD ]*\}}t	j
j|| Ž }	t|j|	jdd� q¦ddd	dg}t	j
j|Ž }	t|j|	jdd� ddd	dg}t	j
j|Ž }	t|j|	jdd� d S )Nrk  Frç  rl  rm  ©ZxticklabelsZyticklabelsro  rp  rq  rr  rs  rN  rt  ru  rv  rP  ©Zatolrw  ç      ^@)r
   r#   r   r7  r×   r~   rj  r5  r&   r  rx  ry  r   r7  )
r(   r   rf  rg  rh  ri  r]  r’  r  r{  r    r    r!   Útest_nodecorator?  s*    




ür€  c            
   	   C   s  t ddiƒ�P tjddd�\} }|jg g d� |jj d¡ | j ¡  t	| |ƒ\}}}}W 5 Q R X dd	d
dgddd
dgddddgddddgg}t
||ƒD ]&\}}tjj|Ž }	t|j|	jdd� q˜ddd
dg}tjj|Ž }	t|j|	jdd� dd	d
dg}tjj|Ž }	t|j|	jdd� d S )Nrk  Frç  rl  rm  r}  )r  rS  ro  g      8@rq  g£s~Šã8&@rs  rN  rt  rr  ru  rv  rP  r~  rw  g     €�@)r
   r#   r   r~   rß  rH   râ  r7  r×   rj  rh  r  rx  ry  r   r7  )
r(   r   rf  rg  rh  ri  Útargetsr  Zbbspiner{  r    r    r!   Útest_displaced_spine]  s(    




ür‚  c               
   C   sô   ddddgddddggddddgd	d
ddggddddgddddggg} t dddgƒD ]š\}}tddiƒ�€ tjddd�\}}|j|d� |j ¡  t||ƒ\}}}}t ddgƒD ]2\}	}
tj	j
| | |	 Ž }t||
 j|jdd� q°W 5 Q R X qTdS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    ro  r  rq  çÔ+eâ8&@rr  ru  g†ZÓ¼ã8[@ç�ã8Žã8&@gœÄ °r\a@r4  gÅqÇqœ\@gä8Žã8b@rp  r÷  r$  Zinoutrk  Frç  rl  rm  r%  r   r3   rP  r~  N)r5  r
   r#   r   rã  r7  r×   rj  r  rx  ry  r   r7  )r�  ZdnumÚdirsr(   r   rf  rg  rh  ri  r]  rÁ   r{  r    r    r!   Útest_tickdirsx  s.    

ÿ

ÿ

ÿü
  ÿr†  c            	   	   C   sl  t ddiƒ��T tjddd�\} }| j ¡  |jddd� t| |ƒ\}}}}t| |ƒ\}}}}d	d
ddgddddgg}tdƒD ].}tj	j
|| Ž }t||d  j|jdd� q~tjddd�\} }| j ¡  |jddd� | ¡  |jdddd� | j ¡  t| |ƒ\}}}}d	dddgddddgg}tdƒD ]0}tj	j
|| Ž }t||d  j|jdd� �q,W 5 Q R X d S )Nrk  Frç  rl  rm  rv   r$  )r›  rø  ro  gŒã8Žã8[@rq  r„  gC­iÞq\a@rt  rƒ  ru  r3   rP  r~  r™  r–   rl  gPUUUUUB@gVUUUUÕT@g‘z6«ªP@r  goð…ÉTÕT@)r
   r#   r   r7  r×   rã  rj  r¬   r  rx  ry  r   r7  r1  )	r(   r   rf  rg  rh  ri  r�  r÷  r{  r    r    r!   Útest_minor_accountedforŽ  sB    


ÿ  ÿ



ÿ  ÿr‡  c                 C   sR   |   d¡ d¡ |  d¡ d¡ |   d¡}| d¡ | d¡ |  d¡ d¡ d S )Nr  Fr/  r  TÚon)r”   r<  r   r    r    r!   Útest_axis_bool_arguments­  s    


r‰  c                  C   sr   t  ¡ \} }d}d}d}d}| ||||g¡}t|ƒ||||fksFt‚||f| ¡ ksZt‚||f| ¡ ksnt‚d S )NrÀ   rr   rÇ   rÅ  ©r#   r   r<  r  r&   r   r€   ©r(   r   r[   r\   r  r  râ  r    r    r!   Útest_axis_extent_arg¹  s    rŒ  c                  C   sr   t  ¡ \} }d}d}d}d}|j||||d�}t|ƒ||||fksFt‚||f| ¡ ksZt‚||f| ¡ ksnt‚d S )NrÀ   rr   rÇ   rÅ  )r[   r\   r  r  rŠ  r‹  r    r    r!   Útest_axis_extent_arg2É  s    r�  c                  C   sJ   t jdddgddddggdd�\} }} |d	 dks6t‚|d
 dksFt‚d S )Nr2   r3   r‰   rå   rÀ   rI  r—  r  r   rp   )r#   rX  r&   ©rq  rñ  r    r    r!   Útest_hist_auto_binsÚ  s    &r�  c            
   	   C   s€   t  d¡\} \}}dddg}|tjg }| |¡\}}}tjdd�� | |¡\}}	}W 5 Q R X tj ||¡ tj ||	¡ d S )Nr3   r2   r‰   r  r”  )r#   r   r]   r
  rX  r	  r¨   r   )
r(   rÔ   rÛ   rV  Znan_datarñ  r£  rq  ZnanbinsZnanedgesr    r    r!   Útest_hist_nan_dataà  s    
r�  c                  C   sD   t jtj d¡dddd�\} }} |d dks0t‚|d dks@t‚d S )	Nrr   r—  rw  T)r¬   rw  r   rp   r2   )r#   rX  r]   r^   r“   r&   rŽ  r    r    r!   Útest_hist_range_and_densityî  s     ÿr‘  c            
      C   s|   t  ¡ \} }dddg}|j|||ddd�}|jj\}}}|jD ]8}|D ]}|j|jksFt‚qF|D ]}	|	j|jks`t‚q`q>d S )Nr2   r3   r‰   rÀ   )r,   r¸  rª  rú  ro  )r#   r   ró  r¦  r–  rð   ro  r&   )
r(   r   r,   ZbarcontZ	data_lineZcaplinesZbarlinecolsró  ZcaplineZ
barlinecolr    r    r!   Útest_bar_errbar_zorderõ  s    

r’  c                  C   sR   t  ¡ \} }| ¡  | ddg¡ | ¡ dks2t‚| dg¡ | ¡ dksNt‚d S )NrÅ   rá  r?  rp   r¹  )r#   r   r  r\  r   r&   r'   r    r    r!   Útest_set_ticks_inverted  s    r“  c                  C   sv   t jdd�} |  ¡ }| ddgddg¡ |jddddd	d
d� | d¡ | j | ¡ ¡}|j	|j
 t d¡ksrt‚d S )Nr¢  r;  r=  rà  rã   r3  Úlogit)çF]tÑE·?gœî£'^P?r2   r  ©râ  rt   rð  ru   rs   r  r   r3   )r#   r­   r”   r}   r~   rþ   rz  Ztransform_bboxr  r¸  rc  rŠ   Úapproxr&   )r(   r   r²   r    r    r!   Ú$test_aspect_nonlinear_adjustable_box  s      þ
r˜  c                  C   sˆ   t jdd�} |  ddddg¡}| ddgddg¡ |jddd	d
ddd� | d¡ | ¡  | ¡ t 	ddg¡kstt
‚| ¡ d
ks„t
‚d S )Nr¢  r;  rÃ   rs  r=  rà  rã   )r2   rÆ   r”  )gûÙbeøF„?r•  r2   r  r–  r   gS[Ú:XL	@g'ò�InŸ?@)r#   r­   rý   r}   r~   rþ   r9  r   rŠ   r—  r&   r€   r'   r    r    r!   Ú(test_aspect_nonlinear_adjustable_datalim  s      þ
r™  c                  C   sÀ   t  ¡ \} }| ¡ }| ddg¡ | d¡ | ¡ dks<t‚t  ¡ \}}| d¡ | ddgddg¡ |jd	d
d� | j	 
¡  |j	 
¡  | ¡ }| ¡ }| ¡ }t|j|jƒ t|j|jƒ d S )Nrb  iX  r2   r¢   r   r3   rI  rÆ  r¶  r  r  )r#   r   rÒ   r}   Úset_box_aspectZget_box_aspectr&   rþ   r  r7  r×   r  r   r   )r+  rÔ   Zaxtwinr,  rÛ   Úbb1Zbbtr3  r    r    r!   Útest_box_aspect)  s     



rœ  c                  C   sš   t  ¡ \} }| ddddg¡ | j ¡  | d¡ t  ¡ \}}| d¡ |j ¡  | ddddg¡ | j ¡  |j ¡  | ¡ }| ¡ }t|j|jƒ d S )NrÃ   rµ  rÄ   r¢   )	r#   r   râ  r7  r×   rš  r  r   r   )r+  rÔ   r,  rÛ   r›  r3  r    r    r!   Útest_box_aspect_custom_positionD  s    





r�  c                  C   sn   t jddtdd�dd�\} }| j ¡  | j ¡ }g }|jD ] }| |¡}| |j	|j
g¡ q:t||d ƒ d S )Nr3   r‰   r2   )r  T)rÊ  r¿  r   )r#   r   rÌ  r7  r×   rõ  r6  rö  rÌ  rc  r¸  r   )r(   r7  rø  r6  r   r2  r    r    r!   Útest_bbox_aspect_axes_init[  s    ÿ




rž  c                  C   s6   t  dd¡\} }| dddg¡ | j ¡  | ¡  d S r©  )r#   r   r}   r7  r×   Zredraw_in_framer'   r    r    r!   Útest_redraw_in_framej  s    
rŸ  c                  C   sB   t  ¡ \} }| j d¡d k	s t‚| d¡ | j d¡d ks>t‚d S )N)rç  rç  F)r#   r   r7  Zinaxesr&   r   r'   r    r    r!   Útest_invisible_axes_eventsq  s    
r   c                  C   s<   dt jd< t  ¡ } | j ¡ }|D ]}|j ¡ dks t‚q d S ©Nr5  zlines.markeredgecolor)r#   r«   r  rQ   Úget_major_ticksrÒ  Úget_markeredgecolorr&   ©r   Zticksrë  r    r    r!   Ú"test_xtickcolor_is_not_markercolory  s
    

r¥  c                  C   s<   dt jd< t  ¡ } | j ¡ }|D ]}|j ¡ dks t‚q d S r¡  )r#   r«   r  rT   r¢  rÒ  r£  r&   r¤  r    r    r!   Ú"test_ytickcolor_is_not_markercolor�  s
    

r¦  r<  r—  )TFNc           
      C   s¬   t  ¡ \}}t d¡}t ddd¡}| ||¡ t|d| › d�ƒ}t|d| › d�ƒ}t|d| › d�ƒ}|d krt|ƒ n|}	|d	|d
� |	|ƒ ks’t‚|j 	¡  t
|ƒ d	ƒ d S )NrÆ   rS  rÃ   Zget_autoscaleZ_onrá   ZlimÚget_)rI  rž   )r—  )r#   r   r]   rb   rÍ   r4   rì   r&   r7  r×   r   )
r<  r—  r(   r   r,   r-   r?  Zset_limZget_limZ	post_autor    r    r!   Útest_unautoscale‰  s    

r¨  c                 C   s`   | j dd� dtjd gddg¡\}d| ¡ _|j dd� t dtjd d¡t ddd¡¡ d S )Nrå  rÈ  r   r3   r2   rÆ   ée   )r”   r}   r]   rÏ   Úget_pathZ_interpolation_stepsrÍ   )r   r   r:  r    r    r!   Ú)test_polar_interpolation_steps_variable_r�  s    $
 ÿr«  c                  C   s6   t  ¡ \} }| dd¡ | j ¡  | ¡ dks2t‚d S )Nr   g•Ö&è.>)r   gƒ”õæò	>)r#   r   ró  r7  r×   r€   r&   r'   r    r    r!   Útest_autoscale_tiny_sticky¥  s    
r¬  c                  C   sX   dt jd< dt jd< t  ¡ } | j ¡ }|D ](}|j ¡ dks@t‚|j ¡ dks*t‚q*d S )Nr´  zxtick.colorr£   zxtick.labelcolor)	r#   r«   r  rQ   r¢  rÒ  rë  r&   r/  r¤  r    r    r!   Ú&test_xtickcolor_is_not_xticklabelcolor­  s    


r­  c                  C   sX   dt jd< dt jd< t  ¡ } | j ¡ }|D ](}|j ¡ dks@t‚|j ¡ dks*t‚q*d S )Nr´  zytick.colorr£   zytick.labelcolor)	r#   r«   r  rT   r¢  rÒ  rë  r&   r/  r¤  r    r    r!   Ú&test_ytickcolor_is_not_yticklabelcolor·  s    


r®  re  c                 C   s   g | ]}|d k	r|‘qS rÖ   r    )r™   re  r    r    r!   rœ   Á  s    ÿrœ   c                 C   st   | t jd< | t jd< t ¡ \}}|j ¡  tddg|j|jgƒD ].\}}| 	¡ D ]}|j
 ¡ | |¡ksPt‚qPq@d S )Nzxtick.labelsizezytick.labelsizer,   r-   )r�   r«   r#   r   r7  r×   rh  rQ   rT   r¢  r/  rT  Z_get_tick_label_sizer&   )re  r(   r   Únamer<  rë  r    r    r!   Útest_relative_ticklabel_sizesÁ  s    


r°  c                  C   sd   t  ¡ } | jdddd�\}}| ddddgddddg¡ | dd¡ | ¡ }t |d	d
g¡s`t‚d S )Nr3   r2   rr  rB  r‰   rå   r   rÀ   rž   r,  )	r#   r­   r   r4   rÜ  r   r]   r¥  r&   )r(   rÔ   rÛ   rt   r    r    r!   Útest_multiplot_autoscaleÏ  s    r±  c                  C   s\   t  ¡ } |  d¡}| jddddg|d�}| ¡ }| jdd� | ¡  ¡ | ¡ k ¡ sXt‚d S )Nr„  rà  rÅ   rB  r   )rI   )	r#   r­   r”   rý   r  r‰  r<  rr  r&   )r(   r  rÔ   Zinit_posr    r    r!   Ú$test_sharing_does_not_link_positionsØ  s    
r²  c                 C   s|  t  dddg¡}|  d¡}|d jddgddg| d¡d	� |d jddgddg| d¡d	� |d jddgddg| d¡d	� |d
 jt  d¡| d¡d� |d j	t  d¡t  d¡| d¡d� | d¡}|d jddgddg| d¡d	� |d jddgddg| d¡d	� |d jddgddg| d¡d	� |d
 jt  d¡| d¡d� |d j	t  d¡t  d¡| d¡d� d S )NrÃ   rÄ   rÅ   rÀ   r   r2   r3   rp   rF  r‰   rr   r¤  rå   r¹  )
r]   rü   r   r}   ry   r4   rZ  rX  rb   ró  )r   r   r¤   r7  r    r    r!   Útest_2dcolor_plotá  s    
"""&
"""r³  c                 C   s~   t  ddt j d¡}t  |¡}|jddddd�}|jD ]}| ||¡ q6| jddddd�}|jD ]}| ¡  | ||¡ q`d S )NrN  r3   rP  Tr  )r]   rb   rÏ   rÎ   r   r6  r}   r&  )r   r   r,   r-   r7  r   r    r    r!   Útest_shared_axes_clearô  s    


r´  c                  C   sª   t jddddd�\} }|jD ]}| ddgd¡ q|d  dddd	g¡ |jD ]}| ¡ |d  ¡ ksNt‚qN|d  dddd
g¡ |jD ]}| ¡ |d  ¡ ksˆt‚qˆd S )Nr3   rr  r  r   zo-rp  rI  r2   r�   r÷  )	r#   r   r6  r}   r\  r   r&   r]  r€   r›  r    r    r!   Útest_shared_axes_retick  s    


rµ  r?   rI   rP   r<   c                 C   sD   t ƒ }| ¡ }|jdd| d� |j d¡ |j ¡  ¡ | ks@t‚d S )NÚtestr2   r>   r<   )r   r   r%   rT   Zset_label_positionrR   rQ  r&   )r?   r(   r   r    r    r!   Útest_ylabel_ha_with_position  s
    r·  c                  C   sÀ   t  ¡ } ddgddg }}|  ||¡}|  |¡}|d j|d |d fksNt‚|d  ¡ dksbt‚|d  ¡ dksvt‚|d j|d |d fks”t‚|d  ¡ dks¨t‚|d  ¡ dks¼t‚d S )	Nr2   r3   r‰   éüÿÿÿr   rP   rH   r8   ©r#   r	  ró  Ú	bar_labelrX  r&   rQ  rR  ©r   r  Zheightsr  rU  r    r    r!   Ú test_bar_label_location_vertical  s    
r¼  c                  C   sÈ   t  ¡ } |  ¡  ddgddg }}|  ||¡}|  |¡}|d j|d |d fksVt‚|d  ¡ dksjt‚|d  ¡ dks~t‚|d j|d |d fksœt‚|d  ¡ dks°t‚|d  ¡ dksÄt‚d S )	Nr2   r3   r‰   r¸  r   rP   r8   rH   )	r#   r	  r  ró  rº  rX  r&   rQ  rR  r»  r    r    r!   Ú*test_bar_label_location_vertical_yinverted(  s    
r½  c                  C   sÀ   t  ¡ } ddgddg }}|  ||¡}|  |¡}|d j|d |d fksNt‚|d  ¡ dksbt‚|d  ¡ dksvt‚|d j|d |d fks”t‚|d  ¡ dks¨t‚|d  ¡ dks¼t‚d S ©	Nr2   r3   r‰   r¸  r   rI   rP   r<   ©r#   r	  r  rº  rX  r&   rQ  rR  ©r   r  r,  r  rU  r    r    r!   Ú"test_bar_label_location_horizontal6  s    
rÁ  c                  C   sÈ   t  ¡ } |  ¡  ddgddg }}|  ||¡}|  |¡}|d j|d |d fksVt‚|d  ¡ dksjt‚|d  ¡ dks~t‚|d j|d |d fksœt‚|d  ¡ dks°t‚|d  ¡ dksÄt‚d S r¾  )	r#   r	  r  r  rº  rX  r&   rQ  rR  rÀ  r    r    r!   Ú,test_bar_label_location_horizontal_yinvertedC  s    
rÂ  c                  C   sÈ   t  ¡ } |  ¡  ddgddg }}|  ||¡}|  |¡}|d j|d |d fksVt‚|d  ¡ dksjt‚|d  ¡ dks~t‚|d j|d |d fksœt‚|d  ¡ dks°t‚|d  ¡ dksÄt‚d S ©	Nr2   r3   r‰   r¸  r   r<   rP   rI   )	r#   r	  r  r  rº  rX  r&   rQ  rR  rÀ  r    r    r!   Ú,test_bar_label_location_horizontal_xinvertedQ  s    
rÄ  c                  C   sÐ   t  ¡ } |  ¡  |  ¡  ddgddg }}|  ||¡}|  |¡}|d j|d |d fks^t‚|d  ¡ dksrt‚|d  	¡ dks†t‚|d j|d |d fks¤t‚|d  ¡ dks¸t‚|d  	¡ dksÌt‚d S rÃ  )
r#   r	  r  r  r  rº  rX  r&   rQ  rR  rÀ  r    r    r!   Ú-test_bar_label_location_horizontal_xyinverted_  s    
rÅ  c                  C   sÌ   t  ¡ } ddgddg }}|  ||¡}| j|dd�}|d j|d d |d fksVt‚|d  ¡ dksjt‚|d  ¡ dks~t‚|d j|d d |d fks t‚|d  ¡ dks´t‚|d  ¡ dksÈt‚d S )Nr2   r3   r‰   r¸  rP   )Z
label_typer   r¿  rÀ  r    r    r!   Útest_bar_label_location_centern  s    ""rÆ  c                  C   sÌ   t  ¡ } ddgddg }}| j||dd�}|  |¡}|d j|d |d d fksVt‚|d  ¡ dksjt‚|d  ¡ dks~t‚|d j|d |d d fks t‚|d  ¡ dks´t‚|d  ¡ d	ksÈt‚d S )
Nr2   r3   r‰   r¸  ©rª  r   rP   rH   r8   r¹  r»  r    r    r!   Ú!test_bar_label_location_errorbars{  s    
""rÈ  c                  C   sV   t  ¡ } |  ddgddg¡}| j|dd�}|d  ¡ dks>t‚|d  ¡ d	ksRt‚d S )
Nr2   r3   r‰   r¸  rO  r  r   z3.00z-4.00©r#   r	  ró  rº  r0  r&   ©r   r  rU  r    r    r!   Útest_bar_label_fmtˆ  s
    rË  c                  C   sZ   t  ¡ } |  ddgddg¡}| j|ddgd�}|d  ¡ dksBt‚|d  ¡ dksVt‚d S )	Nr2   r3   r‰   r¸  rN  rO  )rU  r   rÉ  rÊ  r    r    r!   Útest_bar_label_labels�  s
    rÌ  c                  C   sl   t  ¡ } |  ddgtjdg¡}|  |¡}dd„ |D ƒddgksBt‚|d jd	ksTt‚|d  ¡ d
ksht‚d S )Nr3   r‰   r2   c                 S   s   g | ]}|  ¡ ‘qS r    rÓ  ©r™   r:  r    r    r!   rœ   œ  s     z,test_bar_label_nan_ydata.<locals>.<listcomp>r°   Ú1r   rÁ  rH   )	r#   r	  ró  r]   r
  rº  r&   rX  rR  ©r   rQ  rU  r    r    r!   Útest_bar_label_nan_ydata˜  s    
rÐ  c                  C   st   t  ¡ } |  ¡  |  ddgtjdg¡}|  |¡}dd„ |D ƒddgksJt‚|d jd	ks\t‚|d  	¡ d
kspt‚d S )Nr3   r‰   r2   c                 S   s   g | ]}|  ¡ ‘qS r    rÓ  rÍ  r    r    r!   rœ   ¦  s     z5test_bar_label_nan_ydata_inverted.<locals>.<listcomp>r°   rÎ  r   rÁ  rH   )
r#   r	  r
  ró  r]   r
  rº  r&   rX  rR  rÏ  r    r    r!   Ú!test_bar_label_nan_ydata_inverted¡  s    
rÑ  c                  C   sJ  t  ¡ \} }|jdddgtjddgdddgd�}| |¡}dd	„ |D ƒd
ddgksVt‚t | ¡ d¡sjt‚t  ¡ \} }|jdddgdddgdtjdgd�}| |¡}dd	„ |D ƒdddgksÀt‚t | ¡ d¡sÔt‚t  ¡ \} }|jdddgtjddgtjtjdgd�}| |¡}dd	„ |D ƒd
ddgk�s0t‚t | ¡ d¡�sFt‚d S )Nr2   r3   r‰   rÄ   r=  rà  rÇ  c                 S   s   g | ]}|  ¡ ‘qS r    rÓ  rÍ  r    r    r!   rœ   ¯  s     z&test_nan_barlabels.<locals>.<listcomp>r°   rÎ  Ú2)rN  rï  r   c                 S   s   g | ]}|  ¡ ‘qS r    rÓ  rÍ  r    r    r!   rœ   µ  s     rð  )rI  rï  c                 S   s   g | ]}|  ¡ ‘qS r    rÓ  rÍ  r    r    r!   rœ   »  s     )	r#   r   ró  r]   r
  rº  r&   r¥  r€   )r(   r   rQ  rU  r    r    r!   Útest_nan_barlabels«  s    $
$
(
rÓ  c               	   C   sr   t  ¡ \} }| tjdddddd�¡ dt dtj d	 ¡d
  }tj 	t 
d|d  d|d f¡|jjd¡ d S )N)r   rp   rË  r‡  r4  rÃ   r  gffffffþ?rÇ   rS  r3   gÍÌÌÌÌÌà¿r  rn  )r#   r   rr  rs  ZWedger]   rÎ   rÏ   r¨   Zassert_array_almost_equal_nulprü   ZdataLimr7  )r(   r   Zbotr    r    r!   Útest_patch_bounds¿  s      ÿrÔ  c                	   C   s8   t jtdd��  tjdgdgddddd� W 5 Q R X d S )	Nz!You passed a edgecolor/edgecolorsr  r   rÇ  re  r£  r’  )rk   r^  ré   rê   )rŠ   r*  r¥  r#   r4   r    r    r    r!   Ú test_warn_ignored_scatter_kwargsÇ  s    ÿrÕ  c               	      sò  t  ¡ \} ‰ ‡ fdd„tdƒD ƒ}ˆ  t d¡t d¡¡}ˆ  t d¡¡}ˆ  t	 
ddd¡¡}ˆ  ddd¡}tˆ jƒ|gks€t‚tˆ jƒ|gks”t‚tˆ jƒ|ks¦t‚tˆ jƒ|gksºt‚ˆ jrÄt‚tˆ jƒ|gksØt‚ˆ jd |d ksît‚ˆ jd	 |d	 k�st‚tjtd
d�� ˆ jt|ƒd   W 5 Q R X tjtdd�� ˆ jd	= W 5 Q R X tjtdd�� ˆ jd	d …= W 5 Q R X tjtdd�� ˆ jdd …= W 5 Q R X tjtdd�� ˆ jd= W 5 Q R X | ¡  ˆ j�rÖt‚| ¡  ˆ j�rêt‚| ¡  ˆ j�rþt‚| ¡  ˆ j�rt‚ˆ j�rt‚ˆ j�r*t‚tjtdd�� ˆ j |¡ W 5 Q R X tjtdd�� ˆ j |¡ W 5 Q R X tjtdd�� ˆ j |¡ W 5 Q R X tjtdd�� ˆ j |¡ W 5 Q R X tˆ jƒ|gk�sØt‚tˆ jƒ|gk�sît‚tˆ jƒ|gk�st‚tˆ jƒ|gk�st‚tjtdd�� ˆ j |d ¡ W 5 Q R X tˆ jƒ|d gk�s^t‚tjtdd�� ˆ j |d	 ¡ W 5 Q R X tˆ jƒ|dd … k�s¤t‚tjtdd�� ˆ j d|d ¡ W 5 Q R X tˆ jƒ|d |d |d	 gk�söt‚tjtdd�� |d ˆ jd< W 5 Q R X tˆ jƒ|d |d |d	 gk�sDt‚tjtdd�� |dd… ˆ jdd…< W 5 Q R X tˆ jƒ|k�sˆt‚ˆ jdddg |d•k�s¦t‚dddgˆ j d|•k�sÄt‚ˆ jD ]}| ¡  �qÊtˆ jƒdk�sît‚d S )Nc              	      s&   g | ]}ˆ   t ||d  ¡¡d ‘qS )rÀ   r   )r}   r]   rb   r
  rå  r    r!   rœ   Ð  s     z(test_artist_sublists.<locals>.<listcomp>rI  rÀ   )rÀ   rÀ   rp  r   rv  rp   zout of ranger  r2   z'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 propertyra  r3   r‰   )r2   r3   r‰   )r2   r3   r‰   )r#   r   r¬   r4   r]   rb   r{   rš  rr  rs  rt  r  r€  r  r&   Zimagesr–  rð   ZtablesrU  rŠ   r‹   Ú
IndexErrorr  r*  r   r  r6  Úinsert)r(   r–  rÀ  r9  rÙ   r  rÚ  r    rå  r!   Útest_artist_sublistsÎ  s¸    
ÿÿÿÿÿÿÿÿÿÿÿ&ÿ&ÿ 
rØ  c                  C   sh   t  d¡} t  d¡}t ¡ \}}| | |¡}t|ƒdks<t‚t ¡ \}}| g g ¡}t|ƒdksdt‚d S )Nrr   )rr   r   r   r2   )r]   rw   r#   r   r}   r  r&   )r,   r-   rq  r   r_  r    r    r!   Útest_empty_line_plots3  s    

rÙ  z
fmt, match))rÃ  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))Z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              	   C   sV   t  ¡ \}}|d k	r | dd¡}tjtd| d d�� |jd| |d� W 5 Q R X d S )NÚnotzneither a data key norz\Az\Zr  rÚ  r±  )r#   r   ÚreplacerŠ   r‹   r"  r}   )r¾   r  rV  r(   r   r    r    r!   Útest_plot_format_errorsA  s
    	rÝ  c                  C   s~  t  ¡ \} }| dddgd¡}|d  ¡ dks2t‚|d  ¡ dksFt‚t  ¡ \} }| dddgd¡}|d  ¡ dksxt‚t  ¡ \} }| ddgddgdd¡}| j ¡  |d  ¡ dksºt‚| ¡ d  	¡ dksÒt‚t  ¡ \} }| ddgddgdd¡}| j ¡  |d  ¡ dk�st‚| ¡ d  	¡ dk�s0t‚t  ¡ \} }| dddgd	¡}|d  ¡ d
k�sdt‚|d  ¡ dk�szt‚d S )Nr2   r3   r‰   z1.0r   )r¢   r¢   r¢   r¢   rþ  rÎ  Zk3rË   r<  )
r#   r   r}   rë  r&   r£  r7  r×   ra  r0  r~  r    r    r!   Útest_plot_formatQ  s*    

rÞ  c                  C   sâ   t  ¡ \} }|jddddid� | ¡ }| j ¡  | ¡ d  ¡ dksJt‚| 	¡ d  ¡ dksbt‚t  ¡ \} }|jdddddid� | ¡ }| j ¡  | ¡ d  ¡ dks®t‚| 
¡ d  ¡ dksÆt‚| 	¡ d  ¡ dksÞt‚d S )Nr‚   r’  r�  r3   r±  r   r6   )r#   r   r}   rB   r7  r×   Z	get_textsr0  r&   ra  r�  )r(   r   Úlegr    r    r!   Útest_automatic_legendi  s    

rà  c                	   C   s  t jtdd�� tjdddgdd� W 5 Q R X t jtdd��6 tjdddgdddgdddgdddgd	d
gd� W 5 Q R X t jtdd�� t dddgdg¡ W 5 Q R X t jtdd�� t t d¡¡ W 5 Q R X t jtdd�� tjddddddid� W 5 Q R X d S )Nzplot got an unexpected keywordr  r2   r3   r‰   rí  zplot\(\) with multiple groupsrå   rÎ  rÒ  rÃ  zx and y must have same firstzx and y can be no greater than)r3   r3   r3   zUsing arbitrary long args withr‚   r’  r6   r�  r±  )rŠ   r‹   rŒ   r#   r}   r"  r]   rw   r    r    r    r!   Útest_plot_errorsz  s    :rá  c               	   C   s²   t  ¡  ¡ } t| jtdƒtdƒtdƒd�t| jddgddggƒt| jddgddggƒt| jddgddggƒt| j	ddgddggƒfD ](}d}||d�j
}|j|jf|ks„t‚q„d S )Nr‰   rF  r   r2   r3   )r´  rÆ  )Úclim)r#   r­   r”   r   r4   r¬   r{   rZ  rK  r˜  r!  rý  rþ  r&   )r   Zplot_methodrâ  r!  r    r    r!   Ú	test_clim‡  s    ûrã  c                  C   s€   ddgddgddgddgg} t jjt jjt jjt jjg}t  | |¡}t ¡ \}}| t 	|¡¡ | 
¡  | ¡ d dks|t‚d S )Nrp   r   r2   rI  )Úmpathrî   rò   ZCURVE3Z	CLOSEPOLYr#   r   rr  rs  rñ   r  r€   r&   )r+  ÚcodesrÌ   r(   r   r    r    r!   Útest_bezier_autoscale•  s    ýýræ  c                  C   sb   t  ¡ \} }| t d¡¡ tdƒD ]8}| ¡ |  ¡ |› ksBt‚| 	¡ |  ¡ |› ks$t‚q$d S )Nrr   )
r#   r   r}   r]   rb   r¬   r�  r0  r&   ra  )r(   r   r�  r    r    r!   Útest_get_xticklabelª  s
    rç  )Nr3   (\  r  r   r•  rn  r   Ú	functoolsr   r|  rÛ  Ú	itertoolsr   Úplatformrs  r   Zdateutil.tzr5  Únumpyr]   r   r	   rŠ   rN   r�   r
   Zmatplotlib._apir   Zmatplotlib.colorsru  r#  Zmatplotlib.datesrC  r—  Zmatplotlib.figurer   Zmatplotlib.axesr   Zmatplotlib.font_managerZfont_managerZmfont_managerZmatplotlib.markersr  r½  Zmatplotlib.patchesrð   rs  Zmatplotlib.pathrí   rä  Zmatplotlib.projections.geor   Zmatplotlib.projections.polarr   Zmatplotlib.pyplotZpyplotr#   Zmatplotlib.textr  r  Zmatplotlib.tickerZtickerr·   Zmatplotlib.transformsZ
transformsr  Zmpl_toolkits.axisartistZ
axisartistrK  Znumpy.testingr   r   r   Zmatplotlib.testing.decoratorsr   r   r   r"   r)   r1   rG   rM   rO   rU   rg   r…   rŽ   r•   r¯   r¼   r¿   rÕ   rÝ   r  r  rö   r  r  r  r,  r0  r2  r9  r‘   r  r@  rG  rJ  rM  r`  ro  rr  ru  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š  rb   r/  r2  r:  rA  rH  rM  rT  r[  rj  rl  rv  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   r*  r/  r:  rE  rH  rJ  rR  rS  rV  rY  r^  ra  rc  ri  rj  ru  ry  r{  r}  r˜  r‚  r„  ZPatchro  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-  r2  r4  r5  r9  r@  rJ  rL  rP  rR  rX  r[  r]  r^  ra  rd  rf  rh  ri  rj  rk  rl  rm  rn  rp  rr  rs  rt  ru  rv  rx  ry  rz  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Ç  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&  r0  r4  r8  r9  r:  r;  r<  r=  rC  rD  rF  rG  rK  rL  rN  rO  rV  rX  rY  rZ  r\  r^  r`  rd  rg  rh  ro  rp  rs  rw  ry  r|  r}  r€  r‚  r„  Úmachiner‡  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  r†  rd   rÖ  rÜ  r  r	  r  r  r  r  rŒ   r"  r  r  r  r!  r#  r&  r7  r<  rA  rC  rD  rF  rH  rI  rV  rW  r[  rb  rd  re  ri  rj  rk  rm  rp  rr  rt  ru  rv  rx  r{  r|  r}  r  r€  r‚  r…  r†  r‡  r‘  r’  r–  r—  ÚimageZ	AxesImager¬   ZPcolorImager^   ZQuadMeshry   r“   rš  rœ  r�  rž  r   r¡  r£  r¦  r§  r¨  r©  r«  r¬  Zfixturer´  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  r	  r  r  r  r  r  r  r  r!  r"  r$  r&  r'  r(  r)  r*  r+  r-  r.  r4  rB  rE  rG  rJ  rL  rO  rP  rQ  rR  rS  rT  rU  r_  r`  ra  rb  rd  re  rj  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®  Zfont_scalingsr°  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    r    r!   Ú<module>   s	  	











ü
'
*
41













	

!








 ÿ










ÿ





ýýû
ýýû

 ÿ





ÿ
!

!







!
$







	
* ÿ* ÿ  ÿúþ	





þÿü


þÿ

þÿ
+




  "ÿ"ÿ"ÿ"ÿ6ÿ÷þ	öþ,
 
 ÿþþþþ	üý	ýýýýýýýýýýýý
ýýýýýþþ ÿ	ý	ÿþ  þ>  ÿ  ÿ


  ÿ	ÿ
	
	
	


	
	
	
	
	
	


	
			

	
	6
.
+þ

		



ÿA
ÿ




+
ý*

	ÿÿ&ÿ& ÿ
 ÿ  ý  ÿ  ý! ÿ  ý"
	 þù÷
 

,ÿ
ý

ÿ

ÿ
ÿÿÿøÿ


 ÿ
	

	

$
ÿÿ÷
""
ÿ"ÿúÿ *ÿ

!	

			

ýýû	



!
	 ÿ
.'
	



ÿ
		

	

e