
    P/Phq              	       
   d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZd dl	m
Z
 d dlZd dlmZmZ d dlmZ d dlmZ d dlZd dlmZ d dlmZ d dlm Z d dlmZ  d dl!m"Z" d dl#m$Z% d dlm&Z& d dl'm(Z( d	 Z) ed
gd          d             Z* edgd          d             Z+ edg          d             Z,d Z-d Z. edgd          d             Z/ edgd ej0                    dk    rdnd           d             Z1 edgd ej0                    dk    rdnd           d             Z2 edgd ej0                    dk    rd nd          d              Z3 ed!gd ej0                    dk    rd nd          d"             Z4 ed#gdd$          d%             Z5 ed&gd ej0                    dk    rd nd'          d(             Z6 ed)d*gd          d+             Z7 ed,gd          d-             Z8 ed.gdd/0          d1             Z9d2 Z:d3 Z; ed4g5          d6             Z< G d7 d8          Z= G d9 d:          Z>d; Z? ed<g ej0                    dk    rd=nd >          d?             Z@d@ ZAdA ZBdB ZC edCg          dD             ZD edEg          dF             ZEdG ZFdH ZGdI ZHdJ ZI edKgddL ej0                    dk    rdMnd N          dO             ZJdP ZKdQ ZLdR ZMdS ZNdT ZOdU ZPejQ        R                    dVdW          dX             ZSejQ        R                    dYdZ          d[             ZTejQ        R                    dYd\          d]             ZUejQ        R                    dVdW          d^             ZVejQ        R                    d_d`          da             ZWdb ZXdc ZYdd ZZde Z[df Z\dg Z]dh Z^di Z_dj Z`dk Zadl Zbdm Zcdn ZdejQ        R                    d_d`          do             Zedp Zfdq Zgdr Zhds Zidt ZjejQ        k                    du          dv             ZlejQ        R                    dwdx          dy             Zmdz Zned{             Zod| Zpd} ZqejQ        R                    d~ddgd ejr        ddg          g          d             ZsejQ        R                    dddetg          d             ZuejQ        R                    d~ddgd ejr        ddg          g          d             Zvd Zwd Zxd Zyd Zzd Z{d Z|d Z}d Z~ e            d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZejQ        k                    du          d             Zd Zd Zd ZdS )    N)mock)assert_allclose)check_figures_equalimage_comparison)needs_usetex)HandlerTuple)
rc_context)FontPropertiesc                  4   t           j                            d          } t           j                            d          }dgdz  dgdz  z   }dgdz  dgdz  z   }t          j                    \  }}t          | |||          D ] \  }}}}	|                    ||||	           !|                                \  }
}t          j	        t          ||
                    }|
                    |                                |                                dd	
           d S )N
   a   brglabelccenter left)         ?)locbbox_to_anchor)nprandomrandnpltsubplotszipscatterget_legend_handles_labelscollectionsOrderedDictlegendvalueskeys)XYlabelscolorsfigaxxyr   colorhandlesr$   s               \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_legend.pytest_legend_ordereddictr2      s    		A
	AUQY#"FUQY#"FlnnGC!!Q77 / /1eU


1au
....2244OGV$S%9%9::FIIfmmoov{{}}  9 9 9 9 9    legend_auto1T)remove_textc                      t          j                    \  } }t          j        d          }|                    |d|z
  dd           |                    ||dz
  dd           |                    d           d	S )
Test automatic legend placementd   2   oy=1r   y=-1bestr   N)r   r   r   arangeplotr$   )r+   r,   r-   s      r1   test_legend_auto1rB   ,   sv     lnnGC
	#AGGArAvs%G(((GGAq2vs&G)))II&Ir3   legend_auto2c                      t          j                    \  } }t          j        d          }|                    ||dd          }|                    ||ddd         dd          }|                    |d         |d         gd	d
gd           dS )r7   r8   edgem)alignr/   Nr   r   updownr>   r?   )r   r   r   r@   barr$   )r+   r,   r-   b1b2s        r1   test_legend_auto2rN   6   s     lnnGC
	#A	1F#	.	.B	1TTrT7&	4	4BIIr!ubentVn&I99999r3   legend_auto3c                      t          j                    \  } }g d}g d}|                    ||dd           |                    dd           |                    dd           |                    d	           d
S )r7   ?皙?rS   rR   rR   r   ffffff?rU   皙?rV   r   r   o-liner<                 ?r>   r?   N)r   r   rA   set_xlimset_ylimr$   )r+   r,   r-   r.   s       r1   test_legend_auto3r]   @   s     lnnGC&&&A***AGGAq$fG%%%KKSKKSII&Ir3   c                     t          j        dd          \  } }g }t          |j        d          D ]\  }}|                    |           |                    dgddgz  z   t          d          d	|
           |                    d          }| j        	                                 |
                    |                                                    |j                                                             t          |d         j        |d         j                   t          |d         j        |d         j                   dS )z
    Check that the legend location with automatic placement is the same,
    whatever the histogram type is. Related to issue #9580.
       )g@g333333@ncolsfigsize)rK   step
stepfilledr   r   	   r   Legend)binsr   histtyper>   r?   r      N)r   r   r   flat	set_titlehistranger$   canvasdrawappendget_window_extenttransformed	transAxesinvertedr   bounds)r+   axs
leg_bboxesr,   htlegs         r1   test_legend_auto4rz   L   s6    |!Z888HCJch =>> J JB
R
ae%))8bIIIiiFi##
!!##//0E0E0G0GHH	J 	J 	J 	J JqM(*Q-*>???JqM(*Q-*>?????r3   c                     t          j        dd          \  } }g }t          |j        d          D ].\  }}t	          j        dddd	          t	          j        t          j        d
dgd
d
gdd
gddgddgddgddgddgddgg	          d          t	          j	        ddd
ddd          fD ]}|
                    |           |                    ddgddgd           |                    |          }| j                                         |                    |                                                    |j                                                             0t)          |d         j        |d
         j                   dS )z
    Check that the automatic placement handle a rather complex
    case with non rectangular patch. Related to issue #9580.
    ri   )g333333#@g333333@r`   centerr>   )r   rR   皙?皙?C1)xywidthheightfcr   r   rR   rZ   rS   )r   )r   r   r   ih  rV   C0)r   r   z	A segmentr<   r?   N)r   r   r   rj   mpatchesEllipsePolygonr   arrayWedge	add_patchrA   r$   rn   ro   rp   rq   rr   rs   rt   r   ru   )r+   rv   rw   r,   r   _patchry   s          r1   test_legend_auto5r   b   s   
 |!Z888HCJsx!344 J JC
  !STC C C FQFQFQFS#Jc
#Jc
S#J+8 "9 "9=AC C C z33dtLLL 	! 	!F LL    
c
S#Jk:::iiCi  
!!##//0E0E0G0GHH	J 	J 	J 	J JqM(*Q-*>?????r3   legend_various_labelsc                     t          j                    } |                     d          }|                    t	          j        d          dd           |                    t	          j        dd          dd           |                    t	          j        ddd          dd	           |                    dd
           d S )Ny      r:   r   r<   gffffff@u   DéveloppésrH   __nolegend__r>   )	numpointsr   )r   figureadd_subplotrA   r   r@   linspacer$   r+   r,   s     r1   test_various_labelsr      s     *,,C			BGGBIaLL#QG'''GGBK3NG;;;GGBIaBNG;;;IIvI&&&&&r3   zlegend_labels_first.pngarm64g9v?)r5   tolc                  f   t          j                    \  } }|                    t          j        d          dd           |                    t          j        d          dz  dd           |                    t          j        ddd	          d
d           |                    dd           d S )Nr   -or   r<   r   z:xr-      rH   ddiamondr>   F)r   markerfirst)r   r   rA   r   r@   onesr$   r   s     r1   test_labels_firstr      s     lnnGCGGBIbMM4qG)))GGBGBKKM4sG+++GGBIb"b!!3iG888II&eI,,,,,r3   zlegend_multiple_keys.pngc                  \   t          j                    \  } }|                    g dd          \  }|                    g dd          \  }|                    g dd          \  }|                    ||f||f|gg dd||ft	          d 	          ||ft	          d d
          i           d S )Nr   ri   r_   r   ri   r_   r   z-xr_   r   r   z-d)ztwo keyszpad=0zone keyr   )ndivider   )r   pad)r   handler_map)r   r   rA   r$   r   )r+   r,   p1p2p3s        r1   test_multiple_keysr      s     lnnGC
