a
    ëÝEb± ã                   @   s(+  d dl m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	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mZmZ d dlmZ d dlmZ d d	lmZ d dl m!Z" d dl#m$Z% d dl&m'Z( d dl)m*Z+ d dl,m-Z. d dl/m0Z1 d d
l2m3Z3m4Z4m5Z5 d dlm6Z6 d dl7m8Z8 dd„ Z9eƒ dd„ ƒZ:eƒ dd„ ƒZ;eƒ 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 „ ƒZAeg d!¢ƒd"d#„ ƒZBd$d%„ ZCd&d'„ ZDed(gƒd)d*„ ƒZEd+d,„ ZFejG Hd-d.¡edgd/d0�d1d2„ ƒƒZIed3gƒd4d5„ ƒZJd6d7„ ZKd8d9„ ZLedgd�d:d;„ ƒZMed<gd=d>�d?d@„ ƒZNejO PdA¡dBdC„ ƒZQejO PdA¡dDdE„ ƒZRejO PdA¡dFdG„ ƒZSedgd�dHdI„ ƒZTedJgd=d>�dKdL„ ƒZUedMgd=d>�dNdO„ ƒZVdPdQ„ ZWdRdS„ ZXdTdU„ ZYedVgdWdXidY�dZd[„ ƒZZd\d]„ Z[ed^d^gƒd_d`„ ƒZ\edagdbdc�ddde„ ƒZ]edgd�dfdg„ ƒZ^dhdi„ Z_edjgdgd=dbdk�dldm„ ƒZ`edngƒdodp„ ƒZaedqgdrds�dtdu„ ƒZbedvdvgd=d>�dwdx„ ƒZcedygd=d>�dzd{„ ƒZdd|d}„ Zeed~gdbdc�dd€„ ƒZfd�d‚„ Zgdƒd„„ Zhed…gƒd†d‡„ ƒZiejO PdA¡ejG Hdˆg d‰¢¡edgd�dŠd‹„ ƒƒƒZjedŒdŒgd=dbd��dŽd�„ ƒZked�gdbdc�d‘d’„ ƒZld“d”„ Zmed•gd=d>�d–d—„ ƒZnejGjHd˜e od™¡dšdšfe pd›dœdr¡e od™¡dšfe pd›dœdr¡dše od™¡fgg d�¢dž�dŸd „ ƒZqejGjHd¡e od™¡dšdšfe pd›dœdr¡e od™¡dšfe pd›dœdr¡dše od™¡fgg d¢¢dž�d£d¤„ ƒZred¥gd=d>�d¦d§„ ƒZsed¨gdbd=d©�dªd«„ ƒZted¬gd=d>�d­d®„ ƒZued¯gƒd°d±„ ƒZved²gd=d>�d³d´„ ƒZwdµd¶„ Zxed·gd=d>�d¸d¹„ ƒZyedºgdd»gd=d¼�d½d¾„ ƒZzed¿gdÀdbd��dÁdÂ„ ƒZ{edÃgdÀdbd��dÄdÅ„ ƒZ|dÆdÇ„ Z}edgd�dÈdÉ„ ƒZ~edgd�dÊdË„ ƒZdÌdÍ„ Z€ejG HdÎdÀd=g¡edgd�dÏdÐ„ ƒƒZ�edÑgƒdÒdÓ„ ƒZ‚edÔgd=dAd��dÕdÖ„ ƒZƒed×gd=d>�dØdÙ„ ƒZ„dÚdÛ„ Z…edÜgd=d>�dÝdÞ„ ƒZ†edßgd=dàdá�dâdã„ ƒZ‡edägd=dådá�dædç„ ƒZˆedègd=d>�dédê„ ƒZ‰edëgd=d>�dìdí„ ƒZŠedîgdAd=d©�dïdð„ ƒZ‹edñgd=d>�dòdó„ ƒZŒedôdôgƒdõdö„ ƒZ�d÷dø„ ZŽdùdú„ Z�edûgƒdüdý„ ƒZ�edþgƒdÿ�d „ ƒZ‘edgd��d�d„ ƒZ’edgd��d�d„ ƒZ“edgd��d�d„ ƒZ”edgd��d�d„ ƒZ•�d	�d
„ Z–�d�d„ Z—e�dgƒ�d�d„ ƒZ˜�d�d„ Z™�d�d„ Zš�d�d„ Z›�d�d„ Zœ�d�d„ Z�ejO PdA¡eƒ �d�d„ ƒƒZž�d�d„ ZŸe�dgd=d>��d�d „ ƒZ edgd��d!�d"„ ƒZ¡�d#�d$„ Z¢e�d%gd=d>��d&�d'„ ƒZ£e�d(gd=d>��d)�d*„ ƒZ¤e�d+gd=d>��d,�d-„ ƒZ¥e�d.gƒ�d/�d0„ ƒZ¦�d1�d2„ Z§�d3�d4„ Z¨ejGjH�d5ejj©�d6�d7„ �d8�d7„ gg �d9¢dž��d:�d;„ ƒZªejG H�d<g �d=fg g�d=fg g gdœfg¡�d>�d?„ ƒZ«ejG H�d@�dAej'j¬j­f�dBej®j¯j­f�dCej'j¬j­fg¡�dD�dE„ ƒZ°edgd��dF�dG„ ƒZ±edgd��dH�dI„ ƒZ²edgd��dJ�dK„ ƒZ³edgd��dL�dM„ ƒZ´�dN�dO„ Zµ�dP�dQ„ Z¶�dR�dS„ Z·�dT�dU„ Z¸�dV�dW„ Z¹e�dXgd=d>��dY�dZ„ ƒZºe�d[gƒ�d\�d]„ ƒZ»�d^�d_„ Z¼e�d`gd=dbd���da�db„ ƒZ½e�dcgdbdc��dd�de„ ƒZ¾e�df�dfgd=dbd���dg�dh„ ƒZ¿e�digd=dbd���dj�dk„ ƒZÀ�dl�dm„ ZÁG �dn�do„ �doƒZÂ�d¶d�dpœ�dq�dr„ZÃe�ds�dtƒZÄejG H�dueÃƒ eÄ�dve Åg �dw¢g¡�dx�feÃ�dy�dz�eÄ�dye Åg �d{¢g¡�dx�feÃ�dy�dv�dx�eÄ�dye Åg �d{¢g¡�dx�feÃ�dv�d|�eÄ�dve Åg �dw¢g¡�dx�feÃ�dv�d}g�d|�eÄ�dv�d}ge Åg �dw¢g �d~¢g¡�dx�fg¡�d�d€„ ƒZÆ[Ã[ÄejG H�d�eÇƒ dfeÇ�dv�dz�dfeÇ�dy�dp��dyfeÇ�dy�d}g�dp��dy�d}gfeÇ�dy�d‚��dyfeÇ�dƒ�dp��dƒfeÇ�d„�dp��d„feÇ�dy�d}�d…��dyfeÇ�dv�dy�d}�d†��dyfeÇ�dy�d|��dyfeÇ�dy�d}�d‡��d}fg¡�dˆ�d‰„ ƒZÈ�dŠ�d‹„ ZÉ�dŒ�d�„ ZÊ�dŽ�d�„ ZËe�d�gƒ�d‘�d’„ ƒZÌ�d“�d”„ ZÍ�d•�d–„ ZÎe�d—�d—gƒ�d˜�d™„ ƒZÏe�dšgd=d>��d›�dœ„ ƒZÐi �d��d7„ i f�dž�dŸ„ZÑe�d gdW�d¡idA�d¢��d£�d¤„ ƒZÒe�d¥gdW�d¡idA�d¢��d¦�d§„ ƒZÓe�d¨gdW�d¡idA�d¢��d©�dª„ ƒZÔe�d«gdW�d¡idA�d¢��d¬�d­„ ƒZÕe�d®gd=dW�d¡idA�d¯�d°��d±�d²„ ƒZÖe�d³gdW�d¡idA�d¯�d´��dµ�d¶„ ƒZ×e�d·gd=dW�d¡idA�d¸��d¹�dº„ ƒZØe�d»gd=dW�d¼idA�d¸��d½�d¾„ ƒZÙe�d¿gd=dW�d¡idA�d¸��dÀ�dÁ„ ƒZÚe�dÂgd=dW�d¡idA�d¸��dÃ�dÄ„ ƒZÛe�dÅgd=dW�d¡idA�d¸��dÆ�dÇ„ ƒZÜe�dÈgd=dW�d¡idA�d¸��dÉ�dÊ„ ƒZÝe�dËgd=dW�d¡idA�d¸��dÌ�dÍ„ ƒZÞe�dÎgd=dW�d¡idA�d¸��dÏ�dÐ„ ƒZße�dÑgd=dW�d¡idA�d¸��dÒ�dÓ„ ƒZàe�dÔgd=dW�d¡idA�d¸��dÕ�dÖ„ ƒZáe�d×gd=dW�d¡idA�d¸��dØ�dÙ„ ƒZâe�dÚgd=dW�d¡idA�d¸��dÛ�dÜ„ ƒZãe�dÝgd=dW�d¡idA�d¸��dÞ�dß„ ƒZäe�dàgd=dW�d¡idA�d¸��dá�dâ„ ƒZåe�dãgd=dW�d¡idA�d¸��dä�då„ ƒZæe�dægd=dW�d¡idA�d¸��dç�dè„ ƒZçe�dégd=dW�d¡idA�d¸��dê�dë„ ƒZè�dì�dí„ Zé�dî�dï„ Zêe�dð�dðg�dñdA�dò��dó�dô„ ƒZëe�dõgd=dAd���dö�d÷„ ƒZìe�døgd=dW�d¡idA�d¸��dù�dú„ ƒZíe�dû�dügdAdc��dý�dþ„ ƒZî�dÿ�d „ Zïe�dgdW�d¼id=�d=dA�d��d�d„ ƒZðe�dgd=dW�d¡idA�d¸��d�d„ ƒZñe�dgd=dW�d¡idA�d¸��d	�d
„ ƒZò�d�d„ Zó�d�d„ Zô�d�d„ Zõ�d�d„ Zöe�dgd=dW�d¡idA�d¸��d�d„ ƒZ÷e�d�dgƒ�d�d„ ƒZøe�dgƒ�d�d„ ƒZùe�dgƒ�d�d„ ƒZúe�dgƒ�d �d!„ ƒZûe�d"gƒ�d#�d$„ ƒZüe�d%gƒ�d&�d'„ ƒZýe�d(gƒ�d)�d*„ ƒZþe�d+gƒ�d,�d-„ ƒZÿe�d.gƒ�d/�d0„ ƒ�Z e�d1gƒ�d2�d3„ ƒ�Ze�d4gƒ�d5�d6„ ƒ�Ze�d7gƒ�d8�d9„ ƒ�Ze�d:gƒ�d;�d<„ ƒ�Ze�d=gƒ�d>�d?„ ƒ�Z�d@�dA„ �Z�dB�dC„ �Z�dD�dE„ �Z�dF�dG„ �Z	edgd��dH�dI„ ƒ�Z
edgd��dJ�dK„ ƒ�Z�dL�dM„ �Z�dN�dO„ �Z�dP�dQ„ �Zeg �dR¢ƒ�dS�dT„ ƒ�Z�dU�dV„ �Zeƒ �dW�dX„ ƒ�Z�dY�dZ„ �Ze�d[gƒ�d\�d]„ ƒ�Z�d^�d_„ �Z�d`�da„ �Zedgd��db�dc„ ƒ�Z�dd�de„ �Zeƒ �df�dg„ ƒ�ZejG H�dhg �di¢e Åg �di¢¡�d=g¡�dj�dk„ ƒ�Ze�dl�dlgƒ�dm�dn„ ƒ�Ze�dogƒ�dp�dq„ ƒ�Ze�drgd=d>��ds�dt„ ƒ�Ze�dugƒ�dv�dw„ ƒ�Ze�dxgƒ�dy�dz„ ƒ�ZejGjH�d{d=dÀg�d|�d}gdž�e�d~gdbd=d©��d�d€„ ƒƒ�Z�d��d‚„ �Z �dƒ�d„„ �Z!ejGjH�d{d=dÀg�d|�d}gdž�e�d…gdbd=d©��d†�d‡„ ƒƒ�Z"e�dˆgƒ�d‰�dŠ„ ƒ�Z#e�d‹gƒ�dŒ�d�„ ƒ�Z$e�dŽgƒ�d��d�„ ƒ�Z%e�d‘gd=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�d¤gƒ�d¥�d¦„ ƒ�Z/�d§�d¨„ �Z0�d©�dª„ �Z1�d«�d¬„ �Z2e�d­gd=d>��d®�d¯„ ƒ�Z3e�d°gd=d>��d±�d²„ ƒ�Z4e�d³gd=d>��d´�dµ„ ƒ�Z5�d¶�d·„ �Z6�d¸�d¹„ �Z7e�dºgd=d>��d»�dº„ ƒ�Z8e�d¼�d¼gd=d>��d½�d¾„ ƒ�Z9e�d¿gd=d>��dÀ�dÁ„ ƒ�Z:ejG H�dÂg �dÃ¢¡�dÄ�dÅ„ ƒ�Z;e�dÆgd=d>��dÇ�dÈ„ ƒ�Z<�dÉ�dÊ„ �Z=ejG H�dËg gg d �d=ggd �d=gg gg¡ejG H�dÌg �dÍ¢¡�dÎ�dÏ„ ƒƒ�Z>edgd��dÐ�dÑ„ ƒ�Z?e�dÒgd=d>��dÓ�dÔ„ ƒ�Z@e�dÕgƒ�dÖ�d×„ ƒ�ZAe�dØgd=d>��dÙ�dÚ„ ƒ�ZBe�dÛ�dÜge� C¡ �dÝk�r®d ndrds��dÞ�dß„ ƒ�ZDeƒ �dà�dá„ ƒ�ZEeƒ �dâ�dã„ ƒ�ZFeƒ �dä�då„ ƒ�ZGeƒ �dæ�dç„ ƒ�ZH�dè�dé„ �ZIeg �dê¢dgd��dë�dì„ ƒ�ZJ�dí�dî„ �ZKeg �dï¢dgd��dð�dñ„ ƒ�ZL�dò�dó„ �ZMejG H�dË�d=dœdše�jN�dôgej� Og �dõ¢�dö¡g¡edgd��d÷�dø„ ƒƒ�ZPe�dù�dùgd=d>��dú�dû„ ƒ�ZQe�dügd=d>��dý�dþ„ ƒ�ZR�dÿ�d „ �ZSeg �d¢d=�ddA�d��d�d„ ƒ�ZTeg �d¢d=�ddA�d��d�d„ ƒ�ZUeg �d	¢d=�ddA�d��d
�d„ ƒ�ZV�d�d„ �ZWedgd��d�d„ ƒ�ZX�d�d„ �ZYeg �d¢d=�ddá��d�d„ ƒ�ZZeg �d¢d=d>��d�d„ ƒ�Z[�d�d„ �Z\edgd��d�d„ ƒ�Z]e�dgd=d>��d�d„ ƒ�Z^e�d �d gd=d>��d!�d"„ ƒ�Z_ejG H�d#g �d$¢¡�d%�d&„ ƒ�Z`�d'�d(„ �Za�d)�d*„ �Zbedgd��d+�d,„ ƒ�Zc�d-�d.„ �ZdejG H�d/e+�jee+�jf�d0ge+�jge+�jh�d1gg¡�d2�d3„ ƒ�Zi�d4�d5„ �Zj�d6�d7„ �Zk�d8�d9„ �Zl�d:�d;„ �ZmejG Hd-d.¡�d<�d=„ ƒ�Zn�d>�d?„ �Zo�d@�dA„ �Zpe�dBgƒ�dC�dD„ ƒ�Zqeg �dE¢dgd��dF�dG„ ƒ�Zre�dHgƒ�dI�dJ„ ƒ�Zse�dKgƒ�dL�dM„ ƒ�Zte�dNgƒ�dO�dP„ ƒ�Zue�dQgƒ�dR�dS„ ƒ�Zve�dTgƒ�dU�dV„ ƒ�Zwe�dWgƒ�dX�dY„ ƒ�Zx�dZ�d[„ �Zy�d\�d]„ �Zz�d^�d_„ �Z{e�d`gƒ�da�db„ ƒ�Z|edgd��dc�dd„ ƒ�Z}�de�df„ �Z~�dg�dh„ �Z�di�dj„ �Z€e�dkgƒ�dl�dm„ ƒ�Z��dn�do„ �Z‚e�dpgdW�dqidY��dr�ds„ ƒ�Zƒ�dt�du„ �Z„�dv�dw„ �Z…�dx�dy„ �Z†�dz�d{„ �Z‡�d|�d}„ �Zˆ�d~�d„ �Z‰�d€�d�„ �ZŠ�d‚�dƒ„ �Z‹�d„�d…„ �ZŒe�d†gdW�d¡idY��d‡�dˆ„ ƒ�Z�e�d‰gdW�d¡idY��dŠ�d‹„ ƒ�ZŽ�dŒ�d�„ �Z��dŽ�d�„ �Z��d��d‘„ �Z‘�d’�d“„ �Z’ejG H�d”�d•e�j“�j”f�d–e�j“�j”f�e•�dôƒ�e•�döƒfe�j“�j”fg �d—¢g �d˜¢fe�j“�j–fe�j—� —�d™¡e�j—� —�d™¡fej �j˜fg¡ejG H�dËe p�dš¡� ™�d›¡e�j—� šdš�dödš¡g¡�dœ�d�„ ƒƒ�Z›�dž�dŸ„ �Zœ�d �d¡„ �Z��d¢�d£„ �Zž�d¤�d¥„ �ZŸejG H�d¦�eŸƒ ¡�d§�d¨„ ƒ�Z e�d©gd=d>��dª�d«„ ƒ�Z¡�d¬�d­„ �Z¢�d®�d¯„ �Z£e�d°gd=drdá��d±�d²„ ƒ�Z¤e�d³gd=dbd���d´�dµ„ ƒ�Z¥ejO PdA¡�d¶�d·„ ƒ�Z¦e�j§�d¸�d¹g�dº��d»�d¼„ ƒ�Z¨e�j§g �d½¢�dº��d¾�d¿„ ƒ�Z©�dÀ�dÁ„ �Zª�dÂ�dÃ„ �Z«�dÄ�dÅ„ �Z¬�dÆ�dÇ„ �Z­e�dÈgdAdc��dÉ�dÊ„ ƒ�Z®e�dËgdAdc��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º�dä�då„ �Z»�dæ�dç„ �Z¼�dè�dé„ �Z½�dê�dë„ �Z¾e�dìg�díds��dî�dï„ ƒ�Z¿e�dðgƒ�dñ�dò„ ƒ�ZÀe�dóg�díds��dô�dõ„ ƒ�ZÁe�dögd=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„ �ZÌ�d�d„ �ZÍ�d�d„ �ZÎejO PdA¡�d�d„ ƒ�ZÏ�d�d„ �ZÐ�d�d„ �ZÑ�d�d„ �ZÒ�d�d„ �ZÓ�d�d„ �ZÔejG H�d�d�dg¡ejG H�d �d�dg¡�d!�d"„ ƒƒ�ZÕ�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Û�d/�d0„ �ZÜ�d1�d2„ �ZÝejG H�d3dÀd=g¡ejG H�d4dÀd=g¡�d5�d6„ ƒƒ�ZÞ�d7�d8„ �Zß�d9�d:„ �Zà�d;�d<„ �Zá�d=�d>„ �Zâ�d?�d@„ �Zãe�dAgdbd=d©��dB�dC„ ƒ�Zäe�dDgdbdc��dE�dF„ ƒ�Zå�dG�dH„ �Zæ�dI�dJ„ �Zç�dK�dL„ �Zè�dM�dN„ �Zé�dO�dP„ �Zê�dQ�dR„ �Zë�dS�dT„ �Zì�dU�dV„ �Zí�dW�dX„ �Zî�dY�dZ„ �Zïedgd��d[�d\„ ƒ�Zð�d]�d^„ �Zñ�d_�d`„ �Zò�da�db„ �Zó�dc�dd„ �Zô�de�df„ �Zõ�dg�dh„ �Zö�di�dj„ �Z÷�dk�dl„ �Zø�dm�dn„ �Zù�do�dp„ �Zú�dq�dr„ �Zû�ds�dt„ �Zü�du�dv„ �Zý�dw�dx„ �Zþ�dy�dz„ �Zÿ�d{�d|„ �Z ejG H�d}d.¡ejG H�d~�d¡�d€�d�„ ƒƒ�Zedgd��d‚�dƒ„ ƒ�ZejO PdA¡�d„�d…„ ƒ�Z�d†�d‡„ �Z�dˆ�d‰„ �ZejG H�dŠ�d‹�dŒ„ e"�jD ƒg �d�¢ ¡ejO PdA¡�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jG H�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jO PdA¡�d®�d¯„ ƒ�Z�d°�d±„ �Z�d²�d³„ �Z�d´�dµ„ �ZdS (·  é    )Ú
namedtupleN©ÚDecimal)Úproduct)ÚSimpleNamespace)Úma)Úcycler)Úimage_comparisonÚcheck_figures_equalÚremove_ticks_and_titles)ÚFigure)Úassert_allcloseÚassert_array_equalÚassert_array_almost_equal)Ú
rc_context)ÚMatplotlibDeprecationWarningc                  C   sD   t  ¡ \} }| d¡ | d¡ | ¡ dks0J ‚| ¡ dks@J ‚d S )Nzx labelzy label)ÚpltÚsubplotsÚ
set_xlabelÚ
set_ylabelZ
get_xlabelZ
get_ylabel©ÚfigÚax© r   úZ/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_axes.pyÚtest_get_labels(   s
    

r   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©ÚcÚlabelúY LabelÚtop©ÚlocúX LabelÚrightúZ Label©ÚyÚha©Úxr+   ©r   r   Úlegendr   r   ÚcolorbarÚ	set_label©Úfig_testÚfig_refr   ÚscÚcbarr   r   r   Útest_label_loc_vertical0   s    

r7   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 )Nr   r   r   r   r"   Úbottomr$   r&   ÚleftÚ
horizontal©Úorientationr(   r   r)   r,   r.   r2   r   r   r   Útest_label_loc_horizontalC   s    r=   c                 C   sú   t  dddœ¡�j |  ¡ }|jddgddgddgdd�}| ¡  | d¡ | d	¡ | j|d
d�}| d¡ W d   ƒ n1 s€0    Y  | ¡ }|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'   r#   )zxaxis.labellocationzyaxis.labellocationr   r   r   r   r"   r&   r:   r;   r(   r)   r,   )	Ú
matplotlibr   r   r   r/   r   r   r0   r1   r2   r   r   r   Útest_label_loc_rcV   s"    ÿ


(r?   c                  C   s  t  ¡ \} }|jddd� |jddd� |j ¡  ¡ dks>J ‚|jddd� |j ¡  ¡ dksbJ ‚|jddd� |j ¡  ¡ dks†J ‚|jddd� |jddd� |j ¡  ¡ dks¸J ‚|jddd� |j ¡  ¡ dksÜJ ‚|jddd� |j ¡  ¡ dk�sJ ‚d S )Nz
Test labelr9   r$   Úcenterr'   r#   r8   )r   r   r   ÚxaxisÚ	get_labelÚget_horizontalalignmentr   Úyaxisr   r   r   r   Útest_label_shiftk   s    rE   Úpng©Ú
extensionsc           	      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   r   )ÚmaxlagsÚfull)Úmode)r*   ÚxminÚxmax)ÚnpÚrandomÚseedÚnormalZcumsumr   ZacorrZ	correlateÚdotÚarangeÚvlinesÚaxhline)	r3   r4   ZNxr-   rK   Úax_testÚax_refZnorm_auto_corrZlagsr   r   r   Ú
test_acorr�   s    rZ   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g t  |¡d d d… ¢d‘R ddiŽ |d jd|d  ¡ |d  ¡ d d d… d� |D ]}|j	 d¡ qðd S )NrI   i   r   rJ   )é    r[   r   r   Ú.Úlower)ÚmarkerÚoriginZgray_rÚnearest)ÚcmapÚinterpolationéÿÿÿÿÚ
markersizeé
   )ÚaspectÚxlimÚylimÚboth)rP   rQ   rR   ÚonesÚshuffleÚreshaper   ÚspyÚimshowrA   Útick_topÚplotZnonzeroÚsetÚget_xlimÚget_ylimÚset_ticks_position)r3   r4   ÚaÚaxs_testÚaxs_refr   r   r   r   Útest_spy”   s"    



