
    
3j0g                    T   S SK r S SKJrJr  S SKrS SKJr  S SKJr  S SK	r	S SK
r
S SKrS SKJr  S SKrS SKrS SKrS SKJr  S SKrS SKrS SKrS SKJr  S SKJr  S SKrS SKrS SKrS S	KJrJr  S SKJ r!  S SK"J#r$  S S
K%J&r&  S SK'J(r(  S SK)J*r*  S SK+J,r,  S SK-J.r.  S SK/J0r1  S SK2J3r4  S SK5J6r7  S SK8J9r:  S SK;J<r<  S SK=J>r>  S SK?J@rA  S SKBJCrD  S SKEJFrG  S SKHJIrJ  S SKKJLrM  S SKNJOrOJPrPJQrQ  S SKRJSrSJTrTJUrU  S SKVJWrW  \T" 5       S 5       rXS rYS rZ\T" 5       S 5       r[\T" 5       S 5       r\\T" 5       S 5       r]S r^\T" 5       S 5       r_\T" 5       S 5       r`\T" 5       S 5       raS rb\T" 5       S 5       rc\S" \d" S S!5       V s/ s H
  n S"U S# S$3PM     sn S%\R                  S&:X  a  S'OS S(9S) 5       reS* rfS+ rg\S" S,/S%S-9S. 5       rhS/ ri\R                  R                  S0S15      S2 5       rl\R                  R                  S0S15      \T" S3S49S5 5       5       rm\S" S6/S7\R                  " 5       S8:X  a  S OS9S(9S: 5       roS; rp\R                  R                  S0S15      S< 5       rq\R                  R                  S0S15      S= 5       rr\R                  R                  S0S15      S> 5       rsS? rtS@ ruSA rv\T" 5       SB 5       rw\S" SC/SDS7SE9SF 5       rx\R                  R                  SG5      SH 5       r{\R                  R                  SG5      SI 5       r|\R                  R                  SG5      SJ 5       r}\T" 5       SK 5       r~\S" SL/SDS%SE9SM 5       r\S" SN/SDS%SE9SO 5       rSP rSQ rSR r\S" SS/SDS%SE9ST 5       r\S" SU/SDS7SE9SV 5       rSW rSX rSY rSZ r\S" S[/S\S]0S%S^9S_ 5       rS` r\T" 5       Sa 5       rSb r\S" ScSc/S%S-9Sd 5       r\T" 5       Se 5       rSf r\S" Sg/SDS%SE9Sh 5       r\S" Si/S%S-9Sj 5       r\S" Sk/S%S-9Sl 5       r\S" SmSm/SDS7SE9Sn 5       rSo rSp r\S" Sq/SDS7SE9Sr 5       rSs r\S" St/S%S-9Su 5       rSv r\S" Sw/S%SDSx9Sy 5       rSz r\T" 5       S{ 5       rS| r\S" S}/S%S-9S~ 5       r\R                  R                  SG5      \R                  R                  S/ SQ5      \T" 5       S 5       5       5       r\S" SS/SDS%SE9S 5       r\S" S/S%\R                  " 5       S8:X  a  S OSS(9S 5       rS r\S" S/SDS7SE9S 5       r\R                  R                  S\GRJ                  " S5      SS4\GRL                  " SSS5      \GRJ                  " S5      S4\GRL                  " SSS5      S\GRJ                  " S5      4// SQS9S 5       r\R                  R                  S\GRJ                  " S5      SS4\GRL                  " SSS5      \GRJ                  " S5      S4\GRL                  " SSS5      S\GRJ                  " S5      4// SQS9S 5       r\S" S/SDS7\R                  " 5       S8:X  a  S OSS9S 5       r\S" S/S%SDSx9S 5       r\S" S/SDS7SE9S 5       r\S" S/S%S-9S 5       r\S" S/SDS7SE9S 5       rS r\S" S/SDS7\R                  " 5       S:X  a  SOS S9S 5       r\S" S/S7S-9S 5       r\S" S/SS/SDS7\R                  " 5       S:X  a  SOS S9S 5       r\R                  R                  SSS/5      \T" 5       S 5       5       r\T" 5       S 5       r\T" 5       S 5       r\S" S/S%S-9S 5       r\S" S/S%S-9S 5       r\T" 5       S 5       rS rS rS r\T" 5       S 5       r\T" 5       S 5       rS rS r\R                  R                  SSSD/5      \T" 5       S 5       5       r\S" S/S%\R                  " 5       S8:X  a  S OS'S(9S 5       r\S" S/SDSGSE9S 5       r\S" S/SDS7SE9S 5       rS r\S" S/SDS%SE9S 5       r\S" S/SDS%SE9S 5       r\S" S/SDS7SS9S 5       r\S" S/SDS7SE9S 5       r\S" S/SDS7SE9S 5       r\S" S/SGSDSx9S 5       r\S" S/SDS7SE9S 5       r\S" S/SDS7SE9S 5       r\S" SS/S%S-9S 5       rS rS r\S" S/S%S-9S 5       r\S" S/S%S-9S 5       r\T" 5       S 5       r\T" 5       S 5       r\T" 5       S 5       r\T" 5       S 5       rS rS r\S" S/S%S-9S 5       rS rS r\S" S/S%S-9S 5       r\T" 5       S 5       r\T" 5       S 5       r\T" 5       S 5       r\T" 5       S 5       rS rS rS rS rS rS rS r\R                  R                  SG5      \T" 5       S 5       5       r\R                  R                  SSS SS/S4/ SQ/ GS Q/ GSQ/ GSQS4/ SQ/ GS Q/ GSQ/ GSQS4/ SQ/ GS QGS/ GSQGS4/5      GS 5       rGS rGS r\S" GS/SDS7SE9GS	 5       r\T" 5       GS
 5       rGS rGS r\S" GS/SDS7SE9GS 5       rGS r\S" GS/SDS7SE9GS 5       r\S" GS/SDS7SE9GS 5       r\S" GS/S%S-9GS 5       rGS rGS r\R                  R                  GS\RF                  GR                  GS GS // GSQS9GS 5       r\R                  R                  GS/ S 4/ /S 4/ / /S4/5      GS 5       r\R                  R                  GSGS \Rl                  GR                  GR                  4GS!\GR                  RX                  GR                  4GS"\Rl                  GR                  GR                  4/5      GS# 5       rGS$ rGS% r\T" 5       GS& 5       r\T" 5       GS' 5       r\T" 5       GS( 5       Gr \T" 5       GS) 5       GrGS* GrGS+ GrGS, GrGS- GrGS. Gr\S" GS//S%SDSx9GS0 5       Gr\S" GS1/S%S-9GS2 5       Gr\T" 5       GS3 5       Gr	GS4 Gr
\S" GS5/SDS%SE9GS6 5       Gr\S" GS7/S%\R                  " 5       S8:X  a  S OGS8S(9GS9 5       Gr\S" GS:GS:/SDS%SE9GS; 5       Gr\S" GS</SDS%SE9GS= 5       GrGS> Gr\R                  R                  S%5      GS? 5       Gr " GS@ GSA5      GrGS+SGSB.GSC jjGr\" GSDGSE5      Gr\R                  R                  GSFG\" 5       G\" GSG\GR(                  " / GSHQ/5      GSI94G\" GSJGSK9G\" GSJ\GR(                  " / GSLQ/5      GSI94G\" GSJGSGGSI9G\" GSJ\GR(                  " / GSLQ/5      GSI94G\" GSGGSM9G\" GSG\GR(                  " / GSHQ/5      GSI94G\" GSGGSN/GSM9G\" GSGGSN/\GR(                  " / GSHQ/ GSOQ/5      GSI94/5      GSP 5       GrGCGC\R                  R                  GSQG\" 5       S4G\" GSGGSK9S4G\" GSJGSB9GSJ4G\" GSJGSN/GSB9GSJGSN/4G\" GSJGSR9GSJ4G\" GSSGSB9GSS4G\" GSTGSB9GST4G\" GSJGSNGSU9GSJ4G\" GSGGSJGSNGSV9GSJ4G\" GSJGSM9GSJ4G\" GSJGSNGSW9GSN4/5      GSX 5       GrGSY GrGSZGrGS[GS\GS]/GS^GS_/4/ GS`Q/ GSaQ// GSbQ/ GScQ/4/Gr\R                  R                  GSdG\5      GSe 5       Gr\R                  R                  GSdG\5      GSf 5       GrGSg GrGSh GrGSi GrGSj Gr GSk Gr!GSl Gr"\S" GSmGSm/S%S-9GSn 5       Gr#\S" GSo/SDS7SE9GSp 5       Gr$\T" 5       GSq 5       Gr%GSr Gr&GSs Gr'0 GSt 0 4GSu jGr(\S" GSv/S\GSw0SGS^9GSx 5       Gr)\S" GSy/S\GSw0SGS^9GSz 5       Gr*\S" GS{/S\GSw0SGS^9GS| 5       Gr+\S" GS}/S\GSw0SGS^9GS~ 5       Gr,\S" GS/SDS\GSw0SGGSGS9GS 5       Gr-\S" GS/S\GSw0SGS^9GS 5       Gr.\S" GS/SDS\GSw0SGGS9GS 5       Gr/\S" GS/SDS\GS0SGGS9GS 5       Gr0\S" GS/SDS\GSw0SGGS9GS 5       Gr1\S" GS/SDS\GSw0SGGS9GS 5       Gr2\S" GS/SDS\GSw0SGGS9GS 5       Gr3\S" GS/SDS\GSw0SGGS9GS 5       Gr4\S" GS/SDS\GSw0SGGS9GS 5       Gr5\S" GS/SDS\GSw0SGGS9GS 5       Gr6\T" 5       GS 5       Gr7\S" GS/SDS\GSw0SGGS9GS 5       Gr8\S" GS/SDS\GSw0SGGS9GS 5       Gr9\S" GS/SDS\GSw0SGGS9GS 5       Gr:\S" GS/SDS\GSw0SGGS9GS 5       Gr;\S" GS/SDS\GSw0SGGS9GS 5       Gr<\S" GS/SDS\GSw0SGGS9GS 5       Gr=\S" GS/SDS\GSw0SGGS9GS 5       Gr>\S" GS/SDS\GSw0SGGS9GS 5       Gr?\S" GS/SDS\GSw0SGGS9GS 5       Gr@GS GrAGS GrB\S" GS/S\GSw0SGS^9GS 5       GrC\S" GS/S\GSw0SGS^9GS 5       GrDGS GrE\S" GSGS/GSSGGS9GS 5       GrF\T" 5       GS 5       GrG\S" GS/S\GSw0SGS^9GS 5       GrH\S" GS/SDSGSE9GS 5       GrI\S" GS/SDS\GSw0SGGS9GS 5       GrJ\S" GSGS/SGS-9GS 5       GrKGS GrL\S" GS/S\GS0SDS SGGS9GS 5       GrM\S" GS/SDS\GSw0SGGS9GS 5       GrN\S" GS/SDS\GSw0SGGS9GS 5       GrOGS GrPGS GrQGS GrRGS GrS\S" GS/SDS\GSw0SGGS9GS 5       GrT\S" GSGS/S%S-9GS 5       GrU\S" GS/S%S-9GS 5       GrV\S" GS/S%S-9GS 5       GrW\S" GS/S%S-9GS 5       GrX\S" GS/S%S-9GS 5       GrY\S" GS/S%S-9GS 5       GrZ\S" GS/S%S-9GS 5       Gr[\S" GS/S%S-9GS 5       Gr\\S" GS/S%S-9GS 5       Gr]\S" GS/S%S-9GS 5       Gr^\S" GS/S%S-9GS 5       Gr_\S" GS/S%S-9GS 5       Gr`\S" GS/S%S-9GS 5       Gra\S" GS/S%S-9GS 5       Grb\S" GS/SDS%SE9GS 5       GrcGS GrdGS GreGS GrfGS GrgGS GrhGS GriGS GrjGS GrkGS GrlGS Grm\T" 5       GS 5       GrnGS GroGS Grp\T" 5       GS 5       Grq\T" 5       GS 5       GrrGS GrsGS GrtGS Gru\S" / GSQS%S-9GS 5       Grv\S" GS/SDS7SE9GS  5       GrwGS Grx\T" 5       GS 5       GryGS Grz\S" GS/S%S-9GS 5       Gr{GS Gr|GS Gr}GS Gr~GS	 Gr\T" 5       GS
 5       GrGS GrGS GrGS Gr\T" 5       GS 5       Gr\R                  R                  GS/ GSQ\GR(                  " / GSQ5      S /5      GS 5       GrGS Gr\T" 5       GS 5       Gr\T" 5       GS 5       Gr\S" GSGS/S%S-9GS 5       Gr\S" GS/S%S-9GS 5       Gr\S" GS/SDS7SE9GS 5       Gr\S" GS/S%S-9GS 5       Gr\S" GS/S%S-9GS 5       Gr\S" GS/S%SDSx9GS  5       GrGS! GrGS" GrGS# Gr\S" GS$/S%SDSx9GS% 5       GrGS& Gr\S" GS'/S%S-9GS( 5       Gr\S" GS)/S%S-9GS* 5       Gr\S" GS+/S%S-9GS, 5       Gr\S" GS-/SDS7SE9GS. 5       GrGS/ GrGS0 GrGS1 GrGS2 Gr\S" GS3/S%S-9GS4 5       Gr\R                  R                  GS5GS6/ GS7Q0GS8/ GS7Q0GS9/ GS:Q0GS;/ GS<Q0GS=/ GS>Q0GS?/ GS7Q045      \T" 5       GS@ 5       5       Gr\R                  R                  GSAGS"GSJGSBGSNGSC.GSBGSN4GS!GSJGSBGSNGSC.GSDGSN4GS"GSJGSNGSE.GSJGSN4GS!GSJGSNGSE.GSFGSN4GS"GSJGSBGSG.GSBGSH4GS!GSJGSBGSG.GSDGSJ4GS"GSBGSNGSI.GSBGSN4GS!GSBGSNGSI.GSDGSN4GS"GSJGSJ.GSJGSH4GS!GSJGSJ.GSFGSJ4GS"GSBGSK.GSBGSH4GS!GSBGSK.GSDGSL4GS"GSNGSM.GSLGSN4GS!GSNGSM.GSNGSN4GSOGS"0GSLGSH4GSOGS!0GSNGSL4/5      GSP 5       GrGSQ GrGSR GrGSS GrGST Gr\S" GSU/SDS7SE9GSV 5       Gr\S" GSW/SDS7SE9GSX 5       Gr\S" GSY/SDS7SE9GSZ 5       GrGS[ GrGS\ Gr\S" GS]/SDS7SE9GS^ 5       Gr\S" GS_GS_/SDS7SE9GS` 5       Gr\S" GSa/SDS7SE9GSb 5       Gr\R                  R                  GSc/ GSdQ5      GSe 5       GrGSf Gr\S" GSg/SDS7SE9GSh 5       GrGSi Gr\R                  R                  GSj/ // S S //S S // //5      \R                  R                  GSk/ GSlQ5      GSm 5       5       Gr\T" 5       GSn 5       Gr\S" GSo/SDS7SE9GSp 5       Gr\S" GSq/S%\R                  S&:X  a  GSrOS S(9GSs 5       Gr\S" GSt/SDS7SE9GSu 5       Gr\S" GSvGSw/S%\R                  S&:X  a  SOS S(9GSx 5       Gr\T" 5       GSy 5       Gr\T" 5       GSz 5       Gr\T" 5       GS{ 5       Gr\T" 5       GS| 5       GrGS} Gr\S" / GS~QS%S-9GS 5       GrGS Gr\S" / GSQS%S-9GS 5       GrGS Gr\R                  R                  GSjS SS\GR|                  GS/\R0                  GR                  / GSQGS5      /5      \T" 5       GS 5       5       Gr\S" GS/S%S-9GS 5       Gr\S" GSGS/SDS7GSS9GS 5       Gr\S" GS/SDS7SE9GS 5       GrGS Gr\S" / GSQSDGSSGGS9GS 5       Gr\S" / GSQSDGSSGGS9GS 5       Gr\S" / GSQSDGSSGGS9GS 5       GrGS Gr\T" 5       GS 5       GrGS Gr\S" / GSQSDS7GSS9GS 5       Gr\S" / GSQSDS7SE9GS 5       GrGS Gr\T" 5       GS 5       Gr\S" GS/SDS7\R                  " 5       S8:X  a  S OGSS9GS 5       Gr\S" GSGS/SDS7SE9GS 5       Gr\R                  R                  GS/ GSQ5      GS 5       GrGS GrGS GrGS Gr\T" 5       GS 5       Gr\R                  R                  S%5      GS 5       GrGS Gr\R                  R                  GS\AGR                  \AGR                  GS/\AGR                  \AGR                  GS//5      GS 5       GrGS GrGS GrGS GrGS GrGS Gr\R                  R                  GSG\GS0 GS4G\GS0 GS4G\S S/40 GS4G\G\" 5       GSS0GS445      GS 5       GrGS Gr\R                  R                  S0S15      GS 5       GrGS GrGS GrGS GrGS GrGS GrGS Gr\S" GS/S%S-9GS 5       Gr\S" / GSQS%S-9GS 5       Gr\S" GS/S%\R                  S&:X  a  GSOS S(9GS 5       Gr\S" GS/S%S-9GS 5       Gr\S" GS/S%S-9GS 5       Gr\S" GS/S%S-9GS 5       Gr\S" GS/S%S-9GS 5       Gr\S" GS/S%S-9GS 5       Gr\S" GS/S%GSS(9GS 5       GrGS GrGS GrGS GrGS GrGS GrGS Gr\T" 5       GS 5       Gr\T" 5       GS 5       GrGS Gr\R                  R                  GSGSGS/5      \R                  R                  GSSSD/5      GS 5       5       Gr GS Gr\S" GS/S%\R                  " 5       S8:X  a  S OS'S(9GS 5       GrGS Gr\T" 5       GS 5       GrGS GrGS GrGS GrGS Gr\S" GS/S%S-9GS 5       Gr	GS Gr
GS Gr\S" GS/S\GS0S%S^9GS 5       GrGS GrGS GrGS Gr\R                  R                  GSG\GS0 GS4G\GS 0 GS4G\G\" 5       SGS0GS4G\G\" 5       GSBGS0GS4G\GSS S S1.GS4G\GSSS 0GS4G\GS0 GS445      GS 5       GrGS GrGS GrGS GrGS	 GrGS
 GrGS GrGS GrGS Gr\S" GS/S\GSw0S%S^9GS 5       Gr\S" GS/S\GSw0S%S^9GS 5       GrGS GrGS GrGS GrGS Gr\R                  R                  GSGS\GR>                  GR@                  4GS\GR>                  GR@                  4\d" GS5      \d" GS5      4\GR>                  GR@                  4/ GSQ/ GSQ4\GR>                  GRB                  4\GRD                  GRE                  GS5      \GRD                  GRE                  GS5      4\R                  GRF                  4/5      \R                  R                  GSj\GRL                  " GS5      GRI                  GS5      \GRD                  GRK                  SGSS5      /5      GS 5       5       Gr&GS Gr'GS  Gr(GS! Gr)GS" Gr*GS# Gr+GS$ Gr,\R                  R                  GS5G\," 5       5      GS% 5       Gr-\S" GS&/SDS7SE9GS' 5       Gr.GS( Gr/GS) Gr0\R                  R                  GS*SDS/5      GS+ 5       Gr1\S" GS,/SDS7SS9GS- 5       Gr2\S" GS./SDS%GS/S9GS0 5       Gr3\R                  R                  SG5      GS1 5       Gr4\GRj                  " SGSB/GS29GS3 5       Gr6\GRj                  " / GS4QGS29GS5 5       Gr7GS6 Gr8GS7 Gr9GS8 Gr:GS9 Gr;\R                  R                  SG5      GS: 5       Gr<\R                  R                  SG5      GS; 5       Gr=GS< Gr>GS= Gr?GS> Gr@GS? GrAGS@ GrBGSA GrCGSB GrDGSC GrEGSD GrFGSE GrGGSF GrHGSG GrIGSH GrJGSI GrKGSJ GrLGSK GrMGSL GrN\S" GSM/SDS7SE9GSN 5       GrOGSO GrPGSP GrQGSQ GrRGSR GrS\R                  R                  GSS/ GSTQ/ GSUQS9GSV 5       GrTGSW GrUGSX GrVGSY GrWGSZ GrXGS[ GrYGS\ GrZGS] Gr[GS^ Gr\GS_ Gr]\R                  R                  SG5      GS` 5       Gr^GSa Gr_GSb Gr`GSc Gra\R                  R                  GSG\S //GSd/ 0GSe4G\S //GSf/ 0GSg4G\S //GSh/ 0GSi4G\S //GSj/ 0GSk4G\S //GSl/ 0GSm4G\S /0 GSn4G\S //GSdS S/0GSo4G\S //GSfS S/0GSp4G\S //GShS S/0GSq4G\S //GSjS S/0GSr4G\S //GSlS S/0GSs4G\S //GScS S/0GSt445      GSu 5       GrbGSv GrcGSw Grd\R                  R                  GSxGSyGSz/5      \R                  R                  GS{GSyGSz/5      GS| 5       5       GreGS} Grf " GS~ GS\*5      GrgGS GrhGS GriGS GrjGS GrkGS GrlGS GrmGS Grn\R                  R                  S%5      \T" 5       GS 5       5       GroGS Grp\T" 5       GS 5       Grq\T" 5       GS 5       GrrGS GrsGS GrtGS Gru\S" GS/SDS%SE9GS 5       GrvGS GrwGS Grx\R                  R                  GSSSD/5      \R                  R                  GSSSD/5      GS 5       5       GryGS GrzGS Gr{GS Gr|GS Gr}GS Gr~GS Gr\S" GS/S%SD\R                  " 5       S8:X  a  S OGSGS9GS 5       Gr " GS GS\JGR                  5      Gr\S" GS/S%\R                  " 5       S8:X  a  S OGSS(9GS 5       GrGS GrGS GrGS GrGS GrGS GrGS Gr\S" GS/SDS%SE9GS 5       GrGS GrGS GrGS GrGS GrGS GrGS Gr\T" 5       GS 5       GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS Gr\R                  R                  GSS15      \R                  R                  GSGS5      GS 5       5       Gr\T" 5       GS 5       Gr\R                  R                  SG5      GS 5       GrGS GrGS GrGS GrGS Gr\R                  R                  GS\1GRT                   Vs/ s H
  nUc  M  UPM     sn/ GSQ-   5      \R                  R                  SG5      GS 5       5       GrGS GrGS Gr\T" S/GS9GS 5       Gr\T" 5       GS 5       GrGS Gr\R                  R                  GS/ GSQ5      GS 5       GrGS GrGS GrGS GrGS GrGS GrGS GrGS Gr\S" GS/S%S-9GS 5       GrGS GrGS Gr\R                  R                  GSGSGSGSGRx                  /5      GS 5       GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS Gr\R                  R                  SG5      GS 5       GrGS GrGS Gr\R                  R                  GSGS5      \R                  R                  GSjSGS\d" S5      0/5      GS 5       5       GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS Gr\T" 5       GS  5       Gr\S" GS/S%S-9GS 5       GrGS GrGS GrGS GrGS Gr\S" GS/SDS%\R                  S&:X  a  GSOS S9GS 5       Gr\R                  R                  SG5      GS	 5       Gr\T" 5       GS
 5       GrGS GrGS GrGS GrGS GrGS Gr\S" GS/SGS-9GS 5       Gr\T" 5       \R                  R                  GSS15      GS 5       5       Gr\R                  GR                  \GR                  SS GS:H  =(       a    \GR                  GR                  GS:g  GSGS9GS 5       GrGS Gr\W\T" 5       GS 5       5       Gr\T" 5       GS 5       Gr\T" 5       GS 5       Gr\S" GS/S7\R                  " 5       S8:X  a  S OGSS(9GS 5       GrGS  GrGS! Gr\T" 5       GS" 5       GrGS# GrGS$ GrGS% GrGS& GrGS' GrGS( GrGS) GrGS* Grgs  sn f s  snf (,      N)
namedtupledeque)Decimal)partial)product)SimpleNamespace)ma)cycler)
rc_contextpatheffects)BarContainer)Figure)Axes)Line2D)PathCollection)
HammerAxes)	PolarAxes)assert_allcloseassert_array_equalassert_array_almost_equal)image_comparisoncheck_figures_equalremove_ticks_and_titles)needs_usetexc                 F    U R                  5       nUR                  S5        g NF)subplotsset_visiblefig_testfig_refaxs      T/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_axes.pytest_invisible_axesr$   7   s    				BNN5    c                      [         R                  " 5       u  pUR                  S5        UR                  S5        UR	                  5       S:X  d   eUR                  5       S:X  d   eg )Nzx labelzy label)pltr   
set_xlabel
set_ylabel
get_xlabel
get_ylabelfigr"   s     r#   test_get_labelsr.   =   sO    llnGCMM)MM)==?i'''==?i'''r%   c                      [         R                  " 5       u  pUR                  S5        UR                  S5        UR	                  S5        UR                  S5        [        U5      S:X  d   eg )NlabeltitlexyzH<Axes: label='label', title={'center': 'title'}, xlabel='x', ylabel='y'>)r'   r   	set_label	set_titler(   r)   reprr,   s     r#   	test_reprr7   E   s^    llnGCLLLLMM#MM#8	LM M Mr%   c                    U R                  5       nUR                  SS/SS/SS/SS9nUR                  5         UR                  SSS9  UR	                  SS	S9  U R                  U5      nUR                  S
SS9  UR                  5       nUR                  SS/SS/SS/SS9nUR                  5         UR                  SSS	S9  UR	                  SSS	S9  UR                  U5      nUR                  S
SS	S9  g )N      scattercr0   Y LabeltoplocX LabelrightZ Labelr3   har2   rF   r   r;   legendr)   r(   colorbarr4   r    r!   r"   sccbars        r#   test_label_loc_verticalrN   P   s    				B	QFQFq!fI	>BIIKMM)M'MM)M)R DNN9%N(				B	QFQFq!fI	>BIIKMM)qWM-MM)qWM-BDNN9gN.r%   c                    U R                  5       nUR                  SS/SS/SS/SS9nUR                  5         UR                  SSS9  UR	                  SS	S9  U R                  US
S9nUR                  SS	S9  UR                  5       nUR                  SS/SS/SS/SS9nUR                  5         UR                  SSS	S9  UR	                  SSS	S9  UR                  US
S9nUR                  SSS	S9  g )Nr9   r:   r;   r<   r>   bottomr@   rB   left
horizontalorientationrD   r   rE   rG   rH   rK   s        r#   test_label_loc_horizontalrU   c   s   				B	QFQFq!fI	>BIIKMM)M*MM)M(R\:DNN9&N)				B	QFQFq!fI	>BIIKMM)qVM,MM)qVM,BL9DNN9fN-r%   c                 V   [         R                  " SSS.5         U R                  5       nUR                  SS/SS/SS/SS9nUR	                  5         UR                  S5        UR                  S	5        U R                  US
S9nUR                  S5        S S S 5        UR                  5       nUR                  SS/SS/SS/SS9nUR	                  5         UR                  SSSS9  UR                  S	SSS9  UR                  US
S9nUR                  SSSS9  g ! , (       d  f       N= f)NrC   r?   )zxaxis.labellocationzyaxis.labellocationr9   r:   r;   r<   r>   rB   rR   rS   rD   rE   rG   )	
matplotlibr   r   r;   rI   r)   r(   rJ   r4   rK   s        r#   test_label_loc_rcrX   v   s"   			w7< > 
? ZZAA1a&	ZB
		
i 
i    >y!
? 
			B	QFQFq!fI	>BIIKMM)qWM-MM)qWM-BL9DNN9gN.!
? 
?s   A<D
D(c                  *   [         R                  " 5       u  pUR                  SSS9  UR                  SSS9  UR                  R                  R                  5       S:X  d   eUR                  SSS9  UR                  R                  R                  5       S:X  d   eUR                  SSS9  UR                  R                  R                  5       S:X  d   eUR                  SSS9  UR                  SSS9  UR                  R                  R                  5       S:X  d   eUR                  SSS9  UR                  R                  R                  5       S:X  d   eUR                  SSS9  UR                  R                  R                  5       S:X  d   eg )Nz
Test labelrQ   r@   centerrC   r?   rP   )r'   r   r(   xaxisr0   get_horizontalalignmentr)   yaxisr,   s     r#   test_label_shiftr^      sM   llnGC MM,FM+MM,HM-88>>113x???MM,GM,88>>113w>>>MM,HM-88>>113x??? MM,EM*MM,HM-88>>113x???MM,HM-88>>113v===MM,HM-88>>113x???r%   c                    [         R                  R                  S5        Sn[         R                  R                  SSU5      R	                  5       nUS-
  nU R                  5       nUR                  X4S9  UR                  5       n[         R                  " X3SS9[         R                  " X35      -  n[         R                  " U* US-   5      nXrS-
  U-
  X$-    nUR                  US/U5        UR                  SSSS9  g )	N!N,   r   r9   maxlagsfullmoder3   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r    r!   Nxr2   rc   ax_testax_refnorm_auto_corrlagss	            r#   
test_acorrr{      s    IINN8	B
		Ar"))+AdG!GMM!M%F\\!V4RVVA\AN99gXwqy)D#qDL<N
MM$^,
NNQQQN'r%   c                 d   [         R                  R                  S5        Sn[         R                  R                  U5      S-  R	                  5       n[         R
                  " U5      R                  [         R                  5      nUS-
  nU R                  5       nUR                  X4S9  UR                  5       n[         R                  " X3SS9[         R                  " X35      -  n[         R                  " U* US-   5      nXrS-
  U-
  X$-    nUR                  US/U5        UR                  SSSS	9  g )
Nr`   3   
   r9   rb   rd   re   r   rg   )rj   rk   rl   randrn   ceilastypeint64r   ro   rp   rq   rr   rs   rt   ru   s	            r#   test_acorr_integersr      s    IINN8	B		b	 ((*A	BHH%AdG!GMM!M%F \\!V4RVVA\AN99gXwqy)D#qDL<N
MM$^,
NNQQQN'r%   c                    [         R                  R                  S5        [         R                  " S5      nSUS S& [         R                  R	                  U5        UR                  S5      nU R                  S5      nUS   R                  U5        US   R                  USS	S
9  UR                  S5      nUS   R                  USSS9  US   R                  R                  5         US   R                  " / [         R                  " U5      S S S2   QSP7SS06  US   R                  SUS   R                  5       US   R                  5       S S S2   S9  U H  nUR                  R!                  S5        M      g )Nr`   i   r   ra   )    r   r:   r9   .lower)markerorigingray_rnearest)cmapinterpolation
markersizer~   )aspectxlimylimboth)rj   rk   rl   onesshufflereshaper   spyimshowr[   tick_topplotnonzerosetget_xlimget_ylimset_ticks_position)r    r!   aaxs_testaxs_refr"   s         r#   test_spyr      sJ   IINN8
AAhwKIIa			(A  #HQKOOAQKOOAc'O2q!GAJahi@AJAJOO=RZZ]4R4(=#="=AJNNwqz**,71:3F3F3H23N  P
##F+ r%   c                     [         R                  " 5       u  pSS0SSS.4 HN  n[        R                  " [        5         UR
                  " [        R                  " SS5      40 UD6  S S S 5        MP     g ! , (       d  f       Mb  = f)Nr   r   osolid)r   	linestyle   )r'   r   pytestraises	TypeErrorr   rj   eye)r-   r"   unsupported_kws      r#   test_spy_invalid_kwargsr      sc    llnGC+Y7&)@B]]9%FF266!Q<2>2 &%B%%s   )A44
B	c                 l   [         R                  R                  S5        [        R                  R                  SS5      nU R                  5       R                  U5        UR                  5       nUR                  U5        UR                  R                  5         UR                  R                  S5        g )Nmpl20r   r   )mplstyleuserj   rk   r   add_subplotmatshowr   r[   r   r   )r    r!   r   rx   s       r#   test_matshowr      sy    IIMM'
		r2A""1%  "F
MM!
LL
LL##F+r%   r9      formatter_ticker_03dz.pngr   darwingQ?)r   tolc                     SS K Js  Jn   U R                  5         S[        R
                  S'   [        S5       Vs/ s H  oU R                  -  PM     nn[        S5       Vs/ s H  nSU-  S-
  U R                  -  PM     nn[        S5       Vs/ s H  nSU-  S-
  U R                  -  PM     nn[        R                  " 5       R                  5       nUR                  S	5        [        R                  " 5       R                  5       nUR                  S	5        UR                  X$S
SS9  [        R                  " 5       R                  5       nUR                  S	5        UR                  X$S
SS9  UR                  S5        [        R                  " 5       R                  5       nUR                  X$S
SS9  UR                  X%SSS9  UR                  S5        [        R                  " 5       R                  5       nUR                  X$S
SS9  UR                  X%SSS9  UR                  S5        UR                  5         g s  snf s  snf s  snf )Nr      zlines.markeredgewidthr~         ?      ?      ?      ?zx-label 001bluesec)colorxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterrW   rcParamsranger   kmr'   figurer   r(   r   autoscale_view)unitsr2   xdatar3   ydata1ydata2r"   s          r#   test_formatter_tickerr      s    10	NN 46J/0 #(),)Quyy[)E,.3Bi8is1us{EHH$iF8/4Ry9y!tAv|UXX%yF9				 BMM- 				 BMM- GGEG6				 BMM- GGEG6MM- 				 BGGEG6GGEG8MM-  
			 BGGEG6GGEG8MM- 7 -89s   H<!IIc                  \   S n [         R                  " 5       R                  5       nUR                  R                  (       d   eUR                  R
                  (       d   eUR                  R                  (       d   eUR                  R
                  (       d   eUR                  R                  U 5        UR                  R                  (       a   eUR                  R
                  (       d   eUR                  R                  (       d   eUR                  R
                  (       d   e[        R                  " U 5      n[        UR                  R                  5       [        R                  5      (       d   eUR                  R                  5       R                  UR                  :X  d   eg )Nc                     g)N  r2   poss     r#   	_formfunc4test_funcformatter_auto_formatter.<locals>._formfunc  s    r%   )r'   r   r   r[   isDefault_majfmtisDefault_minfmtr]   set_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r"   targ_funcformatters      r#   !test_funcformatter_auto_formatterr     s1    
			 B88$$$$88$$$$88$$$$88$$$$HH  +xx((((88$$$$88$$$$88$$$$ ..y9bhh224++- - - - 88'')..2D2I2IIIIr%   c                  Z   Sn [         R                  " 5       R                  5       nUR                  R                  (       d   eUR                  R
                  (       d   eUR                  R                  (       d   eUR                  R
                  (       d   eUR                  R                  U 5        UR                  R                  (       d   eUR                  R
                  (       d   eUR                  R                  (       d   eUR                  R
                  (       a   e[        R                  " U 5      n[        UR                  R                  5       [        R                  5      (       d   eUR                  R                  5       R                  UR                  :X  d   eg )Nz	{x}_{pos})r'   r   r   r[   r   r   r]   set_minor_formatterr   StrMethodFormatterr   get_minor_formatterfmt)formstrr"   targ_strformatters      r#   &test_strmethodformatter_auto_formatterr   5  s/   G				 B88$$$$88$$$$88$$$$88$$$$HH  )88$$$$88$$$$88$$$$xx((((227;bhh224002 2 2 2 88'')--1B1F1FFFFr%   z!twin_axis_locators_formatters.png)r   c                  j   [         R                  " SSSSS9n [         R                  " [         R                  U -  S-  5      n[        R
                  " U5      n[        R
                  " / SQ5      n[        R                  " 5       nUR                  SSS5      nUR                  S5        UR                  SS	/SS/5        UR                  R                  U5        UR                  R                  U5        UR                  R                  [        R                  " S
5      5        UR                  R                  [        R                   " / SQ5      5        UR"                  R                  [        R$                  " 5       5        UR"                  R                  [        R
                  " / SQ5      5        UR"                  R                  [        R                  " S5      5        UR"                  R                  [        R                   " / SQ5      5        UR'                  5         UR)                  5         g )Nr   r9      T)numendpoint       @皙?皙?333333?r   d   z%08.2lf)tricksmindjedi)   #   7   K   z%05.2lf)r=   3pr   )rj   linspacesinpir'   FixedLocatorr   r   marginsr   r]   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterr[   LinearLocatortwinytwinx)valslocsmajlminlr-   ax1s         r#   "test_twin_axis_locators_formattersr  N  s}   ;;q!T2D66"%%$,$%DD!DO,D
**,C
//!Q
"CKKNHHc3Z!Q II%II%II!!#"8"8"CDII!!#"4"4 6> #? @ II 1 1 34II 0 01A BCII!!#"8"8"CDII!!#"4"45I"JKIIKIIKr%   c                     [         R                  " 5       u  pUR                  5       nUR                  5       n[         R                  " 5         UR
                  R                  5       (       a   eUR                  R                  5       (       a   eUR                  5         UR                  5         UR
                  R                  5       (       a   eUR                  R                  5       (       a   eUR                  R                  5       (       d   eUR
                  R                  5       (       d   eUR                  R                  5       (       a   eUR                  R                  5       (       a   eUR
                  R                  5       (       d   eUR                  R                  5       (       d   eUR                  R                  5       (       d   eg N)
r'   r   r  r  drawr[   get_visiblepatchclar]   )r-   r"   ax2ax3s       r#   test_twinx_clar  h  sS   llnGC
((*C
))+CHHJyy$$&&&&yy$$&&&&GGIGGIyy$$&&&&yy$$&&&&99  """"99  """"yy$$&&&&yy$$&&&&88!!!!88!!!!88!!!!r%   twinr2   r3   c                 X   U  S3nSU  3nSS/nSS/n[        5       nUR                  5       nUR                  X45        [        Xa5      R                  c   e[        Xb5      " 5       n[        Xq5      R                  c   e[        Xq5      R                  [        Xa5      R                  L d   eg )Naxisr  01r   b)r   r   r   getattrr   )r  	axis_name	twin_funcr   r$  r-   r  r  s           r#   test_twin_unitsr(    s    &ItfI	c
A	c
A
(C
,,.CHHQN3"((444
#
!
#C3"((4443"((GC,C,I,IIIIr%   RQ?)r   c                 b   SU 3nSU S3n[         R                  " SS5      nU R                  SSS5      n[        Xc5      " 5       n[        Xd5      " S5        UR	                  XU5        U R                  SSS5      n[        Xd5      " S5        [        Xc5      " 5       nUR	                  XU5        S H  nUR                  SSU5      n	[        X5      " S5        U	R	                  XU5        [
        R                  R                  n
UR                  [
        R                  R                  U
" S	S	/S	S/S	S/SS/SS/SS	/SS	/S	S	//U
R                  U
R                  /S
-  5      U	R                  S[        R                  S   [        R                  S   SS95        M     [!        U 5        [!        U5        g )Nr  set_scaler9   r   r:   logr9   r:   r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)rj   rr   r   r%  r   rW   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r    r!   r  r'  	set_scaler2   rw   ax_twinirx   r9  s              r#   test_twin_logscalerC    s    tfItfE"I
		!SA ""1a+Gg)+GG&LL ""1a+GG&g)+GLL$$Q1-"5)A ##((q!fq!f!fq!f!fq!f!fq!f& kk4;;/!3	5
 !** ,,'78,,'78% ) 
'	( * H%G$r%   ztwin_autoscale.png_classic_testx86_64g;On?c                  |   [         R                  " / SQ5      n SU -  n[         R                  " / SQ5      nSU-  n[        R                  " 5       nUR	                  SSSS9nUR                  XSS	S
9  [        R                  " U5      nUR                  X#SSS9  UR                  SS5        UR                  SS5        g )Nr   r   r9   r   r   r9   r:   r:   r   r   r9   r9   F)autoscalex_onautoscaley_onr   r~   r   lwr--r   rM  r   )rj   arrayr'   r   add_axesr   r  r  )r2   r3   x2y2r-   r"   r  s          r#   test_twinx_axis_scalesrT    s     	AaA	)	B	
RB
**,C	l%u	MBGGA2G&
))B-CHHRUqH!JJq!KK1r%   c                     [         R                  " 5       u  pUR                  5       nUR                  S5        UR                  5       nUR	                  5       (       d   eUR	                  5       (       a   eUR                  5       nUR                  S5        UR                  5       nUR                  5       (       d   eUR                  5       (       a   eg r   )r'   r   r  set_autoscalex_onget_autoscalex_onr  set_autoscaley_onget_autoscaley_on)r-   r"   ax_x_onax_x_offax_y_onax_y_offs         r#   #test_twin_inherit_autoscale_settingr^    s    llnGChhjGxxzH$$&&&&))++++hhjGxxzH$$&&&&))+++++r%   c                 h   [         R                  " 5       u  pUR                  / SQ5        [        USU  35      " 5       n[	        UR                  SS9R                  UR                  SS9R                  5        [	        UR                  SS9R                  UR                  SS9R                  5        g )Nr   r   r   r   r  ToriginalF)r'   r   set_positionr%  r   get_positionboundsr  r-   r"   r  s       r#   .test_twin_respects_position_after_set_positionrg    s    llnGCOO()
"TFm
$
&CBOOTO299$$d$3::< BOOUO3::$$e$4;;=r%   c                     [         R                  " 5       u  p[        USU  35      " 5       nUR                  5       (       d   eUR                  5       (       d   eg )Nr  )r'   r   r%  get_in_layoutrf  s       r#   <test_twin_keeps_layout_participation_for_layout_managed_axesrj    sN    llnGC
"TFm
$
&Cr%   c                 *   [         R                  " SS9u  pUR                  / SQ5        [        USU  35      " 5       nUR                  R                  5         [        UR                  5       R                  UR                  5       R                  5        g )NTconstrained_layoutr`  r  )	r'   r   rc  r%  canvasr  r   rd  re  rf  s       r#   0test_twin_stays_aligned_after_constrained_layoutro    sh    lld3GCOO()
"TFm
$
&CJJOOBOO%,,c.>.>.@.G.GHr%   c                     [         R                  " S5      n U R                  5       nUR                  5       (       a   eUR	                  5       (       a   e[
        R                  R                  S5      nUR                  U5        UR                  5       (       a   eUR	                  5       (       d   eUR                  5         [
        R                  " SS[
        R                  -  S5      nUR                  U[
        R                  " U5      5        UR                  5       (       a   eUR	                  5       (       a   eUR                  5         UR                  U5        [         R                  " 5         UR                  5       (       a   eUR	                  5       (       d   eU R                   H  nUR                  5         M     [         R                   " S5      n[         R                   " SUS9nUR"                  R%                  S5        UR	                  5       (       d   eUR                  U[
        R                  " U5      5        UR                  5         UR	                  5       (       a   eUR                  5         UR                  U5        UR                  U[
        R                  " U5      5        UR                  5         UR	                  5       (       d   e[         R&                  " U 5        g )	Nr   )r   r   r:   r         shareyT)r'   r   gcaxaxis_invertedyaxis_invertedrj   rk   r   r  r  r  r   cos	autoscaleaxesremovesubplotr]   set_invertedclose)r-   r"   imgr2   ax0r  s         r#   test_inverted_clar    s$    **Q-C	B  """"  """"
))

:
&CIIcN  """" FFH
Aqw$AGGArvvay  """"  """" FFHIIcNMMO  """"hh
		 
 ++c
C
++c#
&CII4 HHQq	GGI!!####GGIJJsOHHQq	GGI IIcNr%   c                     ^	 [         R                  " [        SS9    " U	4S jS[        5      n S S S 5        [         R                  " [        SS9    " U	4S jS[        5      nS S S 5         " S SW 5      n " U	4S	 jS
[        5      n " U	4S jS[        5      n " S SU5      n[	        5       nU WUX4U4 H4  nSm	U" U/ SQ5      nT	(       d   eSm	UR                  5         T	(       a  M4   e   g ! , (       d  f       N= f! , (       d  f       N= f)NzOverriding `Axes.cla`matchc                   "   > \ rS rSrU 4S jrSrg)(test_subclass_clear_cla.<locals>.ClaAxesi?  c                 
   > Smg NTr   selfcalleds    r#   r  ,test_subclass_clear_cla.<locals>.ClaAxes.cla@  s    r%   r   N)__name__
__module____qualname____firstlineno__r  __static_attributes__r  s   r#   ClaAxesr  ?  s     r%   r  c                   ,   >^  \ rS rSrU U4S jrSrU =r$ )-test_subclass_clear_cla.<locals>.ClaSuperAxesiF  c                 &   > Sm[         TU ]  5         g r  )superr  r  	__class__r  s    r#   r  1test_subclass_clear_cla.<locals>.ClaSuperAxes.claG  s    r%   r   )r  r  r  r  r  r  __classcell__r  r  s   @r#   ClaSuperAxesr  F  s     r%   r  c                       \ rS rSrSrg)+test_subclass_clear_cla.<locals>.SubClaAxesiL  r   Nr  r  r  r  r  r   r%   r#   
SubClaAxesr  L      r%   r  c                   "   > \ rS rSrU 4S jrSrg)*test_subclass_clear_cla.<locals>.ClearAxesiO  c                 
   > Smg r  r   r  s    r#   clear0test_subclass_clear_cla.<locals>.ClearAxes.clearP  s    Fr%   r   N)r  r  r  r  r  r  r  s   r#   	ClearAxesr  O  s    	 	r%   r  c                   ,   >^  \ rS rSrU U4S jrSrU =r$ )/test_subclass_clear_cla.<locals>.ClearSuperAxesiT  c                 &   > Sm[         TU ]  5         g r  )r  r  r  s    r#   r  5test_subclass_clear_cla.<locals>.ClearSuperAxes.clearU  s    FGMOr%   r   )r  r  r  r  r  r  r  r  s   @r#   ClearSuperAxesr  T  s    	 	r%   r  c                       \ rS rSrSrg)-test_subclass_clear_cla.<locals>.SubClearAxesiZ  r   Nr  r   r%   r#   SubClearAxesr  Z  r  r%   r  FrI  )r   warnsPendingDeprecationWarningr   r   r  )
r  r  r  r  r  r  r-   
axes_classr"   r  s
            @r#   test_subclass_clear_clar  8  s    
 
/3
5	d 	
5 
/3
5	4 	
5W D 
 y  (Cj ,@
\* v
vv@C
5 
5
5 
5s   C.C?.
C<?
Dc                      [         R                  " 5        H'  n SU R                  ;  d  M  SU R                  ;  a  M'   e   g )Nr  r  )r   __subclasses__r  __dict__)klasss    r#   !test_cla_not_redefined_internallyr  k  s7    $$& %E,>,>>...	 'r%   c                 "   [         R                  " SSS.5         U R                  5       nUR                  SS/SS/5        S S S 5        UR                  5       nUR                  SS/SS/5        UR	                  5         g ! , (       d  f       NE= f)NT)zxtick.minor.visiblezytick.minor.visibler   r9   )rW   r   r   r   minorticks_onr    r!   rw   rx   s       r#    test_minorticks_on_rcParams_bothr  s  s    			t7; = 
>##%aVaV$
> F
KKAA

> 
>s   'B  
Bzautoscale_tiny_range.pngTremove_textr   c                      [         R                  " SS5      u  p[        UR                  5       H&  u  p#SSU-
  -  nUR	                  SS/SSU-   /5        M(     g )Nr:   r~   ir   r9   )r'   r   	enumerateflatr   )r-   axsrB  r"   y1s        r#   test_autoscale_tiny_ranger  ~  sR     ||Aq!HC388$#']
AAF$ %r%   defaultc                     [         R                  " SS5      u  pUR                  / SQ5        UR                  SSSS9  UR                  SSSS9  [	        UR                  5       S5        [	        UR                  5       S	5        UR                  5       (       d   eUR                  5       (       d   eUR                  5       (       d   eUR                  S S
9  [	        UR                  5       S5        [	        UR                  5       S	5        UR                  5       (       d   eUR                  5       (       d   eUR                  5       (       d   eg )Nr9   r9   r:   r   r/  Tr2   F)enabler!  tightr3   )g333333ÿg333333	@)r         @)r  )
r'   r   r   ry  r   r   r   rW  rY  get_autoscale_onr,   s     r#   test_autoscale_tightr    s   ll1a GCGGLLL3eL4LL3dL3BKKM=1BKKM:. !!!!!!!!    LLLBKKM=1BKKM:.!!!!!!!!    r%   c                  
   [         R                  " S[        S9n [        R                  " SSSS9u  nu  p#UR                  X 5        UR                  X 5        UR                  SS9  UR                  SS9  [        R                  " 5         U S   U S   4n[        UR                  5       U5        [        UR                  5       U5        [        UR                  5       U5        [        UR                  5       U S	   U S   45        g )
Nr   dtyper:   r9   Tsharex)r  r   r   )rj   rr   floatr'   r   loglogsemilogxry  r  r   r   r   )r2   r-   r  r  limss        r#   test_autoscale_log_sharedr    s     			#U#All1a5OC#JJqLLMMMMMMHHJaD!B%=DCLLND)CLLND)CLLND)CLLNQqT1R5M2r%   c                     [         R                  " 5       u  pUR                  SS/SS//SS9  [        UR	                  5       S5        [        UR                  5       S5        SUl        UR                  5         S	SUR                  -  -
  S
SUR                  -  -   4nS	SUR                  -  -
  S
SUR                  -  -   4n[        UR	                  5       U5        [        UR                  5       U5        SUl        UR                  5         [        UR	                  5       S5        [        UR                  5       S5        g )Nr   r9   r:   r   r   r   )      r   Fr  r   T)
r'   r   r   r   r   r   use_sticky_edgesry  _xmargin_ymargin)r-   r"   r   r   s       r#   test_use_sticky_edgesr    s    llnGCII1v1vwI/BKKM;/BKKM;/BLLN1r{{?"C!bkk/$9:D1r{{?"C!bkk/$9:DBKKM4(BKKM4(BLLNBKKM;/BKKM;/r%   c                    [         R                  " S5      R                  SS5      nU R                  S5      nU R                  SUS9nUR	                  U5        UR                  S5      nUR                  SUS9nUR	                  U5        g )Nr   r   r   rq  rr  r  )rj   rr   r   r   
pcolormesh)r    r!   Zr  r  s        r#   test_sticky_shared_axesr    s     			"a#A


s
#C


s3

/CNN1


c
"C


c#

.CNN1r%   zsticky_tolerance.pngc                  "   [         R                  " SS5      u  pSnUR                  S   R                  SUSS9  UR                  S   R                  SUSS9  UR                  S   R                  SU* SS9  UR                  S   R                  SU* SS9  UR                  S   R	                  SU* SS	9  UR                  S   R	                  SU* S
S	9  UR                  S   R	                  SUSS	9  UR                  S   R	                  SUS
S	9  g )Nr:   r   r   gffff&@)r2   heightrP   r9   gffff@gffff&)r3   widthrQ   gffffr   )r'   r   r  barbarh)r-   r  r  s      r#   test_sticky_tolerancer    s    ||Aq!HCEHHQKOOagO6HHQKOOagO6HHQKOOawO7HHQKOOawO7HHQKqX6HHQKqX6HHQKqH5HHQKqH5r%   zsticky_tolerance_cf.pngc                  p    [         R                  " 5       u  pSS/=p#SS/SS//nUR                  X#U5        g )NgGZP@g    `P@r   r9   r:   r   )r'   r   contourf)r-   r"   r2   r3   datas        r#   test_sticky_tolerance_contourfr    s<    llnGCx  AFQFDKKdr%   c                      [         R                  " [        SS9   [        R                  " 5         S S S 5        g ! , (       d  f       g = f)Nz0 were givenr  )r   r   r   r'   stemr   r%   r#   test_nargs_stemr    s%    	y	7
 
8	7	7s	   9
Ac                      [         R                  " [        SS9   [        R                  " 5       n U R                  S/S/S5        S S S 5        g ! , (       d  f       g = f)Nz3 were givenr  FirstSecondr   )r   r   r   r'   r|  rI   r"   s    r#   test_nargs_legendr    s;    	y	7[[]
		7)hZ+ 
8	7	7   +A
Ac                      [         R                  " [        SS9   [        R                  " 5       n U R                  SS// SQ/ SQ/5        S S S 5        g ! , (       d  f       g = f)Nz2 were givenr  r   r9   r   r:   r9   r:   r   )r   r   r   r'   r|  
pcolorfastr  s    r#   test_nargs_pcolorfastr    sA    	y	7[[] 	vv&I(>? 
8	7	7s   0A
A!offset_pointsc                      [         R                  " SSS5      n [         R                  " S[         R                  -  U -  5      n[        R
                  " 5       nUR                  SSSS9nUR                  XS	S
S9u  nUR                  SSSSSS9  g )N              @{Gz?r   F)r   r   r   )autoscale_onr   r   r   purplerM  r   z	local maxr   r9   r  r   r   zoffset points)xyxycoordsxytext
textcoords)	rj   rr   rx  r  r'   r   r   r   annotate)tsr-   r"   lines        r#   test_basic_annotater    s     			#sD!A
s255y1}A **,C	e'	HBGGAQhG/EDKK/  ;r%   zarrow_simple.pngc                     Sn SnSn[        XU5      n[        R                  " SS5      u  pE[        [	        UR
                  U5      5       H  u  nu  pxUR                  SS5        UR                  SS5        Uu  pnS[        R                  -  U-  S-  n	UR                  SS[        R                  " U	5      [        R                  " U	5      U	S	-  U UUU	S
-  U	S
-  S9
  M     g )N)TF)rd   rQ   rC   r   r/  r:      r   r   r~   )r  length_includes_headshapehead_starts_at_zero
head_widthhead_length)r   r'   r   r  zipr  set_xlimset_ylimrj   r  arrowr  rx  )
r  r  r  kwargsr-   r  rB  r"   kwargthetas
             r#   test_arrow_simpler     s     )%E')2EFF||Aq!HC#C&$9:;B
B
B=B:	&9BEE	A"
Arvve}bffUmSy&:%8!BJ"RZ 	 	) ;r%   c                  X    [         R                  " 5       u  pUR                  SSSSSS9  g )Nr   )r  )r'   r   r  _r"   s     r#   test_arrow_emptyr$  1  s%    LLNEAHHQ1aQH'r%   c                      [         R                  " 5       u  pUR                  SSSS5        UR                  5       S:X  d   eUR	                  5       S:X  d   eg )Nr9   )皙?皙@)r'   r   r  r   r   r"  s     r#   test_arrow_in_viewr(  7  sI    LLNEAHHQ1a;;=J&&&;;=J&&&r%   c                      [         R                  " 5       u  pUR                  SSSS9nUR                  b   eUR                  SSS0 S9nUR                  c   eg )Nfoor  r:   r   )r
  )r
  
arrowprops)r'   r   r  arrow_patch)r-   r"   anns      r#   test_annotate_default_arrowr/  >  sY    llnGC
++eVF+
3C??"""
++eVFr+
BC??&&&r%   c                     [         R                  " 5       u  p[        R                  " UR                  5      R
                  n[        R                  " [        R                  5      R
                  n[        UR                  5       5      [        UR                  5       5      :X  d   e[        UR                  5       UR                  5       5       H  u  pEXE:X  a  M   e   g)z?Check that the signature of Axes.annotate() matches Annotation.N)r'   r   inspect	signaturer  
parametersmtext
Annotationlistkeysr  values)r-   r"   annotate_paramsannotation_paramsp1p2s         r#   test_annotate_signaturer=  G  s    llnGC''4??O))%*:*:;FF$$&'40A0F0F0H+IIIIo,,.0A0H0H0JKxx Lr%   zfill_units.pngdpi<   )savefig_kwargr   c                     SS K Js  Jn   U R                  5         U R	                  S[
        R
                  " SSS5      S9nSU R                  -  nU R                  SS5      n[        R                  " S	S
SS9n[        R                  " U5      n[        R                  " SS5      u  nu  u  pxu  pUR                  U/U/SSS9  / SQnUR                  X[   / SQS5        UR                  U/U/SSS9  UR                  XX-   X-   // SQS5        U	R                  U/U/SSS9  U	R                  X[   SU R                  -  SU R                  -  SU R                  -  SU R                  -  /S5        U
R                  U/U/SSS9  U
R                  XX-   X-   /SU R                  -  SU R                  -  SU R                  -  SU R                  -  /SS9  UR!                  5         g )Nr   ET  r/     dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]r  r:   degred)yunitsr   rI  )r  r  g     V@r  r$  Z   r   r4  )r   r   r   r   EpochdatetimerI  Durationrj   rr   mdatesdate2numr'   r   r   fillautofmt_xdate)r   r  valuedayrF  dtnr-   r  r  r  ax4inds               r#   test_fill_unitsrZ  Q  s   00	NN 	DX..tQ;<A599E
..1
2C	<_	EB
//"
C$'LLA$6!C	!*3jsHHaS5'%uH5
CHHSX,c2HHaS5'%uH5HHaAGQW%"C) HHaS5'%uH5HHSX%))mQ]BNA		MJ HHaS5'%uH5HHaAGQW%%))mQ]BNA		MJ   r%   c                     [         R                  " [        SS9   [        R                  " S/S/SSS9  S S S 5        [         R                  " [        SS9   [        R                  " S/S/SS	S
9  S S S 5        [         R                  " [        SS9   [        R                  " S/S/SSS9  S S S 5        [        R
                  " S/S/SSS9  g ! , (       d  f       N= f! , (       d  f       Nt= f! , (       d  f       NJ= f)Nzmarker .* redundantly definedr  r   r   r2   r   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r0  )r   r   )r   r  UserWarningr'   r   errorbarr   r%   r#    test_plot_format_kwarg_redundantrd  s  s    	k)H	I!qc3s+ 
J	k)K	L!qc3$/ 
M	k)G	H!qc3f- 
I LL!qcvV4 
J	I	L	L	H	Hs#   CCC.
C
C+.
C<c                    / SQn[         R                  " U5      nUR                  5       nU R                  5       nUR                  X#[         R                  " U5      [         R                  " U5      S9tpgUR                  SS/5        UR                  X#[         R                  " U5      [         R                  " U5      SS/S9  g )Nr  xerryerrr:   )rg  rh  dashes)rj   r  ru  rc  abs
set_dashes)r    r!   r2   r3   rx   rw   r  r#  s           r#   test_errorbar_dashesrl  ~  s    A
q	A[[]FllnGq"&&)"&&)DHDOOQFQq	q	1a&Ir%   c                      [        S5       V s0 s H  o U _M     nn [        R                  " 5       u  p#UR                  UR	                  5       UR                  5       UR                  5       S9  g s  sn f )Nr~   r2   r3   rg  )r   r'   r   rc  r7  r8  )iiDr-   r"   s       r#   test_errorbar_mapview_kwargrq    sR    )$)BR)A$llnGCKK!&&(ahhjqxxzK: 	%s   A/single_pointc                  f   S[         R                  S'   S[         R                  S'   [        R                  " S5      u  n u  pUR	                  S/S/S5        UR	                  S/S/S5        S/S/S.n[        R                  " S5      u  n u  pUR	                  S	S	SUS
9  UR	                  SSSUS
9  g )Nr   lines.markerT	axes.gridr:   r   r9   r   r$  r   r  r$  )rW   r   r'   r   r   )r-   r  r  r  s       r#   test_single_pointrx    s     +.J''+J$ll1oOC#HHaS1#sHHaS1#s A3Dll1oOC#HHS#sH&HHS#sH&r%   c                    [         R                  " S5      R                  S5      n[         R                  " SSS5      R                  S5      nU R                  S5      nUS   R	                  U5        US   R	                  U5        UR                  S5      nUS   R                  SS	S
9  US   R	                  UR                  5       5        g )Nr~   r9   r   r   r   r   r9   r:   r9   gQQ?)r   	   r   r   )rj   rr   r   r   r   r   ravel)r    r!   rowcolr  s        r#   test_shaped_datar    s    
))B-


(C
))AsB

'
'
0C


A
CFKKFKK


1
CFJJKfJ-FKK		r%   c                      [         R                  " SS/S[        4S[        4/S9n [        R                  " 5       R                  S5      nUS   R                  SSU S9  US	   R                  SSS
U S9  g )Nr9   r9   r:   r:   r   twosr  r:   r   rw  r9   r`  )rj   rP  r  r'   r   r   r   )ptsr  s     r#   test_structured_datar    sj    
((FF#VUOfe_+M
NC **,


"CFKKSK)FKK#K.r%   zaitoff_proj.pngc                     [         R                  " [         R                  * [         R                  S5      n [         R                  " [         R                  * S-  [         R                  S-  S5      n[         R                  " X5      u  p#[        R
                  " S[        SS9S9u  pEUR                  5         UR                  UR                  UR                  SSS	9  g
)zR
Test aitoff projection ref.:
https://github.com/matplotlib/matplotlib/pull/14451
   r:   )   @aitoff
projection)figsize
subplot_kwr   r/  )r   N)
rj   r  r  meshgridr'   r   dictgridr   r  )r2   r3   XYr-   r"   s         r#   test_aitoff_projr    s     	RUUFBEE2&A
RUUFQJ	2.A;;qDAll8&*h&?AGCGGIGGAFFAFFCAG.r%   zaxvspan_epoch.pngc                     SS K Js  Jn   U R                  5         U R	                  S[
        R
                  " SSS5      S9nU R	                  S[
        R
                  " SSS5      S9nU R                  SU R                  R                  S5      5      n[        R                  " 5       nUR                  XS	S
S9  UR                  USU-  -
  USU-  -   5        g Nr   rB  rC  r9      rE     r   r         ?)r4  alphar  )r   r   r   r   rN  rO  rP  rV  convertr'   ru  axvspanr  r   t0tfrF  r"   s        r#   test_axvspan_epochr        00	NN 
Th//a<	=B	Th//a<	=B	eii//6	7B	BJJrtJ4KKSVR#b&[)r%   zaxhspan_epoch.pngc                     SS K Js  Jn   U R                  5         U R	                  S[
        R
                  " SSS5      S9nU R	                  S[
        R
                  " SSS5      S9nU R                  SU R                  R                  S5      5      n[        R                  " 5       nUR                  XS	S
S9  UR                  USU-  -
  USU-  -   5        g r  )r   r   r   r   rN  rO  rP  rV  r  r'   ru  axhspanr  r  s        r#   test_axhspan_epochr    r  r%   zhexbin_extent.pngc                     [         R                  " 5       u  p[        R                  " S5      S-  R	                  S5      nUu  p4UR                  X4/ SQS9  X4S.n[         R                  " 5       u  pUR                  SS/ SQUS9  g )	N  )r:     r   r   333333?ffffff?extentr  r2   r3   )r  r  )r'   r   rj   rr   r   hexbinr-   r"   r  r2   r3   s        r#   test_hexbin_extentr    sr     llnGCIIdOd"++I6DDAIIa+I, DllnGCIIc3/dI;r%   c                     [         R                  " 5       u  p[        R                  " S5      S-  R	                  S5      nUu  p4[
        R                  " [        SS9   UR                  X4SS9  S S S 5        [
        R                  " [        SS9   UR                  X4SS9  S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)	Nr  )r:   r~   z)In extent, xmax must be greater than xminr  r9   r   r   r9   r  z)In extent, ymax must be greater than ymin)r   r9   r9   r   )	r'   r   rj   rr   r   r   r   
ValueErrorr  r  s        r#   test_hexbin_bad_extentsr    s    llnGCIIbMB''0DDA	z)T	U
		!|	, 
V 
z)T	U
		!|	, 
V	U 
V	U 
V	Us   B)B:)
B7:
Cc                     [         R                  " 5       u  pUR                  [        R                  R                  S5      [        R                  R                  S5      SSSS9n[        U[        R                  R                  5      (       d   e[        UR                  [        R                  R                  5      (       d   eUR                  R                  S:X  d   eUR                  R                  S:X  d   eg )Nr~   r-  r:   r   normvminvmax)r'   r   r  rj   rk   r   r   rW   collectionsPolyCollectionr  colorsLogNormr  r  )r-   r"   hexs      r#   test_hexbin_string_normr    s    llnGC
))BIINN2&		r(:QUV)
WCc:11@@AAAAchh
 1 1 9 9::::88==A88==Ar%   zhexbin_empty.pngc                     [         R                  " 5       u  pUR                  / / 5        UR                  / / SS9  UR                  / / / [        R                  S9  UR                  / / [        R
                  " S5      S9  g )Nr-  bins)Creduce_C_functionr~   )r'   r   r  rj   maxrr   r,   s     r#   test_hexbin_emptyr    se     llnGCIIb" IIb"5I!IIb"bffI5IIb"299R=I)r%   c                      [         R                  " 5       u  p[        R                  " S5      S-  R	                  S5      nUu  p4UR                  X4/ SQSS9n[        SSS9nUR                  U5      S	   (       d   eg )
N   r:   r   r  r   )r  picker  ,  r  r   )r'   r   rj   rr   r   r  r   contains)r-   r"   r  r2   r3   hbmouse_events          r#   test_hexbin_pickabler    sk    llnGCIIcNS ))(3DDA	1 0	<B!C3/K;;{#A&&&r%   zhexbin_log.pngc            	         [         R                  R                  S5        Sn [         R                  R                  U 5      nSSU-  -   S[         R                  R                  U 5      -  -   n[         R                  " SUS-  5      n[
        R                  " 5       u  p4UR                  XSSS	[         R                  S
9n[
        R                  " U5        UR                  5       R                  S:X  d   eg )Nr`   順 r         @r  r:   r   r-  T)yscaler  	marginalsr  )i&-  r:   )rj   rk   rl   standard_normalpowerr'   r   r  sumrJ   get_offsetsr  )nr2   r3   r-   r"   hs         r#   test_hexbin_logr  )  s     IINN8A
		!!!$AcAgbii77:::A
AGAllnGC
		!u5 BFF 	 	<ALLO ==?  J...r%   c                  :   [         R                  " SSS5      n [        R                  " 5       u  pUR	                  X SSSS9n[         R
                  R                  UR                  5       [         R                  " SS/SS/SS/SS/SS/SS/SS/S	S//5      5        g )
Nr9   r     r-  r:   )xscaler  gridsizer   r   r   )	rj   	geomspacer'   r   r  r   assert_almost_equalr  rP  )r2   r-   r"   r  s       r#   test_hexbin_log_offsetsr  <  s    
QS!AllnGC
		!uUQ	?AJJ""	
VVVVVV1X1X	
r%   zhexbin_linear.pngr   r  c                  H   [         R                  R                  S5        Sn [         R                  R                  U 5      nSSU-  -   S[         R                  R                  U 5      -  -   n[        R
                  " 5       u  p4UR                  XSS[         R                  S9  g )	Nr`   r  r   r  r  r~   r   T)r  r  r  )rj   rk   rl   r  r'   r   r  r  )r  r2   r3   r-   r"   s        r#   test_hexbin_linearr  N  s~     IINN8A
		!!!$AcAgbii77:::AllnGCIIaW "  (r%   c                      [         R                  " S5      R                  S5      u  p[        R                  " 5       u  p#UR                  XSSSS9nUR                  5       S:X  d   eg )Nr  r  r-  r:   r   )r  r  r  )rj   rr   r   r'   r   r  get_clim)r2   r3   r-   r"   r  s        r#   test_hexbin_log_climr  [  sS    99S>!!(+DAllnGC
		!U	5A::<8###r%   c           
      6   / SQn[        U6 u  p4S/[        U5      -  n/ SQnSnU R                  5       nUR                  5       n	U	R                  X4UUSS9  U	R	                  S5        UR                  X4S/[        U5      -  S SUUS9  UR	                  S5        g )	N)r   r   r  )r   r   )r   r   r9   )      $r~   r  r~   )   r  )r  r  mincntr   c                     [        U 5      $ r  )r  )vs    r#   <lambda>>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>  s    CFr%   )r  r  r  r  r  )r  lenr   r  set_facecolor)
r    r!   
datapointsr  r  r  r  r  rw   rx   s
             r#   ,test_hexbin_mincnt_behavior_upon_C_parameterr  b  s    J 
DA	
c!fA!FH!GF MM		   ! NN	#A,*   '"r%   c                  r   [         R                  " 5       u  pUR                  5         UR                  / SQ/ SQ5        UR	                  5       S:X  d   eUR                  5       S:X  d   e[         R                  " 5         [         R                  " 5       u  pUR                  5         UR                  / SQ/ SQ5        UR	                  5       S:X  d   eUR                  5       S:X  d   e[         R                  " 5       u  pUR                  S5        UR                  SS	5        UR                  5       S
:X  d   eg )N)r  r:   r/  )r9   r:   r  r   )r/  r  r  )r  r/  )r   r  r-  r~   r9   )r~   r9   )
r'   r   invert_xaxisr   r   r   r~  invert_yaxis
set_yscaler  r,   s     r#   test_inverted_limitsr     s     llnGCOOGGNM*;;=G###;;=G###IIKllnGCOOGGNM*;;=G###;;=G### llnGCMM%KKA;;=G###r%   nonfinite_limitsc                  h   [         R                  " S[         R                  S5      n [         R                  " SS9   [         R                  " U 5      nS S S 5        [         R
                  U [        U 5      S-  '   [        R                  " 5       u  p#UR                  U W5        g ! , (       d  f       NW= f)Nr  r   ignoredivider:   )
rj   rr   eerrstater-  nanr  r'   r   r   r2   r3   r-   r"   s       r#   test_nonfinite_limitsr
    sn    
		"bddD!A	H	%FF1I 
&66Ac!faiLllnGCGGAqM	 
&	%s   B##
B1plot_fun)r;   r   fill_betweenc           	          [         R                  " SSSS9nUR                  5       nUR                  5       n[        X@5      " / / 5        XE4 H&  n[        X`5      " U[	        [        U5      5      SS9  M(     g )Nz
2010-01-01z
2011-01-01rH  r  C0ra  )rj   rr   r   r%  r   r  )r  r    r!   r2   rw   rx   r"   s          r#   test_limits_empty_datar    sg     			,ODA!GFGr2&as1vd;  r%   r   c                  j   S[         R                  S'   Sn [        R                  " X 45      u  pXS-  -  nX S-  -  n[        R                  " US-  US-  -   X-  -
  5      n[
        R                  " 5       u  pEUR                  U5        SU0n[
        R                  " 5       u  pEUR                  SUS9  g )Nr   image.interpolationr   r:   r`  rw  )rW   r   rj   indicessqrtr'   r   r   )Nr2   r3   r`  r-   r"   r  s          r#   test_imshowr    s     2;J-.AZZFQAIAAIA
1QT	!#A llnGCIIaL 8DllnGCIIcIr%   imshow_clipgףp=
?c                     S[         R                  S'   Sn [        R                  " X 45      u  pXS-  -  nX S-  -  n[        R                  " US-  US-  -   X-  -
  5      n[
        R                  " 5       u  pEUR                  X0S-  /5      n[        R                  " UR                  5       S   UR                  5       5      nUR                  X7S9  g )Nr   r  r   r:   r/  r   )	clip_path)rW   r   rj   r  r  r'   r   contourmtransformsTransformedPath	get_pathsget_transformr   )r  r2   r3   r`  r-   r"   r=   r  s           r#   test_imshow_clipr    s    
 2;J-. 	AZZFQAIAAIA
1QT	!#A llnGC


1seA++AKKM!,<aoo>OPI IIaI%r%   c                      SS/SS//n [         R                  " 5       n[        R                  " [        SS9   UR                  U [        R                  " SS5      S	S
S9  SSS5        g! , (       d  f       g= f)4Parameters vmin, vmax should error if norm is given.r9   r:   r   r/  LPassing a Normalize instance simultaneously with vmin/vmax is not supported.r  r~   r   r   r  N)r'   rz  r   r   r  r   mcolors	Normalize)r   r"   s     r#   test_imshow_norm_vminvmaxr%    sj    
Q!QA	B	z@
A 			!'++C411	E
A 
A 
As   (A((
A6polycollection_joinstylec                     [         R                  " 5       u  p[        R                  " SS/SS/SS/SS//5      n[        R
                  R                  U/SS9nUR                  U5        UR                  SS5        UR                  SS5        g )Nr9   r:   (   )
linewidthsr   r   )
r'   r   rj   rP  r   r  r  add_collection
set_xbound
set_ybound)r-   r"   vertsr=   s       r#   test_polycollection_joinstyler.    s}     llnGCHHq!fq!fq!fq!f56E&&w2&>AaMM!QMM!Qr%   z	x, y1, y2r  r   r  r:   {Gz?)
2d_x_input2d_y1_input2d_y2_input)idsc                     [         R                  " 5       u  p4[        R                  " [        5         UR                  XU5        S S S 5        g ! , (       d  f       g = fr  )r'   r   r   r   r  r  r2   r  rS  r-   r"   s        r#   test_fill_between_inputr6    s7     llnGC	z	"
r" 
#	"	"   A
Az	y, x1, x2)
2d_y_input2d_x1_input2d_x2_inputc                     [         R                  " 5       u  p4[        R                  " [        5         UR                  XU5        S S S 5        g ! , (       d  f       g = fr  )r'   r   r   r   r  fill_betweenx)r3   x1rR  r-   r"   s        r#   test_fill_betweenx_inputr>    s9     llnGC	z	"
# 
#	"	"r7  zfill_between_interpolate.pngg~jt?)r  r   r   c            
         [         R                  " SSS5      n [         R                  " S[         R                  -  U -  5      nS[         R                  " S[         R                  -  U -  5      -  n[        R
                  " SSSS9u  nu  pEUR                  XXS	S
9  UR                  XX"U:  SSSS9  UR                  XX"U:*  SSS9  [         R                  R                  US5      n[         R                  R                  US'   UR                  XXS	S
9  UR                  XX"U:  SSS9  UR                  XX"U:*  SSS9  g )Nr  r:   r/  333333?r/  r9   Tr  blackra  white/)wherer4  hatchinterpolaterJ  )rD  r4  rF  r   r   r   )rj   rr   r  r  r'   r   r   r  r	   masked_greatermasked)r2   r  rS  r-   r  r  s         r#   test_fill_between_interpolaterI  #  s6    			#q$A	"%%		B	RVVAbeeGAI	Bll1a5OC#HHQAH)QBBh'!%  'QBBh%!%  ' 
		b#	&BEELLBqEHHQAH)QBBh'!%  'QBBh%!%  'r%   z'fill_between_interpolate_decreasing.pngc            
         [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " SS9u  p4UR	                  XS5        UR	                  X S5        UR                  XX"U:  SS	S
S9  UR                  XX"U:  SS	S
S9  UR                  SS5        UR                  SS5        g )N)gfffff@i  i  )g"@r  r'  )g@gffffff@gffffff@)r~  r~  r  ztab:redkr   T皙?rD  r4  rF  r  rJ  r   r      X  )rj   rP  r'   r   r   r<  r  r  )r  r  profr-   r"   s        r#   (test_fill_between_interpolate_decreasingrR  =  s     	"#A
A88O$Dll6*GCGGA)GGDSQ4ax%4s  DQ4ax$$c  C KK2KKSr%   z fill_between_interpolate_nan.pngc                     [         R                  " S5      n [         R                  " SS[         R                  SSSSSSS/
5      n[         R                  " SSSSSSSS[         R                  [         R                  /
5      n[        R
                  " 5       u  p4UR                  XS	S
9  UR                  XSS
9  UR                  XX"U:  SSSS9  UR                  XX!U:  SSSS9  g )Nr~   r              r   r   rL  r=   r$  r   Tr   rN  rJ  )rj   rr   asarrayr  r'   r   r   r  r5  s        r#   !test_fill_between_interpolate_nanrZ  R  s     			"A	QBFFB2r2q"=	>B	RQBBBFFBFFC	DBllnGCGGASGGGASGOOA22X $C  1OOA22X $C  1r%   z
symlog.pdfc                     [         R                  " / SQ5      n [         R                  " / SQ5      n[        R                  " 5       u  p#UR	                  X5        UR                  S5        UR                  S5        UR                  SS5        g )N)r   r9   r:   r/  r   r~  r  rU  )i@B i  r  r   r   r   r   r   symloglinearr   i )rj   rP  r'   r   r   r  
set_xscaler  r	  s       r#   test_symlogr_  g  s^    
+,A
;<AllnGCGGAMMM(MM(KKHr%   zsymlog2.pdfc                  "   [         R                  " SSS5      n [        R                  " SS5      u  p[	        U/ SQ5       H7  u  p4UR                  X 5        UR                  SUS9  UR                  S	5        M9     US
   R                  SS5        g )N2   MbP?r   r9   )      4@r   r   r   r   r\  )	linthreshTr   皙r   )	rj   rr   r'   r   r  r   r^  r  r  )r2   r-   r  r"   re  s        r#   test_symlog2rg  s  sx     			#r5!A||Aq!HCS":;

h)4
 < GT3r%   c            
      l   / SQn / SQn[         R                  " X5      u  p#[         R                  " X#5      n[        R                  " U5        [        R                  " [        U5      5        [        R                  " XUS S2S S24   5        [        R                  " X#[        US S2S S24   5      5        g )N)            r  r  r   r   r   )ri  g      rj        r        пr   r  r         ?r         ?r   r   )rj   r  hypotr'   pcolorr6  )r2   r3   r  r  r  s        r#   test_pcolorargs_5205rq    s    .A	*A;;qDA
AJJqMJJtAwJJqQssCRCx[!JJqT!CRC"H+&'r%   r  aarch64)\(?c                  \   S[         R                  S'   Sn [        R                  " SSU 5      n[        R                  " SSU S-  5      n[        R                  " X5      u  p4[        R
                  " U5      [        R
                  " U5      -
  n[        R                  " U5      [        R                  " U5      -   nUS-   n[        R                  " X45      S-  nXwR                  5       -
  [        R                  " U5      -  n[        R                  " [        R                  " U5      S	[        R                  " U5      -  :  U5      n[         R                  " S
S5      u  n	u  pnU
R                  XVUS S2S S24   S	SS9  UR                  XVUS S2S S24   SSS/S9  UR                  XVUSS9  g )NFpcolormesh.snapr  ri  r   r:   皙?r   r   r9   r   r   rL  rM  
edgecolorsr$  wgouraudshading)r'   r   rj   r  r  rx  r  ro  minptpr	   masked_whererj  r  r   r  )r  r2   r3   r  r  QxQzr  Zmr#  r  r  r  s                r#   test_pcolormeshr    s\    ',CLL"#
A
D#q!A
D#qs#A;;qDA	RVVAY	B	RVVAY	B
s(B
A	
UUWq	!A 
cBFF2J&66	:Ba+A#NN22crc3B3h<CCN@NN22crc3B3h<A3*NENN22yN1r%   zpcolormesh_small.epsc                     Sn [         R                  " SSU 5      n[         R                  " SSU S-  5      n[         R                  " X5      u  p4[         R                  " U5      [         R                  " U5      -
  n[         R                  " U5      [         R                  " U5      -   nUS-   n[         R
                  " X45      S-  nXwR                  5       -
  [         R                  " U5      -  n[        R                  " [         R                  " U5      S[         R                  " U5      -  :  U5      n[        R                  " US[         R                  " U5      -  :  U5      n	[        R                  " SS5      u  n
u  u  pu  pUR                  XVUS S	2S S	24   SS
S9  UR                  XVUS S	2S S	24   SSS/S9  UR                  XVUSS9  UR                  XVU	SS9  U
R                   H  nUR!                  5         M     g )Nr   ri  r   r:   rv  r   r   r  r   rL  rw  r$  ry  rz  r{  )rj   r  r  rx  r  ro  r}  r~  r	   r  rj  r  r'   r   r  rz  set_axis_off)r  r2   r3   r  r  r  r  r  r  Zm2r-   r  r  r  rX  r"   s                   r#   test_pcolormesh_smallr    s   	A
D#q!A
D#qs#A;;qDA	RVVAY	B	RVVAY	B
s(B
A	
UUWq	!A	cBFF2J&66	:B
//"tbffRj00!
4C$'LLA$6!C	!*3jsNN22crc3B3h<CCN@NN22crc3B3h<A3*NENN22yN1NN23	N2hh
 r%   pcolormesh_alphapngpdfrM  )
extensionsr  r   r   c                     S[         R                  S'   Sn [        R                  " [        R                  " SSU 5      [        R                  " SSU S-  5      5      u  pUnU[        R
                  " U5      -   n[        R                  " X5      S-  nXUR                  5       -
  [        R                  " U5      -  n[        R                  S   R                  S	5      nU" [        R                  " S	5      5      nS
S
[        R
                  " [        R                  " S	5      5      -  -   US S 2S4'   [        R                  " U5      n[         R                  " SS5      u  n	u  u  pu  pXX4 H,  nUR!                  ["        R$                  " SSS/ SQSS95        M.     U
R'                  X4US S2S S24   USSSS9  UR'                  X4XVSSSS9  UR'                  X4US S2S S24   USSS9  UR'                  X4XXSSS9  g )NFru  r  ri  r   r:   r   viridis   r   r   )r   ri  )r  r   r   r   r   )r4  zorderr   rM  r  r9   )r   r  r|  r  rz  )r   r|  r  )r'   r   rj   r  r  r  ro  r}  r~  r   	colormaps	resampledrr   r#  ListedColormapr   	add_patchmpatches	Rectangler  )r  r  r  r  Qyr  virr  r   r-   r  r  r  rX  r"   s                  r#   test_pcolormesh_alphar    s   
 ',CLL"#
A;;
D#q!
D#qs#DA 
B	
RVVAYB
A	
UUWq	!A
--	
"
,
,R
0C2FRVVBIIbM222F1a4L!!&)D$'LLA$6!C	!*3js 
X''sA)9!
 	 !
 NN21SbS#2#X;S!!  -NN21c9QNONN21SbS#2#X;T6!NLNN211NEr%   z
dims,alphar  )r/  r   c                     U R                  5       n[        R                  " SSU4[        S9S-  nUR	                  U5        UR                  5       nUR	                  US   SSSUS	9  g )
Nr   r   r  r:   ).r   grayr   r9   )r   r  r  r  )r   rj   r   r  r  )r    r!   dimsr  r"   r=   s         r#   test_pcolormesh_rgbar    sa     
			B
AtE*Q.AMM!				BMM!F)&qqMFr%   c                    [         R                  " S5      n[         R                  " S5      n[         R                  " X#5      u  pEXE-   nU R                  5       nUR	                  USS9  UR                  5       nUR	                  X#USS9  g )Nr/  r  r   r{  )rj   rr   r  r   r  r    r!   r2   r3   r  r  r  r"   s           r#   test_pcolormesh_nearest_noargsr    sq    
		!A
		!A;;qDA	A				BMM!YM'				BMM!9M-r%   c                    [         R                  " SSS5      n[         R                  " SSS5      n[         R                  " X#5      u  pEXE-   nU R                  5       nUR	                  XEU5        UR                  S5        UR                  5       nUR	                  XEU5        UR                  SS5        UR                  S5        g	)
zU
Check that setting a log scale sets good default axis limits
when using pcolormesh.
r   r9   rV  r:   r   r-  r   rG  N)rj   r  r  r   r  r^  r  r  s           r#   test_pcolormesh_log_scaler    s     	Aq"A
Aq!A;;qDA	A				BMM!MM%				BMM!KKcMM%r%   zpcolormesh_datetime_axis.pngc            
         [         R                  " 5       n U R                  SSSS9  [        R                  " SSS5      n[        R
                  " [        S5       Vs/ s H  o![        R                  " US9-   PM     sn5      n[        R                  " S5      n[        R                  " [        R                  " S	5      [        R                  " S	5      5      u  pVXV-  n[         R                  " S
5        [         R                  " US S US S US S2S S24   5        [         R                  " S5        [         R                  " X4U5        [        R                  " U[        R                     SSS9n[        R                  " US S 2[        R                  4   SSS9n[         R                  " S5        [         R                  " US S2S S24   US S2S S24   US S2S S24   5        [         R                  " S5        [         R                  " X4U5        U R                  5        H<  nUR                  5        H%  n	U	R!                  S5        U	R#                  S5        M'     M>     g s  snf NrM  g\(\?333333?)hspacer?   rP   i  r9   r  daysr     r      r   r!        rC   r   )r'   r   subplots_adjustrO  rj   rP  r   	timedeltarr   r  r|  r  repeatnewaxisget_axesget_xticklabelsset_haset_rotation
r-   basedr2   r3   z1z2zr"   r0   s
             r#   test_pcolormesh_datetime_axisr    s   
**,CsS9T1a(D
U2YGY++33YGHA
		"A[[2		"6FB
AKKNN1Sb61Sb61SbS#2#X;/KKNN1
		!BJJ-!,A
		!ArzzM"BQ/AKKNN1SbS#2#X;#2#ss(QssCRCx[9KKNN1lln'')ELL!r" *  H    I!zpcolor_datetime_axis.pngc            
         [         R                  " 5       n U R                  SSSS9  [        R                  " SSS5      n[        R
                  " [        S5       Vs/ s H  o![        R                  " US9-   PM     sn5      n[        R                  " S5      n[        R                  " [        R                  " S	5      [        R                  " S	5      5      u  pVXV-  n[         R                  " S
5        [         R                  " US S US S US S2S S24   5        [         R                  " S5        [         R                  " X4U5        [        R                  " U[        R                     SSS9n[        R                  " US S 2[        R                  4   SSS9n[         R                  " S5        [         R                  " US S2S S24   US S2S S24   US S2S S24   5        [         R                  " S5        [         R                  " X4U5        U R                  5        H<  nUR                  5        H%  n	U	R!                  S5        U	R#                  S5        M'     M>     g s  snf r  )r'   r   r  rO  rj   rP  r   r  rr   r  r|  rp  r  r  r  r  r  r  r  s
             r#   test_pcolor_datetime_axisr  ,  s   
**,CsS9T1a(D
U2YGY++33YGHA
		"A[[2		"6FB
AKKJJq"vq"vq"crc{+KKJJqQ
		!BJJ-!,A
		!ArzzM"BQ/AKKJJq"crc{Acrc3B3hK3B385KKJJqQlln'')ELL!r" *  Hr  c                    [         R                  " SSS5      nUS==   S-  ss'   [         R                  " SSS5      n[         R                  " X#5      u  pEUSS2SS24   USS2SS24   -   nU R                  5       nUR	                  XEU5        UR                  S	5        UR                  5       nUR	                  XEU5        UR                  S
S5        UR                  S	5        g)zQ
Check that setting a log scale sets good default axis limits
when using pcolor.
r   r9   rV  gh㈵>r:   r   Nr   r-  r   r   )rj   r  r  r   rp  r^  r  r  s           r#   test_pcolor_log_scaler  E  s     	Aq"A aDGOD
Aq!A;;qDA	#2#ss(aSbSk!A				BIIaAMM%				BIIaAKKcMM%r%   c            	      >	   Sn [         R                  " SSU 5      n[         R                  " SSU S-  5      n[         R                  " X5      u  p4[         R                  " X45      S-  n[        R
                  " 5       u  pg[        R                  " [        5         UR                  X!U5        S S S 5        [        R                  " [        5         UR                  X4UR                  5        S S S 5        [        R                  " [        5         UR                  XUS S2S S24   SS9  S S S 5        [        R                  " [        5         UR                  X4US S2S S24   SS9  S S S 5        [         R                  US	'   [        R                  " [        5         UR                  XUS S2S S24   5        S S S 5        [         R                  " S
S9   [         R                  R                  XS	:  S9nS S S 5        [        R                  " [        5         UR                  XUS S2S S24   5        S S S 5        / SQnSS/n[         R                  " X5      u  p4[         R                   " UR"                  5      n[        R$                  " [&        SS9   UR                  X4USS9  S S S 5        [         R                  " SSS5      n[         R                  " SSS5      n[         R                  " X5      u  p4[         R                   " UR"                  5      n[         R(                  R+                  S5        [         R(                  R)                  UR"                  5      n[         R(                  R)                  UR"                  5      n	[        R$                  " [&        SS9 n
UR                  X8-   XI-   USS9  [-        U
5      S	:X  d   eUR                  USU-  -   USU	-  -   USS9  [-        U
5      S:X  d   e S S S 5        g ! , (       d  f       GNZ= f! , (       d  f       GN-= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNm= f! , (       d  f       GNA= f! , (       d  f       GN= f! , (       d  f       g = f)Nr  ri  r   r:   r   r   rz  r{  r   r  invalidmask)ig  r   r9   r"  r~   z.are not monotonically increasing or decreasingr  autor9   r   r`   )rj   r  r  ro  r'   r   r   r   r   r  Tr  r  r  r	   rP  zerosr  r  rb  rk   rl   r  )r  r2   r3   r  r  r  r#  r"   noise_Xnoise_Yrecords              r#   test_pcolorargsr  ]  sP   
A
D#q!A
D#qs#A;;qDA
ALLNEA	y	!
aA 
"	y	!
aACC  
"	y	!
aAcrc3B3hK; 
"	y	!
aAcrc3B3hK; 
"66AaD	z	"
aAcrc3B3hK( 
#	X	&EEKKQK( 
'	z	"
aAcrc3B3hK( 
#
 	A	b	A;;qDA
A	kL
N
aAv.
N 	B1A
B1A;;qDA
AIINN8iiqww'Giiqww'G	k)
*-3 	aiAv>6{a 	a7
lAbjL!VD6{a
* 
*C 
"	!	!	!	!	!	!	! 
#	"	&	&	"	"
N 
N
* 
*sm   O>PP"	P4Q!QQ*Q<AR>
P
P"
P14
Q
Q
Q'*
Q9<
R
Rc                  v   [         R                  " SS9   [         R                  " SSS5      n [         R                  " SSS5      n[         R                  R	                  [        U5      [        U 5      5      n[        R                  " 5       u  p4UR                  XU5        SSS5        g! , (       d  f       g= f)z~
Test that underflow errors don't crop up in pcolormesh.  Probably
a numpy bug (https://github.com/numpy/numpy/issues/25810).
raise)underr   r   r   r   N)	rj   r  rr   rk   randnr  r'   r   r  r2   r3   r  r-   r"   s        r#   test_pcolormesh_underflow_errorr    sw    
 
7	#IIaC IIaC IIOOCFCF+,,.
aA 
$	#	#s   BB**
B8c                  (   [         R                  " S5      R                  SS5      n [         R                  " / SQU R                  5      nUR
                  R                  SL d   e[         R                  R                  XS9n[        R                  " U5        [         R                  " SSS	5      n [         R                  " SSS	5      n[         R                  " X5      u  pE[         R                  " S[         R                  -  U-  5      [         R                  " S[         R                  -  U-  5      -  n[         R                   " S	["        S
9nSUS'   [         R                  " XvR                  5      nUR
                  R                  SL d   e[         R                  R                  XgS9n[        R                  " XEU5        [         R                  R                  XGS9n	[         R                  R                  XWS9n
[        R$                  " XU5        g )Nr   r:   r   FTFFr  r   r9   r~   r  Tr   )rj   rr   r   broadcast_tor  flags	writeabler	   rP  r'   r  r  r  r  r  rx  r  boolrp  )r2   xmaskmasked_xr3   r  r  r  r  masked_Zmasked_Xmasked_Ys              r#   test_pcolorargs_with_read_onlyr    sl   
		!Q"AOO0!'':E;;  E)))uu{{1{)HNN8
Aq"A
Aq"A;;qDA
q255y1}q255y1} 55A88Bd#DDH??4)D::5(((uu{{1{(HNN1"uu{{1{(Huu{{1{(HJJx8,r%   c                    U R                  5       n[        R                  " SS5      n[        R                  " SS5      n[        R                  R	                  S5        [        R                  R                  SS5      nUR                  X4USS9  UR                  5       nUS S	 [        R                  " U5      S-  -   nUS S	 [        R                  " U5      S-  -   nUR                  XgUS
S9  g )Nr   r~   r   r`   r:   r~  r  r{  r   r   r   rj   rr   rk   rl   r  r  diffr    r!   r"   r2   r3   r  rR  rS  s           r#   test_pcolornearestr    s    				B
		!RA
		!QAIINN8
		1AMM!6M*				B	
3B"''!*q.	 B	
3B"''!*q.	 BMM"!YM/r%   c                 z   U R                  5       n[        S5       Vs/ s H%  n[        R                  R                  US-  5      PM'     snn[        R
                  " SS5      n[        R                  R                  S5        [        R                  R                  SS5      nUR                  X4USS	9  UR                  5       n[        S5       Vs/ s H(  n[        R                  R                  US
-   S-  5      PM*     nnUS S [        R                  " U5      S-  -   nUR                  XgUSS	9  g s  snf s  snf )Nr~   i  r   r   r`   r:   r~  r  r{  r   r   r   )r   r   rO  fromtimestamprj   rr   rk   rl   r  r  r  r  s           r#   test_pcolornearestunitsr    s    				B<A"IFIq			(	(T	2IFA
		!QAIINN8
		1AMM!6M*				BEJ1X	NX(


)
)1s7d*:
;XB	N	
3B"''!*q.	 BMM"!YM/ 	G 
Os   ,D3/D8c                     [         R                  " 5       u  p[        R                  " SS5      n[        R                  " SS5      n[        R                  R                  S5        [        R                  R                  SS5      n[        R                  " [        SS9   UR                  X#USS9  S S S 5        g ! , (       d  f       g = f)	Nr   r~  r   r`   zDimensions of Cr  r  r{  )r'   r   rj   rr   rk   rl   r  r   r   r   r  r-   r"   r2   r3   r  s        r#   test_pcolorflaterrorr    s~    llnGC
		!QA
		!QAIINN8
		1A	y(9	:
aAv. 
;	:	:s   B99
Cc                  D   [         R                  " 5       u  p[        R                  " [        R                  " S5      [        R                  " S5      5      u  p#X#-   n[
        R                  " [        SS9   UR                  X#USS9  S S S 5        g ! , (       d  f       g = f)Nr   r   z.*one smaller than Xr  r  r{  )	r'   r   rj   r  rr   r   r   r   r  r  s        r#   test_samesizepcolorflaterrorr    sf    llnGC;;ryy|RYYq\2DA	A	y(?	@
aAv. 
A	@	@s   6B
BsnapFc                    U R                  5       n[        R                  " SS5      n[        R                  " SS5      n[        R                  R	                  S5        [        R                  R                  SS5      nUR                  XEXbS9  UR                  5       nUS S [        R                  " U5      S	-  -   nUS S [        R                  " U5      S	-  -   nUR                  XxXbS9  g )
Nr   r~   r/  r`   r   r~  )r  r   r:   r  )	r    r!   r  r"   r2   r3   r  rR  rS  s	            r#   test_pcolorautor    s     
			B
		!RA
		!QAIINN8
		1AMM!M%				B	
3B"''!*q.	 B	
3B"''!*q.	 BMM"!M'r%   	canonicalc                  X    [         R                  " 5       u  pUR                  / SQ5        g )Nr  r'   r   r   r,   s     r#   test_canonicalr    s     llnGCGGIr%   zarc_angles.pngc                     Sn SnSnSn[         R                  " SS5      u  pE[        UR                  5       GH  u  pgUS-  S-  nUS-
  n	UR	                  [
        R                  " X USS	95        UR	                  [
        R                  " X XUS
95        UR                  U[        R                  " [        R                  " U	5      5      -  US   -   US   U[        R                  " [        R                  " U5      5      -  US   -   /U[        R                  " [        R                  " U	5      5      -  US   -   US   U[        R                  " [        R                  " U5      5      -  US   -   /5        UR                  U* U5        UR                  U* U5        U S-  n US-  nUS   S-  US   S-  4nUS-  nGM     g )Nr:   r9   )r   r   r   h  r~  -   r   r  )theta1theta2r   r~   )r'   r   r  r  r  r  EllipseArcr   rj   rx  deg2radr  r  r  )
ry  r  centrer,  r-   r  rB  r"   r  r  s
             r#   test_arc_anglesr    s    	
A	AFE||Aq!HC388$S1"
X%%f#>?
X\\&QfMN


6 233fQi?

6 233fQi?A 

6 233fQi?

6 233fQi?A	B 	UFE"
UFE" 	
R	R)b.&)b.1- %r%   arc_ellipsec            
         Su  pSu  p#Sn[         R                  " [         R                  " S5      5      nUS-  [         R                  " U5      -  nUS-  [         R                  " U5      -  n[         R                  " U5      n[         R
                  " [         R                  " U5      [         R                  " U5      * /[         R                  " U5      [         R                  " U5      //5      n	[         R                  " XU/5      u  pgX`-  nXq-  n[        R                  " 5       n
U
R                  SSS9nUR                  XgS	S
S
SSS9  [        R                  " X4X#USSSS9nUR                  U5        U
R                  SSS9nUR                  XgS	SSSS9  [        R                  " X4X#USSSS9nUR                  U5        g )N)gRQ?gp=
ף?)r   r   r  r   rq  r  )r   r   yellowr9   )r  r4  r5  r6  r  r:   F)angler6  rS  r  rr  equalr   )r  r4  r5  r  )rj   r  rr   rx  r  rP  rq   r'   r   r   rS  r  r  r  )xcenterycenterr  r  r  r  r2   r3   rthetaRr-   r"   e1e2s                 r#   test_arc_ellipser
  '  s   !GMEEJJryy~&E
RVVE]"AbffUm#AZZF
	"&&.)	(* 	+A 66!VDALALA
**,C	V	,BGGAx8  # 
w(%!QU1
FB LL	W	-BGGAw'!GL	w(%!QU1
FB LLr%   c                      [         R                  " 5       u  p[        R                  " S5      nUR	                  / SQ/ SQUS9  UR                  / SQ/ SQUS9  UR                  / SQ/ SQUS9  g )Nr   r  r   r:   r9   r\  )r/  r   r:   )r   r/  r   )r'   r   mmarkersMarkerStyler   r;   rc  )fixr"   ms      r#   test_marker_as_markerstyler  L  sU    llnGCS!AGGIyG+JJy)AJ.KK	9QK/r%   zmarkevery.pngc                     [         R                  " SSS5      n [         R                  " U 5      [         R                  " U S-  S-   5      -  n[        R
                  " 5       u  p#UR                  XSSS9  UR                  XS-   S	S S
S9  UR                  XS-   SSSS9  UR                  XS-   SSSS9  UR                  5         g )Nr   r~   r   r   r   r  r0   r9   r  mark all	markeveryr0   r:   r  mark every 10r   +r   r  mark every 20 starting at 5rj   r  r  r  r'   r   r   rI   r	  s       r#   test_markeveryr  T  s    
Ar3A
q	BGGAbD3J''A llnGCGGA#YG'GGAsC4zG:GGAsC2_G=GGAsC72OGPIIKr%   zmarkevery_line.pngc                     [         R                  " SSS5      n [         R                  " U 5      [         R                  " U S-  S-   5      -  n[        R
                  " 5       u  p#UR                  XSSS9  UR                  XS-   S	S S
S9  UR                  XS-   SSSS9  UR                  XS-   SSSS9  UR                  5         g )Nr   r~   r   r   z-or  r  r9   z-dr  r  r:   z-sr  r   z-+r  r  r  r	  s       r#   test_markevery_liner  b  s    
Ar3A
q	BGGAbD3J''A llnGCGGA$iG(GGAsDD
G;GGAsDBoG>GGAsDG3PGQIIKr%   zmarkevery_linear_scales.pngrc  c                     S SS/ SQSS/[        SSS5      S	S
SSS/n Sn[        R                  R                  [	        U 5      U-  S-   U5      nSn[
        R                  " SSSU-  -
  S5      U-   n[
        R                  " U5      S-   U-   n[        U 5       Ha  u  pgXa-  nXa-  n	[        R                  " X(U	4   5        [        R                  " S[        U5      -  5        [        R                  " XESSSUS9  Mc     g )Nr  r   r  r  rU  r   r   r   r   r  r   r   r   r   r  r   ?r   r9   rs  r~   r:   r   markevery=%sr   r]  r/  lsmsr  )slicerW   gridspecGridSpecr  rj   r  r  r  r'   r|  r1   strr   
casescolsgsdeltar2   r3   rB  caser  r  s
             r#   test_markevery_linear_scalesr3  p  s     Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU#yhBCxL!		.3t9,-ssqT: $r%   z"markevery_linear_scales_zoomed.pngc                  T   S SS/ SQSS/[        SSS5      S	S
SSS/n Sn[        R                  R                  [	        U 5      U-  S-   U5      nSn[
        R                  " SSSU-  -
  S5      U-   n[
        R                  " U5      S-   U-   n[        U 5       H  u  pgXa-  nXa-  n	[        R                  " X(U	4   5        [        R                  " S[        U5      -  5        [        R                  " XESSSUS9  [        R                  " S5        [        R                  " S5        M     g )Nr  r   r!  r   r   r   r  r   r   r   r   r"  r#  r9   rs  r~   r:   r   r%  r   r]  r/  r&  )r   g@)rv  g333333?)r)  rW   r*  r+  r  rj   r  r  r  r'   r|  r1   r,  r   r   r   r-  s
             r#   #test_markevery_linear_scales_zoomedr5    s    Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU#yhBCxL!		.3t9,-ssqT: $r%   zmarkevery_log_scales.pngc                  T   S SS/ SQSS/[        SSS5      S	S
SSS/n Sn[        R                  R                  [	        U 5      U-  S-   U5      nSn[
        R                  " SSSU-  -
  S5      U-   n[
        R                  " U5      S-   U-   n[        U 5       H  u  pgXa-  nXa-  n	[        R                  " X(U	4   5        [        R                  " S[        U5      -  5        [        R                  " S5        [        R                  " S5        [        R                  " XESSSUS9  M     g )Nr  r   r!  r   r   r   r  r   r   r   r   r"  r#  r9   rs  r~   r:   r   r%  r-  r   r]  r/  r&  )r)  rW   r*  r+  r  rj   r  r  r  r'   r|  r1   r,  r  r  r   r-  s
             r#   test_markevery_log_scalesr7    s   Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU#yhBCxL!		.3t9,-

5

5ssqT: $r%   zmarkevery_polar.pngc                     S SS/ SQSS/[        SSS5      S	S
SSS/n Sn[        R                  R                  [	        U 5      U-  S-   U5      n[
        R                  " SSS5      nS[
        R                  -  U-  n[        U 5       H`  u  pVXQ-  nXQ-  n[        R                  " X'U4   SS9  [        R                  " S[        U5      -  5        [        R                  " XCSSSUS9  Mb     g )Nr  r   r!  r   r   r   r  r   r   r   r   r"  r#  r9   r  r:   Tpolarr%  r   r]  r/  r&  )r)  rW   r*  r+  r  rj   r  r  r  r'   r|  r1   r,  r   )	r.  r/  r0  r`  r  rB  r2  r  r  s	            r#   test_markevery_polarr;    s    Ar73Q#s&E D				%	%c%jD&81&<d	CB
AsC AIMEU#yhBCxL-		.3t9,-331> $r%   z markevery_linear_scales_nans.pngc                  6   S SS/ SQSS/[        SSS5      S	S
SSS/n Sn[        R                  R                  [	        U 5      U-  S-   U5      nSn[
        R                  " SSSU-  -
  S5      U-   n[
        R                  " U5      S-   U-   n[
        R                  =US S& =USS & USS& [        U 5       Ha  u  pgXa-  nXa-  n	[        R                  " X(U	4   5        [        R                  " S[        U5      -  5        [        R                  " XESSSUS9  Mc     g )Nr  r   r!  r   r   r   r  r   r   r   r   r"  r#  r9   rs  r~   r:   r   rb  F   r%  r   r]  r/  r&  )r)  rW   r*  r+  r  rj   r  r  r  r  r'   r|  r1   r,  r   r-  s
             r#   !test_markevery_linear_scales_nansr?    s    Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%A"$&&(AcrF(QstWqBxU#yhBCxL!		.3t9,-ssqT: $r%   marker_edgesc            	      ^   [         R                  " SSS5      n [        R                  " 5       u  pUR	                  U [         R
                  " U 5      SSSSS9  UR	                  U S-   [         R
                  " U 5      SSSSS9  UR	                  U S	-   [         R
                  " U 5      SSS
SS9  g )Nr   r9   r~   zy.      >@r`  )r(  mewmecr   r   r:   r$  )rj   r  r'   r   r   r  r2   r-   r"   s      r#   test_marker_edgesrF    s    
Aq"AllnGCGGArvvay$4QCG8GGAcE266!9dtG<GGAcE266!9dtG<r%   zbar_tick_label_single.pngc                      [         R                  " 5       n U R                  SSSSS9  SSS.n[         R                  " 5       u  p [         R                  " 5       n U R                  SSSSUS	9  g )
Nr   r9   edger"  )align
tick_labelrv  r   r$  )rI  rJ  r  )r'   ru  r  r   )r"   r  r-   s      r#   test_bar_tick_label_singlerK    s]     
BFF1av#F. DllnGC	BFF36cF=r%   c                  z    [         R                  " 5       u  pUR                  SS/[        R                  S/5        g )Nr   r9   r/  )r'   r   r  rj   r  r,   s     r#   test_nan_bar_valuesrM    s)    llnGCFFAq6BFFA;r%   c                  V    [         R                  " 5       u  pUR                  / / 5        g r  )r'   r   r  r,   s     r#   test_bar_ticklabel_failrO    s    llnGCFF2rNr%   zbar_tick_label_multiple.pngc                  d    [         R                  " 5       n U R                  SS/SS/SS/SS/SS	9  g )
Nr9         @r:   r   r   r   r$  rZ   r  rJ  rI  )r'   ru  r  r  s    r#   test_bar_tick_label_multiplerS    s;     
BFFAs8aVC:3*  r%   z/bar_tick_label_multiple_old_label_alignment.pngc                      S[         R                  S'   [        R                  " 5       n U R	                  SS/SS/SS/SS	/SS
9  g )NrZ   zytick.alignmentr9   rQ  r:   r   r   r   r$  rR  )rW   r   r'   ru  r  r  s    r#   *test_bar_tick_label_multiple_old_alignmentrU    sL     .6J)*	BFFAs8aVC:3*  r%   c                    U R                  5       n/ SQn/ SQnU Vs/ s H  n[        U5      PM     snnU Vs/ s H  n[        U5      PM     snnUR                  XVSS9  UR                  5       nUR                  X4SS9  g s  snf s  snf )Nr   g @g333333@r  rv  r'  gffffff
@g@rZ   rI  )r   r   r  r    r!   r"   x0y0r2   r3   s          r#   test_bar_decimal_centerr]  &  s    				B	B	B RR A RR AFF1xF 				BFF2F" 	! s
   BBc                 $   U R                  5       n/ SQn/ SQnU Vs/ s H  n[        U5      PM     snnU Vs/ s H  n[        U5      PM     snnUR                  XV/ SQSS9  UR                  5       nUR                  X4/ SQSS9  g s  snf s  snf )NrW  rX  )r   r   r9   r9   rZ   r  rI  )r   r   r  rZ  s          r#   test_barh_decimal_centerr`  4  s    				B	B	B RR A RR AGGA)G:				BGGB+8G< 	! s
   BBc                     / SQn/ SQn/ SQnU Vs/ s H  n[        U5      PM     nnU R                  5       nUR                  X#USS9  UR                  5       nUR                  X#USS9  g s  snf )NrW  rX  r  g333333?r9   r:   rZ   r  rI  )r   r   r  )r    r!   r2   r3   w0rB  ry  r"   s           r#   test_bar_decimal_widthre  B  sn    AA	B RRA 				BFF1qF)				BFF1rF* 	!   A+c                     / SQn/ SQn/ SQnU Vs/ s H  n[        U5      PM     nnU R                  5       nUR                  X#USS9  UR                  5       nUR                  X#USS9  g s  snf )NrW  rX  rb  rZ   r_  )r   r   r  )r    r!   r2   r3   h0rB  r  r"   s           r#   test_barh_decimal_heightri  P  sn    AA	B RRA 				BGGA(G+				BGGA8G, 	!rf  c                      [         R                  " 5       n U R                  SS/SS/SSSS9nU H/  nUR                  5       S:X  d   eUR	                  5       S	:X  a  M/   e   g )
Nr9   r:   r/  r   r0  r`  r  r   r5  r   r   r   r   r9   r   r   r   r'   ru  r  get_facecolorget_edgecolorr"   rectsrects      r#   test_bar_color_none_alphart  ^  se    	BFFAq6Aq6FcFJE!!#|333!!#~555 r%   c                      [         R                  " 5       n U R                  SS/SS/SSSS9nU H/  nUR                  5       S:X  d   eUR	                  5       S	:X  a  M/   e   g )
Nr9   r:   r/  r   r`  r0  rk  rm  rl  rn  rq  s      r#   test_bar_edgecolor_none_alpharv  f  se    	BFFAq6Aq6C6FJE!!#~555!!#|333 r%   zbarh_tick_label.pngc                  d    [         R                  " 5       n U R                  SS/SS/SS/SS/SS	9  g )
Nr9   rQ  r:   r   r   r   r$  rZ   )r  rJ  rI  )r'   ru  r  r  s    r#   test_barh_tick_labelrx  n  s;     
BGGQHq!fc3ZS#J  r%   c                     [         R                  " 5       u  pUR                  [        R                  " SSS5      S[        R                  " SS9S9  UR                  [        R                  " SSS5      S[        R                  " SS9[        R                  " SS9S9  [         R                  " 5       u  pUR                  [        R                  " SSS5      S[        R                  " SS9S	9  UR                  [        R                  " SSS5      S[        R                  " SS9[        R                  " SS9S
9  [         R                  " 5       u  pUR                  [        R                  " SSS5      [        R                  " SSS5      /[        R                  " SS/5      [        R                  " SS9S	9  UR                  [        R                  " SSS5      [        R                  " SSS5      /[        R                  " SS/5      S Vs/ s H  n[        R                  " US9PM     snS	9  UR                  [        R                  " SSS5      [        R                  " SS94/S5        gs  snf )z>Smoketest that bar can handle width and height in delta units.  r9   r   r   hoursr  r:   )rg  r  )r  )r  rh  r   r.  r~   r  N)	r'   r   r  rO  r  r  rj   rP  broken_barhr-   r"   r  s      r#   test_bar_timedeltar  v  s   llnGCFF8T1a("##!,  .FF8T1a("""+##!,  . llnGCGGHdAq)1%%A.  0GGHdAq)1%%A.##!,  . llnGCGGXtQ*H,=,=dAq,IJHHaX%%A.  0 GGXtQ*H,=,=dAq,IJHHaX9?@AH&&Q/@  B NNX&&tQ2''a02 3 As   I-c                     [         R                  " [         R                  " S5      [         R                  " S5      [         R                  " S5      /5      n [         R                  " [         R                  " S5      [         R                  " S5      [         R                  " S5      /5      n[        R                  " 5       u  p#UR                  / SQX-
  U S9  [        UR                  R                  5       [        R                  5      (       d   e[        R                  " 5       u  p#UR                  / SQX-
  U S	9  [        UR                  R                  5       [        R                  5      (       d   eg
)z+test that tickers are correct for datetimesz
2012-01-01z
2012-02-01z
2012-01-15z
2012-02-07z
2012-02-13z
2012-02-12)r   r9   r   )r  rP   )r  rQ   N)rj   rP  
datetime64r'   r   r  r   r]   r   rQ  AutoDateFormatterr  r[   )startstopr-   r"   s       r#   test_bar_datetime_startr    s    HHbmmL12==3NmmL13 4E88R]]<0"--2M]]<02 3D llnGCFF9TZF6bhh224f6N6NOOOOllnGCGGITZeG4bhh224f6N6NOOOOr%   zgrouped_bar.pngc                      / SQ/ SQ/ SQS.n [         R                  " 5       u  pUR                  U / SQSS/ SQS	9  UR                  / 5        g )
Nr  )r@  r'  皙	@)ffffff?333333@g333333@data1data2data3ABr  r   r   )z#1f77b4z#58a1cfz#abd0e6)tick_labelsgroup_spacingbar_spacingr  )r'   r   grouped_bar
set_yticksr  r-   r"   s      r#   test_grouped_barr    sN       D llnGCNN4_!$#;  = MM"r%   c                    SS/nSS/nSS/nSS/nU R                  5       nUR                  X4U/U/ S	QS
9  UR                  5         UR                  5       n[        R                  " SS/5      nSnSU-  [        R                  " SUSU-  /5      -   n	UR                  XyS   -   X8SS9  UR                  XyS   -   XHSS9  UR                  XyS   -   XXSS9  UR                  Xr5        UR                  5         g )Nr  r  r9   r@  r:   r  r   @r  r  labelsr   gqq?r   r  )r  r0   r  r  )r   r  rI   rj   rP  r  
set_xticks)
r    r!   
categoriesr  r  r  r"   	label_pos	bar_width
data_shifts
             r#   !test_grouped_bar_list_of_datasetsr    s   sJHEHEHE				BNNE%(j5  7IIK				B!Q IIi"((Ay!i-+H"IIJFF9!}$eGFLFF9!}$eGFLFF9!}$eGFLMM)(IIKr%   c                 $   SS/n[        SS/SS/SS/S	9nU R                  5       nUR                  X2S
9  UR                  5         UR                  5       nUR                  UR	                  5       X#R                  5       S9  UR                  5         g )Nr  r  r9   r@  r:   r  r   r  r  r  r  )r  r   r  rI   r8  r7  )r    r!   r  	data_dictr"   s        r#   !test_grouped_bar_dict_of_datasetsr    s    sJAs8As8As8DI				BNN9N5IIK				BNN9##%:nnFVNWIIKr%   c                 L   SS/n[         R                  " / SQ/ SQ/5      n/ SQnU R                  5       nUR                  X2US9  UR	                  5         UR                  5       nUR
                   Vs/ s H  ofPM     nnUR                  XrUS9  UR	                  5         g s  snf )Nr  r  r  r@  r  r  r  r  )rj   rP  r   r  rI   r  )r    r!   r  rP  r  r"   columnlist_of_datasetss           r#   test_grouped_bar_arrayr    s    sJHHi12E(F				BNN5N@IIK				B-2WW5W6W5NN#FNKIIK 6s   3B!c                 d   SS/n/ SQnUR                  / SQ/ SQ/X4S9nU R                  5       nUR                  U5        UR                  5         UR                  5       nUR                   Vs/ s H  ouU   R                  5       PM     nnUR                  XUS9  UR                  5         g s  snf )Nr  r  r  r  r  )indexcolumnsr  )	DataFramer   r  rI   r  to_numpy)	r    r!   pdr  r  dfr"   r  r  s	            r#   test_grouped_bar_dataframer    s    sJ(F	y/2& 
 
8B 
			BNN2IIK				B68jjAjs3((*jANN#FNKIIK Bs   .B-c                  v   [         R                  " 5       u  pUR                  / SQ/ SQ// SQS9n[        UR                  5      S:X  d   eUR                   H+  n[        U[        5      (       d   eX1R                  ;   a  M+   e   UR                  5         UR                   H  nX1R                  ;  a  M   e   g )Nr  rV  r     r  r  r:   )	r'   r   r  r  bar_containersr   r   
containersr{  )r-   r"   retbcs       r#   test_grouped_bar_return_valuer    s    llnGC
..)\2.
PCs!!"a'''  "l++++]]""" ! JJL  &&& !r%   c                     [         R                  " 5       u  p[        R                  " S5      n[        R                  " SS/5      [        R                  " SS/5      [        R                  " SS/5      /n/ SQnUR                  X2US9n[        XER                  5       H$  u  pgU H  nUR                  5       U:X  a  M   e   M&     g)zLEach dataset should receive its own hatch pattern when a sequence is passed.r:   r9   r   r/  )//xxz..)	positionsrE  N)	r'   r   rj   rr   rP  r  r  r  	get_hatch)	r-   r"   r2   heightshatchesr  rE  r=   rs  s	            r#   test_grouped_bar_hatch_sequencer  	  s    llnGC
		!AxxA1a&!1288QF3CDG GGDJ !:!:;D>>#u,,,  <r%   c                     [         R                  R                  SS5      nU R                  SSU R	                  SS9S9R
                  n[        R                  " 5         [        R                  " XS9  g )Nr   r:   z1/1/2000r9   )years)periodsfreqr  )	rj   rk   r   
date_range
DateOffsetyearr'   r   boxplot)r  r  r  s      r#   test_boxplot_dates_pandasr  	  sY    99>>!QDMM*"#"--a-*@  BBF$ 
JJLKK&r%   c                     [         R                  R                  SS5      n [        R                  " S5      u  pUS   R                  U / SQ/ SQS9  US   R                  U / SQS	S9  US
   R                  U / SQS9  US   R                  U S/ SQS9  US   R                  U SS	S9  US   R                  U SS9  US   R                  U / SQS9  US   R                  U S	S9  US   R                  U 5        g )Nr   r   r~  r   )r   r   r   r   )	capwidthswidthsr9   r   r:   r  r   r/  r   r  r  r  )rj   rk   r   r'   r   r  )r  r-   r  s      r#   test_boxplot_capwidthsr  	  s    99>>!QD||AHCFNN4??NKFNN4?3N?FNN4?N3FNN43N?FNN43sN3FNN43N'FNN4N0FNN4N$FNN4r%   c                    SSK JnJn  [        R                  " 5       nUR                  S5      n[        R                  " SSS5      /n[        U5      S:  a:  UR                  US   [        R                  " SS	9-   5        [        U5      S:  a  M:  [        R                  " S
5      n[        R                  " XV5      u  px[        U5      S-
  [        U5      S-
  4n	[        R                  " U	S   U	S   -  5      R                  U	5      n
 U" 5         UR                  XxU
5      nUR                  R!                  5         U" 5         g ! U" 5         f = f)Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r9   r  r   x   secondsr   )pandas.plottingr  r  r'   r   r   rO  r  appendr  rj   rr   r  r   r  rn  r  )r  r  r  r-   r"   timesy_vals	time_axisy_axisr  z_dataims               r#   test_pcolor_regressionr  +	  s   
 **,C		BtQ*+E
e*q.U2Y!3!3C!@@A e*q. YYq\FE2I[1_c%j1n-EYYuQx%(*+33E:F+&(]]9f5

(*(*s   
3E 	Ec                 Z   U R                  / SQ/ SQ/ SQ/ SQS.5      nU R                  U/ SQ   5      US'   USS/   R                  S/5      R                  5       nUR                  nUS   nUS   n[
        R                  " 5       u  pgUR                  X4SS	S
9  UR                  X5SSS9  g )N)rz  rz  rz  r9   r9   r9   r  )r  monthrV  rU  )r  r  rV  daterU  r~   rZ   rc  oranger/  rL  )	r  to_datetimegroupbyr  r  r'   r   r  r   )r  r  monthlydatesforecastbaseliner-   r"   s           r#   test_bar_pandasr  H	  s    	#	
B
 #; <=BvJ&'"#++VH599;GMMEwHwHllnGCFF5"HF5GGE8G2r%   c                     U R                  / SQ/ SQS./ SQS9n[        R                  " 5       u  p#UR                  UR                  SUR
                  S9  g )N)r   r   r  r   rM  r  )r2   r  r  r  r   r}  )r  r'   r   r  r2   r  r  r  r-   r"   s       r#   test_bar_pandas_indexedr  [	  sF    	L<@% 
 
'BllnGCFF244288F$r%   c                     U R                  5       nUR                  5       nSS/nSS/nSS/n[        S5       H  nUR                  XG   XW   SXg   S9  M     UR                  XEUS9  g )	Nr9   r:   r   r2   r   r  )r   rE  rE  )r   r   r  )r    r!   rw   rx   r2   r3   r  rB  s           r#   test_bar_hatchesr  c	  su     !GF	
AA	
AACjG1X

14T
<  KKGK$r%   )r2   r  r0   expected_labelscontainer_labelr2   
_nolegend_r   r$  r=   )r~   r  r   r  )r  r  r  bars)r  r  r  c                     [         R                  " 5       u  pVUR                  XUS9nU Vs/ s H  oR                  5       PM     n	nX9:X  d   eUR                  5       U:X  d   eg s  snf )Nr  )r'   r   r  	get_label)
r2   r  r0   r  r  r#  r"   bar_containerr  
bar_labelss
             r#   test_bar_labelsr  r	  sc     LLNEAFF15F1M-:;]c--/]J;(((""$777 <s   A%c                     [         R                  " 5       u  p[        R                  " [        5         UR                  SS/SS// SQS9  S S S 5        [         R                  " 5       u  p[        R                  " [        5         UR                  SS/SS/S/S9  S S S 5        g ! , (       d  f       N_= f! , (       d  f       g = f)Nr2   r3   r9   r:   )r  r  r  r  r  )r'   r   r   r   r  r  r"  s     r#   test_bar_labels_lengthr  	  s    LLNEA	z	"
SzAq69 
#LLNEA	z	"
SzAq6#/ 
#	" 
#	" 
#	"s   B#B4#
B14
Cc                    U R                  SS/SS9U R                  SS/SS94 Hp  n[        R                  " X5        [        R                  " UR                  U5        [        R                  " U5        [        R                  " UR                  5        Mr     U R	                  S/ SQ05      n[        R                  " U5        [        R                  " X"5        g )Nr9   r:   float64r  Float64r  r  )Seriesr'   r   r  r  )r  r2   r  s      r#   test_pandas_minimal_plotr
  	  s    iiAii0iiAii02!2 
ui(	)BHHRLHHRr%   zhist_log.pngc                      [         R                  " SSS5      S-  n [         R                  " SU -
  SU -   /5      n[        R                  " 5       u  p#UR                  USSS9  g )Nr   r9   r  r   FT)rS  r-  )rj   r  concatenater'   r   hist)data0r  r-   r"   s       r#   test_hist_logr  	  sS    KK1c"A%E>>1u9a%i01DllnGCGGDu$G'r%   c           	      l   U R                  SS5      nUR                  SS5      n[        / SQ5       H  u  pEUSU4   R                  S5        USU4   R                  SSUS9  USU4   R                  SSUS9  USU4   R                  S5        US S 2U4    H  nUR                  SSSUS	9  M     M     g )
Nr:   r   )r  step
stepfilledr   r-  r9   histtypeT)r-  r  )r   r  r  r  )r    r!   r   r   rB  r  r"   s          r#   test_hist_log_2r  	  s      A&Hq!$G !>?A!!%(AAq84AAq84A!!%(!Q$-BGGAqdXG6   @r%   c                  j   [         R                  " S5      u  pUS   R                  S/SS//SSS9  US   R                  S5        US   R                  / SQSSS9  US   R                  S5        U R                  R                  5         US   R                  5       US   R                  5       :X  d   eg )Nr:   r   r9   
barstackedr  r-  r   r   r9   )r'   r   r  r  rn  r  r   r-   r  s     r#   test_hist_log_barstackedr  	  s    ||AHCFKK!q!fq<K8FeFKK	1|K4FeJJOOq6??A 1111r%   c                     SS K n SS KJn  UR                  " 5       u  p#U R                  " / SQSS9n[
        R                  " [        SS9   UR                  U5        S S S 5        [        S5       Vs/ s H  n[        R                  " US9PM     nn[
        R                  " [        SS9   UR                  U5        S S S 5        g ! , (       d  f       No= fs  snf ! , (       d  f       g = f)	Nr   )r9   r:   r   r  ztimedelta64[D]r  z+does not currently support timedelta inputsr  r   r  )numpymatplotlib.pyplotpyplotr   rP  r   r   r   r  r   rO  r  )rj   r'   r-   r"   arr_nprB  arr_pys          r#   test_hist_timedelta_raisesr!  	  s    #llnGCXXl*:;F	y(U	V
 
W 6;1X>Xh  +XF>	y(U	V
 
W	V	 
W	V ?	V	Vs   
C1C*C
C
C)zhist_bar_empty.pngc                  N    [         R                  " 5       n U R                  / SS9  g )Nr  r  r'   ru  r  r  s    r#   test_hist_bar_emptyr$  	  s     
BGGBGr%   c                     [         R                  R                  S5        [         R                  " [         R                  R	                  SSSS9SS5      R                  [         R                  5      n [        R                  " U SSS	9nUS
   n[        S[        U5      5       H>  nX#S-
     R                  5       nX#   R                  5       nUS   S   US   S   ::  a  M>   e   g )Nr`   r   r   r  sizer   r9   r   )r  r  r:   )rj   rk   rl   cliprm   r   float16r'   r  r   r  get_corners)r8  r  r  r`  rleftrrights         r#   test_hist_float16r-  	  s    IINN8WW
		c-q!55;VBJJ5G as+A	
1B1c"gQ3##%""$ Qx{fQil*** r%   zhist_step_empty.pngc                  N    [         R                  " 5       n U R                  / SS9  g )Nr  r  r#  r  s    r#   test_hist_step_emptyr/  	  s     
BGGBG r%   zhist_step_filled.pngc                     [         R                  R                  S5        [         R                  R                  SS5      n SnSS0SS0SS 00 /S-  nS	/S
-  S/S
-  -   n[        R
                  " SS
S9u  pE[        X#UR                  5       HA  u  pgnUR                  " X4USS.UD6  UR                  U SU 35        UR                  SS9  MC     US   R                  n	[        S U	 5       5      (       d   eg )Nr   r  r   r~   rS  TFr:   r  r/  r  nrowsncolsr  stackedrC  ra  rP   r  c              3   b   #    U  H%  oR                  5       UR                  5       :H  v   M'     g 7fr  )ro  rp  ).0r  s     r#   	<genexpr>(test_hist_step_filled.<locals>.<genexpr>	  s!     Gw! AOO$55ws   -/)rj   rk   rl   r  r'   r   r  r  r  r5   r  r;  all)
r2   n_binsr  typesr-   r  kg_typer"   r;  s
             r#   test_hist_step_filledr@  	  s    IINN1
		a AFtnvuo~rB1DFHQJ~a''E||!1-HCVCHH52
>E4>2>
t1UG_%
3 6
 $iGGwGGGGGr%   zhist_density.pngc                      [         R                  R                  S5        [         R                  R                  S5      n [        R
                  " 5       u  pUR                  U SS9  g )Nr`   r  Tdensity)rj   rk   rl   r  r'   r   r  r  s      r#   test_hist_densityrD  	  sC    IINN899$$T*DllnGCGGD$Gr%   c                      [         R                  R                  S5      n U R                  S5      n/ SQn[        R
                  " XSS9u  n  n[         R                  " XSS9u  pT[        X55        g )Ni  r   )r  r   r  r   r9   r   T)r  rC  )rj   rk   RandomStater  r'   r  	histogramr   )rngr  r  mpl_heightsr#  
np_heightss         r#   test_hist_unequal_bins_densityrK  
  s[     ))


&C		#A"Dt<KALLt<MJK,r%   c                  2   [         R                   " SSS5      [         R                   " SSS5      /[         R                   " SSS5      [         R                   " SSS5      //n [        R                  " 5       u  pUR                  U SS9  UR                  U SS9  g )N  r9   r:   T)r5  F)rO  r'   r   r  r  s      r#   test_hist_datetime_datasetsrN  
  s    tQ*H,=,=dAq,IJtQ*H,=,=dAq,IJLDllnGCGGD$GGGD%G r%   bins_preprocessc                     U $ r  r   r  s    r#   r  r  
  s    tr%   c                 0    [         R                  " U S5      $ )Nr  )rj   rY  r  s    r#   r  r  
  s    rzz$'Er%   )rR  zdatetime.datetimeznp.datetime64c           	         [         R                   " SSS5      [         R                   " SSS5      [         R                   " SSS5      [         R                   " SSS5      /[         R                   " SSS5      [         R                   " SSS5      [         R                   " SSS5      [         R                   " SSS5      //n[         R                   " SSS5      [         R                   " SSS5      [         R                   " SSS5      /n[        R                  " 5       u  p4UR                  X" U5      SS	9u  pVn[        R
                  R                  U[        R                  R                  U5      5        UR                  X" U5      S
S	9u  pVn[        R
                  R                  U[        R                  R                  U5      5        g )Ni  r9   r   rV  r:   r   rT  T)r  r5  F)
rO  r'   r   r  rj   r   r   r   r  rR  )rO  r  
date_edgesr-   r"   r#  r  s          r#    test_hist_datetime_datasets_binsrT  
  sq    tQ*H,=,=dAr,JtQ*H,=,=dAq,IKtQ+X->->tQ-JtQ+X->->tQ-JLMD
 ##D!Q/1B1B4A1N##D!Q/1J llnGCOJ$?NJAQJJtSYY%7%7
%CDOJ$?OJAQJJtSYY%7%7
%CDr%   zdata, expected_number_of_histsc                     [         R                  " U 5      u  n  n[        R                  " U5      nUR                  S:X  a	  SU:X  d   eg UR
                  S   U:X  d   eg )Nr9   r   )r'   r  rj   rY  ndimr  )r  expected_number_of_histshistsr#  s       r#   test_hist_with_empty_inputrY  /
  sV    
 ((4.KE1aJJuEzzQ,,,,{{1~!9999r%   zhisttype, zorderr  r  r  c                     [         R                  " 5       R                  5       nUR                  SS/U S9  UR                  (       d   eUR                   H  nUR                  5       U:X  a  M   e   g )Nr9   r:   r  )r'   r   r   r  r;  
get_zorder)r  r  r"   r  s       r#   test_hist_zorderr\  =
  s]    
 
	!	!	#BGGQFXG&:::!V+++ r%   c                  L   / SQ/ SQ/n [         R                  " U SS9u    pUS   R                   H/  n[        R                  " UR                  5       S5      (       a  M/   e   US   R                   H/  n[        R                  " UR                  5       S5      (       a  M/   e   g )NrH  )r   r/  r   rL  ra  r   r9   )r'   r  r;  r#  
same_colorro  )r  r#  r  r  s       r#   (test_hist_single_color_multiple_datasetsr_  I
  s    y!D88D4AqA&&!!!//"3S9999 'A&&!!!//"3S9999 'r%   c            	          [         R                  " 5       u  p[        R                  " [        SS9   UR                  / SQ/ SQSS SS9  S S S 5        g ! , (       d  f       g = f)Nzbaseline=None and fill=Truer  )r/  r   r9   r   r:   )r9   r:   r   r/  r   r   r   T)r4  r  rS  )r'   r   r   r  rb  stairsr,   s     r#   "test_stairs_no_baseline_fill_warnsrb  R
  sK    llnGC	k)F	G
		 	 	
 
H	G	Gs   A
A c                 F   SS K Jn  [        R                  " / SQ5      n[        R                  " / SQ5      nU R	                  SS5      R                  5       nUS   R                  X4S S9  US   R                  X4S SS	9  US   R                  X45        US   R                  X4SS
9  US   R                  X45        US   R                  5         US   R                  X4SS
9  US   R                  5         SSS.nUR	                  SS5      R                  5       nUS   R                  " U[        R                  " X3S   5      4SS0UD6  US   R                  " [        R                  " US   U5      U4SS0UD6  US   R                  " U[        R                  " X3S   5      4SS0UD6  US   R                  UR                  " US   US   /SUS   /40 UD65        US   R                  UR                  " US   US   /SUS   /40 UD65        US   R                  SS 5        US   R                  " [        R                  " US   U5      U4SS0UD6  US   R                  UR                  " SUS   /US   US   /40 UD65        US   R                  UR                  " SUS   /US   US   /40 UD65        US   R                  SS 5        US   R                  " U[        R                  " X3S   5      4SS0UD6  US   R                  UR                  " US   US   /SUS   /40 UD65        US   R                  UR                  " US   US   /SUS   /40 UD65        US   R                  5         US   R                  " [        R                  " US   U5      U4SS0UD6  US   R                  UR                  " SUS   /US   US   /40 UD65        US   R                  UR                  " SUS   /US   US   /40 UD65        US   R                  5         g )Nr   )r      r   %   0   r   r  r/  )	r   r   r  r  r        @      @       @      "@r   r:   r  r9   rR   )r  rT   rS   r/  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesrj   rP  r   flattenra  semilogyr  r   r  add_liner   r  r  )r    r!   mlinesr3   r2   	test_axesr   ref_axess           r#   test_stairsr{  ^
  s   %
01A
56A!!!Q'//1IaLt,aLtFaLaL,7aLaLaL,7aL !(6BE1%--/HQKQ		!rU+M|MuMQKRYYqtQ'LlLeLQKQ		!rU+M|MuMQK!ad|a1YH%HIQK"qu~1R5zKUKLQKD!QKRYYqtQ'LlLeLQK1Q4y1Q41,H%HIQK1R5zAbE1R5>KUKLQKD!QKQ		!rU+M|MuMQK!ad|a1YH%HIQK"qu~1R5zKUKLQKQKRYYqtQ'LlLeLQK1Q4y1Q41,H%HIQK1R5zAbE1R5>KUKLQKr%   c           	         / SQ/ SQp2SnU R                  SS5      R                  5       nUS   R                  X#SS9  US   R                  X#S	SS
9  US   R                  X#USS9  US   R                  X#US	SS9  UR                  SS5      R                  5       nUS   R                  U[        R
                  " X"S   5      SSS9  US   R                  SS 5        US   R                  U[        R
                  " X"S   5      SSS9  US   R                  SS 5        US   R                  U[        R
                  " X"S   5      [        R                  " [        U5      S-   5      U-  SSS9  US   R                  US 5        US   R                  U[        R
                  " X"S   5      [        R                  " [        U5      S-   5      U-  SSS9  US   R                  US 5        g )N)r9   r:   r   r/  r:   r   r9   r:   r   r/  r   r  r:   r   TrS  r9   rR   )rT   rS  )r  rS  r   )r  rT   rS  r   post)r  rM  )r   ru  ra  r  rj   r  r  r<  r  r   r  )r    r!   r  r  bsry  rz  s          r#   test_stairs_fillr  
  s   1t	B!!!Q'//1IaLd+aL\EaL"48aL",!  # 1%--/HQKT299Q"#6VJQKD!QKdBIIa2$7fKQKD!QKT299Q"#6WWSVAX.r11  FQKT"QKdBIIa2$7 ggc!fQh/2A  GQKT"r%   c                 |   SnU R                  5       nUR                  / SQ5      nUR                  U5        UR                  / SQ5        UR                  [        R
                  " S5      S-   S9  UR                  / SQ[        R
                  " S5      S-  5        UR                  / SQ5        UR                  S [        R
                  " S5      5        [        R                  " UR                  5       S   [        R
                  " S	S5      5      (       d   e[        R                  " UR                  5       S	   [        R
                  " S5      5      (       d   eUR                  S
S9  UR                  5       R                  S
:X  d   eUR                  5       nUR                  / SQS
S9nUR                  U5        g )N)r  r/  r  r  r/  r:   edges)r9   r:   r9   r   r9   r  rk  )	r   ra  r  set_datarj   rr   allcloseget_datar  )r    r!   r   test_axr  ref_axs         r#   test_stairs_updater  
  s?    D""$Gy!ATJJyJJRYYq\!^J$JJy"))A,q.)JJyJJtRYYq\";;qzz|A		!Q8888;;qzz|A		!5555JJJ::<  B&&&   "Fi"-A
OODr%   c                 (   [         R                  " / SQ5      n[         R                  " / SQ5      nU R                  5       nUR                  X2S S9  SSS.nUR                  5       nUR                  " U[         R
                  " X3S   5      4SS	0UD6  g )
N)r   r:   r   r   r~   )g|?5^?gV-?g+?rn  rk  rl  rm  rn  r   rq  rr  )rj   rP  r   ra  r   r  )r    r!   r2   r3   ry  r   rz  s          r#   test_stairs_baseline_Noner  
  s~    
!"A
,-A$$&IQD) '6BE""$HMM!RYYqB%(JLJEJr%   c                      [         R                  " 5       R                  5       n U R                  / S/5        U R	                  5       S:X  d   eU R                  5       S:X  d   eg )N*   )'   r  r|  )r'   r   r   ra  r   r   r  s    r#   test_stairs_emptyr  
  sN    		!	!	#BIIb2$;;=H$$$;;=M)))r%   c                      [         R                  " [        SS9   [        R                  " SS/S[
        R                  S/5        S S S 5        g ! , (       d  f       g = f)NNan values in "edges"r  r9   r:   r   )r   r   r  r'   ra  rj   r  r   r%   r#   test_stairs_invalid_nanr  
  s:    	z)@	A

Aq6Arvvq>* 
B	A	Ar  c                      [         R                  " [        SS9   [        R                  " SS/SS/5        S S S 5        g ! , (       d  f       g = f)NSize mismatchr  r9   r:   r   )r   r   r  r'   ra  r   r%   r#   test_stairs_invalid_mismatchr  
  s2    	z	9

Aq6Aq6" 
:	9	9	   ?
Ac                      [         R                  " SS// SQ5      n [        R                  " [        SS9   U R                  S[        R                  S/S9  S S S 5        g ! , (       d  f       g = f)Nr9   r:   rH  r  r  r  )r'   ra  r   r   r  r  rj   r  r  s    r#   test_stairs_invalid_updater  
  sJ    

Aq69%A	z)@	A	

!RVVQ
( 
B	A	As   !A
A-c                      [         R                  " SS// SQ5      n [        R                  " [        SS9   U R                  [        R                  " S5      S9  S S S 5        g ! , (       d  f       g = f)Nr9   r:   rH  r  r  r   r  )r'   ra  r   r   r  r  rj   rr   r  s    r#   test_stairs_invalid_update2r  
  sF    

Aq69%A	z	9	

1
& 
:	9	9s   $A""
A0ztest_stairs_options.pngc                  @   [         R                  " / SQ5      [         R                  " / SQ5      R                  [        5      pUR	                  5       n[         R
                  US'   [        R                  " 5       u  p4UR                  US-  U SSSS9  UR                  XS-  S-
  S	SS
SS9  UR                  X SSSSS9  UR                  US-  U S-  S-
  SSSS
SS9  UR                  US S S2   S-  S-   U S-
  S	SSS SS9  UR                  US S S2   S-  S-   U SSSSSS9  UR                  US S S2   S-  S-   U S-   [         R                  " SS [        U5      5      S!SS"SS#9  UR                  US S S S S2   S-  S$-   U S S S-   S%SSS&S'S(S)9  UR                  S*S+9  g ),Nr9   r:   r   r/  r   r  r9   r   r   Tr  )r   rS  r0   rJ  rR   r  )r   rS  rT   r0   r  r^  r:   r  )r   r'  rM  r0   r   rp  )r'  rM  r  rT   r0   r   r  E)r   r'  rM  r  r0   rd  rW  r  F)r  r   r'  rM  r0   r   rD     r   G)r  r   r'  r0   rS  rV  rA  r  r  H)r   r'  rM  r  rE  r0   r   r@   )rj   rP  r   r  copyr  r'   r   ra  r  r  rI   )r2   r3   ynr-   r"   s        r#   test_stairs_optionsr  
  s   88O$bhh|&<&C&CE&Jq	
BFFBqEllnGCIIac1G$cI:IIa1Qe$&c  3IIb8#I>IIbdAaCEdq3&c  3IIa"gailAaCu!d  IIa"gailA!3  8IIb2hqjmQqS2;;r2s1v+Ft3T  ;IIafTrTl1nR3B7tS  2II!Ir%   ztest_stairs_datetime.pngc            	         [         R                  " SS9u  pUR                  [        R                  " S5      [        R                  " [        R
                  " S5      [        R
                  " S5      5      5        [         R                  " SS9  g )NTrl  $   z
2001-12-27z
2002-02-02r   )rotation)r'   r   ra  rj   rr   r  xticks)fr"   s     r#   test_stairs_datetimer  
  sY    LLD1EAIIbiimiil3l356 JJr%   c                     U R                  5       nUR                  / SQSSS9  UR                  5       nUR                  / SQSS9nUR                  S5        g )Nr  rJ  T)r   rS  r~  )r   ra  	set_color)r    r!   r  r  sts        r#   test_stairs_edge_handlingr    sR     ""$GNN9EN5   "F	yt	,BLLr%   c                      [         R                  " SSS5      n [         R                  " SSS5      n[         R                  " U 5      [         R                  " US S 2[         R                  4   5      -   nXU4$ )Nr  r      r  )rj   r  rx  r  r  )r2   r3   r  s      r#   contour_datr    sW    
B3A
B3A
q	BFF1Q

]+,,A7Nr%   contour_hatchingc            
          [        5       u  pn[        R                  " 5       u  p4UR                  XUS/ SQ[        R
                  S   R                  S5      SS9  g )Nr  )rC  \r  r]  r  r   r   )r  r   extend)r  r'   r   r  r   r  
with_alphar  s        r#   test_contour_hatchingr    sN    mGA!llnGCKKa$:]]6*55c:  r%   contour_colorbargHzG?c                     [        5       u  pn[        R                  " 5       u  p4UR                  XU[        R
                  " SSS5      [        R                  S   SSSS9nUR                  XU[        R
                  " S	S
S5      S/SSS9nUR                  XU[        R
                  " SSS5      S/SS9nUR                  XTS9nUR                  U5        UR                  USS9  g )Ngg7A`?r   RdBug333333r  r   )levelsr   r  r  r  gg^I+r3   r   r:   )r  r  
linestylesr)  r'  r=   )r  r  r)  r  F)erase)r  r'   r   r  rj   rr   r   r  r  rJ   	add_lines)	r2   r3   r  r-   r"   cscs1cs2rM   s	            r#   test_contour_colorbarr  $  s     mGA!llnGC	Q1RYYtUC%@--/"	 
 
$B
 **Q1RYYtVS%A E ' !  #C **Q1RYYsC%= E !  #C <<<"DNN3NN3eN$r%   z
hist2d.pngc                     S[         R                  S'   [        R                  R	                  S5        [        R                  R                  S5      S-  S-   n [        R                  R                  S5      S-
  n[         R                  " 5       u  p#UR                  XSSS	9  XS
.n[         R                  " 5       u  p#UR                  SSSUSS9  g )NFru  r   r   r:   r   r~   Tr  
rasterizedr  r2   r3   )r  r  r  )r'   r   rj   rk   rl   r  r   hist2d)r2   r3   r-   r"   r  s        r#   test_hist2dr  ;  s     ',CLL"#IINN1
		Qq A
		QAllnGCIIaI- DllnGCIIc3RdtI<r%   zhist2d_transpose.pngc                  0   S[         R                  S'   [        R                  R	                  S5        [        R
                  " S/S-  5      n [        R                  R                  S5      S-
  n[         R                  " 5       u  p#UR                  XSSS	9  g )
NFru  r   r   r   r:   r~   Tr  )	r'   r   rj   rk   rl   rP  r  r   r  r	  s       r#   test_hist2d_transposer  M  so     ',CLL"#IINN1 	!SA
		QAllnGCIIaI-r%   c                      [         R                  R                  S5      u  p[        R                  " 5       R	                  5       nU[        4 H  nUR                  XSS9  M     g )Nr  TrB  )rj   rk   r'   r   r   r  )r2   r3   r"   objs       r#   test_hist2d_densityr  [  sJ    99H%DA				 BCy

1
& r%   c                     [         R                  R                  S5      u  p[        R                  " 5       R	                  5       nUR                  X5        UR                  5       U R                  5       U R                  5       4:X  d   eUR                  5       UR                  5       UR                  5       4:X  d   eUR                  5       (       d   eg )Nr  )rj   rk   r'   r   r   r  r   r}  r  r   r  )r2   r3   r"   s      r#   test_hist2d_autolimitsr  b  s    99H%DA		!	!	#BIIaO;;=QUUWaeeg....;;=QUUWaeeg....    r%   c            "           \ rS rSr\" S/SSS9S 5       r\" S/SSS	9S
 5       r\" S/SSS	9S 5       r\" 5       S 5       r	S r
\R                  R                  SSS0S\R                  " 5       0SS0SS0/5      S 5       rS r\R&                  R)                  S5      S 5       rS rS r\" 5       S 5       r\" 5       S 5       rS r\" 5       S 5       r\" 5       S  5       rS!S"/S#4S$S%S&/ S'QS(4S)S*/S#4S*/S+-  S#4S,/S--  S(4S,/S+-  S(4S,/S.-  S/4/ S0QS(4/ S1QS(4/ S2QS#4/ S3Q/S(4/ S3Q/S--  S/4/ S3Q/S+-  S(4/ S3Q/S.-  S/4/ S4Q/S(4/ S4Q/S--  S/4/ S4Q/S+-  S(4/ S4Q/S.-  S/4/ S4Q/S--  / S3Q/-   S(4/ S4QS5S6/S/4/ S4QS5S6S7/S(4/ S4QS5S6S7/ S8Q/S/4/ S4QS5S*/S#4/ S4QS5S6S*/S#4/ S4QS5S6S7S*/S#4/r\R                  R                  S9\5      S: 5       r\R&                  R)                  S5      \" 5       S; 5       5       rS< r S= r!S>r"g()?TestScatteril  r;   r   Tr  c                 \   [         R                  " / SQ5      [         R                  " / SQ5      / SQ/ SQ/ SQS.n[        R                  " 5       u  p#UR	                  US   S-
  US	   S-
  US
   US   S9  UR	                  US   S-   US	   S-   US   US   S9  UR	                  SS	S
SUS9  g )Nr   r/  r:   r   r:   r   r:   r   r`  r3   r$  limerU  r         )0.50.60.7z0.8)r2   r3   r=   r  c2r2   r   r3   r=   r  r=   r  r  )r=   r  r  )rj   rP  r'   r   r;   )r  r  r-   r"   s       r#   test_scatter_plotTestScatter.test_scatter_plotm  s    XXl+"((<2H,3C24 ,,.


49r>49r>T#Y$s)
L


49r>49r>T$Z49
M


3sc
5r%   zscatter_marker.pngrD  r  c                 .   [         R                  " SS9u  nu  p#nUR                  / SQ/ SQ/ SQ/ SQ/ SQSS	9  UR                  / SQ/ SQ/ SQ/ SQ/ SQ[        R                  " S
SS9S	9  Su  pVXV-  [
        R                  -  n[
        R                  " SS[
        R                  -  S5      n[
        R                  " [
        R                  " U5      U-  U-  [
        R                  " U5      U-  U-  /5      n	UR                  / SQ/ SQ/ SQ/ SQ/ SQU	S	9  g )Nr   r3  r  r  )r9   r   r   r3   r$  r  )r?  rb  r(  r   )rL  r`  gr$  r  )r=   r  rx  r   r   r?   	fillstyler  r   r:   r  )r'   r   r;   r  r  rj   r  r  column_stackrx  r  )
r  r-   r  r  r  rxryarear  r-  s
             r#   test_scatter_markerTestScatter.test_scatter_markerx  s    "||!4_cL,3&3	 	 	 
 	L,3&3#//uE	 	 	G wAq255y"-!3d!:!#!3d!:!< =L,3&3 	 	 	"r%   zscatter_2D.pngc                     [         R                  " S5      n[         R                  " S5      n[         R                  " X5      u  pX-   n[        R                  " 5       u  pEUR                  XUSSS9  g )Nr   r:   r  face)r=   r  rx  )rj   rr   r  r'   r   r;   )r  r2   r3   r  r-   r"   s         r#   test_scatter_2DTestScatter.test_scatter_2D  sT    IIaLIIaL{{1 E,,.


11
7r%   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " U Vs/ s H  n[        U5      PM     sn5      n[         R                  " U Vs/ s H  n[        U5      PM     sn5      n/ SQn/ SQn	UR                  5       n
U
R	                  XgXS9  UR                  5       n
U
R	                  X4XS9  g s  snf s  snf )NrW  rX  r  r  r  )rj   rP  r   r   r;   )r  r    r!   r[  r\  rB  r2   r3   r=   r  r"   s              r#   test_scatter_decimal TestScatter.test_scatter_decimal  s    XX*+XX*+HH"-"Qgaj"-.HH"-"Qgaj"-.# 


11
"


2Q
$ .-s   C5Cc                 D   [         R                  " [        5         [        R                  " SS/SS/SS/S9  S S S 5        [         R                  " [        5         [        R                  " / SQ/ SQ/ SQS9  S S S 5        g ! , (       d  f       NN= f! , (       d  f       g = f)Nr9   r:   r   r   ra  r  )r   r   r  r'   r;   r  s    r#   test_scatter_colorTestScatter.test_scatter_color  sc    ]]:&KKAAsCj9 ']]:&KK	9I> '& '&&&s   B B 
B
Br  r   r  r  r  r   r  c                    Sn[         R                  " [        US9   [        R                  " / / 40 UD6  S S S 5        [         R                  " [        US9   [        R                  " SS/SS/4S/ 0UD6  S S S 5        [        R                  " / / 4S/ 0UD6  [        R                  " SS/SS/4SSS/0UD6  g ! , (       d  f       N= f! , (       d  f       NZ= f)	Nz"No data for colormapping provided r  r9   r:   r   r/  r=   r   )r   r  Warningr'   r;   )r  r  
warn_matchs      r#   test_scatter_color_warning&TestScatter.test_scatter_color_warning  s     :
 \\'4KKB)&) 5\\'4KKAA7"77 5 	B+b+F+QFQF7q!f77 5444s   B8C	8
C	
Cc           
      (   [         R                  " / SQ/ SQ/ SQ[        R                  " SSS9/ SQS9nUR	                  5       R
                  S	:X  d   e[        UR                  5       / S
Q/ SQ/ SQ/5        [        UR                  5       / SQ5        g )NrH  r9   r   r:   0.1z0.3r  r   r0  r  rv  r@  ?r=   r   r)  )r   r/  r   r   r   r9   r   r   r   r9   r   r   r   r9   )	r'   r;   r  r  get_facecolorsr  r   get_edgecolorsget_linewidthsr  colls     r#   test_scatter_unfilled!TestScatter.test_scatter_unfilled  s    {{9i3H"*"6"6sf"M&57 ""$**f4444..03E3E3E3G 	H 	4..0/Br%   r  c                    [         R                  " / SQ/ SQ/ SQS/ SQS9n[        UR                  5       UR	                  5       5        [        UR	                  5       / SQ/ SQ/ S	Q/5        [        UR                  5       / SQ5        g )
NrH  r  r   r2   r  r  r  r  r  )r'   r;   r   r  r	  r
  r  s     r#   test_scatter_unfillable#TestScatter.test_scatter_unfillable  ss    {{9i3H"%&57 	4..0$2E2E2GH4..03E3E3E3G 	H 	4..0/Br%   c                     [         R                  " S5      n[        R                  " [        SS9   [
        R                  " XUSS  5        S S S 5        [        R                  " [        SS9   [
        R                  " USS  USS  U5        S S S 5        [        R                  " [        SS9   [
        R                  " XS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NY= f! , (       d  f       g = f)Nr/  z$cannot be broadcast to match x and yr  r9   zmust be floatr*  )rj   rr   r   r   r  r'   r;   )r  r2   s     r#   test_scatter_size_arg_size&TestScatter.test_scatter_size_arg_size  s    IIaL]]:-STKKae$ U]]:-STKK!"qua( U]]:_=KKe$ >=	 UTTT==s#   C,C,C/
C
C,/
C=c                    [         R                  " / SQS[        R                  [        R                  /SS9n[        R
                  " UR                  5       S5      (       d   e[         R                  " / SQS[        R                  [        R                  S/SS9n[        R
                  " UR                  5       S5      (       d   eg )Nr  r9   r  r5  r  r  )r'   r;   rj   r  r#  r^  rp  r  s     r#   test_scatter_edgecolor_RGB&TestScatter.test_scatter_edgecolor_RGB  s    {{9q"&&"&&&9&/1!!$"4"4"6	BBBB{{<!RVVRVVQ)?&24!!$"4"4"6EEEEr%   c           	         UR                  5       n[        R                  S   R                  S5      R	                  SS9nUR                  [        S5      [        S5      S[        R                  S[        R                  // SQUS	S
9  UR                  5       n[        R                  S   R                  S5      nUR                  SS/SS/SS/SS/US9  UR                  SS/SS/SS/SS9  g )Nr  r  rA  badr/  r9   r:   r  Tr=   r  r   plotnonfiniter   r   r=   r  r   rL  )r  r   	r   r   r  r  with_extremesr;   r   rj   r  r  r    r!   r"   r   s        r#   test_scatter_invalid_color&TestScatter.test_scatter_invalid_color  s     }}Y'11"5CCCP 	

58U1XBFF+|D 	 	2 }}Y'11"5


Aq6Aq6aV1vD
A


Aq6Aq6aV3
7r%   c           	      h   UR                  5       n[        R                  S   R                  S5      R	                  SS9nUR                  [        S5      [        S5      S[        R                  S[        R                  // SQUS	S
9  UR                  5       nUR                  SS/SS/SS/SS/US9  g )Nr  r  rL  r  r/  r9   r:   r  Fr  r   r   r  r  r!  s        r#   test_scatter_no_invalid_color)TestScatter.test_scatter_no_invalid_color  s      }}Y'11"5CCCL


58U1XBFF+|E 	 	3 


Aq6Aq6aV1vD
Ar%   c           
          / SQn[         R                  " 5       n[        R                  " [        SS9   UR                  XU[        R                  " SS5      SSS9  S	S	S	5        g	! , (       d  f       g	= f)
r   r  r!  r  r"  r~   r   r   )r=   r  r  r  N)r'   rz  r   r   r  r;   r#  r$  )r  r2   r"   s      r#   test_scatter_norm_vminvmax&TestScatter.test_scatter_norm_vminvmax  se    XXZ]]:"DE JJqqw'8'8b'AA  'E E Es   )A%%
A3c                     UR                  5       nUR                  SSSS9  UR                  5       nUR                  S/S/S/S9  g )Nr9   rX  )r   r;   )r  r    r!   r"   s       r#   test_scatter_single_point%TestScatter.test_scatter_single_point  sH     


1a1



A3s
#r%   c                 0   [         R                  " S5      nUR                  5       nUR                  X3R	                  SS5      UR	                  SS5      S9  UR                  5       nUR                  UR	                  SS5      X3R	                  SS5      S9  g )Nr~   r:   r   rX  )rj   rr   r   r;   r   )r  r    r!   r2   r"   s        r#   test_scatter_different_shapes)TestScatter.test_scatter_different_shapes  ss    IIbM 


1ii1o1a
9


199Q?A1a
9r%   )r  Nrgby
conversion)rJ  N)r0  NNN)r`  r  r$  r0  N)jauner1  r3  r/  r   r   r   r  )r  z0.4r  r  )r  rJ  r  C5)r  r   r  r4  r  r9   r   r   r   rJ  z0.0r4  r   r9   r   zc_case, re_keyc           	      |   S nSnSSS.nUb  [         R                  " [        XR   S9OL[        U[        5      (       a#  [        U5      S:X  a  [         R                  " SS9O[        R                  " 5       nU   [        R                  R                  R                  US	0 UUS
9  S S S 5        g ! , (       d  f       g = f)Nc                      gNr   r   r   r%   r#   get_next_color2TestScatter.test_scatter_c.<locals>.get_next_colorM  s    r%   r/  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r  r1  r  r   (argument looks like a single numeric RGBrA  r=   rx  r  xsizeget_next_color_func)r   r   r  r   r6  r  r  
contextlibnullcontextr   rz  r   _parse_scatter_color_args)r  c_casere_keyr:  r>  REGEXPassert_contexts          r#   test_scatter_cTestScatter.test_scatter_cK  s    	  99 ! MM*FN; &$''CK1,< $NO'') 	 HHMM33WRu$2 4 4 ^^s   8,B--
B;c                    / SQ/n/ SQ/nUR                  5       nUR                  [        R                  " S5      [	        S5      US9  UR                  [        R                  " S5      S-  [	        S5      US9  UR                  5       nUR                  [        R                  " S5      [	        S5      US9  UR                  [        R                  " S5      S-  [	        S5      US9  g )N)r9   r   皙?)r9   r   rJ  r   r   ra  r/  r:   rX  )r   r;   rj   r   r   )r  r    r!   rgbrgbarx   rw   s          r#   test_scatter_single_color_c'TestScatter.test_scatter_single_color_cc  s     "# !!#rwwqz5837rwwqz!|U1XT: ##%
E!H4
1eAh$7r%   c                    [         R                  " S5      n[        R                  " 5       u  p#[	        S5       HK  nUR                  U[         R                  " SU5      SU 3SSUS-   S9nUR                  5       US-   :X  a  MK   e   UR                  U[         R                  " SS5      SSS/ [	        SS5      QS PS9n[        UR                  5       / [	        SS5      Q[        R                  S	   P5        g )
Nr   r   r  r2   r   r9   )r=   r   r  r)  C3lines.linewidth)rj   rr   r'   r   r   r;   rd   r
  r   r   r   )r  r2   r-   r"   rB  pcs         r#   test_scatter_linewidths#TestScatter.test_scatter_linewidthss  s    IIaL,,.qAArwwq!}!A3s'(1u  .B$$&!a%/// 
 ZZ2771a=D#7U1a[#7$#7  92,,.JU1a[J#,,7H*IJ	Lr%   c                    [         R                  " [        SS9   [        R                  " / SQ/ SQ/ SQSS9  S S S 5        [         R                  " [        SS9   [        R                  " / SQ/ SQ/ SQS	S
9  S S S 5        [         R                  " [        SS9   [        R                  " / SQ/ SQ/ SQS	S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N_= f! , (       d  f       g = f)NzGGot both 'linewidth' and 'linewidths', which are aliases of one anotherr  r  )r   rM  r   r   )r)  r6  zGGot both 'edgecolor' and 'edgecolors', which are aliases of one another)#ffffffz#000000z#f0f0f0rV  )rx  r5  zGGot both 'facecolors' and 'facecolor', which are aliases of one another)
facecolorsr4  )r   r   r   r'   r;   r  s    r#   &test_scatter_singular_plural_arguments2TestScatter.test_scatter_singular_plural_arguments  s    ]]9"#$ KK	9TWX$
 ]]9"#$ KK	9#D$-/$ ]]9"#$ KK	9#D&/1$ $$ $
$ $$ $s#   B?CC!?
C
C!
C/r   )#r  r  r  r  r   r  r  r  r   r  r  r   markparametrizer#  r$  r  r  r   r   contextr  r  r  r"  r%  r(  r+  r.  params_test_scatter_crG  rM  rS  rX  r  r   r%   r#   r  r  l  s<   ykdC6 D6 +,$oV" W"0 '(d/R8 S8 % %? [[X%+V$4%+W->->-@$A%+QK%+QK	!"#
8#
8C 	YYy!C "C%F 8 8 B B' $ $ : : 	
< 	 $'
L!
1l#
q$
q$
q'	%t,	$d+	"L1
d
Q 
Q
Q 
	4 
	!	W%
	!	T"
	!	W%
	!	yk	)40
%	'1
%	-t4
%i	8'B
%	)<8
%	0,?
%g	6EQ)V [[-/DE4 F4. 	YYy!8  "8L1r%   r  )rx  c                
    XX14$ r  r   )r=   r>  rx  r  s       r#   _paramsr_    s    6))r%   _resultz	c, colorszparams, expected_resultr$  rI  )r=   r  r`  rX  r  ra  r  )r   r   r   r9   c                     S n[         R                  R                  R                  " U SU06u  p4nX1R                  :X  d   e[        XAR                  5        g )Nc                      gr9  r   r   r%   r#   r:  5test_parse_scatter_color_args.<locals>.get_next_color      r%   r?  )r   rz  r   rB  r=   r   r  )paramsexpected_resultr:  r=   r  _edgecolorss         r#   test_parse_scatter_color_argsrh    sQ     !XX]]DD	5%35A{!!!!!F223r%   zkwargs, expected_edgecolorsr  r  r0  )r5  rx  )r=   r5  rx  )r   r5  c                     S nU R                  SS 5      nU R                  SS 5      n[        R                  R                  R	                  X4U SUS9u    pVXa:X  d   eg )Nc                      gr9  r   r   r%   r#   r:  @test_parse_scatter_color_args_edgecolors.<locals>.get_next_color  rd  r%   r=   rx  r:   )r>  r?  )popr   rz  r   rB  )r  expected_edgecolorsr:  r=   rx  r#  result_edgecolorss          r#   (test_parse_scatter_color_args_edgecolorsro    se     	

3AL$/J//6 	0 	P Aq 333r%   c            	          S n [         R                  " [        SS9   [        R                  " / SQ/ SQ/5      n[
        R                  R                  R                  US 0 SU S9  S S S 5        g ! , (       d  f       g = f)Nc                      gr9  r   r   r%   r#   r:  ;test_parse_scatter_color_args_error.<locals>.get_next_color  rd  r%   z&RGBA values should be within 0-1 ranger  )r   r   r  )r   rM  r  r:   r  r>  r?  )	r   r   r  rj   rP  r   rz  r   rB  )r:  r=   s     r#   #test_parse_scatter_color_args_errorrt    sh     
zE
GHHo78//tBa^ 	0 	M
G 
G 
Gs   AA..
A<zYou passed both c and facecolor/facecolors for the markers. c has precedence over facecolor/facecolors. This behavior may change in the future.)rJ  r   rJ  r   r   r  r  r6  r  )r9   r9   r   zc, facecolorc           	         S n[         R                  " [        [        S9   [        R
                  R                  R                  U SSU0SUS9  SSS5        [         R                  " [        [        S9   [        R
                  R                  R                  U SSU0SUS9  SSS5        g! , (       d  f       Nb= f! , (       d  f       g= f)z<Test the internal _parse_scatter_color_args method directly.c                      gr9  r   r   r%   r#   r:  =test_parse_c_facecolor_warning_direct.<locals>.get_next_color  rd  r%   r  NrW  r:   r=  r4  )r   r  rb  WARN_MSGr   rz  r   rB  )r=   r4  r:  s      r#   %test_parse_c_facecolor_warning_directry    s     
k	2//D,	)B 	0 	9 
3 
k	2//D+y)A 	0 	9 
3	2 
3	2 
3	2s   .B+4.B<+
B9<
C
c                    [         R                  " 5       u  p#[        U [        [        45      (       a  SS/OS/nUn[
        R                  " [        [        S9   UR                  XEXS9  SSS5        [
        R                  " [        [        S9   UR                  XEXS9  SSS5        g! , (       d  f       NE= f! , (       d  f       g= f)z:Test the warning through the actual scatter plot creation.r   r9   r  )r=   rW  N)r=   r4  )
r'   r   r   r6  tupler   r  rb  rx  r;   )r=   r4  r-   r"   r2   r3   s         r#   ,test_scatter_c_facecolor_warning_integrationr|    s     llnGCQu..AQCA	A 
k	2


11
3 
3 
k	2


11
2 
3	2	 
3	2 
3	2s   B)B:)
B7:
Cc                      [         R                  " [        SS9   [        R                  " SS0S9  S S S 5        g ! , (       d  f       g = f)NzF'aitof' is not a valid value for projection\. Did you mean: 'aitoff'\?r  r  aitofr  )r   r   r  r'   r   r   r%   r#   test_invalid_projectionr    s8    	z9
: 	w 78
: 
: 
:s	   :
Ac                  V    " S S5      n U " 5       nU " 5       n[         R                  Ul        [        R                  " SUS9n[        U5      [        L d   e[        R                  " 5         [        R                  " SUS9n[        U5      [        L d   e[        R                  " 5         g )Nc                        \ rS rSrS rS rSrg)#test_as_mpl_axes_api.<locals>.Polari  c                     SU l         g Nr   theta_offsetr  s    r#   __init__,test_as_mpl_axes_api.<locals>.Polar.__init__  s
     !Dr%   c                 *    [         SU R                  04$ )Nr  )r   r  r  s    r#   _as_mpl_axes0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axes  s    ~t/@/@AAAr%   r  N)r  r  r  r  r  r  r  r   r%   r#   Polarr    s    	"	Br%   r  rI  r  y   )	rj   r  r  r'   rz  typer   r~  r|  )r  prjprj2r"   s       r#   test_as_mpl_axes_apir    s    B B 'C7DD 
,3	/B8y   IIK 
SS	)B8y   IIKr%   c                  L   [         R                  " 5       u  p[         R                  " 5       u  p#[         R                  " U5        U[         R                  " 5       L d   eU [         R                  " 5       L d   e[         R
                  " U 5        [         R
                  " U5        g r  )r'   r   scaru  gcfr~  )fig1r  fig2r  s       r#   test_pyplot_axesr  -  se    IDIDGGCL#'')3779IIdOIIdOr%   c                  p   [         R                  " 5       u  pUR                  [        R                  " [        R
                  " SS5      5      5        UR                  SSS9  UR                  5         UR                  SSS9  S UR                  UR                  4 5       u  p#U/ SQ:X  d   eU/ S	Q:X  d   eg )
Nr   r   r-        @)r  rj  c              3      #    U  HM  nUR                  5        Vs/ s H,  o"R                  5       UR                  R                  5       4PM.     snv   MO     g s  snf 7fr  )_update_ticksget_loclabel1get_text)r8  r!  r  s      r#   r9  "test_log_scales.<locals>.<genexpr>>  sM      (D 6:5G5G5IJ5I))+qxx((*	+5IJ( 	Ks   A3AA))r   z$\mathdefault{9^{0}}$)rj  z$\mathdefault{9^{1}}$)g     @T@z$\mathdefault{9^{2}}$r   r   r  r   r  r   r  r   )rg  r   )rh  r   )ri  r   )g      2@r   )g      ;@r   )g      B@r   )g     F@r   )g      K@r   )g     O@r   )      R@r   ))gF]tE?z$\mathdefault{5.5^{-1}}$)r   z$\mathdefault{5.5^{0}}$)r  z$\mathdefault{5.5^{1}}$)gF]tE?r   )gtE]t?r   )gF]tE?r   )g]tE?r   r  r  r  r  )r'   r   r   rj   r-  r  r  r  r^  r[   r]   )r-   r"   r  ytickss       r#   test_log_scalesr  8  s    llnGCGGBFF2;;sC()*MM%cM"OOMM%cM"XXrxx(NF     &     r%   c                     [         R                  " 5       u  pUR                  SSS9  UR                  R	                  [
        R                  " S5      5        UR                  5       UR                  5       s=:X  a  S:X  d   e   eg )Nr-  )r  r  r9   r9   r~   )	r'   r   r   r[   r  r   MultipleLocatorr   r   r"  s     r#   test_log_scales_no_datar  d  sa    LLNEAFF%F&HHw66q9:;;=BKKM4W44444r%   c                     [         R                  " 5       u  pUR                  S5        [        R                  " [
        SS9   UR                  SS5        S S S 5        UR                  S5        [        R                  " [
        SS9   UR                  SS5        S S S 5        g ! , (       d  f       NT= f! , (       d  f       g = f)Nr-  zAttempt to set non-positiver  r   r~   )	r'   r   r^  r   r  rb  r  r  r  r,   s     r#   test_log_scales_invalidr  k  s    llnGCMM%	k)F	G
B 
HMM%	k)F	G
B 
H	G 
H	G 
H	Gs   B#B4#
B14
Czstackplot_test_image.pngc            	         [         R                  " 5       n [        R                  " SSS5      nSU-  nSU-  S-   nSU-  S-   nU R	                  SSS5      nUR                  XX45        UR                  SS5        UR                  SS5        XX4S	.n[         R                  " 5       u  pUR                  S
SSSU/ SQS9  UR                  SS5        UR                  SS5        g )Nr   r~   r   r   r9   r  r:   r>  )r2   r  rS  y3r2   r  rS  r  )r  C1C2)r  r  )	r'   r   rj   r  r   	stackplotr  r  r   )r-   r2   r  rS  r  r"   r  s          r#   test_stackplotr  u  s     **,C
Ar2A	qB	q1B	q1B	Aq	!BLLKK2KK2 B1DllnGCLLdD$T:LLMKK2KK2r%   zstackplot_test_baseline.pngc                     [         R                  R                  S5        S n U " SS5      nSUSS S 24'   [        R                  " SS5      u  p#US   R                  [        S5      UR                  SS	9  US
   R                  [        S5      UR                  SS	9  US   R                  [        S5      UR                  SS	9  US   R                  [        S5      UR                  SS	9  g )Nr   c                    [         R                  " X45      n[        U 5       H  n[        S5       H  nSS[         R                  R                  5       -   -  nS[         R                  R                  5       -  S-
  nSS[         R                  R                  5       -   -  nUS S 2U4==   U[         R                  " [         R
                  " U5      U-  U-
  U-  S-  * 5      -  -  ss'   M     M     U$ )Nr   r9   r   r:   r   r~   )rj   r  r   rk   exprr   )r  r  r   rB  jr2   r3   r  s           r#   layers'test_stackplot_baseline.<locals>.layers  s    HHaVqA1Xbii..001		((**R/"ryy//112!Q$1rvv1)9A)=(Bq'H&HIII	   r%   r   r   rb  r:   r  zerork  r  symr9   r   wiggler  weighted_wiggle)rj   rk   rl   r'   r   r  r   r  )r  r  r-   r  s       r#   test_stackplot_baseliner    s     IINN1 	q#AAb!eH||Aq!HCIc
ACC&9Ic
ACC%8Ic
ACC(;Ic
ACC2CDr%   c           	         [         R                  " SSS5      nSU-  nSU-  S-   nSU-  S-   nUR                  5       nUR                  X#XE/ SQS	/S
9  UR	                  SS5        UR                  SS5        [         R                  " [        U5      5      nU R                  5       nUR                  X'USS	S9  UR                  X#X4-   SS	S9  UR                  X#U-   X4-   U-   SS	S9  UR	                  SS5        UR                  SS5        g )Nr   r~   r   r   r9   r  r:   )r2   r  \\rB  )rE  r  r>  r2   )rE  r4  r  r  )	rj   r  r   r  r  r  r  r  r  )	r!   r    r2   r  rS  r  rw   stack_baselinerx   s	            r#   test_stackplot_hatchingr    s   
Ar2A	qB	q1B	q1B!GaR+>yQQQXXc!f%NF
2SGL
ruDGD
b5"%(&GL
OOAr
OOArr%   c                     [         R                  " SSS5      n SU -  nSU -  S-   nSS/n[        R                  " 5       u  pEUR	                  XX#SS	/S
9n[        Xc5       H1  u  px[        R                  " UR                  5       U5      (       a  M1   e   UR	                  XX#SS	/S9n[        Xc5       H1  u  px[        R                  " UR                  5       U5      (       a  M1   e   g )Nr   r~   r   r   r9   r`  r$  r=   r  )r4  r  )rW  r  )	rj   r  r'   r   r  r  r#  r^  ro  )	r2   r  rS  rW  r-   r"   collsr  fcolors	            r#   test_stackplot_facecolorr    s    
Ar2A	qB	q1BsJllnGCLL#sLLEE.!!$"4"4"6???? / LL3*LMEE.!!$"4"4"6???? /r%   c                      [         R                  " 5       n U R                  SSS9nU H*  nUR                  SSS9nUR	                  SS/SS//S/S9  M,     U R                  5         U R                  5         g )Nr9   r:   r1  r   r/  r   r  )r'   r   
subfiguresr   r  rI   draw_without_rendering)r-   subfigs_figr"   s       r#   test_stackplot_subfig_legendr    sr     **,Cnn1An.G]]!],
aVq!fXse4  JJL r%   c                     U $ r  r   )r  s    r#   r  r    s    1r%   c                    [         R                  R                  S5        [        R                  R
                  " [         R                  R                  SSSS940 U D6n[        R                  " 5       u  pEUR                  SS5      S:X  a  UR                  S5        OUR                  S5        UR                  S	S
5      (       d$  [        R                  S   [        R                  S'   UR                  " U" U5      40 UD6  g )N  rn  r   )re  r/  )meansigmar'  rT   verticalr-  patch_artistFrQ  boxplot.boxprops.linewidth)rj   rk   rl   r   cbookboxplot_stats	lognormalr'   r   getr  r^  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr-   r"   s         r#   _bxp_test_helperr    s    IINN3yy&&
		Rg>PBNPHllnGC~~mZ0J>
e
e >>.%00LL*+ 	12FF?8$3
3r%   zbxp_baseline.pngr(  c                      [        5         g r  r  r   r%   r#   test_bxp_baseliner    s
     r%   zbxp_rangewhis.pngc                  (    [        [        SS/S9S9  g )Nr   r   whisr  r  r  r   r%   r#   test_bxp_rangewhisr    s     $QH"56r%   zbxp_percentilewhis.pngc                  (    [        [        SS/S9S9  g )Nr   _   r  r  r  r   r%   r#   test_bxp_percentilewhisr    s     $QG"45r%   zbxp_with_xlabels.pngc                      S n [        U S9  g )Nc                 J    [        U [        S5      5       H	  u  pX!S'   M     U $ NABCDr0   r  r6  statsr  r0   s      r#   r3  (test_bxp_with_xlabels.<locals>.transform  %    E4<0HAgJ 1r%   )r  r  r3  s    r#   test_bxp_with_xlabelsr    s    
 Y/r%   zbxp_horizontal.pngr   )r  r@  r   r   c                  $    [        [        SS9S9  g )NrR   rS   r  r  r   r%   r#   test_bxp_horizontalr    s      >?r%   zbxp_with_ylabels.pngc                  ,    S n [        U [        SS9S9  g )Nc                 J    [        U [        S5      5       H	  u  pX!S'   M     U $ r  r  r  s      r#   r3  (test_bxp_with_ylabels.<locals>.transform  r  r%   rR   rS   r  r  r  r  s    r#   test_bxp_with_ylabelsr    s    
 Y $ >@r%   zbxp_patchartist.png)r  r@  r   c                  $    [        [        SS9S9  g )NT)r  r  r  r   r%   r#   test_bxp_patchartistr  #  s    
 $ 78r%   zbxp_custompatchartist.pngr   c                  8    [        [        S[        SSSS9S9S9  g )NTr  r   :)r4  r5  r'  )r  boxpropsr  r  r   r%   r#   test_bxp_custompatchartistr  +  s$    
 GD!F Gr%   zbxp_customoutlier.pngc            
      6    [        [        [        SSSS9S9S9  g )Nr0  r  r  r   r   mfc)
flierpropsr  r  r   r%   r#   test_bxp_customoutlierr
  5  s!    
 &#>!@ Ar%   zbxp_withmean_custompoint.pngc                  8    [        [        S[        SSSS9S9S9  g )NTr0  r  r   r  )	showmeans	meanpropsr  r  r   r%   r#   test_bxp_showcustommeanr  >  s"    
 A! r%   zbxp_custombox.pngc            
      6    [        [        [        SSSS9S9S9  g )Nr^  r$  r   r   r   rM  )r  r  r  r   r%   r#   test_bxp_customboxr  I      
 CA6!8 9r%   zbxp_custommedian.pngc            
      6    [        [        [        SSSS9S9S9  g )Nr^  r$  r   r  medianpropsr  r  r   r%   r#   test_bxp_custommedianr  R  s    
 4sq9!; <r%   zbxp_customcap.pngc            
      6    [        [        [        SSSS9S9S9  g )Nr^  r  r   r  )cappropsr  r  r   r%   r#   test_bxp_customcapr  [  r  r%   zbxp_customwhisker.pngc            
      6    [        [        [        SSSS9S9S9  g )Nr]  r  r   r  )whiskerpropsr  r  r   r%   r#   test_bxp_customwhiskerr  d  s    
 Csq9!; <r%   c                     [         R                  " S5      nSS0n0 UESS0EnU R                  5       R                  X#S9  UR                  5       R                  X$S9  g )Nr   r6  r  rp  rm  r  )rj   rr   r   r  )r    r!   r  medianprops_testmedianprops_refs        r#    test_boxplot_median_bound_by_boxr   m  sa    99Q<D#R(D)D+;VDODtAr%   zbxp_withnotch.pngc                  $    [        [        SS9S9  g )NT)shownotchesr  r  r   r%   r#   test_bxp_shownotchesr#  v  s    
  67r%   zbxp_nocaps.pngc                  $    [        [        SS9S9  g )NF)showcapsr  r  r   r%   r#   test_bxp_nocapsr&  ~  s    
 e 45r%   zbxp_nobox.pngc                  $    [        [        SS9S9  g )NF)showboxr  r  r   r%   r#   test_bxp_noboxr)    s    
 U 34r%   zbxp_no_flier_stats.pngc                  ,    S n [        U [        SS9S9  g )Nc                 <    U  H  nUR                  SS 5        M     U $ )Nfliers)rl  )r  r  s     r#   r3  *test_bxp_no_flier_stats.<locals>.transform  s    AEE(D! r%   F)
showfliersr  r  r  s    r#   test_bxp_no_flier_statsr/    s    

 Y $ 68r%   zbxp_withmean_point.pngc                  &    [        [        SSS9S9  g )NTFr  meanliner  r  r   r%   r#   test_bxp_showmeanr3    s    
 te DEr%   zbxp_withmean_line.pngc                  &    [        [        SSS9S9  g )NTr1  r  r  r   r%   r#   test_bxp_showmeanasliner5    s    
 td CDr%   zbxp_scalarwidth.pngc                  $    [        [        SS9S9  g )Nr  r  r  r  r   r%   r#   test_bxp_scalarwidthr7    s    
 C 01r%   zbxp_customwidths.pngc                  (    [        [        / SQS9S9  g )N)r   r  g?g333333?r  r  r  r   r%   r#   test_bxp_customwidthsr9    s    
 ,D EFr%   zbxp_custompositions.pngc                  (    [        [        / SQS9S9  g )N)r9   r   r   r  r  r  r  r   r%   r#   test_bxp_custompositionsr;    s    
 | <=r%   c                      [         R                  " [        5         [        [	        S/S9S9  S S S 5        g ! , (       d  f       g = f)Nr9   r  r  r   r   r  r  r  r   r%   r#   test_bxp_bad_widthsr>    s)    	z	"D$45 
#	"	"	   6
Ac                      [         R                  " [        5         [        [	        SS/S9S9  S S S 5        g ! , (       d  f       g = f)Nr:   r   r  r  r=  r   r%   r#   test_bxp_bad_positionsrA    s+    	z	"DAq6$:; 
#	"	"s	   7
Azbxp_custom_capwidths.pngc                  (    [        [        / SQS9S9  g )N)r  r   r   r   r  r  r  r   r%   r#   test_bxp_custom_capwidthsrC    s     /C DEr%   zbxp_custom_capwidth.pngc                  $    [        [        SS9S9  g )Nr  r  r  r  r   r%   r#   test_bxp_custom_capwidthrE    s     s 34r%   c                      [         R                  " [        5         [        [	        S/S9S9  S S S 5        g ! , (       d  f       g = f)Nr9   r  r  r=  r   r%   r#   test_bxp_bad_capwidthsrG    s)    	z	"DA3$78 
#	"	"r?  zboxplot.pnggQ?)r   r   c                     [         R                  R                  S5        [         R                  " SSS5      n [         R                  " SU S/5      n [
        R                  " 5       u  pUR                  X /SSS	9  UR                  S
S5        SX /0n[
        R                  " 5       u  pUR                  SSSUS9  UR                  S
S5        g )Nr  r     r  '  r9   	bootstrapnotchr   r   r2   )rN  rO  r  	rj   rk   rl   r  hstackr'   r   r  r  )r2   r-   r"   r  s       r#   test_boxplotrR    s     IINN3
B3A
		32,AllnGCJJvaJ0KKR !=DllnGCJJse14J8KKRr%   c                    [         R                  " SSS5      nU R                  5       nX"S:     nUR                  U5        [         R                  R                  US5      nUR                  5       nUR                  U5        g )Nr   r9   r  r   )rj   r  r   r  r	   masked_less)r    r!   x_origr"   r2   s        r#   test_boxplot_maskedrV    sj     [[Q$F				B{AJJqM
&!$A				BJJqMr%   zboxplot_custom_capwidths.pngc                      [         R                  " SSS5      n [         R                  " SU S/5      n [        R                  " 5       u  pUR                  X /SSS/S	9  g )
NrI  r  rJ  rK  r  r9   r   r   )rO  r  )rj   r  rQ  r'   r   r  rE  s      r#   test_boxplot_custom_capwidthsrX    sO     	B3A
		32,AllnGCJJvQ4+J6r%   zboxplot_sym2.pngc                  l   [         R                  R                  S5        [         R                  " SSS5      n [         R                  " SU S/5      n [
        R                  " SS5      u  nu  p#UR                  X /S	S
S9  UR                  SS5        UR                  X /S	SS9  UR                  SS5        g )Nr  rI  r  rJ  rK  r  r9   r:   rL  ^)rN  r  r   r   r  rP  )r2   r-   r  r  s       r#   test_boxplot_sym2r[    s     IINN3
B3A
		32,All1a(OC#KK%SK1LLbKK%SK1LLbr%   zboxplot_sym.pngc                      [         R                  " SSS5      n [         R                  " SU S/5      n [        R                  " 5       u  pUR                  X /SS9  UR                  SS	5        g )
NrI  r  rJ  rK  r  r0  r  r   r   )rj   r  rQ  r'   r   r  r  rE  s      r#   test_boxplot_symr^    sW    
 	B3A
		32,AllnGCJJv4J KKRr%   z$boxplot_autorange_false_whiskers.pngz#boxplot_autorange_true_whiskers.pngc                     [         R                  R                  S5        [         R                  " S5      n [         R                  " SU S/5      n [
        R                  " 5       u  pUR                  X /SSS9  UR                  SS	5        [
        R                  " 5       u  p4UR                  X /SSS
S9  UR                  SS	5        g )Nr  rJ  r   r:   rL  r9   rM  r  r   T)rN  rO  	autorange)	rj   rk   rl   r   rQ  r'   r   r  r  )r2   r  r  r  r  s        r#   test_boxplot_autorange_whiskersra  *  s    
 IINN3
A
		1a)AIDKK%qK1LLQIDKK%qDKALLQr%   c                     [         R                  " SSS5      n[         R                  " SUS/5      n[        R                  " U5         U R                  X"/5        S S S 5        U $ ! , (       d  f       U $ = f)NrI  r  rJ  rK  r  )rj   r  rQ  rW   r   r  )r"   rc_dictr2   s      r#   _rc_test_bxp_helperrd  =  s\    
B3A
		32,A			w	'


A6 
(I 
(	'Is   A%%
A4zboxplot_rc_parameters.png)r@  r  r   r   c                     [         R                  R                  S5        [        R                  " S5      u  p0 SS_SSS/_SS	_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SSS .EnS!S"/SS#.nSS$S$S$SSSSSSSS%S&.nX#U/n[        X5       H  u  pg[        Xg5        M     [        R                  R                  US'   R                  5        Vs/ s H  n[        U5      PM     sn;   d   eg s  snf )(Nr  r   zboxplot.notchTboxplot.whiskersr   r  zboxplot.bootstraprL  zboxplot.flierprops.colorr$  boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorr  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestyler^  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorr`  r  zboxplot.boxprops.linestylezboxplot.capprops.colorr=   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorrL  )zboxplot.medianprops.linewidthzboxplot.medianprops.linestyler   r   )rf  zboxplot.patchartistF-.)rf  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.linestyler9   )rj   rk   rl   r'   r   r  rd  rW   r;  r<  get_childrenr  )	r-   r"   rc_axis0rc_axis1rc_axis2	dict_listr!  rc_axisr  s	            r#   test_boxplot_rc_parametersro  E  s   
 IINN3ll1oGCQG 	U
 	#C 	$S 	-c 	-c 	( 	' 	' 	!# 	%c 	%d" 	!##$ 	%c%& 	%d'* 	$S+, *-)-/H6 H#H  ! #! #&'*'+&)*-*.H  X.IR+D* , (( e00232T!W234 5 43s   C9zboxplot_with_CIarray.pngc                  Z   [         R                  R                  S5        [         R                  " SSS5      n [         R                  " SU S/5      n [
        R                  " 5       u  p[         R                  " SS/S	S
//5      nUR                  X /SS S/USS9  UR                  SS5        g )Nr  rI  r  rJ  rK  r  ri  r  rj        @rL  r   r9   )rN  usermediansconf_intervalsrO  r   r   )
rj   rk   rl   r  rQ  r'   r   rP  r  r  )r2   r-   r"   CIss       r#   test_boxplot_with_CIarrayru    s     IINN3
B3A
		32,AllnGC
((T2Jc
+
,C JJvT3K!  ,KKRr%   zboxplot_no_inverted_whisker.pngc                  &   [         R                  " / SQ[         R                  S9n [        R                  " 5       nUR                  U 5        UR                  S5        UR                  R                  SSS9  UR                  R                  S5        g )N)r   i(#  r  X   i^  i@ ix  i  r  r-  Fminorwhich)
rj   rP  r  r'   rz  r  r  r]   r  r[   )r2   r  s     r#   test_boxplot_no_weird_whiskerr{    sb     	;zz	#A
((*CKKNNN5IINN5N(IINN5r%   c                     [         R                  " SSS5      n [         R                  " SU S/5      n [        R                  " 5       u  p[
        R                  " [        5         UR                  U SS/S9  S S S 5        [
        R                  " [        5         UR                  X /SS/SS//S9  S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)	NrI  r  rJ  rK  r  r9   r:   )rr  	rj   r  rQ  r'   r   r   r   r  r  rE  s      r#   test_boxplot_bad_mediansr~    s    
B3A
		32,AllnGC	z	"


11a&
) 
#	z	"


A6AA'7
8 
#	" 
#	"	"	"s   #B9C
9
C

Cc                     [         R                  " SSS5      n [         R                  " SU S/5      n [        R                  " 5       u  p[
        R                  " [        5         UR                  X /SS//S9  S S S 5        [
        R                  " [        5         UR                  X /SS/S//S9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)	NrI  r  rJ  rK  r  r9   r:   )rs  r}  rE  s      r#   test_boxplot_bad_cir    s    
B3A
		32,AllnGC	z	"


A6Aq6(
3 
#	z	"


A6Aq6A3-
8 
#	" 
#	"	"	"s   #B:C:
C
Cc                     [         R                  " S5      n [        R                  " 5       u  pUR	                  U 5      S   S   R                  5       S:X  d   eUR	                  U SS9S   S   R                  5       S:X  d   eg )Nr~   boxesr   r:   r  )rj   rr   r'   r   r  r[  )r2   r  r"   s      r#   test_boxplot_zorderr    ss    
		"AllnGC::a=!!$//1Q666::a:#G,Q/::<BBBr%   c                     S[         R                  S'   S[         R                  S'   S[         R                  S'   [         R                  " 5       u  p[        R                  " S5      nSUS	'   UR                  US
S9nS H$  nX4    H  nUR                  5       S:X  a  M   e   M&     US   S   R                  5       S:X  d   eUS   S   R                  5       S:X  d   eg )Nr  rt  r   rg  rZ  zboxplot.meanprops.markerr   r  r   T)r  )whiskerscapsr  mediansr   r,  r   means)r'   r   r   rj   rr   r  
get_marker)r-   r"   	test_data
bxp_handle	bxp_lines	each_lines         r#   test_boxplot_marker_behaviorr    s    #&CLL 03CLL,-/2CLL+,llnGC		#IIbMI6J=	#.I'')R/// / > h"--/3666gq!,,.#555r%   z&boxplot_mod_artists_after_plotting.pngc                      / SQn [         R                  " 5       u  pUR                  U SS9nU H  nX4    H  nUR                  S5        M     M!     g )N)r  rs  r}  r}  Q?gQ?gQr   r]  r   )r'   r   r  r  )r2   r-   r"   bpkeyr  s         r#   &test_boxplot_mod_artist_after_plottingr    sJ     	4AllnGC	A3	B7CMM'"  r%   zviolinplot_vert_baseline.pngc            	         [         R                  R                  S5        [        S5       V s/ s H   n [         R                  R	                  SS9PM"     nn [
        R                  " 5       nUR                  U[        S5      SSSS9  SU0n[
        R                  " 5       u  p2UR                  S[        S5      SSSUS9  g s  sn f )	Nier/  r   r&  Fr  r  showextremashowmediansr  )r  r  r  r  r  )	rj   rk   rl   r   rm   r'   rz  
violinplotr   )r#  r  r"   r-   s       r#   test_vert_violinplot_baseliner    s     IINN905a91BII#&D9	BMM$%(e#  % ;DllnGCMM#qU#$  0 :s   'C zviolinplot_vert_showmeans.pngc                     [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSS9  g s  snf )Niw5+r/  r   r&  TFr  r'   rz  rj   rk   rl   r   rm   r  r"   r#  r  s      r#   test_vert_violinplot_showmeansr    sl    	BIINN905a91BII#&D9MM$%(d#  % :   'Bzviolinplot_vert_showextrema.pngc                     [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSS9  g s  snf )Nir/  r   r&  FTr  r  r  s      r#    test_vert_violinplot_showextremar    sl    	BIINN905a91BII#&D9MM$%(e#  % :r  zviolinplot_vert_showmedians.pngc                     [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSS9  g s  snf )Nib}&r/  r   r&  FTr  r  r  s      r#    test_vert_violinplot_showmediansr     sl    	BIINN905a91BII#&D9MM$%(e"  $ :r  zviolinplot_vert_showall.pngc                  4   [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSS/SS	/S
S/SS//S9  g s  snf )NiOr/  r   r&  Tr   ?r   r&  r   r  rM  r  )r  r  r  r  	quantilesr  r  s      r#   test_vert_violinplot_showallr  
  s    	BIINN905a91BII#&D9MM$%(d"!3Z#sc3Z#sL  N :s   'Bz#violinplot_vert_custompoints_10.pngc            	         [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSS9  g s  snf )Ni$r/  r   r&  Fr~   r  r  r  r  pointsr  r  s      r#   $test_vert_violinplot_custompoints_10r    sn    	BIINN905a91BII#&D9MM$%(e#B  0 :   'B	z$violinplot_vert_custompoints_200.pngc            	         [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSS9  g s  snf )NiYqVr/  r   r&  Fr  r  r  r  s      r#   %test_vert_violinplot_custompoints_200r    sn    	BIINN905a91BII#&D9MM$%(e#C  1 :r  zviolinplot_horiz_baseline.pngc            	         [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSS9  g s  snf )Ni\dr/  r   r&  rR   Fr  rT   r  r  r  r  r  s      r#   test_horiz_violinplot_baseliner  )  so    	BIINN905a91BII#&D9MM$%(PU#  8 :r  z violinplot_horiz_showmedians.pngc            	         [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSS9  g s  snf )	Nilo/r/  r   r&  rR   FTr  r  r  s      r#   !test_horiz_violinplot_showmediansr  3  so    	BIINN905a91BII#&D9MM$%(PU#  7 :r  zviolinplot_horiz_showmeans.pngc            	         [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSS9  g s  snf )	Ni&r/  r   r&  rR   TFr  r  r  s      r#   test_horiz_violinplot_showmeansr  =  so    	BIINN905a91BII#&D9MM$%(PT#  8 :r  z violinplot_horiz_showextrema.pngc            	         [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSS9  g s  snf )	Nie!r/  r   r&  rR   FTr  r  r  s      r#   !test_horiz_violinplot_showextremar  G  so    	BIINN905a91BII#&D9MM$%(PU"  7 :r  zviolinplot_horiz_showall.pngc                  6   [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSSS/S	S
/SS/SS//S9  g s  snf )Ni"r/  r   r&  rR   Tr   r  r   r&  r   r  rM  r  )r  rT   r  r  r  r  r  r  s      r#   test_horiz_violinplot_showallr  Q  s    	BIINN805a91BII#&D9MM$%(PT"!3Z#sc3Z#sL  N :s   'Bz$violinplot_horiz_custompoints_10.pngc            
         [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSSS9  g s  snf )	Ni0r/  r   r&  rR   Fr~   r  rT   r  r  r  r  r  r  s      r#   %test_horiz_violinplot_custompoints_10r  \  sr    	BIINN905a91BII#&D9MM$%(PU#r  C :   'B
z%violinplot_horiz_custompoints_200.pngc            
         [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nnU R                  U[        S5      SSSSSS9  g s  snf )	Ni<9!r/  r   r&  rR   Fr  r  r  r  s      r#   &test_horiz_violinplot_custompoints_200r  f  sr    	BIINN905a91BII#&D9MM$%(PU#s  D :r  zviolinplot_sides.pngc                  `   [         R                  " 5       n [        R                  R	                  S5        [        R                  R                  SS9/n[        / SQ/ SQ5       H  u  p#U R                  X/SSSSUS	9  M     [        / S
Q/ SQ5       H  u  p#U R                  X/SSSSUS	9  M     g )Nr`   r   r&  )r   r  r   )r   lowhighrR   FT)r  rT   r  r  r  side)r/  rq        @r  )r'   rz  rj   rk   rl   rm   r  r  )r"   r  r   r  s       r#   test_violinplot_sidesr  p  s    	BIINN8II#&'D)@A	
deQV"&Dt 	 	E B (?@	
deu"&Dt 	 	E Ar%   c            	          [         R                   " SSS5      [         R                   " SSS5      [         R                   " SSS5      /n U / SQSS	S
S/ SQS.U / SQSSSS/ SQS./$ )Ni  r:   r~   r   rT  r   )r@  ffffff@r   gq=
ףp?r   r@  r  )r@  r   r  )coordsr  r  medianr}  r  r  )r&  rv  r  gGz?r  r&  rv  )r&  r  rv  )rO  )	datetimess    r#   violin_plot_statsr    s    $2&$2&$1%I $ $ r%   c                  (   [         R                  " 5       u  p[        R                  " S5      [        R                  " S5      /nSS/n[        R
                  " [        SS9   UR                  [        5       X#S9  SSS5        g! , (       d  f       g= f)	?Test that datetime positions with float widths raise TypeError.
2020-01-01z
2021-01-01r   r   z?np.datetime64 'position' values require np.timedelta64 'widths'r  r  r  N)	r'   r   rj   r  r   r   r   violinr  r-   r"   r  r  s       r#   'test_datetime_positions_with_datetime64r    sm    llnGC|,bmmL.IJI3ZF	y8
: 			#%	J
: 
: 
:s   !B
Bc                  0   [         R                  " 5       u  p[        R                  " SSS5      [        R                  " SSS5      /nSS/n[        R                  " [
        SS9   UR                  [        5       X#S9  S	S	S	5        g	! , (       d  f       g	= f)
r    r9   r  r   r   :datetime/date 'position' values require timedelta 'widths'r  r  Nr'   r   rO  r   r   r   r  r  r  s       r#   0test_datetime_positions_with_float_widths_raisesr    sy    llnGC""4A.0A0A$10MNI3ZF	y3
5 			#%	J
5 
5 
5s   %B
Bc                  ,   [         R                  " 5       u  p[        R                  " SSS5      [        R                  " SSS5      /nSn[        R                  " [
        SS9   UR                  [        5       X#S9  SSS5        g! , (       d  f       g= f)	zETest that datetime positions with scalar float width raise TypeError.r  r9   r  rm  r  r  r  Nr  r  s       r#   6test_datetime_positions_with_scalar_float_width_raisesr    su    llnGC""4A.0A0A$10MNIF	y3
5 			#%	J
5 
5 
5s   #B
Bc                  r    [         R                  " 5       u  pSS/nSS/nUR                  [        5       X#S9  g)z3Test that numeric positions with float widths work.r   r   r   r  N)r'   r   r  r  r  s       r#   +test_numeric_positions_with_float_widths_okr    s5    llnGCc
I3ZFII!YIFr%   c                     [         R                  " 5       u  p[        R                  " SSS5      S/nSS/n[        R                  " [
        SS9   UR                  [        5       X#S9  S	S	S	5        g	! , (       d  f       g	= f)
zRTest that mixed datetime and numeric positions
with float widths raise TypeError.
r  r9   r   r   r   r  r  r  Nr  r  s       r#   0test_mixed_positions_datetime_and_numeric_raisesr    sl     llnGC""4A.4I3ZF	y3
5 			#%	J
5 
5 
5s   A11
A?c                  |   [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nn[        R                  " [        5         U R                  U[        S5      S9  S S S 5        g s  snf ! , (       d  f       g = f)Ni@ 3r/  r   r&  r   r  r'   rz  rj   rk   rl   r   rm   r   r   r  r  r  s      r#   test_violinplot_bad_positionsr    s{    	BIINN905a91BII#&D9	z	"
deAh/ 
#	" :	"	"s   'B(B--
B;c                     [         R                  " 5       n [        R                  R	                  S5        [        S5       Vs/ s H   n[        R                  R                  SS9PM"     nn[        R                  " [        5         U R                  U[        S5      / SQS9  S S S 5        g s  snf ! , (       d  f       g = f)NiA#r/  r   r&  r  r  r  r  s      r#   test_violinplot_bad_widthsr    s}    	BIINN905a91BII#&D9	z	"
deAhyA 
#	" :	"	"s   'B+B00
B>c                  <   [         R                  " 5       n [        R                  R	                  S5        [        R                  R                  SS9/n[        R                  " [        5         U R                  USS/SS//S9  S S S 5        g ! , (       d  f       g = f)	Nil r   r&  r   r   r   r  r  
r'   rz  rj   rk   rl   rm   r   r   r  r  r"   r  s     r#   test_violinplot_bad_quantilesr    sn    	BIINN9II#&'D 
z	"
dSzC:&>? 
#	"	"s   -B
Bc                     [         R                  " 5       n [        R                  R	                  S5        [        R                  R                  SS9/n[        R                  " [        5         U R                  U/ SQ/S9  S S S 5        [        R                  " [        5         U R                  U/ SQ/S9  S S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)Niq4r   r&  )r   r   r   ?r  )皙r   r   rm  r  r  s     r#   $test_violinplot_outofrange_quantilesr    s    	BIINN9II#&'D 
z	"
d'<&=> 
# 
z	"
d'>&?@ 
#	"	 
#	" 
#	"s   -C #C 
C
Cc           
      t   [         R                  R                  S5        [        SS5       Vs/ s H-  n[	        [         R                  R                  SUS5      5      PM/     nnSSSS.nSS jnUR                  SS	5      nUS   R                  " U40 UD6nUS   R                  " U40 UD6nUS
   R                  " U40 UD6n	U" USSS9  U" USS9  U" U	SS9  U R                  SS	5      nUS   R                  " U4SSS.UD6  US   R                  " U4SS0UD6  US
   R                  " U4SS0UD6  g s  snf )Nr`   r9   r/  r   r   Tr  r  r  c                     Ub.  U S    H%  nUR                  U5        UR                  S5        M'     Ub&  S H  nX@;   d  M
  X   nUR                  U5        M!     gg)zHelper to color parts manually.Nbodiescbarscminscmaxescmeanscmedians)r  	set_alphaset_edgecolor)partsr4  	linecolorrR  partnamelcs         r#   color_violins:test_violinplot_color_specification.<locals>.color_violins  se     Ho  + T" &  N$B$$Y/ O !r%   r   r:   )r`  r   )r`  r   )r4  r  r`  rM  )r  r4  r  r2  )rj   rk   rl   r   sortedrm   r   r  )
r    r!   stdr  r  r  r"   parts0parts1parts2s
             r#   #test_violinplot_color_specificationr    sK    IINN8=B1a[I[cF299##AsC01[DI!!F
0  
		!Q	BUd-f-FUd-f-FUd-f-F&J*E&C(&C( 
		1a	 BqETPZ:PPqET3S3F3qET3S3F3G Js   4D5c            
         [         R                  R                  S5        [        SS5       V s/ s H-  n [	        [         R                  R                  SU S5      5      PM/     nn SSSS.nS n[        U5      n[        U5      n/ S	Qn/ S
Qn[        R                  " 5       nUR                  5       n	U	R                  " U4UUUS.UD6n
U
S    Vs/ s H  oR                  5       PM     nnU" U[        R                  " U5      5        S H2  nX   R                  5       nU" U[        R                  " U5      5        M4     g s  sn f s  snf )Nr`   r9   r   r   r   Tr  c                 H    [        S [        X5       5       5      (       d   eg )Nc              3   R   #    U  H  u  p[         R                  " X5      v   M     g 7fr  )r#  r^  )r8  c1r  s      r#   r9  Ntest_violinplot_color_sequence.<locals>.assert_colors_equal.<locals>.<genexpr>-  s'      8!6vr %%b--!6s   %')r;  r  )colors1colors2s     r#   assert_colors_equal;test_violinplot_color_sequence.<locals>.assert_colors_equal,  s+     8!$W!68 8 8 	8 8r%   )rL  r`  )r$  r   )r  r   ))r3   rM  r$  r  )rL  r&  )r  r4  r  r  r  )rj   rk   rl   r   r  rm   r  r'   r   ru  r  ro  r#  to_rgba_arrayrp  )r  r  r  r  r  r  rW  
linecolorsr    r"   
parts_testr  body_colorspartcolors_tests                  r#   test_violinplot_color_sequencer  %  s)    IINN8=B1a[I[cF299##AsC01[DITJF8
 	D	AaI3J3J zz|H	Bt ))2)3)3) "(	)J /9.BC.B??$.BKCW%:%::%FGB &446K)>)>z)JK C3 J, Ds   4D?Ec                     [         R                  R                  S5        [        R                  R                  SSS5      /n [        R                  " 5       u  pUR                  U S/S9n[        R                  S   (       a  SO&[        R                  S   R                  5       S	   S   n[        R                  " US
   S   R                  5       US45      (       d   eUS
   S   R                  5       S:X  d   eUS
   S   R!                  S5        [        R                  " US
   S   R                  5       S5      (       d   eUR                  U S/SS9n[        R                  " US
   S   R                  5       S5      (       d   eUS
   S   R                  5       b   eUS
   S   R!                  S5        [        R                  " US
   S   R                  5       S5      (       d   eg )Nr  r   r9   r   r  _internal.classic_moder3   zaxes.prop_cycler   r  r   rJ  )rJ  r   )r   r   )r  r4  )rW   r   r   rj   rk   rm   r'   r   r  r   r   by_keyr#  r^  ro  	get_alphar  )r  r-   r"   r  r4  s        r#   test_violinplot_alphar  G  s   #YYaC(*DllnGCMM$1#M.E %=>ll#45<<>wGJ eHoa0>>@9cBRSSSS?1'')S000	(OA$$U+eHoa0>>@,OOOO MM$1#MGEeHoa0>>@-PPPP?1'')111	(OA$$U+eHoa0>>@%HHHHr%   c                    [         R                  R                  S5        [         R                  R                  SS9/nU R	                  5       nUR                  U/ SQS9  UR	                  5       nUR                  U/ SQ/S9  g )N+r   r&  )r   r   r  r  )rj   rk   rl   rm   r   r  )r    r!   r  r"   s       r#   %test_violinplot_single_list_quantilesr  b  sq     IINN9II#&'D 
			BMM$/M2 
			BMM$?"3M4r%   c                    [         R                  R                  S5        UR                  [         R                  R	                  SS9/ SQS9nUR                  [         R                  R	                  SS9[        S5      S9nUR                  [         R                  R	                  SS95      nU R                  5       R                  X4U/5        UR                  5       R                  UR                  UR                  UR                  /5        g )	Nr  r  r&  )r~  r  r  r   r   r/  r   r  r~  	ABCDEFGHIrV  )	rj   rk   rl   r	  rm   r6  r   r  r8  )r    r!   r  s1s2s3s         r#   test_violinplot_pandas_seriesr!  r  s    IINN9	299###+3H	IB	299###+43D	EB	299###,	-B""BB<0!!299bii"CDr%   c                     [         R                  " 5       u  pUR                  SS5        UR                  5       n[        R
                  R                  S5        [        R
                  R                  SSS5      n[        R
                  R                  SSS5      nUR                  X4/SS/SS	9  UR                  5       n[        X%5        g )
Nr   r/  r~   r   r  r9   r:   F)r  manage_ticks)
r'   r   r  r   rj   rk   rl   rm   r  r   )r#  r"   old_xlimr  rS  new_xlims         r#   test_manage_xticksr&  |  s    LLNEAKK1{{}HIINN1			"a	$B			!Q	#BJJxAq6J>{{}Hx*r%   c                     [         R                  " 5       u  pUR                  [        R                  R                  S5      S/S9  UR                  [        R                  R                  S5      S/S9  U R                  R                  5         UR                  5       S:X  d   e[        UR                  5       5      SS/:X  d   eUR                  5        Vs/ s H  o"R                  5       PM     snSS/:X  d   eg s  snf )Nr   r   r  r   )rQ  r  r  5)r'   r   r  rj   rk   r   rn  r  r   r6  
get_xticksr  r  r  s      r#   test_boxplot_not_singler*    s    llnGCJJryy~~c"qcJ2JJryy~~c"qcJ2JJOO;;=J&&& QF***"$"4"4"67"6QJJL"67C:EEE7s   C<c                      [         R                  " SS/SS/5        [        R                  R	                  SS05        [
        R                  " 5       n [         R                  " U SSS9  g )Nr   r9   z	font.sizeP   raw)r>  format)r'   r   rW   r   updateioBytesIOsavefigr$  s    r#   test_tick_space_size_0r4    sN     HHaVaVQ/0


AKKr%(r%   )errorbar_basic.pngzerrorbar_mixed.pngr5  c            
      6   [         R                  " SSS[         R                  S9n [         R                  " U * 5      nSS[         R                  " U 5      -  -   nSU-   n[
        R                  " 5       nUR                  5       nUR                  XSSS9  UR                  S5        [
        R                  " S	S	S
S9u  pFUS   nUR                  XUSS9  UR                  S5        UR                  SS9  US   nUR                  XUSSS9  UR                  S5        US   nUR                  XUS	U-  /US	U-  /SS9  UR                  S5        US   nUR                  S5        [         R                  " SX-
  5      nX-
  nUR                  XUS	U-  /USSS	S9  UR                  S5        UR                  SS5        UR                  S5        XS .n	[
        R                  " 5       nUR                  5       nUR                  S!S"SSU	S#9  UR                  S5        g )$Nr   r/  r   r  r   rM  rf  z&Simplest errorbars, 0.2 in x, 0.4 in yr:   T)r2  r3  r  r  r   rh  r   zVert. symmetricnbinsr  )rg  r   r  zHor. symmetric w/ alphar  z--orh  rg  r   zH, V asymmetricr  r-  r   r  )rh  rg  r   ecolorcapthickzMixed sym., log yrG  zVariable errorbarsr  r2   r3   rg  rh  r  )rj   rr   
longdoubler  r  r'   r   ru  rc  r5   r   locator_paramsr  maximumr  suptitle)
r2   r3   rh  rg  r-   r"   r  ylower
yerr_lowerr  s
             r#   test_errorbarrD    s   
 			#q#R]]3A
r
ARWWQZD:D **,C	BKK3SK)LL9: ||!1T:HC	TBKK4SK)LL"# A	TBKK4SK4LL*+	TBKKD!D&>qvEKJLL"#	TBMM%ZZah'FJKKJ$/da  1LL$%KKcLL%& D
**,C	BKKSs4K8LL9:r%   zmixed_errorbar_polar_caps.pngc                  <   [         R                  " 5       n [         R                  " SSS9n/ SQnS/S-  nUR                  X#SSS	S
9  [        R
                  S-  S-   [        R
                  S-   /nSS/nUR                  XES[        R
                  -  SS	S
9  S[        R
                  -  S-  S-   S[        R
                  -  S-  S-   S[        R
                  -  S-
  /nS/S-  n/ SQ/ SQ/n/ SQ/ SQ/n	UR                  XgXS	S
9  S/n
S/nUR                  XSSS	S
9  g)z
Mix several polar errorbar use cases in a single test figure.

It is advisable to position individual points off the grid. If there are
problems with reproducibility of this test, consider removing grid.
r  r:  r  r  r  r   ffffff?r   r   rg  rh  r   r:   r   g?r'  r&  r  r/  r   rv  )r   r   r   )r   r   r   )rF  r   r   )r   rF  r    @@r~   N)r'   r   r|  rc  rj   r  )r-   r"   th_symr_symth_longr_longth_asymr_asymrg  rh  th_overr_overs               r#   test_mixed_errorbar_polar_capsrR    s    **,C	SW	-B FE!GEKKDsK< uuQw|RUURZ(G3ZFKKcBEEk#KF wqy2~qwqy2~qws{;GU1WF,'D=)DKKd3K? eGUFKKbrsK;r%   c                  b   [         R                  " 5       u  p[        R                  " S5      nSU-  nUR	                  X#S S9u  n  nUR	                  USU-  S S9u  n  nUR                  USU-  5      u  n[        R                  " UR                  5       5      [        R                  " S5      :X  d   e[        R                  " UR                  5       5      [        R                  " S5      :X  d   e[        R                  " UR                  5       5      [        R                  " S5      :X  d   eg )Nr~   r:   rX  r/  r  r  r  )	r'   r   rj   rr   rc  r   r#  to_rgba	get_color)r  r"   r2   r3   r  r#  r	  ln1s           r#   test_errorbar_colorcyclerW    s    LLNEA
		"A	!A{{14{(HB1{{1acT{*HB1771ac?DC??2<<>*good.CCCC??2<<>*good.CCCC??3==?+wt/DDDDr%   c                 l   [         R                  " SSS5      n[        S5       Vs/ s H  n[         R                  " U* U-   5      PM     nnU R	                  5       nUR	                  5       n[        U/ SQ5       H2  u  pxUR                  X'US-  SSSS	9  UR                  X'US-  SSUSS
9  M4     g s  snf )Nr   r/  r   )r  r  r  rP  r  r]  r   rA  )rh  r   r   r;  )rh  r   r   r   r;  )rj   rr   r   r  r   r  rc  )	r    r!   r2   r  r3   axtaxryir   s	            r#   test_errorbar_cycle_ecolorr\    s    
		#q#A$Qx(x!1xA(



C



C45	Q"t) 	 	1Q"t)uW 	 	> 6 	)s   $B1c            	         [         R                  " 5       n U R                  5       n[        R                  " SSS5      n[        R
                  " U* 5      nSS[        R                  " U5      -  -   n[        R                  " USU-  45      R                  nSU-   n[        R                  " [        5         UR                  X#USS9  S S S 5        [        R                  " [        5         UR                  X#USS9  S S S 5        [        R                  " [        5         UR                  X#XVSS	9  S S S 5        g ! , (       d  f       Nw= f! , (       d  f       NT= f! , (       d  f       g = f)
Nr   r/  r   r   r:   r   r7  )rg  r   r:  )r'   r   ru  rj   rr   r  r  vstackr  r   r   r  rc  )r-   r"   r2   r3   yerr1rh  rg  s          r#   test_errorbar_shaper`    s    
**,C	B
		#q#A
r
A#bggaj. E99eQuW%&((D:D	z	"
At- 
#	z	"
At- 
#	z	"
AtC8 
#	"	 
#	"	"	"	"	"s$   5D8)E	E8
E	
E
E(zerrorbar_limits.pngc                     [         R                  " SSS5      n [         R                  " U * 5      nSnSnSn[        R                  " 5       u  pVUR                  XX#USS9  [         R                  " U 5      nSU/ S	Q'   UR                  XS-   X#XtS
S9  [         R                  " U 5      nSU/ SQ'   UR                  XS-   X#XSS9  UR                  XS-   SSX#XUSS9
  Sn[         R                  " U S5      nSUSS/'   Un	Un
[         R                  " U 5      n[         R                  " U 5      nSUS/'   SUS/'   UR                  XS-   SSX#XUUSSSSS9  UR                  SS5        UR                  S5        g )Nr   r  r   r   dottedr   )rg  rh  r'  r   T)r9   r   r~  r   )rg  rh  uplimsr'  r   )r:   r/  r  r   rJ  )rg  rh  lolimsr'  r   r   r   r   magenta)r   r(  rg  rh  rd  rc  r'  r   r   r   rH  r0  r   cyan)r   r(  rg  rh  xlolimsxuplimsrc  rd  r'  rD  capsizer   zErrorbar upper and lower limits)
rj   rr   r  r'   r   rc  
zeros_like	full_liker  r5   )r2   r3   rg  rh  r'  r-   r"   rc  rd  rg  rh  s              r#   test_errorbar_limitsrl  &  s   
		#sC A
r
ADD	BllnGC KK4rK@ ]]1FF9KKS5tv   ]]1FF9KKS5tv   KKS59  F D<<3DD!QLGG]]1F]]1FFA3KFA3KKKS5&fa   KK3LL23r%   c                  :   S[         R                  " / SQ5      -  n [         R                  " / SQ5      n[         R                  " U5      S-  n[        R                  " S5      u  nu  pEUR                  S5        UR                  S5        UR                  XUS9  UR                  XUS9  UR                  S5        UR                  S5        [        UR                  5       UR                  5       5        [        UR                  5       UR                  5       5        g )Nr~   )rT  g2@g3333332@gL2@)r   r,  r?  r   r:   r-  rh  )rj   rP  	ones_liker'   r   r^  r  rc  r   r   r   )r2   r3   rh  r-   r  r  s         r#   -test_errorbar_log_autoscale_order_independentrp  U  s    
bhh-..A
"#A<<?RDll1oOC#NN5NN5LLDL!LLDL!NN5NN5CLLNCLLN3CLLNCLLN3r%   c                  0   [         R                  " S5      n [         R                  " S5      n[        R                  " XSSSS9u  p#nUb   eU HE  n[         R                  " UR                  5       [        R                  " S5      :H  5      (       a  ME   e   g )Nr   r9   r0  rG  r  )rj   rr   r'   rc  r;  rU  r#  rT  )r2   r3   plotliner#  barlineserrbars         r#   test_errorbar_nonefmtru  h  sw    
		!A
		!ALLAA6JHvvf&&(GOOD,AABBBB r%   c                     [         R                  " S5      n [         R                  " S5      n[        R                  " 5       u  p#UR	                  XSSS9n[        UR                  5      S:X  d   e[        UR                  5      S:X  d   e[        UR                  5      S:X  d   eUR                  5         UR                  (       a   eUR                  (       a   eUR                  (       a   eg )Nr   r9   rf  r:   )
rj   rr   r'   r   rc  r  r  rt  r  r{  )r2   r3   r-   r"   ecs        r#   test_errorbar_removerx  s  s    
		!A
		!AllnGC	Q	*Br}}"""rxx=Ar~~!###IIK}}xx<~~~r%   c                      [         R                  " S5      n [         R                  " S5      n[        R                  " XSSSSSSSSS	S
S9u  n  nUR	                  5       S:X  d   eUR                  5       S:X  d   eg )Nr   r9   Noner  rd   z	steps-midroundrl  rm  bevel)
rg  rh  r'  r   r  rq  dash_capstyledash_joinstylerp  ro  )rj   rr   r'   rc  get_fillstyleget_drawstyle)r2   r3   rr  r#  s       r#   "test_errorbar_line_specific_kwargsr    s~     			!A
		!A\\!QQ6),,707181729;NHa !!#v---!!#{222r%   c           
         UR                  5       nUR                  / SQ/ SQSSSSS9  UR                  / SQ/ SQSS	S
SSS9  UR                  / SQ/ SQSSSSSS9  UR                  SS5        [        / SQ/ SQ/ SQ/ SQS9n[        R
                  " SUS9  U R                  5       nUR                  / SQ/ SQSS9  UR                  / SQ/ SQSS	S9  UR                  / SQ/ SQSSS9  UR                  SS5        g )N)r:   r/  r~   rH  r   r^  r  rL  )r2   r3   rh  r'  r   r  r:   r   r/  z	tab:greenr  r3   )r2   r3   rh  r   r'  r   r  r/  r   r   ztab:bluerh  r   r=   )r2   r3   rh  r   r'  r   r  r9   rV  )r^  r  rh  )r  r  r   )rL  r3   r=   r$  r  r`  )r'  r   r  r   rz  )
prop_cycler2   r3   rh  )r2   r3   rh  r   )r2   r3   rh  r   )r   rc  r  r
   r'   rc)r    r!   r"   _cycles       r#   test_errorbar_with_prop_cycler    s    				BKK*	  .KK*	;s  -KK*	  .KK2('@FFF6f%				BKK*	K4KK*	;KGKK*	KDKK2r%   c                     [         R                  " SSS5      n U SU -
  -  nUS-  n[        R                  " 5       R	                  5       n[
        R                  " [        SS9   UR                  XUSS9  S S S 5        [
        R                  " [        SS9   UR                  XUS	S9  S S S 5        [
        R                  " [        S
S9   UR                  XUSS/S9  S S S 5        [
        R                  " [        SS9   UR                  XUSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       g = f)Nr   r9   r   r   znot a tuple of two integersr  r  )
errorevery)r  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	rj   r  r'   r   r   r   r   r  rc  )r2   r3   rh  r"   s       r#   test_errorbar_every_invalidr    s    
Aq"A	QqS	AQ3D				 B	z)F	G
A$95 
H	z)F	G
A$84 
H	z)H	I
A$E4=9 
J	z)A	B
A$84 
C	B 
H	G	G	G	I	I	B	Bs0   "DD)D:=E
D&)
D7:
E
Ec            
      P   [         R                  " 5       R                  5       n [        R                  " [
        SS9   U R                  S/S/S/S//S/S//S9  S S S 5        [        R                  " [
        SS9   U R                  S/S/S/S//S9  S S S 5        [        R                  " [
        SS9   U R                  S/S/S/S//S	9  S S S 5        [        R                  " [
        SS9   [        R                  " S
5      nU Vs/ s H!  n[        R                  " SSUS-  S-   5      PM#     nnU R                  UU[        R                  " SS9S	9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= fs  snf ! , (       d  f       g = f)Nz''xerr' must not contain negative valuesr  r   r  r9   r2   r3   rg  rh  rn  z''yerr' must not contain negative valuesr  r   r  r~  r:   r"  r  )r'   r   r   r   r   r  rc  rj   rr   rO  r  )r"   r2   rB  r3   s       r#   test_xerr_yerr_not_negativer    sz   				 B	zF
H
qcaS}TFQC=I
H 
zF
H
qcaS}5
H 
zF
H
qcaS}5
H 
zF
HIIaL<=>AqXtQA	2A>
a!++5 	 	7	
H 
H
H 
H
H 
H
H 
H ?
H 
HsA   E;E04F-F(F0%F
E-0
E>
FF
F%c                     [         R                  " 5       R                  5       n [        R                  " [
        SS9   U R                  S/S/S /S//S /S//S9  S S S 5        [        R                  " [
        SS9   U R                  S/S/S /S//S9  S S S 5        [        R                  " [
        SS9   U R                  S/S/S /S//S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NY= f! , (       d  f       g = f)	Nz'xerr' must not contain Noner  r   r9   r  rn  z'yerr' must not contain Noner  )r'   r   r   r   r   r  rc  r  s    r#   test_xerr_yerr_not_noner    s    				 B	z;
=
qcaS}TFQC=I
= 
z;
=
qcaS}5
= 
z;
=
qcaS}5
= 
=
= 
=
= 
=
= 
=s#   C;C&4C7
C#&
C47
Dc                    [         R                  " SSS5      nUSU-
  -  nUS-  nUR                  5       nU R                  5       n[        S/ SQ5       HR  u  pxUS-  nUR	                  X#XHS4SUS	9  UR                  X#US
S9  UR	                  X(S S2   X8S S2   XHS S2   SUSS9  MT     UR	                  X#S-   USSSS9  UR                  USS S2   USS S2   S-   SS
S9  UR	                  X#S-   USSS9  UR	                  X#S-   U[        SS S5      [        SS S5      SSSS9  UR                  USS S2   USS S2   S-   SSS
S9  UR	                  USS S2   USS S2   S-   USS S2   SSSS9  UR	                  X#S-   U/ SQS-  / SQS-  SSSS9  UR                  USS S2   USS S2   S-   SSS
S9  UR	                  USS S2   USS S2   S-   USS S2   SSSS9  g )Nr   r9   r   r   rgbk)r   r   r:   r  r/  r/  )r  ri  r=   rH  )r=   r  r0  )ri  r=   r   r   )r9   r/  r   )r  ri  r   r  )ri  r   r   r:   r   r  )r  r  ri  r=   r   r  r   r  )rj   r  r   r  rc  r   r)  )	r    r!   r2   r3   rh  rx   rw   r   shifts	            r#   test_errorbar_everyr    s   
Aq"A	QqS	AQ3DF!GFL1	S 	t
!"e 	 	-
 	AE#.((Qxax[$xax. !U 	 	8 2 QCL
KK!$Q$14a43CK8
OOA3waVO< QC%42C$Qa0$C  1 KK!$Q$14a43tCK@
OOAaddGQqt!tWs]DAJ6  3 QC2F2J3a7$C  1 KK!$Q$14a43tCK@
OOAaddGQqt!tWs]DAJ6  3r%   
elinewidthr  c                 >    [         R                  " / SQ/ SQ/ SQU S9  g )Nr  )rh  r  )r'   rc  )r  s    r#   test_errorbar_linewidth_typer    s     LLII*Mr%   c                      [         R                  " / SQ/ SQ/ SQSS9n U S   S   nUR                  5       nUS/:X  d   eg )Nr  r^  )rh  
elinestyler   r   )r   r   r   )r'   rc  get_linestyle)eb
errorlineserrorlinestyles      r#   test_errorbar_linestyle_typer    sD    	i$
7BBJ--/Nk]***r%   c                    U R                  5       n[        S5      n[        R                  " SS[        R                  [        R                  S/5      n[        R                  " SS[        R                  [        R                  S/5      nUR                  X4US9  UR                  5       nUR                  SS/SS/SS/S9  UR                  S/S/S/S	S
9  g )Nr   r9   r:   r   r/  r   rn  r   r  r7  )r   r   rj   rP  r  rc  )r    r!   r"   xsysess         r#   test_errorbar_nanr    s    				B	qB	1a+	,B	1a+	,BKKRK 				BKKAAaVK,KKaSsK-r%   c                    U R                  5       n[        S5      n[        R                  " / SQ5      n[        R                  R                  / SQUS9n[        R                  R                  / SQUS9nUR                  X5US9  UR                  5       nUR                  SS/SS	/S
S/S9  UR                  S
/S/S/SS9  g )Nr   )FFTTF)r9   r:   r:   r:   r   r  )r/  r   r   r"  r   rn  r   r9   r:   r/  r   r   r  r7  )r   r   rj   rP  r	   rc  )r    r!   r"   r  r  r  r  s          r#   test_errorbar_masked_negativer  &  s    				B	qB8856D	_4	0B	'd	3BKKRK 				BKKAAaVK,KKaSsK-r%   zhist_stacked_stepfilled.pngc                     [         R                  " SSS5      n [         R                  " SSS5      n[        R                  " 5       u  p#UR	                  X4SSS	9  S
X40n[        R                  " 5       u  p#UR	                  S
SSUS9  g )Nr9   r   r  r   r~   rb  r  Tr4  r2   )r  r5  r  rj   r  r'   r   r  )d1d2r-   r"   r  s        r#   test_hist_stacked_stepfilledr  3  sw     
Q2	B	QB	BllnGCGGRH|TG: "?DllnGCGGC,4G@r%   zhist_offset.pngc                      [         R                  " SSS5      n [         R                  " SSS5      n[        R                  " 5       u  p#UR	                  U SS9  UR	                  US	S9  g )
Nr   r~   rb  r9   r   r  r   r6  r   r  r  r  r-   r"   s       r#   test_hist_offsetr  B  sU     
QB	B	Q2	BllnGCGGBqGGGBrGr%   zhist_step.pngc                      [         R                  " SSS5      n [        R                  " 5       u  pUR	                  U SS9  UR                  SS5        UR                  SS	5        g )
Nr9   r   r  r  r  r   r~   r   r   )rj   r  r'   r   r  r  r  r  r-   r"   s      r#   test_hist_stepr  L  sO     
Q2	BllnGCGGBG KK2KKAr%   zhist_step_horiz.pngc                      [         R                  " SSS5      n [         R                  " SSS5      n[        R                  " 5       u  p#UR	                  X4SSS	9  g )
Nr   r~   rb  r9   r   r  r  rR   )r  rT   r  r  s       r#   test_hist_step_horizr  V  sI     
QB	B	Q2	BllnGCGGRHv<G@r%   zhist_stacked_weights.pngc                     [         R                  " SSS5      n [         R                  " SSS5      n[         R                  " SSS5      n[         R                  " S	S
S5      n[        R                  " 5       u  pEUR	                  X4X#4SSS9  g )Nr   r~   rb  r9   r   r  r   rq  rJ  r   r  T)weightsr  r5  r  )r  r  w1w2r-   r"   s         r#   test_hist_stacked_weightedr  _  sq     
QB	B	Q2	B	T3	#B	T2r	"BllnGCGGRHrhtGLr%   zstem.pngc           	          [         R                  " SS[         R                  -  S5      n[        R                  " 5       u  p#UR                  U[         R                  " U5      SSSSS9  UR                  5         g )	Nr   r:   r   C2-.zk+C1-.r  )linefmt	markerfmtbasefmtr0   )rj   r  r  r'   r   r  rx  rI   )text_placeholdersr2   r-   r"   s       r#   	test_stemr  j  sY    
CRUUC(AllnGCGGArvvaydF&  JIIKr%   c            	         S n [         R                  " 5       u  p/ SQn/ SQnU " UR                  U5      / SQU4S9  U " UR                  X45      X44S9  U " UR                  X4SS9X44S9  U " UR                  X4S5      X44S9  U " UR                  X4SSS	9X44S9  U " UR                  USS9/ SQU4S9  U " UR                  US5      / SQU4S9  [        R                  " [
        5         UR                  U//5        S
S
S
5        [        R                  " [
        5         UR                  U//U5        S
S
S
5        g
! , (       d  f       NF= f! , (       d  f       g
= f)z5Test that stem() correctly identifies x and y values.c                     [        [        U R                  R                  5       5      u  p#X!S   :X  d   eX1S   :X  d   eg Nr   r9   )mapr6  
markerliner  )stem_containerexpectedr2   r3   s       r#   _assert_equal%test_stem_args.<locals>._assert_equalv  s?    422;;=>QKQKr%   r9   r   r   r~  r  r  rH  )r  rN  r  zb--)r  r  N)r'   r   r  r   r   r  r  r-   r"   r2   r3   s        r#   test_stem_argsr  t  s!    
 llnGCAA "''!*	1~6"''!-1&1"''!'.!@"''!&!8"''!u'=O"''!U'+y!nE"''!U#y!n=	z	"
! 
#	z	"
!q 
#	" 
#	"	"	"s   'D;E;
E	
Ec            	           SS jn [         R                  " 5       u  p/ SQn/ SQnU " UR                  X45      SSS9  U " UR                  X4SS	9SSS9  U " UR                  X4S
S	9SSS9  U " UR                  X4S5      SSSS9  U " UR                  X4S
5      SSSS9  U " UR                  X4SSS	9SSSS9  U " UR                  X4SSS	9SSSS9  U " UR                  X4SSS	9SSSS9  U " UR                  X4SSS	9SSSS9  U " UR                  X4SSS	9SSSS9  U " UR                  X4SS9SSSS9  U " UR                  X4SSS9SSSS9  U " UR                  X4SSS9SSSS9  g)zATest that stem(..., markerfmt=...) produces the intended markers.Nc                 n   Ub6  [         R                  " U R                  R                  5       U5      (       d   eUb6  [         R                  " U R                  R                  5       U5      (       d   eUb   U R                  R                  5       U:X  d   eU R                  R                  5       S:X  d   eg)zT
Check that the given StemContainer has the properties listed as
keyword-arguments.
Nrz  )r#  r^  	stemlinesrU  r  r  r  )r  r  markercolorr   s       r#   r  *test_stem_markerfmt.<locals>._assert_equal  s      %%((224    "%%))335    !,,779VCCC((668FBBBr%   r  r  r  r   )r  r   r2   )r  r  r`  )r  r  r   r  gx rz  r   r  )r  r  )NNN)r'   r   r  r  s        r#   test_stem_markerfmtr    s   BF!C$ llnGCAA "''!-T#>"''!#'.DM"''!$'/SM 
c3s4 
d3s4 
cS)3s4 
cS)3s4 
cT*3s4 
cS)3v7 
cR(3v7
 
c"3s4 
cS13s4 
cT23s4r%   c                      [         R                  " SS5      u  p[        R                  R	                  S5      [        R                  R	                  S5      /nSS/nUR                  X#5        g )Nr9   z2013-9-28 11:00:00z2013-9-28 12:00:00r   r  )r'   r   dateutilparserparser  )r-   r"   r  r  s       r#   test_stem_datesr    sU    ll1a GC
//

 4
5
//

 4
5
7B
sBGGBOr%   zstem_orientation.pngc            	          [         R                  " SS[         R                  -  S5      n [        R                  " 5       u  pUR                  U [         R                  " U 5      SSSSS9  g )	Nr   r:   rb  r  kxr  rR   )r  r  r  rT   )rj   r  r  r'   r   r  rx  rE  s      r#   test_stem_orientationr    sP    
C255"%AllnGCGGArvvaydF$  &r%   c                  $   [         R                  " 5       n U R                  SS9n[        R                  " SSS5      n[        R                  " SSS5      nSnUR                  X#US	9nUR                  R                  5       R                  S
:  d   eg)zITest that the baseline is interpolated so that it will follow the radius.r:  r  Q?gQ	@r~   r   r9   r   r6  r   N)	r'   r   r   rj   r  r  r  get_path_interpolation_steps)r-   r"   r2   r3   rP   	containers         r#   test_stem_polar_baseliner    s{    
**,C	G	,B
D$#A
Aq"AFV,I&&(==CCCr%   z!hist_stacked_stepfilled_alpha.pngc                      [         R                  " SSS5      n [         R                  " SSS5      n[        R                  " 5       u  p#UR	                  X4SSS	S
9  g )Nr9   r   r  r   r~   rb  r  Tr   )r  r5  r  r  r  s       r#   "test_hist_stacked_stepfilled_alphar    sK     
Q2	B	QB	BllnGCGGRH|TGEr%   zhist_stacked_step.pngc                      [         R                  " SSS5      n [         R                  " SSS5      n[        R                  " 5       u  p#UR	                  X4SSS	9  g )
Nr9   r   r  r   r~   rb  r  Tr4  r  r  s       r#   test_hist_stacked_stepr    sI     
Q2	B	QB	BllnGCGGRHvtG4r%   zhist_stacked_normed.pngc                      [         R                  " SSS5      n [         R                  " SSS5      n[        R                  " 5       u  p#UR	                  X4SSS9  g )	Nr9   r   r  r   r~   rb  T)r5  rC  r  r  s       r#   test_hist_stacked_densityr    sI     
Q2	B	QB	BllnGCGGRHdDG1r%   zhist_step_bottom.pngc                      [         R                  " SSS5      n [        R                  " 5       u  pUR	                  U [         R
                  " S5      SS9  g )Nr9   r   r  r~   r  )rP   r  )rj   r  r'   r   r  rr   r  s      r#   test_hist_step_bottomr    s=     
Q2	BllnGCGGBryy}|G<r%   c            	          / SQn / SQnSS/SS/SS/SS/SS/SS/SS/SS//nSS/SS/SS/SS/SS//nSU4SX#-   44 H:  u  pE[         R                  " XUS	9u    nu  n[        UR                  5       U5        M<     g )
Nr   r9   r:   r   r   r   r9   r9   r9   r:   r   r:   r9   r   r  r  r  r  r'   r  r   get_xyr  r  r?   rP   r  r  r#  polygons           r#   test_hist_step_geometryr    s    DDq6Aq6Aq6Aq6Aq6Aq6Aq6Aq6
JC!fq!fq!fq!fq!f5F #s|(DEHHTxH1kw7>>+R0 Fr%   c            	          / SQn / SQnSS/SS/SS/SS/SS/SS/SS/SS	//nSS	/SS/SS/SS/SS//nS
U4SX#-   44 H=  u  pE[         R                  " X/ SQUS9u    nu  n[        UR                  5       U5        M?     g )Nr  r  r   r9   r   r   r:   rQ  r   r  r  r9   r:   r   )r  rP   r  r  r  s           r#   test_hist_step_bottom_geometryr    s    DDq6Aq6Aq6Aq6Aq6As8aX3x
PC#hAAAA7F #s|(DEHHT[.681kw7>>+R0 Fr%   c            
          / SQn / SQn/ SQnSS/SS/SS/SS/SS/SS/SS/SS//SS/SS/SS/SS/SS/SS/SS/SS///nSS/SS/SS/SS/SS//SS/SS/SS/SS/SS///n[        X45       VVs/ s H	  u  pVXV-   PM     nnnS	U4S
U44 Hy  u  p[        R                  " X/U SUS9u    p[        U5      S:X  d   eUS   u  n[	        UR                  5       U	S   5        US   u  n[	        UR                  5       U	S   5        M{     g s  snnf )Nr  r  rH  r   r:   r9   r   r/  r  r  T)r  r5  r  r  r'   r  r  r   r  r  data_1data_2topsbottomsr  r$  combinedr  r  r#  r;  r  s                r#   test_hist_stacked_step_geometryr	  '  s~   DFF
Q!Q!Q!Q!Q!Q!Q!QH
Q!Q!Q!Q!Q!Q!Q!QHD
 Q!Q!Q!Q!Q0
Q!Q!Q!Q!Q0G #&d"45"4$!"4H5 $,)AB&!1d*2417|q   1:7>>+RU31:7>>+RU3 C 6s   1D
c            
      &   / SQn / SQn/ SQnSS/SS/SS/SS/SS/SS	/SS	/SS
//SS/SS/SS/SS/SS/SS/SS/SS	///nSS
/SS/SS/SS/SS//SS	/SS/SS/SS/SS///n[        X45       VVs/ s H	  u  pVXV-   PM     nnnSU4SU44 H|  u  p[        R                  " X/U S/ SQUS9u    p[        U5      S:X  d   eUS   u  n[	        UR                  5       U	S   5        US   u  n[	        UR                  5       U	S   5        M~     g s  snnf )Nr  r  rH  r   r9   r   r   r:   rQ  r   r/  r   rq  r  r  Tr  )r  r5  rP   r  r  r  s                r#   &test_hist_stacked_step_bottom_geometryr	  ?  s   DFF
Q!Q!Q!Q!Q!SAs8aXN
Q!Q!Q!Q!Q!SAs8aXND
 SAq6Aq6Aq6Aq62
SAq6Aq6Aq6Aq62G #&d"45"4$!"4H5 $,)AB&!1d(3hH17|q   1:7>>+RU31:7>>+RU3 C 6s   1Dzhist_stacked_bar.pngc            	          / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/n / SQn/ SQn[         R                  " 5       u  p4UR                  U S	S
SUUS9  UR                  SSSS9  g )N)r   r   r   r   r  @  i  r,  r  rP  6  rO  )r     rb  rV  r   i  )r  r  r  rJ  rJ  r     )r?  r?  r?  r?  r  r  r   r   r   r   r~   r  )+  r	  r	  r   r   r   r   r   r   r   r   r   r   r   )r   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   )gK?r  r   )firstsecondthirdfourthfifthr~   r  mid)r  r  rI  r   r0   zupper right)r   r   r9   )rA   bbox_to_anchorr3  )r'   r   r  rI   )r  r  r  r-   r"   s        r#   test_hist_stacked_barr	  W  sk     
D	#%H	8	H	A		CA
OF =FllnGCGGABU&  II-
!IDr%   r  r4  r  r5  rE  )rC  r  r   r   )r]  r^  r  r6  )r9   r   r:   r   c           
      *   [         R                  R                  S5        S Vs/ s H"  n[         R                  R                  U5      PM$     nnU R	                  S5      u  pVUR	                  S5      u  pxSXW4SXh44 H  u  pnU
R
                  " U4SU	S.UD6u  pn[        [        UR                  5       5      5      u  p[        [        XO5      5       H3  u  nu  nnUR
                  " U4XS.UU0DS[        U5      U-
  S-  0D6  M5     M     g s  snf )	Nr`   )r  rb  r   r:   r  r  r~   r  r  )rj   rk   rl   r  r   r  nextiteritemsr  r  r  )r    r!   r  r  r  axt1axt2axr1axr2r  rY  rZ  r#  r  kwr8  rB  r2   rU  s                      r#   test_hist_vectorized_paramsr	  i  s    IINN8&3	4m"))//!
mB	4$$Q'LT##A&LT ,d9FD;OPsXXbGrHGG
$v||~./
&s27MAz5HHQ +T +U + WQYM+ 8	 Q 
5s   )Dzkwargs, patch_face, patch_edger3   )r  r   r4  r5  )r3   r   )r  r   r5  )r`  r   )r  r   r4  rL  )r  r4  r5  )r  r   )r  r4  r  )r  r5  )r  r   r  c                    ^^ [         R                  " 5       R                  5       R                  " / SQ40 U D6u    p4[	        UU4S jU 5       5      (       d   eg )Nr  c              3      >#    U  H<  n[         R                  " UR                  5       UR                  5       /TT/5      v   M>     g 7fr  )r#  r^  ro  rp  )r8  r  
patch_edge
patch_faces     r#   r9  ,test_hist_color_semantics.<locals>.<genexpr>  sF      NEL !!1??#4aoo6G"H#-z":< <ELs   AA)r'   r   r   r  r;  )r  r"	  r!	  r#  r;  s    ``  r#   test_hist_color_semanticsr$	    sW    < JJL))+00EfEMAq NELN N N N Nr%   c                      [         R                  " SS/5      n [        R                  " SS/SS//SSU S9  U R	                  5       SS/:X  d   eg )Nr~   r  r   r9   r:   r  )r  rP   )rj   rP  r'   r  tolistr3  s    r#   %test_hist_barstacked_bottom_unchangedr'	    sK    
"bAHHq!fq!fq<B88:"b!!!r%   c                  |    [         R                  " 5       u  pUR                  / [        S5      [        S5      /SS9  g )Nr~   r  r  )r'   r   r  r   r,   s     r#   test_hist_emptydatar)	    s.    llnGCGGRrE"I&G8r%   c                      [         R                  " 5       u  pUR                  / SQ// SQS9  UR                  5       u  p#US/:X  d   eg )Nr  )r8  unusedzalso unusedr  r8  )r'   r   r  get_legend_handles_labels)r-   r"   r#  r  s       r#   test_hist_unused_labelsr-	    sD     llnGCGGYKBGC,,.IAhZr%   c                      [         R                  " 5       u  pUR                  SS/SS9u    p#US   R                  5       S:X  d   eUR                  SS/S/S9u    p#US   R                  5       S:X  d   eUR                  SS/S S9u    p#US   R                  5       S:X  d   eUR                  SS/SS9u    p#US   R                  5       S:X  d   eUR                  SS/SS9u    p#US   R                  5       S:X  d   eg )Nr   r9   r  r"  r  00)r'   r   r  r   )r-   r"   r#  r  s       r#   test_hist_labelsr0	    s   llnGC!Qq)JAq7#%%%!Qs+JAq7#%%%!Qt,JAq7,...!Qs+JAq7#%%%!Qt,JAq7$&&&r%   transparent_markersc                      [         R                  R                  S5        [         R                  R                  S5      n [        R                  " 5       u  pUR                  U SSSS9  g )Nr   rb  rp  r0  r   )r  r   rj   rk   rl   r'   r   r   r  s      r#   test_transparent_markersr4	    sG    IINN199BDllnGCGGD#6cG2r%   rgba_markersc            
         [         R                  " SS9u  pSS/nSS/nS S/n[        SS	S
9n[        U5       Hl  u  pg[        U5       HX  u  p[        U5       HD  u  pX   R                  " US-   U
S-   S4XUS.UD6  X   R                  " US-   U
S-   S4XS.UD6  MF     MZ     Mn     U H  nUR                  / SQ5        M     g )Nr:   r  r  r5  rI  )r   r   r9   r   r   r   r  )r(  rC  r9   r   )r  rD  r  r   r2   )rD  r  )r   r/  r   r   )r'   r   r  r  r   r!  )r-   r  rcolorsbcolorsalphasr	  rB  r  r  rcolorrL  bcolorr"   s                r#   test_rgba_markersr<	    s    ||!$HC^,G^,GC[F	"	Bf%"7+IA&w/	AaC1c /v"'/+-/AaC1cIvIbI 0 , & 
 r%   zmollweide_grid.pngc                  l    [         R                  " 5       n U R                  SS9nUR                  5         g )N	mollweider  )r'   r   r   r  r,   s     r#   test_mollweide_gridr?	    s(     **,C	K	0BGGIr%   c                     [         R                  " 5       n U R                  SS9n[        R                  " [        R
                  * [        R
                  S5      n[        R                  " [        R
                  * S-  [        R
                  S-  S5      SS n[        R                  " X#5      u  p#[        R                  " UR                  5       UR                  5       45      R                  nUR                  R                  U5      nUR                  R                  5       R                  U5      n[        R                  R                  XFS5        g )	Nr>	  r  r  r   r	  r9   r   r   )r'   r   r   rj   r  r  r  r^  ru  r  transProjectionr3  invertedr   r   )r-   r"   lonlatllr  ll2s          r#   &test_mollweide_forward_inverse_closurerG	    s     **,C	K	0B ++ruufbeeS
)C
++ruufslBEECK
5a
;C{{3$HC	CKKM3;;=1	2	4	4B 
			%	%b	)B 


%
%
'
1
1"
5C JJ((!4r%   c                     [         R                  " 5       n U R                  SS9n[        R                  " SSS5      n[        R
                  " X"5      u  p#[        R                  " UR                  5       UR                  5       45      R                  nUR                  R                  5       R                  U5      nUR                  R                  U5      n[        R                  R                  XFS5        g )Nr>	  r  r   r9   r  r   )r'   r   r   rj   r  r  r^  ru  r  rA	  rB	  r3  r   r   )r-   r"   r2   r3   r  rE	  xy2s          r#   &test_mollweide_inverse_forward_closurerJ	     s     **,C	K	0B 	Aq#A;;qDA	AIIK-	.	0	0B 
			$	$	&	0	0	4B 


&
&r
*C JJ((!4r%   
test_alphac            
         [         R                  R                  S5        [         R                  R                  S5      n [        R                  " 5       u  pUR                  U S/ SQ/ SQSSS9  UR                  U S	-   S/ SQ/ SQSSS
S9  UR                  U S-   S/ SQ/ SQSSSS9  UR                  U S-   S/ SQ/ SQSSS9  UR                  U S-   S/ SQ/ SQSSS9  g )Nr   rb  z-Dr  r5  r  r~   )r   r  r   rM  r:   r9   )r   r  r   rM  r  r/  r   r   r  r3	  r  s      r#   rK	  rK	    s    IINN199BDllnGC GGD$i]b  " GGD1Hd-]b  
 GGD1Hd)b  
 GGD1Hd-]b  " GGD1Hd-Yb  "r%   zeventplot.pngc                  H   [         R                  R                  S5        [         R                  R                  SS/5      R                  5       n [         R                  R                  SS/5      R                  5       nX-   n[	        U5      n/ SQ/[	        U 5      -  n/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/nXE-   nS[         R
                  " S[	        U 5      5      S-  -   n/ SQnUR                  5       U-   n	S/[	        U 5      -  n
/ SQnX-   n[        R                  " 5       nUR                  5       nUR                  X&U	US9n[	        U5      nUU:X  d   eX&XS.n[        R                  " 5       nUR                  5       nUR                  SSSSUS9n[	        U5      nUU:X  d   eg )Nr   r   r  r   )r   r9   r  r  r6  r  )r9   rm  r   )r9   r   r9   )r   r9   r9   r  Q?)ir  r9   r   r   r~   )r   r:   r9   r9   r   r   )r  lineoffsetslinelengths)r   r=   lorE	  r   r=   rQ	  rE	  )r  rO	  rP	  r  )
rj   rk   rl   r&	  r  rr   r'   r   r   	eventplot)r  r  r  num_datasetsr	  r
  r  lineoffsets1lineoffsets2rO	  linelengths1linelengths2rP	  r-   axobjr  num_collectionss                    r#   test_eventplotrZ	  3  s    IINN1IIb"X&--/EIIaW%,,.E=Dt9LlSZ'GG F		!SZ0366L+L%%',6K53u:%L'L-K
**,COOEOOD[(3  5E %jOl*** KKD
**,COOEOOE#4(,4  9E%jOl***r%   ztest_eventplot_defaults.pngc                  r   [         R                  R                  S5        [         R                  R                  SS/5      R                  5       n [         R                  R                  SS/5      R                  5       nX-   n[        R
                  " 5       nUR                  5       nUR                  U5        g)zZ
test that eventplot produces the correct output given the default params
(see bug #3728)
r   r   r  r   N)rj   rk   rl   r&	  r'   r   r   rR	  )r  r  r  r-   rX	  s        r#   test_eventplot_defaultsr\	  `  s     IINN1IIb"X&--/EIIaW%,,.E=D
**,COOE	OODr%   r  ))r  )z
tab:orangeztab:pinkztab:cyanbLacK)rJ  r6  N)r9   r   r9   r   c                    S/S/S/S//nU  Vs/ s H	  o"b  UOSPM     nn[        U5      S:X  a  US   n[        R                  " [        R                  " U5      [        U5      S45      n[
        R                  " 5       u  pE[        U 5      S:X  a  U S   n UR                  XS9n[        Xc5       H  u  px[        UR                  5       U5        M!     gs  snf )	zBTest the *colors* parameter of eventplot. Inspired by issue #8193.r   r9   r:   r   Nr  r/  r  )r  rj   r  r#  r  r'   r   rR	  r  r   rU  )	r  r  r=   r  r-   r"   r  r  r   s	            r#   test_eventplot_colorsr`	  r  s     C!qcA3D 7==f],fH= 8}A;w44X>TAOHllnGC
6{a,,t,3K;1(%0 2 >s   Cc                  z   [         R                  " 5       u  pUR                  / SQ/ SQ/SS9nUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eUR                  / SQ/ SQ/SS/S9nUS   R                  5       S:X  d   eUS   R                  5       S:X  d   e[        R
                  " [        SS	9   UR                  / SQ/ SQ// S
QS9  S S S 5        [        R
                  " [        SS	9   UR                  / SQSS/S9  S S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)N)r   r:   r/  )r9   r   r   r  r  r  r   r9   r   zalpha and positions are unequalr  )r   r  r  )r'   r   rR	  r  r   r   r  )r-   r"   r  s      r#   test_eventplot_alpharb	    s   llnGC ,,	<8,DKq>##%,,,q>##%,,, ,,	<8c
,KKq>##%,,,q>##%,,,	z)J	K
i.oF 
L 
z)J	K
YsCj1 
L	K 
L	K 
L	Ks   D=D,
D),
D:z!test_eventplot_problem_kwargs.pngc           
         [         R                  R                  S5        [         R                  R                  S/5      R                  5       n[         R                  R                  S/5      R                  5       nX/n[        R
                  " 5       nUR                  5       nUR                  USS/SS/SS	/S	S/S
S/SS/S9  [        U 5      S:X  d   e[        S U  5       5      (       d   eg)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  r~   r`  r$  r=   r  r:   r9   r   dasheddashdotrb  )r  r   r)  r6  r  r   r   c              3   j   #    U  H)  n[        UR                  [        R                  5      v   M+     g 7fr  )
issubclasscategoryr   MatplotlibDeprecationWarning)r8  wis     r#   r9  0test_eventplot_problem_kwargs.<locals>.<genexpr>  s+      " 2 "++s'G'GHH s   13N)
rj   rk   rl   r&	  r'   r   r   rR	  r  r;  )recwarnr  r  r  r-   rX	  s         r#   test_eventplot_problem_kwargsrm	    s     IINN1IIbT"))+EIIbT"))+E>D
**,COOE	OOD:* !1v !f '2((3  5 w<1 " " " " " "r%   c                      [         R                  " SS5      u  pUR                  / /S/S9  [         R                  " 5         g )Nr9   )r  r  r  r  r_	  r'   r   rR	  r  r,   s     r#   test_empty_eventplotrp	    s3    ll1a GCLL"34L5HHJr%   r  rT   )Nr  rR   c                     Uc  0 OSU0n[         R                  " SS5      u  p4UR                  " U 40 UD6  [         R                  " 5         g)z#Introduced when fixing issue #6412.NrT   r9   ro	  )r  rT   optsr-   r"   s        r#   test_eventplot_orientationrs	    sA     $2=+*FDll1a GCLLHHJr%   c                    [         R                   " SSS5      [         R                   " SSS5      [         R                   " SSS5      /n[         R                   " SSS5      [         R                   " SSS5      /nUR                  5       nUR                  USS9  UR                  USS9  U R                  5       nUR                  X#/5        g )	Nr  r9   r:   r   r   r  r   )rO	  )rO  r   rR	  )r    r!   ts_1ts_2r"   s        r#   test_eventplot_units_listrw	    s     dAq)8+<+<T1a+HdAq)+DdAr*H,=,=dAr,JKD				BLL1L%LL1L%				BLL$r%   zmarker_styles.pngc            
         [         R                  " 5       u  p[        [        R                  R
                  R                  S S9nUR                  S5        S/UQn[        U5       HY  u  p4UR                  US-  S-  [        R                  " S5      S-  -   [        R                  " S5      S-  U-  SUSUS-  -   US9  M[     g )	Nc                 B    [        [        U 5      5      [        U 5      -   $ r  )r,  r  r2   s    r#   r  $test_marker_styles.<locals>.<lambda>  s    3tAw<A#6r%   )r  r0  r:   r   r~   r   )r   r   r   r0   )r'   r   r  rW   markersr  r{  r  r   rj   rr   r   )r-   r"   r|	  r3   r   s        r#   test_marker_stylesr}	    s    llnGC
 Z''33;;68GNN6  Gw'	
Q	BIIbM",,bggbk"nQ.>""QqS& 	 	@ (r%   zrc_markerfill.pnggL7A`?c                      [         R                  " 5       u  p[        R                  " S5      n[	        / SQ5       H-  u  nu  pEU[
        R                  S'   UR                  X#-   US9  M/     g )Nr  ))r?   r  )rP   r   )r0  rZ  zmarkers.fillstyler\  )r'   r   rj   rr   r  rW   r   r   )r-   r"   r2   idxr   r   s         r#   test_markers_fillstyle_rcparamsr	    sZ     llnGC
		!A ):!<_e38
/0
f%!<r%   zvertex_markers.pngc                     [        [        S5      5      n Sn/ SQn[        R                  " 5       u  p4UR	                  U SUSS9  UR	                  U S S S2   SUSS9  UR                  SS5        UR                  SS5        g )Nr~   ))r   r   rz  r  r{  r   rL  r  r   r$  )r6  r   r'   r   r   r  r  )r  marker_as_tuplemarker_as_listr-   r"   s        r#   test_vertex_markersr	    sr    b	?D:O9NllnGCGGDBCG@GGD2J"^GEKKBKKBr%   zvline_hline_zorder.pngzerrorbar_zorder.pngc            	         [        [        S5      5      n [        R                  " 5       nUR	                  5       nUR                  U SSS9  UR                  SSSSS9  UR                  SSSSS9  UR                  SS	SSS9  UR                  S
SSSS9  UR                  S5        [        R                  " 5       nUR	                  5       n[        [        S5      5      n [        R                  " S5      n[        [        S5      5      nUR                  XUSSSS9  [        S5       H(  nUR                  USSUS9  UR                  U* SSUS9  M*     UR                  S5        g )Nr~   r   )rM  r  r9   rJ  )r   rM  r  r   r  r  r:   rL  r   zaxvline and axhline zorder testr`  )rh  r  rM  r   )rM  r   r  zerrorbar zorder test)r6  r   r'   r   ru  r   rt   axvliner5   rj   r  rc  )r2   r-   r"   r3   rh  r  s         r#   test_eb_line_zorderr	    s4    	U2YA **,C	BGGA"QGJJq"QJ/JJqBrJ2JJq1J-JJq1J-LL23 **,C	BU2YA
Ab	?DKK4asK;2Y


1#a
0


A2!3q
1  LL'(r%   c                 ,   U R                  5       nUR                  SSS9  UR                  SS/SS/S5        UR                  SSS	S
9  UR                  5       nUR                  SSS9  UR                  SS/SS/S5        UR                  SS/SS/S	S
9  g )N)r   r~   )rc  r9   r  r   r  z.-)r9   rc  )r~   r   rL  rX  r9   r~   rc  r   )r   r   r  axliner   s      r#   test_axline_loglogr	  "  s    				BFF		F*IIr2hR$'IIisI+				BFF		F*IIr2hR$'IIq"gd|sI+r%   c                 :   U R                  5       nUR                  SSS9  UR                  SS5        UR                  SSSS9  UR                  SS	S
S9  UR                  SSSS9  UR                  SSSS9  UR                  S[        S5      SS9  UR                  5       nUR                  SSS9  UR	                  SS/SS/5        UR                  SSS9  UR                  SS
S9  UR                  SSS9  UR	                  SS/SS/SS9  UR                  SSS9  g )Nr{  r  r  r  r  r  ra  )r   r   r9   r   r  )gffffffr  r   rP  )sloper   )r9   r  r  C4)r  r9   infr4  r   r9   r   )r   r   r	  r  r   rt   r	  r   s      r#   test_axliner	  /  s   				BFFgF&IIffIIffDI)IIhI-IIl!4I0IIit4I0IIiuU|4I8				BFFgF&GGRGb!WJJqJJJs$JJJt4J GGRGc4[G-JJt4J r%   c                    U R                  5       nUR                  SSS9  UR                  SSUR                  S9  UR                  SSSUR                  S9  UR                  S	S
SUR                  S9  UR                  SSSUR                  S9  UR                  5       nUR                  SSS9  UR	                  SS/SS/5        UR	                  S
S/SS
/SS9  UR	                  SS/S
S
/SS9  UR	                  S
S
/SS/SS9  g )Nr{  r  r  r9   r	  r3  r	  r  r	  r   r3  r   r   r   r  )r   r   )r   r9   rP  )r   r3  r   ra  )r   r   r	  r?  r   r   s      r#   test_axline_transaxesr	  F  s    				BFFgF&IIfAI6IIhatr||IDIIjIFIIhIE				BFFgF&GGRGb!WGGQFRG4G(GGRGaV4G(GGQFRG4G(r%   c                    U R                  5       nUR                  SSS9  UR                  SSUR                  S9  UR                  SSSUR                  S	9  UR                  SS
SUR                  S	9  UR                  SSS9  U R	                  SS5        UR                  5       nUR                  SSS9  UR	                  SS5        UR                  S
S/S
S/5        UR                  S
S/S
S/SS9  UR                  S
S/SS/SS9  g )Nr{  r  r  r9   r	  r	  r:   r  r	  r   r  )r   r   r   r~   r   r   r~   ra  )r   r   r	  r?  set_size_inchesr   r   s      r#   test_axline_transaxes_panzoomr	  W  s     
			BFFgF&IIfAI6IIjIFIIjIFFFWF%Q"				BFFWF%Aq!GGQFQFGGQFQG4G(GGQFQF$G'r%   c                     [         R                  " 5       u  p[        R                  " [        5         UR                  S5        SSS5        [        R                  " [        5         UR                  SSSS9  SSS5        UR                  S5        [        R                  " [        5         UR                  SSS9  SSS5        UR                  S5        UR                  S5        [        R                  " [        5         UR                  SSS9  SSS5        UR                  S5        [        R                  " [        5         UR                  SS5        [         R                  " 5         SSS5        g! , (       d  f       GN8= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g= f)z3Exactly one of *xy2* and *slope* must be specified.r  Nr  r9   )r	  r-  r]  )
r'   r   r   r   r   r	  r^  r  r  r  r,   s     r#   test_axline_argsr	  k  s   llnGC	y	!
		& 
"	y	!
		&&	* 
"MM%	y	!
		&	" 
"MM(MM%	y	!
		&	" 
"MM(	z	"
		&&!
 
#	" 
"	!	!	! 
"	! 
"	! 
#	"s;   E5&F+F F*(F;5
F
F
F'*
F8;
G	)zvlines_basic.pngzvlines_with_nan.pngzvlines_masked.pngc            	      "   / SQn / SQn[         R                  " 5       u  p#UR                  U SUSSS9  / SQnSS	S
S[        R                  S/n[         R                  " S
SS9u  nu  pxn	UR                  USUSSS9  / SQn
[        R                  SS	S
SS/nUR                  U
SUSS
SS9  / SQn[        R                  SS	S
S[        R                  /nU	R                  USUSSS9  X7X4 H  nUR                  SS5        M     UR                  5       UR                  5       :X  d   eUR                  5       UR                  5       :X  d   eUR                  5       U	R                  5       :X  d   e[         R                  " 5       u  nn[        R                  R                  / SQS5      n[        R                  R                  / SQS5      n[        R                  R                  / SQS5      nUR                  UUUSSS9  UR                  SS5        g N)r:   r   r/  r   r  )r:   r   r  r:   r   r  r   r  r6  )r:   r   r/  r   r   r  r:   r	  r   r  )r/  r  )r2  r  r`  r^  )r  r6  r   rL  r~   )r:   r/  r   r  r~   r  )r   r9   r   r   r:   r9   )r  rd  r   r     rT  rT  r   )	r'   r   rs   rj   r  r  r   r	   masked_equal)r=  r  r  r  rR  rS  r  r  r  rX  x3r  x4y4r"   fig3ax5x5ymin5ymax5s                       r#   test_vlinesr	        
B	BIDJJr1bJ2 
B
RArvvq	!BLLq&AD/3SJJr1bJ2	B
&&!RAq	!BJJr1bTJB	B
&&!RArvv	&BJJr1bJ2 "
Ar # <<>S\\^+++<<>S\\^+++<<>S\\^+++ID#			0!	4BEE2A6EEE7<EJJr5%qJ9LLBr%   c                  (   [         R                  " 5       u  p[        R                  " SS05         UR	                  SSS5      n[        R
                  R                  UR                  5       S5      (       d   e S S S 5        g ! , (       d  f       g = fNzlines.colorrJ  r   r   r9   )r'   r   r   r   rs   r  r^  rU  r-   r"   rt  s      r#   test_vlines_defaultr	    b    llnGC	.	/		#q!$zz$$U__%6>>>> 
0	/	/   A	B
B)zhlines_basic.pngzhlines_with_nan.pngzhlines_masked.pngc            	      "   / SQn / SQn[         R                  " 5       u  p#UR                  U SUSSS9  / SQnSS	S
S[        R                  S/n[         R                  " S
SS9u  nu  pxn	UR                  USUSSS9  / SQn
[        R                  SS	S
SS/nUR                  U
SUSS
SS9  / SQn[        R                  SS	S
S[        R                  /nU	R                  USUSSS9  X7X4 H  nUR                  SS5        M     UR                  5       UR                  5       :X  d   eUR                  5       UR                  5       :X  d   eUR                  5       U	R                  5       :X  d   e[         R                  " 5       u  nn[        R                  R                  / SQS5      n[        R                  R                  / SQS5      n[        R                  R                  / SQS5      nUR                  UUUSSS9  UR                  SS5        g r	  )	r'   r   hlinesrj   r  r  r   r	   r	  )r  r=  r  r  rS  rR  r  r  r  rX  r  r	  r	  r	  r"   r	  r	  y5xmin5xmax5s                       r#   test_hlinesr	    r	  r%   c                  (   [         R                  " 5       u  p[        R                  " SS05         UR	                  SSS5      n[        R
                  R                  UR                  5       S5      (       d   e S S S 5        g ! , (       d  f       g = fr	  )r'   r   r   r   r	  r  r^  rU  r	  s      r#   test_hlines_defaultr	    r	  r	  r   r  r/  c                 <   / SQnU R                  SSS5      R                  USSUSS9  U R                  SSS5      R                  USSUSS9  / SQn/ SQnUR                  SSS5      R                  USSUSS9  UR                  SSS5      R                  USSUSS9  g )	N)rJ  r   r   r  r  r:   r9   r   r   r	  )r9   r:   r   r   )rJ  r   r   r  )r   rs   r	  )r    r!   r  test_colors	expect_xyexpect_colors         r#   test_lines_with_colorsr	    s     ?KAq!((q!0;q ) JAq!((q!0;q ) J I5L1a ''	1a/;q ( J1a ''	1a/;q ( Jr%   z#vlines_hlines_blended_transform.pngc                     [         R                  " SSS5      n [         R                  " U * 5      [         R                  " S[         R                  -  U -  5      -   S-   n[
        R                  " SSSS9u  nu  p4UR                  XS	5        UR                  SS
/SSUR                  5       SS9  UR                  XS	5        UR                  SS/SSUR                  5       SS9  g )Nr  rG  r   r:   r~   r9   r  rK  rZ  r~  r   r   r`  )rh   ri   r3  r  r   r  r  )yminymaxr3  r  )rj   rr   r  r  r  r'   r   r   r	  get_yaxis_transformrs   get_xaxis_transform)r  r  r-   haxvaxs        r#   $test_vlines_hlines_blended_transformr	    s    
		#tS!A
r
RVVAIM**R/All1a8OC#HHQ3JJAwQS0023  @HHQ3JJ1vADC4K4K4M  r%   step_linestyler   c            
         [         R                  " S5      =p[        R                  " SS5      u  p#UR	                  5       n/ SQn[        X45       He  u  pVUR                  XSUSS9  UR                  XS-   SUSS9  UR                  XS-   SUS	S9  UR                  S
S5        UR                  S
S5        Mg     XUS-   US-   S.n[        R                  " SS5      u  p#UR	                  5       n/ SQn[        X45       He  u  pVUR                  SSSUSUS9  UR                  SSSUSUS9  UR                  SSSUS	US9  UR                  S
S5        UR                  S
S5        Mg     g )Nr~   r:   )r]  r^  rh  r  r   pre)rM  r   rD  r9   r	  r  r   r  )r  Y0Y1Y2r  r	  )rM  r   rD  r  r	  r	  )	rj   rr   r'   r   ru  r  r  r  r  )r2   r3   r-   ax_lst	ln_stylesr"   r'  r  s           r#   test_step_linestyler	    sX   
 IIbMA ,,q!$KC^^F&If(
b6
q5Q"E:
q5Q"F;
B
B ) 1Q3ac2D,,q!$KC^^F&If(
Ta2UF
Ta2UF
Ta2V$G
B
B )r%   mixed_collectionc                  t   [         R                  " 5       u  p[        R                  " SSSSS9n[        R
                  R                  U/SS9nUR                  SS/S	S	//5        UR                  S
S/5        [        R
                  R                  U/SS9nUR                  SS/SS//5        UR                  S
S/5        UR                  / SQ/ SQ/5        UR                  R                  S5        UR                  U5        UR                  U5        UR                  SS5        UR                  SS5        g )Nr  r  r/  r0  r   radiusr4  r5  T)match_originalr   rU  r9   r   rf  ii)r   r   r   r   )r   r   r   r   r  r  )r'   r   r  Circler   r  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr  r  r*  r  r  )r-   r"   r=   r;  r<  s        r#   test_mixed_collectionr	    s    llnGCqFgNA 
	(	(!T	(	BBNNQFRH%&q!f 
	(	(!T	(	BBNNRGc3Z()q!f')9:;HHubbKK2KK2r%   c                      [         R                  " [        R                  " S5      [        R                  " S5      S5      n U R                  5         U R                  5       R                  5       S:X  d   eg )Nr   r9   )r   r9   r   r   )r'   r|  rj   int32r   r  get_subplotspecget_geometryr  s    r#   test_subplot_key_hashr	  7  sM    	RXXa["((1+q	1BHHJ,,.,>>>r%   )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pngQ?)r  r   r   c                     S[         R                  S'   Sn SnUS-  US-  US-  /US-  US	-  US
-  //n[        SU-  [        R                  " U5      -  5      n[        R
                  " SU SU-  5      n[        R                  " [        R                  " S[        R                  -  [        R                  R                  X$5      -  5      R                  SS95      n[        SU-  S-  5      n[        R                  R                  S5        [        R                  " [        R                  R                  U 5      [        R                  R                  U 5      /5      n/ SQnXS4Xv44 H  u  pU
S-  n[        S[        R                   " [        R"                  " U
5      5      -  5      n[%        [&        R(                  " 5       R+                  S5      U5       H  u  pUR-                  XXXS9  M     [%        [&        R(                  " 5       R+                  S5      U5       H4  u  pUR-                  XXXS[         R.                  R1                  5       S9  M6     M     g)z)Test axes.specgram in default (psd) mode.r   r  r  rG  r/  r   rV  @ffffff@'@r~   r   r9   r:   r  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesr]  )r	  r	  r	  r	  r	  r,  r  N)rW   r   intrj   r}  rr   r  r  r  multiplyouterr  rk   rl   r  r   r   log2r  r'   r   r   specgramr  r  )r  r	  fstims
NFFT_freqsr2   y_freqs
NFFT_noisey_noise	all_sidesr3   r	  r	  r	  r"   r	  s                  r#   test_specgramr	  =  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvvf~-.J
		!Q"Ann
q255y2;;,,V778<<!<DFG R"Wr\"JIINN1nnbii77:BIINN1<MNOG3I)G+@A19Q"''"''$-001SZZ\2215yAIBKK%  4 B SZZ\2215yAIBKK%&Z->->-F-F-H  J B Br%   )zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                     S[         R                  S'   Sn SnUS-  US-  US-  /US-  US	-  US
-  //n[        SU-  [        R                  " U5      -  5      n[        R
                  " SU SU-  5      n[        R                  " S[        R                  -  [        R                  R                  X$5      -  5      R                  SS9nSUSS2S4'   [        R                  " U5      n[        SU-  S-  5      n[        R                  R                  S5        [        R                  " [        R                  R                  U 5      [        R                  R!                  U 5      /5      n/ SQn	Xc4X44 H  u  pZU
S-  n[        S[        R"                  " [        R$                  " U
5      5      -  5      n['        [(        R*                  " 5       R-                  S5      U	5       H  u  pUR/                  XZXXSS9  M     ['        [(        R*                  " 5       R-                  S5      U	5       H5  u  pUR/                  XZXXSS[         R0                  R3                  5       S9	  M7     M     g)z%Test axes.specgram in magnitude mode.r   r  r  rG  r/  r   rV  r	  r	  r	  r   r   r9   r:   r  Nr   r~   r	  r   	magnituder	  r	  r	  r	  r	  rf   r]  )r	  r	  r	  r	  r	  rf   r,  r  )rW   r   r	  rj   r}  rr   r  r  r	  r	  r  rQ  rk   rl   r  r  r   r   r	  r  r'   r   r   r	  r  r  )r  r	  r	  r	  r2   r3   r	  r	  r	  r	  r	  r	  r	  r"   r	  s                  r#   test_specgram_magnituder	  a  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FS2Xv./J
		!Q"A
q255y2;;,,V778<<!<DAAaeHiilGR"Wr\"JIINN1nnbii77:BIINN1<MNOG3I)G+@A19Q"''"''$-001SZZ\2215yAIBKK%  F B SZZ\2215yAIBKK%&Z->->-F-F-H  J B Br%   )zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                     S[         R                  S'   Sn SnUS-  US-  US-  /US-  US	-  US
-  //n[        SU-  [        R                  " U5      -  5      n[        R
                  " SU SU-  5      n[        R                  " S[        R                  -  [        R                  R                  X$5      -  5      R                  SS9nSUSS2S4'   [        R                  " U5      n[        SU-  S-  5      n[        R                  R                  S5        [        R                  " [        R                  R                  U 5      [        R                  R!                  U 5      /5      n/ SQn	Xc4X44 H  u  pZU
S-  n[        S[        R"                  " [        R$                  " U
5      5      -  5      nS H  n['        [(        R*                  " 5       R-                  S5      U	5       HM  u  pUR/                  XZXXUS9  [0        R2                  " [4        5         UR/                  XZXXUSS9  SSS5        MO     M     M     g! , (       d  f       Mi  = f)z,Test axes.specgram in angle and phase modes.r   r  r  rG  r/  r   rV  r	  r	  r	  r~   r   r9   r:   r  Nr   r	  )r  phaser   r	  dB)r	  r	  r	  r	  r	  rf   r,  )rW   r   r	  rj   r}  rr   r  r  r	  r	  r  rQ  rk   rl   r  r  r   r   r	  r  r'   r   r   r	  r   r   r  )r  r	  r	  r	  r2   r3   r	  r	  r	  r	  r	  r	  r	  rf   r"   r	  s                   r#   test_specgram_angler
    s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvvf~-.J
		!Q"A
q255y2;;,,V778<<!<DAAaeHiilGR"Wr\"JIINN1nnbii77:BIINN1<MNOG3I)G+@A19Q"''"''$-001&D !6!6q!99E	AR#)T  C]]:.KK'-&*   , /. F ' B /.s   I 	 
Ic                      [         R                  " [        R                  " S5      SSS9u  pp#UR	                  5       u  pEpgUS:X  a  US:X  d   eg)z;Test axes.specgram when Fs is None, should not throw error.r  Nr]  )r	  r,  r   `   )r'   r	  rj   r   
get_extent)specfreqsr  r  rh   ri   freq0freq1s           r#   test_specgram_fs_noner	
    sF    bggclt8LD!}}D2:$"*$$*r%   c                 $   [         R                  " S5      n[         R                  " U5      nS[        R                  S'   UR                  5       R                  U5        S[        R                  S'   U R                  5       R                  U5        g)zCTest specgram ignores image.origin rcParam and uses origin 'upper'.r  upperzimage.originr   N)rj   rr   r  r'   r   r   r	  )r    r!   r  signals       r#   test_specgram_origin_rcparamr
    sn     			#AVVAYF#*CLL  ' $+CLL    (r%   c                      [         R                  " S5      n [         R                  " U 5      n[        R                  " [
        5         [        R                  " USS9  SSS5        g! , (       d  f       g= f)z4Ensure passing origin as a kwarg raises a TypeError.r  r   r  N)rj   rr   r  r   r   r   r'   r	  )r  r
  s     r#   test_specgram_origin_kwargr
    sB    
		#AVVAYF	y	!VG, 
"	!	!s   A&&
A4)zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggMb`?c            
      $   Sn SnUS-  US-  US-  /US-  US-  US-  //n[        S	U-  [        R                  " U5      -  5      n[        R                  " S
U SU-  5      n[        R                  " S[        R
                  -  [        R                  R                  X$5      -  5      R                  SS9n[        S	U-  S-  5      n[        R                  R                  S
5        [        R                  R                  U 5      [        R                  R                  U 5      /nSS0SSS.SSS./nXS4Xv44 GHV  u  pU
S-  n[        S[        R                  " [        R                  " U
5      5      -  5      n[        [         R"                  " 5       R%                  S5      U5       Hc  u  pUR&                  " [        R(                  " U	5      4XXS.UD6n[+        U5      SUR-                  SS5      -   :X  d   eUR/                  SSS9  Me     [        [         R"                  " 5       R%                  S5      U5       HN  u  pUR0                  " XUXS.UD6n[+        U5      SUR-                  SS5      -   :X  d   eUR/                  SSS9  MP     GMY     g )NrL        Y@r/  r   rV  r	  r	  r	  r  r   r9   r:   r  r	  r  r	  F)r	  return_liner	  Tr   )r	  r	  r	  r	  r
  r   xlabelylabel)r	  rj   r}  rr   r  r  r	  r	  r  rk   rl   r  r   r   r	  r  r'   r   r   psdr  r  r  r   csd)r  r	  r	  r	  r2   ys_freqsr	  ys_noise
all_kwargsr  r	  r	  r	  r"   r  r  s                   r#   test_psd_csdr
    sN    	A	B!tRT2b5!BsFBsFBtG#<=FTBY/0J
		!Q"Avva"%%i"++"3"3F">>?CCCKHTBY^$JIINN1		))!,biinnQ.?@HI&&u=&t<>J +h-CD19Q"''"''$-001cjjl33A6
CJB&&+ E$"*E=CECs8q6::mU#CCCCCFF"RF(	 D
 cjjl33A6
CJB&&"B"*E=CECs8q6::mU#CCCCCFF"RF(	 D E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                     Sn SnUS-  US-  US-  /n[        SU-  [        U5      -  5      n[        S[        R                  " [        R                  " U5      5      -  5      n[        R
                  " SU S	U-  5      n[        R                  " S[        R                  -  [        R                  " XR5      -  5      S
[        R
                  " S5      -  -  R                  S	S9n[        R                  R                  S5        [        R                  " [        R                  R                  U 5      [        R                  R                  U 5      /5      S-
  n/ SQnXS.n	Xg4 GH  n
[        [         R"                  " 5       R%                  S5      U5       H-  u  pUR&                  " U
4SU0U	D6u  pnUR)                  SSS9  M/     [        [         R"                  " 5       R%                  S5      U5       H1  u  pUR&                  " U
4SU0U	DSS0D6u  pnUR)                  SSS9  M3     [        [         R"                  " 5       R%                  S5      U5       H-  u  pUR*                  " U
4SU0U	D6u  pnUR)                  SSS9  M/     [        [         R"                  " 5       R%                  S5      U5       H-  u  pUR,                  " U
4SU0U	D6u  pnUR)                  SSS9  M/     GM     g )NrL  r
  r/  r   rV  r  r:   r   r9   r~   r   r  r   r	  )r	  r	  r	  r   r
  r,  r 
  )r	  r}  rj   r   r	  rr   r  r  r	  r  rk   rl   rQ  r  r   r  r'   r   r   magnitude_spectrumr   angle_spectrumphase_spectrum)r  r	  fstims1r	  r	  r2   r	  r	  r	  r  r3   r"   r	  r
  r
  r  s                   r#   test_spectrumr!
    s}    	A	B!tRT2b5!Gtby3w<'(Dbggbggdm,,-F
		!Q"Aq255y288A#7782ryy|;KK IINN1ii2215ryy~~a7HIJROG3I)FSZZ\2215yAIB " 5 5a Ou O ODFF"RF( B SZZ\2215yAIB " 5 5a !Bu !B !B<@!BDFF"RF( B SZZ\2215yAIB " 1 1! K5 KF KDFF"RF( B SZZ\2215yAIB " 1 1! K5 KF KDFF"RF( B  r%   c                     [         R                  " 5       R                  S5      n U  H  nUR                  R	                  SS9  M     [
        R                  " SS9   U S   R                  [
        R                  " S5      5        U S   R                  [
        R                  " S5      [
        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)	Nr:   T)rB	  r  r  r   r   r9   )
r'   r   r   r]   r   rj   r  r
  r  r
  r  r"   s     r#   test_psd_csd_edge_casesr$
    s    
**,


"C
d# 	H	%A

288A;A

288A;, 
&	%	%s   A&C


Cc                 ,   U R                  5       nUR                  5       nUR                  5       nUR                  5         UR                  5         UR                  5       nUR                  R                  5         UR                  R                  5         g r  )r   r  r  r{  r[   tick_bottomr]   	tick_left)r    r!   rw   ax_twinxax_twinyrx   s         r#   test_twin_remover*
  $  sj    ""$G}}H}}HOOOO  "F LL
LLr%   ztwin_spines.pnggI+?c                     S n [         R                  " SS9nUR                  SS9  UR                  5       nUR	                  5       nUR	                  5       nUR
                  R                  R                  S5        U " U5        UR
                  R                  R                  S5        UR                  / SQ/ SQS	5      u  nUR                  / SQ/ S
QS5      u  nUR                  / SQ/ SQS5      u  nUR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  R                  R                  UR                  5       5        UR                  R                  R                  UR                  5       5        UR                  R                  R                  UR                  5       5        [!        SSS9nUR"                  " SSUR                  5       S.UD6  UR"                  " SSUR                  5       S.UD6  UR"                  " SSUR                  5       S.UD6  UR"                  " SSS0UD6  g )Nc                     U R                  S5        U R                  R                  S5        U R                  S S  R                  S5        g )NTF)set_frame_onr  r   spinesr  s    r#   make_patch_spines_invisible5test_twin_spines.<locals>.make_patch_spines_invisible7  s6    

U#
		!  'r%   )r/  r   rK  rm  )rC   )rz  r@  TrH  zb-)r   r   r:   zr-)rb  r   r   zg-r   r:   r/  r9   A   r   )r'  r  r3   )r!  r  r!  r2   r   )r'   r   r  r   r  r.
  rC   rc  r   r   r  r  r]   r0   r  rU  r  tick_params)	r/
  r-   hostpar1par2r;  r<  p3tkws	            r#   test_twin_spinesr8
  3  s   (
 **V
$Cd#??D::<D::<D 	KK""=1  %KK!!$'
))Iy$
/CB
))Iy$
/CB
))I|T
2CBMM!QMM!QMM!QMM!RJJr||~.JJr||~.JJr||~.
AS
!C<#blln<<<#blln<<<#blln<<%#%%r%   ztwin_spines_on_top.pngc                     S[         R                  S'   S[         R                  S'   [        R                  " 5       n U R	                  SSS5      n[
        R                  " / SQ/ SQ/5      nUR                  5       nUR                  US   US   S-  S	S
9  UR                  US   US   S-  S	SS9  UR                  US   US   S-  SS
9  UR                  US   US   S-  SSS9  US   US   S-  S.n[        R                  " 5       n U R	                  SSS5      nUR                  5       nUR                  SSS	US9  UR                  SSS	SUS9  UR                  SSSUS9  UR                  SSSSUS9  g )Ng      H@r1  rQ  r9   )r  iL  i  i  )r		  i-  r  r  r        @@z#BEAED4ra  r&  )r   r  z#7FC97Fr   )rB  r  rB  r  )r   r  )r   r  r  )
rW   r   r'   r   r   rj   rP  r  r   r  )r-   r  r  r  s       r#   test_twin_spines_on_topr;
  a  s    -1J()-1J)*
**,C
//!Q
"C88-)+ ,D ))+CHHT!Wd1gckH3T!Wd1gck"EHHT!Wd1gckH3T!Wd1gck"E atAws{+D
**,C
//!Q
"C
))+CHHS#YTH2S#YbtDHHS#YTH2S#YbtDr%   z(grid_which, major_visible, minor_visible))r   TT)majorTF)rx  FTc                 n  ^^ [         R                  R                  SU S.5        [        R                  " 5       u  p4UR
                  R                  5         [        U4S jUR                  R                   5       5      (       d   e[        U4S jUR                  R                   5       5      (       d   eg )NT)ru  zaxes.grid.whichc              3   ^   >#    U  H"  nUR                   R                  5       T:H  v   M$     g 7fr  gridliner  )r8  tickmajor_visibles     r#   r9  *test_rcparam_grid_minor.<locals>.<genexpr>  *      0.4 }}((*m;.   *-c              3   ^   >#    U  H"  nUR                   R                  5       T:H  v   M$     g 7fr  r?
  )r8  rA
  minor_visibles     r#   r9  rC
    rD
  rE
  )r   r   r/  r'   r   rn  r  r;  r[   
majorTicks
minorTicks)
grid_whichrB
  rG
  r-   r"   s    ``  r#   test_rcparam_grid_minorrK
    s     LLdzJKllnGCJJOO 088..0 0 0 0 0 088..0 0 0 0 0r%   c                  >   [         R                  " 5       u  pUR                  5         U R                  R	                  5         UR
                  R                  S   R                  R                  5       (       d   eUR                  SS9  U R                  R	                  5         UR
                  R                  S   R                  R                  5       (       a   eUR                  SS9  U R                  R	                  5         UR
                  R                  S   R                  R                  5       (       d   eUR                  5         U R                  R	                  5         UR
                  R                  S   R                  R                  5       (       a   eg )Nr   FvisibleT)	r'   r   r  rn  r  r[   rH
  r@
  r  r,   s     r#   	test_gridrO
    s    llnGCGGIJJOO88q!**668888GGEGJJOOxx""1%..::<<<<GGDGJJOO88q!**668888GGIJJOOxx""1%..::<<<<<r%   c                     [         R                  " 5       u  pUR                  SSS9  UR                  R	                  5        HC  nUR
                  R                  5       S:X  a  M#   SUR
                  R                  5        35       e   UR                  R	                  5        HC  nUR
                  R                  5       S:X  a  M#   SUR
                  R                  5        35       e   g)z<Test that grid(color=(..., alpha)) respects the alpha value.T)r   r  r  r   ra  r   zExpected alpha=0.3, got N)r'   r   r  r[   get_major_ticksr@
  r  r]   )r-   r"   rA
  s      r#   test_grid_color_with_alpharR
    s    llnGCGGD,G- ((*}}&&(C/ 	C&t}}'>'>'@&AB	C/ + ((*}}&&(C/ 	C&t}}'>'>'@&AB	C/ +r%   c                  j   [         R                  " 5       u  pUR                  SSSS9  UR                  R                  S   R
                  R                  5       (       a   eUR                  SS9  UR                  R                  S   R
                  R                  5       (       d   e[         R                  " SS05         UR                  5         UR                  SSSS9  UR                  R                  S   R
                  R                  5       (       d   e S S S 5        g ! , (       d  f       g = f)	NTr<
  r~   )resetrz  	labelsizer   rJ  ra  ru  )
r'   r   r2
  r[   rH
  r@
  r  r  r   r  r,   s     r#   test_reset_gridrV
    s    llnGCNNWN;xx""1%..::<<<<GG%G88q!**668888	d+	,


TB?xx""1%..::<<<< 
-	,	,s    AD$$
D2c                 <   X4 HN  nUR                  5       nUR                  S5        UR                  SSSSSSSS	S
SSSS9  UR                  5         MP     U R                   H7  nUR
                  R                  5         UR                  R                  5         M9     g )NTinr~   r   r  r  rd  r  r  r  r&  r   r^  )	directionlengthr  r   padrU
  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  r2
  r  rz  r[   reset_ticksr]   )r    r!   r-   r"   s       r#   test_reset_ticksrc
    s    "__

2QdTA	 	 	!
 	""$ # mm

 r%   c                     [         R                  " SSSSSSSSSS	.	5         [         R                  " 5       u  pS S S 5        W R                  5         WR                  R
                  S
   nUR                  R
                  SS   H  nUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  a  M   e   g ! , (       d  f       GN= f)NrX
  r   r   r  r  Trd  r  )	xtick.directionzxtick.major.sizezxtick.major.widthxtick.colorzxtick.major.padxtick.bottom	xtick.topxtick.labelsizextick.labelcolorr   r9   )r'   r   r   r  r[   rH
  _size_width	_base_pad_labelrotation_zorder_tickdir)r-   r"   
first_tickrA
  s       r#   test_context_ticksrr
    s   	#RSB t!t	= 
>
 ,,.
>  $$Q'J##AB'zzZ-----{{j/////~~!5!5555""j&?&????||z11111}}
 3 3333 (
> 
>s   D33
Ec                      [         R                  " 5       n U R                  5       nUR                  S5        UR	                  / SQ5        [        UR                  5       S5        g )Nr   )rf  r   r   r   )rf  r   )r'   r   ru  r	  r   r   r   r,   s     r#   test_vline_limitrt
    s@    
**,C	BJJsOGG BKKM9-r%   zfv, fh, args)r9   r  c                    [         R                  R                  S5      n[        R                  " [
        SS9   U " X#SS.6  S S S 5        [        R                  " [
        SS9   U " USUS.6  S S S 5        [        R                  " [
        SS9   U" X#SS.6  S S S 5        [        R                  " [
        SS9   U" USUS.6  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nu= f! , (       d  f       N\= f! , (       d  f       g = f)	Nr9   z"ymin must be a single scalar valuer  r	  r	  z"ymax must be a single scalar valuez"xmin must be a single scalar value)rh   ri   z"xmax must be a single scalar value)rW   r  num2dater   r   r  )fvfhargsbad_lims       r#   test_axline_minmaxr|
    s     ''*G	z)M	N
DQ' 
O	z)M	N
Dqw' 
O 
z)M	N
DQ' 
O	z)M	N
Dqw' 
O	N 
O	N	N	N 
O	N	N	Ns/   	C#
C	C-8
C>
C
C*-
C;>
Dc                      [         R                  " SSSSS9u  pUS   R                  / SQ/ SQ5        US   R                  5       u  p#US   R	                  5       u  pEUS::  d   eUS:  d   eUS::  d   eUS	:  d   eg )
Nr9   r:   T)r2  r3  r  rt  r   r  )r:   r/  r   r   r   )r'   r   r   r   r   )r-   r  r[  r=  r\  r  s         r#   test_empty_shared_subplotsr~
    sz    ||!1T$GHCFKK	9%V__FBV__FB7N77N77N77N7r%   c                  V   S H  n [         R                  " SSS9u  pUS   R                  SU SS9  US   R                  5       S:X  d   eUS   R	                  5       U :X  d   e[         R                  " SSS9u  pUS   R                  SU S9  US   R                  5       S	:X  a  M   e   g )
Nboxdatalimr:   T)r2  r  r   )
adjustablesharer9   r
  r  )r'   r   
set_aspect
get_aspectget_adjustable)r
  r-   r  s      r#   test_shared_with_aspect_1r
  	  s    (
<<a5A!
$?1v  "a'''1v$$&*444<<a5A!
31v  "f,,, )r%   c                     [         R                  " SSSS9u  pUS   R                  SSS9  US   R                  SS/SS/5        US   R                  SS/SS/5        [         R                  " 5         US   R                  5       US   R                  5       :X  d   eUS   R                  5       US   R                  5       :X  d   eg )	Nr:   T)r2  r  rt  r   )r
  r9   r   r/  )r'   r   r
  r   r  r   r   r  s     r#   test_shared_with_aspect_2r
    s    ||!D>HCFat$FKKAAFKKAAHHJq6??A 1111q6??A 1111r%   c                  D   S GH  n [         R                  " SSS9u  pUS   R                  SU S9  US   R                  SU S9  US   R                  SS/S	S
/5        US   R                  S	S
/SS/5        [         R                  " 5         US   R                  5       US   R                  5       :w  d   eUS   R                  5       US   R                  5       :X  d   eUR                  R                  UR                  R                  -  nU H  nUR                  5       nUR                  UR                  -  nUR                  R                  UR                  R                  -  nX6-  U-  n[        US
5      [        UR                  5       S
5      :X  a  M   e   GM     g )Nr
  r:   T)r2  rt  r   r
  r9   r   r   r/  )r'   r   r
  r   r  r   r   bbox_inchesr  r  rd  viewLimr{  r
  )	r
  r-   r  
fig_aspectr"   r  
box_aspect
lim_aspectr  s	            r#   test_shared_with_aspect_3r
  !  sd   (
<<a5A!
3A#*5AQFQF#AQFQF#
1v CFOO$55551v CFOO$5555__++coo.C.CC
B!AAGG+J**RZZ-=-==J!.;H1%r}})BBBB  )r%   c                      [         R                  " SSSSS9u  pUS   R                  S5        [        R                  " [
        SS9   U R                  5         S S S 5        g ! , (       d  f       g = f)	Nr9   r:   Tr  rt  r   r  zset_aspect\(..., adjustable=r  )r'   r   r!  r   r   RuntimeErrorr  )r-   rz  s     r#   test_shared_aspect_errorr
  5  sP    Q$t<ICGLL	|+J	K""$ 
L	K	Ks   A!!
A/zerr, args, kwargs, matchr.  z@axis\(\) takes from 0 to 1 positional arguments but 2 were givenr*  z4Unrecognized string 'foo' to axis; try 'on' or 'off'zThe first argument to axis*r*  z1axis\(\) got an unexpected keyword argument 'foo'c                     [         R                  " XS9   [        R                  " U0 UD6  S S S 5        g ! , (       d  f       g = fNr  )r   r   r'   r!  errrz
  r  r  s       r#   test_axis_errorsr
  <  s-     
s	($!&! 
)	(	(	   5
Ac                  
   [         R                  " 5       n [        R                  " [        SS9   U R                  S5        S S S 5        [        R                  " [        SS9   U R                  S5        S S S 5        [        R                  " [        SS9   U R                  SSS9  S S S 5        [        R                  " [        SS9   U R                  S5        S S S 5        [        R                  " [        SS9   U R                  S	S
9  S S S 5        [        R                  " [        SS9   U R                  SSS	S9  S S S 5        [        R                  " [        SS9   U R                  SSS	S9  S S S 5        [        R                  " [        SS9   U R                  SS	S9  S S S 5        [        R                  " [        SS9   U R                  SS	S9  S S S 5        [        R                  " [        SS9   U R                  SS	S9  S S S 5        [        R                  " [        SS9   U R                  SS	S9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNe= f! , (       d  f       GND= f! , (       d  f       GN$= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)Nzunknown value for which: 'foo'r  r*  z!Cannot supply both positional andr  r  zargument must be amongzscilimits must be a sequencer9   )	scilimitszSpecifying 'loc' is disallowedrQ   )rA   r2   r?   )rA   r3   zCannot pass both 'left'r   )rQ   rh   zCannot pass both 'right')rC   ri   zCannot pass both 'bottom')rP   r	  zCannot pass both 'top')r?   r	  )r'   ru  r   r   r  r	  r	  r   set_prop_cycle
set_anchorticklabel_formatr(   r)   r  r  r  s    r#   test_axis_method_errorsr
  N  s   	B	z)I	J
u% 
K	z)I	J
u% 
K	y(K	L
%u- 
M	z)A	B
e 
C	z)G	H
a( 
I	y(H	I
e1- 
J	y(H	I
e!, 
J	y(A	B
# 
C	y(B	C
!!$ 
D	y(C	D
11% 
E	y(@	A
" 
B	A) 
K	J	J	J	L	L	B	B	H	H	I	I	I	I	B	B	C	C	D	D	A	As   I"II%I7:J	+JJ-J?K5K#'K4
I
I"%
I47
J	
J
J*-
J<?
K
K #
K14
Lc                    [         R                  " 5       u  p[        USU  35      " 5       nUR                  S5        UR                  S5        [	        UR
                  R                  UR
                  R                  5        g )Nr  r   r:   )r'   r   r%  r
  r   bboxextents)r  r-   r"   rA  s       r#   test_twin_with_aspectr
  h  s]    llnGCbD-(*GMM!qrww||++-r%   c                  x   Sn SnSnSn[         R                  R                  5       nUR                  5       nUR	                  X5        UR                  5       U :X  d   eUR                  5       U:X  d   eUR	                  X#5      u  nUR                  5       U:X  d   eUR                  5       U:X  d   eUR                  S5        UR                  5       U:X  d   eUR                  5       U:X  d   eUR                  SS9  UR                  5         UR                  5       U :X  d   eUR                  5       U:X  d   eg )N)r  rG  )r  rd  )r  rB  FTvisible_only)
rW   r   r   r   r   r   r   r   relimr   )r=  r  rR  rS  r-   r"   r  s          r#   test_relim_visible_onlyr
  s  s   	B	B	B	B



"
"
$C		BGGBO;;=B;;=BGGBOED;;=B;;=BU;;=B;;=BHH$H;;=B;;=Br%   c                     [         R                  " 5       u  pUR                  / SQ/ SQ5      nUR                  5         UR	                  UR
                  5      n[        UR                  R                  5       UR                  5       5        [        UR                  R                  UR                  5        UR                  SS/SS//5        UR                  5         UR	                  UR
                  5      n[        UR                  R                  5       UR                  5       5        [        UR                  R                  UR                  5        UR                  SS/SS/5      u  nUR                  S	5        UR                  S
S9  [        UR                  R                  5       SS/SS//5        [        UR                  R                  SS/5        g )Nr  r  r~   r  r   r(  r   r9   FTr
  r   )r'   r   r;   r
  get_datalim	transDatar   dataLim
get_pointsminposr	  r   r   r   )r-   r"   rL   r  r  s        r#   test_relim_collectionr
    sR   llnGC	Iy	)BHHJ~~bll+HBJJ))+X-@-@-BCBJJ%%x7 NNRHr2h'(HHJ~~bll+HBJJ))+X-@-@-BCBJJ%%x7 GGQFQF#EDNN5HH$HBJJ))+q!fq!f-=>rzz((2r(3r%   c                     SS K Jn   [        R                  " 5       u  pUR	                  SS/SS/5        UR                  5         UR                  R                  5       nU R                  / 5      nUR                  SS/SS//5        UR                  USS9  UR                  5         [        UR                  R                  5       UR                  5       5        [        UR                  R                  UR                  5        g )	Nr   r9   r   r  r  r  F)autolim)matplotlib.collectionsr  r'   r   r   r
  r
  frozenr   r	  r*  r   r
  r
  )mcollectionsr-   r"   r  rL   s        r#   #test_relim_collection_autolim_falser
    s     2llnGCGGQFQFHHJzz  "H		$	$R	(BNNS#Jc
+,b%(HHJBJJ))+X-@-@-BCBJJ%%x7r%   c                     [         R                  " 5       u  pUR                  S5        UR                  S5        UR	                  / SQ/ SQ5      nUR                  SS/SS//5        UR                  5         UR                  UR                  5      n[        UR                  R                  5       UR                  5       5        [        UR                  R                  UR                  5        g )Nr-  )rc  r   r   )rG  r
  r:
  rG  g     @r
       j@)r'   r   r^  r  r;   r	  r
  r
  r
  r   r
  r
  r
  )r-   r"   rL   r  s       r#   test_relim_collection_log_scaler
    s     llnGCMM%MM%	&	8BNNS#Jc
+,HHJ~~bll+HBJJ))+X-@-@-BCBJJ%%x7r%   c                     [         R                  " 5       u  pUR                  / / 5      n[        R                  " SSS5      nUR                  [        R                  " U[        R                  " U5      45      5        UR                  5         UR                  5         UR                  5       nUR                  5       nUS   S::  a	  US   S:  d
   SU 35       eUS   S::  a	  US   S:  d
   SU 35       eg )Nr   r~   rb  r9   z!xlim should contain [0, 10], got r   z!ylim should contain [-1, 1], got )r'   r   r;   rj   r  r	  r  r  r
  r   r   r   )r-   r"   rL   r  r   r   s         r#   $test_relim_collection_autoscale_viewr
    s     llnGC	B	B	QB	BNN2??Br
#345HHJ;;=D;;=D7a<DGrMU-Ntf+UU)7b=T!W\U-Ntf+UU)\r%   c                      [         R                  " 5       n U R                  5       nUR                  SS9  UR                  SS9  g)z
tests for issue #1172
large)rU
  outrY
  N)r'   r   ru  r2
  r,   s     r#   test_text_labelsizer
    s6     **,C	BNNWN%NNUN#r%   zpie_default.pngc            
      n    Sn / SQn/ SQnSn[         R                  " SS9u  pEUR                  XXSSS	S
9  g )NFrogsHogsDogsLogsr   r   r  r~   yellowgreengoldlightskyblue
lightcoralr   r   r   r   )r  r   rK  %1.1f%%TrL  )exploder  r  autopctshadow
startangler'   r   pie)r  sizesr  r
  r  r  s         r#   test_pie_defaultr
    sD     -FEBFGV,IDGGE6dr  ;r%   )pie_linewidth_0.pngr
  r
  c                     Sn / SQn/ SQnSn[         R                  " XXSSSSS	0S
9  [         R                  " S5        XX#S.n[         R                  " 5       nUR	                  5       nUR                  SSSSSSSSS	0US9	  UR                  S5        [         R                  " 5         [         R                  " SSSSSSSSS	0US9	  [         R                  " S5        g )Nr
  r
  r
  r
  r
  TrL  r6  r   r
  r  r  r
  r
  r
  
wedgepropsr  )lr  r=   exr  r
  r
  r=   )r
  r  r  r
  r
  r
  r
  r  )r'   r
  r!  r   ru  )r  r
  r  r
  r  r-   r"   s          r#   test_pie_linewidth_0r
    s     -FEBFGGGE6dr#Q') HHW &@D
**,C	BFF3STb"A&T  3 GGG JJLGGCc#dr#Q'd4 HHWr%   zpie_center_radius.pngr   c                      Sn / SQn/ SQnSn[         R                  " XXSSSSS	0S
SS9
  [         R                  " SS
S[        SSS9[        SSS9S9  [         R                  " S5        g )Nr
  r
  r
  r
  r
  TrL  r6  r   r.  r   )	r
  r  r  r
  r
  r
  r
  rZ   r	  zCenter point)r9   r  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler4  )r  r
  r,  r
  r  )r'   r
  r  r  r!  r  r
  r  r
  s       r#   test_pie_center_radiusr
    sv     -FEBFGGGE6dr#Q'sD LLF8 D179HDF
 HHWr%   zpie_linewidth_2.pngc                  ~    Sn / SQn/ SQnSn[         R                  " XXSSSSS	0S
9  [         R                  " S5        g )Nr
  r
  r
  r
  r
  TrL  r6  r:   r
  r  r'   r
  r!  r
  s       r#   test_pie_linewidth_2r
  !  sE     -FEBFGGGE6dr#Q') HHWr%   zpie_ccw_true.pngc                  z    Sn / SQn/ SQnSn[         R                  " XXSSSSS9  [         R                  " S	5        g )
Nr
  r
  r
  r
  r
  TrL  )r
  r  r  r
  r
  r
  counterclockr  r
  r
  s       r#   test_pie_ccw_truer
  0  s@     -FEBFGGGE6dr HHWr%   zpie_frame_grid.pngc                     Sn / SQn/ SQnSn[         R                  " XXSSSSS	0SS
S9
  [         R                  " US S S2   X0USSSSS	0SSS9
  [         R                  " XS S S2   XSSSSS	0SSS9
  [         R                  " S5        g )Nr
  r
  r
  r
  r
  TrL  r6  r   r  )	r
  r  r  r
  r
  r
  r
  framerZ   r   )r   r:   )r   r   r  r
  r
  s       r#   test_pie_frame_gridr
  ?  s     -FEBFGGGE6dr#Q'v'
 GGE$B$Kdr#Q'v'
 GGE4R4=dr#Q'v'
 HHWr%   zpie_rotatelabels_true.pngc                  z    Sn / SQn/ SQnSn[         R                  " XXSSSSS9  [         R                  " S	5        g )
N)Hogwartsr
  r
  r
  r
  r
  r
  r
  TrL  )r
  r  r  r
  r
  r
  rotatelabelsr  r
  r
  s       r#   test_pie_rotatelabels_truer
  Z  s@     1FEBFGGGE6dr HHWr%   zpie_no_label.pngc                      Sn / SQn/ SQnSn[         R                  " XXSSSS SS9	  [         R                  " S	5        [         R                  " S
S5        [         R                  " 5         g )Nr
  r
  r
  r
  r
  TrL  )r
  r  r  r
  r
  r
  labeldistancer
  r  g333333r@  )r'   r
  r!  r   rI   r
  s       r#   test_pie_nolabel_but_legendr
  i  sW    ,FEBFGGGE6dr HHWHHT3JJLr%   zpie_shadow.pngc            
      4   / SQn / SQnSn[         R                  " SS5      u  p4US   S   R                  XUSSSS0S	9  US   S
   R                  XUSSSS0S	9  US
   S   R                  XUSSSSS.SSS0S	9  US
   S
   R                  XUSSSS.SSS0S	9  g )Nr
  r
  r
  r:   r   TrL  r6  )r
  r  r
  r
  r
  r9   Fr  r  r0  )oxoyshader5  rJ  r   )r
  r6  r
  r
  )r
  r  r
  r#  rz  s        r#   test_pie_shadowr
  w  s     EBFGll1a GAGAJNN5&2*A.  0 	GAJNN5&B*A.  0 	GAJNN5&!&ecPVW k1-=  ? 	GAJNN5&!%AD k1-=  ?r%   c            	         / SQn / SQn[        SSSSSSS	9n[        R                  " 5       R                  XS
US9u  p4nXE4 H  nU H  nUR	                  5       US   :X  d   eUR                  5       US   :X  d   eUR                  5       US   :X  d   eUR                  5       US   :X  d   eUR                  5       US   :X  d   eUR                  5       US   :X  a  M   e   M     g )N)r
	  "   r  )zLong name 1zLong name 2zLong name 3rZ   r?   rL  anchorr  rJ  )horizontalalignmentverticalalignmentr  rotation_moder'  r   %.2f)r  r
  	textpropsr  r  r  r  r'  r   )
r  r'   ru  r
  get_haget_vaget_rotationget_rotation_modeget_sizerU  )r  r  r  r#  textsr
  txs          r#   test_pie_textpropsr    s    D:F', #+E	+I 	d609 & ;Ag"B99;),A"BBBB99;),?"@@@@??$	*(===='')Y-GGGG;;=If$5555<<>Yw%7777  #r%   c                      [         R                  " 5       u  p[        R                  " [        5         UR                  / SQ/ SQS9  S S S 5        g ! , (       d  f       g = f)N)r   r   r  )r   r   r   r
  r'   r   r   r   r  r
  r,   s     r#   test_pie_get_negative_valuesr    s7    llnGC	z	"
z;/ 
#	"	"   A
Ac                      [         R                  " 5       u  p[        R                  " [        5         UR                  / SQSS/S9  S S S 5        g ! , (       d  f       g = f)Nr  r   r  r  r,   s     r#   test_pie_invalid_exploder    s;    llnGC	z	"
y3*- 
#	"	"r  c                      [         R                  " 5       u  p[        R                  " [        5         UR                  / SQSS/S9  S S S 5        g ! , (       d  f       g = f)Nr  OneTwor  r  r,   s     r#   test_pie_invalid_labelsr    s;    llnGC	z	"
y%0 
#	"	"r  c                      [         R                  " 5       u  p[        R                  " [        5         UR                  / SQSS9  S S S 5        g ! , (       d  f       g = f)Nr  r  )r	  r  r,   s     r#   test_pie_invalid_radiusr    s7    llnGC	z	"
y$ 
#	"	"r7  c                  
   [         R                  " 5       u  p/ SQnUR                  USS9n[        US   S   R                  S-
  5      S:  d   eUR                  USS9n[        US   S   R                  S-
  5      S:  d   eg )	Nr   r   r   T)r2   	normalizer   r   g     v@rc  F)r'   r   r
  rj  r  )r-   r"   r2   t1t2s        r#   test_normalize_kwarg_pier"    s    llnGCA	!t	$Br!uRy$&'$...	!u	%Br!uRy$&'$...r%   c                     / SQnSnU R                  5       R                  X#S9  UR                  5       R                  U5      u  pEU Vs/ s H  ofR                  U5      PM       ng s  snf )Nr  r  r  )r   r
  	set_hatch)r    r!   r2   rE  wedgesr#  ry  s          r#   test_pie_hatch_singler&    s]    AEA+  "&&q)IF!'(A[[((s   	A&c                     / SQn/ SQnU R                  5       R                  X#S9  UR                  5       R                  U5      u  pE[        XC5       VVs/ s H  u  pgUR                  U5      PM       nng s  snnf )Nr  )rC  r  r   r  )r   r
  r  r$  )r    r!   r2   rE  r%  r#  ry  hps           r#   test_pie_hatch_multir)    sg    AEA+  "&&q)IF"%f"45"4Q[[_"455s   A6c                  h   [         R                  " 5       u  pUR                  SS/5      nUR                  US5      nUS   R	                  5       S:X  d   eUS   R	                  5       S:X  d   eUR                  US5      nUS   R	                  5       S	:X  d   eUS   R	                  5       S
:X  d   eg )Nr:   r   z{absval:03d}r   002r9   003z
{frac:.1%}z40.0%z60.0%)r'   r   r
  	pie_labelr  )r-   r"   r
  r  s       r#   test_pie_label_formatterr.    s    llnGC
&&!Q.CLLn-E8%'''8%'''LLl+E8')))8')))r%   distancer  rv  rotatec                    [         R                  " 5       u  p#UR                  SS/SS9nUR                  USS/XSS9nU S:  a6  U H/  nUR	                  5       S:X  d   eUR                  5       S:X  a  M/   e   g S	S
/nSS/n[        XWU5       HQ  u  pin
UR	                  5       U	:X  d   eU(       a  UR                  5       U
:X  d   eM;  UR                  5       S:X  a  MQ   e   g )Nr9   r  )r
  spameggsr  )r/  r0  	alignmentrZ   rC   rQ   rP   r?   )r'   r   r
  r-  r\   get_verticalalignmentr  )r/  r0  r-   r"   r
  r  text
h_expected
v_expectedh_alignv_aligns              r#   test_pie_label_auto_alignr;    s     llnGC
&&!QB&
'CLLff6  SE !|D//1X===--/8;;;  v&
&
&)%Z&H"D7//1W<<<113w>>>113x??? 'Ir%   c                     Sn Sn[         R                  " 5       u  p#UR                  U 5      n[        R                  " S5      n[
        R                  " [        US9   UR                  XA5        S S S 5        g ! , (       d  f       g = f)Nr
  )r
  r
  z<The number of labels (2) must match the number of wedges (4)r  )	r'   r   r
  reescaper   r   r  r-  )r
  r  r-   r"   r
  r  s         r#   test_pie_label_failr?    s[    EFllnGC
&&-CIITUE	z	/
S! 
0	/	/s   A77
Bzset_get_ticklabels.pngc                  H   [         R                  " S5      u  pSS/nUS   R                  [        R                  " S5      5        US   R                  US   5        US   R                  [        R                  " S5      5        US   R                  US   5        US   R                  [        S5      5        US   R                  [        S5      5        US   R                  / SQSS	/-  -   5        US   R                  / S
QSS	/-  -   5        US   R                  US   R                  5       5        US   R                  US   R                  5       5        US   R                  US   R                  5       5        US   R                  US   R                  5       5        g )Nr:   rm   zset_x/yticklabelsr   r~   r9   r   r$  r=   r  r   r   )11121314)r'   r   r   rj   rr   r5   r  r   r  set_xticklabelsset_yticklabelsr)  
get_yticksr  get_yticklabels)r-   r"   rF   s      r#   test_set_get_ticklabelsrJ    s^    ll1oGC
'	(BqEJJryy}qEOOBqEqEJJryy}qEOOBqE qEU2YqEU2YqE.bT9:qE2Q"X=> qERU%%'(qERU%%'(qE"Q%//12qE"Q%//12r%   c                      [         R                  " 5       u  p/ SQn[        R                  " [        SS9   UR
                  R                  USS9  SSS5        g! , (       d  f       g= f)zQ
When labels=None and any kwarg is passed, axis.set_ticks() raises a
ValueError.
r  z)Incorrect use of keyword argument 'alpha'r  r   r  N)r'   r   r   r   r  r[   	set_ticks)r-   r"   tickss      r#   0test_set_ticks_kwargs_raise_error_without_labelsrN  *  sI    
 llnGCE	z)T	U
5, 
V	U	Us   A
A'c                 v   UR                  5       nUR                  / SQ5        UR                  / SQSS9  UR                  / SQ5        UR                  SS/SS	9  UR	                  S
S/SS	9  U R                  5       nUR                  / SQ/ SQSS9  UR                  / SQ5        UR                  SS/S
S/SS	9  g)z
Test that these two are identical::

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

)r9   r:   r/  r   rA  bold)
fontweightr  r:   r/  T)rx  r  r  N)r   r  rF  r  rG  r   s      r#   test_set_ticks_with_labelsrR  5  s     
			BMM,+?MM)MM1a&M%Sz.				BMM, 4MHMM)MM1a&3*DM1r%   c                     [         R                  " 5       R                  5       n [        R                  " [
        SS9   U R                  SS/S5        S S S 5        [        R                  " [
        SS9   U R                  SS/U 5        S S S 5        [        R                  " [        SS9   [         R                  " [        R                  " S5      R                  S5      5        S S S 5        [        R                  " [        SS9   [         R                  " [        R                  " S5      R                  S	5      5        S S S 5        [        R                  " [        SS9   [         R                  " [        R                  " S5      R                  S5      [        S5      S
9  S S S 5        [        R                  " [        SS9   [         R                  " [        R                  " S5      R                  S	5      [        S5      S
9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNU= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)Nzmust be a sequencer  r:   r~  rI  z
must be 1Dr/  r{  rz  r  )r'   r   r   r   r   r   r  r  r  rj   rr   r   r   r  s    r#   test_xticks_bad_argsrT  K  se   		!	!	#B	y(<	=
q!fc" 
>	y(<	=
q!fb! 
>	z	6

299Q<''01 
7	z	6

299Q<''01 
7	z	6

299Q<''0qB 
7	z	6

299Q<''0qB 
7	6 
>	=	=	=	6	6	6	6	6	6	6	6sI   H3H):H1:IAIAI&
H
H.1
I 
I
I#&
I4c                     [         R                  " 5       u  pUR                  [        R                  " S5      5        UR
                  R                  [        R                  " S5      S-   5        UR                  SS9  UR
                  R                  S Vs/ s H  o"PM     sn5        [         R                  " 5         UR
                  R                  5        Vs/ s H  o3R                  5       PM     nnU/ SQ:X  d   eg s  snf s  snf )Nr~   r   r   r8  
bcdefghijk)r$  r  r  r  r  )r'   r   r   rj   rr   r[   rL  r?  set_ticklabelsr  get_ticklabelsr  )r-   r"   r=   r  r  s        r#   test_subsampled_ticklabelsrY  [  s    llnGCGGBIIbMHHryy}s*+AHH51Q56HHJ$&HH$;$;$=>$=qjjl$=F>.... 6>s   D Dc                  X   [         R                  " 5       u  pUR                  [        R                  " S5      5        UR
                  R                  SS/5        [        R                  " [        5         UR
                  R                  / SQ5        S S S 5        g ! , (       d  f       g = f)Nr~   r   rQ  r  )r'   r   r   rj   rr   r[   rL  r   r   r  rW  r,   s     r#   test_mismatched_ticklabelsr[  g  sc    llnGCGGBIIbMHHSz"	z	"
0 
#	"	"s   4B
B)c                      [         R                  " 5       u  pUR                  SS/SS/5        UR                  SS/5        UR	                  / 5        g )Nr9   r:   )r'   r   r  r  rF  r,   s     r#   test_empty_ticks_fixed_locr]  o  sC    llnGCFFAq6Aq6MM1a&rr%   zretain_tick_visibility.pngc                      [         R                  " 5       u  p[         R                  " / SQ/ SQ5        [         R                  " UR	                  5       SS9  UR                  SSSS9  g )	NrH  )r   r   r/  FrM
  r3   r   r   r!  rz  rZ
  )r'   r   r   setprI  r2
  r,   s     r#   test_retain_tick_visibilityra  w  sF    llnGCHHY
#HHR!51NN6!N4r%   c                     [         R                  " 5       u  p[        R                  " [        SS9   UR                  SS/5        S S S 5        [         R                  " 5       u  pUR                  / SQ5        [        R                  " [        SS9   UR                  SS/5        S S S 5        g ! , (       d  f       Nn= f! , (       d  f       g = f)Nz:set_ticklabels\(\) should only be used with a fixed numberr  r"  r  rG  z$The number of FixedLocator locations)	r'   r   r   r  rb  rF  r  r   r  r,   s     r#   test_warn_too_few_labelsrc    s    llnGC	N
P 	C<(
P
 llnGCMM+	zC
E
C<(
E 
E
P 
P
E 
Es   B-B>-
B;>
Cc                     [         R                  " 5       u  pS nUR                  R                  [         R                  " U5      5        UR                  / SQ5        UR                  SS5        U R                  R                  5         UR                  R                  5        Vs/ s H  o3R                  5       PM     nnU/ SQ:X  d   eg s  snf )Nc                     U S:X  a  S$ S$ )Nr9   
unit valuer   r   r   s     r#   formatter_func.test_tick_label_update.<locals>.formatter_func  s     Av|-2-r%   )r   r   r9   r:   r   r  rQ  )r   r   rf  r   r   )r'   r   r[   r   r   r  r  rn  r  rX  r  )r-   r"   rg  rA
  
tick_textss        r#   test_tick_label_updaterj    s     llnGC.HH  !2!2>!BC MM"#KKcJJOO.0hh.E.E.GH.Gd--/.GJH7777 Is   %Czo_marker_path_snap.pngH   c                  d   [         R                  " 5       u  pUR                  S5        [        SS5       H.  nUR	                  SS/[
        R                  " S5      U-   SUS9  M0     [
        R                  " SSS5       H.  nUR	                  S	S
/[
        R                  " S5      U-   SUS9  M0     g )Nr   r9   r   r:   r   )r(  r~   r  r   r/  )r'   r   r  r   r   rj   r   r  )r-   r"   r(  s      r#   test_o_marker_path_snaprm    s    llnGCJJrNArl
A"''!*r/326  kk!R$
A"''!*r/326 %r%   c                     SS/n Sn[        U 5      S-
  n[        U 5      n[        U 5      n[        R                  " SS5      u  pVUR                  U 5        UR                  S5        UR                  5       S:X  d   eUR                  5       XU-
  S-  -
  X"U-
  S-  -   4:X  d   eUR                  5       X4U-
  S-  -
  XDU-
  S-  -   4:X  d   e[        R                  " SS5      u  pxUR                  U 5        UR                  SS5        UR                  5       S:X  d   eUR                  5       XU-
  S-  -
  X"U-
  S-  -   4:X  d   eUR                  5       X4U-
  S-  -
  XDU-
  S-  -   4:X  d   e[        R                  " SS5      u  pU
R                  U 5        U
R                  S	SS
9  U
R                  5       S:X  d   eU
R                  5       XU-
  S	-  -
  X"U-
  S	-  -   4:X  d   eU
R                  5       X4U-
  S-  -
  XDU-
  S-  -   4:X  d   eg )Nr9   r~   r  r   r  r   r:   )r   r:   皙ɿr  )ro  r   )	r  r}  r  r'   r   r   r  r   r   )r  rh   ri   r	  r	  r  r  r  r  r	  r  s              r#   test_marginsrp    sK   r7DDt9s?Dt9Dt9DQ"IDHHTNKKN;;=F"""<<>dTkQ%66"TkQ%668 8 8 8<<>dTkQ%66"TkQ%668 8 8 8 Q"IDHHTNKKQ;;=H$$$<<>dTkS%88"TkS%88: : : :<<>dTkQ%66"TkQ%668 8 8 8 Q"IDHHTNKK$#K;;=K'''<<>dTkT%99"TkT%99; ; ; ;<<>dTkS%88"TkS%88: : : :r%   c                      [         R                  " 5       n U R                  5       nUR                  SS5        UR	                  5       S:X  d   eUR                  5       S:X  d   eg )Nr   r   )r'   r   r   r  get_xmarginget_ymarginr,   s     r#   test_margin_gettersrt    sQ    
**,C		BJJsC>>s""">>s"""r%   c                      [         R                  R                  S5        [        R                  " 5       u  pUR                  SS/SS/5        UR                  SSS9  UR                  5       S:X  d   eg )Nr  r9   r:   r-  r   )r  xmarginr.  )r   r   r   r'   r   r   r   r   r,   s     r#   test_set_margin_updates_limitsrw    sY    IIMM)llnGCGGQFQFFF%F#;;=F"""r%   )r   z!margin must be greater than -0\.5rz  r   z@Cannot pass both positional and keyword arguments for x and/or yr  z&Must pass a single positional argumentc                     [         R                  " XS9   [        R                  " 5       nUR	                  5       nUR
                  " U0 UD6  S S S 5        g ! , (       d  f       g = fr
  )r   r   r'   r   r   r  )r
  rz
  r  r  r-   r"   s         r#   test_margins_errorsry    sD     
s	(jjl__


D#F# 
)	(	(s   8A
A$c                  x    [         R                  " 5       u  pUR                  S5        UR                  S/5        g Nr9   )r'   r   r  r,   s     r#   test_length_one_histr|    s'    llnGCGGAJGGQCLr%   c                     [         R                  " 5       n U R                  5       nUR                  SS5        UR	                  5       S:X  d   eUR                  5       S:X  d   eUR                  SS9  UR	                  5       S:X  d   eUR                  5       S:X  d   eUR                  SS9  UR	                  5       S:X  d   eUR                  5       S:X  d   eUR                  SS5        UR                  5       S:X  d   eUR                  5       S:X  d   eUR                  SS9  UR                  5       S:X  d   eUR                  5       S:X  d   eUR                  SS9  UR                  5       S:X  d   eUR                  5       S:X  d   eg )	Nr   r  )r   r  r  )r
  )r   r  )r   )r  r  )	r'   r   r   r+  
get_xboundr   r,  
get_yboundr   r,   s     r#   test_set_xy_boundr    s]   
**,C		BMM#s==?j(((;;=J&&&MMM==?j(((;;=J&&&MMM==?j(((;;=J&&&MM#s==?j(((;;=J&&&MMM==?j(((;;=J&&&MMM==?j(((;;=J&&&r%   c                      S/S-  n [         R                  " SS5      u  pUR                  X 5        UR                  [        R
                  " 5       5        g )Nr~   r   r9   )r'   r   r  r2  r0  r1  )mylistr-   r"   s      r#   test_pathological_hexbinr    s=    TCZFll1a GCIIfKK

r%   c                  \    [         R                  " 5       u  pUR                  SS/SS/S S9  g )Nr9   r:   ra  r  r,   s     r#   test_color_Noner    s)    llnGCGGQFQF$G'r%   c                      [         R                  " 5       u  pUR                  SS/SS9S   nSUR                  5       :X  d   eg )Nr   r9   r  rX  )r'   r   r   rU  r-   r"   r  s      r#   test_color_aliasr    s?    llnGC77Aq6V7$Q'DT^^%%%%r%   c                      [         R                  " 5       u  pUR                  [        S5      /S-  [        S5      S9  UR	                  5         g )Nr   r   r  )r'   r   r  r   rI   r,   s     r#   test_numerical_hist_labelr  %  s6    llnGCGGU2YK!O58G,IIKr%   c                      [         R                  " 5       u  pSnSnUR                  S5      SUR                  S5      /nUR                  [	        S5      /S-  US9  UR                  5         g )Ns    很漂亮, römän chäráctèrss   שלוםzutf-8zhi aardvarkr   r   r  )r'   r   decoder  r   rI   )r-   r"   r   r$  r  s        r#   test_unicode_hist_labelr  +  sc    llnGC
@A+AhhwhhwF
 GGU2YK!O6G*IIKr%   c                     [         R                  R                  S5      S-  n [        R                  " 5       u  pUR	                  U 5        UR
                  R                  5         UR                  R                  R                  5       nUR                  R                  R                  5       S:X  d   eUR                  R                  5         UR
                  R                  5         UR                  R                  R                  5       nUS   US   :  a  US   US   :X  d   eUR                  R                  R                  5       S:X  d   e[        R                  " 5       u  pUR	                  U 5        UR
                  R                  5         UR                  R                  R                  5       nUR                  R                  R                  5       S:X  d   eUR                  R                  5         UR
                  R                  5         UR                  R                  R                  5       nUS   US   :X  a  US   US   :  d   eUR                  R                  R                  5       S:X  d   eg )	Nr~   g^ 9^;rQ   r   r9   rC   r?   rP   )rj   rk   r'   r   r   rn  r  r]   
offsetTextrd  r\   
tick_rightr[   r5  r   )r  r-   r"   beforeafters        r#   test_move_offsetlabelr  9  s   99B%'DllnGCGGDMJJOOXX  --/F88668FBBBHHJJOOHH,,.E8fQiE!Hq	$99988668GCCCllnGCGGDMJJOOXX  --/F88446%???HHJJOOHH,,.E8vay U1Xq	%99988446(BBBr%   zrc_spines.pngc                      SSSSS.n [         R                  " U 5         [        R                  " 5         S S S 5        g ! , (       d  f       g = f)NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rW   r   r'   r   )rc  s    r#   test_rc_spinesr  S  s<     "" #	%G
 
		w	' 
(	'	's	   =
Azrc_grid.pngc                     [         R                  " 5       n SSS.nSSS.nSSS.nXU/n[        US5       H7  u  pV[        R                  " U5         U R                  SSU5        S S S 5        M9     g ! , (       d  f       MK  = f)NTr   )ru  zaxes.grid.axisr2   r3   r9   r   )r'   r   r  rW   r   r   )r-   rc_dict0rc_dict1rc_dict2rm  rB  rc  s          r#   test_rc_gridr  ^  s    
**,C H
 H
 H X.I	1-
""7+OOAq!$ ,+ .++s   A11
B 	c                  P   SSSSS.n [         R                  " U S9   [         R                  " 5       nUR                  SSS5      nUR                  nUR
                  nUR                  S   (       a   eUR                  S   (       d   eUR                  S   (       a   eUR                  S   (       d   eUR                  S   (       d   eUR                  S   (       a   eUR                  S   (       d   eUR                  S   (       a   e S S S 5        g ! , (       d  f       g = f)NFT)rg
  rh
  
ytick.leftytick.rightr  r9   tick1Ontick2Onr'   r   r   r   r[   r]   _major_tick_kw_minor_tick_kwr  r-   r  xaxyaxs        r#   test_rc_tickr  t  s    TE	3A	1	jjlooaA&iiii%%i000!!),,,%%i000!!),,,!!),,,%%i000!!),,,%%i0000 
		s   C1D
D%c            	      X   SSSSSSSSS.n [         R                  " U S9   [         R                  " 5       nUR                  SSS5      nUR                  nUR
                  nUR                  S   (       a   eUR                  S   (       d   eUR                  S   (       a   eUR                  S   (       d   eUR                  S   (       a   eUR                  S   (       d   eUR                  S   (       a   eUR                  S   (       d   e S S S 5        g ! , (       d  f       g = f)NTF)rh
  r  rg
  r  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr  r9   r  r  r  r  s        r#   test_rc_major_minor_tickr    s   4T$E"		?A
 
1	jjlooaA&iiii%%i000!!),,,%%i000!!),,,%%i000!!),,,%%i000!!),,, 
		s   C1D
D)c                  *   [         R                  " S5      n [         R                  " / SQ5      n[        R                  " 5       u  p#UR                  XS5        UR                  S5        UR                  5       UR                  5       pT[         R                  " U5      [         R                  " U5      :X  d   eUR                  5       S:X  d   e[        UR                  SS9R                  S5        [        UR                  S	S9R                  S
5        g )Nr/  )r   r  r  rh  mor
  r9   Tra  g      ?r   r  r  F)g333333?r   g      ?r  )rj   rr   rP  r'   r   r   r!  r   r   r  r
  r   rd  r
  )r2   r3   r-   r"   r   r   s         r#   test_square_plotr    s    
		!A
!"AllnGCGGA$GGH$774=BGGDM)))==?a
&..0FH
'//1KMr%   c                  >   [         R                  " [        5         [        R                  " S 5        S S S 5        [         R                  " [        5         [        R                  " S S 5        S S S 5        [         R                  " [        5         [        R                  " [
        R                  " S5      [
        R                  " S5      5        S S S 5        [         R                  " [        5         [        R                  " [
        R                  " S5      R                  S5      [
        R                  " S5      R                  SS5      45        S S S 5        g ! , (       d  f       GN.= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)Nr  r+  r   rz  r   r9   )	r   r   r  r'   r   rj   r  rr   r   r   r%   r#   test_bad_plot_argsr    s    	z	" 
#	z	"t 
#	z	"&!288F#34 
#	z	""))A,&&w/11E1Eb!1LMN 
#	" 
#	"	"	"	"	"	"	"s1   EE+A E=0A F
E(+
E:=
F
Fzxy, clsr   ))r   r  )r:   r   )r9   r:   r/  r  r  r  )r/  r   r  )r   r/  c                 x    [         R                  " 5       u  p4[        UR                  " / U QUP76 5      U:X  d   eg r  )r'   r   r  r  )r  r  clsr-   r"   s        r#   test_pcolorfastr    s5     llnGC(r(4()S000r%   c                  6   [         R                  " 5       u  p[        R                  " [        SS9   UR                  [        R                  " S5      [        R                  " S5      [        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)Nz)the given X was 1D and the given Y was 2Dr  r   )r/  r  r	  )r'   r   r   r   r   r  rj   emptyr,   s     r#   test_pcolorfast_bad_dimsr    s_    llnGC	I
L
bhhqk288F#3RXXf5EF
L 
L 
Ls   AB


Bc            	      b   [         R                  " 5       u  p[        R                  " [        SS9   UR                  [        R                  " S5      [        R                  " S5      [        R                  R                  SS5      5        SSS5        [        R                  " [        SS9   UR                  [        R                  " S	5      [        R                  " S5      [        R                  R                  SS5      5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)
aU  
Test that the sizes of X, Y, C are compatible for regularly spaced X, Y.

Note that after the regualar-spacing check, pcolorfast may go into the
fast "image" mode, where the individual X, Y positions are not used anymore.
Therefore, the algorithm had worked with any regularly number of regularly
spaced values, but discarded their values.
zKLength of X \(5\) must be one larger than the number of columns in C \(20\)r  r   rV  r~   r  NzHLength of Y \(5\) must be one larger than the number of rows in C \(10\)r  )
r'   r   r   r   r  r  rj   rr   rk   r   r,   s     r#   ,test_pcolorfast_regular_xy_incompatible_sizer    s     llnGC	 ?
@ 	biilBIIbM299>>"b3IJ
@
 
 <
= 	biimRYYq\299>>"b3IJ
= 
=
@ 
@

= 
=s   AD,AD 
D 
D.c                     [         R                  " SSSSS9u  pUS   R                  S5        US   R                  S5        UR                   H/  nUR                  5       S:X  d   eUR                  5       S:X  a  M/   e   US   R                  S5        US   R                  S5        UR                   H/  nUR                  5       S:X  d   eUR                  5       S:X  a  M/   e   g )Nr:   Tr
  r  r-  r  r]  )r'   r   r^  r  r  
get_yscale
get_xscaler-   r  r"   s      r#   test_shared_scaler    s    ||Aqd;HCIIhh}}%'''}}%'''  I"I"hh}}(***}}(*** r%   c                  $   [         R                  " [        5         [        R                  " SS9  S S S 5        [         R                  " [        5         [        R                  " SS9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)NTr  rs  )r   r   r   r'   r|  r   r%   r#   test_shared_boolr    sO    	y	!4  
"	y	!4  
"	! 
"	!	!	!s   A0B0
A>
Bc                  \    [         R                  " [        R                  " SS/5      5        g)z4Violin plot should handle point mass pdf gracefully.r   N)r'   r  rj   rP  r   r%   r#   test_violin_point_massr    s    NN288QF#$r%   c            
         [        S[        R                  " S5      /5      [        S[        R                  " S5      /5      -   n [        SS/ SQ/ SQ/ SQ/[        R                  " S5      [        R                  " S5      S /5      n[        SU5      n[        S	U5      n[        S/ /5      [        S/ /5      -   [        S/ S /5      -  [        S	/ S /5      -  nX-  nX-  nX-  U-  n/ UQUQUQUQ$ )
Nr2   r   r3   r
  r9   )r9   r9   r9   r9   r9   )r:   r   rg  rh  )r
   rj   rr   r   )base_xy
err_cyclerxerr_cyyerr_cyr  	xerr_only	yerr_onlyboth_errs           r#   generate_errorbar_inputsr    s    S299Q<.)F3,EEG /!0!0!2 "
 " $ " #J VZ(GVZ(GS2$&rd"33FRJ'(*0"d*DEE!I!I 7*H6Y66X666r%   c                 r    [         R                  " 5       nUR                  " S0 U D6nUR                  5         g )Nr   )r'   ru  rc  r{  )r  r"   r  s      r#   test_errorbar_inputs_shotgunr    s'    	B		v	BIIKr%   dash_offsetc            	          [         R                  " 5       u  p[        R                  " SS5      n[        R                  " U5      n[        SSS5       H  nUR                  X$U-  US4SSS9  M     g )	Nr   r~   r   r:   r~   r~   r   rL  )r'  rM  r   )r'   r   rj   r  ro  r   r   )r-   r"   r2   r3   r  s        r#   test_dash_offsetr  #  s[    llnGC
ArA
QA1c1
Q3Ax=Qc: r%   c                     [         R                  " 5       u  pUR                  SSS9  UR                  R	                  5       nUS   SU R
                  -  :X  d   eUR                  SSS9  UR                  R	                  5       nUS   S:X  d   eUR                  SS S9  UR                  R	                  5       nUS   [        R                  S   S-  U R
                  -  :X  d   eg )	NaardvarkrB  r[
  rz  g?r  zaxes.titlepadr  )r'   r   r5   titleOffsetTrans
get_matrixr>  rW   r   )r-   r"   r  s      r#   test_title_padr  ,  s     llnGCLLL%
&&(AU8	CGG+,,,LLL$
&&(AU8r>>LLL&
&&(AU8
++O<sBSWWLMMMr%   c                  F   [         R                  " 5       u  pS[         R                  S'   UR                  S5        UR                  SSS9  UR                  SSS9  SUR	                  SS9:X  d   eSUR	                  SS9:X  d   eSUR	                  SS9:X  d   e[
        R                  " [        5         UR	                  SS9  S S S 5        [
        R                  " [        5         UR                  SSS9  S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)	NrZ   zaxes.titlelocationr  rQ   r@   rC   r*  fail)r'   r   r   r5   	get_titler   r   r  r,   s     r#   test_title_location_roundtripr  <  s    llnGC)1CLL%&LLLLVL$LLgL&R\\f\----bllwl////(3333	z	"
 
#	z	"
V' 
#	" 
#	"	"	"s   5D'D
D
D r  c                 >   [         R                  " SSU S9u  pUS   R                  SSS9  US   R                  SSS9  UR                  5         US   R                  R                  5       u  p4US   R                  R                  5       u  p5XEs=:X  a  S	:X  d   e   eg )
Nr:   r9   r  r   r  ir  r  r   )r'   r   r5   r  r1   rd  )r  r-   r  r2   r  rS  s         r#   test_title_location_sharedr  N  s    ||Aq0HCFSc"FSc" FLL%%'EAFLL%%'EA?s???r%   z
loglog.pngc                      [         R                  " 5       u  p[        R                  " SS5      nUR	                  X"S-  SS9  UR                  SSS9  UR                  S	SS
S9  g )Nr9   rV  r   r   rO  r  r:   )rZ
  r  r   rx  )rZ
  r  rz  )r'   r   rj   rr   r  r2
  )r-   r"   r2   s      r#   test_loglogr  Y  sU    llnGC
		!RAIIaA!INN"AN&NN"AWN5r%   ztest_loglog_nonpos.pnggV-?c                     [         R                  " SS5      u  p[        R                  " SS5      nUS-  nSUS'   SUS'   [	        [        / SQS	S
9UR                  5       H  u  u  pEnXT:X  a0  U(       a  UR                  X#S-  S	US9  OUUR                  X#S-  S	S9  OAUR                  X#S-  S	S9  U(       a  UR                  SUS9  U(       a  UR                  SUS9  UR                  SS/5        M     g )Nr   r9   rV  g      r  r"  r/  )r  r(  r   r:   )r  )rM  nonpositiverO  r-  )r  r:
  g    cA)r'   r   rj   rr   r  r   r  r  r^  r  r  )r-   r  r2   r3   mcymcxr"   s          r#   test_loglog_nonposr  b  s     ||Aq!HC
		!RA	1AAaDAaDg&:1E!hh(
B:		!TaS	9		!Ta	(IIaA!I$e5e5
sCj!(r%   c                     [         R                  " 5       u  pUR                  / SQ5        UR                  5       S   S:w  d   e[         R                  " 5       u  pUR	                  / SQ/ SQ5        UR                  5       S   S:X  d   e[         R                  " 5       u  pUR                  / SQ/ SQ5        UR                  5       S   S:X  d   e[         R                  " 5       u  pUR                  [        R                  " S5      5        UR                  5       S:X  d   eUR                  5       S:X  d   e[         R                  " 5       u  pUR                  [        R                  " S5      5        UR                  5       S:X  d   eUR                  5       S:X  d   e[         R                  " 5       u  pUR                  [        R                  " S5      5        UR                  5       S   S:X  d   e[         R                  " 5       u  pUR                  [        R                  " S5      5        UR                  5       S:X  d   eUR                  5       S:X  d   eg )Nr  r   )r9   r9   r9   r9   r  r	  r~   )r  g      #@)r'   r   r   r  r  r  r~  rp  rj   r  r  r  rr   r   r,   s     r#   test_axes_marginsr  z  s   llnGCGGL==?1"""llnGCFF<&==?1"""llnGCGGL,'==?1"""llnGCIIbhhx !==?g%%%==?g%%%llnGCMM"((8$%==?g%%%==?g%%%llnGCGGBIIbM==?1"""llnGCIIbhhx !==?k)))==?k)))r%   )re  c                 0    S nS nXS.U R                      $ )Nc                     U R                  5       nUR                  5         U R                  SS5        U R                  R	                  5       " 5       nUS   S:  d   eg Nr   r   r   rd  )r  r{  r  r[   get_major_locatorr"   r  r`  s      r#   	_helper_x&shared_axis_remover.<locals>._helper_x  I    hhj


ArHH&&(*urzzr%   c                     U R                  5       nUR                  5         U R                  SS5        U R                  R	                  5       " 5       nUS   S:  d   eg r  )r  r{  r  r]   r  r  s      r#   	_helper_y&shared_axis_remover.<locals>._helper_y  r  r%   r  )param)requestr  r  s      r#   shared_axis_removerr    s      +GMM::r%   )ru  r   subplots_sharedrQ  c                    U R                   S:X  a(  [        R                  " 5       nUR                  5       nX4$ U R                   S:X  a  [        R                  " 5       u  pX4$ U R                   S:X  a$  [        R                  " SSSSS9u  pUS   S   nX4$ U R                   S:X  a&  [        R                  " 5       nUR                  S	5      nWW4$ )
Nru  r   r  r:   r;  r
  r   rQ  r   r   r&  r&  )r  r'   r   ru  r   rQ  )r  r-   r"   r	  s       r#   shared_axes_generatorr    s     }}jjlWWY 7N 
*	$,,. 7N 
+	+ll1aeDAYq\ 7N 
*	$jjl\\*+7Nr%   c                     U u  p#U" U5        g r  r   )r  r  r-   r"   s       r#   test_remove_shared_axesr    s    #GCr%   c                      [         R                  " SSSSS9u  pUS   S   nUS   S   R                  5       nUR                  5         UR	                  SS5        [        US   S   R                  5       U5        g )Nr:   r;  r
  r   r9   r   )r'   r   r   r{  r  r   )r-   r	  r"   	orig_xlims       r#   test_remove_shared_axes_relimr    sm    ,,q!E%@KC	1Bq	!%%'IIIKKK1vay|,,.	:r%   c                     [         R                  " SSS5      n [         R                  R                  U R                  U R                  45      n[
        R                  " SSSSS9u  nu  p4UR                  SS	5        UR                  SS	5        UR                  X U5        UR                  X U5        UR                  5       (       d  UR                  5       (       a   eUR                  5       (       d  UR                  5       (       a   eUR                  5       UR                  5       s=:X  a  S
:X  d   e   eUR                  5       UR                  5       s=:X  a  S
:X  d   e   eg )NirL  r(  r:   r9   Tr
  r  )r  r  )rj   rr   rk   random_sampler'  r'   r   r  r  r  rW  rY  r   r   )r
  r  r-   r  r  s        r#   test_shared_axes_autoscaler    s   
		#r2A
		 01All1aTBOC#LLLLKKaKKa$$&&s/D/D/F/FFF$$&&s/D/D/F/FFF<<>S\\^<}<<<<<<<>S\\^<}<<<<<r%   c                  
   [         R                  " 5       u  pUR                  R                  5       R	                  SS9  UR                  SS5        UR                  S5        U R                  R                  5         [        UR                  R                  5       " 5       5      S:X  d   eUR                  SS5        U R                  R                  5         [        UR                  R                  5       " 5       5      S:  d   eg )Nr  r8  r   r  r  r:   )r'   r   r]   r  
set_paramsr  r
  rn  r  r  r  r,   s     r#   test_adjust_numtick_aspectr    s    llnGCHH ++&+9KK4MM'JJOOrxx))+-.!333KK4JJOOrxx))+-.222r%   c                      [         R                  " 5       R                  SS5      n U R                   H7  n/ UR	                  5       Q/ UR                  5       Qs=:X  a  / SQ:X  a  M4   e   e   g )Nr/  rG  )r'   r   r   r  r)  rH  r#
  s     r#   test_auto_numticksr    sX    
**,

1
%Chh!!%7r}}%7F;FFFFF r%   c                     [         R                  " 5       u  pS[        R                  S'   UR	                  SS/SS/5        [        [        R                  " UR                  5       5      [        R                  " SSS	5      5        [        [        R                  " UR                  5       5      [        R                  " S
SS5      5        g )Nround_numbersaxes.autolimit_modeg#B;r
  缉ؗҜ<r~   irV  r/  r=  r   r   )r'   r   r   r   r  r   rj   log10r)  rr   rH  r,   s     r#   test_auto_numticks_logr
    s     llnGC*9CLL&'IIuclUBK(rxx0"))CQ2GHrxx0"))CA2FGr%   c                  V    [         R                  " 5       u  pUR                  / S5        g )N)r   r   )r'   r   r  r,   s     r#   test_broken_barh_emptyr    s    llnGCNN2x r%   c                     [         R                  " 5       u  p[        R                  " SSSSSS5      nUR                  U[        R                  " SS94/SS/5      nUR                  5       S   R                  S   [        R                  " U5      :X  d   eUR                  5       S   R                  S	   [        R                  " U5      S
-   :X  d   eg)z9Check that timedelta works as x, dx pair for this method.rz  rV  r~  r   r9   r{  r:   r  r:   r   gUUUUUU?N)	r'   r   rO  r  r  r  verticesrQ  rR  )r-   r"   d0pps       r#   test_broken_barh_timedeltar    s    llnGC			4Q1a	0B	"h00q9:;aV	DB<<>!%%d+vr/BBBB<<>!%%d+vr/BV/KKKKr%   c                     [         R                  " 5       u  pUR                  S/S5      nUR                  5        H)  n[	        UR                  5       R                  SS/5        M+     UR                  S/SSS9nUR                  5        H)  n[	        UR                  5       R                  SS	/5        M+     UR                  S/S
SS9nUR                  5        H)  n[	        UR                  5       R                  SS/5        M+     g )Nr	  r  r   r:   )r~   r:   rZ   rY  r~  rV  )r  r:   r?   rT  r  )r'   r   r  r  r   get_extents	intervaly)r-   r"   rR  r8  s       r#   test_broken_barh_alignr    s    llnGC		6	*B4++-77!Q@  
	7(	;B4++-77!RA  
	7%	8B4++-77"bB r%   c                     [         R                  " 5       u  pUR                  S/S5      n[        UR	                  UR
                  5      R                  5      S:X  d   eUR                  S/SSS9n[        UR	                  UR
                  5      R                  5      S:X  d   eUR                  S/SSS9n[        UR	                  UR
                  5      R                  5      S:X  d   eg )	Nr	  )r   r&  )r   r&  rZ   rY  )gٿrM  r?   )gr   )r'   r   r  r{  r
  r
  r  )r-   r"   rR  s      r#   test_broken_barh_categoricalr    s    llnGC		:	.B-778HDDD		:X	>B-778KGGG		:U	;B-778IEEEr%   c                     U R                  SSS9n[        R                  " S5      n[        R                  R	                  SS5      n[
        R                  " 5       u  pEUR                  XU5        g )Nz
2000-01-01r~   )r  r  r  r~  )r  rj   rr   rk   r   r'   r   r  )r  timedepthr  r-   r"   s         r#   test_pandas_pcolormeshr  &  sP    ==r=2DIIbME99>>"a DllnGCMM$t$r%   c                 `   [         R                  " SSSS9n[         R                  " [        [	        U5      5      5      nU R                  XS.5      n[        R                  " 5       nU[         R                  " UR                  5      S-  S:H     R                  5       nUR                  SS	US
9  g )Nz2005-02z2005-03rH  r  )r  r8  r:   r9   r  r8  rw  )rj   rr   r  r   r  r  r'   ru  rP  r  r  r   )r  r  r8  r  r"   without_zero_indexs         r#   test_pandas_indexing_datesr  /  s    IIi/BEVVE#e*%&F	8	9B	BBHHRXX.2a78==?GGGX$6G7r%   c                     U R                  [        R                  R                  SS9/ SQ/ SQS9n[        R
                  " 5       u  p#UR                  SSSS	US
9  g )N)r   r/  r&  )r2   r3   xeyer  )r  r  r2   r3   r!  r"  r=  )r  rj   rk   uniformr'   r   rc  r  s       r#   test_pandas_errorbar_indexingr$  :  sT    	bii''V'44+ 
 
-B llnGCKKSt$RK8r%   c                     U R                  / SQ/ SQS.5      n[        R                  " 5       u  p#UR                  UR                  US   5        g )Nr  )r  r9   r:   )XXYYr'  )r  r'   r   r   r  r  s       r#   test_pandas_index_shaper(  B  s8    	Yi8	9BllnGCGGBHHbhr%   c                     U R                  / SQS9nUR                  SS  n[        R                  " 5       u  p4UR	                  U5        g )N)
r9   r:   r:   r   r   r/  r/  r/  r/  r   rw  r9   )r	  ilocr'   r   r  )r  ser_1ser_2r-   r"   s        r#   test_pandas_indexing_histr-  H  s:    II9I:EJJqrNEllnGCGGENr%   c                 *   U R                  [        S5      [        S5      S.5      n[        R                  " S5      u  p#UR	                  UR
                  US   S:H  S4   UR
                  US   S:H  S4   SS9  UR                  R                  5         g )Nr:   rv  r9   r   r$  rZ   rY  )r  r   r'   r   r  rA   rn  r  r  s       r#   test_pandas_bar_align_centerr/  O  s    	E!H584	5Bll1oGCFF266"S'Q,#$66"S'Q,#$   JJOOr%   c                     [         R                  " 5       R                  n 0 U R                  SS9En0 U R                  SS9EnU R	                  U R
                  SS9nU R	                  U R                  SS9nX1:X  d   eXB:X  d   eU R                  SSSS	S
9  0 U R                  SS9En0 U R                  SS9EnU R	                  U5      nU R	                  U5      nX:w  d   eU R
                  U:X  d   eX&:w  d   eU R                  U:X  d   eg )Nr<
  ry  rx  T)reverser   rJ  r
  r   )rU
  r\
  rY
  rz  )r'   r|  r]   get_tick_params_translate_tick_paramsr  r  set_tick_params)	r!  initial_major_style_translatedinitial_minor_style_translatedtranslated_major_kwtranslated_minor_kwnew_major_style_translatednew_minor_style_translatednew_major_stylenew_minor_styles	            r#   test_axis_get_tick_paramsr=  \  sV   ;;=D%L(<(<7(<(K%L"%L(<(<7(<(K%L"55T 6  55T 6  @@@@@@2%#(  8 "ID$8$8w$8$G!H!HD$8$8w$8$G!H112LMO112LMO)GGG/111)GGG/111r%   c                      [         R                  " 5       n U R                  R                  SSSS9  U R                  R                  S   R
                  S:X  d   eU R                  R                  S   R                  R                  5       S:X  d   eU R                  R                  S   R                  R                  5       S:X  d   eU R                  R                  S   R                  R                  5       S:X  d   eg )	Nr   rJ  r
  )rU
  r\
  rY
  r   r  rL  rB  )
r'   r|  r]   r4  rH
  rk
  	tick1linerU  r  r  )axis_1s    r#   .test_axis_set_tick_params_labelsize_labelcolorrA  w  s    [[]F
LL  2%+0 ! 2 <<""1%++s222<<""1%//99;sBBB<<""1%,,5574???<<""1%,,668EAAAr%   c                     [         R                  " 5       n U R                  SSSSS9  U R                  U R                  4 H  nUR
                  S   R                  R                  5       S:X  d   eUR
                  S   R                  R                  5       S:X  d   eUR
                  S   R                  R                  5       S:X  d   eUR
                  S   R                  R                  5       S:X  a  M   e   g )Nr$  r   r   re	  )r^
  r`
  r_
  ra
  r   rh  )r'   r|  r2
  r[   r]   rH
  r@
  rU  get_linewidthr  r  )r"   r!  s     r#   test_axes_tick_params_gridlinesrD    s    	BNNc!"+  -"(("q!**446#===q!**88:a???q!**446#===q!**88:dBBB	 #r%   c                  "   [         R                  " 5       n U R                  SSSS9  U R                  SSSS9  U R                  R                  S   R
                  R                  5       SL d   eU R                  R                  S   R                  R                  5       SL d   eU R                  R                  S   R
                  R                  5       SL d   eU R                  R                  S   R                  R                  5       SL d   eg )NFTr<
  )	labelleft
labelrightrz  rx  r   )	r'   r|  r2
  r]   rH
  r  r  label2rI
  r  s    r#    test_axes_tick_params_ylabelsiderI    s    	BNNUt   "NNUt   " 88q!((446%???88q!((446$>>>88q!((446%???88q!((446$>>>r%   c                  "   [         R                  " 5       n U R                  SSSS9  U R                  SSSS9  U R                  R                  S   R
                  R                  5       SL d   eU R                  R                  S   R                  R                  5       SL d   eU R                  R                  S   R
                  R                  5       SL d   eU R                  R                  S   R                  R                  5       SL d   eg )NTFr<
  )labeltoplabelbottomrz  rx  r   )	r'   r|  r2
  r[   rH
  r  r  rH  rI
  r  s    r#    test_axes_tick_params_xlabelsiderM    s    	BNNDe   "NNDe   "
 88q!((446%???88q!((446$>>>88q!((446%???88q!((446$>>>r%   c                      [         R                  " 5       R                  5       n U R                  [	        S5      S S9u  nUR                  5       S:X  d   eg )Nr   r_  r]  )r'   r   r   r   r   r  )r"   lns     r#   test_none_kwargsrP    sE    				 B
''%)t'
,CB$$$r%   c                      / SQn [         R                  " [        R                  " U [        R                  S9/ SQSS9n[        UR                  U 5       H  u  p#UR                  S   U:X  a  M   e   g )Nr  r  )r:   r   r/  r   rH  rY  r   )r'   r  rj   rP  uint8r  r;  r  )r  r$  r  r2   s       r#   test_bar_uint8rS    sU    	B288,l&IA!))R(
xx{a )r%   zaxisbelow.pngc                     [         R                  " 5       R                  SSSS9n Sn[        X5       H  u  p#UR	                  SSSSS9  [
        R                  " S	S
S9nUR                  U5        UR                  SSSS9  UR                  SSSSS9  UR                  S S  R                  S5        UR                  U5        UR                  5       U:X  a  M   e   g )Nr   T)r3  r  rt  )Fr  Tr	  r~   r  r  r  r`  ra  r=   r]  )r   r   r6  F)r?   rP   rQ   rC   )r'   r   r   r  r   r  r	  r  r  r2
  r.
  r   set_axisbelowget_axisbelow)r  settingsr"   settingcircs        r#   test_axisbelowrZ    s    
 **,

aT

BC$H3)
Rs3vS1
T
cSA6
5! 	 	0
		!  '
!!W,,, *r%   c                     [         R                  R                  S5        [         R                  " SS9u  pUR	                  5       nUR                  S5      nUR                  S5      nU R                  R                  5         U R                  R                  5       nUR                  U5      R                  nUR                  U5      R                  nXg-
  nUS:  d   eg )Nr   rk  )r>  Xlabel2Titler   )r'   r   r   r   r  r(   r5   rn  r  get_rendererget_window_extentr\  r  )	r-   r"   r  xlabel2r1   rendererbbox_y0_titlebbox_y1_xlabel2y_diffs	            r#   test_titletwinyre    s    IIMM'llr"GC
((*CnnY'GLL!EJJOOzz&&(H++H588M//9<<O,FQ;;r%   c                     [         R                  " 5       u  pU R                  SS9  UR                  5       nUR	                  S5        UR	                  S5        UR                  S5        SnUR                  R                  U5        U R                  R                  5       nUR                  U5        UR                  R                  5       U:X  d   eg )Nr&  )r?   Xlabelr\  r]  )r   g(\?)r'   r   r  r  r(   r5   r1   rc  rn  r^  _update_title_positionrd  )r-   r"   r  r   ra  s        r#   test_titlesetposri    s    llnGCC 
((*CMM(NN9LL
CHH#zz&&(Hh'88  "c)))r%   c                  *   S [         R                  S'   [        R                  " 5       u  pUR                  R                  S5        UR                  S5        U R                  R                  5         UR                  R                  5       S   S:  d   eg )Naxes.titleyr?   
xlabel topr9   p=
ף?)r   r   r'   r   r[   r   r5   rn  r  r1   rd  r,   s     r#   test_title_xticks_toprn    si    "&CLLllnGCHH&LLJJOO88  "1%,,,r%   c                     S [         R                  S'   [        R                  " 5       u  pUR	                  SSSSSS9  UR                  S5        U R                  R                  5         UR                  R                  5       S   S:  d   eg )Nrk  r2   Tr!  rP   r?   rL  rK  rl  r9   rm  )
r   r   r'   r   r2
  r5   rn  r  r1   rd  r,   s     r#   test_title_xticks_top_bothrq    st    "&CLLllnGCNNDdT  KLLJJOO88  "1%,,,r%   zleft, center))rQ   r   )r   rZ   )rQ   rZ   )zleft title movedzcenter title keptzboth titles alignedc                 6   S [         R                  S'   [        R                  " 5       u  p#UR	                  S5        UR                  U SS9  UR                  U5        UR                  5         U (       a+  U(       d$  UR                  R                  5       S   S:  d   eg U (       d+  U(       a$  UR                  R                  5       S   S:X  d   eg UR                  R                  5       S   nUR                  R                  5       S   nUS:  d   eXT:X  d   eg )Nrk  g   vH7BrQ   r@   r9   r   )
r   r   r'   r   r  r5   r  _left_titlerd  r1   )rQ   rZ   r-   r"   yleftr  s         r#   test_title_above_offsetru    s     #'CLLllnGCKKLL6L"LL F~~**,Q/#555fxx$$&q)S000++-a0(('')!,s{{r%   c                  $   S [         R                  S'   [        R                  " 5       n U R	                  S5      nUR                  SSSSSS9  UR                  S5      nU R                  R                  5         UR                  5       S   S:X  d   eg )	Nrk  )r   r  r&  r   r2   Trp  Boor9   r   )
r   r   r'   r   rQ  r2
  r5   rn  r  rd  )r-   r"   tts      r#   test_title_no_move_off_pagery     s     #'CLL
**,C	+	,BNNDdT  K	e	BJJOO??Q3&&&r%   c                  l   S [         R                  S'   [        R                  " 5       u  pUR	                  S5        U R                  5         UR                  R                  5       S   S:X  d   eUR                  / SQ5        U R                  5         UR                  R                  5       S   S:X  d   eg )Nrk  r]  r9   )r   r9   r9   r   rv  )	r   r   r'   r   r5   r  r1   rd  
inset_axesr,   s     r#   test_title_inset_axr|  -  s    "&CLLllnGCLL 88  "1%***MM.! 88  "1%,,,r%   c                      [         R                  " 5       u  pUR                  / SQ5        UR                  R	                  SS9  UR                  R                  5       R                  5       S:X  d   eg )Ng   @Ag   eAg   FArJ  )r\
  )r'   r   r   r]   r4  get_offset_textrU  r,   s     r#   test_offset_label_colorr  9  sU    llnGCGG$%HH.88##%//1U:::r%   c                  z   [         R                  " 5       u  pUR                  / SQ5        UR                  R	                  SSS9  UR                  R                  5       R                  5       (       d   eUR                  R	                  SS9  UR                  R                  5       R                  5       (       a   eg )Nr~  FT)label1Onlabel2On)r  )r'   r   r   r]   r4  r  r  r,   s     r#   test_offset_text_visibler  A  s    llnGCGG$%HHed;88##%113333HHe,xx'')5577777r%   c                      [         R                  " 5       u  pUR                  S[        R                  " SS/5      -   S-  5        U R
                  R                  5         g )Nr9   r   g-q=gqىE)r'   r   r   rj   rP  rn  r  r,   s     r#   test_large_offsetr  J  s@    llnGCGGQ1f+&&%/0JJOOr%   c            
      P   [         R                  " 5       u  p[        SSS5       Vs/ s H  n[        R                  " SSSSU5      PM     nn[        R
                  " SS[        U5      5      n[        R
                  " SS	[        U5      5      =pVUR                  X4XV5        g s  snf 
Nr   r?  r~   rM  r  r   rT  r   rb  )r'   r   r   rO  rj   r  r  barbsr-   r"   rB  r  r3   ur  s          r#   test_barb_unitsr  P  s    llnGC<A!R<LM<LqXtQB2<LEM
Aq#e*%AKK2s5z**AHHUq N   $B#c            
      P   [         R                  " 5       u  p[        SSS5       Vs/ s H  n[        R                  " SSSSU5      PM     nn[        R
                  " SS[        U5      5      n[        R
                  " SS	[        U5      5      =pVUR                  X4XV5        g s  snf r  )r'   r   r   rO  rj   r  r  quiverr  s          r#   test_quiver_unitsr  X  s    llnGC<A!R<LM<LqXtQB2<LEM
Aq#e*%AKK2s5z**AIIe Nr  c                  h   [         R                  n [        R                  " 5       u  p[	        S5       H|  nUR                  [	        S5      5      u  nUR                  [	        S5      [	        S5      5      nU H3  nU " UR                  5       5      U " UR                  5       5      :X  a  M3   e   M~     g )Nr   r   )	r#  to_rgbr'   r   r   r   r  rU  ro  )r  r-   r"   r  rO  brsbrs          r#   test_bar_color_cycler  `  s    ^^FllnGC1XggeAhffU1XuQx(B",,.)VB4D4D4F-GGGG  r%   c                  P   [         R                  " SS5      u  n u  pUR                  SS/SS/5        UR                  SS/SS/5        UR                  R	                  SSS9  UR
                  R	                  SSS9  UR                  SS9 H/  nUR                  5       S:X  d   eUR                  5       S	:X  a  M/   e   UR                  SS9 H/  nUR                  5       S:X  d   eUR                  5       S	:X  a  M/   e   UR                  S
SSS9  UR                  SSSS9  UR                  SS9 H/  nUR                  5       S:X  d   eUR                  5       S:X  a  M/   e   UR                  SS9 H/  nUR                  5       S:X  d   eUR                  5       S:X  a  M/   e   g )Nr9   r:   r   r   r   )rz  r  rL  ry  r  r2   5   xtick)r!  r]
  labelrotation_moder3   r   ytick)r!  r  r  r<
  )r'   r   r   r[   r4  r]   r  r
  r  rI  r2
  )r  r"   r  r6  s       r#   test_tick_param_label_rotationr  j  s   \\!Q'NC"GGQFQFHHaVaVHH6B7HH6B7"""0  "b(((%%'9444 1 """0  "b(((%%'9444 1 OOB7OKOOrOA##'#2  "b(((%%'7222 3 ##'#2  "b(((%%'7222 3r%   c                     [         R                  " 5       u  p[        S5       Hv  nUR                  [        S5      [        S5      5      n[        R
                  " SU 35      n[        UR                  5       R                  5       5      [        U5      :X  a  Mv   e   [        SS5       Hv  nUR                  [        S5      [        S5      5      n[        R
                  " SU 35      n[        UR                  5       R                  5       5      [        U5      :X  a  Mv   e   [        R
                  " S5      nS Ha  nUR                  " [        S5      [        S5      40 US0D6n[        UR                  5       R                  5       5      [        U5      :X  a  Ma   e   [        R
                  " S5      n[        SS/SS9 H  u  p'UR                  " [        S5      [        S5      40 US0D6n[        R
                  " SU 35      n[        UR                  5       R                  5       5      [        U5      :X  d   e[        UR                  5       R                  5       5      [        U5      :X  a  M   e   g )	Nr   r  r   rL  )r4  rW  r   r5  rx  )r  )r'   r   r   r  r#  rT  r{  r  squeezer<  r  r	  )	r-   r"   r  cctargetaledge_targetelface_targets	            r#   test_fillbetween_cycler    s   llnGC1X__U1XuQx01QC)R&&(0023uV}DDD 
 1a[eAha11QC)R&&(0023uV}DDD 
 __S!F2__U1XuQx=B9=R&&(0023uV}DDD 3 //#&KK6a@__U1XuQx=B9=oo!g.R&&(0023u[7IIIIR&&(0023u[7IIII	 Ar%   c                     S[         R                  S'   [         R                  " 5       u  pSnUR                  U5        UR	                  SS/SS/5        UR                  5       u  p4UR                  R                  5       nUR                  X4/5      u  pgUR                  SS/5      u  pX-
  U-  n
[        Xj-   Xz-
  /X/5        g )Nr  r  rJ  r~   r   )
r'   r   r   set_xmarginr  r   r[   r  r3  r   )r-   r"   marginxlim0xlim1r3  xlim0txlim1tx0tx1tr1  s              r#   test_log_marginsr    s    *0CLL&'llnGCFNN6KKS	B9%;;=LE&&(I((%8NF""B9-HCY& EV^V^4sjAr%   c                     Sn [         R                  " U 5      [         R                  " U 5      p![         R                  " U S-   5      n[        R                  " 5       u  pE[        R
                  " [        5         UR                  XUS9  S S S 5        [        R                  " SS9   UR                  XSS9  S S S 5        UR                  XS/U -  S9  g ! , (       d  f       NP= f! , (       d  f       N4= f)Nr   r9   rX  r<  r  )r   r   r   )	rj   rr   r'   r   r   r   r  r;   r  )r  r2   r3   r  r-   r"   s         r#   test_color_length_mismatchr    s    	A99Q<1qYYqs^FllnGC	z	"


16
" 
#	F	G


1?
+ 
HJJq(1,J-	 
#	"	G	Gs   8C%C$
C!$
C2c                  Z    [         R                  " S/SS9  [         R                  " 5         g )Nr   Labelr  )r'   rR	  rI   r   r%   r#   test_eventplot_legendr    s    MM3%w'JJLr%   rO	  zlineoffsets cannot be emptyrP	  zlinelengths cannot be emptyr)  zlinewidths cannot be emptyr  zlinestyles cannot be emptyr  zalpha cannot be emptyz!positions must be one-dimensionalz5lineoffsets and positions are unequal sized sequencesz5linelengths and positions are unequal sized sequencesz4linewidths and positions are unequal sized sequencesz4linestyles and positions are unequal sized sequencesz/alpha and positions are unequal sized sequencesz0colors and positions are unequal sized sequencesc                     [         R                  " XS9   [        R                  " U0 UD6  S S S 5        g ! , (       d  f       g = fr
  )r   r   r'   rR	  r
  s       r#   test_eventplot_errorsr    s-    * 
s	(t&v& 
)	(	(r
  c                  (   [         R                  " 5       u  pUR                  [        S5      S5        UR	                  SS[        S5      SS9  UR                  SS/SS/SS9u  p#UR                  5       UR                  5       s=:X  a  S:X  d   e   eg )Nr/  r9   r   )rQ   r  )r   r   r   rM  r  )r'   r   r  r   r  rp  )r-   r"   rect1rect2s       r#   test_bar_broadcast_argsr    s    llnGCFF58QGGAquQxG*661a&1a&4D6ELE E$7$7$9M=MMMMMMr%   c                     [         R                  " SS/SS/5        [        R                  " [        5         [         R
                  " [        R                  5        S S S 5        [        R                  " [        5         [         R
                  " [        R                  5        S S S 5        [        R                  " [        5         [         R                  " [        R                  5        S S S 5        [        R                  " [        5         [         R                  " [        R                  5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nx= f! , (       d  f       g = fr  )
r'   r   r   r   r  r   rj   r  r	  r   r   r%   r#   test_invalid_axis_limitsr    s    HHaVaV	z	" 
#	z	" 
#	z	" 
#	z	" 
#	" 
#	"	"	"	"	"	"	"s/   %D9=%E
%E%E,9
E

E
E),
E:r  r\  r-  r  c                     [         R                  " 5       nUR                  / SQ5        UR                  U 5        UR	                  U5        UR                  5         g )Nr  )r'   r|  r   r^  r  r  )r  r  r"   s      r#   test_minorticks_onr    s?     
BGGLMM&MM&r%   c                     [         R                  " 5       u  pUR                  SS5        UR                  5       nUR	                  SS/SS/5        [         R                  " 5       u  p4UR                  SS5        UR	                  SS/SS/5        [        UR                  R                  UR                  R                  5        g )Nr9   r:   r   r   )r'   r   r  r  r   r   r
  	intervalx)r-   r"   xtwinr  r  s        r#   test_twinx_knows_limitsr    s    llnGCJJq!HHJE	JJ3x!Q IDKK1HHaX1vu}}..0E0EFr%   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )SubclassAxesi   c                2   > [         TU ]  " U0 UD6  Xl        g r  )r  r  r*  )r  r*  rz
  r  r  s       r#   r  SubclassAxes.__init__   s    $)&)r%   r
  )r  r  r  r  r  r  r  )r  s   @r#   r  r     s     r%   r  c                  &   [         R                  " 5       u  pUR                  [        SS9n[	        U[        5      (       d   eUR
                  S:X  d   eUR                  [        SS9n[	        U[        5      (       d   eUR
                  S:X  d   eg)z?Check that twinx/y(axes_class=...) gives the appropriate class.r9   r  r*  r:   N)r'   r   r  r  r   r*  r  r#  r"   r  r  s       r#   test_twinning_with_axes_classr     sy    LLNEAHH!H4Ee\****99>>HH!H4Ee\****99>>r%   c                      [         R                  " [        [        SS9S9u  pUR	                  5       n[        U5      [        L d   eUR                  5       n[        U5      [        L d   eg)z_
Check that the default class for twinx/y() is Axes,
even if the original is an Axes subclass.
r9   r  r  N)r'   r   r  r  r  r  r   r  r  s       r#    test_twinning_default_axes_classr     sU    
 LLDLa$HIEAHHJE;$HHJE;$r%   c                      [         R                  " 5       u  pUR                  5       nUR                  R	                  5       (       d   eUR                  R	                  5       (       a   eg r  r'   r   r  r  r  r#  r"   r  s      r#   &test_twinning_patch_visibility_defaultr  #   sO    LLNEA
((*C88!!!!yy$$&&&&&r%   c                  "   [         R                  " 5       u  pUR                  SS9nUR                  5       UR                  5       S-
  :X  d   eUR                  R                  5       (       d   eUR                  R                  5       (       a   eg )Nr   delta_zorderr9   )r'   r   r  r[  r  r  r  s      r#   4test_twinning_patch_visibility_respects_delta_zorderr  *   st    LLNEA
(((
#C>>r}}222299  """"xx##%%%%%r%   c                  8   [         R                  " 5       u  pUR                  5       nUR                  5       nUR                  R	                  5       (       d   eUR                  R	                  5       (       a   eUR                  R	                  5       (       a   eg r  r  r#  r"   r  r  s       r#   9test_twinning_patch_visibility_multiple_twins_same_zorderr  2   ss    LLNEA
((*C
((*C88!!!!yy$$&&&&yy$$&&&&&r%   c                  6   [         R                  " 5       u  pUR                  5       nUR                  SS9nUR                  R	                  5       (       d   eUR                  R	                  5       (       a   eUR                  R	                  5       (       a   eg )Nr   r  r  r  s       r#   5test_twinning_patch_visibility_updates_for_new_bottomr  ;   sx    LLNEA
((*C
(((
#C99  """"yy$$&&&&xx##%%%%%r%   c                     [         R                  " 5       u  pUR                  5       nUR                  R	                  5       (       d   eUR                  R	                  5       (       a   eUR                  UR                  5       S-
  5        UR                  R	                  5       (       d   eUR                  R	                  5       (       a   eg r{  )r'   r   r  r  r  
set_zorderr[  r  s      r#   7test_twinning_patch_visibility_updates_after_set_zorderr  D   s    LLNEA
((*C88!!!!yy$$&&&&NN2==?Q&'99  """"xx##%%%%%r%   c                     U R                  5       R                  / SQ/ SQSSS9  UR                  5       R                  / SQ/ SQSSS9  g )Nr  r  Tr^  )rS  r'  r]  )r   ra  r    r!   s     r#   test_stairs_fill_zero_linewidthr  O   sN     oDT  ;oDS  :r%   c                      [         R                  " 5       u  pUR                  / / / SS9  UR                  / / / SS9  UR                  5         g )Nzempty y)rg  r0   zempty x)rh  r0   )r'   r   rc  rI   r,   s     r#   test_empty_errorbar_legendr  X   s@    llnGCKKBRyK1KKBRyK1IIKr%   c                    [         R                  " SSS5      nU Vs/ s H  nSUS-  -  SUS-  -  -
  SU-  -   S	-   PM     nnU Vs/ s H  n[        U5      PM     nnU Vs/ s H  n[        U5      PM     nnU R                  5       R	                  X65        UR                  5       R	                  X$5        g s  snf s  snf s  snf )
Nr"  r~   r   g@r   rH  r:   g\(\@r  )rj   rr   r   r   r   )r    r!   r[  r2   r\  rB  r3   s          r#   test_plot_decimalr  _   s    	3C	 B@B	C1#Q,qAv
%q
03
6B	C RRA  RRA Q"B# 
D  s   $B8B="Cc                     U R                  5       R                  SSSSS9  UR                  5       R                  SSSSS9  g )Nr   r   r0  r   )r  r  ry  )r   r   r  s     r#   test_markerfacecolor_none_alphar  k   sB    Qr:As26r%   c                     S[         R                  S'   S[         R                  S'   [         R                  " 5       u  pUR                  U R                  R                  5       5      nUR                  S5        UR                  U R                  R                  5       5      nUR                  UR                  :  d   eUR                  UR                  :  d   eg)z5Test that tick padding gets turned off if axis is offr
  re
  zytick.directionoffN)	r'   r   r   get_tightbboxrn  r^  r!  r[  r\  r-   r"   bbbb2s       r#   test_tick_padding_tightbboxr  q   s    &+CLL"#&+CLL"#llnGC			#**113	4BGGEN


3::224
5C55366>>55366>>r%   c                  0   Su  p[         R                  [        SSU-   U5      [        SSU -   U 5      4   u  p#[         R                  " U5      S-  [         R                  " SX#-  -   5      [         R                  " U5      -  -   n[
        R                  " 5       u  pVUR                  X2USS2SS24   5        UR                  S5        UR                  5         SS	/nS
S/nUS   US   US   US   -
  US   US   -
  /n	UR                  U	S9n
U
R                  b   eUR                  R                  5         [         R                  " SS/S	S//5      n[         R                  " U
R                   R#                  5       R%                  5       U:H  5      (       d   eg)z2
Ensure that inset_ax argument is indeed optional
rJ  rJ  r9   r   r~   Nr   r   r   333333@r:   rQ  r   )re  r   )rj   mgridr)  r  rx  r'   r   r  r
  apply_aspectindicate_inset
connectorsrn  r  rP  r;  	rectangleget_bboxr
  )dxdyr3   r2   r  r-   r"   r   r   rs  insetr  s               r#   
test_insetr  }   sy    FB88E!QVR(!QVR() *DA
q	R"&&ae,rvvay88AllnGCMM!#2#ss($MM"OO ;Ds8DGT!Wd1gQ/a471BCDT*E###JJOO	C9#;  
!B66%//**,779R?@@@@r%   c                     Su  p[         R                  [        SSU-   U5      [        SSU -   U 5      4   u  p#[         R                  " U5      S-  [         R                  " SX#-  -   5      [         R                  " U5      -  -   n[
        R                  " 5       u  pVUR                  X2US S2S S24   5        UR                  S5        UR                  5         UR                  / SQ5      nUR                  X2US S2S S24   5        UR                  SS	5        UR                  S
S5        UR                  UR                  5       5        [        R                  " [         R"                  5         UR%                  U5      u  pS S S 5        UR&                  R)                  5         [+        W	5      S:X  d   e[         R,                  " SS/S	S//5      n
[         R.                  " WR1                  5       R3                  5       U
:H  5      (       d   e[         R,                  " SS/SS//5      n
[         R4                  R7                  UR9                  5       R3                  5       U
SS9  g ! , (       d  f       N= f)Nr  r9   r   r~   r   r   )r  r  rF  rF  r   r  r:   rQ  r/  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)rj   r  r)  r  rx  r'   r   r  r
  r  r{  r  r  r
  r   r  r   ri	  indicate_inset_zoomrn  r  r  rP  r;  r  r
  r   r   rd  )r  r  r3   r2   r  r-   r"   axin1recr  r  s              r#   test_zoom_insetr     s   FB88E!QVR(!QVR() *DA
q	2rACx(266!944AllnGCMM!#2#ss($MM"OO MM01E	Q1SbS#2#X;'	NN3	NN1c	R]]_%	c66	7007 
8JJOOz?a	C":#;  
!B66#,,.++-34444	FH%H%' 
(BJJ'')2D  : 
8	7s   ,I##
I1zinset_polar.pngc                  $   [         R                  " 5       u  pUR                  / SQSS9n[        U[        5      (       d   e[
        R                  " SSS5      nS[
        R                  -  U-  nUR                  XC5        UR                  XC5        g )N)r   r   r$  r$  Tr9  r   r:   r   )	r'   r   r{  r   r   rj   rr   r  r   )r#  r"   axinsr`  r  s        r#   test_inset_polarr     sp    LLNEAMM0M=EeY''''
		!QAIMEGGE	JJur%   c                      [         R                  " 5       u  pUR                  / SQSS9n[        U[        5      (       d   eg )Nr   r   r   r   hammerr  )r'   r   r{  r   r   r#  r"   r  s      r#   test_inset_projectionr     s5    LLNEAMM.8MDEeZ((((r%   c                      [         R                  " 5       u  pUR                  / SQ[        R                  S9n[        U[        R                  5      (       d   eg )Nr  )r  )r'   r   r{  AAr   r   r  s      r#   test_inset_subclassr
     s=    LLNEAMM.277MCEeRWW%%%%r%   
x_inverted
y_invertedc                    [         R                  " SS5      u  nu  p4[        R                  " S5      nUR	                  XUS5        U (       a  UR                  5         U(       a  UR                  5         UR                  / SQU5      nUR                  u  pxpU (       a  SOSnU(       a  SOSnXR                  S   UR                  S   -
  -  S:  d   eXR                  S   UR                  S   -
  -  S:  d   eXR                  S   UR                  S   -
  -  S:  d   eXR                  S   U	R                  S   -
  -  S:  d   eg)	zJ
Test that the inset lines are correctly located with inverted data axes.
r9   r:   r~   r   )r:   r:   r   r/  r   r   N)
r'   r   rj   rr   r   r  r  r  r  rI	  )r  r  r-   r  r  r2   r  
lower_left
upper_leftlower_rightupper_rightsign_xsign_ys                r#   test_indicate_inset_invertedr     s'    ll1a(OC#
		"AHHQ3|S1E7<7G7G4JKR1FR1F__Q'*..*;;<q@@@__Q'*..*;;<q@@@^^A&)::;a???__Q'+//!*<<=AAAr%   c                  H   [         R                  " 5       u  pUR                  S5        UR                  / SQSS9  [        R
                  " UR                  5       R                  S5      (       d   eUR                  S5        UR                  / SQSS9  [        R
                  " UR                  5       R                  S5      (       d   eUR                  S5        UR                  / SQS	S9  [        R
                  " UR                  5       R                  S5      (       d   eg )
Nr  )r   r   rM  rM  r   ry  r   r   rb  r  active)r'   r   r
  rc  rj   r  rd  r  r,   s     r#   test_set_positionr     s    llnGCMM"OO(O7;;r(..4444MM"OO(
O;;;r(..5555MM"OO(O9;;r(..4444r%   c                     [         R                  " 5       u  pUR                  R                  R	                  U R
                  R                  5       5      nUR                  SSS SS5        UR                  R                  R	                  U R
                  R                  5       5      n[        R                  R                  UR                  5       UR                  5       SS9  g )N)r	  r	  r  r  rX
  Fgư>r  )r'   r   r.
  rP   r_  rn  r^  _set_view_from_bboxrj   r   r   r
  r  s       r#   !test_spines_properbbox_after_zoomr     s    llnGC				+	+CJJ,C,C,E	FB//
))


,
,SZZ-D-D-F
GCJJr}}0@tLr%   c                  `   [         R                  " 5       u  pSnSnUR                  U5        UR                  US   US   S9  UR	                  S5        [
        R                  R                  X!R                  5       SS9  [
        R                  R                  X1R                  5       SS9  UR	                  S	5        S
nSnUR                  5       nUR                  5       n[
        R                  R                  US   US   -
  S5        [
        R                  R                  US   US   -
  S5        [
        R                  R                  XFSS9  [
        R                  R                  XW5        UR	                  S5        UR                  5       nUR                  5       n[
        R                  R                  US   US   -
  S5        [
        R                  R                  US   US   -
  S5        [
        R                  R                  X&SS9  [
        R                  R                  X7SS9  g )Nr  r   )r   r:   r   r9   rv
  )r  r  r   r  atol)r  r  r   )gB!Bؿg{?)g      ڿg     ?r   r   )r  r  r   r   )
r'   r   r  r  r  rj   r   r   r   r   )r-   r"   r   r   r%  new_ylimres_xlimres_ylims           r#   test_limits_after_scroll_zoomr"  !  s   llnGCDDKKKKT!W47K+ >*JJt[[]?JJt[[]? >*9H"H{{}H{{}HJJx{Xa[8#>JJx{Xa[8#>JJx>JJx2 ?+{{}H{{}HJJx{Xa[8!<JJx{Xa[8!<JJtE:JJtE:r%   c                  0   [         R                  " 5       u  p[        U 5        UR                  [        R
                  SS5        U R                  R                  5       n[        R                  R                  UR                  U5      R                  S5        g )Nr9   rw  i  )r'   r   r   r6  rj   r  rn  r^  r   r   r  r  )r-   r"   ra  s      r#   test_gettightbbox_ignore_nanr$  *!  sb    llnGCC GGBFFAuzz&&(HJJr//9??Er%   c                    [        SS5      nU R                  [        R                  R	                  SS9US9nU R                  [        R                  R	                  SS9US9nU R                  / SQUS9n[
        R                  " X#U5        g )Nr~   rT  r  r&  r  )r9   r9   r9   r9   r9   r   r   r   )r   r	  rj   rk   r#  r'   r;   )r  r3  r2   r3   r=   s        r#   "test_scatter_series_non_zero_indexr&  2!  sv    
B-C
		"))###+3	7A
		"))###+3	7A
		*#	6AKKar%   c                  `    [         R                  " / / 5        [         R                  " / / / / S9  g )N)r  r=   )r'   r;   r   r%   r#   test_scatter_empty_datar(  ;!  s"    KKBKKB"#r%   zannotate_across_transforms.pngg?)r   r  r   c                      [         R                  " SSS5      n [         R                  " U * 5      [         R                  " U 5      -  n[        R
                  " SS9u  p#UR                  X5        UR                  / SQ5      nUR                  S5        UR                  R                  S5        UR                  R                  S5        UR                  S	U S
   US
   4UR                  SUR                  [        SS9S9  g )Nr   r~   r  )gQ@r   rK  )rM  r   r   r   r   Fr   r  r  r
  )r
  )r  r	  r
  r  r,  )rj   r  r  r  r'   r   r   r{  r
  r[   r   r]   r  r
  r?  r  )r2   r3   r-   r"   r  s        r#   test_annotate_across_transformsr*  A!  s     	Ar3A
r
RVVAYAll9-GCGGAMMM./E	S	KKE"	KKE"KK##'",,%//40  2r%   c                   .    \ rS rSrSrSrS rS rS rSr	g)_TranslationiR!  r9   c                     Xl         g r  r  )r  r  s     r#   r  _Translation.__init__V!  s    r%   c                     XR                   -   $ r  r.  )r  r8  s     r#   r3  _Translation.transformY!  s    r%   c                 .    [        U R                  * 5      $ r  )r,  r  r  s    r#   rB	  _Translation.inverted\!  s    TWWH%%r%   r.  N)
r  r  r  r  
input_dimsoutput_dimsr  r3  rB	  r  r   r%   r#   r,  r,  R!  s    JK &r%   r,  zsecondary_xy.pngg~jt?c                     [         R                  " SSSSS9u  pS n[        U5       H  u  p4UR                  [        R
                  " SS5      [        R
                  " SS5      5        US:X  a  UR                  nOUR                  nU" S	X"4S
9  U" SS S 4S
9  U" SS S 4S
9  U" S5        U" US:X  a  SOS[        S5      S
9  U" SUR                  S9  M     g )Nr9   r:   r  T)r  rm  c                 j    [         R                  " SS9   SU -  sS S S 5        $ ! , (       d  f       g = fNr  r  r9   rj   r  rz	  s    r#   invert!test_secondary_xy.<locals>.inverte!  !    [[)q5 *))   $
2rV  r   r   	functionsrM  c                     SU -  $ Nr:   r   rz	  s    r#   r  #test_secondary_xy.<locals>.<lambda>q!  s    Ar%   c                     U S-  $ rA  r   rz	  s    r#   r  rB  q!  s    Qr%   r  c                     U S-  $ rA  r   rz	  s    r#   r  rB  r!  s    1r%   c                     U S-  $ )Nr   r   rz	  s    r#   r  rB  r!  s    Cr%   r&  r?   rC   g      @r  )
r'   r   r  r   rj   rr   secondary_xaxissecondary_yaxisr,  r
  )r-   r  r:  nnr"   secaxs         r#   test_secondary_xyrJ  `!  s     ||Aq'dKHC C.
		!R "))Ar"237&&E&&Ecf-.co?@cn.@ABc
rQweG|AGdbll+ !r%   c                     [         R                  " 5       u  pUR                  [        R                  " SS5      [        R                  " SS5      5        [
        R                  " [        5         UR                  SS S9  S S S 5        [
        R                  " [        5         UR                  S5        S S S 5        [
        R                  " [        5         UR                  S5        S S S 5        [
        R                  " [        5         UR                  SSS	9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       g = f)
Nr:   rV  r   c                     SU -  $ r{  r   rz	  s    r#   r  %test_secondary_fail.<locals>.<lambda>|!  s    QUr%   r>  rC   rP   errorr  )r'   r   r   rj   rr   r   r   r  rF  rG  r   r,   s     r#   test_secondary_failrO  x!  s    llnGCGGBIIabii2./	z	"
3?< 
#	z	"
7# 
#	z	"
8$ 
#	y	!
3'2 
"	! 
#	"	"	"	"	"	!	!s0   .D$"D5E
E$
D25
E
E
E%c                  r   [         R                  " SS9u  pUR                  [        R                  " SS5      [        R                  " SS5      5        S nUR                  SX"4S9  U R                  R                  5         U R                  S5        [        UR                  5       R                  / S	Q5        g )
Nr  rK  r:   rV  c                 j    [         R                  " SS9   SU -  sS S S 5        $ ! , (       d  f       g = fr8  r9  rz	  s    r#   r:  %test_secondary_resize.<locals>.invert!  r<  r=  r?   r>  )r  r/  r  )r'   r   r   rj   rr   rF  rn  r  r	  r   rd  r
  )r-   r"   r:  s      r#   test_secondary_resizerS  !  s    ll7+GCGGBIIabii2./ u(89JJOOBOO%--/EFr%   c                  P   [         R                  " SS9u  pUR                  [        R                  " SS5      [        R                  " SS5      5        S nUR                  SX"4S9n[        UR                  R                  5       [        R                  5      (       d   eUR                  5         [        UR                  R                  5       [        R                  5      (       d   eUR                  S5        [         R                  " 5         [        UR                  R                  5       [        R                  5      (       d   eUR                  S	5        [         R                  " 5         [        UR                  R                  5       [        R                  5      (       d   eg )
Nr  rK  r:   rV  c                 j    [         R                  " SS9   SU -  sS S S 5        $ ! , (       d  f       g = fr8  r9  rz	  s    r#   r:  'test_secondary_minorloc.<locals>.invert!  r<  r=  r?   r>  r-  r]  )r'   r   r   rj   rr   rF  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorr^  r  
LogLocator)r-   r"   r:  rI  s       r#   test_secondary_minorlocr\  !  sG   ll7+GCGGBIIabii2./ u0@AEekk335))+ + + +	ekk335..0 0 0 0MM%HHJekk335((* * * *MM(HHJekk335))+ + + +r%   c                  x   [         R                  " 5       u  pUR                  S5        UR                  S5      nUR                  R                  [        R                  " 5       5        U R                  R                  5         [        UR                  R                  5       [        R                  5      (       d   eg )Nr-  r?   )r'   r   r^  rF  r[   r   r   ScalarFormatterrn  r  r   r   r-   r"   rI  s      r#   test_secondary_formatterr`  !  s    llnGCMM%u%E	KK##G$;$;$=>JJOO'')7+B+BD D D Dr%   c                  z   [         R                  " 5       u  pUR                  SSS/S9n[        UR                  R                  5       [        R                  5      (       d   e[        R                  " [        5         UR                  SS/5        S S S 5        UR                  SSS/S9n[        UR                  R                  5       [        R                  5      (       d   e[        R                  " [        5         UR                  SS/5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr9   r   )r  )r  )r'   r   rF  r   r[   r  r   r  r   r   r   r  rG  r]   r  r_  s      r#   test_secondary_init_xticksrb  !  s    llnGCq!Q0Eekk335w7K7KLLLL	y	!!Q  
"q!Q0Eekk335w7K7KLLLL	y	!!Q  
"	!	 
"	! 
"	!s   =D>D,
D),
D:c                  v    [         R                  " 5       u  pUR                  S5      n[        U5      S:X  d   eg )Nr?   z<SecondaryAxis: >)r'   r   rF  r6   r_  s      r#   test_secondary_reprrd  !  s2    llnGCu%E;----r%   zaxis_options.pngc            
         [         R                  " SS5      u  p[        S5       H  u  p#USU4   R                  SS5        USU4   R	                  U5        USU4   R                  [        R                  " SSS	S
S95        USU4   R                  SS5        USU4   R	                  U5        USU4   R                  [        R                  " SSS	S
S95        M     g )Nr:   r   )scaledr  imager   r.  )r9   r  )r   r   r   r0  rL  r	  r9   )r9   g      @)r9   r   )r   rn  r  )r'   r   r  r   r!  r:  r  r	  )r-   rz  rB  options       r#   test_axis_optionsri  !  s    Q"IC;<	 	QT
)QT
QT
hooj8>#O 	P 	QT
	9-QT
QT
hook$8>#O 	P =r%   c                 :   U R                   R                  5         / n[        UR                  UR                  /5       Hw  u  p4UR                  5       nU(       aV  [        R                  " UR                  UR                  4UR                  UR                  SSSSSS9nU R                  U5        X%/-  nMy     / n[        / SQ5       H}  u  p8UR                  U   R                  5       n[        R                  " UR                  UR                  4UR                  UR                  SSSSSS9n	U R                  U	5        Xu/-  nM     UR                  5       n[        R                  " UR                  UR                  4UR                  UR                  S	S
SSSS9n
U R                  U
5        UnUR                  5       n[        R                  " UR                  UR                  4UR                  UR                  SSSSSS9n
U R                  U
5        UnX'X4$ )zK
Helper for the tests below that test the extents of various Axes elements
r  r3   r0  Nr   )r  r  r6  r5  r4  r3  r  )rP   r?   rQ   rC   r   r   re  r:   rJ  r9   )rn  r  r  r[   r]   r  r  r  r[  r\  r  r  r:  r.
  r_  )r-   r"   bbaxisrH  axxr  axisrbbspinesr   spinerr  bbaxr  bbtbs                 r#   color_boxesrr  !  s    JJOOFbhh12 &&bhhryy$E NN5!$ 3 H=>YYq\++-##UUBEEN"((299W$ 	vD ? 
			B	bhhryyfE NN5D



C			#**u$E NN5DT''r%   c                     [        SS05         [        R                  " SSS9u  pU R                  R	                  5         [        R
                  " U 5        [        X5      u  p#pES S S 5        / SQ/ SQ/n[        W5       HC  u  px[        R                  R                  " Xg   6 n	[        UR                  U	R                  SS	9  ME     / S
Q/ SQ/ SQ/ SQ/n[        W5       HC  u  px[        R                  R                  " Xg   6 n	[        UR                  U	R                  SS	9  ME     / SQn[        R                  R                  " U6 n	[        WR                  U	R                  SS	9  / SQn[        R                  R                  " U6 n	[        WR                  U	R                  SS	9  WR                  5       R                  W R                  5      R                  n
[        XR!                  5       R                  SS	9  g ! , (       d  f       GN= f)Nr  Fr  r  r>  r  )g      _@p=
R@g     @g
ףp=@@))\U@gQX@g      J@gq=
ף
@r9   )decimal     b@-]@     @F8&@ry  g     @r{  r  ry  Nё\]@r|        @gR!@r  r|  r  r:   ry  g]@r{  r  )rv  ru  g{G؏@g{Gȏ@)r   r'   r   rn  r  r~  rr  r  r  Bboxfrom_boundsr   re  rd  transformedtransFigurer_  )r-   r"   rk  rn  rp  rq  r  rH  r$  targetbbaxbbs              r#   test_normal_axesr  "  s   	-u5	6,,37

		#'23';$$	 
7 	%$F 6"##//<!!((HOOQG #
 	(#(,	F 8$##//<!!((HOOQG % 7F++V4Hdkk8??AF-F++V4Hdkk8??AF ??((9@@Dd$8$8$:$A$A1MG 
7	6s   AG<<
Hc                     [        SS05         [        R                  " SSS9u  pU R                  R	                  5         UR                  / / S9  [        X5      u  p#pES S S 5        [        W5       H
  u  pgUc  M
   e   / SQ/ SQ/ S	Q/ S
Q/n[        W5       HC  u  pg[        R                  R                  " X   6 n	[        UR                  U	R                  SS9  ME     / SQn[        R                  R                  " U6 n	[        WR                  U	R                  SS9  / SQn[        R                  R                  " U6 n	[        WR                  U	R                  SS9  g ! , (       d  f       GN	= f)Nr  Fr  r  rt  xticklabelsyticklabelsrx  r}  r~  r  r   r  r  )ry        ^@r{  r  )r   r'   r   rn  r  r   rr  r  r  r  r  r   re  )
r-   r"   rk  rn  rp  rq  rH  r$  r  r  s
             r#   test_nodecoratorr  -"  s.   	-u5	6,,37


22.'23';$$	 
7 6"yy # 	(#(,	F 8$##//<(//= % 7F++V4HDKKt<%F++V4HDKKt<5 
7	6s   AE  
E/c                     [        SS05         [        R                  " SSS9u  pUR                  / / S9  UR                  R
                  R                  S5        U R                  R                  5         [        X5      u  p#pES S S 5        / SQ/ S	Q/ S
Q/ SQ/n[        UW5       HA  u  px[        R                  R                  " U6 n	[        UR                  U	R                  SS9  MC     / SQn[        R                  R                  " U6 n	[        WR                  U	R                  SS9  / SQn[        R                  R                  " U6 n	[        WR                  U	R                  SS9  g ! , (       d  f       N= f)Nr  Fr  r  rt  r  )rz  rf  )ry        8@r{  gs~8&@r}  r~  r  r   r  r  )ry  r  r{  g     @)r   r'   r   r   r.
  rP   rc  rn  r  rr  r  r  r  r  r   re  )
r-   r"   rk  rn  rp  rq  targetsr  bbspiner  s
             r#   test_displaced_spiner  K"  s)   	-u5	6,,37
22.
		%%n5

'23';$$ 
7 	%#(,	G w1##//8dC 2 7F++V4HDKKt<%F++V4HDKKt</ 
7	6s   A5E++
E9c            	         / SQ/ SQ// SQ/ SQ// SQ/ SQ//n [        / SQ5       H  u  p[        SS	05         [        R                  " S
SS9u  p4UR	                  US9  UR
                  R                  5         [        X45      u  pVpx[        SS/5       HH  u  p[        R                  R                  " X   U	   6 n[        Xj   R                  UR                  SS9  MJ     SSS5        M     g! , (       d  f       M  = f)z?
Switch the tickdirs and make sure the bboxes switch with them
)ry  r  r{  +e8&@)ry  r  r|  r  )ry  gZӼ8[@r{  88&@)g r\a@r  r|  r  )ry  gqq\@r{  r  )g88b@rz  r|  r  )rX
  r
  inoutr  Fr  r  rt  r
  r   r:   r   r  N)r  r   r'   r   r2
  rn  r  rr  r  r  r  r   re  )r  dnumdirsr-   r"   rk  rn  rp  rq  rH  r   r  s               r#   test_tickdirsr  f"  s     /-/<-/F<>	?G   67
159:llsF;GCNNTN*JJOO+6s+?(Fd$aV,&++77r9JKM(((//F - ;: 8::s   B(C,,
C;	c                     [        SS05         [        R                  " SSS9u  pU R                  R	                  5         UR                  SSS9  [        X5      u  p#pE[        X5      u  p#pE/ S	Q/ S
Q/n[        S5       HF  n[        R                  R                  " Xg   6 n[        X7S-     R                  UR                  SS9  MH     [        R                  " SSS9u  pU R                  R	                  5         UR                  SSS9  UR                  5         UR                  SSSS9  U R                  R	                  5         [        X5      u  p#pE/ SQ/ SQ/n[        S5       HF  n[        R                  R                  " Xg   6 n[        X7S-     R                  UR                  SS9  MH     S S S 5        g ! , (       d  f       g = f)Nr  Fr  r  rt  r   r
  )rz  rY
  )ry  g88[@r{  r  )gCiq\a@r  r  r  r:   r   r  rx  r   r_  )ry  gPUUUUUB@r{  gVUUUUT@)gz6P@r  goTT@r  )r   r'   r   rn  r  r2
  rr  r   r  r  r  r   re  r  )	r-   r"   rk  rn  rp  rq  r  r  r  s	            r#   test_minor_accountedforr  |"  s   	-u5	6,,37


Vu5'23';$$'23';$$I79qA"''33WZ@HQ&&dD 
 ,,37


Vu5

F'"=

'23';$$G35 qA"''33WZ@HQ&&dD 1 
7	6	6s   F"F99
Gc                 *   U R                  S5      R                  S5        UR                  S5      R                  S5        U R                  S5      nUR                  S5        UR                  S5        UR                  S5      R                  S5        g )Nrq  Fr  rr  Ton)r   r!  r   s      r#   test_axis_bool_argumentsr  "  su     ""5)!!%(			c	"BGGENGGDM!!$'r%   c                      [         R                  " 5       u  pSnSnSnSnUR                  X#XE/5      n[        U5      X#XE4:X  d   eX#4UR	                  5       :X  d   eXE4UR                  5       :X  d   eg )Nr   r~   r   r  r'   r   r!  r{  r   r   r-   r"   rh   ri   r	  r	  r  s          r#   test_axis_extent_argr  "  s}    llnGCDDDDWWd$-.F =T4444 <2;;=(((<2;;=(((r%   c                      [         R                  " 5       u  pSnSnSnSnUR                  X#XES9n[        U5      X#XE4:X  d   eX#4UR	                  5       :X  d   eXE4UR                  5       :X  d   eg )Nr   r~   r   r  )rh   ri   r	  r	  r  r  s          r#   test_axis_extent_arg2r  "  s|    llnGCDDDDWW$W@F =T4444 <2;;=(((<2;;=(((r%   c                  l    [         R                  " / SQ/ SQ/SS9u  pn US   S::  d   eUS   S:  d   eg )	Nr  )r   r/  r   r   r  r  r   r9   r   r   )r'   r  r#  r  s     r#   test_hist_auto_binsr  "  s;    9l3&AJAQ7a<<8q==r%   c                     [         R                  " S5      u  n u  p/ SQnU[        R                  /-   nUR	                  U5      u  pVn[        R
                  " SS9   UR	                  U5      u  pnS S S 5        [        R                  R                  UW5        [        R                  R                  UW	5        g ! , (       d  f       NO= f)Nr:   r  r  r  )r'   r   rj   r  r  r  r   r   )
r-   r  r  r  nan_datar  r  r#  nanbinsnanedgess
             r#   test_hist_nan_datar  "  s    ll1oOC#DrvvhHXXd^ND	X	&"xx11 
' JJtW-JJuh/	 
'	&s   B::
Cc                      [         R                  " [        R                  R	                  S5      SSSS9u  pn US   S:X  d   eUS   S:X  d   eg )	Nr~   r  r  T)r   rC  r   r   r9   )r'   r  rj   rk   r   r  s     r#   test_hist_range_and_densityr  "  sJ    "))..,f &6JAQ7a<<8q==r%   c                  J   [         R                  " 5       u  p/ SQnUR                  X"USSS9nUR                  R                  u  pEnUR
                   HM  nU H  nUR                  UR                  :  a  M   e   U H  n	U	R                  UR                  :  a  M   e   MO     g )Nr  r   r   )r2   r  rh  ri  r  )r'   r   r  rc  rt  r;  r  )
r-   r"   r2   barcont	data_linecaplinesbarlinecolsr  capline
barlinecols
             r#   test_bar_errbar_zorderr  "  s     llnGCAffqAaf@G'.'7'7'='=$IG>>CJJ...  %J$$szz111 & r%   c                      [         R                  " 5       u  pUR                  5         UR                  SS/5        UR	                  5       S:X  d   eUR                  S/5        UR	                  5       S:X  d   eg )Nr   r  r  r   rz  )r'   r   r  r  r   r,   s     r#   test_set_ticks_invertedr  "  s_    llnGCOOMM2r(;;=F"""MM2$;;=G###r%   c            	      z   [         R                  " SS9n U R                  5       nUR                  SS/SS/5        UR	                  SSSSS	S
S9  UR                  S5        U R                  R                  UR                  5       5      nUR                  UR                  -  [        R                  " S5      :X  d   eg )Nr  rK  rM  r  r-  r  logit)F]tE?g'^P?r9   r
  r  r   r  r   r   r
  r   r:   )r'   r   r   r   r   r  r  transform_bboxrd  r  r  r   approx)r-   r"   r   s      r#   $test_aspect_nonlinear_adjustable_boxr  "  s    
**X
&C		BGGRHr2hFF%g  ' JJqM
//
(
():
;C::		!V]]1%5555r%   c            	      h   [         R                  " SS9n U R                  S5      nUR                  SS/SS/5        UR	                  SSSS	S
SS9  UR                  S5        UR                  5         UR                  5       [        R                  " SS/5      :X  d   eUR                  5       S	:X  d   eg )Nr  rK  r  rM  r  r-  )r9   r   r  )gbeF?r  r9   r
  r  r   gS[:XL	@g'In?@)r'   r   rQ  r   r   r  r  r   r   r  r   r,   s     r#   (test_aspect_nonlinear_adjustable_datalimr  #  s    
**X
&C	&	'BGGRHr2hFF%h 1	  + JJqMOO;;=FMM;*FGGGG;;=----r%   c                     [         R                  " 5       u  pUR                  5       nUR                  SS/5        UR	                  S5        UR                  5       S:X  d   e[         R                  " 5       u  p4UR                  S5        UR                  SS/SS/5        UR                  S	S
S9  U R                  R                  5         UR                  R                  5         UR                  5       nUR                  5       nUR                  5       n[        UR                  UR                  5        [        UR                  UR                  5        g )Nr  iX  r9   r   r   r:   r   r  r  r
  r
  )r'   r   r  r   set_box_aspectget_box_aspectr  r
  rn  r  rd  r   r
  )r  r  axtwinr  r  bb1bbtr  s           r#   test_box_aspectr  #  s     IDYY[F
KKS	q3&&&IDKKNHHaVaVNN7uN-KKKK



C



C



Cs{{CKK0s{{CKK0r%   c                  @   [         R                  " 5       u  pUR                  / SQ5        U R                  R	                  5         UR                  S5        [         R                  " 5       u  p#UR                  S5        UR                  R	                  5         UR                  / SQ5        U R                  R	                  5         UR                  R	                  5         UR                  5       nUR                  5       n[        UR                  UR                  5        g )N)r   r   r  r   r   )	r'   r   rc  rn  r  r  rd  r   r
  )r  r  r  r  r  r  s         r#   test_box_aspect_custom_positionr  2#  s     ID)*KKrIDrKK)*KKKK



C



Cs{{CKK0r%   c                  b   [         R                  " SS[        SS9SS9u  pU R                  R	                  5         U R                  R                  5       n/ nUR                   H;  nUR                  U5      nUR                  UR                  UR                  /5        M=     [        X3S   5        g )Nr:   r   r9   )r
  T)r  rm  r   )r'   r   r  rn  r  r^  r  r_  r  r  r  r   )r-   r  ra  r
  r"   r  s         r#   test_bbox_aspect_axes_initr  I#  s     ||AqTQ-?/35HCJJOOzz&&(HEhh!!(+bhh		*+  E8$r%   c                     [         R                  " 5       u  p[        R                  " [        SS9   UR                  S5        S S S 5        [        R                  " [        SS9   UR                  S5        S S S 5        [        R                  " [        SS9   UR                  [        R                  5        S S S 5        [        R                  " [        SS9   UR                  [        R                  * 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ns= f! , (       d  f       g = f)Nzmust be finite and positiver  r   r   )r'   r   r   r   r  r
  rj   r	  r,   s     r#   test_set_aspect_negativer  X#  s    llnGC	z)F	G
b 
H	z)F	G
a 
H	z)F	G
bff 
H	z)F	G
rvvg 
H	G 
H	G	G	G	G	G	G	Gs/   D$D D$!D5
D
D!$
D25
Ec                      [         R                  " SS5      u  pUR                  / SQ5        U R                  R	                  5         UR                  5         g )Nr9   r  )r'   r   r   rn  r  redraw_in_framer,   s     r#   test_redraw_in_framer  d#  s:    ll1a GCGGIJJOOr%   c                      [         R                  " 5       u  pU R                  R                  S5      c   eUR	                  S5        U R                  R                  S5      b   eg )N)r  r  F)r'   r   rn  inaxesr   r,   s     r#   test_invisible_axes_eventsr  k#  sQ    llnGC::Z(444NN5::Z(000r%   c                      S[         R                  S'   [         R                  " 5       n U R                  R	                  5       nU H#  nUR
                  R                  5       S:w  a  M#   e   g NrB  lines.markeredgecolor)r'   r   rz  r[   rQ
  r?  get_markeredgecolorr"   rM  rA
  s      r#   "test_xtickcolor_is_not_markercolorr  s#  S    ,3CLL()	BHH$$&E~~113w>>> r%   c                      S[         R                  S'   [         R                  " 5       n U R                  R	                  5       nU H#  nUR
                  R                  5       S:w  a  M#   e   g r  )r'   r   rz  r]   rQ
  r?  r  r  s      r#   "test_ytickcolor_is_not_markercolorr  {#  r  r%   r!  r  )TFNc                    [         R                  " 5       u  p#[        R                  " S5      n[        R                  " SSS5      nUR                  XT5        [        USU  S35      n[        USU  S35      n[        USU  S35      nUc  U" 5       OUn	U" S	US
9  X" 5       :X  d   eUR                  R                  5         [        U" 5       S	5        g )Nr   rf  r   get_autoscale_onr+  limget_r  )r  )
r'   r   rj   rr   r  r;   r%  rn  r  r   )
r!  r  r-   r"   r2   r3   r  set_limget_lim	post_autos
             r#   test_unautoscaler  #  s     llnGC
		#A
CS!AJJqr]4&#<=bDc*+GbDc*+G&*l "IKd#(****JJOOwy+.r%   c                 R   U R                  SS9R                  S[        R                  S-  /SS/5      u  nSUR	                  5       l        UR                  SS9R                  [        R                  " S[        R                  S-  S5      [        R                  " SSS5      5        g )Nr:  r  r   r:   r9   r   e   )r   r   rj   r  r  r  r  )r    r!   r
  s      r#   )test_polar_interpolation_steps_variable_rr  #  s    					1	6	62557|aV	LBA(+AJJL%7+00
AruuQw$bkk!Q&<>r%   c                      [         R                  " 5       u  pUR                  SS5        U R                  R	                  5         UR                  5       S:X  d   eg )Nr   g&.>)r   g	>)r'   r   r  rn  r  r   r,   s     r#   test_autoscale_tiny_stickyr  #  s>    llnGCFF1dOJJOO;;=L(((r%   c                  @   S[         R                  S'   S[         R                  S'   [         R                  " 5       n U R                  R	                  5       nU HC  nUR
                  R                  5       S:X  d   eUR                  R                  5       S:X  a  MC   e   g )Nr  rf
  r   rj
  )r'   r   rz  r[   rQ
  r?  rU  r  r  s      r#   &test_xtickcolor_is_not_xticklabelcolorr  #  |    "*CLL'-CLL#$	BHH$$&E~~'')X555{{$$&&000 r%   c                  @   S[         R                  S'   S[         R                  S'   [         R                  " 5       n U R                  R	                  5       nU HC  nUR
                  R                  5       S:X  d   eUR                  R                  5       S:X  a  MC   e   g )Nr  ytick.colorr   ytick.labelcolor)r'   r   rz  r]   rQ
  r?  rU  r  r  s      r#   &test_ytickcolor_is_not_yticklabelcolorr  #  r  r%   c                  r   S[         R                  S'   [         R                  " 5       n U R                  R                  R                  5       S:X  d   eS[         R                  S'   S[         R                  S'   [         R                  " 5       n U R                  R                  R                  5       S:X  d   eg )Nr   rj
  r  rf
  inherit)r'   r   rz  r[   r  rU  r  s    r#   test_xaxis_offsetText_colorr  #  s    '-CLL#$	B88((*f444"*CLL'0CLL#$	B88((*h666r%   c                  r   S[         R                  S'   [         R                  " 5       n U R                  R                  R                  5       S:X  d   eS[         R                  S'   S[         R                  S'   [         R                  " 5       n U R                  R                  R                  5       S:X  d   eg )Nr   r  rJ  r  r  )r'   r   rz  r]   r  rU  r  s    r#   test_yaxis_offsetText_colorr  #  s    '.CLL#$	B88((*g555"'CLL'0CLL#$	B88((*e333r%   r'  )r  r~   r  c                    U [         R                  S'   U [         R                  S'   [        R                  " 5       u  pUR                  R                  5         [        SS/UR                  UR                  /5       HK  u  p4UR                  5        H2  nUR                  R                  5       UR                  U5      :X  a  M2   e   MM     g )Nri
  zytick.labelsizer2   r3   )r   r   r'   r   rn  r  r  r[   r]   rQ
  r  r  _get_tick_label_size)r'  r-   r"   namer!  rA
  s         r#   test_relative_ticklabel_sizesr  #  s     '+CLL"#&*CLL"#llnGCJJOO3*rxx&:;
((*D;;'')T-F-Ft-LLLL + <r%   c                     [         R                  " 5       n U R                  SSSS9u  pUR                  / SQ/ SQ5        UR	                  SS5        UR                  5       n[        R                  " US	S
/5      (       d   eg )Nr:   r9   r;  r  )PF  iJG  iDH  i>I  )r:   r   r:   r   r  r   r  ipI  )r'   r   r   r   r  r   rj   r  )r-   r  r  r   s       r#   test_multiplot_autoscaler   #  sf    
**,C||Aq|/HCHH)<8KKA<<>D;;teU^,,,,r%   c                  6   [         R                  " 5       n U R                  S5      nU R                  SUS9nUR	                  5       nU R                  SS9  UR	                  5       R                  5       UR                  5       :H  R                  5       (       d   eg )Nr  )r  r  r   r   r  r   rQ   )r'   r   r   rQ  rd  r  r
  r;  )r-   r  r  init_poss       r#   $test_sharing_does_not_link_positionsr  #  s    
**,C
//#
C
,,',
4C!HQ))+x/B/B/DDIIKKKKr%   )r  c                    [         R                  " / SQ5      nU R                  S5      nUS   R                  SS/SS/UR	                  S5      S9  [
        R                  " SS	9   US   R                  SS/SS/UR	                  S5      S9  S S S 5        US   R                  SS/SS/UR	                  S5      S9  US
   R                  [         R                  " S5      UR	                  S5      S9  US   R                  [         R                  " S5      [         R                  " S5      UR	                  S5      S9  UR                  S5      nUS   R                  SS/SS/UR	                  S5      S9  US   R                  SS/SS/UR	                  S5      S9  US   R                  SS/SS/UR	                  S5      S9  US
   R                  [         R                  " S5      UR	                  S5      S9  US   R                  [         R                  " S5      [         R                  " S5      UR	                  S5      S9  g ! , (       d  f       GN= f)Nr   r   r   r9   r:   r   rX  r<  r  r   r~   ra  r/  rz  )rj   rP  r   r   r   r   r  r;   r  r  rr   r  )r    r!   r   r  s       r#   test_2dcolor_plotr  #  s   HH_%E


A
CFKKAA%--"3K4	F	GA1v1vr):; 
HFKKAA%--"3K4FKK		"U]]2%6K7FJJryy}biim5==3DJE


1
CFKKAA%--"8K9FNNAq6Aq6U]]7%;N<FKKAA%--"8K9FKK		"U]]7%;K<FJJryy}biim5==3IJJ 
H	Gs   %(I
Ic                 z   [         R                  " SS[         R                  -  S5      n[         R                  " U5      nUR	                  SSSSS9nUR
                   H  nUR                  X#5        M     U R	                  SSSSS9nUR
                   H$  nUR                  5         UR                  X#5        M&     g )Nr  r:   r   Tr
  )rj   rr   r  r  r   r  r   r  )r    r!   r2   r3   r  r"   s         r#   test_shared_axes_clearr  $  s    
		#qw%A
q	A


1aT

:Chh
  

Aqd

;Chh


 r%   c                     [         R                  " SSSSS9u  pUR                   H  nUR                  SS/S5        M     US   R	                  / SQ5        UR                   H*  nUR                  5       US   R                  5       :X  a  M*   e   US   R                  / SQ5        UR                   H*  nUR                  5       US   R                  5       :X  a  M*   e   g )	Nr:   r;  r
  r   zo-r  )r  r   r9   r   )r  r   r:   rQ  )r'   r   r  r   r  r   r  r   r  s      r#   test_shared_axes_retickr
  $  s    ||Aqu=HChh
A  I*+hh{{}D	 2 2 4444  I*+hh{{}D	 2 2 4444 r%   rF   )rQ   rZ   rC   c                     [        5       nUR                  5       nUR                  SSU S9  UR                  R	                  S5        UR                  R
                  R                  5       U :X  d   eg )Ntestr9   rE   rC   )r   r   r)   r]   set_label_positionr0   r  )rF   r-   r"   s      r#   test_ylabel_ha_with_positionr  #$  sW    
(C	BMM&A"M%HH(88>>  "b(((r%   c                     [         R                  " 5       n SS/SS/p!U R                  X5      nU R                  U5      nUS   R                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eUS   R                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eg )	Nr9   r:   r   r   rZ   rP   r?   r'   ru  r  	bar_labelr  r\   r5  r"   r  r  rr  r  s        r#    test_bar_label_location_verticalr  ,$  s    	Ba&1b'FF2E\\% F!9<<BqE71:....!9,,.(:::!9**,888!9<<BqE71:....!9,,.(:::!9**,555r%   c                     [         R                  " 5       n U R                  5         SS/SS/p!U R                  X5      nU R	                  U5      nUS   R
                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eUS   R
                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eg )	Nr9   r:   r   r  r   rZ   r?   rP   )r'   ru  r  r  r  r  r\   r5  r  s        r#   *test_bar_label_location_vertical_yinvertedr  9$  s    	BOOa&1b'FF2E\\% F!9<<BqE71:....!9,,.(:::!9**,555!9<<BqE71:....!9,,.(:::!9**,888r%   c                     [         R                  " 5       n SS/SS/p!U R                  X5      nU R                  U5      nUS   R                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eUS   R                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eg 	Nr9   r:   r   r  r   rQ   rZ   rC   r'   ru  r  r  r  r\   r5  r"   r  r  rr  r  s        r#   "test_bar_label_location_horizontalr  G$  s    	BQ!RGGBE\\% F!9<<F1Ir!u----!9,,.&888!9**,888!9<<F1Ir!u----!9,,.'999!9**,888r%   c                     [         R                  " 5       n U R                  5         SS/SS/p!U R                  X5      nU R	                  U5      nUS   R
                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eUS   R
                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eg r  )r'   ru  r  r  r  r  r\   r5  r  s        r#   ,test_bar_label_location_horizontal_yinvertedr  T$  s    	BOOQ!RGGBE\\% F!9<<F1Ir!u----!9,,.&888!9**,888!9<<F1Ir!u----!9,,.'999!9**,888r%   c                     [         R                  " 5       n U R                  5         SS/SS/p!U R                  X5      nU R	                  U5      nUS   R
                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eUS   R
                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eg 	Nr9   r:   r   r  r   rC   rZ   rQ   )r'   ru  r  r  r  r  r\   r5  r  s        r#   ,test_bar_label_location_horizontal_xinvertedr   b$  s    	BOOQ!RGGBE\\% F!9<<F1Ir!u----!9,,.'999!9**,888!9<<F1Ir!u----!9,,.&888!9**,888r%   c                     [         R                  " 5       n U R                  5         U R                  5         SS/SS/p!U R	                  X5      nU R                  U5      nUS   R                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eUS   R                  US   US   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eg r  )	r'   ru  r  r  r  r  r  r\   r5  r  s        r#   -test_bar_label_location_horizontal_xyinvertedr"  p$  s    	BOOOOQ!RGGBE\\% F!9<<F1Ir!u----!9,,.'999!9**,888!9<<F1Ir!u----!9,,.&888!9**,888r%   c                     [         R                  " 5       n SS/SS/p!U R                  X5      nU R                  USS9nUS   R                  S:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eUS   R                  S:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eg )	Nr9   r:   r   r  rZ   
label_typer   r	  r  r  s        r#   test_bar_label_location_centerr&  $  s    	BQ!RGGBE\\%H\5F!9<<:%%%!9,,.(:::!9**,888!9<<:%%%!9,,.(:::!9**,888r%   z%test_centered_bar_label_nonlinear.svgc                      [         R                  " 5       u  pUR                  / SQ/ SQ5      nUR                  S5        UR	                  SS 5        UR                  USS9  UR                  5         g )N)r=   r$  r   )r  i  iX  r-  r9   rZ   r$  )r'   r   r  r^  r  r  r  )r#  r"   r  s      r#   !test_centered_bar_label_nonlinearr(  $  sT    LLNEAGGO-BCMMM%KK4LL8L4OOr%   c                      [         R                  " 5       u  pSn[        / SQ/ SQ5       H*  u  p4UR                  SXCUS9nUR	                  USS9  X$-  nM,     UR                  S S5        U R                  5         g )	Nr   r  )r~   r  rb  r  )r0   rQ   rZ   r$  r  )r'   r   r  r  r  r  r  )r-   r"   lastr0   rU  r  s         r#   +test_centered_bar_label_label_beyond_limitsr+  $  sn    llnGCDO\:uE
]x8 ; KKb r%   c                     [         R                  " 5       n SS/SS/p!U R                  XSS9nU R                  U5      nUS   R                  US   US   S-   4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S:X  d   eUS   R                  US   US   S-
  4:X  d   eUS   R                  5       S:X  d   eUS   R                  5       S	:X  d   eg )
Nr9   r:   r   r  rn  r   rZ   rP   r?   r  r  s        r#   !test_bar_label_location_errorbarsr-  $  s    	Ba&1b'FF2QF'E\\% F!9<<BqE71:>2222!9,,.(:::!9**,888!9<<BqE71:>2222!9,,.(:::!9**,555r%   r   r  z{:.2f}c                     [         R                  " 5       nUR                  SS/SS/5      nUR                  X S9nUS   R	                  5       S:X  d   eUS   R	                  5       S:X  d   eg )	Nr9   r:   r   r  r   r   z3.00z-4.00r'   ru  r  r  r  )r   r"   rr  r  s       r#   test_bar_label_fmtr1  $  sm     
BFFAq6Ar7#E\\%\)F!96)))!97***r%   c                      [         R                  " 5       n U R                  SS/SS/5      n[        R                  " [
        SS9   U R                  USS9nS S S 5        g ! , (       d  f       g = f)	Nr9   r:   r   r  zstr or callabler  r~   r/  )r'   ru  r  r   r   r   r  )r"   rr  r#  s      r#   test_bar_label_fmt_errorr3  $  sR    	BFFAq6Ar7#E	y(9	:LLBL' 
;	:	:s   A
A-c                      [         R                  " 5       n U R                  SS/SS/5      nU R                  USS/S9nUS   R	                  5       S:X  d   eUS   R	                  5       S:X  d   eg )	Nr9   r:   r   r  r  r  r  r   r0  )r"   rr  r  s      r#   test_bar_label_labelsr5  $  sq    	BFFAq6Ar7#E\\%c
\3F!93&&&!93&&&r%   c                  N   [         R                  " 5       n U R                  SS/[        R                  S/5      nU R                  U5      nU Vs/ s H  o3R                  5       PM     snSS/:X  d   eUS   R                  S:X  d   eUS   R                  5       S:X  d   eg s  snf 	Nr:   r   r9   r   r#  r   r  rP   )	r'   ru  r  rj   r  r  r  r  r5  r"   r  r  r
  s       r#   test_bar_label_nan_ydatar9  $  s    	B661a&2661+&D\\$F"()&QJJL&)b#Y666!9<<6!!!!9**,888 *s   B"c                  n   [         R                  " 5       n U R                  5         U R                  SS/[        R
                  S/5      nU R                  U5      nU Vs/ s H  o3R                  5       PM     snSS/:X  d   eUS   R                  S:X  d   eUS   R                  5       S:X  d   eg s  snf r7  )
r'   ru  rw  r  rj   r  r  r  r  r5  r8  s       r#   !test_bar_label_nan_ydata_invertedr;  $  s    	B661a&2661+&D\\$F"()&QJJL&)b#Y666!9<<6!!!!9**,888 *s   B2c                     [         R                  " 5       n SS/SS/p!U R                  X5      nU R                  USS9nUS   R                  S   S:X  d   eUS   R                  S   S:X  d   eU R                  USS/S9nUS   R                  S   S:X  d   eUS   R                  S   S:X  d   e[
        R                  " [        S	S
9   U R                  U/ SQS9  SSS5        g! , (       d  f       g= f)z>Test that bar_label accepts both float and array-like padding.r9   r:   r   r/  r   )paddingr   r  zpadding must be of lengthr  r  N)r'   ru  r  r  xyannr   r   r  )r"   r  r  rr  labels1labels2s         r#   test_bar_label_paddingrA  $  s    	Ba&1a&FF2Ell5!l,G1:A!###1:A!###ll51a&l1G1:A!###1:A!###	z)D	E
UI. 
F	E	Es   	C%%
C3c                  (   [         R                  " 5       u  pUR                  / SQ[        R                  SS// SQS9nUR                  U5      nU Vs/ s H  oDR                  5       PM     sn/ SQ:X  d   e[        R                  " UR                  5       S5      (       d   e[         R                  " 5       u  pUR                  / SQ/ SQS	[        R                  S
/S9nUR                  U5      nU Vs/ s H  oDR                  5       PM     sn/ SQ:X  d   e[        R                  " UR                  5       S5      (       d   e[         R                  " 5       u  pUR                  / SQ[        R                  SS/[        R                  [        R                  S
/S9nUR                  U5      nU Vs/ s H  oDR                  5       PM     sn/ SQ:X  d   e[        R                  " UR                  5       S5      (       d   eg s  snf s  snf s  snf )Nr  r9   r:   r  rn  )r   r#  2)r  r  rH  r   r  )r"  r#  rC  )r  r  )	r'   r   r  rj   r  r  r  r  r   r-   r"   r  r  r
  s        r#   test_nan_barlabelsrE  $  s   llnGC66)bffa^/6BD\\$F"()&QJJL&)^;;;;;r{{}j1111llnGC66)Yc2663-?6@D\\$F"()&QJJL&)_<<<;;r{{}k2222llnGC66)bffa^26626632G6HD\\$F"()&QJJL&)^;;;;;r{{}j1111 * * *s   H5H
4Hc                      [         R                  " 5       u  pUR                  SS/SS/5      nUR                  USS9nU Vs/ s H  oDR	                  5       PM     snSS/:X  d   eg s  snf )	Nr*  r  r   r  z{:d}r/  r(  7)r'   r   r  r  r  rD  s        r#   test_int_fmt_bar_labelrH  %  sa    llnGC665%.1a&)D\\$F\+F"()&QJJL&)c3Z777)s   A'c            
         [         R                  " 5       u  pUR                  [        R                  " SSSSSS95        S[
        R                  " S[
        R                  -  S	-  5      S
-  -  n[
        R                  R                  [
        R                  " SUS-   * SUS-   45      UR                  R                  S5        g )N)r   r   r  r?  r  r   r}  gffffff?r   r	  r:   grJ  r  )r'   r   r  r  Wedgerj   r  r  r   assert_array_almost_equal_nulprP  r
  re  )r-   r"   bots      r#   test_patch_boundsrM  	%  s    llnGCLLr3cBC
bffRXc\"A%
%CJJ--
&CH+tSW56

8I8I2Or%   c            
          [         R                  " [        SS9   [        R                  " S/S/SSSSS9  S S S 5        g ! , (       d  f       g = f)	Nz"You passed an edgecolor/edgecolorsr  r   r  r  r`  r$  )r   r  r4  r5  )r   r  rb  r'   r;   r   r%   r#    test_warn_ignored_scatter_kwargsrO  %  sA    	kA
CQC!SC3#N
C 
C 
Cr  c            
         [         R                  " 5       u  p[        S5       Vs/ s H-  o!R                  [        R
                  " X"S-   5      5      S   PM/     nnUR                  [        R
                  " S5      [        R
                  " S5      5      nUR                  [        R                  " S5      5      nUR                  [        R                  " SSS5      5      nUR                  SSS5      n[        UR                  5      U/:X  d   e[        UR                  5      U/:X  d   e[        UR                   5      U:X  d   e[        UR"                  5      U/:X  d   eUR$                  (       a   e[        UR&                  5      U/:X  d   eUR                   S   US   L d   eUR                   S   US   L d   e[(        R*                  " [,        SS	9   UR                   [/        U5      S
-        S S S 5        UR                   / SQ-   / UQS
PSPSP:X  d   e/ SQUR                   -   S
SS/UQ:X  d   eUR                   S-   / UQS
PSPSP7:X  d   eSUR                   -   S
SS/UQ7:X  d   eUR1                  5         UR                  (       a   eUR1                  5         UR                  (       a   eUR1                  5         UR"                  (       a   eUR$                  (       a   eUR1                  5         UR&                  (       a   eUR                    H  nUR1                  5         M     [/        UR                   5      S:X  d   eg s  snf ! , (       d  f       GNf= f)Nr   r   r   r   r   r  r*  r   zout of ranger  r9   r  r:   r   )r'   r   r   r   rj   rr   r;   r   r  r  r  r  r6  r6  r  imagesrt  r;  tablesr  r   r   
IndexErrorr  r{  )	r-   r"   rB  rt  r  r  r  r6  rO  s	            r#   test_artist_sublistsrU  %  s   llnGC6;Ah?hWWRYYqa%()!,hE?
**RYYq\299Q<
0C	288F#	$BLL++FAq9:E771aD C5(((		?rd""">U"""

w&&&yy=>dV### 88A;%("""88B<59$$$	z	8
Ua  
9 88i#4U#4A#4q#4!#4444rxxAq!#4e#4444 88i#4U#4A#4q#4!#4444rxxAq!#4e#4444 JJL~~IIKyy=	LLNzz>yy=KKMxx<hh
		 rxx=AS @" 
9	8s   4MM
M#c                  B   [         R                  " S5      n [         R                  " S5      n[        R                  " 5       u  p#UR	                  X5      n[        U5      S:X  d   e[        R                  " 5       u  p#UR	                  / / 5      n[        U5      S:X  d   eg )Nr~   )r~   r   r   r9   )rj   r   r'   r   r   r  )r2   r3   r#  r"   r  s        r#   test_empty_line_plotsrW  F%  su    
A
ALLNEA771=Dt9>> LLNEA772r?Dt9>>r%   z
fmt, match))r  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))rkz7'rk' is not a valid format string \(two color symbols\))z:o-rz=':o-r' is not a valid format string \(two linestyle symbols\))r  zE'C' is not a valid format string \('C' must be followed by a number\))z.CzF'.C' is not a valid format string \('C' must be followed by a number\)stringc                     [         R                  " 5       u  p4Ub  UR                  SS5      n[        R                  " [
        SU-   S-   S9   UR                  SXS9  S S S 5        g ! , (       d  f       g = f)Nnotzneither a data key norz\Az\Zr  rY  rw  )r'   r   replacer   r   r  r   )r   r  r  r-   r"   s        r#   test_plot_format_errorsr]  T%  s\     llnGCe%=>	z)>	?
#) 
@	?	?s   A&&
A4c                  8   [         R                  " 5       u  pUR                  / SQS5      nUS   R                  5       S:X  d   eUS   R	                  5       S:X  d   e[         R                  " 5       u  pUR                  / SQS5      nUS   R	                  5       S:X  d   e[         R                  " 5       u  pUR                  SS/SS/SS5      nU R
                  R                  5         US   R                  5       S:X  d   eUR                  5       S   R                  5       S:X  d   e[         R                  " 5       u  pUR                  SS/SS/SS5      nU R
                  R                  5         US   R	                  5       S:X  d   eUR                  5       S   R                  5       S:X  d   e[         R                  " 5       u  pUR                  / SQS	5      nUS   R	                  5       S
:X  d   eUS   R                  5       S:X  d   e[         R                  " 5       u  pUR                  / SQS5      nUS   R	                  5       S:X  d   eUS   R                  5       [        R                  " S5      :X  d   eUS   R                  5       S:X  d   eg )Nr  z1.0r   )r   r   r   r   rz  r#  r9   r:   k3r  rL  z.C12:r   C12r  )r'   r   r   rU  r  rn  r  rI  r  r#  rT  r  r  s      r#   test_plot_formatra  f%  sG   llnGC779e$D7"666676)))llnGC779c"D73&&&llnGC77Aq6Aq65#.DJJOO7"6666"++-444llnGC77Aq6Aq63.DJJOO73&&&"++-666llnGC779d#D73&&&7#%%%llnGC779g&D73&&&7'//%"88887  "c)))r%   c                     [         R                  " 5       u  pUR                  SSSS0S9  UR                  5       nU R                  R                  5         UR                  5       S   R                  5       S:X  d   eUR                  5       S   R                  5       S:X  d   e[         R                  " 5       u  pUR                  SSSSS0S9  UR                  5       nU R                  R                  5         UR                  5       S   R                  5       S:X  d   eUR                  5       S   R                  5       S:X  d   eUR                  5       S   R                  5       S:X  d   eg )Nr   r$  r  r:   rw  r   r=   )
r'   r   r   rI   rn  r  	get_textsr  rI  r  )r-   r"   legs      r#   test_automatic_legendre  %  s/   llnGCGGCC8G$
))+CJJOO==?1&&(C///"++-444llnGCGGCcaG)
))+CJJOO==?1&&(C///"++-444"++-444r%   c            	      2   [         R                  " [        SS9   [        R                  " / SQSS9  S S S 5        [         R                  " [
        SS9   [        R                  " / SQ/ SQ/ SQ/ SQSS	/S
9  S S S 5        [         R                  " [
        SS9   [        R                  " / SQS/5        S S S 5        [         R                  " [
        SS9   [        R                  " [        R                  " S5      5        S S S 5        [         R                  " [
        SS9   [        R                  " SSSSSS0S9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nz"plot\(\) got an unexpected keywordr  r  r9   rz	  zplot\(\) with multiple groupsr  r#  rC  r  zx and y must have same firstzx and y can be no greater than)r:   r:   r:   zUsing arbitrary long args withr   r$  r=   r  r:   rw  )r   r   r   r'   r   r  rj   r   r   r%   r#   test_plot_errorsrg  %  s    	y(M	Na  
O	z)I	JIy)C:N 
K	z)G	HQC  
I	z)I	J#$ 
K	z)I	Jc33(3 
K	J 
O	N	J	J	H	H	J	J	J	Js;   E#EE&+E7F
E
E#&
E47
F
Fc            
         [         R                  " 5       R                  5       n [        U R                  [        S5      [        S5      [        S5      S9[        U R                  SS/SS//5      [        U R                  SS/SS//5      [        U R                  SS/SS//5      [        U R                  SS/SS//5      4 H3  nSnU" US9R                  nUR                  UR                  4U:X  a  M3   e   g )Nr   rX  r   r9   r:   )r  r  )clim)r'   r   r   r   r;   r   r   rp  r  r  r  r  r  )r"   plot_methodri  r  s       r#   	test_climrk  %  s    		!	!	#BBJJa%(eAh?BIIAA/0BII!Q!Q 01BMMQFQF#34BMMQFQF#34 %**		499%---r%   c                     SS/SS/SS/SS//n [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  /n[         R                  " X5      n[
        R                  " 5       u  p4UR                  [        R                  " U5      5        UR                  5         UR                  5       S   S:X  d   eg )Nr   r   r9   r  )mpathr9  r=  CURVE3	CLOSEPOLYr'   r   r  r  r<  ry  r   )r-  codesr  r-   r"   s        r#   test_bezier_autoscalerq  %  s     !WWVVE ZZZZZZZZ!!#E 	

5 AllnGCLL##A&'LLN ;;=t###r%   c                     [         R                  " / SS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PS	S/PS	S/PS
S/PS
S/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS /PS!S /PS!S"/PS#S"/PS#S$/PS%S$/PS%S&/PS'S&/PS'S(/PS)S(/PS)S*/PS+S*/PS+S,/PS-S,/PS-S./PS/S./PS/S0/PS1S0/PS1S2/PS3S2/PS3S4/PS5S4/PS5S2/PS6S2/PS6S4/PS.S4/PS.S7/PS8S7/PS8S0/PS9S0/PS9S:/PS;S:/PS;S*/PS<S*/PS<S(/PS=S(/PS=S&/PS>S&/PS>S$/PS?S$/PS?S@/PSAS@/PSAS /PSBS /PSBS/PSCS/PSCS/PSDS/PSDSE/PSFSE/PSFSG/PSHSG/PSHS/PSIS/PSIS/PSJS/PSJS/PSKS/PSKS/PSLS/PSLS/PSMS/PSMS/PSNS/PSNS/PSOS/PSOS/PSPS/PSPS/PSQS/PSQS/PSRS/PSRS/PSSS/PSSS/PSTS/PSTS/PSUS/PSUS/PSVS/PSVS/PSWS/PSWS/PSXS/PSXS/P5      n [         R                  " U S S 2SY4   5      n[         R                  " U S S 2SZ4   5      n[         R                  " U S S 2SY4   5      n[         R                  " U S S 2SZ4   5      n[        R
                  " U 5      n[        R                  " 5       u  pgUR                  [        R                  " U5      5        UR                  5         UR                  5       SY   U::  d   eUR                  5       SZ   U:  d   eUR                  5       SY   U::  d   eUR                  5       SZ   U:  d   eg )[Ngr  g)\(gQgzGg=
ףp=gg(\gRQgGzg
ףp=
ggQg=
ףp=g(\
gGz	r   gffffffgQgףp=
r/  g(\g{Gz?gHzGg      r}  gQ g{Gz?gzGr   gRQr  g(\gQ?g333333g(\?gr)  g=
ףp=g)\(?g\(\r  g=
ףp=gHzG?gQg(\?r  r   g(\տg{Gz?g
ףp=
ǿrN	  g{Gzgp=
ף?gףp=
?r$  gQ?gQ?p=
ף?g(\?gq=
ףp?rn  g(\?r  r  gGz?g=
ףp=?gffffff @r	  gGz@rJ  g(\@g=
ףp=@gQ@g@gGz@g\(\	@gp=
ף
@gQ@g333333@g{Gz@g(\@gQ@g)\(@g@gq=
ףp@gGz@gQ@r   r9   )rj   rP  r}  r  rm  r9  r'   r   r  r  r<  ry  r   r   )r-  minxminymaxxmaxyr  r-   r"   s           r#   test_small_autoscalerx  %  sO   HH 	t}',dm6;T]	t}',dm6;T] 
 t} (-dm 7<T] 
	 t}	 (-dm	 7<T]	
 

 t}
 (-dm
 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T]  
!  t}!  (-dm!  7<T]!" 
#" t}#" (-dm#" 7<T]#$ 
%$ t}%$ (,Tl%$ 6:4L%$ DH,%& 
t'& Tl'& &*4L'& 48,'& BFt'( 
t)( Tl)( &*4L)( 48,)( BFt)* 
t+* Tl+* &*4L+* 48,+* BFt+, 
t-, Tl-, &*4L-, 48,-, BFt-. 
t/. Tl/. &*4L/. 48,/. BFt/0 
t10 Tl10 &*4L10 48,10 BFt12 
t32 Tl32 &*4L32 48,32 BFt34 
t54 Tl54 &*4L54 48,54 BFt56 
t76 Tl76 &*4L76 48,76 BFt78 
t98 Tl98 &*4L98 48,98 BFt9: 
t;: Tl;: &*4L;: 48,;: BFt;< 
t=< Tl=< &*4L=< 48,= EB 66%1+D66%1+D66%1+D66%1+D

5AllnGCLL##A&'LLN;;=t###;;=t###;;=t###;;=t###r%   c                  @   [         R                  " 5       u  pUR                  [        R                  " S5      5        [        S5       HS  nUR                  5       U   R                  5       U :X  d   eUR                  5       U   R                  5       U :X  a  MS   e   g )Nr~   )	r'   r   r   rj   rr   r   r  r  rI  )r-   r"   rY  s      r#   test_get_xticklabelrz  %  s    llnGCGGBIIbMRy!!#C(113#???!!#C(113#??? r%   c                     [         R                  " S[        S9n [         R                  " / SQ5      n[         R                  " S/S-  5      n[         R                  U S'   [
        R                  " 5       u  p4UR                  XUS9nUR                  XUS9nXV4 H  nUtp[         R                  " UR                  5      ) R                  5       (       d   e[         R                  " UR                  5       5      (       d   eU	 Hc  n
[         R                  " U
R                  5      R                  5       (       d   e[         R                  " U
R                  5       5      (       a  Mc   e   M     g )Nr   r  )r   r   r   rs  r   r6  r  )rj   rr   r  rP  r  r'   r   r  r  isfiniter  any	get_widthr;  )barx
barheights	barstartsr-   r"   r  hbarsbar_setnanfulrestr$  s              r#   test_bar_leading_nanr   &  s   99Qe$D/*J$"IffDGllnGC66$965DGGD9G5E=VYY'',,....{{6++-....A;;qtt$((****;;q{{}----  !r%   c                 v   [         R                  R                  S5        U R                  5       nUR                  5       nUR	                  [
        R                  /[
        R                  /5        UR	                  S/S/5        UR	                  S/S/5      R                  5         UR	                  S/S/5        g )Nr   r9   )r   r   r   r   r  rj   r  r{  r  s       r#   test_bar_all_nanr  &  s    IIMM'!GFKK266(#KKaS
JJsQC!
JJsQCr%   zextent_units.pngc            	         [         R                  " SS5      u  p[        R                  " SS5      n[        R                  " SS5      n[	        S5       VVs/ s H!  n[	        S5       Vs/ s H  oUU-   PM	     snPM#     nnnUS   R                  S5        US   R                  USS	S
X#/[        R                  S   S9nUS   R                  S5        US   R                  USX#S	S
/[        R                  S   S9nUS   R                  R                  [        R                  " S5      5        US   R                  USX#X#/[        R                  S   S9nUS   R                  R                  [        R                  " S5      5        US   R                  SS9  US   R                  US[        R                  S   S9nUR                  X2X2/5        US   R                  R                  [        R                  " S5      5        US   R                  SS9  [        R                   " ["        SS9   UR                  SSX#/SS9  S S S 5        g s  snf s  snnf ! , (       d  f       g = f)Nr:   r  rp  z
2020-01-11r~   r  zDate extents on y axisr   r9   rV  plasma)r   r  r   r  z(Date extents on x axis (Day of Jan 2020)z%dr  zDay of Jan 2020)r
  r  )r   r   z set_extent\(\) got an unexpectedr  r  Fr(  )r'   r   rj   r  r   r5   r   r   r  r[   r   rQ  DateFormatterr   
set_extentr   r   r   )r#  r  
date_first	date_lastr  rB  arrr  s           r#   test_extent_unitsr  %&  s+   \\!QFA|S1JlC0I-22Y
7Yr#AaC#YC
7I01	T		#g"#R!?"}}X6 
 
8B IBC	T		#g",B!?"}}X6 
 
8B IOO''(<(<T(BC	T		#g",","9"}}X6 
 
8B IOO''(<(<T(BCIMM*M+	T		#g"}}X6 
 
8BMM9)@AIOO''(<(<T(BCIMM*M+	y(K	L
q"j45A 
M	L5 $
74 
M	Ls$   I)I7I.II
I$c                  `   [         R                  " 5       u  pUR                  / / / / 5      nUR                  S//5      nX#/-    H)  nUR                  UL d   eUR                  5       U L a  M)   e   UR                  5         X#/-    H%  nUR                  b   eUR                  5       c  M%   e   g r{  )r'   r   r   r   rz  
get_figurer  )r-   r"   rt  r  arts        r#   %test_cla_clears_children_axes_and_figr  H&  s    llnGCGGBB#E
))aSE
Cu}xx2~~~~3&&&  HHJu}xx~~''' r%   c                      [         R                  " 5       u  pUR                  / SQUS9nUR                  5       nUR	                  5         UR                  SSS9  g )N)r9   r   r   r9   rs  r{  r~  r  )r'   r   r{  r  r{  r   )r-   r"   marginalmarginal_twins       r#   test_child_axes_removalr  U&  sG    llnGC}}]2}6HNN$MOOFFhF'r%   c            	          S n Sn[         R                  " [        US9   Sn[        R                  R
                  R                  US 0 SU S9  S S S 5        g ! , (       d  f       g = f)Nc                      gr9  r   r   r%   r#   r:  5test_scatter_color_repr_error.<locals>.get_next_color_&  rd  r%   zZ'c' argument must be a color, a sequence of colors, or a sequence of numbers, not 'red\\n'r  zred
r:   rs  )r   r   r  r   rz  r   rB  )r:  msgr=   s      r#   test_scatter_color_repr_errorr  ]&  sY    8  
z	-//tBa^ 	0 	M 
.	-	-s   .A
A$c                  
   [         R                  " 5       u  pUR                  S5        UR                  [	        S5      SSS9u  n[
        R                  " 5        nU R                  USS9  S S S 5        g ! , (       d  f       g = f)Nr   Tr9   )r  r  r  )r.  )r'   r   set_rasterization_zorderr   r   r0  r1  r2  )r-   r"   rO  r$  s       r#   &test_zorder_and_explicit_rasterizationr  k&  s\    llnGC"
''%(tA'
6CB	Ae$ 
s   A44
Bzpreset_clip_paths.pngc            
      *   [         R                  " 5       u  p[        R                  R	                  SS/SS/SS/SS//SSSSS9nUR                  U5        [        R                  R                  S	S
SUS9nUR                  [        R                  " 5       /5        UR                  U5        [        R                  R                  S	SSSUS9nUR                  U5        [        R                  R	                  SS/SS/SS//SSSSSUS9nUR                  U5        UR                  SSSSS0SUS9  [        R                  R	                  SS/SS/SS/SS//SSSSSUS9nU R                  USS9  UR                  SS5        UR                  SS5        g )Nr9   r   r   z#ddffddz#00ff00r:   r   )r4  r5  r6  r  r{  r	  T)clip_onr  )r  r  r`  )r   r  r  rl  z#beefc0r   z#faded0)r4  r  r5  r6  r  r  r5  )rk  rk  )r   rm  r   rL  )r
  r,  r  r  r  r3   )r4  r5  r6  r  r  r  r  )r'   r   r   r;  Polygonr  rt  r   set_path_effectsr   withTickedStroker:  r  r  r  )r-   r"   polyr  poly2poly3s         r#   test_preset_clip_pathsr  s&  s    llnGC;;
Q!Q"a1b'*iq  5D LL99GZND;779:;MM$99G\d&*  ,DMM$KK
a1a&1e*%#q$$   HE MM% KKn[#S>44  I KK
Q!SC:Qx0C33   >E NN5tN$KKAKKAr%   c                     S[         R                  S'   S[         R                  S'   S[         R                  S'   [        R                  " 5       n U R                  R
                  R                  5       S:X  d   eU R                  R
                  R                  5       S:X  d   eU R                  R
                  R                  5       S:X  d   eg )NrJ  zaxes.labelcolorr  zaxes.labelsizerP  zaxes.labelweight)	r   r   r'   rz  r[   r0   rU  get_fontsizeget_fontweightr  s    r#   test_rc_axes_label_formattingr  &  s    &+CLL"#%'CLL!"'-CLL#$	B88>>##%...88>>&&(B...88>>((*f444r%   c                    [         R                  " S[         R                  * [         R                  * [         R                  SSS/5      n[        [	        U5      5      nU R                  SS5      n[        USS/5       H  u  pVUR                  X&S9nUR                  SS[         R                  R                  U5      US	.US
S
SS9n[	        UR                  5       5      [         R                  " U5      ) R                  5       S-   :X  d   e[	        UR                  5       5      [	        1 U[         R                  " U5      )    k5      S-   :X  a  M   e   UR                  SS5      n	U	S   R                  [         R                  * [         R                  * [         R                  * SSSS[         R                  /[         R                  " S5      S-  SS9  U	S   R                  [         R                  * SSS[         R                  [         R                  /[         R                  " / SQ5      S-  SSS9  U	S   R                  [         R                  " S5      S-  [         R                  * [         R                  * [         R                  * SSSS[         R                  /SS9  U	S   R                  [         R                  " / SQ5      S-  [         R                  * SSS[         R                  [         R                  /SSS9  g )Nr   r9   r:   r  rR   rS   r  ry  )r  ry  Tr  )r  rT   complementarycompressr'  r  r  rr  )ds)r  r  rT  rd  r   r   r  z	steps-pre)r  r'  )rj   rP  r	  r   r  r   r  ecdfr	   	get_xdataisnanr  r   rr   )
r    r!   r  r  r   r"   rT   l0l1r   s
             r#   	test_ecdfr  &  sd   88Q"&&"&&!Q:;DCIG  A&Hx*l)CDWWTW3WWS#"%%++d*;'$J!,#'$3  @ 2<<>"&;&;&=&AAAA2<<>"c*BD"((4.,A*B&Ca&GGGG E q!$GAJOObffWrvvgw1aBFFCIIaL1$  7AJOObffWaArvvrvv6HH34r9"s  , AJOOBIIaL1$ffWrvvgw1aBFFC"  $ AJOOBHH34r9ffWaArvvrvv6#  -r%   c                     [         R                  " [        5         [        R                  " S[
        R                  /5        S S S 5        [         R                  " [        5         [        R                  " [
        R                  R                  SS/SS/S95        S S S 5        g ! , (       d  f       Nh= f! , (       d  f       g = f)Nr9   r:   TFr  )	r   r   r  r'   r  rj   r  r	   rP  r   r%   r#   test_ecdf_invalidr  &  sp    	z	"!RVV 
#	z	"aV4-89 
#	" 
#	"	"	"s   'B$$7B5$
B25
Cc            
         [         R                  " 5       u  p[        R                  " SS[        R                  -  S5      nS[        R
                  " U5      -  nSnUR                  X#SS9  UR                  5       UR                  5       4nUR                  USS	S
S9  UR                  USSX4:  SSUR                  5       S9  UR                  5       UR                  5       4U:X  d   eg )Nr   r/  r   r   g333333?rA  ra  r   r:   r  )r   rM  r  r9   r   )rD  r   r  r3  )r'   r   rj   rr   r  r  r   r   r   rt   r  r	  )r-   r"   r2   r3   	thresholdoriginal_limss         r#   test_fill_between_axes_limitsr  &  s    llnGC
		!QY%ABFF1IAIGGAG [[]BKKM2MJJyASJ9OOAq!1=!8N8N8P  R KKM2;;=)]:::r%   c                  J   [         R                  " 5       u  pUR                  / SQ/ SQ5        UR                  SSS9  UR	                  SSS9  UR                  SSS	9  [         R                  " S
5        UR                  5        H  nUR                  5       S   S:X  a  M   e   g )Nr  zX label in Impact fontImpact)fontnamezY label in xkcd scriptzxkcd scriptr`  	monospace)r   labelfontfamilyzTitle in sans-serifr   )	r'   r   r   r(   r)   r2
  r1   r  get_fontfamily)r-   r"   r6  s      r#   test_tick_param_labelfontr  &  s    llnGCGGL,'MM*XM>MM*]MCNNkN:II#$""$""$Q';666 %r%   c                     [         R                  " 5       u  pUR                  SSS9n[        R                  " UR
                  S   R                  5       S5      (       d   e[        R                  " UR
                  S   R                  5       S5      (       d   e[        R                  " UR                  R                  5       S   S5      (       d   e[        R                  " UR                  R                  5       S   S5      (       d   e[        R                  " UR                  R                  R                  5       S5      (       d   eg )Nr?   rJ  ra  rP   r   r\
  )r'   r   rF  r#  r^  r.
  rp  r[   r2  r0   rU  )r-   r"   saxs      r#   test_set_secondary_axis_colorr  &  s    llnGC


U%

0Ccjj2@@BEJJJJcjj/==?GGGGcii779'BEJJJJcii779,GOOOOciioo7795AAAAr%   c                  (   [         R                  " SSSS9u  p/ nUS   R                  R                  SUR                  5        US   R                  R                  SUR                  5        US   R                  SS/SS	/S
9  X!S   US   /:X  d   eg )Nr:   Tr
  r9   xlim_changedylim_changedr   r   r/  r  )r'   r   	callbacksconnectr  r   )r-   r  eventss      r#   test_xylim_changed_sharedr  &  s    ||Ad48HCFF^V]];F^V]];FJJQF!QJ(!fc!f%%%%r%   zaxhvlinespan_interpolation.pngc            	      >   [         R                  " 5       R                  SS9n U R                  5         U R	                  SSS9  U R                  SSSS	9  U R                  S
SSSSS	9  U R                  SSSS9  U R                  SSSSS9  U R                  SSSSSSS9  g )Nr:  r  r   r  rX  r   r   r  )fcrM  r   r  r9   )r=   r  r&  r  )r  r  r  r  )r'   r   r   r  r	  r  rt   r  r  s    r#   test_axhvlinespan_interpolationr  &  s    		!	!W	!	5BOOJJrTJJJr2$JJJr2r2$J'JJqDJ#JJr2$bJ)JJr2r2$bJ1r%   rz  c                 p   UR                  5       nU R                  5       n0 SS_SS_SS_SS_SS	_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SSSSS .EnUR                  " S#S!U0UD6  UR                  " S#S!U0UD6  UR                  5         UR                  S5        UR                  S5        g")$z<Test that the given tick params are not reset by ax.clear().rY
  rX
  rZ
  r~   r  r   zxkcd:wine redr[
  r   r  serifr  r  r]
  r  r\
  zxkcd:shocking pinkr^
  zxkcd:fluorescent greenr_
  r   r`
  r   ra
  r  rP   Fr?   TrQ   rC   )rL  rK  rF  rG  r!  Nr   )r   r2
  r  r  )r!   r    rz  rw   rx   r  s         r#   test_axes_clear_behaviorr   '  sS    !GFT" 	 		
 	q 	7 	! 	 	* 	. 	c 	! 	#  	%!" 	t#$ 	%& 	'( /F4 ,E,V,-U-f-MMO
KKLLr%   )r   r  r   finalz/https://github.com/python/cpython/issues/124538)reasonc                  $   S n [        5       nUR                  5       n[        R                  R	                  S5      nUR                  X35        UR                  X35        UR                  5       nUR                  5         U Vs/ s H"  n[        U[        [        45      (       d  M   UPM$     nn[        U5      S:  d   eU H  nU " U5        M     [        U5      S:  d   eU H  n UR                  5         M     g s  snf ! [         a     M+  f = f)Nc                 P   [        U /5      n[        5       n[        U5      S:  a  UR                  5       n[        R
                  " U5       HE  n[        U5      U;   a  M  X@Ld   eUR                  [        U5      5        UR                  U5        MG     [        U5      S:  a  M  g g r  )	r   r   r  popleftgcget_referentsidaddr  )r  to_visitexploredparentchilds        r#   assert_not_in_reference_cycleFtest_axes_clear_reference_cycle.<locals>.assert_not_in_reference_cycle0'  s    %>5(ma%%'F))&1e9()))RY'& 2 (mar%   r  r   )r   r   rj   rk   r   r   r;   ri  r  r   r   r   r  r{  NotImplementedError)	r  r-   r"   r  ax_childrenr   big_artists
big_artistr  s	            r#   test_axes_clear_reference_cycler  +'  s    
' (C		BYY^^D!FGGFJJv//#KIIK aa&.12 	
;   {a!
%j1 "{a	LLN  # 		s   C<&C<'D
DDc                  H   [         R                  R                  S5        [         R                  R                  S5      n [        R                  " 5       u  pUR                  U / SQS9  UR                  5        Vs/ s H  o3R                  5       PM     sn/ SQ:X  d   eg s  snf )Nr`   )r~   r   r  r  )rj   rk   rl   r'   r   r  r  r  )r  r-   r"   r
  s       r#   test_boxplot_tick_labelsr  V'  sr    IINN899G$DllnGCJJtJ1"$"4"4"67"6QJJL"67?JJJ7s   :Bc                     / SQnU R                  5       nUR                  USSS0S9  UR                  5       nUR                  USSS0S9  g )N)r  r~   r>  z%1.0f%%usetexT)r
  r  z%1.0f\%%)r   r
  )r    r!   r  r"   r  s        r#   test_latex_pie_percentr  `'  sS     D				BFF4x.>F?



CGGD+(D1AGBr%   c                 B   [         R                  " SSS9u  p#[        R                  R	                  S5        [        SS5       Vs/ s H$  n[        R                  R                  SUS5      PM&     nnUS   R                  U5        [        US   R                  5       [        R                  " / S	Q5      :H  5      (       d   e[        US   R                  5       [        R                  " / S
Q5      :H  5      (       d   eUS   R                  USS9  [        US   R                  5       [        R                  " / S
Q5      :H  5      (       d   e[        US   R                  5       [        R                  " / S	Q5      :H  5      (       d   e[         R                  " 5         [        R                  " [        R                   SS9   UR                  5       nUR                  USS9  S S S 5        U R                  5       nUR                  USS9  g s  snf ! , (       d  f       N4= f)Nr9   r   r1  r`   r   r~   r   r   )	r   r   r   r   rQ  r  rq  r  r  g      >g      4r  r  rG  rd  rB  rR   rS   z,vert: bool was deprecated in Matplotlib 3.11r  F)vert)r'   r   rj   rk   rl   r   rm   r  r;  r)  rP  rH  r~  r   r  r   ri	  r    r!   r-   r  r  all_datarx   rw   s           r#   test_violinplot_orientationr  m'  s    ||!1-HCIINN89>q"F#		  C-HFFhs1v  "bhh1'3 3 4 4 4 4s1v  "bhh-'/ / 0 0 0 0 FhL9s1v  "bhh-'/ / 0 0 0 0s1v  "bhh1'3 3 4 4 4 4 IIK 
c66J
L !!#(/
L !Gx\:9 G(
L 
Ls   +H!H
Hc                    [         R                  " SSS9u  p#[        R                  R	                  S5        [        SS5       Vs/ s H$  n[        R                  R                  SUS5      PM&     nnUS   R                  U5        [        US   R                  5       [        R                  " / S	Q5      :H  5      (       d   e[        US   R                  5       [        R                  " / S
Q5      :H  5      (       d   eUS   R                  USS9  [        US   R                  5       [        R                  " / S
Q5      :H  5      (       d   e[        US   R                  5       [        R                  " / S	Q5      :H  5      (       d   e[         R                  " 5         [        R                  " [        R                   SS9   [        R"                  " SS05         UR                  5       nUR                  U5        S S S 5        U R                  5       nUR                  USS9  S S S 5        g s  snf ! , (       d  f       N<= f! , (       d  f       g = f)Nr9   r:   r1  r`   r   r~   r   r   r  r  rR   rS   z!was deprecated in Matplotlib 3.10r  zboxplot.verticalF)r'   r   rj   rk   rl   r   rm   r  r;  r)  rP  rH  r~  r   r  r   ri	  r   r  s           r#   test_boxplot_orientationr  '  s    ||!1-HCIINN89>q"F#		  C-HFFNN8s1v  "bhh'     s1v  "bhh-'/ / 0 0 0 0 FNN8N6s1v  "bhh-'/ / 0 0 0 0s1v  "bhh'      IIK 
c66?
A ^^/78%%'FNN8$ 9 ##%l;
A 
A+ G2 98	
A 
As*   +H-I"H2<(I2
I 	<I
Izuse_colorizer_keyword.pngrJ  c            
         [         R                  R                  S5        [         R                  R                  S5      n [         R                  R                  S5      n[         R                  " SSS9R	                  S5      n[
        R                  " SS5      u  p4[        R                  R                  SS	5      n[        R                  R                  US
S9nUS   R                  X"X&S9  US   R                  XUSS9  US   R                  X&S9  US   R                  X&S9  US   R!                  X&S9  US   R#                  X&S9  US   R#                  SSUUS9  US   R#                  UR$                  X"S S2S S24   US9  US   R'                  X&S9  US   R)                  X&S9  US   R+                  UR$                  R-                  5       UR-                  5       UR-                  5       US9  US   R/                  UR$                  R-                  5       UR-                  5       UR-                  5       US9  UR1                  [         R2                  " [         R2                  " USSS9SSS9US9  [5        U5        g ) Nr   r   r  float32r  rQ  r   r/  r  r  r  r   r  r=   	colorizerr  r  r  r  r  )r  r   r   r  r  r.  r}  r   r9   r:   r   r   r   r9   r   r  r:   r9   r+  r   r  r9   )rj   rk   rl   rr   r   r'   r   r   r  r$  r  	Colorizerr;   r  r   rp  r  r  r  r  r  
tricontourr  tricontourffigimager  r   )rand_xrand_yr=   r-   rz  r  cls          r#   test_use_colorizer_keywordr  '  s)    IINN1YYc"FYYc"F
		"I&..v6AQ"IC::2&D		 	 d	 	8BJqq/JfVDJa&Ja&J!*J!*J,.@1$&  (J!##qBQBF)r:Jq'J(J!##))+qwwy!'')rJJ13399;	1779KLL299Q3Ra@BLOC r%   c            
      <   [         R                  R                  S5        [         R                  R                  S5      n [         R                  R                  S5      n[         R                  " SSS9R	                  S5      n[
        R                  " SS5      u  p4[        R                  R                  SS	5      n[        R                  R                  US
S9nSnSS0SS0SS0SS0/nU H=  n	[        R                  " [        US9   US   R                  " X"4X&S.U	D6  S S S 5        M?     U H=  n	[        R                  " [        US9   US   R                  " X"4X&S.U	D6  S S S 5        M?     U H>  n	[        R                  " [        US9   US   R                   " X4USS.U	D6  S S S 5        M@     U H=  n	[        R                  " [        US9   US   R"                  " U4SU0U	D6  S S S 5        M?     U H=  n	[        R                  " [        US9   US   R$                  " U4SU0U	D6  S S S 5        M?     U H=  n	[        R                  " [        US9   US   R&                  " U4SU0U	D6  S S S 5        M?     U H=  n	[        R                  " [        US9   US   R(                  " U4SU0U	D6  S S S 5        M?     U H?  n	[        R                  " [        US9   US   R(                  " SS U4SU0U	D6  S S S 5        MA     U HQ  n	[        R                  " [        US9   US!   R(                  " UR*                  X"S S2S S24   4SU0U	D6  S S S 5        MS     U H=  n	[        R                  " [        US9   US"   R,                  " U4SU0U	D6  S S S 5        M?     U H=  n	[        R                  " [        US9   US#   R.                  " U4SU0U	D6  S S S 5        M?     U Hs  n	[        R                  " [        US9   US   R0                  " UR*                  R3                  5       UR3                  5       UR3                  5       4SU0U	D6  S S S 5        Mu     U Hs  n	[        R                  " [        US9   US$   R4                  " UR*                  R3                  5       UR3                  5       UR3                  5       4SU0U	D6  S S S 5        Mu     U H:  n	[        R                  " [        US9   UR6                  " U4SU0U	D6  S S S 5        M<     g ! , (       d  f       GM9  = f! , (       d  f       GM	  = f! , (       d  f       GM  = f! , (       d  f       GM  = f! , (       d  f       GMx  = f! , (       d  f       GMH  = f! , (       d  f       GM  = f! , (       d  f       GM  = f! , (       d  f       GM  = f! , (       d  f       GMr  = f! , (       d  f       GMB  = f! , (       d  f       GM  = f! , (       d  f       GM  = f! , (       d  f       GMF  = f)%Nr   r   r  r  r  rQ  r   r/  r  r  r  z5The `colorizer` keyword cannot be used simultaneouslyr  r  r  r-  r   r  r  r  r  r  r  r  r  r  r  r  r  r.  r}  r  r  r  r   r+  )rj   rk   rl   rr   r   r'   r   r   r  r$  r  r  r   r   r  r;   r  r   rp  r  r  r  r  r  r  r  r  r  )
r  r  r=   r-   rz  r  r  	match_strkwrdskwrds
             r#   test_wrong_use_colorizerr  '  s   IINN1YYc"FYYc"F
		"I&..v6AQ"IC::2&D		 	 d	 	8BGIa[61+8KLE]]:Y7Jq?q?$? 87  ]]:Y7Jq?q?$? 87  ]]:Y7JfTVTtT 87  ]]:Y7Ja6266 87  ]]:Y7Ja6266 87  ]]:Y7J!!!:r:T: 87  ]]:Y7J!!!:r:T: 87  ]]:Y7J!!"46H1 8,.8268 87  ]]:Y7J!!!##qBQBF)JrJTJ 87  ]]:Y7Jq7B7$7 87  ]]:Y7J8R848 87  ]]:Y7J!!!##))+qwwy!'') *r *$(* 87  ]]:Y7J""13399;	1779 +PR +%)+ 87  ]]:Y7LL1b1D1 87 S 87 87 87 87 87 87 87 87 87 87 87 87 87 87s   T
T'T:UU U3VV"-V,9V?<W?AW%8AW81X
T$	'
T7	:
U
	
U	 
U0	3
V	
V	
V)	,
V<	?
W	
W"	%
W5	8
X	
X	c                     [         R                  " 5       u  pUR                  / SQ/ SQ5      nU H/  n[        R                  " UR                  5       S5      (       a  M/   e   UR                  / SQ/ SQSS9nU H/  n[        R                  " UR                  5       S5      (       a  M/   e   UR                  / SQ/ SQSS	9nU H/  n[        R                  " UR                  5       S5      (       a  M/   e   UR                  / S
Q/ SQSSS9nU H/  n[        R                  " UR                  5       S5      (       a  M/   e   g )Nr  r  r   r  rJ  ra  )r  r  r
	  r  rM  )   r   !   r   )r   r4  )r'   r   r  r#  r^  ro  )r-   r"   r  r  s       r#   test_bar_color_precedencer  (  s   llnGC 66)Y'D!!#"3"3"5v>>>>  66,	67D!!#"3"3"5u====  66,	X6>D!!#"3"3"5x@@@@  66,	'6JD!!#"3"3"5w???? r%   c                    [         R                  " SS/SS//5      nU R                  U5      nUR                  / SQ5        UR                  UR
                  UR                  UR                  4S:X  d   eUR                  S5      ng )Nr  r   )r  r  r   r   )r  r  r   r   )r  r  rQ  rc  r[  r\  r  r  )r    r!   r
  rw   rx   s        r#   .test_axes_set_position_external_bbox_unchangedr  -(  sy     c3Z#s45D%G/0GGTWWdjj$++6:NNNN45Fr%   c                      SS/n / SQnSn[         R                  " [        US9   [        R                  " X5        S S S 5        g ! , (       d  f       g = f)Nr*  r  r  zHMismatch is between 'x' with shape \(2,\) and 'height' with shape \(3,\)r  )r   r   r  r'   r  )r2   r  error_messages      r#   test_bar_shape_mismatchr  8(  s@    	AFS  
z	7 
8	7	7s   A
Ac                  H   [         R                  " SSS5      n S[        R                  S'   Sn[        R
                  " 5       u  p#UR                  U [         R                  " U 5      SUS9nUS    H/  n[        R                  " UR                  5       U5      (       a  M/   e   g )	Nr   r~   r   r  rJ  r   )rh  r;  r:   rj   r  r   r   r'   r   rc  r  r#  r^  rp  )r2   r;  r-   r"   	errorbarscaps         r#   test_caps_colorr  B(  s     	Ar2A,3CLL()FllnGCArvvays6BI |!!#"3"3"5v>>>> r%   c                  B   [         R                  " SSS5      n S[        R                  S'   [        R
                  " 5       u  pUR                  U [         R                  " U 5      SS9nUS    H/  n[        R                  " UR                  5       S5      (       a  M/   e   g )	Nr   r~   r   r  r   rn  r:   r   r  )r2   r-   r"   r  r  s        r#   test_caps_no_ecolorr  Q(  s     	Ar2A,3CLL()llnGCArvvays3I |!!#"3"3"5v>>>> r%   c                      [         R                  " 5       u  pS[        S5      [        S5      /n[        R                  " [
        SS9   UR                  U/ SQS9  S S S 5        g ! , (       d  f       g = f)Nr   r  r	  z"Wedge sizes must be finite numbersr  r  r  )r'   r   r  r   r   r  r
  )r-   r"   r  s      r#   test_pie_non_finite_valuesr  ^(  sO    llnGC
U5\5<	(B	z)M	N
r/* 
O	N	Ns   A$$
A2c                      [         R                  " 5       u  p[        R                  " [        SS9   UR                  SS/SS/S9  S S S 5        g ! , (       d  f       g = f)NzAll wedge sizes are zeror  r   r  r  r  r  r,   s     r#   test_pie_all_zerosr!  f(  sC    llnGC	z)C	D
1vsCj) 
E	D	Ds   A
Ac                  .   [         R                  " SS9u  n u  p[        R                  R                  S5      nUS   nUR	                  USS9nUR                  USS9u  n[        R                  R                  R                  USSS	9 n[        R                  R                  R                  USS
S	9 nU R                  5         S S S 5        S S S 5        WR                  5         WR                  5         g ! , (       d  f       N7= f! , (       d  f       N@= f)Nr:   r  )r  r  r   T)animatedr  zim.draw)r  zln.draw)r'   r   rj   rk   r   r   unittestmockr  objectr  assert_not_called)	r-   r  r  imdatalndatar  rO  mocked_im_drawmocked_ln_draws	            r#   *test_animated_artists_not_drawn_by_defaultr,  l(  s    ll+OC#YYh'FAYF	FT	*BHHVdH+ER
--


$
$Ri
$
@N
--


$
$Ri
$
@N""$ A A $$&$$&	 A
@ A
@s$   	*D3C5D5
D	?D
Dc                     [         R                  " SSSS.5         [        R                  " 5       u  pUR	                  / SQ/ SQ/ SQSS	9nS S S 5        WR
                  u  p4nUb   eU(       d   e[        U Vs/ s H  ofR                  5       PM     snS
5        [        U Vs/ s H  ofR                  5       PM     snS5        U H  n[        UR                  5       S5        M     g ! , (       d  f       N= fs  snf s  snf )Nr  rQ  r   )zerrorbar.capsizezerrorbar.capthickzerrorbar.elinewidthrH  r  r   r0  r7  rG  )
r   r   r'   r   rc  rt  r   get_markersizeget_markeredgewidthr
  )r-   r"   r  r  r  r  r  barcols           r#   test_errorbar_uses_rcparamsr1  }(  s    	 # 

 ,,.[[IO[P
 (*xx$IO8X>Xc'')X>E(C(3,,.(CSI--/6 
 
 ?Cs   0C(9C9#C>(
C6c                      [         R                  " 5       u  pUR                  [        R                  R                  S5      / [        R                  [        R                  //5      n[        US   5      S:X  d   eg )Nr   r  r   )r'   r   r  rj   rk   r  r  r  )r-   r"   r  s      r#   test_violinplot_empty_datasetr3  (  sU    llnGCMM299??3/bffbff5EFGEuX1$$$r%   rA  (  r@  r  r   r   rO  rw  r   	functoolsr   r  r1  r0  	itertoolsr   platformr=  sysr=  r   unittest.mockr$  r  r  rj   r	   r
   r   rW   r   r   r   matplotlib.colorsr  r#  matplotlib.datesr  rQ  matplotlib.containerr   matplotlib.figurer   matplotlib.axesr   rs  r   r
  r   matplotlib.font_managerfont_managermfont_managermatplotlib.markersr|	  r  matplotlib.patchesr;  r  matplotlib.pathr8  rm  matplotlib.projections.geor   matplotlib.projections.polarr   r  r  r'   matplotlib.textr6  r4  matplotlib.tickertickerr   matplotlib.transforms
transformsr  mpl_toolkits.axisartist
axisartistr	  numpy.testingr   r   r   matplotlib.testing.decoratorsr   r   r   matplotlib.testing._markersr   r$   r.   r7   rN   rU   rX   r^   r{   r   r   r   r   r   r   r   r   r  r  rZ  r[  r(  rC  machinerT  r^  rg  rj  ro  r  r  r  r  r  r   r\  r  r  r  r  r  r  r  r  r  r  r   r$  r(  r/  r=  rZ  rd  rl  rq  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r
  r  r  r  r%  r.  r  rr   r6  r>  rI  rR  rZ  r_  rg  rq  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r3  r5  r7  r;  r?  rF  rK  rM  rO  rS  rU  r]  r`  re  ri  rt  rv  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r!  r$  r-  r/  r@  rD  rK  rN  rR  rT  rY  Patchr  rt  r\  r_  rb  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r_  r`  rP  rh  r  ro  rt  rx  COLOR_TEST_CASESry  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/  r3  r5  r7  r9  r;  r>  rA  rC  rE  rG  rR  rV  rX  r[  r^  ra  rd  ro  ru  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r&  r*  r4  rD  rR  rW  r\  r`  rl  rp  ru  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r	  r	  r	  r$	  r'	  r)	  r-	  r0	  r4	  r<	  r?	  rG	  rJ	  rK	  rZ	  r\	  r`	  rb	  rm	  rp	  rs	  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*
  r8
  r;
  rK
  rO
  rR
  rV
  rc
  rr
  rt
  r	  rt   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?  rJ  rN  rR  rT  rY  r[  r]  ra  rc  rj  rm  rp  rt  rw  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  rg  	AxesImagePcolorImagerk   QuadMeshr   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  fixturer  r  r  r  r  r  r  r
  r  r  r  r  r  r  r$  r(  r-  r/  r=  rA  rD  rI  rM  rP  rS  rZ  re  ri  rn  rq  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"  r$  r&  r(  r*  	Transformr,  rJ  rO  rS  r\  r`  rb  rd  ri  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  font_scalingsr  r   r  r  r  r
  r  r  r  r  r  r   r"  r&  r(  r+  r-  r.  r1  r3  r5  r9  r;  rA  rE  rH  rM  rO  rU  rW  r]  ra  re  rg  rk  rq  rx  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  skipifversion_inforeleaselevelr  r  r  r  r  r  r  r  r  r  r  r  r  r!  r,  r1  r3  )rB  r'  s   00r#   <module>r\     sM:    )    	  	   	 
 !         . # ! - $   # 1 / % %  1 2   # + $D DD D 4  
(M / /$ . .$ / /(@, ( ($ ( (( , ,*3 , , E!QKHKq&qgT2KHPW!llh6dA?$?$NJ4G2 67wG H2". ,J -J  ,'%  -'%T '(#++-9auFF"," ,
= -
= , - ,I -I1h0f/   -.DX% Y% 9! !. 93 3" 90 0$   )*GL6 M6$ ,-4wO P,@ ?#WE; F; %&DP) Q)4('' #$UBKwO PB5 
J 
J; >>2'B' C'"  / $%4wG/ H/ &'w7* 8* &'w7* 8* &(;<$')<)<	- %&DP
* Q
*' #$G4/ 5/$$ &'wDI	( J	($ ## ##L$4 %&g6 7 9<>
< > 
< 8X&DH I( =/#++-9atE&E&,F -.DX Y 	&	1a 	34	 "((6"2A6	34	 !RXXf%56  
#
# 	&	1a 	34	 "((6"2A6	34	 !RXXf%56  
$
$ 12'#++-9auF'F'. <=T33& 56D')1)1& <.0 1 =/t?K	  L	 ( <.d/&..0I=d1F2F2. )*/B C2 %&E5>t'%--/9<c!EFEFB '9:G  ;G 
. 
.  ( 12'B# C#0 -.g># ?#0  .5 p
-. 0 0 0 0// %/(  0(" ;-w#++-9atEE
 #$$iH IB =/t?K! L!H0 ?#WE
 F
 '(d'J
 K
 01t'U4;4;0 78d'))4 -.DX; Y;4 ()M? N?. 56D'););2 >"OL= M= .0KL!	>!	> 

 01A B DEWU V 
# 
# 
= 
= 
+ 
+ 
- 
-64 ()9 :4P  $%W5 6  , 
 
     '-'"+:3&% 9
%  
% A	a|nc*	,	,	(	,(@	!<	1	,	3V	=880
 >"OL( M( 7 72 '(d/R  S + ()t?S! T! )*OTH UH$ %&g6  7 -! *)),,+EG/	  0E0E" 9q'4)8Q-)*:	*: + #++"3"3":":;!399#3#3#:#:;'):):)A)ABDE,	E,:	
 ( (V # #2  . 
K 
K*+
#
)' ,-W$O P. -.g> ?   %&DH I %&g#++-9atE%E%* <.DP= Q=" )*GL
. M
.' 7! !h1 h1V	*4 * *
Y
, iBHHl^457nBHHl^457C BHHl^457 CBHHl^457S#Jc
288\=,I#JKM44  !
fd^
Sk4
cC 
sCj!C:.
S3
fv&
fv&
SS)3/
SCC0#6
os
$c*	4	4M 	 V_w)*i34  )9:9 ;9$ )9:3 ;392)X5 -/IJ!!( 01t')E)E0  (@(! 4$ %&!&!## &'!&!#7#7 +,!&!#6#6 )*!&!#0#0 '("!&!	
@
@ )*5"+YW@ X@ ()"!&!#9	#9 ./"!&!#G	#G *+"!&!#A	#A
 12"!&!#	# &'"!&!#9	#9
 )*"!&!#<	#<
 &'"!&!#9	#9
 *+"!&!#<	#<
 B B &'"!&!#8	#8 #$"!&!#6	#6 ?#"!&!#5	#5 +,"!&!#8	#8 +,"!&!#F	#F *+"!&!#E	#E ()"!&!#2	#2 )*"!&!#G	#G ,-"!&!#>	#>6
<
 -.!&!#F#F ,-!&!#5#59
 =-0d)L M$ 
 
 12!&9>7>7 %&D	J K $%"!&!#	# 98:!##  ./!&$y*:5*:5z -."5"+YPP  45"5"+YPP99C6$ ;<"5"+YP#P# 113:AC0C0 237C% D% 45WE% F% 45WE$ F$ 01AN BN 89I0 J0 9:'J1 K1 237C8 D8 56gF7 G7 34GD8 E8 56gF7 G7 12'BN CN 9:'JC KC :;7KD LD )*GLE ME2KKKG
K0B@A '4 '4TLDI6 5 5 E E	+F) T!3;!3;l 23')<)<BE > >9$ ()9+4 :+4\4&C$3"  (5"7*6 (3 (3V 	(*(;()(+ ,N,N+ . . 	. 	. 02OP!
A!
A $%W5 6 ?#_M N ()9A :A -.g>M ?M :,g4@ A6>4B )*'tL& M&D 67wGF HF *+7;5 <5 ,-W=2 >2 )*OT= U=1	14040 )*':E ;E" [/$B%0/$B%,.>$?%02B$C%0+$>%,o$>$@ A + A+  9
 )5s),3@ADcK(.),3@AI3P(4s),./2C9(.),./7>(4s),./2C9(.),./7>(4),3@ADcK(.S),./7>(4sCS#N(.=xM(43GcR(.SA8TR(43GsS(.SA9cR&5tSA&/DA/CD:N;D:N"9
 ' ()t?S3 T3 >"OL M  '(d/R S5.5* <.d/J" K": ?O4$')(+)(+V 01t'))  ( & 
1
1*2( 67T')")"8 2$aV1vrl!CD(HI J E   &'TQ@ R@ &'w"||x7eQ@&@& '(d/R S +-BC7!llh6dA?)?)8 	, 	, ! !, ) )  ( (&( R!#!#L? R!#!#L? 1aBFFA"6"$%%"4"4_a"H"J KJ KJ 89I	 J	 #%56D'S22> %&DP Q2? 8$i1J	1J@ L$i1J	1JB =$i1,	1,D% ) )"- HO8)8)> ! O	-)	-)@-   $%4#++-9auF)&F)&X +-EF"/;E;E: C F 
0
0= C
=  & 74 4*. 3;;T*J+.;;V*L*N O(O(	
-2C(% 3$fb./ &y"#$ %1vj"8:$egt}#$""
#4 ,- --2428$8V $ $%W5; 6; W!!> *+7!llh6dA??& ()9 : %&g6 7 '(8 94 ./w? @ %&g6
 7
 #$G?? @?.8,0.1%/ ) ) 6 6
* c3Z0E4=1@ 2 1@2" +,G#++-9atE3E32- 2 2*C 	/1 /0@5 A5)8& +,UBKwW7 X7!:H## 3	UB DE	Wb"FG	UWsBi)MN	UWsBi)MN	E+	K	M	EC8	K	M	Ir#KL
6 
$
$'0(&C4 ?#E2;gN O =/%GL% M%*1(-.MO 	SYY  !	399../
(E!H	syy223
L	)				 
))

6
"BII$4$4V$<	=		!	!	#
 
RYYr]""6*BIINN1a,CD1
1
GK*+$!%
7, #;#=> ? =/t?K; L;N ($ D%=1 2 <.d/tT6 U6 +,$g"", 9* *B Sz"; #;$ IJ K ;="	3 9G G 9H H!
LC	F%89 
26
B	C?? %  ?#_M- N-&*--    
 
 &
'	-;8H3. 9J J6B	.
 3	qcU]B/1NO	qcU]B/1NO	qcU\2.0LM	qcU\2.0LM	qcUWbM+BC	aS"AB	qcU]QF3	@	B	qcU]QF3	@	B	qcU\Aq62	?	A	qcU\Aq62	?	A	qcUWq!f-	:	<	qcUX1v.	;	=#6 (')('
N	 He#45He#45 6 6G4 	'&'&& 7:  : $ $ 7 7
	A::D $%4wG	 H	)& t}5t}5B 6 6B0
5M!;HF$ 34GQU#++-9auF2F2&;(( & %&g#++-9auF,F,,
3G+0D	!. %&DHP IP"*(Z$NN=<=6F,D> ( () )"02$
6.161.%	1?? ,!45/ 6 -/$ > > 9) )1174 =3N3N "73N4%) #'3N "79D"E F9M FM-L (K )K&  5 :;) <)
69
9999
9 :;7K L
!
6 
Hhoo! ++('99/"2(8O 9O O+\  (  $58(<!=>* ?**:5"
4.$*1$h@.0 	 	 %&g6B 7BD
((M% *+W!llh6dA?!?!H 95 5 - -2:; 7B& 34IF2 G2 *-& . &R RaJ&S3+;+;+H+HG+S<  $	$NK C  C !; !;H #< #<L ./#++-9atE!E!:92x@2 6 6?
?+*'"7&%}| I~V"7s   4Bg>Y Bh
YBh