'')))T
"
"CB
'')))T
"
"CB
'')))T
"
"CBIIBx"b2&(H(H(H8\$%?%?%?8\$A%F%F%FH  I I I I Ir3   zrgba_alpha.pngx86_64gQ?c                      t          j                    \  } }|                    t          d          d           t          j        dgd          }|j                            g d           d S )Nr   r   lwLonglabel that will go awayr}   r?   r   r   r   r   )r   r   rA   rm   r$   legendPatchset_facecolorr+   r,   ry   s      r1   test_alpha_rgbar      sg     lnnGCGGE"II!G
*34(
C
C
CCO!!...11111r3   zrcparam_alpha.pngc                  @   t          j                    \  } }|                    t          d          d           t	          j        ddi          5  t          j        dgd	          }|j                            g d
           d d d            d S # 1 swxY w Y   d S )Nr   r   r   zlegend.framealphag      ?)rcr   r}   r?   r   )	r   r   rA   rm   mplr	   r$   r   r   r   s      r1   test_alpha_rcparamr      s     lnnGCGGE"II!G	/5	6	6	6 6 6j78hGGG
 	%%nnn5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   4BBBfancyrV   c                     t          j        d           t          j        dgdz  dd           t          j        t	          j        d          t	          j        ddd          d	           t          j        t	          j        d          t	          j        d          d
d
d           t          j        ddd
gdddd           d S )Nr   r   r   zo--XXr<   r   rH   zXX
XXr   )xerryerrr   r   rZ   ri   T	My legendr   )r   r   ra   shadowtitler   )r   subplotrA   r    r   r@   errorbarr$    r3   r1   
test_fancyr      s    
 KHaS2XuD))))K	"ryQ338DDDDL2	"C' ' ' 'J=#st;!E E E E E Er3   
framealphag~jt?c                      t          j        ddd          } | }t          j        | |dd           t          j        d           d S )Nr   r8   mylabelr   )r   r   r   )r   )r   r   r   rA   r$   )r-   r.   s     r1   test_framealphar      sN     	AsC  A	AHQr****J#r3   scatter_rc3scatter_rc1c                      t          j                     t          j        d          } |                     t	          j        d          t	          j        ddd          d           |                     ddd	gd
           dt          j        d<   t          j                     t          j        d          } |                     t	          j        d          t	          j        ddd          d           |                     ddd	gd
           d S )Nr   r   r   rH   threer<   r   rZ   r   r   )r   r   r   r   zlegend.scatterpointsone)	r   r   r   r    r   r@   r$   r   rcParams)r,   s    r1   test_rcr      s     JLLL	S		BJJry}}biAr22'JBBBII-c
  ! ! ! ,-CL'(JLLL	S		BJJry}}biAr22%J@@@II-c
  ! ! ! ! !r3   legend_expandc                     ddg} t          j        t          |           d          \  }}t          j        d          }t          ||           D ]\  }}|                    |d|z
  dd           |                    d	|
          }|                    |           |                    ||dz
  dd           |                    d|
          }|                    |           |                    d|d           dS )zTest expand modeNexpandr   r8   r9   r:   r;   r<   
upper left)r   moder=   right
lower leftri   )r   r   ra   )	r   r   lenr   r@   r   rA   r$   
add_artist)legend_modesr+   rv   r-   r,   r   l1l2s           r1   test_legend_expandr      s    (#L|C--q11HC
	#A\** 8 8D
263e,,,YY<dY33
b
1r63f---YY7Y..
b
		lQ	77778 8r3   hatchingdefault)r5   stylec            	         dt           j        d<   t          j                    \  } }t          j        ddddd          }|                    |           t          j        dddd	d
d          }|                    |           t          j        dddddd          }|                    |           t          j        dddd	dd
d          }|                    |           |                    g dg dg ddd           |                    g dg dg dddd           |                    dd           |                    dd           |                    dd           d S ) N   ztext.kerning_factor)r   r   333333?xxzPatch
default color
filled)hatchr   )Q?r   z||r   zPatch
explicit color
filled)r   	edgecolorr   )r   皙?FzPatch
default color
unfilled)r   fillr   )r   r   zPatch
explicit color
unfilled)r   r   r   r   )r   g333333?r   )r~   r~   r~   )rR   rZ   rR   +zPath
default color)r   gQ?g)\(?C2zPath
explicit colorg{Gz皙?r   )handlelengthhandleheight)	r   r   r   	Rectangler   fill_betweenr[   r\   r$   )r+   r,   patchs      r1   test_hatchingr      s    +,CL&'lnnGC M&#s$ >@ @ @ELLM)S#TT ?A A AELLM(CDu @B B BELLM+sCt%$( AC C CE LL OOLLL,,,%:  < < <OOOOO\\\===5K  M M M KKsKKsII11I-----r3   c                  b   t          j                    \  } }|                    t          d                    }|                     |d          }|                                 | j        g k    sJ |                    d          }|                                 |                                J d S )Nr   test)r   r   rA   rm   r$   removelegends
get_legend)r+   r,   linesry   s       r1   test_legend_remover     s    lnnGCGGE"IIE
**UF
#
#CJJLLL;"
))F