. ÿrx   c               	   C   sl   t  ¡ \} }ddidddœfD ]H}t t¡�* |jt dd¡fi |¤Ž W d   ƒ q1 s\0    Y  qd S )Nrb   r`   ÚoÚsolid)r^   Ú	linestyleé   )r   r   ÚpytestÚraisesÚ	TypeErrorrm   rP   Ú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Úmpl20r[   ri   )ÚmplÚstyleÚuserP   rQ   ÚrandÚadd_subplotZmatshowrn   rA   ro   rt   )r3   r4   ru   rY   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>Ì   ó    z)test_formatter_ticker.<locals>.<listcomp>re   c                    s   g | ]}d | d ˆ j  ‘qS )ç      ø?ç      à?©Úkm©rŒ   r*   r�   r   r   r�   Í   r�   c                    s   g | ]}d | d ˆ j  ‘qS )g      ü?ç      ð?r“   r•   r�   r   r   r�   Î   r�   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Úregisterr>   ÚrcParamsÚranger   Úfigurer   r   rp   Úautoscale_view)ZxdataZydata1Zydata2r   r   r�   r   Útest_formatter_ticker½   s0    






r£   c                  C   sº   dd„ } t  ¡  ¡ }|jjs J ‚|jjs,J ‚|jjs8J ‚|jjsDJ ‚|j | ¡ |jjr\J ‚|jjshJ ‚|jjstJ ‚|jjs€J ‚t 	| ¡}t
|j ¡ tj	ƒs J ‚|j ¡ j|jks¶J ‚d S )Nc                 S   s   dS )NÚ r   ©r-   Úposr   r   r   Ú	_formfuncë   s    z4test_funcformatter_auto_formatter.<locals>._formfunc)r   r¡   r   rA   ÚisDefault_majfmtÚisDefault_minfmtrD   Ú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J ‚|jjs(J ‚|jjs4J ‚|jjs@J ‚|j | ¡ |jjsXJ ‚|jjsdJ ‚|jjspJ ‚|jjr|J ‚t 	| ¡}t
|j ¡ tj	ƒsœJ ‚|j ¡ j|jks²J ‚d S )Nz	{x}_{pos})r   r¡   r   rA   r¨   r©   rD   Ú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 g d¢¡}t ¡ }| ddd¡}| dd	gddg¡ |j	 
|¡ |j	 |¡ |j	 t d
¡¡ |j	 t g d¢¡¡ |j 
t ¡ ¡ |j t g d¢¡¡ |j t d¡¡ |j t g d¢¡¡ | ¡  | ¡  d S )Nr   r   é   T)ÚnumZendpointç       @©çš™™™™™¹?çš™™™™™É?ç333333Ó?r¸   éd   z%08.2lf)ZtricksZmindZjedi)é   é#   é7   éK   z%05.2lf)r    Ú3Úpry   )rP   ÚlinspaceÚsinÚpir   ZFixedLocatorr¡   r‡   rp   rD   Úset_major_locatorZset_minor_locatorrª   ZFormatStrFormatterr±   ZFixedFormatterrA   ZLinearLocatorÚtwinyÚtwinx)ÚvalsZlocsZmajlZminlr   Úax1r   r   r   Ú"test_twin_axis_locators_formatters  s"    
rÊ   c                  C   sÒ   t  ¡ \} }| ¡ }| ¡ }t  ¡  |j ¡ r2J ‚|j ¡ r@J ‚| ¡  | ¡  |j ¡ r^J ‚|j ¡ rlJ ‚|j	 ¡ szJ ‚|j ¡ sˆJ ‚|j ¡ r–J ‚|j	 ¡ r¤J ‚|j ¡ s²J ‚|j ¡ sÀJ ‚|j	 ¡ sÎJ ‚d S ©N)
r   r   rÇ   rÆ   ÚdrawrA   Úget_visibleÚpatchÚclarD   )r   r   Úax2Úax3r   r   r   Útest_twinx_cla6  s"    rÒ   Útwin©r-   r*   gR¸…ëQÈ?)rH   Ú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_Úscaler   r»   r   Úlog©r   r   r   é   Únonezaxes.edgecolorúaxes.linewidthZ
projecting)Ú	transformÚ	facecolorÚ	edgecolorÚ	linewidthZcapstyle)rP   rU   r‡   Úgetattrrp   r>   ÚpathÚPathÚ
add_artistÚpatchesÚ	PathPatchZMOVETOZLINETOÚ	transAxesrƒ   rŸ   r   )r3   r4   rÓ   Z	twin_funcZ	set_scaler-   rX   Úax_twinÚirY   rã   r   r   r   Útest_twin_logscaleM  sD    
ýüöÿrê   ztwin_autoscale.pngc                  C   sŽ   t  g d¢¡} d|  }t  g d¢¡}d| }t ¡ }|jdddd�}|j| |dd	d
� t |¡}|j||ddd� | dd¡ | dd¡ d S )N)r   r’   r   r’   ©r   r   r   r   ©r   r   r   r   F)Zautoscalex_onZautoscaley_onr—   re   ©r˜   Úlwúr--r´   ©rî   r   )rP   Úarrayr   r¡   Úadd_axesrp   rÇ   Úmargins)r-   r*   Úx2Úy2r   r   rÐ   r   r   r   Útest_twinx_axis_scalesy  s    
rö   c                  C   st   t  ¡ \} }| ¡ }| d¡ | ¡ }| ¡ s2J ‚| ¡ r>J ‚| ¡ }| d¡ | ¡ }| ¡ sdJ ‚| ¡ rpJ ‚d S )NF)r   r   rÇ   Zset_autoscalex_onÚget_autoscalex_onrÆ   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   sr  t  d¡} |  ¡ }| ¡ rJ ‚| ¡ r*J ‚tj d¡}| |¡ | ¡ rLJ ‚| ¡ sXJ ‚| ¡  t 	ddtj
 d¡}| |t |¡¡ | ¡ r’J ‚| ¡ ržJ ‚| ¡  | |¡ t  ¡  | ¡ rÄJ ‚| ¡ sÐJ ‚t  d¡}t jd|d�}|j d¡ | ¡ �sJ ‚| |t |¡¡ | ¡  | ¡ �r*J ‚| ¡  | |¡ | |t |¡¡ | ¡  | ¡ �sdJ ‚t  | ¡ d S )	Nr   )r»   r»   r   r»   éÓ   éÔ   ©ÚshareyT)r   r¡   ÚgcaZxaxis_invertedZyaxis_invertedrP   rQ   rn   rÏ   rÂ   rÄ   rp   ÚcosÚ	autoscaleÚsubplotrD   Zset_invertedÚclose)r   r   Úimgr-   Úax0rÉ   r   r   r   Útest_inverted_claœ  s>    




r  c                 C   st   t  dddœ¡�, |  ¡ }| ddgddg¡ W d   ƒ n1 sB0    Y  | ¡ }| ddgddg¡ | ¡  d S )NT)zxtick.minor.visiblezytick.minor.visibler   r   )r>   r   r   rp   Úminorticks_on)r3   r4   rX   rY   r   r   r   Ú test_minorticks_on_rcParams_bothÎ  s    ÿ
2r  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 )Nr   re   iõÿÿÿr   r   )r   r   Ú	enumerateÚflatrp   )r   Úaxsré   r   Úy1r   r   r   Útest_autoscale_tiny_rangeÙ  s    r  Údefaultc                  C   s^   t  dd¡\} }| g d¢¡ |jdddd� |jdddd� t| ¡ dƒ t| ¡ d	ƒ d S )
Nr   ©r   r   r|   rÚ   Tr-   F)ÚenableÚaxisÚtightr*   )g333333Ã¿g333333	@)r–   ç      @)r   r   rp   r   r   rr   rs   r   r   r   r   Útest_autoscale_tightâ  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dtyper   r   T©Úsharex)r  rc   r   )rP   rU   Úfloatr   r   ÚloglogÚsemilogxr   rÌ   r   rr   rs   )r-   r   rÉ   rÐ   Zlimsr   r   r   Útest_autoscale_log_sharedì  s    r  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   r   r   r|   r]   ©r_   )ç      à¿r‘   Fr  r‘   T)
r   r   rn   r   rr   rs   Zuse_sticky_edgesr   Z_xmarginZ_ymargin)r   r   rg   rh   r   r   r   Útest_use_sticky_edgesþ  s    r  c                 C   sZ   t  d¡ dd¡}|  d¡}| jd|d�}| |¡ | d¡}|jd|d�}| |¡ d S )Nr¼   r|   r´   rú   rû   r  )rP   rU   rl   r‡   Ú
pcolormesh)r3   r4   ÚZr  rÉ   r   r   r   Útest_sticky_shared_axes  s    


r"  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)rc   r´   ©éýÿÿÿr´   )Zautoscale_onrg   rh   r|   Úpurple©rî   r˜   z	local max©r|   r   Údata©r|   r|   zoffset points)ÚxyÚxycoordsÚxytextÚ
textcoords)	rP   rU   rÿ   rÄ   r   r¡   r‡   rp   Úannotate)ÚtÚsr   r   Úliner   r   r   Útest_basic_annotate   s    
ÿr5  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)rL   r9   r'   r|   rÚ   éþÿÿÿr   é   r   r»   re   )ÚwidthÚlength_includes_headÚshapeÚhead_starts_at_zeroZ
head_widthÚhead_length)r   r   r   r
  Úzipr  Úset_xlimÚset_ylimrP   rÄ   ÚarrowrÃ   rÿ   )
r9  r:  r;  Úkwargsr   r  ré   r   ÚkwargÚthetar   r   r   Útest_arrow_simple0  s$    
úrD  c                  C   s$   t  ¡ \} }|jdddddd� d S )Nr   )r<  )r   r   r@  ©Ú_r   r   r   r   Útest_arrow_emptyK  s    rG  c                  C   s@   t  ¡ \} }| dddd¡ | ¡ dks,J ‚| ¡ dks<J ‚d S )Nr   )çš™™™™™é?çš™™™™™@)r   r   r@  rr   rs   rE  r   r   r   Útest_arrow_in_viewQ  s    rJ  c                  C   sN   t  ¡ \} }|jdddd�}|jd u s*J ‚|jdddi d�}|jd usJJ ‚d S )NÚfoo©r   r   ©r   r|   )r/  )r/  Ú
arrowprops)r   r   r1  Zarrow_patch)r   r   Úannr   r   r   Útest_annotate_default_arrowX  s
    rP  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� g d¢}| || g d¢d¡ |j|g|gddd� | |||| || gg d¢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]r  r   ÚdegÚred)Zyunitsr˜   rì   )r#  r#  g     €V@r#  ÚbéZ   r—   )rÞ   )r›   rœ   r�   rž   ÚEpochÚdatetimer[  ÚDurationrP   rU   ÚmdatesÚdate2numr   r   rp   ÚfillZautofmt_xdate)rŽ   r2  ÚvalueÚdayrX  Zdtnr   rÉ   rÐ   rÑ   Úax4Úindr   r   r   Útest_fill_unitsa  s4    

ÿ
"þ"þri  c                   C   sæ   t jtdd��& tjdgdgddd� W d   ƒ n1 s:0    Y  t jtdd��& tjdgdgdd	d
� W d   ƒ n1 s~0    Y  t jtdd��& tjdgdgddd� W d   ƒ n1 sÂ0    Y  tjdgdgddd� d S )Nzmarker .* redundantly defined©Úmatchr   ry   r-   ©r^   z linestyle .* redundantly definedú-ú--©r{   zcolor .* redundantly definedÚrr—   ©r˜   rÛ   )r²   r˜   )r}   ÚwarnsÚUserWarningr   rp   Úerrorbarr   r   r   r   Ú test_plot_format_kwarg_redundantƒ  s    444ru  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 )Nry   úlines.markerTú	axes.gridr   r   r   ©ru   r]  ru   ©r+  r]  )r>   rŸ   r   r   rp   )r   rÉ   rÐ   r+  r   r   r   Útest_single_pointŽ  s    

rz  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.limitsú
0000-12-31g    X&AgÃõ(\�bPÀr   r   r   ry   rp  rq  )	r   rŸ   rb  rc  rP   Ú
datetime64r   Ú	plot_daterp   )rX  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 )Nre   ©r   rc   r   r»   ©rc   r   r   r   ©g¸…ëQ¸®¿ç¸…ëQ¸®?)r   é	   ©rg   rh   )rP   rU   rl   r   rp   rq   Zravel)r3   r4   ÚrowÚcolr  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©r   r   ©r   r   rj   Ztwosr  r   r   ry  r   rp  )rP   rñ   r  r   r¡   r   rp   )Zptsr  r   r   r   Útest_structured_data¾  s    r�  Zaitoff_proj)rH   r	  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
    é   r   )é   çÍÌÌÌÌÌ@Zaitoff©Z
projection)ÚfigsizeÚ
subplot_kwry   rÚ   )rd   N)
rP   rÂ   rÄ   Úmeshgridr   r   ÚdictÚgridrp   r  )r-   r*   ÚXÚYr   r   r   r   r   Útest_aitoff_projÈ  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   rT  rU  r   rŽ  rW  é   rŠ   r—   ç      Ð?)rÞ   Úalphar$  )r›   rœ   r�   rž   r_  r`  ra  rf  Úconvertr   rþ   Úaxvspanr>  ©rŽ   Út0ÚtfrX  r   r   r   r   Útest_axvspan_epochÙ  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`  ra  rf  rž  r   rþ   Úaxhspanr?  r   r   r   r   Útest_axhspan_epochè  s    r¦  zhexbin_extent.pngc                  C   sl   t  ¡ \} }t d¡d  d¡}|\}}|j||g d¢d� ||dœ}t  ¡ \} }|jddg d¢|d� d S )	NéÐ  )r   éè  ©r¸   rº   ç333333ã?çffffffæ?)ÚextentrÔ   r-   r*   )r¬  r+  )r   r   rP   rU   rl   Úhexbin)r   r   r+  r-   r*   r   r   r   Útest_hexbin_extent÷  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   s`   t  ¡ \} }t d¡d  d¡}|\}}|j||g d¢dd�}tddd�}| |¡d	 s\J ‚d S )
NéÈ   ©r   r»   r©  rc   )r¬  Zpickeré�  é,  rÔ   r   )r   r   rP   rU   rl   r­  r   Úcontains)r   r   r+  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.snaprI   é † r¶   ç      @r  r   r’   rØ   T)ÚyscaleÚbinsZ	marginalsZreduce_C_function)r   rŸ   rP   rQ   rR   Ústandard_normalÚpowerr   r­  Úsumr0   )Únr-   r*   r   r   Úhr   r   r   Útest_hexbin_log  s    
ÿrÁ  c                  C   sH   t  d¡ d¡\} }t ¡ \}}|j| |dddd�}| ¡ dksDJ ‚d S )Nr±  r²  rØ   r   r»   )r»  ÚvminÚvmax)rP   rU   rl   r   r   r­  Zget_clim)r-   r*   r   r   rÀ  r   r   r   Útest_hexbin_log_clim+  s    rÄ  c                  C   sÎ   t  ¡ \} }| ¡  | g d¢g d¢¡ | ¡ dks8J ‚| ¡ dksHJ ‚t  ¡  t  ¡ \} }| ¡  | g d¢g d¢¡ | ¡ dksˆJ ‚| ¡ dks˜J ‚t  ¡ \} }| d¡ | 	dd	¡ | ¡ d
ksÊJ ‚d S )N)éûÿÿÿr'  r   rÚ   )r   r   r'  r´   )rÚ   rÅ  r&  )rÅ  rÚ   )r´   r'  rØ   re   r   )re   r   )
r   r   Úinvert_xaxisrp   rr   rs   r  Úinvert_yaxisÚ
set_yscaler?  r   r   r   r   Útest_inverted_limits2  s    
rÉ  Znonfinite_limitsc                  C   st   t  dt jd¡} t jdd�� t  | ¡}W d   ƒ n1 s<0    Y  t j| t| ƒd < t ¡ \}}| 	| |¡ d S )Nr#  r%  Úignore©Údivider   )
rP   rU   ÚeÚerrstaterØ   ÚnanÚlenr   r   rp   ©r-   r*   r   r   r   r   r   Útest_nonfinite_limitsL  s    (rÒ  Úplot_fun)r   rp   Ú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-01rZ  r  ÚC0rq  )rP   rU   r   rá   r    rÐ  )rÓ  r3   r4   r-   rX   rY   r   r   r   r   Útest_limits_empty_dataW  s    rÖ  rn   )r	  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 )Nr`   úimage.interpolationr»   r   rp  ry  )r>   rŸ   rP   ÚindicesÚsqrtr   r   rn   )ÚNr-   r*   rp  r   r   r+  r   r   r   Útest_imshowh  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 )Nr`   r×  r»   r   rÚ   r   )Ú	clip_path)r>   rŸ   rP   rØ  rÙ  r   r   ÚcontourÚcollectionsÚ	get_pathsÚget_transformÚmtransformsZTransformedPathrn   )	rÚ  r-   r*   rp  r   r   r    rÜ  Zclip_transformr   r   r   Útest_imshow_clip}  s    

râ  c                  C   sd   ddgddgg} t  ¡ }tjtdd��* |j| t dd¡d	d
d� W d  ƒ n1 sV0    Y  dS )ú4Parameters vmin, vmax should error if norm is given.r   r   r|   rÚ   úFPassing parameters norm and vmin/vmax simultaneously is not supported.rj  éöÿÿÿre   r   r´   )ÚnormrÂ  rÃ  N)r   Úaxesr}   r~   Ú
ValueErrorrn   ÚmcolorsÚ	Normalize)ru   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 )Nr   r   é(   )Ú
linewidthsr   r|   )
r   r   rP   rñ   rƒ   rÞ  ZPolyCollectionÚadd_collectionZ
set_xboundZ
set_ybound)r   r   Úvertsr    r   r   r   Útest_polycollection_joinstyle¢  s    "
rð  z	x, y1, y2rŒ  r|   r#  r   )Z
2d_x_inputZ2d_y1_inputZ2d_y2_input)Úidsc                 C   sH   t  ¡ \}}t t¡� | | ||¡ W d   ƒ n1 s:0    Y  d S rË   )r   r   r}   r~   rè  rÔ  )r-   r  rõ   r   r   r   r   r   Útest_fill_between_input­  s    rò  z	y, x1, x2)Z
2d_y_inputZ2d_x1_inputZ2d_x2_inputc                 C   sH   t  ¡ \}}t t¡� | | ||¡ W d   ƒ n1 s:0    Y  d S rË   )r   r   r}   r~   rè  Úfill_betweenx)r*   Úx1rô   r   r   r   r   r   Útest_fill_betweenx_input¾  s    rõ  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 )Nr#  r   r¤  ç333333ó?rÚ   r   Tr  Úblackrq  Úwhiteú/)ÚwhererÞ   ÚhatchÚinterpolater\  )rú  rÞ   rü  r–   r   r™   )rP   rU   rÃ   rÄ   r   r   rp   rÔ  r   Úmasked_greaterZmasked)r-   r  rõ   r   rÉ   rÐ   r   r   r   Útest_fill_between_interpolateÏ  s(    ÿÿÿÿrþ  Z#fill_between_interpolate_decreasing©r„   r	  c               	   C   sª   t  g d¢¡} t  g d¢¡}t  g d¢¡}tjdd�\}}| || d¡ | || d¡ |j| ||||k dd	d
d� |j| ||||kdd	d
d� | dd¡ | dd¡ d S )N)gfffff¢†@i¼  i�  )gÍÌÌÌÌÌ"@r|  rI  )gš™™™™™@gffffff@gffffff@)r†  r†  ©r’  ztab:redÚkr—   Tçš™™™™™Ù?©rú  rÞ   rü  r�  r\  r   r‰   é   éX  )rP   rñ   r   r   rp   ró  r>  r?  )rÁ   r2  Zprofr   r   r   r   r   Ú(test_fill_between_interpolate_decreasingç  s    ÿÿr  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
��  ||k}||k}W d   ƒ n1 s~0    Y  t ¡ \}}|j| |dd� |j| |dd� |j| |||dddd� |j| |||dddd� d S )Nre   r�  é   é   é   é   r[   r‰   rÊ  ©Úinvalidr  ©r    r]  r™   Tr’   r  r\  )	rP   rU   ÚasarrayrÏ  rÎ  r   r   rp   rÔ  )r-   r  rõ   Zgreater2Zgreater1r   r   r   r   r   Ú!test_fill_between_interpolate_nanü  s    
 "&ÿÿr  z
symlog.pdfc                  C   sX   t  g d¢¡} t  g d¢¡}t ¡ \}}| | |¡ | d¡ | d¡ | dd¡ d S )N)r   r   r   rÚ   é   r†  r7  r  )i@B i ¡ r¸  r»   r´   r   r   r   ÚsymlogÚlinearrc   i€–˜ )rP   rñ   r   r   rp   rÈ  Ú
set_xscaler?  rÑ  r   r   r   Útest_symlog  s    

r  zsymlog2.pdfc                  C   sn   t  ddd¡} t dd¡\}}t|g d¢ƒD ],\}}| | | ¡ |jd|d� | d	¡ q,|d
  dd¡ d S )NéÎÿÿÿé2   çü©ñÒMbP?r´   r   )ç      4@r¶   r–   r¸   r%  r  )Ú	linthreshTrc   çš™™™™™¹¿r¸   )	rP   rU   r   r   r=  rp   r  r–  r?  )r-   r   r  r   r  r   r   r   Útest_symlog2"  s    r  c               	   C   sˆ   g d¢} g d¢}t  | |¡\}}t  ||¡}t |¡ t t|ƒ¡ t | ||d d…d d…f ¡ t ||t|d d…d d…f ƒ¡ d S )N)ç      ø¿ç      ð¿r  r#  r’   r–   r‘   )r  g      ô¿r  g      è¿r  g      Ð¿r   rœ  r’   ç      è?r–   ç      ô?r‘   rc   )rP   r”  Úhypotr   ÚpcolorÚlist)r-   r*   r—  r˜  r!  r   r   r   Útest_pcolorargs_5205/  s    
r#  r   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·  r7  r  r‘   r   çš™™™™™ñ?r´   r’   r   r|   rc   r  )rî   Ú
edgecolorsr]  ÚwÚgouraud©Úshading)r   rŸ   rP   rÂ   r”  rÿ   rÃ   r   ÚminÚptpr   Zmasked_whereÚabsÚmaxr   r   )r¿  r-   r*   r—  r˜  ÚQxZQzr!  ZZmr   rÉ   rÐ   rÑ   r   r   r   Útest_pcolormesh=  s    
 $(r/  Zpcolormesh_alphaZpdf)rH   r	  c               
   C   s€  dt jd< d} t t dd| ¡t dd| d ¡¡\}}|}|t |¡ }t ||¡d }|| ¡  | ¡  }t  	dd	¡}|t 
d	¡ƒ}d
d
t t 
d	¡¡  |d d …df< t |¡}t  dd¡\}	\\}
}\}}|
|||fD ]"}| tjdddg d¢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·  r7  r  r‘   r   r´   Úviridisé   r’   r|   )r   r  )r«  r¸   r¸   r’   r   )rÞ   Úzorderrc   r  r  r   )ra   r�  r)  r2  r'  )ra   r)  r2  )r   rŸ   rP   r”  rÂ   rÃ   r   r*  r+  Úget_cmaprU   ré  ZListedColormapr   Ú	add_patchÚmpatchesÚ	Rectangler   )r¿  r—  r˜  r.  ZQyr!  ZvirÚcolorsra   r   rÉ   rÐ   rÑ   rg  r   r   r   r   Útest_pcolormesh_alphaU  s2    
þ$
ÿ
ÿ&r8  zpcolormesh_datetime_axis.pngFc                     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hspacer#   r8   éÝ  r   c                    s   g | ]}ˆ t j|d � ‘qS ©)Údays©r`  Ú	timedelta©rŒ   Úd©Úbaser   r   r�   �  r�   z1test_pcolormesh_datetime_axis.<locals>.<listcomp>r›  rŽ  éÝ   rc   éÞ   r   ©r  éß   éà   r'   r‰   )r   rŸ   r¡   Úsubplots_adjustr`  rP   rñ   r    rU   r”  r  r   ÚrepeatÚnewaxisÚget_axesÚget_xticklabelsÚset_haÚset_rotation©r   r-   r*   Zz1Zz2Úzr   r!   r   rC  r   Útest_pcolormesh_datetime_axisx  s,    


.

>

rS  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  r9  r:  r;  r<  r   c                    s   g | ]}ˆ t j|d � ‘qS r=  r?  rA  rC  r   r   r�   ›  r�   z-test_pcolor_datetime_axis.<locals>.<listcomp>r›  rŽ  rE  rc   rF  r   rG  rH  rI  r'   r‰   )r   r¡   rJ  r`  rP   rñ   r    rU   r”  r  r!  rK  rL  rM  rN  rO  rP  rQ  r   rC  r   Útest_pcolor_datetime_axis•  s*    

.

>

rT  c               	   C   s°  d} t  dd| ¡}t  dd| d ¡}t  ||¡\}}t  ||¡d }t ¡ \}}t t¡� | 	|||¡ W d   ƒ n1 s~0    Y  t t¡�  | 	|||j
¡ W d   ƒ n1 s¸0    Y  t t¡�2 |j	|||d d…d d…f dd� W d   ƒ n1 �s0    Y  t t¡�2 |j	|||d d…d d…f dd� W d   ƒ n1 �sT0    Y  t j|d	< t t¡�. | 	|||d d…d d…f ¡ W d   ƒ n1 �s¨0    Y  t jd
d��$ t jj||d	k d�}W d   ƒ n1 �sê0    Y  t t¡�. | 	|||d d…d d…f ¡ W d   ƒ n1 �s40    Y  g d¢}ddg}t  ||¡\}}t  |j¡}tjtdd��" |j	|||dd� W d   ƒ n1 �s¢0    Y  d S )Nr7  r  r‘   r   r´   rc   r'  r(  r   rÊ  r  )Úmask)ig  r   r   rå  re   z.are not monotonically increasing or decreasingrj  Úauto)rP   rÂ   r”  r   r   r   r}   r~   r   r   ÚTÚNaNrè  rÎ  r   rñ   Úzerosr:  rr  rs  )r¿  r-   r*   r—  r˜  r!  rF  r   r   r   r   Útest_pcolorargs¯  s:    ,.BB
>4>ÿrZ  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   re   r|   rI   r   r†  r  r(  rc   r`   ©r   rP   rU   rQ   rR   Úrandnr   Údiff©r3   r4   r   r-   r*   r!  rô   rõ   r   r   r   Útest_pcolornearestÐ  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�   ã  r�   z+test_pcolornearestunits.<locals>.<listcomp>re   r   r|   rI   r   r†  r  r(  c                 S   s    g | ]}t j  |d  d ¡‘qS )r’   r`  ra  r‹   r   r   r   r�   ë  r�   rc   r`   )	r   r    rP   rU   rQ   rR   r\  r   r]  r^  r   r   r   Útest_pcolornearestunitsà  s    rc  c                  C   s‚   t  ¡ \} }t dd¡}t dd¡}tj d¡ tj dd¡}tjt	dd��" |j
|||dd� W d   ƒ n1 st0    Y  d S )	Nr   r†  r|   rI   zDimensions of Crj  r  r(  )r   r   rP   rU   rQ   rR   r\  r}   r~   r   r   )r   r   r-   r*   r!  r   r   r   Útest_pcolorflaterrorð  s    rd  Úsnapc           	      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   re   rÚ   rI   r|   r†  )re  rc   r   r[  )	r3   r4   re  r   r-   r*   r!  rô   rõ   r   r   r   Útest_pcolorautoú  s    rf  Ú	canonicalc                  C   s   t  ¡ \} }| g d¢¡ d S )N©r   r   r|   ©r   r   rp   r   r   r   r   Útest_canonical  s    rj  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 )Nr   r   )r¹   r’   r|   éh  r†  é-   rº   )r�  )Útheta1Útheta2r   re   )r   r   r
  r  r4  r5  ZEllipseÚArcrp   rP   rÿ   Údeg2radrÃ   r>  r?  )
r&  rÀ  Zcentrer×   r   r  ré   r   rn  rm  r   r   r   Útest_arc_angles  s2    þþýrq  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º   éâÿÿÿrk  r¶   rú   rV  )rf   r¹   Úyellowr   )r�  rÞ   rß   rà   r2  r   F)Úanglerà   rd  r2  rû   Úequalr™   )r�  rÞ   rß   r2  )rP   rp  rU   rÿ   rÃ   rñ   rT   r   r¡   r‡   rd  r5  ro  r4  )ZxcenterZycenterr8  Úheightrt  rC  r-   r*   ZrthetaÚRr   r   Úe1Úe2r   r   r   Útest_arc_ellipse5  s:    
þÿÿ
ÿrz  c                  C   sb   t  ¡ \} }t d¡}|jg d¢g d¢|d� |jg d¢g d¢|d� |jg d¢g d¢|d� d S )Nry   rh  ©r|   r   r   rl  )rÚ   r|   r   )r´   rÚ   r|   )r   r   ÚmmarkersÚMarkerStylerp   r   rt  )Úfixr   Úmr   r   r   Útest_marker_as_markerstyleZ  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   re   r»   r’   ry   r  ©r!   rB  úmark all©r�  r!   r3  úmark every 10ú+©r´   rŽ  úmark every 5 starting at 10©rP   rÂ   rÃ   rÙ  r   r   rp   r/   rÑ  r   r   r   Útest_markeveryb  s    rŠ  Zmarkevery_lineg{®Gázt?)r	  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   re   r»   r’   z-or  r‚  z-drƒ  r„  z-sr…  z-+r‡  rˆ  r‰  rÑ  r   r   r   Útest_markevery_linep  s    r‹  Zmarkevery_linear_scalesr  c            
      C   sØ   d ddg d¢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�  ©r1  r  r‰   r   rc   r»   r±  r|   r¸   rº   r‘   ©r#  r¸   ©gÍÌÌÌÌÌÜ?r¸   r   ç)\�Âõ(¼?re   r   r–   úmarkevery=%sry   rm  rÚ   ©ÚlsÚmsr�  )Úslicer>   ÚgridspecÚGridSpecrÐ  rP   rÂ   rÃ   r
  r   r  ÚtitleÚstrrp   ©
Ú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g d¢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Œ  r�  r   rc   r»   r±  r|   r¸   rº   r‘   rŽ  r�  r   r�  re   r   r–   r‘  ry   rm  rÚ   r’  )r  gÍÌÌÌÌÌ@)r$  g333333û?)r•  r>   r–  r—  rÐ  rP   rÂ   rÃ   r
  r   r  r˜  r™  rp   rg   rh   rš  r   r   r   Ú#test_markevery_linear_scales_zoomed›  s*    
ú
r¡  Zmarkevery_log_scalesc            
      C   sì   d ddg d¢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Œ  r�  r   rc   r»   r±  r|   r¸   rº   r‘   rŽ  r�  r   r�  re   r   r–   r‘  rØ   ry   rm  rÚ   r’  )r•  r>   r–  r—  rÐ  rP   rÂ   rÃ   r
  r   r  r˜  r™  Úxscalerº  rp   rš  r   r   r   Útest_markevery_log_scales¶  s*    
ú

r£  Zmarkevery_polarc            	      C   sÈ   d ddg d¢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� qld S )Nr�  rŒ  r�  r   rc   r»   r±  r|   r¸   rº   r‘   rŽ  r�  r   r¹  r   T)Úpolarr‘  ry   rm  rÚ   r’  )r•  r>   r–  r—  rÐ  rP   rÂ   rÄ   r
  r   r  r˜  r™  rp   )	r›  rœ  r�  rp  rC  ré   rŸ  rˆ  r‰  r   r   r   Útest_markevery_polarÑ  s$    
ú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   r   re   zy.ç      >@rp  )r”  ÚmewÚmecr¸   r¹   r   r]  )rP   rÂ   r   r   rp   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   r   ÚedgeÚ0)ÚalignÚ
tick_labelrx  ru   r]  )r­  r®  r+  )r   rþ   Úbarr   )r   r+  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   r   rÚ   )r   r   r¯  rP   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 )
Nr   ç      @r   r¹   r’   ru   r]  r@   ©r8  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 )Nr@   zytick.alignmentr   r³  r   r¹   r’   ru   r]  r´  )r>   rŸ   r   rþ   r¯  r¯  r   r   r   Ú*test_bar_tick_label_multiple_old_alignment  s
    
ÿr¶  c                 C   s`   |   ¡ }g d¢}g d¢}dd„ |D ƒ}dd„ |D ƒ}|j||dd� |  ¡ }|j||dd� d S )N©r‘   gÍÌÌÌÌÌ @g333333@r�  ©r$  rI  gffffff
@gš™™™™™@c                 S   s   g | ]}t |ƒ‘qS r   r   r‹   r   r   r   r�     r�   z+test_bar_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ‘qS r   r   r•   r   r   r   r�      r�   r@   ©r­  ©r   r¯  ©r3   r4   r   Úx0Úy0r-   r*   r   r   r   Útest_bar_decimal_center  s    r¾  c                 C   sl   |   ¡ }g d¢}g d¢}dd„ |D ƒ}dd„ |D ƒ}|j||g d¢dd� |  ¡ }|j||g d¢dd� d S )	Nr·  r¸  c                 S   s   g | ]}t |ƒ‘qS r   r   r‹   r   r   r   r�   -  r�   z,test_barh_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ‘qS r   r   r•   r   r   r   r�   .  r�   )r’   r’   r   r   r@   ©rv  r­  ©r   Úbarhr»  r   r   r   Útest_barh_decimal_center(  s    rÂ  c                 C   s^   g d¢}g d¢}g d¢}dd„ |D ƒ}|   ¡ }|j|||dd� |  ¡ }|j|||dd� d S )Nr·  r¸  ©r«  g333333÷?r   r   c                 S   s   g | ]}t |ƒ‘qS r   r   ©rŒ   ré   r   r   r   r�   ;  r�   z*test_bar_decimal_width.<locals>.<listcomp>r@   ©r8  r­  rº  )r3   r4   r-   r*   Zw0r&  r   r   r   r   Útest_bar_decimal_width6  s    rÆ  c                 C   s^   g d¢}g d¢}g d¢}dd„ |D ƒ}|   ¡ }|j|||dd� |  ¡ }|j|||dd� d S )Nr·  r¸  rÃ  c                 S   s   g | ]}t |ƒ‘qS r   r   rÄ  r   r   r   r�   I  r�   z,test_barh_decimal_height.<locals>.<listcomp>r@   r¿  rÀ  )r3   r4   r-   r*   Zh0rÀ  r   r   r   r   Útest_barh_decimal_heightD  s    rÇ  c                  C   sR   t  ¡ } | jddgddgdddd�}|D ]$}| ¡ dks<J ‚| ¡ d	ks(J ‚q(d S )
Nr   r   rÚ   rº   rÛ   rp  ©r�  r˜   rß   ©r   r   r   r   ©r   r   r   rº   ©r   rþ   r¯  Úget_facecolorÚget_edgecolor©r   ÚrectsÚrectr   r   r   Útest_bar_color_none_alphaR  s
    rÑ  c                  C   sR   t  ¡ } | jddgddgdddd�}|D ]$}| ¡ dks<J ‚| ¡ d	ks(J ‚q(d S )
Nr   r   rÚ   rº   rp  rÛ   rÈ  rÊ  rÉ  rË  rÎ  r   r   r   Útest_bar_edgecolor_none_alphaZ  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 )
Nr   r³  r   r¹   r’   ru   r]  r@   )rv  r®  r­  )r   rþ   rÁ  r¯  r   r   r   Útest_barh_tick_labelb  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.éâ  r   r–   r|   ©Úhours©r8  r   )Úxerrr8  )rv  )rv  Úyerrr‘   c                 S   s   g | ]}t j|d �‘qS )rÕ  r?  ©rŒ   r2  r   r   r   r�   ~  r�   z&test_bar_timedelta.<locals>.<listcomp>rÙ   )re   rŽ  N)	r   r   r¯  r`  r@  rÁ  rP   rñ   Úbroken_barhr   r   r   r   Útest_bar_timedeltaj  s<    
ÿ

þ
ÿ

þ
þþ
ÿþrÜ  c                 C   sB   t j dd¡}| jdd| jdd�d�j}t ¡  tj||d� d S )Nr´   r   z1/1/2000r   )Úyears)ÚperiodsÚfreq©Ú	positions)	rP   rQ   r†   Ú
date_rangeZ
DateOffsetÚyearr   r¡   Úboxplot)Úpdr+  rÝ  r   r   r   Útest_boxplot_dates_pandas„  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 |ƒ  n|ƒ  0 d S )Nr   )Úregister_matplotlib_convertersÚ deregister_matplotlib_converterséo   éå  r   r|  rc   éx   )Úsecondsr´   )Zpandas.plottingrç  rè  r   r¡   r‡   r`  rÐ  Úappendr@  rP   rU   r”  r:  r   ÚcanvasrÌ   )rå  rç  rè  r   r   ÚtimesZy_valsZ	time_axisZy_axisr:  Zz_dataÚimr   r   r   Útest_pcolor_regression�  s     