CJJLLL==??"""""r3   c                  :   t          j                    \  } }d}d}g d}g d}|                    |||d         |d                    |                    |||d         |d                    |                    |||d         |d                    |                    d          }d	 |                                D             }d
 |j        D             }|t          t          |                    k    sJ |t          t          |                    k    sJ dS )z6Check that the legend handles and labels are reversed.r   )zFirst labelzSecond labelzThird label).,r:   r   r<   ri   Treversec                 6    g | ]}|                                 S r   get_text).0ts     r1   
<listcomp>z:test_reverse_legend_handles_and_labels.<locals>.<listcomp>.  s     ;;;aQZZ\\;;;r3   c                 6    g | ]}|                                 S r   
get_markerr  hs     r1   r  z:test_reverse_legend_handles_and_labels.<locals>.<listcomp>/  s     AAAallnnAAAr3   N)r   r   rA   r$   	get_textslegend_handleslistreversed)	r+   r,   r-   r.   r)   markersry   actual_labelsactual_markerss	            r1   &test_reverse_legend_handles_and_labelsr  "  s!   lnnGC	A	A;;;FooGGGAq'!*F1IG...GGAq'!*F1IG...GGAq'!*F1IG...
))D)
!
!C;;3==??;;;MAAc.@AAAND&!1!1222222T(7"3"344444444r3   png)
extensionsc                 r   |                                  }|                    dgdd           |                    dgdd           |                    d	           |                                 }|                    dgdd           |                    dgdd           |                                 d
S )z3Check that the rendered legend entries are reversedr   rofirstr<   ri   bxsecondTr   N)r   rA   r$   )fig_testfig_refr,   s      r1   test_reverse_legend_displayr  4  s     
				BGGQCWG%%%GGQCXG&&&IIdI					BGGQCXG&&&GGQCWG%%%IIKKKKKr3   c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )TestLegendFunctionc                    t          j        t          d          d          }t          j        d          5 }t          j                     d d d            n# 1 swxY w Y   |                    t          j                    |dg           d S )Nr   hello worldr<   matplotlib.legend.Legendr   rA   rm   r   r   r$   assert_called_withgcaselfr   rf   s      r1   test_legend_no_argsz&TestLegendFunction.test_legend_no_argsD  s    r-888Z233 	vJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!#'))U]ODDDDDs   AAAc                    t          j        t          d                    }t          j        d          5 }t          j        |dg           d d d            n# 1 swxY w Y   |                    t          j                    |dg           d S )Nr   r"  r!  r#  r&  s      r1   %test_legend_positional_handles_labelsz8TestLegendFunction.test_legend_positional_handles_labelsJ  s    r##Z233 	/vJu}o...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/!!#'))U]ODDDDDs   AA Ac                     t          j        t          d                    }t          j        t
          d          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr   zbut found an Artistmatch)r   rA   rm   pytestraises	TypeErrorr$   )r'  r   s     r1   #test_legend_positional_handles_onlyz6TestLegendFunction.test_legend_positional_handles_onlyP  s    r##]9,ABBB 	 	 Ju	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA#&A#c                     t          j        t          d          d          }t          j        d          5 }t          j        dg           d d d            n# 1 swxY w Y   |                    t          j                    |dg           d S )Nr   r!  r<   r"  foobarr#  r&  s      r1   "test_legend_positional_labels_onlyz5TestLegendFunction.test_legend_positional_labels_onlyW  s    r-888Z233 	#vJz"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#!!#'))UXJ?????s   AA!Ac                 *   t          j        t          d          d          }t          j        d          5 }t          j        |dgd           d d d            n# 1 swxY w Y   |                    t          j                    |dgd           d S )Nr   r!  r<   r"  r3  r   r?   r#  r&  s      r1   test_legend_three_argsz)TestLegendFunction.test_legend_three_args]  s    r-888Z233 	7vJuxjg6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7!!#'))UXJG!LLLLLs   AA!$A!c                 :   t          j        t          d          d          }t          j        d          5 }|dgf|_        t          j        ddi           d d d            n# 1 swxY w Y   |                    t          j                    gddi           d S )Nr   r!  r<   z,matplotlib.legend._get_legend_handles_labels1ri   )r   )	r   rA   rm   r   r   return_valuer$   r$  r%  )r'  r   handles_labelss      r1   test_legend_handler_mapz*TestLegendFunction.test_legend_handler_mapc  s    r-888Z 5 6 6 	-9G*/-*@N'JC8,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	))3799+Qx@@@@@s   "A&&A*-A*c                    t          j                    \  }}t          j        ddd          }|                    ||d          \  }|                    |d|z  d          \  }|                    |d|z  d	          \  }t          j        d
          5 }|                    ||g           d d d            n# 1 swxY w Y   |                    |||gd	dg           d S )Nr   r      r-   r<   ri   2xr_   3xr"  )r0   	r   r   r   r   rA   r   r   r$   r$  )r'  r+   r,   r-   ln1ln2ln3rf   s           r1   test_legend_kwargs_handles_onlyz2TestLegendFunction.test_legend_kwargs_handles_onlyk  s   ,..RK1b!!wwq!3w''wwq!A#Tw**wwq!A#Tw**Z233 	*vIIsCjI)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*!!"sCj4,?????s   B::B>B>c                    t          j                    \  }}t          j        ddd          }|                    ||          \  }|                    |d|z            \  }t          j        d          5 }|                    ddg           d d d            n# 1 swxY w Y   |                    |||gddg           d S )	Nr   r   r=  ri   r"  r-   r>  r)   r@  )r'  r+   r,   r-   rA  rB  rf   s          r1   test_legend_kwargs_labels_onlyz1TestLegendFunction.test_legend_kwargs_labels_onlyu  s    ,..RK1b!!wwq!}}wwq!A#Z233 	*vIIc4[I)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*!!"sCj3+>>>>>s   4BB Bc                    t          j                    \  }}t          j        ddt          j        z  d          }|                    |t          j        |          d          \  }|                    |t          j        |          d          \  }t          j	        d          5 }|
                    d||f	           d d d            n# 1 swxY w Y   |                    |||fd           d S )
Nr   ri      sinr<   cosr"  r   r   )r)   r0   )r   r   r   r   pirA   rJ  rK  r   r   r$   r$  )r'  r+   r,   thlnslncrf   s          r1   !test_legend_kwargs_handles_labelsz4TestLegendFunction.test_legend_kwargs_handles_labels~  s   ,..R[AbeGT**wwr26"::Uw33wwr26"::Uw33Z233 	=vIIZ#sI<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	!!"sCj*=====s   &CCCc                 D   t          j                    \  }}t          j        ddt          j        z  d          }|                    |t          j        |          d          \  }|                    |t          j        |          d          \  }t          j	        t                    5 }|                    ||fd           d d d            n# 1 swxY w Y   t          |          d	k    sJ t          |d         j                                      d
          sJ d S )Nr   ri   rI  rJ  r<   rK  rL  rF  r   MYou have mixed positional and keyword arguments, some input may be discarded.)r   r   r   r   rM  rA   rJ  rK  r.  warnsDeprecationWarningr$   r   strmessage
startswith)r'  r+   r,   rN  rO  rP  records          r1   test_warn_mixed_args_and_kwargsz2TestLegendFunction.test_warn_mixed_args_and_kwargs  s@   ,..R[AbeGT**wwr26"::Uw33wwr26"::Uw33\,-- 	5IIsCjI444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	56{{a6!9$%%00  	 	 	 	 	s   +CCCc                 |   ddl m}  |d          }|                                }|                    g dg dd          \  }|                    g dg dd          \  }t	          j        d	          5 }t          j                     d d d            n# 1 swxY w Y   |                    |||gddg           d S )
Nr   )host_subploto   r   r   ri   Densityr<   )r   r_   ri   Temperaturer"  )	mpl_toolkits.axes_grid1r\  twinxrA   r   r   r   r$   r$  )r'  r\  hostparr   r   rf   s          r1   test_parasitez TestLegendFunction.test_parasite  s   888888|C  jjllii			999Ii>>hhyyy)))=hAAZ233 	vJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!$R9m2LMMMMMs   6BBBN)__name__
__module____qualname__r(  r*  r1  r4  r6  r;  rD  rG  rQ  rZ  re  r   r3   r1   r  r  B  s        E E EE E E  @ @ @M M MA A A@ @ @? ? ?> > >
 
 
N N N N Nr3   r  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestLegendFigureFunctionc                 :   t          j                    \  }}|                    t          d                    }t	          j        d          5 }|                    |dg           d d d            n# 1 swxY w Y   |                    ||dg|j                   d S )Nr   r"  r!  bbox_transform	r   r   rA   rm   r   r   r$   r$  transFigurer'  r+   r,   r   rf   s        r1   test_legend_handle_labelz1TestLegendFigureFunction.test_legend_handle_label  s    ,..Rb		""Z233 	/vJJu}o...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/!!#u}o14 	" 	B 	B 	B 	B 	Bs   A11A58A5c                 8   t          j                    \  }}|                    t          d          d          }t	          j        d          5 }|                                 d d d            n# 1 swxY w Y   |                    ||dg|j                   d S )Nr   r!  r<   r"  rl  rn  rp  s        r1   r(  z,TestLegendFigureFunction.test_legend_no_args  s    ,..Rb		77Z233 	vJJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!#u}o14 	" 	B 	B 	B 	B 	Bs   A00A47A4c                 8   t          j                    \  }}|                    t          d                    }t	          j        d          5 }|                    dg           d d d            n# 1 swxY w Y   |                    ||dg|j                   d S )Nr   r"  r3  rl  rn  rp  s        r1   test_legend_label_argz.TestLegendFigureFunction.test_legend_label_arg  s    ,..Rb		""Z233 	#vJJz"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#!!#uxj14 	" 	B 	B 	B 	B 	Bs   A00A47A4c                    t          j                    \  }}|                    t          d                    }t	          j        t          d          5  |                    |dgd           d d d            n# 1 swxY w Y   t	          j        t          d          5  |                    |dgdd           d d d            d S # 1 swxY w Y   d S )Nr   z0-2r,  r3  r   leftr?   )r   r   rA   rm   r.  r/  r0  r$   )r'  r+   r,   r   s       r1   test_legend_label_three_argsz5TestLegendFigureFunction.test_legend_label_three_args  s?   ,..Rb		""]9E222 	3 	3JJuxj'222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3]9E222 	? 	?JJuxj'vJ>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s$   A99A= A=CCCc                    t          j        dd          \  }}|d                             t          d                    }|d                             t	          j        d          dz            }t          j        d          5 }|                    dd||f	           d d d            n# 1 swxY w Y   |	                    |||fdd|j
        
           d S )Nr   ri   r   r          @r"  r   rL  )r   r)   r0   )r   rm  )r   r   rA   rm   r   r@   r   r   r$   r$  ro  )r'  r+   rv   r   lines2rf   s         r1   test_legend_kw_argsz,TestLegendFigureFunction.test_legend_kw_args  s   <1%%SAE"II&&QRYr]]R/00Z233 	PvJJ7:vJOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P!!%*'? 	" 	, 	, 	, 	, 	,s   B,,B03B0c                    t          j        dd          \  }}|d                             t          d                    }|d                             t	          j        d          dz            }t          j        t                    5 }|	                    ||fd           d d d            n# 1 swxY w Y   t          |          dk    sJ t          |d         j                                      d          sJ d S )	Nr   ri   r   r   ry  rL  rF  rS  )r   r   rA   rm   r   r@   r.  rT  rU  r$   r   rV  rW  rX  )r'  r+   rv   r   rz  rY  s         r1   test_warn_args_kwargsz.TestLegendFigureFunction.test_warn_args_kwargs  s(   <1%%SAE"II&&QRYr]]R/00\,-- 	;JJvzJ:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;6{{a6!9$%%00  	 	 	 	 	s   
B00B47B4N)	rf  rg  rh  rq  r(  rt  rw  r{  r}  r   r3   r1   rj  rj    sw        B B BB B BB B B? ? ?, , ,	 	 	 	 	r3   rj  c                     d dD             } | d dD             z  } | d dD             z  } | d dD             z  } g d}g d}g d	}g d
}||||||||||||g}g dg dg dg dg dg dg dg dg dg dg dg dg}t          |           D ]\  }}t          |           t          j        dd          \  }	}
|
                    t          d          d           |	                    d|z             }|	                                 t          |
	                                j
        ||                    t          |	                                j
        ||                    d S )Nc                     g | ]}d |z   S )zupper r   r  poss     r1   r  z.test_figure_legend_outside.<locals>.<listcomp>  s    CCCX^CCCr3   )rv  r}   r   c                     g | ]}d |z   S )zlower r   r  s     r1   r  z.test_figure_legend_outside.<locals>.<listcomp>  s    DDDhnDDDr3   c                     g | ]}d |z   S )zleft r   r  s     r1   r  z.test_figure_legend_outside.<locals>.<listcomp>  s    DDDgmDDDr3   )lowerr}   upperc                     g | ]}d |z   S )zright r   r  s     r1   r  z.test_figure_legend_outside.<locals>.<listcomp>  s    EEEhnEEEr3   )QnX4@Qn;@l@gE@)r  g Q@r  lf@)gLNb@r  r  r  )r  r  gE@r  )      $@     X@     `@     p@)     (u@r       |@r  )  r       @r  )r  r  r       F@)r  r  r  r  )     ؄@r  r  r  )r       q@r       s@)r  r  r  r  )r  r  r  r  )r  r  r  r  Tr8   )constrained_layoutdpir   Boo1r<   zoutside r?   )	enumerateprintr   r   rA   rm   r$   draw_without_renderingr   rq   extents)todosupperextlowerextleftextrightextaxbblegbbnntodor+   rv   ry   s               r1   test_figure_legend_outsider    s   CC'BCCCE	DD(CDDDDE	DD'CDDDDE	EE(DEEEEE888H888H777G888HhhWgh*D
 %$$'''%%%###&&&$$$"""&&&$$$"""'''%%%'E e$$ 
# 
#Dd<4SAAASr&)))jjZ$.j//""$$$--//7R	" 	" 	"--//7b		# 	# 	# 	#
# 
#r3   zlegend_stackplot.pnggX9v?)r   c                  @   t          j                    \  } }t          j        ddd          }d|z  }d|z  dz   }d|z  dz   }|                    ||||g d	           |                    d
           |                    d           |                    d           dS )z/Test legend for PolyCollection using stackplot.r   r   rZ   ry  r   g      @ri   )y1y2y3rF  )r   r   )r   F   r>   r?   N)r   r   r   r   	stackplotr[   r\   r$   )r+   r,   r-   r  r  r  s         r1   test_legend_stackplotr    s    
 lnnGC
Ar2A	qB	q1B	q1BLLBB'9'9'9L:::KKKKII&Ir3   c                      t          j                    \  } }t          j                    \  }}|                    t          d          t          d                    }|                    |d           d S )Nr_   foo)r   r   rK   rm   r$   )r+   r,   fig2ax2brss        r1   test_cross_figure_patch_legendr    sY    lnnGCID#
&&q588
$
$CKKUr3   c            
         t          j                    \  } }|                    t          j        gt          j        gdddd          }|                    |gdg           t          j                    \  } }dD ]e}d}t          j                            d|          \  }}d	t          j                            |          z  }|                    |||||d
d           f|                                 |                    d           d S )Nr:   r   r_   )marker	facecolorr   sr    )redgreenbluei  ri   g      i@r   none)r   r  r   alpha
edgecolorsT)	r   r   r    r   nanr$   r   randgrid)r+   r,   r  r/   nr-   r.   scales           r1   test_nanscatterr    s    lnnGC


BF8bfXc C1 	 	6 	6A IIqcI;lnnGC) 1 1y~~a##1	q)))


1a5E 	 	1 	1 	1 	1 IIKKKGGDMMMMMr3   c                  2   t          j                    \  } }|                    ddddd           |                    dddd	d           |                                 t	          j        |g          \  }}t          |          d
k    sJ t          j                    \  } }|                    ddddd           |                    dddd	d           |                                 t	          j        |g          \  }}t          |          d
k    sJ d S )NrY   rZ   kr:   r   )r/   r  r   r   r   vri   )r   r   r    r$   mlegend_get_legend_handles_labelsr   )r+   r,   handlabs       r1   test_legend_repeatcheckokr  /  s    lnnGCJJsCs3fJ===JJsCs3fJ===IIKKK2B488ID#s88q====lnnGCJJsCs3fJ===JJsCs3fJ===IIKKK2B488ID#s88q======r3   znot_covering_scatter.pngc                  <   g d} t          d          D ]!}t          j        |g|g| |                    "t          j        g dd           t          j                                        dd           t          j                                        dd           d S )	N)r   r   r   r_   )r/   )r  r  r  r>   r?   g      皙@)rm   r   r    r$   r%  r[   r\   )r*   r  s     r1   test_not_covering_scatterr  >  s    __F1XX / /QC!F1I.....J$$$&1111GIItS!!!GIItS!!!!!r3   z"not_covering_scatter_transform.pngc                  >   t          j                                        dd          } t          j        ddd          }t          j        ||           t          j        dgdg| t          j                    j	        z              t          j
        dd	gd
           d S )Nir   r      i  r   )	transformr  rK   r>   r?   )mtransformsAffine2D	translater   r   r   rA   r    r%  	transDatar$   )offsetr-   s     r1   #test_not_covering_scatter_transformr  J  s     !##--c266F
Ar4  AHQNNNKrdfswyy/B&BCCCCJu~6******r3   c                  V   ddgddgg} ddgddggd	dgd
dggg}d
dgddggd	dgddggg}t          j        | dd          }t          j        |d          }t          j        |dd	          }t          j                    \  }}|                    |           |                    |           |                    |           |                    |||gg d          }|j        \  }	}
}t          |||f|	|
|f          D ]*\  }}|                                d         |j	        k    sJ +d S )N)r   r   )r   r   )r   333333?)r   r   gffffff?r   r~   r   r   r  rS   z--r_   )
linestylesr   z-.)r  :)line1line2zline 3r   )
mcollectionsLineCollectionr   r   add_collectionr$   r  r   get_linestyles_dash_pattern)lines1rz  lines3lc1lc2lc3r+   r,   ry   h1h2h3ohlhs                 r1   !test_linecollection_scaled_dashesr  V  su    8X"67FRy2r(#r2hR%9:FRy2r(#r2hR%9:F

%f!
D
D
DC

%f
>
>
>C

%f
D
D
DClnnGCccc
))S#sO%A%A%A
B
BC#JBBsCoB|44 : :B  ""1%)999999: :r3   c                      t          j                    \  } }|                    t          d          d           |                    d           dS )z(Test legend handler with numpoints <= 1.r   r   r<   r   r   N)r   r   rA   rm   r$   r   s     r1   test_handler_numpointsr  j  sI     lnnGCGGE!HHFG###IIIr3   c                     t          j                    \  } }|                    dgd           |                    dddd           t	          j        t                    5 }|                                 ddd           n# 1 swxY w Y   t          |          dk    sJ t          j                    \  }}|	                    t          j                            ddd	                     t          j                    5  t          j        d
           |                                 ddd           dS # 1 swxY w Y   dS )z2Test that Text artists with labels raise a warningr   	mock datar<   textr   )r-   r.   r  r   Nr   )r   r   error)r   r   rA   r  r.  rT  UserWarningr$   r   
pcolormeshr   r   uniformwarningscatch_warningssimplefilterr!   )r+   r,   rY  fs       r1   test_text_nohandler_warningr  r  s   lnnGCGGQC{G###GGa1gG...	k	"	" f
		              v;;! LNNEArMM")##Aq(33444		 	"	" ' 'g&&&
$$&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's$   !BB	B?)D55D9<D9c                  Z    t          j        g g d           t          j                     dS )z1Test legend when bar chart is empty with a label.r   r<   N)r   rK   r$   r   r3   r1    test_empty_bar_chart_with_legendr    s*     GB&!!!!JLLLLLr3   zshadow_argument_types.pngmpl20gy&1?)r5   r   r   c            
         t          j                    \  } }|                    g dd           |                    dd          |                    dd          |                    d	d
dd          |                    dddd          |                    dddd          f}|D ]}|                    |           |                    d           d S )Nr   r   r<   r   Tr   r   upper rightFr   r  rS   )r/   r  center right)rS   r   r   )r/   oyr   ztab:cyanr   )r/   oxlower rightr?   )r   r   rA   r$   r   )r+   r,   legsls       r1   test_shadow_argument_typesr    s    lnnGCGGIIIVG$$$ II,tI44II-I66II-',s;;  = =II.'6bAA  C CII,'1<<  > >D   
aII-I     r3   c                      t          j                    \  } }|                    g dd           t          j        t
          d          5  |                    dd           d d d            d S # 1 swxY w Y   d S )	Nr   r   r<   zdict or boolr,  r   aardvarkr  )r   r   rA   r.  r/  
ValueErrorr$   r   s     r1   test_shadow_invalid_argumentr    s     lnnGCGGIIIVG$$$	z	8	8	8 7 7
		l:	6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   A00A47A4c                      t          j                    \  } }|                    t          d          d           |                    dd          }|                                                                dk    sJ d S )Nr8   r   r<   Tw)r   r  r   )r   r   rA   rm   r$   	get_frame	get_alphar   s      r1   test_shadow_framealphar    so     lnnGCGGE#JJfG%%%
))43)
/
/C==??$$&&!++++++r3   c                  J   t          j                    \  } }|                    t          d          d           |                                }|                                                                dk    sJ |                                                                rJ d S )Nr   r  r<    )r   r   rA   rm   r$   	get_titler  get_visibler   s      r1   test_legend_title_emptyr    s     lnnGCGGE"II[G)))
))++C==??##%%++++}}**,,,,,,,r3   c                  F   t          j        d          \  } }|                    t          d          d           |                                }|                    | j                                                  j        }t          j        d          \  } }|                    t          d          d           |                                }|                    | j                                                  j        }t          j
        |dz  d          |k    sJ d S )	Nr8   r  r   Aardvarkr<      ri   rS   )r   r   rA   rm   r$   rq   rn   get_rendererx0r.  approx)r+   r,   ry   x01x02s        r1    test_legend_proper_window_extentr#    s    ls###GCGGE"IIZG(((
))++C



 7 7 9 9
:
:
=Cls###GCGGE"IIZG(((
))++C



 7 7 9 9
:
:
=C=Q$$++++++r3   c                  P   t          j        d          \  } }|                    t          d          d           |                                }|                                 }| j                                         |                                 |                                 d S )Nr8   r  r   r  r<   )r   r   rA   rm   r$   rn   ro   rq   )r+   r,   ry   leg2s       r1   "test_window_extent_cached_rendererr&    s    ls###GCGGE"IIZG(((
))++C::<<DJOOr3   c                     t          j        t          d          d           t          j        t
                    5  t          j        ddddd           d d d            n# 1 swxY w Y   t          j        dt          dd          	          } |                                 	                                dk    sJ t          j
        d
dd          \  }}|j        }|d                             t          d          d           |d                             dd          }|                                                                dk    sJ |d                             t          d          d           |d                             dddd	          }|                                                                dk    sJ |d
                             t          d          d           d t          j        d<   |d
                             dddi	          }|                                                                t          j        d         k    sJ |d                             t          d          d           |d                             d          }|                                                                t          j        d         k    sJ |d                             t          d          d           dt          j        d<   |d                             dddi	          }|                                                                dk    sJ |d                             t          d          d           |d                             d          }|                                                                dk    sJ d S )Nr   r  r<   r     serif)familysize)r   title_fontsizetitle_fontproperties)r   r-  ri   r_   )r   r   )rb   r   )r   r,  r   zlegend.title_fontsizer*  z	font.sizer   r   r   r   )r   rA   rm   r.  r/  r  r$   r
   r  get_sizer   rj   get_fontsizer   r   )	ry   r+   axesleg0leg1r%  leg3leg4leg5s	            r1   #test_legend_title_fontprop_fontsizer7    s   HU2YYk****	z	"	" I I
B3:B(G(G	I 	I 	I 	II I I I I I I I I I I I I I I *:N.5B=@ =@ =@ A A AC==??##%%++++Q7333IC9DGLLr+L...7>>
2>>>D>>((**b0000GLLr+L...7>>
:A2/N/N  P PD>>((**b0000GLLr+L...,0CL()7>>
08'/B  D DD>>((**cl;.GGGGGGLLr+L...7>>
>++D>>((**cl;.GGGGGGLLr+L...,.CL()7>>
08'/B  D DD>>((**b0000GLLr+L...7>>
>++D>>((**b000000s   A$$A(+A(	alignment)r}   rv  r   c                 &   t          j                    \  }}|                    t          d          d           |                    d|           }|                                d         j        | k    sJ |                                | k    sJ d S )Nr   r   r<   r  )r   r8  r   )r   r   rA   rm   r$   get_childrenrG   get_alignmentr8  r+   r,   ry   s       r1   test_legend_alignmentr=    s    lnnGCGGE"IIVG$$$
))*	)
:
:Ca &)3333)++++++r3   r   r|   c                 *   t          j                    \  }}|                    t          d          d           |                                }|                    |            |                                t          j        j	        |          k    sJ d S )Nr   r   r<   )
r   r   rA   rm   r$   set_loc_get_locr  rf   codesr   r+   r,   ry   s       r1   test_ax_legend_set_locrC    su    lnnGCGGE"IIVG$$$
))++CKK<<>>W^1#6666666r3   )zoutside rightr   c                    t          j                    \  }}|                    t          d          d           |                                }|                    |            |                     d          r|                                 d         n| } |                                t          j
        j        |          k    sJ d S )Nr   r   r<   outsider   )r   r   rA   rm   r$   r?  rX  splitr@  r  rf   rA  rB  s       r1   test_fig_legend_set_locrG    s    lnnGCGGE"IIVG$$$
**,,CKKNN955
>#))++a..3C<<>>W^1#6666666r3   c                 J   t          j                    \  }}|                    t          d          d           |                                }|                    |            |                                d         j        | k    sJ |                                | k    sJ d S )Nr   r   r<   r   )	r   r   rA   rm   r$   set_alignmentr:  rG   r;  r<  s       r1   test_legend_set_alignmentrJ    s    lnnGCGGE"IIVG$$$
))++Ci   a &)3333)++++++r3   r/   )r  r  )r   r   r   c                 n   t          j                    \  }}|                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    | 	          }|                                D ]6}t          j        	                    |
                                |           sJ 7d S )
Nr   r   #1r<   ri   #2r_   #3
labelcolor)r   r   rA   r   r@   r$   r  r   r*   
same_color	get_colorr/   r+   r,   ry   r  s        r1   test_legend_labelcolor_singlerT  %  s     lnnGCGGBIbMM29R==?$G777GGBIbMM29R==?$G777GGBIbMM29R==?$G777
))u)
%
%C > >z$$T^^%5%5u======> >r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    g d	
          }t          |                                g d	          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rL  r<   ri   rM  r_   rN  r   r   r   rO  r   r   rA   r   r@   r$   r   r  r   r*   rQ  rR  r+   r,   ry   r  r/   s        r1   test_legend_labelcolor_listrY  2  s
   lnnGCGGBIbMM29R==?$G777GGBIbMM29R==?$G777GGBIbMM29R==?$G777
)))
/
/C3==??OOO<< > >ez$$T^^%5%5u======> >r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rL  r   r   r/   ri   rM  r   r_   rN  r   	linecolorrO  rV  rW  rX  s        r1    test_legend_labelcolor_linecolorr]  >  s   lnnGCGGBIbMM29R==?$cGBBBGGBIbMM29R==?$cGBBBGGBIbMM29R==?$cGBBB
)){)
+
+C3==??OOO<< > >ez$$T^^%5%5u======> >r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rL  r   r   ri   rM  r   r_   rN  r   r\  rO  rV  r   r   r    r   r@   r$   r   r  r   r*   rQ  rR  rX  s        r1   /test_legend_pathcollection_labelcolor_linecolorr`  J  s   lnnGCJJry}}bimmAoTSJAAAJJry}}bimmAoTSJAAAJJry}}bimmAoTSJAAA
)){)
+
+C3==??OOO<< > >ez$$T^^%5%5u======> >r3   c                     t          j                    \  } }t          j        g ddz            }|                    t          j        d          t          j        d          d|           |                    d          }|                                \  }t          j	        
                    |                                d          sJ d S )	Nr   r   r   r   rF   ri   r   rL  r   r\  rO  black)r   r   r   r   r    r@   r$   r  r   r*   rQ  rR  )r+   r,   r*   ry   r  s        r1   8test_legend_pathcollection_labelcolor_linecolor_iterablerd  V  s     lnnGCX///!344FJJry}}bimm46JBBB
)){)
+
+CMMOOED:  !1!17;;;;;;;r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          t          j        d          d           |                    d          }|                                \  }t          j        	                    |
                                d          sJ d S )Nr   rL  )r   r   r\  rO  rc  )r   r   r    r   r@   r$   r  r   r*   rQ  rR  )r+   r,   ry   r  s       r1   4test_legend_pathcollection_labelcolor_linecolor_cmaprf  b  s     lnnGCJJry}}bimmry}}DJIII
)){)
+
+CMMOOED:  !1!17;;;;;;;r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rL  r   r   markeredgecolorri   rM  r   r_   rN  r   ri  rO  rV  rW  rX  s        r1   &test_legend_labelcolor_markeredgecolorrj  m     lnnGCGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLL
))0)
1
1C3==??OOO<< > >ez$$T^^%5%5u======> >r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rL  r   r   r   ri   rM  r   r_   rN  r   ri  rO  rV  r_  rX  s        r1   5test_legend_pathcollection_labelcolor_markeredgecolorrn  y     lnnGCJJry}}bimmAoTSJIIIJJry}}bimmAoTSJIIIJJry}}bimmAoTSJIII
))0)
1
1C3==??OOO<< > >ez$$T^^%5%5u======> >r3   c                     t          j                    \  } }t          j        g ddz            }|                    t          j        d          t          j        d          d|           |                    d          }t          |                                dg          D ]9\  }}t          j
                            |                                |          sJ :d S )	Nrb  ri   r   rL  rm  ri  rO  r  r   r   r   r   r    r@   r$   r   r  r   r*   rQ  rR  r+   r,   r*   ry   r  r/   s         r1   >test_legend_pathcollection_labelcolor_markeredgecolor_iterablers         lnnGCX///!344FJJry}}bimm46JJJJ
))0)
1
1C3==??SE22 > >ez$$T^^%5%5u======> >r3   c                  2   t          j                    \  } }t          j                            t
          j                            d                    }|                    t          j	        d          t          j	        d          dt          j	        d          |d           |
                    d          }t          |                                dg          D ]9\  }}t          j                            |                                |          sJ :d S )Nr   rL  Reds)r   r   r   cmapri  rO  r  r   r   r   cmviridisr   r   r  r    r@   r$   r   r  r*   rQ  rR  )r+   r,   r  ry   r  r/   s         r1   :test_legend_pathcollection_labelcolor_markeredgecolor_cmapr{    s     lnnGC	r 2 233JJJ
	"
	"
)B--     ))0)
1
1C3==??SE22 > >ez$$T^^%5%5u======> >r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rL  r   r   markerfacecolorri   rM  r   r_   rN  r   r~  rO  rV  rW  rX  s        r1   &test_legend_labelcolor_markerfacecolorr    rk  r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rL  r   r   r  ri   rM  r   r_   rN  r   r~  rO  rV  r_  rX  s        r1   5test_legend_pathcollection_labelcolor_markerfacecolorr    ro  r3   c                     t          j                    \  } }t          j        g ddz            }|                    t          j        d          t          j        d          d|           |                    d          }t          |                                dg          D ]9\  }}t          j
                            |                                |          sJ :d S )	Nrb  ri   r   rL  r  r~  rO  r  rq  rr  s         r1   >test_legend_pathcollection_labelcolor_markerfacecolor_iterabler    rt  r3   c                  0   t          j                    \  } }t          j                            t
          j                            d                    }|                    t          j	        d          t          j	        d          dt          j	        d          |           |
                    d          }t          |                                dg          D ]9\  }}t          j                            |                                |          sJ :d S )Nr   rL  )r   r   r  r~  rO  r  rx  )r+   r,   
facecolorsry   r  r/   s         r1   8test_legend_pathcollection_labelcolor_markfacecolor_cmapr    s     lnnGC	r 2 233JJJ
	"
	"
)B--     ))0)
1
1C3==??SE22 > >ez$$T^^%5%5u======> >r3   c                    t          j                    \  }}|                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           | t
          j        d	<   |                                }|                                D ]6}t
          j	        
                    |                                |           sJ 7d S )
Nr   r   rL  r<   ri   rM  r_   rN  legend.labelcolor)r   r   rA   r   r@   r   r   r$   r  r*   rQ  rR  rS  s        r1   %test_legend_labelcolor_rcparam_singler    s     lnnGCGGBIbMM29R==?$G777GGBIbMM29R==?$G777GGBIbMM29R==?$G777(-CL$%
))++C > >z$$T^^%5%5u======> >r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rL  r   r[  ri   rM  r   r_   rN  r   r\  r  rV  r   r   rA   r   r@   r   r   r$   r   r  r*   rQ  rR  rX  s        r1   (test_legend_labelcolor_rcparam_linecolorr    s   lnnGCGGBIbMM29R==?$cGBBBGGBIbMM29R==?$cGBBBGGBIbMM29R==?$cGBBB(3CL$%
))++C3==??OOO<< > >ez$$T^^%5%5u======> >r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rL  r   rh  ri   rM  r   r_   rN  r   ri  r  rV  r  rX  s        r1   .test_legend_labelcolor_rcparam_markeredgecolorr       lnnGCGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLL(9CL$%
))++C3==??OOO<< > >ez$$T^^%5%5u======> >r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rL  r   rh  ri   rM  r   r_   rN  r   mecr  rV  r  rX  s        r1   4test_legend_labelcolor_rcparam_markeredgecolor_shortr       lnnGCGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLL(-CL$%
))++C3==??OOO<< > >ez$$T^^%5%5u======> >r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rL  r   r}  ri   rM  r   r_   rN  r   r~  r  rV  r  rX  s        r1   .test_legend_labelcolor_rcparam_markerfacecolorr    r  r3   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rL  r   r}  ri   rM  r   r_   rN  r   mfcr  rV  r  rX  s        r1   4test_legend_labelcolor_rcparam_markerfacecolor_shortr    r  r3   z4ignore:No artists with labels found to put in legendc                     t          j                    } |                                 rJ |                     d           |                                 sJ |                     d           |                                 rJ d S )NTF)r   r$   get_draggableset_draggabler$   s    r1   test_get_set_draggabler  )  s    Z\\F##%%%%%
!!!!!
##%%%%%%%r3   	draggable)TFc                     t          j                    \  }}|                    t          d          d           |                    |           }|                                | u sJ d S )Nr   shabnamsr<   )r  )r   r   rA   rm   r$   r  )r  r+   r,   ry   s       r1   test_legend_draggabler  3  sc    lnnGCGGE"IIZG(((
))i)
(
(C)++++++r3   c                     t          j        g dddd          \  } }}t          j                    }|j        D ]}|                    d           |                                d d         |d                                         d d         k    sJ |                                d d         |d                                         d d         k    sJ d S )	Nr   g      ?datar  )r  r   r/   rZ   rH   r   )r   rl   r$   r  	set_alphaget_facecolorget_edgecolor)r-   r  hhr$   r  s        r1   test_alpha_handlesr  ;  s    x			V5IIIHAq"Z\\F#  
Scrc"be&9&9&;&;CRC&@@@@@crc"be&9&9&;&;CRC&@@@@@@@r3   c                 0   dt           j        d<   dt           j        d<   dt           j        d<   t          j                    \  }}|                    ddd	           |                    d
           |j                                         d| j        vsJ d S )Nr)  zfont.familyzComputer Modernz
font.serifTztext.usetexr   inputr<   r   r.  z Font family ['serif'] not found.)	r   r   r   r   rA   r$   rn   ro   r  )caplogr+   r,   s      r1   test_usetex_no_warnr  D  s    ")CL!2CL"&CLlnnGCGGAqG   IIKI   JOO-V[@@@@@@r3   c                 F   t          j        dd          |                     t          dfd           t	          j                    \  }}|j                                         g d}g d}|                    ||dd	
           t          ddi          5  |
                                }d d d            n# 1 swxY w Y   t          j        t          d          5 }|                    |           d d d            n# 1 swxY w Y   t          |          dk    sJ d S )Nr         ?rc   perf_counterc                  "    t                     S Nnextcounters   r1   <lambda>z-test_warn_big_data_best_loc.<locals>.<lambda>U      d7mm r3   rQ   rT   rW   rX   r<   z
legend.locr>   zGCreating legend with loc="best" can be slow with large amounts of data.r,  ri   )	itertoolscountsetattrtimer   r   rn   ro   rA   r	   r$   r.  rT  r  draw_artistr   )monkeypatchr+   r,   r-   r.   r$   recordsr  s          @r1   test_warn_big_data_best_locr  R  s   oac***Gn.C.C.C.CDDDlnnGCJOO 	'&&A***AGGAq$fG%%%	\6*	+	+                	k)
* 
* 
*  -4                              w<<1s$   B99B= B=DDDc                 f   t          j        dd          |                     t          dfd           t	          j                    \  }}|j                                         g d}g d}|                    ||dd	
           |	                    d          }|
                    |           d S )Nr   r  r  r  c                  "    t                     S r  r  r  s   r1   r  z:test_no_warn_big_data_when_loc_specified.<locals>.<lambda>m  r  r3   rQ   rT   rW   rX   r<   r>   )r  r  r  r  r   r   rn   ro   rA   r$   r  )r  r+   r,   r-   r.   r$   r  s         @r1   (test_no_warn_big_data_when_loc_specifiedr  j  s    oac***Gn.C.C.C.CDDDlnnGCJOO 	'&&A***AGGAq$fG%%%YYvFOOFr3   label_arraylowhigh)r  r  c                     g d}ddgddgddgg}t          j                    \  }}|                    |||            |                                }d |                                D             }|d	d
gk    sJ d S )Nr   r   ri   r   r   re   r<   c                 6    g | ]}|                                 S r   r  r  entrys     r1   r  z;test_plot_multiple_input_multiple_label.<locals>.<listcomp>  "    BBBENN$$BBBr3   r  r  )r   r   rA   r$   r  )r  r-   r.   r+   r,   ry   legend_textss          r1   'test_plot_multiple_input_multiple_labelr  {  s     			A
Q
Q
Q	A lnnGCGGAqG$$$
))++CBB#--//BBBLE6?******r3   r   r   r   c                    g d}ddgddgddgg}t          j                    \  }}|                    |||            |                                }d |                                D             }|t          |           gdz  k    sJ d S )	Nr   r   ri   r   r   re   r<   c                 6    g | ]}|                                 S r   r  r  s     r1   r  z9test_plot_multiple_input_single_label.<locals>.<listcomp>  r  r3   )r   r   rA   r$   r  rV  )r   r-   r.   r+   r,   ry   r  s          r1   %test_plot_multiple_input_single_labelr    s     			A
Q
Q
Q	A lnnGCGGAqG
))++CBB#--//BBBLCJJ<!+++++++r3   c                    g d}g d}t          j                    \  }}t          j        t          j        d          5  |                    |||            d d d            n# 1 swxY w Y   |                                }t          |	                                          dk    sJ |	                                d         
                                t          |           k    sJ d S )Nr   )ri   r   r   z$Passing label as a length 2 sequencer,  r<   r   r   )r   r   r.  rT  r   MatplotlibDeprecationWarningrA   r$   r   r  r  rV  )r  r-   r.   r+   r,   ry   s         r1   %test_plot_single_input_multiple_labelr    s    			A		AlnnGC	c6B
D 
D 
D ) )
1K((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ))++Cs}}1$$$$==??1&&((C,<,<<<<<<<s   A$$A(+A(c                      t          j                    \  } }|                    dgdggdg          \  }|                                dk    sJ d S )Nr   r   Ar<   )r   r   rA   	get_label)r+   r,   rX   s      r1   !test_plot_single_input_list_labelr    sS    lnnGCGGaS1#JseG,,ED>>s""""""r3   c                      t          j        t                    5  g d} ddgddgddgg}g d}t          j                    \  }}|                    | ||           d d d            d S # 1 swxY w Y   d S )	Nr   r   ri   r   r   re   )r  r  mediumr<   )r.  r/  r  r   r   rA   )r-   r.   r   r+   r,   s        r1   3test_plot_multiple_label_incorrect_length_exceptionr    s     
z	"	" # #IIVVV *)),..R
1E"""# # # # # # # # # # # # # # # # # #s   AA))A-0A-c                      t          j                    \  } }|                    g dg dg dddd           |                                 d S )Nr^  r   r   r   faceFill)r  r   r   )r   r   r   r$   r   s     r1   test_legend_face_edgecolorr    sY    lnnGCOOIIIyyy)))!V6  C C CIIKKKKKr3   c                      t          j                    \  } }|                    ddgddgd           |                                }|j        |u sJ |                                d         j        |u sJ d S )Nr   ri   r_   r   rX   r<   r   )r   r   rA   r$   r1  r  r   s      r1   test_legend_text_axesr    st    lnnGCGGQFQF&G)))
))++C8r>>>>==??1"b((((((r3   c                  J   t          j                    \  } }|                    ddgddgd           t          j        dgdgd          g}|                    |dgd          }|d                                         |j        d                                         k    sJ d S )Nr   r   r  )r  r  r  )r   r   r    mlinesLine2Dr$   r	  r  )r+   r,   r0   ry   s       r1   test_handlerline2dr    s    lnnGCJJ1v1vcJ***}aS1#c2223G
))Gj\Q)
7
7C1:  ""c&8&;&F&F&H&HHHHHHHr3   c                     t          j                                                    } |                                 }|                    ddgddgd           |                                 }|                    d          | u sJ d S )Nr   r   rX   r<   F)root)r   r   
subfiguresr   rA   r$   
get_figure)subfigr,   ry   s      r1   test_subfigure_legendr    sz    Z\\$$&&F			BGGQFQF&G)))
--//C>>u>%%//////r3   c                     t          j        ddgddgdd          } t          j                                                    d         }|                    d           |                                d d         t          |                                 d         d d                   k    sJ |                                d d         t          |                                 d         d d                   k    sJ d S )	Nr   r   ri   r_   z#123456r   )r/   r   r   )r   r   r$   get_patchesr  r  tupler  )pcr   s     r1   -test_setting_alpha_keeps_polycollection_colorr    s    		1a&1a&		I	I	IBJLL$$&&q)E	OOC  !$b.>.>.@.@.CBQB.G(H(HHHHH  !$b.>.>.@.@.CBQB.G(H(HHHHHHHr3   c                  H   g d} t          j                    \  }}d | D             }g d}d |D             }|                    ||          }d |                                D             }d |                                D             }||cxk    r| k    sn J ||k    sJ d S )N)r   *r  c                 B    g | ]}t          j        d gd gd|          S )r   None)lsr  )r  r  )r  marks     r1   r  z3test_legend_markers_from_line2d.<locals>.<listcomp>  s?     # # # ]A3t<<< # # #r3   )r  rK   xyzzyc                 6    g | ]}|                                 S r   r  r  rX   s     r1   r  z3test_legend_markers_from_line2d.<locals>.<listcomp>  s"    333Tt  333r3   c                 6    g | ]}|                                 S r   r  r  s     r1   r  z3test_legend_markers_from_line2d.<locals>.<listcomp>  s"    DDD4??$$DDDr3   c                 6    g | ]}|                                 S r   r  )r  r  s     r1   r  z3test_legend_markers_from_line2d.<locals>.<listcomp>  s     AAAd$--//AAAr3   )r   r   r$   	get_linesr  )	_markersr+   r,   r   r)   r  r$   new_markers
new_labelss	            r1   test_legend_markers_from_line2dr     s    HlnnGC# #!# # #E$$$F33U333GYYuf%%FDD1A1A1C1CDDDKAAf.>.>.@.@AAAJk----X------Zr3   c                 n    g d}d}|                      ||           |                     ||           d S )N)r   r   r   r   er  r_   )ncol)ra   r  )r  r  stringsra   s       r1   test_ncol_ncolsr    sF     -,,GEOOG%O(((NN7%N(((((r3   c                     t          j                    \  } }t          j        t          d          5  |                    ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d	dg           d d d            d S # 1 swxY w Y   d S )
NzFloc must be string, coordinate tuple, or an integer 0-10, not \(1.1,\)r,  )r   r  r   r)   zWloc must be string, coordinate tuple, or an integer 0-10, not \(0.481, 0.4227, 0.4523\))bX9?g:M?gm{?zRloc must be string, coordinate tuple, or an integer 0-10, not \(0.481, 'go blue'\))r  zgo bluer   r   r.  r/  r  r$   r   s     r1    test_loc_invalid_tuple_exceptionr
    s    lnnGC	z +C 
E 
E 
E 5 5
		g{m	4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
z +T 
V 
V 
V E E
		-{m	DDDE E E E E E E E E E E E E E E 
z +Q 
S 
S 
S @ @
		(+	???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s5   AAA=B""B&)B&C..C25C2c                      t          j                    \  } }|                    ddg           |                    ddg           d S )N)r  }?5^I?r  r  )r   ri   r   r   r$   r   s     r1   test_loc_valid_tupler    sG    lnnGCII.+I777II&+I/////r3   c                      t          j                    \  } }|                    ddgdg           |                    ddgdg           d S )Nr  r  r  r  r   ri   r  r   s     r1   test_loc_valid_listr    sO    lnnGCII5%.+I777II1a&+I/////r3   c                      t          j                    \  } }t          j        t          d          5  |                    g ddg           d d d            d S # 1 swxY w Y   d S )NzOloc must be string, coordinate tuple, or an integer 0-10, not \[1.1, 2.2, 3.3\]r,  )r   r  gffffff
@r  r  r	  r   s     r1   test_loc_invalid_list_exceptionr  #  s    lnnGC	z +L 
N 
N 
N = =
		ooo{m	<<<= = = = = = = = = = = = = = = = = =   AA!Ac                      t          j                    \  } }t          j        t          d          5  |                    ddidg           d d d            d S # 1 swxY w Y   d S )NzKloc must be string, coordinate tuple, or an integer 0-10, not {'not': True}r,  notTr  r  r	  r   s     r1   test_loc_invalid_typer  *  s    lnnGC	z +F 