rñ  c                 C   sœ   |   g d¢g d¢g d¢g d¢dœ¡}|  |g d¢ ¡|d< |ddg  dg¡ ¡ }|j}|d }|d }t ¡ \}}|j||dd	d
� |j||ddd� d S )N)rÔ  rÔ  rÔ  )r   r   r   rh  )rã  Úmonthrf  re  )rã  rò  rf  Údatere  re   r@   rÅ  ÚorangerÚ   rí   )	Ú	DataFrameÚto_datetimeÚgroupbyr¾  Úindexr   r   r¯  rp   )rå  ÚdfZmonthlyÚdatesZforecastÚbaseliner   r   r   r   r   Útest_bar_pandas«  s    ýÿrü  c                 C   sD   | j g d¢g d¢dœg d¢d�}t ¡ \}}|j|jd|jd� d S )N)r–   r¶   r¹  )r¹   r  rª  )r-   r8  rh  ©rø  r–   r×  )rõ  r   r   r¯  r-   r8  ©rå  rù  r   r   r   r   r   Útest_bar_pandas_indexed¾  s
    ÿrÿ  c                 C   sh   |   ¡ }|  ¡ }ddg}ddg}ddg}tdƒD ]"}|j|| || d|| d� q0|j|||d� d S )	Nr   r   r|   r-   ry   rÕ  )r˜   rû  )rû  )r   r    r¯  )r3   r4   rX   rY   r-   r*   Úhatchesré   r   r   r   Útest_bar_hatchesÆ  s     r  c                 C   sF   | j ddgdd�}t ||¡ t |j|¡ t |¡ t |j¡ d S )Nr   r   Úfloat64r  )ÚSeriesr   rp   rø  )rå  r-   r   r   r   Útest_pandas_minimal_plotÕ  s
    
r  Zhist_logc                  C   sH   t  ddd¡d } t  d|  d|  g¡}t ¡ \}}|j|ddd� d S )Nr   r   r±  r|   FT)rd  rØ   )rP   rÂ   Úconcatenater   r   Úhist)Zdata0r+  r   r   r   r   r   Útest_hist_logÞ  s    r  c                 C   s®   |   dd¡}|  dd¡}tg d¢ƒ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 )
Nr   r|   )r¯  ÚstepÚ
stepfilledr   rØ   r   ©ÚhisttypeT)rØ   r  )r   r
  rÈ  r  )r3   r4   rv   rw   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g d¢ddd� |d  d¡ | j ¡  |d  ¡ |d  ¡ ks†J ‚d S )Nr   r   r   Ú
barstackedr
  rØ   ©r   r   r   )r   r   r  rÈ  rî  rÌ   rs   ©r   r  r   r   r   Útest_hist_log_barstackedö  s    
r  zhist_bar_empty.pngc                  C   s   t  ¡ } | jg dd� d S )Nr¯  r
  ©r   rþ   r  r¯  r   r   r   Útest_hist_bar_empty   s    r  zhist_step_empty.pngc                  C   s   t  ¡ } | jg dd� d S )Nr  r
  r  r¯  r   r   r   Útest_hist_step_empty  s    r  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ÒJ ‚d S )Nr   r¨  r|   re   rd  TFr   r  rÚ   r	  )ÚnrowsÚncols©r  Ústackedz%s/%sr  ©r8   ©r   r   c                 s   s   | ]}|  ¡ | ¡ kV  qd S rË   )rÌ  rÍ  )rŒ   rÁ   r   r   r   Ú	<genexpr>  r�   z(test_hist_step_filled.<locals>.<genexpr>)rP   rQ   rR   r\  r   r   r=  r  r  Ú	set_titler?  rå   Úall)
r-   Zn_binsrA  Útypesr   r  ZkgÚ_typer   rå   r   r   r   Útest_hist_step_filled  s    
r  zhist_density.pngc                  C   s6   t j d¡ t j d¡} t ¡ \}}|j| dd� d S )NrI   r§  T©Údensity)rP   rQ   rR   r¼  r   r   r  ©r+  r   r   r   r   r   Útest_hist_density!  s    r#  c                  C   sV   t j d¡} |  d¡}g d¢}tj||dd�\}}}t j||dd�\}}t||ƒ d S )Ni‹à  r»   )r'  rc   r  r   r   r´   T)r»  r!  )rP   rQ   ZRandomStater\  r   r  Z	histogramr   )Úrngr2  r»  Zmpl_heightsrF  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éá  r   r   T)r  F)r`  r   r   r  r"  r   r   r   Útest_hist_datetime_datasets4  s    ÿr'  Úbins_preprocessc                 C   s   | S rË   r   ©r»  r   r   r   Ú<lambda>>  r�   r*  c                 C   s   t  | ¡ d¡S )Nr~  )rP   r  Úastyper)  r   r   r   r*  ?  r�   )rc  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ã  r   r´   r	  r   r|   r  T)r»  r  F)
r`  r   r   r  rP   rœ   r   rƒ   rú  rc  )r(  r+  Z
date_edgesr   r   rF  r»  r   r   r   Ú test_hist_datetime_datasets_bins<  s    ÿÿþÿr,  zdata, expected_number_of_histsr   c                 C   sH   t  | ¡\}}}t |¡}|jdkr2d|ksDJ ‚n|jd |ksDJ ‚d S )Nr   r   )r   r  rP   r  Úndimr:  )r+  Zexpected_number_of_histsZhistsrF  r   r   r   Útest_hist_with_empty_inputS  s
    

r.  zhisttype, zorderr¯  r  r	  c                 C   sH   t  ¡  ¡ }|jddg| d� |js(J ‚|jD ]}| ¡ |ks.J ‚q.d S )Nr   r   r
  )r   r¡   r‡   r  rå   Ú
get_zorder)r  r2  r   rÎ   r   r   r   Útest_hist_zordera  s
    

r0  c                 C   s˜  dd l m} t g d¢¡}t g d¢¡}|  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i |¤Ž¡ |d  |j|d |d gd|d gfi |¤Ž¡ |d  dd ¡ |d j	t 
|d |¡|fddi|¤Ž |d  |jd|d g|d |d gfi |¤Ž¡ |d  |jd|d g|d |d gfi |¤Ž¡ |d  dd ¡ |d j	|t 
||d ¡fddi|¤Ž |d  |j|d |d gd|d gfi |¤Ž¡ |d  |j|d |d gd|d gfi |¤Ž¡ |d  ¡  |d j	t 
|d |¡|fddi|¤Ž |d  |jd|d g|d |d gfi |¤Ž¡ |d  |jd|d g|d |d gfi |¤Ž¡ |d  ¡  d S )Nr   )r  é   r[   é%   é0   r[   r›  rÚ   )	r–   r¶   r¹  r  r$  g      @ç      @g       @ç      "@r|   r   ©rû  r   r:   )rû  r<   r;   rÚ   r´   ÚmiterÚbutt©Úsolid_joinstyleÚsolid_capstylerc   Ú	drawstyleú
steps-post)Zmatplotlib.linesÚlinesrP   rñ   r   ÚflattenÚstairsZsemilogyr  rp   rí  Úadd_lineÚLine2Dr?  r>  )r3   r4   Zmlinesr*   r-   Ú	test_axesr„   Úref_axesr   r   r   Útest_stairsm  s@    
(((22(22(22(22rE  c                 C   s‚  g d¢g d¢ }}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 )N)r   r   r|   rÚ   r   )r   r   r   r|   rÚ   r´   r6  r   r   T)rd  r   r:   )r<   rd  )rû  rd  r|   )rû  r<   rd  rc   Úpost)r  rî   )r   r?  r@  rÔ  rP   rí  r?  ró  r>  rj   rÐ  )r3   r4   rÀ  r»  ÚbsrC  rD  r   r   r   Útest_stairs_fill™  s,    ÿ""ÿÿrH  c                 C   s  d}|   ¡ }| g d¢¡}| |¡ | g d¢¡ |jt d¡d d� | g d¢t d¡d ¡ | g d¢¡ | d t d¡¡ t | ¡ d t d	d¡¡s¢J ‚t | ¡ d	 t d¡¡sÀJ ‚|jd
d� | ¡ jd
ksÞJ ‚|  ¡ }|jg d¢d
d�}| |¡ d S )N)r'  rÚ   rh  r{  rÚ   r   ©Úedges)r   r   r   r   r   r6  r6  )	r‡   r@  r?  Úset_datarP   rU   ÚallcloseÚget_datarû  )r3   r4   rh   Útest_axrÀ  Úref_axr   r   r   Útest_stairs_update³  s     
 rP  c                 C   s\   |   ¡ }|jg d¢d d� |  ¡ }dddœ}|jtdƒg d¢fdd	i|¤Ž | d
d ¡ d S )N)r´   r  r|  r6  r7  r8  r9  rÚ   )r´   r  r|  r|  r<  r=  r   )r‡   r@  rp   r    r?  )r3   r4   rN  rO  r„   r   r   r   Útest_stairs_baseline_0Ë  s    
 rQ  c                  C   s>   t  ¡  ¡ } |  g dg¡ |  ¡ dks*J ‚|  ¡ dks:J ‚d S )Né*   )é'   rl  r„  )r   r¡   r‡   r@  rr   rs   r¯  r   r   r   Útest_stairs_emptyØ  s    rT  c                   C   sJ   t jtdd��( t ddgdtjdg¡ W d   ƒ n1 s<0    Y  d S )NúNan values in "edges"rj  r   r   r   )r}   r~   rè  r   r@  rP   rÏ  r   r   r   r   Útest_stairs_invalid_nanß  s    rV  c                   C   sF   t jtdd��$ t ddgddg¡ W d   ƒ n1 s80    Y  d S )NúSize mismatchrj  r   r   r   )r}   r~   rè  r   r@  r   r   r   r   Útest_stairs_invalid_mismatchä  s    rX  c                  C   sZ   t  ddgg d¢¡} tjtdd��$ | jdtjdgd� W d   ƒ n1 sL0    Y  d S )Nr   r   rë   rU  rj  rI  )r   r@  r}   r~   rè  rK  rP   rÏ  ©rÀ  r   r   r   Útest_stairs_invalid_updateé  s    rZ  c                  C   sX   t  ddgg d¢¡} tjtdd��" | jt d¡d� W d   ƒ n1 sJ0    Y  d S )Nr   r   rë   rW  rj  r´   rI  )r   r@  r}   r~   rè  rK  rP   rU   rY  r   r   r   Útest_stairs_invalid_update2ï  s    r[  ztest_stairs_options.pngc               
   C   s˜  t  g d¢¡t  g d¢¡ 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d#� |j|d d… d d d… d d$ | d d… d d%ddd&d'd(d)� |jd*d+� d S ),N©r   r   r|   rÚ   r´   r  r   r|   r™   TÚA)r˜   rd  r!   r\  r:   ÚB)r˜   rd  r<   r!   rô  rn  r   ÚC)r˜   r“  rî   r!   r’   ÚD)r“  rî   rû  r<   r!   rc   é   ÚE)r˜   r“  rî   rû  r!   r1  r
  r(  ÚF)rû  r˜   r“  rî   r!   r¼   rV  é   r—   ÚG)rû  r˜   r“  rî   r!   rd  r	  r÷  r7  ú//ÚH)r˜   r“  rî   rû  rû  r!   r   r$   )rP   rñ   r+  r  ÚcopyrÏ  r   r   r@  rÂ   rÐ  r/   )r-   r*   Zynr   r   r   r   r   Útest_stairs_optionsõ  s2    $
ÿÿ&ÿÿ.
ÿ4ÿri  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@  rP   rU   r~  Zxticks)Úfr   r   r   r   Útest_stairs_datetime  s    ÿÿrn  c                  C   sH   t  ddd¡} t  ddd¡}t  | ¡t  |d d …t jf ¡ }| ||fS )Nr'  r´   é–   rë  )rP   rÂ   rÿ   rÃ   rL  )r-   r*   rR  r   r   r   Úcontour_dat  s    "rp  Zcontour_hatchingc               
   C   s@   t ƒ \} }}t ¡ \}}|j| ||dg d¢t d¡ddd� d S )Nr|  )rù  ú\rf  rm  Úgrayri   r’   )r   ra   Úextendr�  )rp  r   r   Úcontourfr3  )r-   r*   rR  r   r   r   r   r   Útest_contour_hatching  s    þru  Zcontour_colorbarc            	   
   C   s²   t ƒ \} }}t ¡ \}}|j| ||t ddd¡t 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ª  ri   )Úlevelsra   rÂ  rÃ  rs  gš™™™™™Àg^ºI+ã¿r*   rz   r   )rv  r7  Ú
linestylesrí  rI  r    )rv  r7  rí  r¯  F)Zerase)
rp  r   r   rt  rP   rU   r3  rÝ  r0   Z	add_lines)	r-   r*   rR  r   r   ÚcsZcs1Zcs2r6   r   r   r   Útest_contour_colorbar&  s(    üýþ
ry  Ú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»   r   r´   re   T©r»  Ú
rasterizedrÔ   r-   r*   )r»  r+  r|  )r   rŸ   rP   rQ   rR   r\  r   rz  )r-   r*   r   r   r+  r   r   r   Útest_hist2d<  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»   r   re   Tr{  )	r   rŸ   rP   rQ   rR   rñ   r\  r   rz  rÑ  r   r   r   Útest_hist2d_transposeN  s    
r~  c                  C   s>   t j d¡\} }t ¡  ¡ }|tfD ]}|j| |dd� q$d S )Nr²  Tr   )rP   rQ   r   r¡   r   rz  )r-   r*   r   Úobjr   r   r   Útest_hist2d_density\  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	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&d'„ ƒZd(d)gd*fd+d,d-g d.¢d/fd0d1gd*fd1gd2 d*fd3gd4 d/fd3gd2 d/fd3gd5 d6fg d7¢d/fg d8¢d/fg d9¢d*fg d:¢gd/fg d:¢gd4 d6fg d:¢gd2 d/fg d:¢gd5 d6fg d;¢gd/fg d;¢gd4 d6fg d;¢gd2 d/fg d;¢gd5 d6fg d;¢gd4 g d:¢g d/fg d;¢d<d=gd6fg d;¢d<d=d>gd/fg d;¢d<d=d>g d?¢gd6fg d;¢d<d1gd*fg d;¢d<d=d1gd*fg d;¢d<d=d>d1gd*fgZej d@e¡dAdB„ ƒZej d¡edgd�dCdD„ ƒƒZdEdF„ Zd/S )GÚTestScatterr   r‚   Trÿ  c                 C   s¨   t  g d¢¡t  g d¢¡g d¢g d¢g d¢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 )N©r|   rÚ   r   r  ©r   r´   r   r|   ©rp  r*   r]  Úlime©r  r¼   é   é   )ú0.5ú0.6ú0.7z0.8)r-   r*   r    r3  Úc2r-   r–   r*   r    r3  ©r    r3  rŒ  )r    r3  r+  )rP   rñ   r   r   r   )Úselfr+  r   r   r   r   r   Útest_scatter_plotd  s    þ**zTestScatter.test_scatter_plotzscatter_marker.pngr  c           
   
   C   sö   t jdd�\}\}}}|jg d¢g d¢g d¢g d¢g d¢dd	� |jg d¢g d¢g d¢g d¢g d¢tjd
dd�d	� d\}}|| tj }t ddtj d¡}t t 	|¡| | t 
|¡| | g¡}	|jg d¢g d¢g d¢g d¢g d¢|	d	� d S )Nr|   ©r  r‚  rƒ  )©r   r   r   r*   r]  r…  )rR  r  rì  r‰   )r  rp  Úgr]  r3  )r    r3  r%  r^   ry   r#   ©Ú	fillstyler*  r   r   r›  )r   r   r   r|  r}  rP   rÄ   rÂ   Zcolumn_stackrÿ   rÃ   )
rŽ  r   r  rÉ   rÐ   ÚrxZryÚarearC  rï  r   r   r   Útest_scatter_markero  s2    üüÿüzTestScatter.test_scatter_markerZ
scatter_2DrF   )r	  rH   c                 C   sP   t  d¡}t  d¡}t  ||¡\}}|| }t ¡ \}}|j|||ddd� d S )Nr|   r   r±  Úface)r    r3  r%  )rP   rU   r”  r   r   r   )rŽ  r-   r*   rR  r   r   r   r   r   Útest_scatter_2Dˆ  s    

zTestScatter.test_scatter_2DrG   c           
      C   sŒ   t  g d¢¡}t  g d¢¡}t  dd„ |D ƒ¡}t  dd„ |D ƒ¡}g d¢}g d¢}| ¡ }	|	j||||d� | ¡ }	|	j||||d� d S )	Nr·  r¸  c                 S   s   g | ]}t |ƒ‘qS r   r   rÄ  r   r   r   r�   •  r�   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ‘qS r   r   rÄ  r   r   r   r�   –  r�   r„  r†  r�  )rP   rñ   r   r   )
rŽ  r3   r4   r¼  r½  r-   r*   r    r3  r   r   r   r   Útest_scatter_decimal‘  s    z TestScatter.test_scatter_decimalc                 C   s�   t  t¡�, tjddgddgddgd� W d   ƒ n1 s<0    Y  t  t¡�, tjg d¢g d¢g d¢d� W d   ƒ n1 s‚0    Y  d S )Nr   r   r¸   r¹   rq  rh  )r}   r~   rè  r   r   ©rŽ  r   r   r   Útest_scatter_color   s    :zTestScatter.test_scatter_colorc                 C   sv   t jg d¢g d¢g d¢tjddd�g d¢d�}| ¡ jd	ks@J ‚t| ¡ g d
¢g d¢g d¢gƒ t| ¡ g d¢ƒ d S )Nrë   ©r   r|   r   ©z0.1z0.3r‰  ry   rÛ   r“  ©r$  rö  çÍÌÌÌÌÌô?©r    r^   rí  )r   rÚ   ©r¸   r¸   r¸   r   ©rº   rº   rº   r   ©r’   r’   r’   r   )	r   r   r|  r}  Úget_facecolorsr:  r   Úget_edgecolorsÚget_linewidths©rŽ  Úcollr   r   r   Útest_scatter_unfilled§  s    þþz!TestScatter.test_scatter_unfilledr  c                 C   sl   t jg d¢g d¢g d¢dg d¢d�}t| ¡ | ¡ ƒ t| ¡ g d¢g d¢g d	¢gƒ t| ¡ g d¢ƒ d S )
Nrë   r�  rž  r-   rŸ  r¡  r¢  r£  r¤  )r   r   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 d   ƒ n1 sD0    Y  tjtdd��. t |dd … |dd … |¡ W d   ƒ n1 s�0    Y  tjtdd�� t ||d¡ W d   ƒ n1 sÌ0    Y  d S )NrÚ   zsame size as x and yrj  r   zfloat array-likerK  )rP   rU   r}   r~   rè  r   r   )rŽ  r-   r   r   r   Útest_scatter_size_arg_size¼  s    
4<z&TestScatter.test_scatter_size_arg_sizec                 C   sj   t jg d¢dtjtjgdd�}t | ¡ d¡s2J ‚t jg d¢dtjtjdgdd�}t | ¡ d¡sfJ ‚d S )Nrh  r   r‘  ©rß   r  ©r   r   r   r   )r   r   rP   rÏ  ré  Ú
same_colorrÍ  r¨  r   r   r   Útest_scatter_edgecolor_RGBÅ  s    ÿÿz&TestScatter.test_scatter_edgecolor_RGBc                 C   s¨   |  ¡ }t dd¡}| dd¡ |jtdƒtdƒdtjdtjgg d¢|dd	� |  ¡ }t 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 )Nr0  r1  r  r   rÚ   r   r  T©r    r3  ra   Zplotnonfiniter   r|   ©r    r3  ra   )r3  r˜   ©r   r   r3  Zset_badr   r    rP   rÏ  ©rŽ  r3   r4   r   ra   r   r   r   Útest_scatter_invalid_colorÎ  s    þ$z&TestScatter.test_scatter_invalid_colorc                 C   s~   |  ¡ }t dd¡}| dd¡ |jtdƒtdƒdtjdtjgg d¢|dd	� |  ¡ }|jd
dgd
dgddgddg|d� d S )Nr0  r1  r  r   rÚ   r   r  Fr±  r   r|   r²  r³  r´  r   r   r   Útest_scatter_no_invalid_colorÞ  s    þz)TestScatter.test_scatter_no_invalid_colorc              	   C   s`   g d¢}t  ¡ }tjtdd��. |j|||t dd¡ddd� W d	  ƒ n1 sR0    Y  d	S )
rã  rh  rä  rj  rå  re   r   r´   )r    ræ  rÂ  rÃ  N)r   rç  r}   r~   rè  r   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 )Nr   r  )r   r   )rŽ  r3   r4   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 )Nre   r   r´   r  )rP   rU   r   r   rl   )rŽ  r3   r4   r-   r   r   r   r   Útest_scatter_different_shapesû  s
    
 z)TestScatter.test_scatter_different_shapes)r‰  NZrgbyÚ
conversion)r\  N)rÛ   N)NN)rp  r’  r]  rÛ   N)Újaunerº  r»  rÚ   r’   r|   r´   r:  )r‰  z0.4rŠ  r‹  )r‰  r\  rŠ  ÚC5)r‰  r’   rŠ  r¼  r‘  ©r   r   r   r’   r\  z0.0r¼  ©r   r   r   zc_case, re_keyc                 C   s†   dd„ }d}dddœ}|d u r8t jjj|di ||d� nJtjt|| d	��( t jjj|di ||d� W d   ƒ n1 sx0    Y  d S )
Nc                   S   s   dS ©Nr—   r   r   r   r   r   Úget_next_color3	  s    z2TestScatter.test_scatter_c.<locals>.get_next_colorrÚ   z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r:  rº  r÷  )r    r%  rA  ÚxsizeÚget_next_color_funcrj  )rƒ   rç  ÚAxesÚ_parse_scatter_color_argsr}   r~   rè  )rŽ  Zc_caseZre_keyrÀ  rÁ  ÚREGEXPr   r   r   Útest_scatter_c1	  s    þþþzTestScatter.test_scatter_cc                 C   s˜   g d¢g}g d¢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 )N)r   r’   çš™™™™™©?)r   r’   rÇ  r’   r|   rq  rÚ   r   r  )r   r   rP   rj   r    )rŽ  r3   r4   ÚrgbZrgbarY   rX   r   r   r   Útest_scatter_single_color_cG	  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J ‚q|j|t  dd¡dddg tddƒ¢d ‘d�}t| ¡ g tddƒ¢t	j
d	 ‘ƒ d S )
Nr´   r|   r_  r-   r»   r   )r    r^   r3  rí  ÚC3úlines.linewidth)rP   rU   r   r   r    r   rL   r§  r   rƒ   rŸ   )rŽ  r-   r   r   ré   Zpcr   r   r   Útest_scatter_linewidthsW	  s    
ÿÿÿz#TestScatter.test_scatter_linewidths)Ú__name__Ú
__module__Ú__qualname__r	   r�  r—  r™  r
   rš  rœ  rª  rƒ   r„   Úcontextr«  r¬  r°  rµ  r¶  r·  r¸  r¹  Zparams_test_scatter_cr}   ÚmarkÚparametrizerÆ  rÉ  rÌ  r   r   r   r   r�  c  sx   









		












Ø+