H 
H 
H ; ;
		udm[M	:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;r  c                      t          j                    \  } }|                    ddg           |                    ddg           |                    ddg           |                    ddg           t          j        t
          d          5  |                    d	dg           d d d            n# 1 swxY w Y   t          j        t
          d
          5  |                    ddg           d d d            d S # 1 swxY w Y   d S )Nr   r  r  r   r   r   z@loc must be string, coordinate tuple, or an integer 0-10, not 11r,  r=  z@loc must be string, coordinate tuple, or an integer 0-10, not -1rH   r   r   r$   r.  r/  r  r   s     r1   !test_loc_validation_numeric_valuer  1  s   lnnGCII![MI***II![MI***II![MI***II"k]I+++	z +; 
= 
= 
= 0 0
		b+	///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
z +; 
= 
= 
= 0 0
		b+	///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s$   B77B;>B;DD
Dc                     t          j                    \  } }dg}|                    d|           |                    d|           |                    d|           |                    d|           |                    d|           |                    d|           |                    d|           |                    d|           |                    d	|           |                    d
|           |                    d|           |                    d|           t          j        t
          d          5  |                    d|           d d d            d S # 1 swxY w Y   d S )Nr  r>   r  r  r   r   r  r   r   r  zlower centerzupper centerz 'wrong' is not a valid value forr,  wrongr  )r+   r,   r)   s      r1    test_loc_validation_string_valuer  @  s   lnnGC]FII&I(((II-I///II&I(((II-I///II,vI...II,vI...II-I///II'&I)))II-I///II.I000II.I000II.I000	z)K	L	L	L . .
		gf	---. . . . . . . . . . . . . . . . . .s   	E..E25E2c                     t          j        t          d                    \  } t          j        t          d                    \  }t          j        t
          d          5  t          j        | |gg d          }t          |j                  dk    sJ t          |	                                          dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   znumber of handles and labelsr,  pl1pl2pl3r0   r)   ri   )
r   rA   rm   r.  rT  r  r$   r   r  r  r  r   r$   s      r1   !test_legend_handle_label_mismatchr$  S  s   8E"IIDC8E"IIDC	k)G	H	H	H , ,S#J7L7L7LMMM6())Q....6##%%&&!+++++, , , , , , , , , , , , , , , , , ,s   "ACCCc                  |   t          j        t          d                    \  } t          j        t          d                    \  }t          j        t	          | |g          t	          g d                    }t          |j                  dk    sJ t          |                                          dk    sJ d S )Nr   r  r"  ri   )r   rA   rm   r$   iterr   r  r  r#  s      r1   (test_legend_handle_label_mismatch_no_lenr'  \  s    8E"IIDC8E"IIDCZc3Z 0 0#$9$9$9::< < <Fv$%%****v!!""a''''''r3   c                      t          j        g d           t          j        t          d          5  t          j                     d d d            d S # 1 swxY w Y   d S )Nr   zNo artists with labels foundr,  )r   rA   r.  r/  r  r$   r   r3   r1   test_legend_nolabels_warningr)  e  s    HYYY	{*H	I	I	I  
                 s   AAAc                      t          j        g d           t          j                     t          j                                                    J d S )Nr   )r   rA   r$   r%  r   r   r3   r1   test_legend_nolabels_drawr+  k  sE    HYYYJLLL799!!-----r3   c            	      d   g d} g d}g d}g }t          j        dd          \  }}t          |j        d          D ]\  }}|                    | ||dd	d
           |                    dd           |                    dd           |                    |          }|j        	                                 |
                    |                                                    |j                                                             t          |d         j        |d         j                   d S )Nr   )r   r   r   )r   r   r   ri   r   r   r`   r>   r   grayr   zShaded Area)r/   r  r   r   r   rH   r   r?   r   )r   r   r   rj   r   r[   r\   r$   rn   ro   rp   rq   rr   rs   rt   r   ru   )	r-   r  r  rw   r+   rv   r,   r   ry   s	            r1   test_legend_loc_polycollectionr0  r  s9    			A	B	BJ|!W555HCsx!788 J JC
2rs-PPP
Aq
BiiCi  
!!##//0E0E0G0GHH	J 	J 	J 	JJqM(*Q-*>?????r3   c                  0   t          j        dd          \  } }g }t          |j        d          D ]\  }}ddg}ddg}|                    ||d           |                    ddd	d
           |                    |          }| j                                         |	                    |
                                                    |j                                                             t          |d         j        |d         j                   d S )Nri   r-  r`   r.  r   z	plot namer<   r  zsome text blahblahtop)verticalalignmentr?   r   )r   r   r   rj   rA   r  r$   rn   ro   rp   rq   rr   rs   rt   r   ru   )r+   rv   rw   r,   r   r-   r.   ry   s           r1   test_legend_textr4    s    |!W555HCJsx!788 J JCFF