r�  )r%  c                K   s   | ||d ur|ni |fS rË   r   )r    rÁ  r%  rA  r   r   r   Ú_paramsf	  s    rÓ  Ú_resultz	c, colorszparams, expected_resultr]  rì   )r    r7  rp  r  r®  rq  r’  )r   r’   r   r   c                 C   s@   dd„ }t jjj| d|iŽ\}}}||jks0J ‚t||jƒ d S )Nc                   S   s   dS r¿  r   r   r   r   r   rÀ  z	  s    z5test_parse_scatter_color_args.<locals>.get_next_colorrÂ  )rƒ   rç  rÃ  rÄ  r    r   r7  )ÚparamsZexpected_resultrÀ  r    r7  Z_edgecolorsr   r   r   Útest_parse_scatter_color_argsk	  s    ÿÿrÖ  zkwargs, expected_edgecolorsr­  r˜  rÛ   )rß   r%  )r    rß   r%  )r˜   rß   c                 C   sN   dd„ }|   dd ¡}|   dd ¡}tjjj||| d|d�\}}}||ksJJ ‚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_colorr    r%  r   )rÁ  rÂ  )Úpoprƒ   rç  rÃ  rÄ  )rA  Zexpected_edgecolorsrÀ  r    r%  rF  Zresult_edgecolorsr   r   r   Ú(test_parse_scatter_color_args_edgecolors†	  s    
ÿÿrØ  c                  C   sh   dd„ } t jtdd��> t g d¢g d¢g¡}tjjj|d i d| d� W d   ƒ n1 sZ0    Y  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 rangerj  )r¸   r¹   r«  )r¹   r  gffffffö?r   )rA  rÁ  rÂ  )	r}   r~   rè  rP   rñ   rƒ   rç  rÃ  rÄ  )rÀ  r    r   r   r   Ú#test_parse_scatter_color_args_error 	  s    ÿ
ÿrÙ  c                     s*  ddl m‰  G ‡ fdd„dƒ} | ƒ }| ƒ }tj|_| ƒ }tjg d¢|d�}t|ƒˆ ksZJ ‚tj	t
dd�� tj|d�}W d   ƒ n1 sŠ0    Y  ||u s J ‚t ¡  tj	t
dd�� tj|d�}W d   ƒ n1 sØ0    Y  t|ƒtjj ˆ ¡ksüJ ‚tj	t
dd�� tj|d�}W d   ƒ n1 �s.0    Y  ||u �sFJ ‚tj	t
dd�� tj|d�}W d   ƒ n1 �sx0    Y  ||u �s�J ‚| ¡ dk�s¢J ‚tj	t
dd�� tj|d�}W d   ƒ n1 �sÔ0    Y  ||u �sìJ ‚t ¡  tjd	|d�}t|ƒtjj ˆ ¡k�sJ ‚t ¡  d S )
Nr   ©Ú	PolarAxesc                       s    e Zd Zdd„ Z‡ f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   ˆ d| j ifS )NrÝ  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ì   r‘  z5Calling gca\(\) with keyword arguments was deprecatedrj  éy   )Zmatplotlib.projections.polarrÛ  rP   rÄ   rÝ  r   rç  Útyper}   rr  r   rþ   r  rƒ   Z	_subplotsZsubplot_class_factoryZget_theta_offsetr  )rà  ZprjZprj2Zprj3r   Z
ax_via_gcar   rÚ  r   Útest_as_mpl_axes_api«	  sX    þ*þ*þ,þ,þ,rã  c                  C   sZ   t  ¡ \} }t  ¡ \}}t  |¡ |t  ¡ u s2J ‚| t  ¡ u sBJ ‚t  | ¡ t  |¡ d S rË   )r   r   Zscarþ   Zgcfr  )Úfig1rÉ   Úfig2rÐ   r   r   r   Útest_pyplot_axesæ	  s    

ræ  Z
log_scalesc                  C   sL   t  ¡ \} }| t t dd¡¡¡ |jddd� | ¡  |jddd� d S )Nr¸   r»   rØ   ç      @rC  r5  )	r   r   rp   rP   rØ   rÂ   rÈ  rÇ  r  r   r   r   r   Útest_log_scalesñ	  s
    rè  c                  C   sR   t  ¡ \} }|jddd� |j t d¡¡ | ¡ | ¡   krHdksNn J ‚d S )NrØ   )r¢  rº  r   ©r   re   )	r   r   rq   rA   rÅ   r«   ZMultipleLocatorrr   rs   rE  r   r   r   Útest_log_scales_no_dataú	  s    rê  c                  C   s˜   t  ¡ \} }| d¡ tjtdd�� | dd¡ W d   ƒ n1 sF0    Y  | d¡ tjtdd�� | dd¡ W d   ƒ n1 sŠ0    Y  d S )NrØ   zAttempted to set non-positiverj  rc   re   )	r   r   r  r}   rr  rs  r>  rÈ  r?  r   r   r   r   Útest_log_scales_invalid
  s    
*
rë  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   re   r–   r¶   r   r¹  r   ©r   re   )r   éF   )r-   r  rõ   Úy3r-   r  rõ   rî  ry  )	r   r¡   rP   rÂ   r‡   Ú	stackplotr>  r?  r   )r   r-   r  rõ   rî  r   r+  r   r   r   Útest_stackplot
  s    


rð  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´   r   r¸   r   r’   re   )rP   rY  r    rQ   ÚexprU   )r¿  r  ru   ré   Újr-   r*   rR  r   r   r   Úlayers#
  s    >z'test_stackplot_baseline.<locals>.layersr|   r»   r  r   r  Úzeror6  rL  Úsym©r   r   Zwiggler‹  Zweighted_wiggle)rP   rQ   rR   r   r   rï  r    rW  )ró  rB  r   r  r   r   r   Útest_stackplot_baseline
  s    

r÷  c                 C   s   | S rË   r   )r3  r   r   r   r*  9
  r�   c                 C   s’   t j d¡ tjjt jjdddd�fi | ¤Ž}t ¡ \}}| 	dd¡rR| 
d¡ n
| d¡ | 	d	d
¡sxtjd tjd< |j||ƒfi |¤Ž d S )Né©  r  r–   )r2  rÚ   )ÚmeanÚsigmaÚsizeÚvertTrØ   Úpatch_artistFrË  úboxplot.boxprops.linewidth)rP   rQ   rR   rƒ   ZcbookZboxplot_statsZ	lognormalr   r   ÚgetrÈ  r  rŸ   Zbxp)Ústats_kwargsÚtransform_statsÚ
bxp_kwargsZlogstatsr   r   r   r   r   Ú_bxp_test_helper8
  s    ÿÿ
ÿr  zbxp_baseline.pngrì  )rS  r„   c                   C   s
   t ƒ  d S rË   ©r  r   r   r   r   Útest_bxp_baselineJ
  s    r  zbxp_rangewhis.pngc                   C   s   t tddgd�d� d S )Nr   r»   ©Zwhis©r   ©r  r•  r   r   r   r   Útest_bxp_rangewhisQ
  s    r	  zbxp_percentilewhis.pngc                   C   s   t tddgd�d� d S )Nr´   é_   r  r  r  r   r   r   r   Útest_bxp_percentilewhisX
  s    r  zbxp_with_xlabels.pngc                  C   s   dd„ } t | d� d S )Nc                 S   s$   t | tdƒƒD ]\}}||d< q| S ©NÚABCDr!   ©r=  r"  ©Ústatsr3  r!   r   r   r   rÝ   c
  s    
z(test_bxp_with_xlabels.<locals>.transform)r  r  ©rÝ   r   r   r   Útest_bxp_with_xlabels_
  s    r  zbxp_horizontal.pngr¸   )r	  rS  r„   rÕ   c                   C   s   t tdd�d� d S )NF©rü  ©r  r  r   r   r   r   Útest_bxp_horizontalk
  s    r  zbxp_with_ylabels.png)rS  r„   rÕ   c                  C   s   dd„ } t | tdd�d� d S )Nc                 S   s$   t | tdƒƒD ]\}}||d< q| S r  r  r  r   r   r   rÝ   y
  s    
z(test_bxp_with_ylabels.<locals>.transformFr  ©r  r  r  r  r   r   r   Útest_bxp_with_ylabelst
  s    r  zbxp_patchartist.png)r	  rS  r„   c                   C   s   t tdd�d� d S )NT)rý  r  r  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 )NTrs  r™   ú:)rÞ   rß   r“  )rý  Úboxpropsr  r  r   r   r   r   Útest_bxp_custompatchartist‰
  s    þr  zbxp_customoutlier.pngc                   C   s   t ttdddd�d�d� d S )NrÛ   rB  r’  ©r{   r^   Úmfc)Z
flierpropsr  r  r   r   r   r   Útest_bxp_customoutlier“
  s    ÿr  zbxp_withmean_custompoint.pngc                   C   s    t tdtdddd�d�d� d S )NTrÛ   rB  r™   r  )Ú	showmeansZ	meanpropsr  r  r   r   r   r   Útest_bxp_showcustommeanœ
  s    þr   zbxp_custombox.pngc                   C   s   t ttdddd�d�d� d S )Nrn  r]  r|   ©r{   r˜   rî   )r  r  r  r   r   r   r   Útest_bxp_custombox§
  s    ÿr"  zbxp_custommedian.pngc                   C   s   t ttdddd�d�d� d S )Nrn  r]  r|   r!  )Zmedianpropsr  r  r   r   r   r   Útest_bxp_custommedian°
  s    ÿr#  zbxp_customcap.pngc                   C   s   t ttdddd�d�d� d S )Nrn  r’  r|   r!  )Zcappropsr  r  r   r   r   r   Útest_bxp_customcap¹
  s    ÿr$  zbxp_customwhisker.pngc                   C   s   t ttdddd�d�d� d S )Nrm  r  r|   r!  )Zwhiskerpropsr  r  r   r   r   r   Útest_bxp_customwhiskerÂ
  s    ÿr%  zbxp_withnotch.pngc                   C   s   t tdd�d� d S )NT)Zshownotchesr  r  r   r   r   r   Útest_bxp_shownotchesË
  s    r&  zbxp_nocaps.pngc                   C   s   t tdd�d� d S )NF)Zshowcapsr  r  r   r   r   r   Útest_bxp_nocapsÓ
  s    r'  zbxp_nobox.pngc                   C   s   t tdd�d� d S )NF)Zshowboxr  r  r   r   r   r   Útest_bxp_noboxÛ
  s    r(  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×  )r  r3  r   r   r   rÝ   è
  s    z*test_bxp_no_flier_stats.<locals>.transformF)Z
showfliersr  r  r  r   r   r   Útest_bxp_no_flier_statsã
  s    ÿr*  zbxp_withmean_point.pngc                   C   s   t tddd�d� d S )NTF©r  Zmeanliner  r  r   r   r   r   Útest_bxp_showmeanñ
  s    r,  zbxp_withmean_line.pngc                   C   s   t tddd�d� d S )NTr+  r  r  r   r   r   r   Útest_bxp_showmeanaslineù
  s    r-  zbxp_scalarwidth.pngc                   C   s   t tdd�d� d S )Nrœ  ©Úwidthsr  r  r   r   r   r   Útest_bxp_scalarwidth  s    r0  zbxp_customwidths.pngc                   C   s   t tg d¢d�d� d S )N)r¸   rœ  gÍÌÌÌÌÌä?g333333ë?r.  r  r  r   r   r   r   Útest_bxp_customwidths	  s    r1  zbxp_custompositions.pngc                   C   s   t tg d¢d�d� d S )N)r   r´   r  r|  rà  r  r  r   r   r   r   Útest_bxp_custompositions  s    r2  c                   C   s@   t  t¡�" ttdgd�d� W d   ƒ n1 s20    Y  d S )Nr   r.  r  ©r}   r~   rè  r  r•  r   r   r   r   Útest_bxp_bad_widths  s    r4  c                   C   sB   t  t¡�$ ttddgd�d� W d   ƒ n1 s40    Y  d S )Nr   r|   rà  r  r3  r   r   r   r   Útest_bxp_bad_positions  s    r5  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 )Nrø  r{  r|  éŒ   éçÿÿÿrd  é'  r   ©Ú	bootstrapÚnotch©rr  r‰   r-   )r:  r;  r+  ©	rP   rQ   rR   rÂ   Úhstackr   r   rä  r?  )r-   r   r   r+  r   r   r   Útest_boxplot#  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 )Nrø  r{  r|  r6  r7  rd  r   r   r8  ú^)r:  rõ  r<  r’  r=  )r-   r   rÉ   rÐ   r   r   r   Útest_boxplot_sym26  s    
rA  zboxplot_sym.pngc                  C   sJ   t  ddd¡} t  d| dg¡} t ¡ \}}|j| | gdd� | d¡ d S )	Nr{  r|  r6  r7  rd  r�  ©rõ  r<  )rP   rÂ   r>  r   r   rä  r?  r©  r   r   r   Útest_boxplot_symF  s
    rC  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 )Nrø  r6  r   r   r8  r   r9  )rÅ  r´   T)r:  r;  Z	autorange)	rP   rQ   rR   rj   r>  r   r   rä  r?  )r-   rä  rÉ   rå  rÐ   r   r   r   Útest_boxplot_autorange_whiskersS  s    

rD  c                 C   sZ   t  ddd¡}t  d|dg¡}t |¡� |  ||g¡ W d   ƒ n1 sL0    Y  | S )Nr{  r|  r6  r7  rd  )rP   rÂ   r>  r>   r   rä  )r   Úrc_dictr-   r   r   r   Ú_rc_test_bxp_helperf  s
    ,rF  Zboxplot_rc_parameters)rS  r	  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 ƒv sÂJ ‚d S )Nrø  r|   Tr´   r
  r8  r]  ry   r’  rn  r¶   rp  r    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.colorrþ  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.verticalrG  zboxplot.patchartistú-.)rG  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�   ¬  r�   z.test_boxplot_rc_parameters.<locals>.<listcomp>r   )rP   rQ   rR   r   r   r=  rF  r>   rå   ræ   Zget_children)r   r   Zrc_axis0Zrc_axis1Zrc_axis2Ú	dict_listr  Zrc_axisr   r   r   Útest_boxplot_rc_parametersn  sZ    éýò
ÿrK  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 )Nrø  r{  r|  r6  r7  rd  r  r¹  r  ç      @r8  r–   r   )r:  ÚusermediansÚconf_intervalsr;  r<  )
rP   rQ   rR   rÂ   r>  r   r   rñ   rä  r?  )r-   r   r   ZCIsr   r   r   Útest_boxplot_with_CIarray¯  s    ÿrO  zboxplot_no_inverted_whisker.pngc                  C   sP   t jg d¢t jd�} t ¡ }| | ¡ | d¡ |jjddd� |j	 d¡ d S )N)r|   i(#  ro  éX   i^  i@ ix  iÀ  r  rØ   FÚminor©Úwhich)
rP   rñ   r  r   rç  rä  rÈ  rD   r–  rA   )r-   rÉ   r   r   r   Útest_boxplot_no_weird_whiskerÁ  s    
ÿ

rT  c                  C   s²   t  ddd¡} t  d| dg¡} t ¡ \}}t t¡�" |j| ddgd� W d   ƒ n1 s\0    Y  t t¡�. |j| | gddgddggd� W d   ƒ n1 s¤0    Y  d S )	Nr{  r|  r6  r7  rd  r   r   )rM  ©	rP   rÂ   r>  r   r   r}   r~   rè  rä  r©  r   r   r   Útest_boxplot_bad_mediansÍ  s    0rV  c                  C   s¶   t  ddd¡} t  d| dg¡} t ¡ \}}t t¡�( |j| | gddggd� W d   ƒ n1 sb0    Y  t t¡�, |j| | gddgdggd� W d   ƒ n1 s¨0    Y  d S )	Nr{  r|  r6  r7  rd  r   r   )rN  rU  r©  r   r   r   Útest_boxplot_bad_ci×  s    6rW  c                  C   sZ   t  d¡} t ¡ \}}| | ¡d d  ¡ dks4J ‚|j| dd�d d  ¡ dksVJ ‚d S )Nre   Úboxesr   r   ©r2  )rP   rU   r   r   rä  r/  )r-   r~  r   r   r   r   Útest_boxplot_zorderá  s    
rZ  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sZJ ‚qZqN|d d  ¡ dksŠJ ‚|d d  ¡ dks¢J ‚d S )Nr3  rv  ry   rH  r@  zboxplot.meanprops.markerr»   ro  rc   T)r  )ZwhiskersZcapsrX  Zmediansr¤   r)  r   Zmeans)r   rŸ   r   rP   rU   rä  Z
get_marker)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   sH   g d¢} t  ¡ \}}|j| dd�}|D ]}|| D ]}| d¡ q2q&d S )N)r:  r�  r…  r…  g¸…ëQ¸¾?gìQ¸…ëá?gìQ¸…ëá¿ry   rB  r™   )r   r   rä  Ú	set_color)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»   ©rû  ©rP   rQ   rS   ©rŒ   rF  r   r   r   r�   
  r�   z1test_vert_violinplot_baseline.<locals>.<listcomp>rÚ   r   ©rá  r  ÚshowextremaÚshowmediansrB  )rá  r  re  rf  r+  )rP   rQ   rR   r    r   rç  Ú
violinplotr   )r+  r   r   r   r   r   Útest_vert_violinplot_baseline  s    ÿÿrh  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`  rb  rc  r   r   r   r�     r�   z2test_vert_violinplot_showmeans.<locals>.<listcomp>rÚ   r   r   rd  ©r   rç  rP   rQ   rR   r    rg  ©r   r+  r   r   r   Útest_vert_violinplot_showmeans  s    ÿrk  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`  rb  rc  r   r   r   r�   %  r�   z4test_vert_violinplot_showextrema.<locals>.<listcomp>rÚ   r   r   rd  ri  rj  r   r   r   Ú test_vert_violinplot_showextrema   s    ÿrl  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`  rb  rc  r   r   r   r�   /  r�   z4test_vert_violinplot_showmedians.<locals>.<listcomp>rÚ   r   r   rd  ri  rj  r   r   r   Ú test_vert_violinplot_showmedians*  s    ÿrm  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`  rb  rc  r   r   r   r�   9  r�   z0test_vert_violinplot_showall.<locals>.<listcomp>rÚ   r   r¸   çÍÌÌÌÌÌì?r¹   rH  rº   r«  r  rª  )rá  r  re  rf  Ú	quantilesri  rj  r   r   r   Útest_vert_violinplot_showall4  s    þrp  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`  rb  rc  r   r   r   r�   D  r�   z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>rÚ   r   re   ©rá  r  re  rf  Úpointsri  rj  r   r   r   Ú$test_vert_violinplot_custompoints_10?  s    ÿrs  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`  rb  rc  r   r   r   r�   N  r�   z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>rÚ   r   r±  rq  ri  rj  r   r   r   Ú%test_vert_violinplot_custompoints_200I  s    ÿrt  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`  rb  rc  r   r   r   r�   X  r�   z2test_horiz_violinplot_baseline.<locals>.<listcomp>rÚ   Fr   ©rá  rü  r  re  rf  ri  rj  r   r   r   Útest_horiz_violinplot_baselineS  s    ÿrv  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`  rb  rc  r   r   r   r�   b  r�   z5test_horiz_violinplot_showmedians.<locals>.<listcomp>rÚ   Fr   r   ru  ri  rj  r   r   r   Ú!test_horiz_violinplot_showmedians]  s    ÿrw  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`  rb  rc  r   r   r   r�   l  r�   z3test_horiz_violinplot_showmeans.<locals>.<listcomp>rÚ   Fr   r   ru  ri  rj  r   r   r   Útest_horiz_violinplot_showmeansg  s    ÿrx  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`  rb  rc  r   r   r   r�   v  r�   z5test_horiz_violinplot_showextrema.<locals>.<listcomp>rÚ   Fr   r   ru  ri  rj  r   r   r   Ú!test_horiz_violinplot_showextremaq  s    ÿry  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`  rb  rc  r   r   r   r�   €  r�   z1test_horiz_violinplot_showall.<locals>.<listcomp>rÚ   Fr   r¸   rn  r¹   rH  rº   r«  r  rª  )rá  rü  r  re  rf  ro  ri  rj  r   r   r   Útest_horiz_violinplot_showall{  s    þrz  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`  rb  rc  r   r   r   r�   ‹  r�   z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>rÚ   Fr   re   ©rá  rü  r  re  rf  rr  ri  rj  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`  rb  rc  r   r   r   r�   •  r�   z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>rÚ   Fr   r±  r{  ri  rj  r   r   r   Ú&test_horiz_violinplot_custompoints_200�  s    ÿr}  c                  C   sf   t  ¡ } tj d¡ dd„ tdƒD ƒ}t t¡�" | j	|tdƒd� W d   ƒ n1 sX0    Y  d S )NiÈ@ 3c                 S   s   g | ]}t jjd d�‘qS r`  rb  rc  r   r   r   r�   ž  r�   z1test_violinplot_bad_positions.<locals>.<listcomp>rÚ   r´   rà  ©
r   rç  rP   rQ   rR   r    r}   r~   rè  rg  rj  r   r   r   Útest_violinplot_bad_positionsš  s
    r  c                  C   sl   t  ¡ } tj d¡ dd„ tdƒD ƒ}t t¡�( | j	|tdƒg d¢d� W d   ƒ n1 s^0    Y  d S )NiA#²c                 S   s   g | ]}t jjd d�‘qS r`  rb  rc  r   r   r   r�   §  r�   z.test_violinplot_bad_widths.<locals>.<listcomp>rÚ   rh  )rá  r/  r~  rj  r   r   r   Útest_violinplot_bad_widths£  s
    r€  c                  C   sl   t  ¡ } tj d¡ tjjdd�g}t t¡�* | j	|ddgddggd� W d   ƒ n1 s^0    Y  d S )	Ni¡Öl r»   ra  r¸   r¹   r’   r«  ©ro  ©
r   rç  rP   rQ   rR   rS   r}   r~   rè  rg  rj  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	|g d¢gd� W d   ƒ n1 sX0    Y  t t¡�$ | j	|g d¢gd� W d   ƒ n1 s–0    Y  d S )NiqÅð4r»   ra  )r¸   r¹   rº   çÍÌÌÌÌÌð?r�  )gš™™™™™©¿r¹   rº   r  r‚  rj  r   r   r   Ú$test_violinplot_outofrange_quantiles·  s    2r…  c                 C   sV   t j d¡ t jjdd�g}|  ¡ }|j|g d¢d� | ¡ }|j|g d¢gd� d S )Né+•r»   ra  )r¸   rº   rn  r�  )rP   rQ   rR   rS   r   rg  )r3   r4   r+  r   r   r   r   Ú%test_violinplot_single_list_quantilesÆ  s    r‡  c                 C   sŠ   t j d¡ |jt jjdd�g d¢d�}|jt jjdd�tdƒd�}| t jjdd�¡}|  ¡  |||g¡ | ¡  |j|j|jg¡ d S )	Nr†  r|  ra  )r†  r�  r|  r  r´   rÚ   r|   rý  r†  Z	ABCDEFGHIr	  )	rP   rQ   rR   r  rS   r"  r   rg  Úvalues)r3   r4   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Ú   re   r|   rŽ  r   r   F)rá  Zmanage_ticks)
r   r   r>  rr   rP   rQ   rR   rS   rä  r   )rF  r   Zold_xlimr  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sVJ ‚t	| 
¡ ƒddgksnJ ‚dd„ | ¡ D ƒdd	gksŒJ ‚d S )
Nr»   r|   rà  r´   )r³  rç  c                 S   s   g | ]}|  ¡ ‘qS r   ©Úget_textrÚ  r   r   r   r�   ó  r�   z+test_boxplot_not_single.<locals>.<listcomp>rÀ   Ú5)r   r   rä  rP   rQ   r†   rî  rÌ   rr   r"  Ú
get_xticksrN  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   r   z	font.sizeéP   Úraw)rQ  Úformat)r   rp   r>   rŸ   ÚupdateÚioÚBytesIOÚsavefig©r]  r   r   r   Útest_tick_space_size_0ö  s    rš  )Úerrorbar_basicZerrorbar_mixedr›  c            
   	   C   sš  t  dd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œ}	t ¡ }| ¡ }|jdd dd|	d!� | d¡ d S )"Nr¸   rÚ   r’   r¹   r  )rØ  rÙ  z&Simplest errorbars, 0.2 in x, 0.4 in yr   T)r  r  r  r  ry   ©rÙ  r²   zVert. symmetric©ZnbinsrL  )rØ  r²   r�  zHor. symmetric w/ alpharö  z--o©rÙ  rØ  r²   zH, V asymmetricr‹  rØ   r%  r’  )rÙ  rØ  r²   ÚecolorZcapthickzMixed sym., log yzVariable errorbarsrÔ   r-   r*   ©rØ  rÙ  r+  )rP   rU   rñ  rÙ  r   r¡   rþ   rt  r  r   Úlocator_paramsrÈ  ÚmaximumZsuptitle)
r-   r*   rÙ  rØ  r   r   r  ZylowerZ
yerr_lowerr+  r   r   r   Útest_errorbarÿ  sB    


$

ÿ


r£  c                  C   s¸   t  ¡ \} }t d¡}d| }|j||d d�\}}}|j|d| d d�\}}}| |d| ¡\}t | ¡ ¡t d¡ks|J ‚t | ¡ ¡t d¡ks˜J ‚t | ¡ ¡t d¡ks´J ‚d S )Nre   r   r  rÚ   rÕ  ÚC1ÚC2)	r   r   rP   rU   rt  rp   ré  Úto_rgbaÚ	get_color)rm  r   r-   r*   rx  rF  ry  Zln1r   r   r   Útest_errorbar_colorcycle2  s    
r¨  c              
      s†   t  ddd¡‰ ‡ fdd„tdƒD ƒ}|  ¡ }| ¡ }t|g d¢ƒD ]>\}}|jˆ ||d dd	d
d� |jˆ ||d dd	|d
d� qBd S )Nr¸   rÚ   r’   c                    s   g | ]}t  ˆ  | ¡‘qS r   )rP   rñ  ©rŒ   r¿  ©r-   r   r   r�   D  r�   z.test_errorbar_cycle_ecolor.<locals>.<listcomp>)rÕ  r¤  r¥  rÊ  rœ  rm  ry   r÷  )rÙ  r{   r^   rŸ  )rÙ  r{   r^   r˜   rŸ  )rP   rU   r    r   r=  rt  )r3   r4   r*   ZaxtZaxrÚyir˜   r   rª  r   Útest_errorbar_cycle_ecolorA  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 d   ƒ n1 sŠ0    Y  t	 
t¡�" |j|||dd� W d   ƒ n1 sÆ0    Y  t	 
t¡�$ |j||||dd	� W d   ƒ n1 �s0    Y  d S )
Nr¸   rÚ   r’   r¹   r   ry   rœ  )rØ  r²   rž  )r   r¡   rþ   rP   rU   rñ  rÙ  ÚvstackrW  r}   r~   rè  rt  )r   r   r-   r*   Zyerr1rÙ  rØ  r   r   r   Útest_errorbar_shapeP  s    00r®  Zerrorbar_limitsc                  C   s\  t  ddd¡} t  |  ¡}d}d}d}t ¡ \}}|j| ||||dd� t  | ¡}d|g d	¢< |j| |d ||||d
d� t  | ¡}d|g d¢< |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˜   T)r   r´   r†  r™   )rØ  rÙ  Úuplimsr“  r˜   )r   rÚ   r�  r–   r\  )rØ  rÙ  Úlolimsr“  r˜   r‘   ry   r�  Úmagenta)r^   r”  rØ  rÙ  r±  r°  r“  r˜   rº   r|   r  çÍÌÌÌÌÌ @rÛ   r   Úcyan)r^   r”  rØ  rÙ  ÚxlolimsÚxuplimsr°  r±  r“  r¨  Úcapsizer˜   )r   rç  zErrorbar upper and lower limits)
rP   rU   rñ  r   r   rt  Z
zeros_likeZ	full_liker>  r  )r-   r*   rØ  rÙ  r“  r   r   r°  r±  rµ  r¶  r   r   r   Útest_errorbar_limitsb  sH    
ÿ
ÿÿ



ý
r¸  c                  C   sd   t  d¡} t  d¡}tj| |dddd�\}}}|d u s:J ‚|D ] }t  | ¡ t d¡k¡s>J ‚q>d S )Nr´   r   rÛ   )rØ  rÙ  r²   rÕ  )rP   rU   r   rt  r  r§  ré  r¦  )r-   r*   ÚplotlinerF  ZbarlinesZerrbarr   r   r   Útest_errobar_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sLJ ‚| ¡ dks\J ‚d S )Nr´   r   ÚNoner3  rL   z	steps-midÚroundr7  r8  Zbevel)
rØ  rÙ  r“  r^   r”  r<  Zdash_capstyleZdash_joinstyler;  r:  )rP   rU   r   rt  Zget_fillstyleZget_drawstyle)r-   r*   r¹  rF  r   r   r   Ú"test_errorbar_line_specific_kwargsœ  s    

úr½  c              	   C   s  |  ¡ }|jg d¢g d¢ddddd� |jg d¢g d¢dd	d
ddd� |jg d¢g d¢dddddd� | dd¡ tg d¢g d¢g d¢g d¢d�}tjd|d� |   ¡ }|jg d¢g d¢dd� |jg d¢g d¢dd	d� |jg d¢g d¢ddd� | dd¡ d S )N)r   rÚ   re   rë   r’   rn  r3  r  )r-   r*   rÙ  r“  r^   r  )r   r|   rÚ   z	tab:greenr  r*   )r-   r*   rÙ  r˜   r“  r^   r  ©rÚ   r´   r  ztab:bluerI  ry   r    )r-   r*   rÙ  r²   r“  r^   r  r   r	  )rn  r  rI  )r3  r3  ry   )r  r*   r    )r]  r’  rp  )r“  r^   r  r˜   rç  )Z
prop_cycle)r-   r*   rÙ  )r-   r*   rÙ  r˜   )r-   r*   rÙ  r²   )r   rt  r>  r   r   Úrc)r3   r4   r   Z_cycler   r   r   Útest_errorbar_with_prop_cycle­  s(    ÿÿÿÿrÀ  c                  C   s8  t  ddd¡} | d|   }|d }t ¡  ¡ }tjtdd��" |j| ||dd� W d   ƒ n1 sd0    Y  tjtdd��" |j| ||d	d� W d   ƒ n1 s¤0    Y  tjtd
d��& |j| ||ddgd� W d   ƒ n1 sè0    Y  tjtdd��" |j| ||dd� W d   ƒ n1 �s*0    Y  d S )Nr   r   r¼   r  znot a tuple of two integersrj  rh  )Ú
errorevery)r   r|   znot a valid NumPy fancy indexFTznot a recognized valueZfoobar)	rP   rÂ   r   r¡   r   r}   r~   rè  rt  )r-   r*   rÙ  r   r   r   r   Útest_errorbar_every_invalidÂ  s    004rÂ  c           	   
   C   s6  t  ddd¡}|d|  }|d }| ¡ }|  ¡ }tdg d¢ƒD ]p\}}|d7 }|j||||dfd|d	� |j|||d
d� |j||d d… ||d d… ||d d… d|dd� q@|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 |g d¢d g 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� d S )Nr   r   r¼   r  Zrgbk)r   r   r   r|  r¤  rÚ   )rÁ  r·  r    r³  )r    r2  rÛ   )r·  r    r²   r¸   )r   rÚ   ry   )r�  r·  r²   rY  )r·  r²   r¹   r   r|   rÕ  )rÁ  r�  r·  r    r²   )FTFr´   r¤  )rP   rÂ   r   r=  rt  rp   r•  )	r3   r4   r-   r*   rÙ  rY   rX   r˜   Úshiftr   r   r   Útest_errorbar_everyÓ  sB    ÿ(ÿ*
þ,,ÿ
þ,,ÿrÄ  Ú
elinewidthrh  c                 C   s"   t jg d¢g d¢g d¢| d� d S )Nrh  )rÙ  rÅ  )r   rt  )rÅ  r   r   r   Útest_errorbar_linewidth_typeÿ  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 )Nr   r|   rŽ  r   re   r  r	  Tr  r-   )r  r  r+  ©rP   rÂ   r   r   r  )Úd1Úd2r   r   r+  r   r   r   Útest_hist_stacked_stepfilled  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   re   r  r   r|   rŽ  r´   r  r¼   rÇ  ©rÈ  rÉ  r   r   r   r   r   Útest_hist_offset  s
    rÌ  zhist_step.pngc                  C   sD   t  ddd¡} t ¡ \}}|j| dd� | dd¡ | dd	¡ d S )
Nr   r|   rŽ  r  r
  r   re   rc   r´   )rP   rÂ   r   r   r  r?  r>  ©rÈ  r   r   r   r   r   Útest_hist_step  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   re   r  r   r|   rŽ  r  r:   )r  r<   rÇ  rË  r   r   r   Útest_hist_step_horiz(  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   re   r  r   r|   rŽ  r%  rL  rÇ  r¶   r	  T)Úweightsr  r  rÇ  )rÈ  rÉ  Zw1Zw2r   r   r   r   r   Útest_hist_stacked_weighted1  s    rÑ  Úuse_line_collectionzw/ line collectionzw/o line collectionzstem.pngc              	   C   sJ   t  ddt j d¡}t ¡ \}}|j|t  |¡dddd| d� | ¡  d S )	Nr¸   r   r»   úC2-.zk+úC1-.ú )ÚlinefmtÚ	markerfmtÚbasefmtr!   rÒ  )rP   rÂ   rÄ   r   r   Ústemrÿ   r/   ©rÒ  r-   r   r   r   r   r   Ú	test_stem<  s    þrÛ  c                  C   s`   t  ¡ \} }ttdƒƒ}ttdƒƒ}| |¡ | ||¡ |j||dd� |j||ddd� d S )Nre   rï   )rÖ  zb--)rÖ  rØ  )r   r   r"  r    rÙ  )r   r   r-   r*   r   r   r   Útest_stem_argsK  s    
rÜ  c                  C   s@   t  dd¡\} }tj d¡tj d¡g}ddg}| ||¡ d S )Nr   z2013-9-28 11:00:00z2013-9-28 12:00:00r»   r±  )r   r   ÚdateutilÚparserÚparserÙ  )r   r   ÚxsÚysr   r   r   Útest_stem_datesX  s    

ÿrâ  zstem_orientation.pngc              	   C   sB   t  ddt j d¡}t ¡ \}}|j|t  |¡ddd| dd� d S )	Nr¸   r   r  rÓ  ZkxrÔ  r:   )rÖ  r×  rØ  rÒ  r<   )rP   rÂ   rÄ   r   r   rÙ  rÿ   rÚ  r   r   r   Útest_stem_orientation`  s    þrã  Zhist_stacked_stepfilled_alphac                  C   sB   t  ddd¡} t  ddd¡}t ¡ \}}|j| |fddd	d
� d S )Nr   r|   rŽ  r   re   r  r	  Tr’   )r  r  r�  rÇ  rË  r   r   r   Ú"test_hist_stacked_stepfilled_alphal  s    rä  Zhist_stacked_stepc                  C   s@   t  ddd¡} t  ddd¡}t ¡ \}}|j| |fddd	� d S )
Nr   r|   rŽ  r   re   r  r  Tr  rÇ  rË  r   r   r   Útest_hist_stacked_stepu  s    rå  Zhist_stacked_normedc                  C   s@   t  ddd¡} t  ddd¡}t ¡ \}}|j| |fddd� d S )	Nr   r|   rŽ  r   re   r  T)r  r!  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 )Nr   r|   rŽ  re   r	  )r8   r  )rP   rÂ   r   r   r  rU   rÍ  r   r   r   Útest_hist_step_bottom‡  s    rç  c                  C   sŒ   g d¢} g d¢}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 )	N©r   r   r   r|   ©r   r   r   r   r   r   r	  ©r»  r  r   r   r   r|   ©r   r  r   Úget_xy©r»  r+  rF  Úpolygonr-  r   r   r   Útest_hist_stepfilled_geometry�  s    þ*$ÿrï  c               	   C   sn   g d¢} g d¢}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è  ré  r  rê  r   r   r   r|   rë  rí  r   r   r   Útest_hist_step_geometryš  s    þ4rð  c                  C   s’   g d¢} g d¢}t j|| g d¢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è  ré  ©r   r   r‘   r	  ©r»  r8   r  r   r   r|   r´   r   r³  r‘   rë  rí  r   r   r   Ú$test_hist_stepfilled_bottom_geometry¤  s    ý*$ÿró  c               	   C   st   g d¢} g d¢}t j|| g d¢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è  ré  rñ  r  rò  r   r   r|   r´   r   r³  r‘   rë  rí  r   r   r   Útest_hist_step_bottom_geometry°  s    ý4rô  c                  C   s  g d¢} g d¢}g d¢}t j||g| ddd�\}}}t|ƒdksDJ ‚|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è  ré  rë   Tr	  ©r»  r  r  r   r   r   r|   rÚ   ©r   r  rÐ  r   rì  ©r»  Zdata_1Zdata_2rF  rå   rî  r-  r   r   r   Ú%test_hist_stacked_stepfilled_geometry»  s&    
ý
*$ÿ
*$ÿrø  c               	   C   sà   g d¢} g d¢}g d¢}t j||g| ddd�\}}}t|ƒdksDJ ‚|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è  ré  rë   Tr  rõ  r   r   r   r|   rÚ   rö  r÷  r   r   r   Útest_hist_stacked_step_geometryÑ  s    
ý
4
4rù  c                  C   s"  g d¢} g d¢}g d¢}t j||g| dg d¢dd�\}}}t|ƒdksJJ ‚|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è  ré  rë   Trñ  r	  ©r»  r  r8   r  r   r   r   r|   r´   r³  r‘   rÚ   r  rL  rö  r÷  r   r   r   Ú,test_hist_stacked_stepfilled_bottom_geometryå  s(    
ü
*$ÿ
*$ÿrû  c               	   C   sæ   g d¢} g d¢}g d¢}t j||g| dg d¢dd�\}}}t|ƒdksJJ ‚|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è  ré  rë   Trñ  r  rú  r   r   r   r|   r´   r³  r‘   rÚ   r  rL  rö  r÷  r   r   r   Ú&test_hist_stacked_step_bottom_geometryü  s     
ü
4
4rü  Zhist_stacked_barc                  C   sn   g d¢g d¢g d¢g d¢g d¢g d¢g} g d¢}g d¢}t  ¡ \}}|j| d	d
d||d� |jdddd� d S )N)r»   r»   r»   r»   r±  é@  iÂ  r’  rŽ  r  é6  r  )rŽ  é   r  r	  r»   i¤  )rë  rë  rë  r6  r6  ro  é´   )rR  rR  rR  rR  r´  r´  r´   r´   r´   r´   re   r´  )é+  r  r  r‰   r‰   r‰   r‰   r‰   r»   r»   r»   r»   r‰   r‰   )r‰   r‰   r‰   r‰   r³  r³  r³  r³  r³  r³  r³  r³  ))gXÛ÷xnâ?r–   r#  )r#  r–   g `¢pÖ?)r#  r–   g˜©­ÇŸõä?)r#  g¤Ë¢³`å?r–   )g¢CÒ?r#  r–   )g æõKÍêå?r#  r–   )r™   rô  z yellowr²  r÷  re   r  Úmid)r»  r  r­  r˜   r!   zupper right)r–   r–   r   )r%   Zbbox_to_anchorZncol)r   r   r  r/   )rB  r7  Úlabelsr   r   r   r   r   Útest_hist_stacked_bar  s    üÿr  c                  C   sD   t  ddg¡} tjddgddggdd| d� |  ¡ ddgks@J ‚d S )Nre   rŽ  r   r   r   r  )r  r8   )rP   rñ   r   r  Útolistr™  r   r   r   Ú%test_hist_barstacked_bottom_unchanged#  s    r  c                  C   s,   t  ¡ \} }|jg tdƒtdƒgdd� d S )Nre   r  r
  )r   r   r  r    r   r   r   r   Útest_hist_emptydata)  s    r  c                  C   sî   t  ¡ \} }|jddgdd�\}}}|d  ¡ dks8J ‚|jddgdgd�\}}}|d  ¡ dksfJ ‚|jddgd d�\}}}|d  ¡ dks’J ‚|jddgdd�\}}}|d  ¡ dks¾J ‚|jddgdd�\}}}|d  ¡ dksêJ ‚d S )Nr   r   r‚  r¬  Z
_nolegend_Z00)r   r   r  rB   )r   r   rF  Úbarsr   r   r   Útest_hist_labels.  s    r	  Ztransparent_markersc                  C   s:   t j d¡ t j d¡} t ¡ \}}|j| dddd� d S )Nr   r  r`  rÛ   r»   )r  rd   ©rP   rQ   rR   r   r   rp   r"  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 ]}| g d¢¡ qÀd S )Nr   r�  r®  r½  rì   )r   r   r   r’   r¹   r»   rŽ  )r”  r§  r   ry   )r  r¨  r�  r|   r-   )r¨  r�  )rc   rÚ   r   r´   )r   r   r•  r
  rp   r  )r   r  ZrcolorsZbcolorsÚalphasÚkwré   r�  rò  Zrcolorr  Zbcolorr   r   r   r   Útest_rgba_markersF  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_gridW  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‘  rk  r¶   r   r|   )r   r¡   r‡   rP   rÂ   rÄ   r”  r­  r?  rW  ÚtransProjectionrÝ   Úinvertedrœ   r   )r   r   ZlonZlatÚllr-  Zll2r   r   r   Ú&test_mollweide_forward_inverse_closure`  s    r  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   r   éô  r|   )r   r¡   r‡   rP   rÂ   r”  r­  r?  rW  r  r  rÝ   rœ   r   )r   r   r-   r*   r-  r  Úxy2r   r   r   Ú&test_mollweide_inverse_forward_closurev  s    r  Ú
test_alphac               	   C   sÒ   t j d¡ t j d¡} t ¡ \}}|j| dg d¢g d¢ddd� |j| d	 dg d¢g d¢ddd
d� |j| d dg d¢g d¢dddd� |j| d dg d¢g d¢ddd� |j| d dg d¢g d¢ddd� d S )Nr   r  z-Dr‘  r½  rŽ  re   )r˜   r  rd   rî   r   r   )r˜   r  rd   rî   r�  rÚ   r’   r  r�  r
  r"  r   r   r   r  ‹  s(    ÿþþÿÿÚ	eventplotc                  C   sT  t j d¡ t j ddg¡ ¡ } t j ddg¡ ¡ }| | }t|ƒ}g d¢gt| ƒ }g d¢g d¢g d¢g d	¢g d
¢g d¢g}|| }dt  dt| ƒ¡d  }g d¢}| ¡ | }	dgt| ƒ }
g d¢}|
| }t ¡ }| ¡ }|j	|||	|d�}t|ƒ}||k�sJ ‚|||	|dœ}t ¡ }| ¡ }|j	dddd|d�}t|ƒ}||k�sPJ ‚d S )Nr   r[   rŽ  r  )r   r   r«  r‘  r¾  r  )r   r  r   )r   r   r   )r   r   r   r7  g…ëQ¸Õ?)iñÿÿÿr'  r   r‘   r  re   )r´   r   r   r   r|   r‘   )r7  ÚlineoffsetsÚlinelengths)r¦   r    Úlor  r¦   r    r  r  )r7  r  r  r+  )
rP   rQ   rR   r  rÐ  rU   r   r¡   r‡   r  )r€  Údata2r+  Znum_datasetsZcolors1Zcolors2r7  Zlineoffsets1Zlineoffsets2r  Zlinelengths1Zlinelengths2r  r   ÚaxobjZcollsZnum_collectionsr   r   r   Útest_eventplot©  sF    û
ÿ
ÿr  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   r[   rŽ  r  N)rP   rQ   rR   r  r   r¡   r‡   r  )r€  r  r+  r   r  r   r   r   Útest_eventplot_defaultsÕ  s    r   r7  ))r‰  )z
tab:orangeztab:pinkztab:cyanZbLacK)r\  r¾  N)r   r   r   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   r   r   r|   c                 S   s   g | ]}|d ur|nd‘qS )NrÕ  r   ©rŒ   r    r   r   r   r�   ð  r�   z)test_eventplot_colors.<locals>.<listcomp>rÚ   ©r7  N)rÐ  rP   Zbroadcast_toré  Zto_rgba_arrayr   r   r  r=  r   r§  )r7  r+  Úexpectedr   r   rÞ  r©  r˜   r   r   r   Útest_eventplot_colorsæ  s    r$  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ˆJ ‚t	dd„ | D ƒƒsžJ ‚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Ž  re   rp  r]  r    r  r   r   rz   ZdashedÚdashdotr¯  )r7  r˜   rí  rà   rw  r{   r|   c                 s   s   | ]}t |jtƒV  qd S rË   )Ú
issubclassÚcategoryr   )rŒ   Zwir   r   r   r    s   ÿz0test_eventplot_problem_kwargs.<locals>.<genexpr>N)
rP   rQ   rR   r  r   r¡   r‡   r  rÐ  r  )Zrecwarnr€  r  r+  r   r  r   r   r   Útest_eventplot_problem_kwargs   s$    úÿr(  c                  C   s.   t  dd¡\} }|jg gdgd� t  ¡  d S )Nr   )r#  r#  r#  r#  r"  ©r   r   r  rÌ   r   r   r   r   Útest_empty_eventplot  s    r*  r+  r<   )NÚverticalr:   c                 C   sB   |du ri nd|i}t  dd¡\}}|j| fi |¤Ž t  ¡  dS )z#Introduced when fixing issue #6412.Nr<   r   r)  )r+  r<   Ú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 )	Nrê  r   r   r|   r¼   r1  r   )r  )r`  r   r  )r3   r4   Zts_1Zts_2r   r   r   r   Útest_eventplot_units_list-  s    ÿr.  zmarker_styles.pngc               	   C   sv   t  ¡ \} }tttjjjdd„ d�ƒ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   r´   re   r¤   )r{   r^   rd   r!   )r   r   r
  Úsortedr>   Úmarkersr}  rp   rP   rU   rj   )r   r   r*   r^   r   r   r   Útest_marker_styles<  s    ÿ.ÿr1  zrc_markerfill.pngc                  C   sP   t  ¡ \} }t d¡}tg d¢ƒD ](\}\}}|tjd< |j|| |d� q"d S )Nr|  ))r#   r3  )r8   ry   )rÛ   r@  zmarkers.fillstylerl  )r   r   rP   rU   r
  r>   rŸ   rp   )r   r   r-   Úidxr„   r^   r   r   r   Útest_markers_fillstyle_rcparamsE  s    
ÿ
r3  zvertex_markers.pngc                  C   sr   t tdƒƒ} d}g d¢}t ¡ \}}|j| d|dd� |j| d d d… d|dd� | ddg¡ | ddg¡ d S )Nre   ))rc   rc   r‚  r‹  rƒ  r¤   r  r  rc   r]  )r"  r    r   r   rp   r>  r?  )r+  Zmarker_as_tupleZmarker_as_listr   r   r   r   r   Útest_vertex_markersO  s    r4  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 )Nre   r´   )rî   r2  r   r\  )r˜   rî   r2  r™   r|  r  r   r  r|   zaxvline and axhline zorder testrp  )rÙ  r2  rî   r˜   )rî   r˜   r2  zerrorbar zorder test)r"  r    r   r¡   rþ   rp   rW   Úaxvliner  rP   rY  rt  )r-   r   r   r*   rÙ  rò  r   r   r   Útest_eb_line_zorder[  s&    

r7  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¸   re   )r  r   r‡  rº   rª  z.-)r   r  )re   r%  r  r  r   re   r  r%  )r   rq   r  Úaxline©r3   r4   r   r   r   r   Útest_axline_loglogy  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‡  r  r‹  rö  r¤  rq  )r   r’   ©r   r’   r¥  )gffffffæ¿r  r   rÊ  )Úsloper˜   )r   r  r  ZC4)r  r   Úinfr¼  rc   r   r’   )r   rq   r8  r  rp   rW   r6  r9  r   r   r   Útest_axline†  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‡  r  r   ©r<  rÝ   r;  r¤  ©r<  r˜   rÝ   ©r’   r’   r   r¥  )r’   r   )r’   r   rÊ  )r˜   rÝ   rc   rq  )r   rq   r8  rç   rp   r9  r   r   r   Útest_axline_transaxes�  s    rB  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‡  r  r   r?  rA  r   r¤  r@  r   r¥  )r   r´   rì  r|   r´   re   rq  )r   rq   r8  rç   Úset_size_inchesrp   r9  r   r   r   Útest_axline_transaxes_panzoom®  s    rD  c                  C   sV  t  ¡ \} }t t¡� | d¡ W d  ƒ n1 s60    Y  t t¡�  |jdddd� W d  ƒ n1 sp0    Y  | d¡ t t¡� |jddd� W d  ƒ n1 s²0    Y  | d¡ | d¡ t t¡� |jddd� W d  ƒ n1 sþ0    Y  | d¡ t t¡�$ | dd¡ t  	¡  W d  ƒ n1 �sH0    Y  dS )z3Exactly one of *xy2* and *slope* must be specified.r  Nr‹  r   )r<  rØ   r  )
r   r   r}   r~   r   r8  r  rÈ  rè  rÌ   r   r   r   r   Útest_axline_argsÂ  s     (.
,

,
rE  )Zvlines_basicZvlines_with_nanZvlines_maskedc                  C   sœ  g d¢} g d¢}t  ¡ \}}|j| d|ddd� g d¢}dd	d
dtjdg}t jd
dd�\}\}}}	|j|d|ddd� g d¢}
tjdd	d
ddg}|j|
d|dd
dd� g d¢}tjdd	d
dtjg}|	j|d|ddd� ||||	fD ]}| dd¡ qâ| ¡ | ¡ k�s
J ‚| ¡ | ¡ k�s J ‚| ¡ |	 ¡ k�s6J ‚t  ¡ \}}tj g d¢d¡}tj g d¢d¡}tj g d¢d¡}|j|||ddd� | dd¡ d S ©N)r   r|   rÚ   r´   r|  )r   éúÿÿÿr|   r�  r   r   r’  r´   ©r7  rà   )r   r|   rÚ   r´   r  r|  r   rG  r|   r�  )rÚ   r�  )r  r’  rp  rn  )r7  rà   r{   r  re   )r   rÚ   r  r�  re   r7  )r   r   rc   r   r   r   )ra  r1  r¼   r1  é   r  r  r¼   )	r   r   rV   rP   rÏ  r>  rs   r   Úmasked_equal)rô  r  rä  rÉ   rô   rõ   rå  rÐ   rÑ   rg  Úx3rî  Úx4Úy4r   Úfig3Úax5Zx5Zymin5Zymax5r   r   r   Útest_vlinesÖ  s2    rP  c                  C   sb   t  ¡ \} }t ddi¡�4 | ddd¡}tj | ¡ d¡s@J ‚W d   ƒ n1 sT0    Y  d S ©Nzlines.colorr\  r’   r   r   )r   r   rƒ   r   rV   r7  r¯  r§  ©r   r   r>  r   r   r   Útest_vlines_defaultþ  s    rS  )Zhlines_basicZhlines_with_nanZhlines_maskedc                  C   sœ  g d¢} g d¢}t  ¡ \}}|j| d|ddd� g d¢}dd	d
dtjdg}t jd
dd�\}\}}}	|j|d|ddd� g d¢}
tjdd	d
ddg}|j|
d|dd
dd� g d¢}tjdd	d
dtjg}|	j|d|ddd� ||||	fD ]}| dd¡ qâ| ¡ | ¡ k�s
J ‚| ¡ | ¡ k�s J ‚| ¡ |	 ¡ k�s6J ‚t  ¡ \}}tj g d¢d¡}tj g d¢d¡}tj g d¢d¡}|j|||ddd� | dd¡ d S rF  )	r   r   ÚhlinesrP   rÏ  r?  rr   r   rJ  )r  rô  rä  rÉ   rõ   rô   rå  rÐ   rÑ   rg  rî  rK  rM  rL  r   rN  rO  Zy5Zxmin5Zxmax5r   r   r   Útest_hlines  s2    rU  c                  C   sb   t  ¡ \} }t ddi¡�4 | ddd¡}tj | ¡ d¡s@J ‚W d   ƒ n1 sT0    Y  d S rQ  )r   r   rƒ   r   rT  r7  r¯  r§  rR  r   r   r   Útest_hlines_default-  s    rV  r´   r\  rÚ   c                 C   s”   g d¢}|   ddd¡j|dd|dd� |   ddd¡j|dd|dd� g d¢}g d¢}|  ddd¡j|dd|dd� |  ddd¡j|dd|dd� d S )	N)r\  r™   r—   r(  rô  r   r   r   r´   rH  )r   r   r|   r´   )r\  r™   r—   rô  )r‡   rV   rT  )r3   r4   r+  Ztest_colorsZ	expect_xyZexpect_colorr   r   r   Útest_lines_with_colors4  s    ÿÿÿÿrW  Zstep_linestylec               	   C   sN  t  d¡ } }t dd¡\}}| ¡ }g d¢}t||ƒD ]h\}}|j| |d|dd� |j| |d d|dd� |j| |d d|d	d� | d
dg¡ | d
dg¡ q8| ||d |d dœ}t dd¡\}}| ¡ }g d¢}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 )Nre   r   )rm  rn  rI  r  r´   Úpre)rî   r{   rú  r   r  rF  rc   r|  )r—  ÚY0ÚY1ÚY2r—  rY  )rî   r{   rú  r+  rZ  r[  )	rP   rU   r   r   r?  r=  r  r>  r?  )r-   r*   r   Úax_lstZ	ln_stylesr   r“  r+  r   r   r   Útest_step_linestyleF  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¡ | 	g d¢g d¢g¡ |j
 d¡ | |¡ | |¡ | dd¡ | dd¡ d S )N)r�  r�  rÚ   rÛ   r™   )ÚradiusrÞ   rß   T)Zmatch_originalr   r  r   r´   r3  iàÿÿÿiðÿÿÿ)r   r   r¸   r–   )r   r   r¸   r’   r‰  r1  )r   r   r5  ÚCirclerƒ   rÞ  ZPatchCollectionZset_offsetsZset_linewidthsZset_edgecolorsrÎ   r\  rî  r>  r?  )r   r   r    Úp1Úp2r   r   r   Útest_mixed_collectiond  s    

rb  c                  C   s:   t  t d¡t d¡d¡} |  ¡  |  ¡  ¡ dks6J ‚d S )Nr´   r   )r´   r   r   r   )r   r  rP   Zint32Zint64rÇ   Zget_subplotspecZget_geometryr¯  r   r   r   Útest_subplot_key_hash~  s    rc  )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pnggìQ¸…ë±?)r	  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¡}g d¢}||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� �qVqädS )z)Test axes.specgram in default (psd) mode.r`   r×  r¨  rY  rÚ   r´   r	  çÍÌÌÌÌÌ@çffffff@çÍÌÌÌÌÌ'@re   r   r   r   rG  ©r  ÚonesidedÚtwosidedr|   )ÚNFFTÚFsÚnoverlapÚpad_toÚsidesr  )rj  rk  rl  rm  rn  r×   ræ  N)r>   rŸ   ÚintrP   r*  rU   r  rÃ   rÄ   ÚmultiplyÚouterr¾  rQ   rR   r¼  r†   ÚceilÚlog2r=  r   r¡   r   Úspecgramr7  ÚLogNorm)r¿  rk  ÚfstimsÚ
NFFT_freqsr-   Úy_freqsÚ
NFFT_noiseÚy_noiseÚ	all_sidesr*   rj  rl  rm  r   rn  r   r   r   Útest_specgram„  s2    
,$ÿÿ

þ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¡}g d¢}	||f||ffD ]¢\}}
|
d }tdt t |
¡¡ ƒ}tt ¡  d¡|	ƒD ]"\}}|j||
||||dd� �q4tt ¡  d¡|	ƒD ],\}}|j||
||||ddt j ¡ d�	 �qlqødS )z%Test axes.specgram in magnitude mode.r`   r×  r¨  rY  rÚ   r´   r	  rd  re  rf  r»   r   r   r   rG  Nrc   re   rg  r|   Z	magnitude©rj  rk  rl  rm  rn  rM   r  )rj  rk  rl  rm  rn  rM   r×   ræ  )r>   rŸ   ro  rP   r*  rU   rÃ   rÄ   rp  rq  r¾  r>  rQ   rR   r  r¼  r†   rr  rs  r=  r   r¡   r   rt  r7  ru  )r¿  rk  rv  rw  r-   r*   rx  ry  rz  r{  rj  rl  rm  r   rn  r   r   r   Útest_specgram_magnitude¨  s2    
,&
ÿ

þ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¡}g d¢}	||f||ffD ]²\}}
|
d }tdt t |
¡¡ ƒ}dD ]„}tt ¡  d¡|	ƒD ]h\}}|j||
|||||d� t t¡�* |j||
|||||dd� W d  ƒ n1 �s˜0    Y  �q<�q$qødS )z,Test axes.specgram in angle and phase modes.r`   r×  r¨  rY  rÚ   r´   r	  rd  re  rf  re   r   r   r   rG  Nrc   rg  )rt  Úphaser|   r}  ÚdB)rj  rk  rl  rm  rn  rM   r×   )r>   rŸ   ro  rP   r*  rU   rÃ   rÄ   rp  rq  r¾  r>  rQ   rR   r  r¼  r†   rr  rs  r=  r   r¡   r   rt  r}   r~   rè  )r¿  rk  rv  rw  r-   r*   rx  ry  rz  r{  rj  rl  rm  rM   r   rn  r   r   r   Útest_specgram_angleÍ  s4    
,&
ÿþr�  c                  C   sF   t jt d¡ddd�\} }}}| ¡ \}}}}|dkr>|dksBJ ‚dS )z;Test axes.specgram when Fs is None, should not throw error.r´  Nr  )rk  r×   r[   é`   )r   rt  rP   rj   Z
get_extent)ÚspecÚfreqsr2  rð  rN   rO   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'.r  Úupperzimage.originr]   N)rP   rU   rÃ   r   rŸ   r   rt  )r3   r4   r2  Úsignalr   r   r   Útest_specgram_origin_rcparamú  s    