1K(((
Q,FFFiiCi  
!!##//0E0E0G0GHH	J 	J 	J 	JJqM(*Q-*>?????r3   c                     t           j                            d           t           j                            d          } t          j        dd          \  }}g d}|d                             | d|	          }d
 |d         D             |k    sJ |d                                         \  }}||k    sJ t          d |D                       sJ |d                             | |d          }d |d         D             |k    sJ |d                                         \  }}||k    sJ t          d |D                       sJ t          j	        t          d          5  |d                             | |d d                   }d d d            n# 1 swxY w Y   |d                             | d          }	|	d         d                                         dk    sJ t          d |	d         dd          D                       sJ d S )Ni!N,)r   r   r   r   )nrowsra   )box Azbox Bzbox Czbox Dr   T)patch_artistr   c                 6    g | ]}|                                 S r   r  r  r  s     r1   r  z.test_boxplot_legend_labels.<locals>.<listcomp>  s     000aAKKMM000r3   boxesc              3   T   K   | ]#}t          |t          j        j                  V  $d S r  )
isinstancer   patches	PathPatchr
  s     r1   	<genexpr>z-test_boxplot_legend_labels.<locals>.<genexpr>  s1      EEz!S[233EEEEEEr3   F)r   showboxc                 6    g | ]}|                                 S r   r:  r;  s     r1   r  z.test_boxplot_legend_labels.<locals>.<listcomp>  s     222aAKKMM222r3   mediansc              3   T   K   | ]#}t          |t          j        j                  V  $d S r  )r>  r   r   r  r
  s     r1   rA  z-test_boxplot_legend_labels.<locals>.<genexpr>  s1      @@1z!SY-..@@@@@@r3   z values must have same the lengthr,  ri   rH   r<   r_   r7  c              3   d   K   | ]+}|                                                     d           V  ,dS )_N)r  rX  )r  r-   s     r1   rA  z-test_boxplot_legend_labels.<locals>.<genexpr>  s8      IIq{{}}'',,IIIIIIr3   )r   r   seedr   r   boxplotr!   allr.  r/  r  r  )