rˆ  c                  C   sP   t  d¡} t  | ¡}t t¡� tj|dd� W d  ƒ n1 sB0    Y  dS )z4Ensure passing origin as a kwarg raises a TypeError.r  r]   r  N)rP   rU   rÃ   r}   r~   r   r   rt  )r2  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�sdJ ‚|jddd� �qtt ¡  d¡|ƒD ]P\}}|j|	|
|||dœ|¤Ž}t|ƒd| dd¡ k�sÊJ ‚|jddd� �qŠqàd S )Nr8  ç      Y@rÚ   r´   r	  rd  re  rf  r¨  r   r   r   rG  rn  r  rh  F)rn  Úreturn_lineri  Tr|   )rj  rk  rl  rm  r‹  r¤   ©ZxlabelZylabel)ro  rP   r*  rU   rÃ   rÄ   rp  rq  r¾  rQ   rR   r¼  r†   rr  rs  r=  r   r¡   r   Úpsdr  rÐ  rÿ  rq   Úcsd)r¿  rk  rv  rw  r-   Zys_freqsry  Zys_noiseZ
all_kwargsrá  rj  rl  rm  r   rA  Úretr   r   r   Útest_psd_csd  s@    ,&þÿÿ
ÿÿ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 }g d¢}||dœ}	||fD �]2}
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� �q8t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 )Nr8  rŠ  rÚ   r´   r	  r¨  r   r   r   re   r|   rG  r’   rg  )rk  rm  rn  r¤   rŒ  r×   r€  )ro  r*  rP   rr  rs  rU   rÃ   rÄ   rq  r¾  rQ   rR   r>  r¼  r†   r=  r   r¡   r   Zmagnitude_spectrumrq   Zangle_spectrumZphase_spectrum)r¿  rk  Zfstims1rj  rm  r-   rx  rz  r{  rA  r*   r   rn  rƒ  r„  r4  r   r   r   Útest_spectrum7  s8    *ÿ"
ÿr‘  c                  C   s†   t  ¡  d¡} | D ]}|jjdd� qtjdd��@ | d  t d¡¡ | d  	t d¡t d¡¡ W d   ƒ n1 sx0    Y  d S )	Nr   T)r  rÊ  rË  r   r´   r   )
r   r¡   r   rD   rq   rP   rÎ  r�  rY  rŽ  )r  r   r   r   r   Útest_psd_csd_edge_casesa  s    r’  c                 C   sH   |   ¡ }| ¡ }| ¡ }| ¡  | ¡  |  ¡ }|j ¡  |j ¡  d S rË   )r‡   rÇ   rÆ   ÚremoverA   Ztick_bottomrD   Z	tick_left)r3   r4   rX   Zax_twinxZax_twinyrY   r   r   r   Útest_twin_removek  s    
r”  ztwin_spines.pngc            	      C   s|  dd„ } t jdd�}|jdd� | ¡ }| ¡ }| ¡ }|jj d¡ | |ƒ |jj d¡ | 	g d	¢g d	¢d
¡\}| 	g d	¢g d¢d¡\}| 	g d	¢g d¢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Î   Úset_visibleÚspinesr¯  r   r   r   Úmake_patch_spines_invisible}  s    
z5test_twin_spines.<locals>.make_patch_spines_invisible)rÚ   r|   r   r  )r'   )rç  rö  Trë   zb-)r   r|   r   zr-)r  r‰   r¼   zg-r   r   rÚ   r   éA   r‘   )rû  r8  r*   )r  r7  r  r-   )r   r¡   rJ  r‡   rÇ   r–  r'   Úset_positionr•  rp   r>  r?  rD   r!   r\  r§  r•  Útick_params)	r—  r   ÚhostZpar1Zpar2r`  ra  Zp3Ztkwr   r   r   Útest_twin_spinesz  s0    rœ  ztwin_spines_on_top.pngc                  C   s@  dt jd< dt jd< t ¡ } |  ddd¡}t g d¢g d¢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Ë  r   )r¨  iL  i°  iâ  )rþ  i-  rk  r³  r   g     @�@z#BEAED4rq  rH  )r˜   r�  z#7FC97Fr’   )ré   rò  ré   rò  )r˜   r+  )r˜   r�  r+  )
r>   rŸ   r   r¡   r‡   rP   rñ   rÇ   rp   rÔ  )r   rÉ   r+  rÐ   r   r   r   Útest_twin_spines_on_top§  s(    


ÿr�  z(grid_which, major_visible, minor_visible))ri   TT)ÚmajorTF)rQ  FTc                    sh   t j d| dœ¡ t ¡ \}}|j ¡  t‡ fdd„|jj	D ƒƒsFJ ‚t‡fdd„|jj
D ƒƒsdJ ‚d S )NT)rw  zaxes.grid.whichc                 3   s   | ]}|j  ¡ ˆ kV  qd S rË   ©ÚgridlinerÍ   ©rŒ   Útick)Úmajor_visibler   r   r  Ï  s   ÿz*test_rcparam_grid_minor.<locals>.<genexpr>c                 3   s   | ]}|j  ¡ ˆ kV  qd S rË   rŸ  r¡  )Úminor_visibler   r   r  Ñ  s   ÿ)rƒ   rŸ   r•  r   r   rî  rÌ   r  rA   Ú
majorTicksÚ
minorTicks)Z
grid_whichr£  r¤  r   r   r   )r£  r¤  r   Útest_rcparam_grid_minorÆ  s    
ÿÿr§  c                  C   s¸   t  ¡ \} }| ¡  | j ¡  |jjd j ¡ s4J ‚|jdd� | j ¡  |jjd j ¡ r`J ‚|jdd� | j ¡  |jjd j ¡ sŒJ ‚| ¡  | j ¡  |jjd j ¡ r´J ‚d S )Nr   F©ÚvisibleT)	r   r   r–  rî  rÌ   rA   r¥  r   rÍ   r   r   r   r   Ú	test_gridÕ  s    



rª  c                  C   s´   t  ¡ \} }|jdddd� |jjd j ¡ r2J ‚|jdd� |jjd j ¡ sTJ ‚t  ddi¡�> | 	¡  |jdddd� |jjd j ¡ s’J ‚W d   ƒ n1 s¦0    Y  d S )	NTrž  re   )ÚresetrS  Ú	labelsizer   r\  rq  rw  )
r   r   rš  rA   r¥  r   rÍ   r–  r   Úclearr   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Úinre   r´   rÕ  r7  r1  r¤  rl  r¥  rH  r|   rn  )Ú	directionÚlengthr8  r˜   Úpadr¬  Ú
labelcolorÚlabelrotationÚ
grid_colorÚ
grid_alphaÚgrid_linewidthÚgrid_linestyle)r‡   r–  rš  Zdraw_without_renderingrç  rA   Zreset_ticksrD   )r3   r4   r   r   r   r   r   Útest_reset_ticksò  s    

ü


r¹  c                  C   s:   t  ¡ } |  ¡ }| d¡ | g d¢¡ t| ¡ dƒ d S )Nr’   )r  r   r¹   r¸   )r  r¹   )r   r¡   rþ   r6  rp   r   rs   r   r   r   r   Útest_vline_limit  s
    
rº  zfv, fh, args)r   r‹  c                 C   s  t j d¡}tjtdd��  | ||ddœŽ W d   ƒ n1 s@0    Y  tjtdd��  | |d|dœŽ W d   ƒ n1 s~0    Y  tjtdd��  |||ddœŽ W d   ƒ n1 s¼0    Y  tjtdd��  ||d|dœŽ W d   ƒ n1 sú0    Y  d S )	Nr   z"ymin must be a single scalar valuerj  )ÚyminÚymaxz"ymax must be a single scalar valuez"xmin must be a single scalar value)rN   rO   z"xmax must be a single scalar value)r>   rú  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  g d¢g d¢¡ |d  ¡ \}}|d  ¡ \}}|dksZJ ‚|dksfJ ‚|dksrJ ‚|d	ks~J ‚d S )
Nr   r   T)r  r  r  rý   r   rh  )r   rÚ   r  r|   r  )r   r   rp   rr   rs   )r   r  r¼  rô  r½  r  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sBJ ‚|d  ¡ | ksVJ ‚t jddd�\}}|d jd| d� |d  ¡ d	ksJ ‚qd S )
N©ÚboxÚdatalimr   T)r  r  r   )Ú
adjustableÚsharer   ©rÄ  rV  )r   r   Ú
set_aspectÚ
get_aspectZget_adjustable)rÄ  r   r  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szJ ‚|d  ¡ |d  ¡ ks–J ‚d S )	Nr   T)r  r  rý   r   )rÅ  r   r|   rÚ   )r   r   rÇ  rp   rÌ   rr   rs   r  r   r   r   Útest_shared_with_aspect_27  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”J ‚|d  ¡ |d  ¡ ks°J ‚|jj|jj	 }|D ]P}| 
¡ }|j|j	 }|jj|jj	 }|| | }t|d
ƒt| ¡ d
ƒksÄJ ‚qÄqd S )NrÁ  r   T)r  rý   r   rÆ  r   r’   r|   rÚ   )r   r   rÇ  rp   rÌ   rr   rs   Zbbox_inchesrv  r8  Úget_positionÚviewLimr¼  rÈ  )	rÄ  r   r  Z
fig_aspectr   rÁ   Ú
box_aspectZ
lim_aspectr#  r   r   r   Útest_shared_with_aspect_3B  s     
rÎ  c                 C   sH   t  ¡ \}}t|d | ¡ƒƒ }| d¡ | d¡ t|jj|jjƒ d S )Nztwin{}r´   r   )r   r   rá   r”  rÇ  r   ÚbboxÚextents)rÓ   r   r   rè   r   r   r   Útest_twin_with_aspectV  s    

ÿrÑ  c                  C   sÞ   d} d}d}d}t j ¡ }| ¡ }| | |¡ | ¡ | ks>J ‚| ¡ |ksNJ ‚| ||¡\}| ¡ |kslJ ‚| ¡ |ks|J ‚| d¡ | ¡ |ks–J ‚| ¡ |ks¦J ‚|jdd� | 	¡  | ¡ | ksÊJ ‚| ¡ |ksÚJ ‚d S )N)r#  rY  )ç      $Àr  )rÒ  r¦  FT)Zvisible_only)
r>   r¡   r   r‡   rp   rr   rs   r•  Zrelimr¢   )rô  r  rô   rõ   r   r   r4  r   r   r   Útest_relim_visible_onlya  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_labelsizez  s    rÖ  zpie_default.pngc               	   C   sD   d} g d¢}g d¢}d}t jdd�\}}|j||| |ddd	d
� d S )N©ÚFrogsZHogsÚDogsÚLogs©r¼   r‰   rl  re   ©ZyellowgreenZgoldZlightskyblueZ
lightcoral©r   r¸   r   r   )r�  r  r   ú%1.1f%%Tr^  )Úexploder  r7  ÚautopctÚshadowÚ
startangle)r   r   Úpie)r  Úsizesr7  rß  rä  rÉ   r   r   r   Útest_pie_default„  s    ÿrå  )Úpie_linewidth_0ræ  ræ  c                  C   s¾   d} g d¢}g d¢}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Ý  rÞ  Tr^  rà   r   ©rß  r  r7  rà  rá  râ  Ú
wedgepropsru  )Úlr3  r    Úexr3  rê  ré  r    )rß  r  r7  rà  rá  râ  rè  r+  )r   rã  r  r¡   rþ   )r  rä  r7  rß  r+  r   r   r   r   r   Útest_pie_linewidth_0�  s.    þ
þ
þrë  zpie_center_radius.pngc                  C   sl   d} g d¢}g d¢}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Ý  rÞ  Tr^  rà   r   rÙ   r‘   )	rß  r  r7  rà  rá  râ  rè  r@   r^  zCenter point)r   r   ú->Zarc3)Ú
arrowstyleZconnectionstyleÚsquareZ	lightgrey)ZboxstylerÞ   )r-  r/  rN  rÏ  ru  )r   rã  r1  r•  r  ©r  rä  r7  rß  r   r   r   Útest_pie_center_radius±  s    
þ
ÿ
ýrð  zpie_linewidth_2.pngc               
   C   sD   d} g d¢}g d¢}d}t j||| |ddddd	id
� t  d¡ d S )Nr×  rÛ  rÜ  rÝ  rÞ  Tr^  rà   r   rç  ru  ©r   rã  r  rï  r   r   r   Útest_pie_linewidth_2Å  s    þrò  zpie_ccw_true.pngc               
   C   s@   d} g d¢}g d¢}d}t j||| |ddddd� t  d	¡ d S )
Nr×  rÛ  rÜ  rÝ  rÞ  Tr^  )rß  r  r7  rà  rá  râ  Zcounterclockru  rñ  rï  r   r   r   Útest_pie_ccw_trueÔ  s    þró  zpie_frame_grid.pngc                  C   s    d} g d¢}g d¢}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Ý  rÞ  Tr^  rà   r   rŒ  )	rß  r  r7  rà  rá  râ  rè  Úframer@   rc   )r´   r   )r|   r´   ru  rñ  rï  r   r   r   Útest_pie_frame_gridã  s(    ýýýrõ  zpie_rotatelabels_true.pngc               
   C   s@   d} g d¢}g d¢}d}t j||| |ddddd� t  d	¡ d S )
N)ZHogwartsrØ  rÙ  rÚ  rÛ  rÜ  rÝ  rÞ  Tr^  )rß  r  r7  rà  rá  râ  Úrotatelabelsru  rñ  rï  r   r   r   Útest_pie_rotatelabels_trueþ  s    þr÷  zpie_no_label.pngc                  C   sV   d} g d¢}g d¢}d}t j||| |dddd dd�	 t  d	¡ t  d
d¡ t  ¡  d S )Nr×  rÛ  rÜ  rÝ  rÞ  Tr^  )rß  r  r7  rà  rá  râ  Zlabeldistancerö  ru  g333333ó¿rö  )r   rã  r  rh   r/   rï  r   r   r   Útest_pie_nolabel_but_legend  s    þ
rø  c                  C   sÔ   g d¢} g d¢}t ddddddd	�}t ¡ j| |d
|d�\}}}||fD ]†}|D ]|}| ¡ |d kshJ ‚| ¡ |d ks|J ‚| ¡ |d ks�J ‚| ¡ |d ks¤J ‚| ¡ |d ks¸J ‚| 	¡ |d ksPJ ‚qPqHd S )N)rÿ  é"   rl  )zLong name 1zLong name 2zLong name 3r@   r#   r^  Úanchorr7  r\  )ÚhorizontalalignmentÚverticalalignmentrl  Úrotation_moderû  r˜   ú%.2f)r  rà  Ú	textpropsrû  rü  rl  rý  rû  r˜   )
r•  r   rþ   rã  Úget_haÚget_vaÚget_rotationZget_rotation_modeÚget_sizer§  )r+  r  rÿ  rF  Útextsrà  Ztxr   r   r   Útest_pie_textprops  s&    üÿr  c                  C   sP   t  ¡ \} }t t¡�& |jg d¢g d¢d� W d   ƒ n1 sB0    Y  d S )N)r´   r´   r'  )r   r¸   r¹   )rß  )r   r   r}   r~   rè  rã  r   r   r   r   Útest_pie_get_negative_values1  s    r  c                  C   sp   t  ¡ \} }g d¢}|j|dd�}t|d d jd ƒdk s@J ‚|j|dd�}t|d d jd ƒdkslJ ‚d S )	N)rº   rº   r¸   T)r-   Ú	normalizer   rc   g     €v@r  F)r   r   rã  r,  rn  )r   r   r-   Út1Út2r   r   r   Útest_normalize_kwarg_pie8  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  	g d¢dd	g  ¡ |d  
g d
¢dd	g  ¡ |d  |d  ¡ ¡ |d  |d  ¡ ¡ |d  	|d  ¡ ¡ |d  
|d  ¡ ¡ d S )Nr   rS   zset_x/yticklabelsr   re   r   ©ru   r]  r    rB  r  r¤   )Z11Z12Z13Z14)r   r   rp   rP   rU   r  Ú
set_xticksr    Ú
set_yticksÚset_xticklabelsÚset_yticklabelsr�  Z
get_yticksrN  Úget_yticklabels)r   r   r+   r   r   r   Útest_set_get_ticklabelsA  s    r  c                 C   s¤   |  ¡ }| g d¢¡ |jg d¢dd� | g d¢¡ |jddgdd	� |jd
dgdd	� |   ¡ }|jg d¢g d¢dd� | g d¢¡ |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)

    )r   r   rÚ   r  r  Úbold)Z
fontweight)r   r|   r´   r   rÚ   T)rQ  r]  r^  N)r   r  r  r  r  r9  r   r   r   Útest_set_ticks_with_labels[  s    	r  c                  C   s„   t  ¡ \} }| t d¡¡ |j t d¡d ¡ |jdd� |j dd„ dD ƒ¡ t  	¡  dd„ |j 
¡ D ƒ}|g d	¢ks€J ‚d S )
Nre   r¸   r´   r�  c                 S   s   g | ]}|‘qS r   r   r!  r   r   r   r�   w  r�   z.test_subsampled_ticklabels.<locals>.<listcomp>Z
bcdefghijkc                 S   s   g | ]}|  ¡ ‘qS r   r�  rÚ  r   r   r   r�   y  r�   )r]  rB  rm  rÀ  rò  )r   r   rp   rP   rU   rA   Ú	set_ticksr¡  Úset_ticklabelsrÌ   Úget_ticklabels)r   r   r  r   r   r   Útest_subsampled_ticklabelsq  s    r  c                  C   sj   t  ¡ \} }| t d¡¡ |j ddg¡ t t	¡�  |j 
g d¢¡ W d   ƒ n1 s\0    Y  d S )Nre   r‘   r³  )ru   r]  r    )r   r   rp   rP   rU   rA   r  r}   r~   rè  r  r   r   r   r   Útest_mismatched_ticklabels}  s
    r  c                  C   s<   t  ¡ \} }| ddgddg¡ | ddg¡ | g ¡ d S )Nr   r   )r   r   r¯  r  r  r   r   r   r   Útest_empty_ticks_fixed_loc…  s    r  zretain_tick_visibility.pngc                  C   sF   t  ¡ \} }t  g d¢g d¢¡ t j| ¡ dd� |jdddd� d S )	Nrë   )r   rc   rÚ   Fr¨  r*   ri   r   ©r  rS  r±  )r   r   rp   Zsetpr  rš  r   r   r   r   Útest_retain_tick_visibility�  s    r  c                  C   st   t  ¡ \} }dd„ }|j t  |¡¡ | g d¢¡ | dd¡ |jj 	¡  dd„ |j 
¡ D ƒ}|g d¢kspJ ‚d S )	Nc                 S   s   | dkrdS dS )Nr   ú
unit valuer¤   r   r¥   r   r   r   Úformatter_func›  s    z.test_tick_label_update.<locals>.formatter_func)rc   r   r   r   r|   r  r³  c                 S   s   g | ]}|  ¡ ‘qS r   r�  r¡  r   r   r   r�   ¤  r�   z*test_tick_label_update.<locals>.<listcomp>)r¤   r¤   r  r¤   r¤   )r   r   rA   rª   r¬   r  r>  r¡   rî  rÌ   r  )r   r   r  Z
tick_textsr   r   r   Útest_tick_label_update•  s    r  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¸   r   r¼   r   ry   )r”  re   rd  r|   rÚ   )r   r   ró   r    rp   rP   rj   rÂ   )r   r   r”  r   r   r   Útest_o_marker_path_snap¨  s    
"r   c                  C   sà  ddg} d}t | ƒd }t| ƒ}t| ƒ}t dd¡\}}| | ¡ | d¡ | ¡ dks\J ‚| ¡ ||| d  ||| d  fksˆJ ‚| ¡ ||| d  ||| d  fks´J ‚t dd¡\}}| | ¡ | dd¡ | ¡ dksêJ ‚| ¡ ||| d  ||| d  fk�sJ ‚| ¡ ||| d  ||| d  fk�sFJ ‚t dd¡\}	}
|
 | ¡ |
jd	dd
� |
 ¡ dk�s€J ‚|
 ¡ ||| d	  ||| d	  fk�s®J ‚|
 ¡ ||| d  ||| d  fk�sÜJ ‚d S )Nr   re   r#  r–   r‹  r’   r   )r’   r   çš™™™™™É¿rÔ   )r!  r’   )	rÐ  r*  r-  r   r   rp   ró   rr   rs   )r+  rN   rO   r»  r¼  rä  rÉ   rå  rÐ   rN  rÑ   r   r   r   Útest_margins³  sF    

ÿ
ÿ

ÿÿ
ÿÿr"  c                  C   sN   t j d¡ t ¡ \} }| ddgddg¡ |jddd� | ¡ dksJJ ‚d S )Nr  r   r   rØ   r   )r¢  ZxmarginrÙ   )rƒ   r„   r…   r   r   rp   rq   rr   r   r   r   r   Útest_set_margin_updates_limits×  s
    r#  c                  C   s&   t  ¡ \} }| d¡ | dg¡ d S ©Nr   )r   r   r  r   r   r   r   Útest_length_one_histß  s    
r%  c                  C   s8   dgd } t  dd¡\}}| | | ¡ | t ¡ ¡ d S )Nre   r»   r   )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 )Nr   r   rq  ri  r   r   r   r   Útest_color_Noneí  s    r'  c                  C   s6   t  ¡ \} }|jddgdd�d }d| ¡ ks2J ‚d S )Nr   r   r…  r  )r   r   rp   r§  )r   r   r4  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   r  r    r/   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   Údecoder  r    r/   )r   r   ru   r]  r  r   r   r   Útest_unicode_hist_label   s    þr+  c                  C   sJ  t j d¡d } t ¡ \}}| | ¡ |j ¡  |jj 	¡ }|jj 
¡ dksPJ ‚|j ¡  |j ¡  |jj 	¡ }|d |d kr�|d |d ks”J ‚|jj 
¡ dks¨J ‚t ¡ \}}| | ¡ |j ¡  |jj 	¡ }|jj ¡ dksèJ ‚|j ¡  |j ¡  |jj 	¡ }|d |d k�r,|d |d k�s0J ‚|jj ¡ dk�sFJ ‚d S )	Nre   gæ^ 9^;r9   r   r   r'   r#   r8   )rP   rQ   r   r   rp   rî  rÌ   rD   Z
offsetTextrË  rC   Z
tick_rightrA   Zget_verticalalignmentro   )r+  r   r   ÚbeforeÚafterr   r   r   Útest_move_offsetlabel  s*    



$



(r.  zrc_spines.pngc                  C   sD   dddddœ} t  | ¡� t ¡  W d   ƒ n1 s60    Y  d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)r>   r   r   r   )rE  r   r   r   Útest_rc_spines(  s    ür/  zrc_grid.pngc               	   C   s€   t  ¡ } dddœ}dddœ}dddœ}|||g}t|dƒD ]@\}}t |¡� |  dd|¡ W d   ƒ q:1 sp0    Y  q:d S )NTri   )rw  zaxes.grid.axisr-   r*   r   r|   )r   r¡   r
  r>   r   r‡   )r   Zrc_dict0Zrc_dict1Zrc_dict2rJ  ré   rE  r   r   r   Útest_rc_grid3  s    þþþ
r0  c                  C   sÐ   dddddœ} t j| d��¢ t  ¡ }| ddd¡}|j}|j}|jd rLJ ‚|jd sZJ ‚|jd rhJ ‚|jd svJ ‚|jd s„J ‚|jd r’J ‚|jd s J ‚|jd r®J ‚W d   ƒ n1 sÂ0    Y  d S )NFT)úxtick.bottomú	xtick.topú
ytick.leftúytick.right©r¿  r   Útick1OnÚtick2On©r   r   r¡   r‡   rA   rD   Z_major_tick_kwZ_minor_tick_kw©rB  r   rÉ   ZxaxZyaxr   r   r   Útest_rc_tickI  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 rTJ ‚|jd sbJ ‚|jd rpJ ‚|jd s~J ‚|jd rŒJ ‚|jd sšJ ‚|jd r¨J ‚|jd s¶J ‚W d   ƒ n1 sÊ0    Y  d S )NTF)r2  r4  r1  r3  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr5  r   r6  r7  r8  r9  r   r   r   Útest_rc_major_minor_tick]  s$    ür;  c                  C   s¢   t  d¡} t  g d¢¡}t ¡ \}}| | |d¡ | d¡ | ¡ | ¡  }}t  	|¡t  	|¡ksfJ ‚| 
¡ dksvJ ‚t|jdd�jdƒ t|jd	d�jd
ƒ d S )NrÚ   )r–   r¹  r$  r4  Úmorî  r   T)Úoriginal©g      À?r¸   rn  rn  F)g333333Ë?r¸   g      ê?rn  )rP   rU   rñ   r   r   rp   r  rr   rs   r]  rÈ  r   rË  rÐ  )r-   r*   r   r   rg   rh   r   r   r   Útest_square_plott  s    

ÿÿr?  c                   C   s  t  t¡� t d ¡ W d   ƒ n1 s*0    Y  t  t¡� t d d ¡ W d   ƒ n1 s`0    Y  t  t¡�( t t d¡t d¡¡ W d   ƒ n1 s¢0    Y  t  t¡�8 t t d¡ d¡t d¡ dd¡f¡ W d   ƒ n1 sô0    Y  d S )NrŒ  rM  r´   r‚  rc   r   )	r}   r~   rè  r   rp   rP   rY  rU   rl   r   r   r   r   Útest_bad_plot_argsƒ  s    (*6r@  zxy, clsr   ))r|   r|  )r   r  )r   r   rÚ   r�  r1  rè  )rÚ   r´   r7  )r|   rÚ   c                 C   s0   t  ¡ \}}t|jg | ¢|‘R Ž ƒ|ks,J ‚d S rË   )r   r   râ  Ú
pcolorfast)r-  r+  Úclsr   r   r   r   r   Útest_pcolorfastŽ  s    rC  c                  C   sª   t jddddd�\} }|d  d¡ |d  d¡ |jD ]$}| ¡ dksLJ ‚| ¡ dks8J ‚q8|d  d¡ |d  d¡ |jD ]$}| ¡ dks”J ‚| ¡ dks€J ‚q€d S )Nr   T©r  rý   r  rØ   r‹  r  )r   r   r  rÈ  r  Z
get_yscaleZ
get_xscale©r   r  r   r   r   r   Útest_shared_scale¡  s    

rF  c                   C   sp   t  t¡� tjdd� W d   ƒ n1 s,0    Y  t  t¡� tjdd� W d   ƒ n1 sb0    Y  d S )NTr  rü   )r}   r~   r   r   r  r   r   r   r   Útest_shared_bool³  s    *rG  c                   C   s   t  t ddg¡¡ dS )z4Violin plot should handle point mass pdf gracefully.r   N)r   rg  rP   rñ   r   r   r   r   Útest_violin_point_massº  s    rH  c               	   C   sÎ   t dt d¡gƒt dt d¡gƒ } t ddg d¢g d¢g d¢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ƒ }| | }| | }| | | }g |¢|¢|¢|¢S )
Nr-   r´   r*   Úerrr   )r   r   r   r   r   )r   r´   rØ  rÙ  )r   rP   rU   rj   )Zbase_xyZ
err_cyclerZxerr_cyZyerr_cyÚemptyZ	xerr_onlyZ	yerr_onlyZboth_errr   r   r   Úgenerate_errorbar_inputs¿  s*    $ÿú

ÿÿrK  rA  c                 C   s$   t  ¡ }|jf i | ¤Ž}| ¡  d S rË   )r   rþ   rt  r“  )rA  r   Zebr   r   r   Útest_errorbar_inputs_shotgunÕ  s    rL  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   re   r»   r   ©re   re   r´   r  )r“  rî   r˜   )r   r   rP   rÂ   Z	ones_liker    rp   )r   r   r-   r*   rò  r   r   r   Útest_dash_offsetÜ  s
    
rN  c                  C   sž   t  ¡ \} }|jddd� |j ¡ }|d d| j ks:J ‚|jddd� |j ¡ }|d dksbJ ‚|jdd d� |j ¡ }|d tjd d | j ksšJ ‚d S )	NÚaardvarkr¦  )r²  r‚  g«ªªªªªÚ?r#  zaxes.titlepadg      R@)r   r   r  ZtitleOffsetTransZ
get_matrixrQ  r>   rŸ   )r   r   r  r   r   r   Útest_title_padå  s    


rP  c                  C   sê   t  ¡ \} }dt jd< | d¡ |jddd� |jddd� d|jdd�ksPJ ‚d|jdd�ksdJ ‚d|jdd�ksxJ ‚t t¡� |jdd� W d   ƒ n1 s¤0    Y  t t¡� |jddd� W d   ƒ n1 sÜ0    Y  d S )	Nr@   zaxes.titlelocationrO  r9   r$   r'   rK  Zfail)r   r   rŸ   r  Z	get_titler}   r~   rè  r   r   r   r   Útest_title_location_roundtripõ  s    

*rQ  z
loglog.pngc                  C   sN   t  ¡ \} }t dd¡}|j||d dd� |jddd� |jd	dd
d� d S )Nr   r	  r|   r´   rð   rd  r   )r±  r8  r¼   rQ  )r±  r8  rS  )r   r   rP   rU   r  rš  )r   r   r-   r   r   r   Útest_loglog  s
    rR  ztest_loglog_nonpos.pngc                  C   sÐ   t  dd¡\} }t dd¡}|d }d|d< d|d< ttg d¢d	d
�|jƒD ]~\\}}}||kr’|r||j||d d	|d� qÊ|j||d d	d� qL|j||d d	d� |r¸|jd|d� |rL|j	d|d� qLd S )Nr|   r   r	  g      Àr|  rå  rÚ   )rU  Zclipr¤   r   )rK  )rî   Únonpositiverð   rØ   )rS  )
r   r   rP   rU   r=  r   r  r  r  rÈ  )r   r  r-   r*   ZmcyZmcxr   r   r   r   Útest_loglog_nonpos  s"    ÿrT  c                  C   s†  t  ¡ \} }| g d¢¡ | ¡ d dks.J ‚t  ¡ \} }| g d¢g d¢¡ | ¡ d dksbJ ‚t  ¡ \} }| g d¢g d¢¡ | ¡ d dks–J ‚t  ¡ \} }| t 	d¡¡ | ¡ dksÂJ ‚| ¡ dksÒJ ‚t  ¡ \} }| 
t 	d¡¡ | ¡ dksþJ ‚| ¡ dk�sJ ‚t  ¡ \} }| t d¡¡ | ¡ d dk�sBJ ‚t  ¡ \} }| t 	d¡¡ | ¡ dk�spJ ‚| ¡ dk�s‚J ‚d S )Nrè  r   )r   r   r   r   rM  rì  re   )r  g      #@)r   r   rp   Z
get_yboundr¯  rÁ  Z
get_xboundr!  rP   rY  rA  r  rU   rn   r   r   r   r   Útest_axes_margins&  s0    rU  r-   r*   )rÕ  c                 C   s    dd„ }dd„ }||dœ| j  S )Nc                 S   s<   |   ¡ }| ¡  |  dd¡ | j ¡ ƒ }|d dks8J ‚d S ©Nr   r¼   rc   r1  )rÇ   r“  r>  rA   Úget_major_locator©r   rÐ   rp  r   r   r   Ú	_helper_xJ  s
    z&shared_axis_remover.<locals>._helper_xc                 S   s<   |   ¡ }| ¡  |  dd¡ | j ¡ ƒ }|d dks8J ‚d S rV  )rÆ   r“  r?  rD   rW  rX  r   r   r   Ú	_helper_yQ  s
    z&shared_axis_remover.<locals>._helper_yrÔ   )Úparam)ÚrequestrY  rZ  r   r   r   Úshared_axis_removerH  s    r]  )rþ   r   Úsubplots_sharedrò   c                 C   sŠ   | j dkrt ¡ }| ¡ }nf| j dkr4t ¡ \}}nN| j dkrbtjddddd�\}}|d d }n | j dkr‚t ¡ }| g d	¢¡}||fS )
Nrþ   r   r^  r   r  rD  r   rò   ©r¸   r¸   rH  rH  )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_axesl  s    ra  c                  C   s`   t jddddd�\} }|d d }|d d  ¡ }| ¡  | dd¡ t|d d  ¡ |ƒ d S )Nr   r  rD  r   r   r´   )r   r   rr   r“  r>  r   )r   r\  r   Z	orig_xlimr   r   r   Útest_remove_shared_axes_relimr  s    rb  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„J ‚| ¡ s”| ¡ r˜J ‚| ¡ | ¡   kr´d
ksºn J ‚| ¡ | ¡   krÖd
ksÜn J ‚d S )Ni°ÿÿÿr^  rì  r   r   TrD  éüÿÿr¨  )rc  r¨  )rP   rU   rQ   Zrandom_samplerû  r   r   r>  r?  rÝ  r÷   rø   rr   rs   )ré  r2  r   rÉ   rÐ   r   r   r   Útest_shared_axes_autoscale{  s    "rd  c                  C   sˆ   t  ¡ \} }|j ¡ jdd� | dd¡ | d¡ | j ¡  t	|j ¡ ƒ ƒdksVJ ‚| 
dd¡ | j ¡  t	|j ¡ ƒ ƒdks„J ‚d S )NrV  r�  r   r¨  ru  r   )r   r   rD   rW  Z
set_paramsr>  rÇ  rî  rÌ   rÐ  r?  r   r   r   r   Útest_adjust_numtick_aspectŒ  s    


re  zauto_numticks.pngc                   C   s   t  dd¡ d S )NrÚ   )r   r   r   r   r   r   Útest_auto_numticks˜  s    rf  zauto_numticks_log.pngc                  C   s.   t  ¡ \} }dtjd< | ddgddg¡ d S )NZround_numbersúaxes.autolimit_modeg#B’¡œÇ;g     jø@g¼‰Ø—²Òœ<re   )r   r   r>   rŸ   r  r   r   r   r   Útest_auto_numticks_logž  s    
rh  c                  C   s   t  ¡ \} }| g d¡ d S )N)r¸   r’   )r   r   rÛ  r   r   r   r   Útest_broken_barh_empty¦  s    ri  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^J ‚| ¡ d jd	 t |¡d
 ks‚J ‚dS )z9Check that timedelta works as x, dx pair for this method.rÔ  r	  r†  r   r   rÕ  r   r  ©r   r   gUUUUUU¥?N)	r   r   r`  rÛ  r@  rß  Zverticesrb  rc  )r   r   Zd0Úppr   r   r   Útest_broken_barh_timedelta«  s
     rl  c                 C   sD   | j ddd�}t d¡}tj dd¡}t ¡ \}}| |||¡ d S )Nz
2000-01-01re   )rÞ  rŽ  r‡  r†  )râ  rP   rU   rQ   r†   r   r   r   )rå  ÚtimeÚdepthr+  r   r   r   r   r   Útest_pandas_pcolormesh´  s
    
ro  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-03rZ  r  )rú  rˆ  r   r   rú  rˆ  ry  )rP   rU   rÃ   rñ   r    rÐ  rõ  r   rþ   rø  rh  rp   )rå  rú  rˆ  rù  r   Zwithout_zero_indexr   r   r   Útest_pandas_indexing_dates½  s    rp  c                 C   sF   | j tjjdd�g d¢g d¢d�}t ¡ \}}|jdddd	|d
� d S )N)r´   rÚ   ra  )r-   r*   ÚxeÚyer\  )Úcolumnsrø  r-   r*   rq  rr  r   )rõ  rP   rQ   Úuniformr   r   rt  rþ  r   r   r   Útest_pandas_errorbar_indexingÈ  s    þru  c                 C   s:   |   g d¢g d¢dœ¡}t ¡ \}}| |j|d ¡ d S )Nr¾  )r|  r   r   )ZXXÚYYrv  )rõ  r   r   rp   rø  rþ  r   r   r   Útest_pandas_index_shapeÐ  s    rw  c                 C   s8   | j g d¢d�}|jdd … }t ¡ \}}| |¡ d S )N)
r   r   r   r|   r|   rÚ   rÚ   rÚ   rÚ   r´   ry  r   )r  Zilocr   r   r  )rå  Zser_1Zser_2r   r   r   r   r   Útest_pandas_indexing_histÖ  s    rx  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 )Nr   rx  r   ru   r]  r@   r¹  )rõ  r    r   r   r¯  r%   rî  rÌ   rþ  r   r   r   Útest_pandas_bar_align_centerÝ  s    þry  c                  C   s    dd l m}  t ¡ }|  |d¡}tjtdd�� | d¡ W d   ƒ n1 sN0    Y  |  	|d¡}tjtdd�� | d¡ W d   ƒ n1 s’0    Y  d S )Nr   z;The apply_tickdir function was deprecated in Matplotlib 3.5rj  rÔ  )
Zmatplotlib.axisr  r   rç  ZXTickr}   rr  r   Zapply_tickdirZYTick)Zmaxisr   r¢  r   r   r   Ú#test_tick_apply_tickdir_deprecationê  s    ÿ(ÿrz  c                  C   s‚   t  ¡ } | jjdddd� | jjd jdks0J ‚| jjd j ¡ dksJJ ‚| jjd j 	¡ dksdJ ‚| jjd j ¡ dks~J ‚d S )	Nr‰   r\  rÔ  )r¬  r³  r°  r   r  r  r¦  )
r   r  rD   Úset_tick_paramsr¥  Ú_sizeÚ	tick1liner§  Úlabel1r  )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sBJ ‚|jd j ¡ dksZJ ‚|jd j 	¡ dksrJ ‚|jd j 
¡ dks&J ‚q&d S )Nr]  r´   r’   r%  )rµ  r·  r¶  r¸  r   rI  )r   r  rš  rA   rD   r¥  r   r§  Zget_linewidthZ	get_alphaÚget_linestyle)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u sBJ ‚| jjd j ¡ du s\J ‚| jjd j ¡ du svJ ‚| jjd j ¡ du s�J ‚d S )NFTrž  )Z	labelleftZ
labelrightrS  rQ  r   )	r   r  rš  rD   r¥  r~  rÍ   Úlabel2r¦  r¯  r   r   r   Ú test_axes_tick_params_ylabelside  s    ÿÿrƒ  c                  C   s”   t  ¡ } | jdddd� | jdddd� | jjd j ¡ du sBJ ‚| jjd j ¡ du s\J ‚| jjd j ¡ du svJ ‚| jjd j ¡ du s�J ‚d S )NTFrž  )ÚlabeltopÚlabelbottomrS  rQ  r   )	r   r  rš  rA   r¥  r~  rÍ   r‚  r¦  r¯  r   r   r   Ú test_axes_tick_params_xlabelside#  s    ÿÿr†  c                  C   s4   t  ¡  ¡ } | jtdƒd d�\}| ¡ dks0J ‚d S )Nr[   ro  rm  )r   r¡   r   rp   r    r€  )r   Úlnr   r   r   Útest_none_kwargs3  s    rˆ  c                  C   sT   g d¢} t jtj| tjd�g d¢dd�}t|j| ƒD ]\}}|jd |ks4J ‚q4d S )Nrè  r  )r   r|   rÚ   r´   r«  r¹  r   )r   r¯  rP   rñ   Zuint8r=  rå   r-  )rà  r]  rÎ   r-   r   r   r   Útest_bar_uint89  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 ©éà  r   é   úCanada/Eastern©rš   Útzinfo©r`  rÝ  ÚtzZgettzr‹   r   r   r   r�   C  s   þ
ÿz(test_date_timezone_x.<locals>.<listcomp>r|   ©rŽ  r7  r   r   r   r�  )r‘  ÚUTC©r    r   r¡   r  r  ©Z
time_indexr   r   r   Útest_date_timezone_x@  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�   T  s   þ
ÿz(test_date_timezone_y.<locals>.<listcomp>r|   r’  r   r   r   r�  FT)r‘  ZxdateÚydater“  r”  r•  r   r   r   Útest_date_timezone_yQ  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‹  r   rŒ  rŽ  ©r`  r‹   ©r“  r   r   r�   g  s   ÿz.test_date_timezone_x_and_y.<locals>.<listcomp>r|   r’  r   r   r   r“  T)r‘  r—  z
US/Eastern)r`  ÚtimezoneÚutcr    r   r¡   r  r  r•  r   rš  r   Útest_date_timezone_x_and_yc  s    
ÿr�  zaxisbelow.pngc                  C   sš   t  ¡ jdddd�} d}t| |ƒD ]r\}}|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¡ | |¡ q"d S )Nr|   T)r  r  rý   )Fr4  Trì  re   r  r)  r,  rp  rq  r    rm  )r˜   r{   rà   F)r#   r8   r9   r'   )r   r¡   r   r=  rp   r5  r_  r4  r–  rš  r–  r•  Zset_axisbelow)r  Úsettingsr   ZsettingÚcircr   r   r   Útest_axisbelowt  s    
ÿr   c            	      C   s€   t j d¡ t jdd�\} }| ¡ }| d¡}| d¡}| j ¡  | j 	¡ }| 
|¡j}| 
|¡j}|| }t |d¡s|J ‚d S )Nr‚   r  )rQ  ÚXlabel2ÚTitler|   )r   r„   r…   r   rÆ   r   r  rî  rÌ   Úget_rendererÚget_window_extentr½  r  rP   Úisclose)	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stJ ‚d S )NrH  )r#   ZXlabelr¡  r¢  )r’   gÃõ(\�Âñ?)r   r   rJ  rÆ   r   r  r˜  r™  rî  r£  Z_update_title_positionrË  )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sLJ ‚d S )Núaxes.titleyr#   ú
xlabel topr   ç¤p=
×£ð?)rƒ   rŸ   r   r   rA   rt   r  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sTJ ‚d S )Nr©  r-   T©r  r8   r#   r…  r„  rª  r   r«  )
rƒ   rŸ   r   r   rš  r  rî  rÌ   r˜  rË  r   r   r   r   Útest_title_xticks_top_both¯  s    
ÿ

r®  c                  C   s`   d t jd< t ¡ } |  g d¢¡}|jdddddd� | d¡}| j ¡  | 	¡ d dks\J ‚d S )	Nr©  )r¸   r  rH  r¹   r-   Tr­  ÚBoor   r–   )
rƒ   rŸ   r   r¡   rò   rš  r  rî  rÌ   rË  )r   r   Úttr   r   r   Útest_title_no_move_off_pageº  s    
ÿ

r±  c                  C   sB   t  ¡ \} }| g d¢¡ |jjdd� |j ¡  ¡ dks>J ‚d S )N©g   @°ÎAg   €ûeÎAg   ÀF²ÎAr\  )r³  )r   r   rp   rD   r{  Úget_offset_textr§  r   r   r   r   Útest_offset_label_colorÇ  s    r´  c                  C   s`   t  ¡ \} }| g d¢¡ |jjddd� |j ¡  ¡ s<J ‚|jjdd� |j ¡  ¡ r\J ‚d S )Nr²  FT)Zlabel1OnÚlabel2On)rµ  )r   r   rp   rD   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 )Nr   r   gê-�™—q=g„þäqÙ‰E)r   r   rp   rP   rñ   rî  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¼   r  r™  rÄ  r   r   r   r�   à  r�   z#test_barb_units.<locals>.<listcomp>r   rR  re   r´   r  )r   r   r    rP   rÂ   rÐ  Zbarbs©r   r   rú  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�   è  r�   z%test_quiver_units.<locals>.<listcomp>r   rR  re   r´   r  )r   r   r    rP   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sFJ ‚qFqd S )Nr´   r|   )	ré  Úto_rgbr   r   r    rp   r¯  r§  rÌ  )r¾  r   r   rò  r‡  ZbrsÚbrr   r   r   Útest_bar_color_cycleî  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shJ ‚qh|jdd�D ]}| ¡ dksŠJ ‚qŠ|j	d	d
d� |j	ddd� |jdd�D ]}| ¡ d
ksÈJ ‚qÈ|jdd�D ]}| ¡ dksêJ ‚qêd S )Nr   r   r   ri   r¿   )rS  rl  r^  rR  r-   é5   )r  r´  r*   r½   )r  rl  rž  )
r   r   rp   rA   r{  rD   rN  r  r  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J ‚qtddƒD ]D}| 
tdƒtdƒ¡}t d |¡¡}t| ¡  	¡ ƒt|ƒksdJ ‚qdt d¡}dD ]@}|jtdƒtdƒfi |di¤Ž}t| ¡  	¡ ƒt|ƒks¸J ‚q¸t d¡}tddgdd�D ]v\}}|jtdƒtdƒfi |di¤Ž}t d |¡¡}t| ¡  	¡ ƒt|ƒk�sjJ ‚t| ¡  	¡ ƒt|ƒk�sJ ‚�qd S )	Nr|   zC{}r  r  )rÞ   Z
facecolorsr˜   rß   r%  )Ústart)r   r   r    rÔ  ré  r¦  r”  Útupler¥  Zsqueezeró  r
  r¦  )	r   r   rò  ÚccÚtargetÚalZedge_targetÚelZface_targetr   r   r   Útest_fillbetween_cycle  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 )Nr+  rg  rÇ  re   r»   )
r   rŸ   r   Zset_xmarginr  rr   rA   rà  rÝ   r   )r   r   ÚmarginZxlim0Zxlim1rÝ   Zxlim0tZxlim1tZx0tZx1trž  r   r   r   Útest_log_margins'  s    


rÌ  c                  C   sœ   d} t  | ¡t  | ¡ }}t  | d ¡}t ¡ \}}t t¡�  |j|||d� W d   ƒ n1 sd0    Y  d}|j|||d� |j|||g|  d� d S )Nr´   r   r  )r’   r’   r’   )rP   rU   r   r   r}   r~   rè  r   )rÚ  r-   r*   r7  r   r   Zc_rgbr   r   r   Útest_color_length_mismatch5  s    .rÍ  c                   C   s   t jdgdd� t  ¡  d S )Nr–   ÚLabelr‚  )r   r  r/   r   r   r   r   Útest_eventplot_legendA  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 J ‚d S )NrÚ   r   r   )r9   rv  )r¸   r¹   rº   r  r­  )r   r   r¯  r    rÁ  rÍ  )r   r   Zrect1Úrect2r   r   r   Útest_bar_broadcast_argsF  s
    rÑ  c                   C   sð   t  ddgddg¡ t t¡� t  tj¡ W d   ƒ n1 s@0    Y  t t¡� t  tj¡ W d   ƒ n1 sv0    Y  t t¡� t  	tj¡ W d   ƒ n1 s¬0    Y  t t¡� t  	tj¡ W d   ƒ n1 sâ0    Y  d S )Nr   r   )
r   rp   r}   r~   rè  rg   rP   rÏ  r=  rh   r   r   r   r   Útest_invalid_axis_limitsQ  s    ***rÒ  r¢  r  rØ   rº  c                 C   s6   t  ¡ }| g d¢¡ | | ¡ | |¡ | ¡  d S )Nr  )r   r  rp   r  rÈ  r  )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 )Nr   r   r   r’   )r   r   rŸ  rÇ   rp   r   rÌ  Z	intervalx)r   r   Zxtwinrå  rÐ   r   r   r   Útest_twinx_knows_limitsh  s    rÔ  c                   C   s   t jddgddgddd� d S )Nr   r   rn  )r“  rî   )r   rp   r   r   r   r   Útest_zero_linewidthw  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   rt  r/   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å  re   rº   c                 S   s0   g | ](}d |d  d|d   d|  d ‘qS )gÍÌÌÌÌÌ@r|   r³  r   g\�Âõ(\@ç      @r   r‹   r   r   r   r�   †  r�   z%test_plot_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ‘qS r   r   rÄ  r   r   r   r�   ‡  r�   c                 S   s   g | ]}t |ƒ‘qS r   r   rÄ  r   r   r   r�   ˆ  r�   )rP   rU   r   rp   )r3   r4   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   ry   rÛ   r’   )r  r�  r&  )r   rp   )r3   r4   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 sZJ ‚|j|jk sjJ ‚dS )z5Test that tick padding gets turned off if axis is offrÔ  zxtick.directionzytick.directionÚoffN)	r   rŸ   r   Úget_tightbboxrî  r£  r  r¼  r½  ©r   r   ÚbbÚbb2r   r   r   Útest_tick_padding_tightbbox–  s    


rß  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u sðJ ‚|j ¡  t  ddgd	dgg¡}t  |
 ¡  ¡ |k¡�s,J ‚dS )z:
    Ensure that inset_ax argument is indeed optional
    ©rÇ  rÇ  r   r´   re   Nrc   r–   r‘   ç333333@r   r³  r   )Úboundsr¶   )rP   Úmgridr•  rÃ   rÿ   r   r   r   rÇ  Úapply_aspectÚindicate_insetrî  rÌ   rñ   r  Úget_bboxÚ
get_points)ÚdxÚdyr*   r-   rR  r   r   rg   rh   rÐ  ÚrecÚ
connectorsÚxxr   r   r   Ú
test_inset¢  s&    ÿ
*
,

ÿrí  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¡ | 	¡  | 
g d¢¡}| |||d d…d d…f ¡ | dd	g¡ | d
dg¡ | | ¡ ¡ | |¡\}}	t|	ƒdk�sJ ‚|j ¡  t  ddgd	dgg¡}
t  | ¡  ¡ |
k¡�sJJ ‚t  ddgddgg¡}
t jj| ¡  ¡ |
dd� d S )Nrà  r   r´   re   rc   r–   )r«  r«  çffffffÖ?rî  r‘   rá  r   r³  rÚ   r¶   g=
×£p=ä?gKXc'æ?gö(\�Âõê?gèÚÐí?g-Cëâ6?©Zrtol)rP   rã  r•  rÃ   rÿ   r   r   r   rÇ  rä  Ú
inset_axesr>  r?  rÈ  Zindicate_inset_zoomrÐ  rî  rÌ   rñ   r  ræ  rç  rœ   r   rË  )rè  ré  r*   r-   rR  r   r   Zaxin1rê  rë  rì  r   r   r   Útest_zoom_inset¿  s6    ÿ
*


ÿ
ÿÿrñ  Ú
x_invertedÚ
y_invertedc                 C   s   t  dd¡\}\}}t d¡}| ||d¡ | r8| ¡  |rD| ¡  | g d¢|¡\}}|\}}	}
}| rldnd}|rxdnd}||
jd |jd   dksœJ ‚||jd |	jd   dks¼J ‚||	jd |jd   dksÜJ ‚||jd |
jd   dksüJ ‚dS )	zR
    Test that the inset lines are correctly located with inverted data axes.
    r   r   re   ry   )r   r   r´   rÚ   rc   r   N)	r   r   rP   rU   rp   rÆ  rÇ  rå  r  )rò  ró  r   rÉ   rÐ   r-   rÐ  râ  Z
lower_leftZ
upper_leftZlower_rightZupper_rightZsign_xZsign_yr   r   r   Útest_indicate_inset_invertedà  s    
   rô  c                  C   s¦   t  ¡ \} }| d¡ |jg d¢dd� t | ¡ jd¡s>J ‚| d¡ |jg d¢dd� t | ¡ jd¡spJ ‚| d¡ |jg d¢d	d� t | ¡ jd¡s¢J ‚d S )
Nr¹  )r¸   r¸   r  r  ri   rR  r¸   r¶   r=  r:  Úactive)r   r   rÇ  r™  rP   rL  rË  r8  r   r   r   r   Útest_set_positionú  s    


rö  c                  C   sd   t  ¡ \} }|jj | j ¡ ¡}| ddd dd¡ |jj | j ¡ ¡}tj	j
| ¡ | ¡ dd� d S )N)rý  rý  r  r  r¯  Fg�íµ ÷Æ°>rï  )r   r   r–  r8   r¤  rî  r£  Z_set_view_from_bboxrP   rœ   r   rç  rÜ  r   r   r   Ú!test_spines_properbbox_after_zoom  s    ÿr÷  c                  C   sH   t  ¡ \} }t| ƒ | tjdd¡ | j ¡ }tj 	| 
|¡jd¡ d S )Nr   r¯  ið  )r   r   r   rÂ  rP   rX  rî  r£  rœ   r   rÛ  r8  )r   r   r¦  r   r   r   Útest_gettightbbox_ignore_nan  s
    
rø  c                 C   s^   t ddƒ}| jtjjdd�|d�}| jtjjdd�|d�}| jg d¢|d�}t |||¡ d S )Nre   r  r�  ra  rý  )r   r   r   r   r   r   r   r   )r    r  rP   rQ   rt  r   r   )rå  rñ  r-   r*   r    r   r   r   Ú"test_scatter_series_non_zero_index  s
    
rù  c                   C   s"   t  g g ¡ t jg g g g d� d S )N)r3  r    )r   r   r   r   r   r   Útest_scatter_empty_data"  s    rú  zannotate_across_transforms.pngc               	   C   s    t  ddd¡} t  |  ¡t  | ¡ }tjdd�\}}| | |¡ | g d¢¡}| d¡ |j	 
d¡ |j 
d¡ |jd	| d
 |d
 f|jd|jtdd�d� d S )Nr   re   r±  )g…ëQ¸@r|   r   )r  r’   rº   rº   r¹   Fr¤   ro  rö  rì  )rí  )r-  r.  r/  r0  rN  )rP   rÂ   rñ  rÃ   r   r   rp   rð  rÇ  rA   r•  rD   r1  Z	transDatarç   r•  )r-   r*   r   r   Zaxinsr   r   r   Útest_annotate_across_transforms(  s    
þrû  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 )Nr   r   ©re   r´   T)r’  rj  c                 S   s8   t jdd�� d|  W  d   ƒ S 1 s*0    Y  d S ©NrÊ  rË  r   ©rP   rÎ  rª  r   r   r   Úinvert=  s    z!test_secondary_xy.<locals>.invertr	  r   r¹   ©Z	functionsr  c                 S   s   d|  S ©Nr   r   rª  r   r   r   r*  I  r�   z#test_secondary_xy.<locals>.<lambda>c                 S   s   | d S r  r   rª  r   r   r   r*  I  r�   rª  c                 S   s   | d S r  r   rª  r   r   r   r*  J  r�   c                 S   s   | d S )Nr’   r   rª  r   r   r   r*  J  r�   rH  )r   r   r
  rp   rP   rU   Úsecondary_xaxisÚsecondary_yaxis)r   r  rÿ  Únnr   Úsecaxr   r   r   Útest_secondary_xy9  s    r  c                  C   sÐ   t  ¡ \} }| t dd¡t dd¡¡ t t¡�" |jddd„ d� W d   ƒ n1 sZ0    Y  t t¡� | d¡ W d   ƒ n1 sŽ0    Y  t t¡� | 	d¡ W d   ƒ n1 sÂ0    Y  d S )	Nr   r	  r¹   c                 S   s   d|  S r$  r   rª  r   r   r   r*  R  r�   z%test_secondary_fail.<locals>.<lambda>r   r'   r8   )
r   r   rp   rP   rU   r}   r~   rè  r  r  r   r   r   r   Útest_secondary_failN  s    0(r  c                  C   sr   t jdd�\} }| t dd¡t dd¡¡ dd„ }|jd||fd� | j ¡  |  d	¡ t	| 
¡ jg d
¢ƒ d S )Nrü  r   r   r	  c                 S   s8   t jdd�� d|  W  d   ƒ S 1 s*0    Y  d S rý  rþ  rª  r   r   r   rÿ  ]  s    z%test_secondary_resize.<locals>.invertr#   r   )r|  rÚ   r>  )r   r   rp   rP   rU   r  rî  rÌ   rC  r   rË  rÐ  )r   r   rÿ  r   r   r   Útest_secondary_resizeY  s    