r  r+   rv   legend_labelsbp1r0   r)   bp2bp3bp4s
             r1   test_boxplot_legend_labelsrP    sn   INN89G$$D|!1---HC888M a&..D.
F
FC003w<000MAAAA!f6688OGV]""""EEWEEEEEEEE a&..]E.
B
BC223y>222mCCCC!f6688OGV]""""@@@@@@@@@@ 
z)K	L	L	L = =!fnnTss);n<<= = = = = = = = = = = = = = = a&..W.
-
-Cy>!&&((G3333IIc)nQRR6HIIIIIIIIIIs   #&FFF)r"   r  platformr  unittestr   r  numpyr   numpy.testingr   r.  matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr   matplotlib.pyplotpyplotr   
matplotlibr   matplotlib.patchesr?  r   matplotlib.transforms
transformsr  matplotlib.collectionsr  matplotlib.linesr   r  matplotlib.legend_handlerr   matplotlib.legendr$   r  r	   matplotlib.font_managerr
   r2   rB   rN   r]   rz   r   r   machiner   r   r   r   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  r#  r&  r7  r  parametrizer=  rC  rG  rJ  rT  rY  r]  r`  rd  rf  rj  rn  rs  r{  r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r   r  intr  r  r  r  r  r  r  r  r  r   r  r
  r  r  r  r  r  r  r$  r'  r)  r+  r0  r4  rP  r   r3   r1   <module>rf     s                        ) ) ) ) ) )  O O O O O O O O 4 4 4 4 4 4           % % % % % % + + + + + + - - - - - - ! ! ! ! ! ! 2 2 2 2 2 2 # # # # # # ! ! ! ! ! ! 2 2 2 2 2 29 9 9$ >"555  65 >"555: : 65: >"##  $#@ @ @,@ @ @@ *+>>>' ' ?>' ,-4/x/11W<<ee!E E E- -E E- -.D/x/11W<<ee!E E E	I 	IE E	I #$$+8+--99aatE E E2 2E E2 &'T+8+--99aatE E E	6 	6E E	6 7)4888
E 
E 98
E <.d+8+--99aauF F F F F =-0dCCC! ! DC!  ?#6668 8 768 :,D	BBB. . CB.B# # #5 5 5$ (((
 
 )(
]N ]N ]N ]N ]N ]N ]N ]N@5 5 5 5 5 5 5 5p&# &# &#R )*/x/11W<<ee!E E E E E    (   -.//" " 0/" 7899+ + :9+: : :(  ' ' '"   ./T/x/11W<<ee!E E E! !E E!*7 7 7, , ,- - -, , ,  #1 #1 #1L &ABB, , CB,  3447 7 547  ;<<7 7 =<7 &ABB, , CB, "?@@	> 	> A@	>	> 	> 	>	> 	> 	>	> 	> 	>	< 	< 	<< < <	> 	> 	>	> 	> 	>	> 	> 	>> > >&	> 	> 	>	> 	> 	>	> 	> 	>> > >$ "?@@
> 
> A@
>
> 
> 
>
> 
> 
>
> 
> 
>
> 
> 
>
> 
> 
> RSS& & TS& m44, , 54,A A A 
A 
A 
A  0  " %)8)15&/)B)B)D E E+ +E E+ 5!S/22, , 32, %)8)15&/)B)B)D E E= =E E=# # #
# 
# 
#  ) ) )I I I0 0 0I I I     " ) ) )@ @ @"0 0 00 0 0= = =; ; ;0 0 0. . .&, , ,( ( (   RSS. . TS.@ @ @&@ @ @"J J J J Jr3   