r  c                  C   sÎ   t jdd�\} }| t dd¡t dd¡¡ dd„ }|jd||fd�}t|j ¡ t	j
ƒs\J ‚| ¡  t|j ¡ t	jƒszJ ‚| d	¡ t  ¡  t|j ¡ t	jƒs¢J ‚| d
¡ t  ¡  t|j ¡ t	j
ƒsÊJ ‚d S )Nrü  r   r   r	  c                 S   s8   t jdd�� d|  W  d   ƒ S 1 s*0    Y  d S rý  rþ  rª  r   r   r   rÿ  k  s    z'test_secondary_minorloc.<locals>.invertr#   r   rØ   r  )r   r   rp   rP   rU   r  r­   Z_axisZget_minor_locatorr«   ZNullLocatorr  ZAutoMinorLocatorr  rÌ   Z
LogLocator)r   r   rÿ  r  r   r   r   Útest_secondary_minorlocg  s*    
ÿ
ÿ

ÿ

ÿr	  c                  C   sT   t  ¡ \} }| d¡ | d¡}|j t ¡ ¡ | j 	¡  t
|j ¡ tjƒsPJ ‚d S )NrØ   r#   )r   r   r  r  rA   rª   r«   ZScalarFormatterrî  rÌ   r­   r®   )r   r   r  r   r   r   Útest_secondary_formatter  s    


ÿr
  c                 C   sd  | 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g d¢ƒ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|   )r8  rv  rà   rß   rÞ   rÝ   r2  )r8   r#   r9   r'   r™   r‘   r²  r   r\  r   )rî  rÌ   r£  r
  rA   rD   rÛ  r   r6  r¼  r½  r8  rv  rä   r–  r¤  )r   r   r¦  Úbbaxisr  ZaxxrÝ  ZaxisrÚbbspinesru   ZspinerrÐ  ÚbbaxrÞ  Úbbtbr   r   r   Úcolor_boxes‰  sP    


ý
ý
ý

ý
r  c                  C   sn  t ddiƒ�H tjddd�\} }| j ¡  t | ¡ t| |ƒ\}}}}W d   ƒ n1 sZ0    Y  g d¢g d¢g}t|ƒD ]*\}}tj	j
|| Ž }	t|j|	jdd	� q|g d
¢g d¢g d¢g d¢g}t|ƒD ]*\}}tj	j
|| Ž }	t|j|	jdd	� qÌg d¢}tj	j
|Ž }	t|j|	jdd	� g d¢}tj	j
|Ž }	t|j|	jdd	� | ¡  | j¡j}
t|
| ¡ jdd	� d S )Nú_internal.classic_modeFr±  ©r  r  ©rQ  r’  )g     Ø^@gŒã8ŽãøR@g     ºŽ@g     €@@)gŽã8Žã`U@gþÿÿÿÿÿX@g     °J@g     �@r   )Údecimal©ç     Àb@ç-²�ïÿ]@ç     �@çF¶óýÔ8&@©r  g     à�@r  r#  ©r  çNÑ‘\þÿ]@r  ç      Ž@©g½R–!Ž³�@r  r  r  ©r  gþÿÿÿÿÿ]@r  r  )gÔ+eâ`U@gb„ðhãøR@g{®Gáè�@g{®GáÈ�@)r   r   r   rî  rÌ   r  r  r
  rá  ÚBboxÚfrom_boundsr   râ  rË  ZtransformedÚtransFigurer¤  )r   r   r  r  r  r  rÇ  r  r]  ÚtargetbbZaxbbr   r   r   Útest_normal_axes·  s6    

0þür#  c            
      C   s&  t ddiƒ�L tjddd�\} }| j ¡  |jg g d� t| |ƒ\}}}}W d   ƒ n1 s^0    Y  t|ƒD ]\}}|d u spJ ‚qpg d¢g d¢g d	¢g d
¢g}t|ƒD ]*\}}tj	j
|| Ž }	t|j|	jdd� qªg d¢}tj	j
|Ž }	t|j|	jdd� g d¢}tj	j
|Ž }	t|j|	jdd� d S )Nr  Fr±  r  r  ©ZxticklabelsZyticklabelsr  r  r  r  r%  ©Zatolr  )r  ç      ^@r  r  )r   r   r   rî  rÌ   rq   r  r
  rá  r  r   r   râ  )
r   r   r  r  r  r  r  r]  rÇ  r"  r   r   r   Útest_nodecoratorÞ  s*    
0ür'  c            
      C   s  t ddiƒ�Z tjddd�\} }|jg g d� |jj d¡ | j ¡  t	| |ƒ\}}}}W d   ƒ n1 sl0    Y  g d¢g d	¢g d
¢g d¢g}t
||ƒD ]&\}}tjj|Ž }	t|j|	jdd� qœg d¢}tjj|Ž }	t|j|	jdd� g d¢}tjj|Ž }	t|j|	jdd� d S )Nr  Fr±  r  r  r$  )rç  r  )r  ç      8@r  g£s~Šã8&@r  r  r  r%  r%  r  )r  r(  r  g     €�@)r   r   r   rq   r–  r8   r™  rî  rÌ   r  r=  rá  r  r   r   râ  )
r   r   r  r  r  r  ÚtargetsrÇ  Zbbspiner"  r   r   r   Útest_displaced_spineü  s(    
0ür*  c               	   C   sî   g d¢g d¢gg d¢g d¢gg d¢g d¢gg} t g d¢ƒ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 d  ƒ q:1 sÞ0    Y  q:dS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    )r  r&  r  çÔ+eâ8&@)r  r&  r  r  )r  g†ZÓ¼ã8[@r  ç�ã8Žã8&@)gœÄ °r\a@rë  r  r  )r  gÅqÇqœ\@r  r,  )gä8Žã8b@r  r  r  )r¯  rÔ  Zinoutr  Fr±  r  r  rÕ  r   r   r%  r%  N)r
  r   r   r   rš  rî  rÌ   r  rá  r  r   r   râ  )r)  ZdnumÚdirsr   r   r  r  r  r  r  rµ   r"  r   r   r   Útest_tickdirs  s*    ÿÿÿü
ÿr.  c            	      C   sr  t ddiƒ��N tjddd�\} }| j ¡  |jddd� t| |ƒ\}}}}t| |ƒ\}}}}g d	¢g d
¢g}tdƒD ].}tj	j
|| Ž }t||d  j|jdd� qvtjddd�\} }| j ¡  |jddd� | ¡  |jdddd� | j ¡  t| |ƒ\}}}}g d¢g d¢g}tdƒD ]0}tj	j
|| Ž }t||d  j|jdd� �qW d   ƒ n1 �sd0    Y  d S )Nr  Fr±  r  r  ri   rÔ  )rS  r°  )r  gŒã8Žã8[@r  r,  )gC­iÞq\a@r  r+  r  r   r%  r%  rQ  r‰   r  )r  gPUUUUUB@r  gVUUUUÕT@)g‘z6«ªP@r&  goð…ÉTÕT@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   Útest_minor_accountedfor-  s:    
ÿÿ

ÿÿr/  c                 C   sR   |   d¡ d¡ |  d¡ d¡ |   d¡}| d¡ | d¡ |  d¡ d¡ d S )Nrú   FrÚ  rû   TÚon)r‡   r  r9  r   r   r   Útest_axis_bool_argumentsL  s    


r1  c                  C   sr   t  ¡ \} }d}d}d}d}| ||||g¡}t|ƒ||||fksFJ ‚||f| ¡ ksZJ ‚||f| ¡ ksnJ ‚d S )Nr´   re   r¼   rŽ  )r   r   r  rÅ  rr   rs   )r   r   rN   rO   r»  r¼  r¬  r   r   r   Útest_axis_extent_argX  s    r2  c                  C   s~   t  dd„ tddƒD ƒ¡} t  g d¢¡}t j |d¡}t ¡ \}}| | |¡ t 	t  
d¡¡}| ¡ d| d	| fkszJ ‚d S )
Nc                 S   s   g | ]}t   d d|¡‘qS )r&  r   r™  r©  r   r   r   r�   k  r�   z(test_datetime_masked.<locals>.<listcomp>r   r  r\  r   r}  g    H&Ag    šd&A)rP   rñ   r    r   rý  r   r   rp   rb  rc  r~  rr   )r-   r*   r  r   r   rX  r   r   r   Útest_datetime_maskedh  s    r3  c                  C   sD   t jg d¢g d¢gdd�\} }} |d dks0J ‚|d dks@J ‚d S )	Nrh  )r|   rÚ   r´   r  rV  r)  r   r   rc   r  )r   r  ©rF  r»  r   r   r   Útest_hist_auto_binsu  s     r5  c            
      C   s’   t  d¡\} \}}g d¢}|tjg }| |¡\}}}tjdd��  | |¡\}}	}W d   ƒ n1 sh0    Y  tj ||¡ tj ||	¡ d S )Nr   rh  rÊ  r  )r   r   rP   rÏ  r  rÎ  rœ   r   )
r   rÉ   rÐ   r+  Znan_datar»  rJ  rF  ZnanbinsZnanedgesr   r   r   Útest_hist_nan_data{  s    .r6  c                  C   sD   t jtj d¡dddd�\} }} |d dks0J ‚|d dks@J ‚d S )	Nre   rV  rL  T)r    r!  r   rc   r   )r   r  rP   rQ   r†   r4  r   r   r   Útest_hist_range_and_density‰  s
    ÿr7  c            
      C   sz   t  ¡ \} }g d¢}|j|||ddd�}|jj\}}}|jD ]8}|D ]}|j|jksDJ ‚qD|D ]}	|	j|jks^J ‚q^q<d S )Nrh  r´   r|   )r-   rv  rÙ  r·  r2  )r   r   r¯  rt  r>  rå   r2  )
r   r   r-   ZbarcontZ	data_lineZcaplinesZbarlinecolsr¯  ZcaplineZ
barlinecolr   r   r   Útest_bar_errbar_zorder�  s    
r8  c                  C   s6   t  ¡ \} }| ¡  | ddg¡ | ¡ dks2J ‚d S )Nrº   r«  rö  )r   r   rÆ  r  rr   r   r   r   r   Útest_set_ticks_invertedŸ  s    r9  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srJ ‚d S )NrM  r   r  rª  rØ   ré  Úlogit)çF]tÑE·?gœî£'^P?r   rÂ  ©r¢  rg   rº  rh   rf   rÄ  r   r   )r   r¡   r‡   rp   rq   ró   r!  Ztransform_bboxrË  rv  r8  r}   Úapprox)r   r   r¦   r   r   r   Ú$test_aspect_nonlinear_adjustable_box¦  s    þ
r>  c                  C   s„   t jdd�} |  g d¢¡}| ddgddg¡ |jdddd	d
dd� | d¡ | ¡  | ¡ t 	ddg¡kspJ ‚| 
¡ d	ks€J ‚d S )NrM  r   r_  r  rª  rØ   )r   r»   r:  )gûÙbeøF„?r;  r   rÃ  r<  r   gS[Ú:XL	@g'ò�InŸ?@)r   r¡   rò   rp   rq   ró   rä  rr   r}   r=  rs   r   r   r   r   Ú(test_aspect_nonlinear_adjustable_datalim³  s    þ
r?  c                  C   s°   t  ¡ \} }| ¡ }| ddg¡ | d¡ t  ¡ \}}| d¡ | ddgddg¡ |jdd	d
� | j ¡  |j ¡  | 	¡ }| 	¡ }| 	¡ }t
|j|jƒ t
|j|jƒ d S )Nr7  iX  r   r   r   r  r�  ru  rÂ  rÆ  )r   r   rÇ   rp   Úset_box_aspectró   rÇ  rî  rÌ   rË  r   rÐ  )rä  rÉ   Zaxtwinrå  rÐ   Úbb1ZbbtrÞ  r   r   r   Útest_box_aspectÂ  s    



rB  c                  C   s’   t  ¡ \} }| g d¢¡ | j ¡  | d¡ t  ¡ \}}| d¡ |j ¡  | g d¢¡ | j ¡  |j ¡  | ¡ }| ¡ }t|j|jƒ d S )N)r¸   r¸   rn  r¹   r–   )	r   r   r™  rî  rÌ   r@  rË  r   rÐ  )rä  rÉ   rå  rÐ   rA  rÞ  r   r   r   Útest_box_aspect_custom_positionÜ  s    





rC  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 )Nr   r|   r   )rÍ  T)r“  rj  r   )r   r   r•  rî  rÌ   r£  r  r¤  rs  r8  rv  r   )r   r  r¦  rä  r   rÝ  r   r   r   Útest_bbox_aspect_axes_initó  s    ÿ




rD  c                  C   s4   t  dd¡\} }| g d¢¡ | j ¡  | ¡  d S )Nr   rh  )r   r   rp   rî  rÌ   Zredraw_in_framer   r   r   r   Útest_redraw_in_frame  s    
rE  c                  C   sB   t  ¡ \} }| j d¡d us J ‚| d¡ | j d¡d u s>J ‚d S )N)r±  r±  F)r   r   rî  Zinaxesr•  r   r   r   r   Útest_invisible_axes	  s    
rF  c                  C   s<   dt jd< t  ¡ } | j ¡ }|D ]}|j ¡ dks J ‚q d S ©Nrø  zlines.markeredgecolor)r   rŸ   rç  rA   Úget_major_ticksr}  Úget_markeredgecolor©r   Zticksr¢  r   r   r   Ú"test_xtickcolor_is_not_markercolor  s
    

rK  c                  C   s<   dt jd< t  ¡ } | j ¡ }|D ]}|j ¡ dks J ‚q d S rG  )r   rŸ   rç  rD   rH  r}  rI  rJ  r   r   r   Ú"test_ytickcolor_is_not_markercolor  s
    

rL  r  rV  )TFNc           
      C   s¬   t  ¡ \}}t d¡}t ddd¡}| ||¡ t|d| › d�ƒ}t|d| › d�ƒ}t|d| › d�ƒ}|d u rt|ƒ n|}	|d	|d
� |	|ƒ ks’J ‚|j ¡  t	|ƒ d	ƒ d S )Nr»   r  r¸   Zget_autoscaleZ_onrÖ   ZlimÚget_)r  r’   )rV  )
r   r   rP   rU   rÂ   r   rá   rî  rÌ   r   )
r  rV  r   r   r-   r*   Zget_autoscale_onZset_limZget_limZ	post_autor   r   r   Útest_unautoscale!  s    

rN  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   r   r   r»   ée   )r‡   rp   rP   rÄ   Úget_pathZ_interpolation_stepsrÂ   )r3   r4   ré  r   r   r   Ú)test_polar_interpolation_steps_variable_r5  s
    $
ÿrQ  c                  C   s6   t  ¡ \} }| dd¡ | j ¡  | ¡ dks2J ‚d S )Nr   g•Ö&è.>)r   gƒ”õæò	>)r   r   r¯  rî  rÌ   rs   r   r   r   r   Útest_autoscale_tiny_sticky=  s    
rR  c                  C   sX   dt jd< dt jd< t  ¡ } | j ¡ }|D ](}|j ¡ dks@J ‚|j ¡ dks*J ‚q*d S )Nrs  zxtick.colorr—   zxtick.labelcolor)r   rŸ   rç  rA   rH  r}  r§  r~  rJ  r   r   r   Ú&test_xtickcolor_is_not_xticklabelcolorE  s    


rS  c                  C   sX   dt jd< dt jd< t  ¡ } | j ¡ }|D ](}|j ¡ dks@J ‚|j ¡ dks*J ‚q*d S )Nrs  zytick.colorr—   zytick.labelcolor)r   rŸ   rç  rD   rH  r}  r§  r~  rJ  r   r   r   Ú&test_ytickcolor_is_not_yticklabelcolorO  s    


rT  rû  c                 C   s   g | ]}|d ur|‘qS rË   r   )rŒ   rû  r   r   r   r�   Y  s   ÿr�   )r�  re   r7  c                 C   st   | t jd< | t jd< t ¡ \}}|j ¡  tddg|j|jgƒD ].\}}| 	¡ D ]}|j
 ¡ | |¡ksPJ ‚qPq@d S )Nzxtick.labelsizezytick.labelsizer-   r*   )rƒ   rŸ   r   r   rî  rÌ   r=  rA   rD   rH  r~  r  Z_get_tick_label_size)rû  r   r   Únamer  r¢  r   r   r   Útest_relative_ticklabel_sizesY  s    


rV  c                  C   s\   t  ¡ } | jdddd�\}}| g d¢g d¢¡ | dd¡ | ¡ }t |d	d
g¡sXJ ‚d S )Nr   r   r  r  r  )r   r|   r   r|   rÅ  r´   r’   r×  )r   r¡   r   r   r¥  rr   rP   rL  )r   rÉ   rÐ   rg   r   r   r   Útest_multiplot_autoscaleg  s    rW  c                  C   sX   t  ¡ } |  d¡}| jg d¢|d�}| ¡ }| jdd� | ¡  ¡ | ¡ k ¡ sTJ ‚d S )NrE  )rª  rª  rº   rº   r  r   )r9   )r   r¡   r‡   rò   rË  rJ  rç  r  )r   r  rÉ   Zinit_posr   r   r   Ú$test_sharing_does_not_link_positionsp  s    
rX  c                 C   sz  t  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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   rc   r  r|   re   rq  rÚ   r‚  )
rP   rñ   r   rp   rl   r   r  r  rU   r¯  )r3   r4   r˜   r  r   r   r   Útest_2dcolor_ploty  s    
"""&
"""rY  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 )Nr#  r   r%  TrD  )rP   rU   rÄ   rÃ   r   r  rp   r­  )r3   r4   r-   r*   r  r   r   r   r   Útest_shared_axes_clearŒ  s    


rZ  c                  C   s¢   t jddddd�\} }|jD ]}| ddgd¡ q|d  g d¢¡ |jD ]}| ¡ |d  ¡ ksJJ ‚qJ|d  g d¢¡ |jD ]}| ¡ |d  ¡ ks€J ‚q€d S )	Nr   r  rD  r   zo-r  )r  r   r   r‘   )r  r   r   r³  )r   r   r  rp   r  rr   r  rs   rE  r   r   r   Útest_shared_axes_retick›  s    


r[  r+   )r9   r@   r'   c                 C   sD   t ƒ }| ¡ }|jdd| d� |j d¡ |j ¡  ¡ | ks@J ‚d S )NÚtestr   r)   r'   )r   r   r   rD   Zset_label_positionrB   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sNJ ‚|d  ¡ dksbJ ‚|d  ¡ dksvJ ‚|d j|d |d fks”J ‚|d  ¡ dks¨J ‚|d  ¡ dks¼J ‚d S )	Nr   r   r|   éüÿÿÿr   r@   r8   r#   ©r   rþ   r¯  Ú	bar_labelr-  r   r  ©r   rà  ZheightsrÏ  r  r   r   r   Ú test_bar_label_location_vertical³  s    
rb  c                  C   sÀ   t  ¡ } ddgddg }}|  ||¡}|  |¡}|d j|d |d fksNJ ‚|d  ¡ dksbJ ‚|d  ¡ dksvJ ‚|d j|d |d fks”J ‚|d  ¡ dks¨J ‚|d  ¡ dks¼J ‚d S )	Nr   r   r|   r^  r   r9   r@   r'   ©r   rþ   rÁ  r`  r-  r   r  ©r   rá  r/  rÏ  r  r   r   r   Ú"test_bar_label_location_horizontalÀ  s    
re  c                  C   sÌ   t  ¡ } ddgddg }}|  ||¡}| j|dd�}|d j|d d |d fksVJ ‚|d  ¡ dksjJ ‚|d  ¡ dks~J ‚|d j|d d |d fks J ‚|d  ¡ dks´J ‚|d  ¡ dksÈJ ‚d S )Nr   r   r|   r^  r@   )Z
label_typer   rc  rd  r   r   r   Útest_bar_label_location_centerÍ  s    ""rf  c                  C   sÌ   t  ¡ } ddgddg }}| j||dd�}|  |¡}|d j|d |d d fksVJ ‚|d  ¡ dksjJ ‚|d  ¡ dks~J ‚|d j|d |d d fks J ‚|d  ¡ dks´J ‚|d  ¡ d	ksÈJ ‚d S )
Nr   r   r|   r^  )rÙ  r   r@   r8   r#   r_  ra  r   r   r   Ú!test_bar_label_location_errorbarsÚ  s    
""rg  c                  C   sV   t  ¡ } |  ddgddg¡}| j|dd�}|d  ¡ dks>J ‚|d  ¡ d	ksRJ ‚d S )
Nr   r   r|   r^  rþ  )r²   r   z3.00z-4.00©r   rþ   r¯  r`  rŽ  ©r   rÏ  r  r   r   r   Útest_bar_label_fmtç  s
    rj  c                  C   sZ   t  ¡ } |  ddgddg¡}| j|ddgd�}|d  ¡ dksBJ ‚|d  ¡ dksVJ ‚d S )	Nr   r   r|   r^  r]  r^  )r  r   rh  ri  r   r   r   Útest_bar_label_labelsï  s
    rk  c                  C   sl   t  ¡ } |  ddgtjdg¡}|  |¡}dd„ |D ƒddgksBJ ‚|d jd	ksTJ ‚|d  ¡ d
kshJ ‚d S )Nr   r|   r   c                 S   s   g | ]}|  ¡ ‘qS r   r�  )rŒ   ré  r   r   r   r�   û  r�   z,test_bar_label_nan_ydata.<locals>.<listcomp>r¤   Ú1r   rj  r8   )r   rþ   r¯  rP   rÏ  r`  r-  r  )r   r  r  r   r   r   Útest_bar_label_nan_ydata÷  s    
rm  c               	   C   sp   t  ¡ \} }| t 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   rc   r„  rR  rë  r¸   gffffffþ?r¼   r   r   gÍÌÌÌÌÌà¿rÇ  r1  )r   r   r4  r5  ZWedgerP   rÃ   rÄ   rœ   Zassert_array_almost_equal_nulprñ   ZdataLimrâ  )r   r   Zbotr   r   r   Útest_patch_bounds   s    "ÿrn  c               	   C   sL   t jtdd��* tjdgdgddddd�} W d   ƒ n1 s>0    Y  d S )	Nz!You passed a edgecolor/edgecolorsrj  r   r†  r  rp  r]  )r^   r3  rÞ   rß   )r}   rr  rs  r   r   r  r   r   r   Ú test_warn_ignored_scatter_kwargs  s    ÿÿro  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€J ‚tˆ jƒ|gks”J ‚tˆ jƒ|ks¦J ‚tˆ jƒ|gksºJ ‚ˆ jrÄJ ‚tˆ jƒ|gksØJ ‚ˆ jd |d u sîJ ‚ˆ jd	 |d	 u �sJ ‚tjtd
d��" ˆ jt|ƒd   W d   ƒ n1 �s>0    Y  tjtdd�� ˆ jd	= W d   ƒ n1 �sv0    Y  tjtdd�� ˆ jd	d …= W d   ƒ n1 �s²0    Y  tjtdd�� ˆ jdd …= W d   ƒ n1 �sî0    Y  tjtdd�� ˆ jd= W d   ƒ n1 �s&0    Y  | ¡  ˆ j�rDJ ‚| ¡  ˆ j�rXJ ‚| ¡  ˆ j�rlJ ‚| ¡  ˆ j�r€J ‚ˆ j�rŒJ ‚ˆ j�r˜J ‚tjtdd��  ˆ j |d ¡ W d   ƒ n1 �sÎ0    Y  tˆ jƒ|d gk�sòJ ‚tjtdd��  ˆ j |d	 ¡ W d   ƒ n1 �s(0    Y  tˆ jƒ|dd … k�sNJ ‚tjtdd��" ˆ j d|d ¡ W d   ƒ n1 �s†0    Y  tˆ jƒ|d |d |d	 gk�s¶J ‚tjtdd�� |d ˆ jd< W d   ƒ n1 �sê0    Y  tˆ jƒ|d |d |d	 gk�sJ ‚tjtdd��& |dd… ˆ jdd…< W d   ƒ n1 �sV0    Y  tˆ jƒ|k�stJ ‚ˆ jg d¢ g |¢d‘d‘d‘k�sœJ ‚g d¢ˆ j dddg|¢k�s¾J ‚d S )Nc              	      s&   g | ]}ˆ   t ||d  ¡¡d ‘qS )r´   r   )rp   rP   rU   rÄ  r¯  r   r   r�     r�   z(test_artist_sublists.<locals>.<listcomp>r  r´   )r´   r´   r  r   rK  rc   zout of rangerj  r   z'modification of the Axes.lines propertyr6  rh  r   r|   )r   r   r    r   rP   rU   rn   rY  r4  r5  r6  rÂ  r"  rÞ  Zimagesr>  rå   Ztablesr  r}   r~   Ú
IndexErrorrÐ  rr  r   r“  rí  Úinsert)r   r>  r‰  rð  rÎ   rÂ  r   r¯  r   Útest_artist_sublists  sŠ    
2ÿ(ÿ,ÿ,ÿ(ÿ0ÿ0ÿ2&ÿ.&ÿ6(rr  c                  C   sh   t  d¡} t  d¡}t ¡ \}}| | |¡}t|ƒdks<J ‚t ¡ \}}| g g ¡}t|ƒdksdJ ‚d S )Nre   )re   r   r   r   )rP   rj   r   r   rp   rÐ  )r-   r*   rF  r   r4  r   r   r   Útest_empty_line_plotsa  s    

rs  c                  C   s\   t  ¡  ¡ } | j| j| j| jfD ]6}d}|ddgddgg|d�j}|j|j	f|ks J ‚q d S )N)r|  r�  r   r   r   r|   )Úclim)
r   r¡   r‡   rn   r!  r   rA  ræ  rÂ  rÃ  )r   Zplot_methodrt  ræ  r   r   r   Ú	test_climo  s
    ru  )Nr   (  rÞ  r   r`  r  r   r–  Ú	itertoolsr   Úplatformr  r   Zdateutil.tzrÝ  ÚnumpyrP   r   r   r}   r>   rƒ   Zmatplotlib.testing.decoratorsr	   r
   r   Zmatplotlib.colorsr7  ré  Zmatplotlib.datesrú  rb  Zmatplotlib.figurer   Zmatplotlib.font_managerZfont_managerZmfont_managerZmatplotlib.markersr0  r|  Zmatplotlib.patchesrå   r5  Zmatplotlib.pyplotZpyplotr   Zmatplotlib.tickerZtickerr«   Zmatplotlib.transformsZ
transformsrá  Znumpy.testingr   r   r   r   Zmatplotlib.cbookr   r   r7   r=   r?   rE   rZ   rx   r�   rˆ   r£   r°   r³   rÊ   rÒ   rÑ  rÒ  rê   rö   rù   r  r  r  r„   rÐ  r  r  r  r"  r5  rD  rG  rJ  rP  ri  ru  rz  r�  rŠ  r�  r™  r£  r¦  r®  r°  r¶  rÁ  rÄ  rÉ  rÒ  rÖ  rÛ  râ  rë  rð  rY  rU   rò  rõ  rþ  r  r  r  r  r#  r/  r8  rS  rT  rZ  r_  rc  rd  rf  rj  rq  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'  rc  r,  r.  ZPatchr2  r>  rB  r0  rE  rH  rP  rQ  rT  rV  rX  rZ  r[  ri  rn  rp  ru  ry  r}  r~  r€  r�  rÓ  rÔ  rñ   rÖ  r•  rØ  rÙ  rã  ræ  rè  rê  rë  rð  r÷  r  r  r	  r  r  r  r  r  r  r  r   r"  r#  r$  r%  r&  r'  r(  r*  r,  r-  r0  r1  r2  r4  r5  r?  rA  rC  rD  rF  rK  rO  rT  rV  rW  rZ  r[  r_  rh  rk  rl  rm  rp  rs  rt  rv  rw  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*  r-  r.  r1  r3  r4  Úmachiner7  r:  r>  rB  rD  rE  rP  rS  rU  rV  rÏ  rJ  rW  r]  rb  rc  r|  r~  r�  r…  rˆ  r‰  r�  r‘  r’  r”  rœ  r�  r§  rª  r®  r¹  rº  r6  rW   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  r:  r;  r?  r@  ÚimageZ	AxesImager    ZPcolorImagerQ   ZQuadMeshrl   r†   rC  rF  rG  rH  rK  rL  rN  rP  rQ  rR  rT  rU  Zfixturer]  r`  ra  rb  rd  re  rf  rh  ri  rl  ro  rp  ru  rw  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/  r1  r2  r3  r5  r6  r7  r8  r9  r>  r?  rB  rC  rD  rE  rF  rK  rL  rN  rQ  rR  rS  rT  Zfont_scalingsrV  rW  rX  rY  rZ  r[  r]  rb  re  rf  rg  rj  rk  rm  rn  ro  rr  rs  ru  r   r   r   r   Ú<module>   sŽ  











'
*
2


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

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


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

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

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

	
	
	
	
	
	


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

,ÿ

ÿ


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