
    
3j1                     "   S SK J r   S SKrS SKrS SKrS SKrS SKJr  S SKrS SK	J
r
Jr  S SKrS SKrS SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJrJrJ r J!r!  S SKJ"r"  S SK#J$r$J%r%  \RL                  " SS	/S
9S 5       r'S r(\%" S/SS9S 5       r)\%" S/SS9S 5       r*\%" S/SS9S 5       r+\%" S/SS9S 5       r,\%" S/SS9S 5       r-\%" S/SS9S 5       r.\%" S/SS9S 5       r/\%" S/SS9S 5       r0\%" S/SS9S  5       r1\%" S!/SS9S" 5       r2\%" / S#QSS9S$ 5       r3\%" S%/SS9S& 5       r4S' r5S( r6S) r7S* r8S+ r9\Rt                  Rw                  S5      \$" 5       S, 5       5       r<S- r=S. r>\%" S//S0S1\R~                  " 5       S2:X  a  S OS3S49S5 5       r@S6 rA\%" S7/S0SS89S9 5       rB\$" 5       S: 5       rC\%" S;/S0S1S89S< 5       rD\%" S=/S0S1S89S> 5       rES? rFS@ rGSA rHSB rISC rJSD rK\%" SE/S0S1S89SF 5       rLSG rM\Rt                  Rw                  SH5      SI 5       rNSJ rO\R                  R                  SK/ SLQ5      SM 5       rR\Rt                  Rw                  SH5      SN 5       rS\Rt                  Rw                  SH5      SO 5       rT\%" SP/SS9SQ 5       rU\%" SR/S0SHS89SS 5       rVST rWSU rXSV rYSW rZ\$" 5       \R                  R                  SX0 SYSZ0/5      S[ 5       5       r[\R                  R                  S\S]S^S_SSS`/Sa-  Sb4ScSdSe/SSSf4/5      Sg 5       r\Sh r]Si r^Sj r_\R                  R                  SkSlSm/5      Sn 5       r`So raSp rbSq rcSr rdSs reSt rfSu rgSv rh\Rt                  Rw                  SH5      Sw 5       riSx rjSy rkSz rlS{ rmS| rnS} ro\%" S~/S0SS89S 5       rp\$" 5       S 5       rqS rr\R                  R                  SSSS//5      \$" 5       S 5       5       rs\$" / SQS9S 5       rtS ruS rv\R                  R                  S/ SQ5      S 5       rwS rxg)    )datetimeN)SimpleNamespace)assert_array_equalassert_array_almost_equal)
CollectionLineCollectionEventCollectionPolyCollection)FillBetweenPolyCollection)check_figures_equalimage_comparison
pcolormeshpcolor)paramsc                     U R                   $ N)param)requests    [/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_collections.pypcfuncr      s    ==    c                  |   [         R                  " / SQ5      n [         R                  " / SQ5      nSnSnSnSn/ SQnSnS	n[        U UUUUUUUS
9n	[        R                  " 5       u  pUR                  U	5        UR                  S5        U UUUUUUUUS.	nUR                  SS5        UR                  SS5        XU4$ )z,Generate the initial collection and plot it.)              ?       @      @g      @g       @g      *@g      5@)g      A@g     K@g     @V@
horizontal         ?   r   r   r   r   solidT)orientation
lineoffset
linelength	linewidthcolor	linestyleantialiasedzEventCollection: default)		positionsextra_positionsr#   r$   r%   r&   r'   r(   r)      r   )	nparrayr	   pltsubplotsadd_collection	set_titleset_xlimset_ylim)r*   r+   r#   r$   r%   r&   r'   r(   r)   collfigaxpropss                r   generate_EventCollection_plotr:      s    ;<Ihh/OKJJIEIK9'2&0&0%.!&%.'2D llnGCdLL+,# /'%%##'	E KKBKK1U?r   z!EventCollection_plot__default.pngmpl20)stylec                  <   [        5       u  pn[        UUS   US   US   US   5        [        R                  R	                  US   UR                  5       5        US   UR                  5       :X  d   eUR                  5       (       d   eUS   UR                  5       :X  d   eUS   UR                  5       :X  d   eUR                  5       S/:X  d   eUR                  5       /UR                  5       Q H%  n[        R                  R	                  X2S   5        M'     g )Nr*   r%   r$   r#   r   Nr'   )r:   check_segmentsr.   testingr   get_positionsget_orientationis_horizontalget_linelengthget_lineoffsetget_linestyle	get_color
get_colors)_r6   r9   r'   s       r    test__EventCollection__get_propsrJ   E   s   24NAU4%&&'	) JJ!!%"4d6H6H6JK4#7#7#9999$"5"5"7777$"5"5"7777I;....."7T__%67


%%e7^< 8r   z'EventCollection_plot__set_positions.pngc                  J   [        5       u  pn[        R                  " US   US   /5      nUR                  U5        [        R                  R                  X1R                  5       5        [        XUS   US   US   5        U R                  S5        U R                  SS5        g )	Nr*   r+   r%   r$   r#   zEventCollection: set_positionsr,   Z   )
r:   r.   hstackset_positionsr@   r   rA   r?   r3   r4   spltr6   r9   new_positionss       r   $test__EventCollection__set_positionsrR   _   s    57DIIu[159J3KLMM}%JJ!!-1C1C1EF4&&') 	NN34MM"br   z'EventCollection_plot__add_positions.pngc                     [        5       u  pn[        R                  " US   US   S   /5      nUR                  5         UR	                  US   S   5        UR                  5         [        R
                  R                  X1R                  5       5        [        UUUS   US   US   5        U R                  S5        U R                  SS	5        g )
Nr*   r+   r   r%   r$   r#   zEventCollection: add_positionsr,   #   )r:   r.   rM   switch_orientationadd_positionsr@   r   rA   r?   r3   r4   rO   s       r   $test__EventCollection__add_positionsrW   m   s    57DIIu[1$%67:< =Mu./23JJ!!-1C1C1EF4 &&'	)
 	NN34MM"br   z*EventCollection_plot__append_positions.pngc                  ^   [        5       u  pn[        R                  " US   US   S   /5      nUR                  US   S   5        [        R                  R                  X1R                  5       5        [        UUUS   US   US   5        U R                  S5        U R                  SS	5        g )
Nr*   r+   r    r%   r$   r#   z!EventCollection: append_positionsr,   rL   )
r:   r.   rM   append_positionsr@   r   rA   r?   r3   r4   rO   s       r   'test__EventCollection__append_positionsrZ      s    57DIIu[1$%67:< =M% 12156JJ!!-1C1C1EF4 &&'	)
 	NN67MM"br   z*EventCollection_plot__extend_positions.pngc                  ^   [        5       u  pn[        R                  " US   US   SS  /5      nUR                  US   SS  5        [        R                  R                  X1R                  5       5        [        UUUS   US   US   5        U R                  S5        U R                  SS	5        g )
Nr*   r+   r   r%   r$   r#   z!EventCollection: extend_positionsr,   rL   )
r:   r.   rM   extend_positionsr@   r   rA   r?   r3   r4   rO   s       r   'test__EventCollection__extend_positionsr]      s    57DIIu[1$%67;= >M% 121267JJ!!-1C1C1EF4 &&'	)
 	NN67MM"br   z,EventCollection_plot__switch_orientation.pngc                  N   [        5       u  pnSnUR                  5         X1R                  5       :X  d   eUR                  5       (       a   eUR	                  5       n[        UUUS   US   U5        U R                  S5        U R                  SS5        U R                  SS5        g )	Nverticalr%   r$   z#EventCollection: switch_orientationr,   r-   r   r    )	r:   rU   rB   rC   rA   r?   r3   r5   r4   )rP   r6   r9   new_orientationrQ   s        r   )test__EventCollection__switch_orientationra      s    57D O224444!!####&&(M4 &&9 	NN89MM"bMM!Qr   z0EventCollection_plot__switch_orientation__2x.pngc                  v   [        5       u  pnUR                  5         UR                  5         UR                  5       nUS   UR                  5       :X  d   eUR	                  5       (       d   e[
        R                  R                  US   U5        [        UUUS   US   US   5        U R                  S5        g)zW
Check that calling switch_orientation twice sets the orientation back to
the default.
r#   r*   r%   r$   z&EventCollection: switch_orientation 2xN)
r:   rU   rA   rB   rC   r.   r@   r   r?   r3   rO   s       r   ,test__EventCollection__switch_orientation_2xrc      s     67D&&(M4#7#7#9999JJ!!%"4mD4 &&'	)
 	NN;<r   z)EventCollection_plot__set_orientation.pngc                  6   [        5       u  pnSnUR                  U5        X1R                  5       :X  d   eUR                  5       (       a   e[	        UUS   US   US   U5        U R                  S5        U R                  SS5        U R                  SS	5        g )
Nr_   r*   r%   r$   z EventCollection: set_orientationr,   r-   r   r    )r:   set_orientationrB   rC   r?   r3   r5   r4   )rP   r6   r9   r`   s       r   &test__EventCollection__set_orientationrf      s    57D O)224444!!####4%&&"	$
 	NN56MM"bMM!Qr   z(EventCollection_plot__set_linelength.pngc                      [        5       u  pnSnUR                  U5        X1R                  5       :X  d   e[        UUS   UUS   US   5        U R	                  S5        U R                  SS5        g )N   r*   r$   r#   zEventCollection: set_linelengthi   )r:   set_linelengthrD   r?   r3   r5   )rP   r6   r9   new_linelengths       r   %test__EventCollection__set_linelengthrl      sy    57DN'0022224%!&'	)
 	NN45MM#rr   z(EventCollection_plot__set_lineoffset.pngc                      [        5       u  pnSnUR                  U5        X1R                  5       :X  d   e[        UUS   US   UUS   5        U R	                  S5        U R                  SS5        g )Ng      r*   r%   r#   zEventCollection: set_lineoffseti)r:   set_lineoffsetrE   r?   r3   r5   )rP   r6   r9   new_lineoffsets       r   %test__EventCollection__set_lineoffsetrq      sy    57DN'0022224%&!'	)
 	NN45MM"br   )'EventCollection_plot__set_linestyle.pngrr   z'EventCollection_plot__set_linewidth.pngc                      SSSSS/4/4SSSSS/4/4S4 HV  u  pn[        5       u  p4nUR                  " S	0 X0D6  [        R                  " X@5      U:X  d   eUR	                  SU  35        MX     g )
Nr(   dashedr   g@皙	@)r   )g@g?)r&      rv   zEventCollection: set_ )r:   setr0   getpr3   )propvalueexpectedrP   r6   rI   s         r   test__EventCollection__set_propr}      s     (a#s_$56/Qc
O+<=	"X 67A!D=!xx#x///.tf56"r   z#EventCollection_plot__set_color.pngc                      [        5       u  pn[        R                  " / SQ5      nUR                  U5        UR	                  5       /UR                  5       Q H"  n[        R                  R                  XC5        M$     U R                  S5        g )N)r   r   r   r   zEventCollection: set_color)	r:   r.   r/   	set_colorrG   rH   r@   r   r3   )rP   r6   rI   	new_colorr'   s        r    test__EventCollection__set_colorr     sg    13MD&INN9.."7T__%67


%%e7 8NN/0r   c                 x   U R                  5       nUR                  5       S:X  d  UR                  5       S:X  d  Uc  SnSnO$UR                  5       S:X  a  SnSnO[        S5      e[        U5       HG  u  pU	SU4   X2S-  -   :X  d   eU	SU4   X2S-  -
  :X  d   eU	SU4   X   :X  d   eU	SU4   X   :X  a  MG   e   g)	zd
Test helper checking that all values in the segment are correct, given a
particular set of inputs.
r   noneNr   r   r_   z.orientation must be 'horizontal' or 'vertical'r    )get_segmentslower
ValueError	enumerate)
r6   r*   r%   r$   r#   segmentspos1pos2isegments
             r   r?   r?     s    
   "H|+  "f,0C				
	*IJJ  )
q$w:Q#>>>>q$w:Q#>>>>q$w9<///q$w9<///	 *r   c                  L   [         R                  " S5      R                  S5      n [        R                  " U [         R                  " S5      S9nUR                  S5      S:X  d   eUR                  [         R                  " S5      S-   5        UR                  S5      S:X  d   eg )N   )      r    r   )r/   r    gUUUUUU?rv   )r.   arangereshapemcollectionsr   norm	set_array)linesr6   s     r   test_collection_norm_autoscaler   *  sy    IIbM!!),E&&uBIIaLAD99Q<5   NN299Q<!#$99Q<5   r   c                      [         R                  " / 5      n U R                  [        R                  " 5       5      n[        UR                  5       [        R                  R                  5       R                  5       5        g r   )	r   PathCollectionget_datalimmtransformsIdentityTransformr   
get_pointsBboxnull)colcol_data_lims     r   test_null_collection_datalimr   4  sW    

%
%b
)C??;#@#@#BCL|..0"'',,.99;=r   c                  z   [         R                  " 5       n [        R                  " [        R
                  " SS/5      /5      nU R                  U5        UR                  [        R                  " 5       5      n[        UR                  5       [        R                  R                  5       R                  5       5        g )Nr   r   )r   r   )r0   axesr   r   mpathPathr2   r   r   r   r   r   r   r   )r8   r6   coll_data_lims      r   test_no_offsets_datalimr   ;  s     
B&&

FF3C(D'EFDd$$[%B%B%DEM}//1"'',,.99;=r   c                     [         R                  " 5         [         R                  " 5       n U R                  SS/SS/5        U R                  R
                  nU R                  / / 5        U R                  R
                  U:X  d   eg )Nr   r   )r0   figurer   scatterdataLimbounds)r8   r   s     r   test_add_collectionr   F  sc     JJL	BJJ1v1vZZFJJr2::&&&r   c                    / SQn/ SQn[         R                  " X#5      u  pEUR                  5       nUR                  5       nU R                  5       nUR	                  S5        UR                  S5        SUl        UR                  XE5        UR                  5       nUR	                  S5        UR                  S5        UR                  XESSS9  g )N)g+c>g`8F>gq[;u>gy7/>g9̗>gW!>g-I>g\p5>gdjD>gyK'?g~+=?gFEAL ?g|0j?gGKe?gލ=B?)r   皙?gK?gsh|??gS?g?r   gQ@g(\@g333333(@g      6@gC@g33333Q@logr   o )markerls)	r.   meshgridflattenr1   
set_xscale
set_yscalemarginsr   plot)fig_testfig_refx_valsy_valsxyax_testax_refs           r   test_collection_log_datalimr   Q  s    JFF ;;v&DA			A			A!GuuGOOOAF
e
e
KKSRK(r   c                  X   [         R                  " 5       n [        R                  " S5      [        R                  " S5      p![        R                  " SSS5      R                  SS5      =p4[         R                  " XX45      nUR                  U R                  5      R                  S:X  d   e[         R                  " 5         [         R                  " 5       n [        R                  " SSS5      n[        R                  " SS	S5      n[        R                  " X!5      u  p![        R                  " 5       R                  S
S5      U R                  -   n[         R                  " X[        R                  " U5      [        R                   " U5      US9  U R"                  R                  S:X  d   eg )N   
   r   P   )r   r   g      @g      "@ri   r          	transform)g      4@g      >@g      .@g      @)r0   r   r.   r   linspacer   quiverr   	transDatar   r   r   r   Affine2D	translatesincosr   )r8   r   r   uvqtranss          r   test_quiver_limitsr   k  s   	B99Q<2qKK2r"**2q11A

1A==&--1AAAAJJL	B
BBA
B2A;;qDA  ",,R4r||CEJJqRVVAYq	U;:: 7777r   c                     [         R                  " 5       n [        R                  " SSS5      n[        R                  " SSS5      n[        R                  " X!5      u  p![
        R                  " 5       R                  SS5      U R                  -   n[         R                  " X[        R                  " U5      [        R                  " U5      US9  [        U R                  R                  S	S
S9  g )Nr   r   ri   r   r   r   r   r   )ri      rh      r   decimal)r0   r   r.   r   r   r   r   r   r   barbsr   r   r   r   r   )r8   r   r   r   s       r   test_barb_limitsr   |  s    	B
BBA
B2A;;qDA  ",,R4r||CEIIaBFF1IrvvayE: bjj//&')r   z EllipseCollection_test_image.pngT_classic_testx86_64g/$?)remove_textr<   tolc            
         [         R                  " 5       u  p[        R                  " S5      n[        R                  " S5      n[        R                  " X#5      u  pE[        R
                  " UR                  5       UR                  5       45      R                  nXBS   -  nXSS   -  n[        R                  " U5      S-  n	[        R                  " XxU	SXaR                  SS9n
UR                  U
5        g )Nr   r   r,   ri   r   r   )unitsoffsetsoffset_transform
facecolors)r0   r1   r.   r   r   vstackravelT	ones_liker   EllipseCollectionr   r2   )r7   r8   r   r   XYXYwwhhaaecs              r   test_EllipseCollectionr     s    
 llnGC
		!A
		!A;;qDA	AGGIqwwy)	*	,	,B	
rUB	
rUB	b	B	B		'	'
#rLL
B br   c            	         [         R                  R                  S5      n SnSnSnU R                  S5      S-  n[        R                  " 5       u  pV[
        R                  " UUUUSUR                  S9n[        UR                  [         R                  " U5      R                  5       S	-  5        [        UR                  [         R                  " U5      R                  5       S	-  5        [        UR                  [         R                  " U5      R                  5       5        [        UR                  5       U5        [        UR!                  5       U5        [        UR#                  5       U5        UR%                  U5        UR'                  S
S5        UR)                  S
S5        U R                  S5      S-  nU R                  S5      S-  n	U R                  S5      S-  n
UR+                  XU
S9  [        UR                  5       UR                  5       5        [        UR!                  5       U	R                  5       5        [        UR#                  5       U
R                  5       5        g )Nr   )r    )r   )-   )r   r    r   r   )widthsheightsanglesr   r   r   r   r      r    r      )r   r   r   )r.   randomdefault_rngr0   r1   r   r   r   r   _widthsr/   r   _heights_anglesdeg2rad
get_widthsget_heights
get_anglesr2   r4   r5   rx   )rngr   r   r   r   r7   r8   r   
new_widthsnew_heights
new_angless              r   $test_EllipseCollection_setter_getterr    s   
))


"CFGFjj!B&GllnGC		'	'

B bjj"((6*:*@*@*BS*HIbkk288G+<+B+B+Ds+JKbjj"**V*<*B*B*DEbmmov6bnn.8bmmov6bKKBKKBG$q(J**W%)KG$s*JFF**FEbmmoz/?/?/ABbnn.0A0A0CDbmmoz/?/?/ABr   zpolycollection_close.png)r   r<   c                     SSK Jn   S[        R                  S'   SS/SS/SS/SS//SS/SS/SS/SS//SS/SS/S	S/SS//SS/SS/S	S/S	S///n[        R                  " 5       nUR                  U " U5      5      n/ S
Qn[        [        S5      5      n[        R                  " U[        U5      -  SS9nUR                  S5        / n/ n[        XT5       HA  u  pUR                  U	/[        U5      -  5        UR                  U
/[        U5      -  5        MC     UR                  U5        UR                  XgSS9  UR!                  SS5        UR#                  SS5        UR%                  SS5        g )Nr   )Axes3DTzaxes3d.automarginr   r   r   r         @)rgbr   krv         ?r&   gffffff?r   )zszdirr   r   )mpl_toolkits.mplot3dr  r0   rcParamsr   add_axeslistranger   r
   len	set_alphazipextendr   add_collection3d
set_xlim3d
set_zlim3d
set_ylim3d)r  	vertsQuadr7   r8   colorszpospolyr  cszcs              r   test_polycollection_closer-    s   +(,CLL$% bB8b"XBx0
bB8b"XBx0
bB8b"XBx0
bB8b"XBx0	2I **,C	fSk	"B&Fa>D&&CI/DNN3 
B	BD!
		1#I&'
		1#I&' " 	NN2#. MM!QMM!QMM!Qr   c                    [         R                  " [        [        R                  " [         R
                  " SSS5      [         R
                  " SSS5      [         R
                  " SSS5      5      5      5      R                  u  p#nX#-   nU R                  SSS9nUR                  X#XESSS	9nU R                  R                  5         UR                  S
5        UR                  SSS9nUR                  X#XESS
S	9  g )Nr   rv   r   o   3d)
projection(   jet)r,  scmapviridis)r.   r/   r  	itertoolsproductr   r   add_subplotr   canvasdrawset_cmap)	r   r   r   r   r+  r,  r   sc_testr   s	            r   test_scalarmap_change_cmapr>    s     hhtI--
		!Q
		!Q
		!Q   	
	 A!
 	
A ""34"8GooaAbuo=GOOY    6F
NN12IN6r   z regularpolycollection_rotate.pngc            	         [         R                  S S2S S24   u  p[         R                  " U R                  5       UR                  5       /5      n[         R                  " SS[         R
                  -  [        U5      5      n[        R                  " 5       u  pE[        X#5       H9  u  pg[        R                  " SSUU/UR                  S9nUR                  U5        M;     g )Nr   r   r    r   )d   )sizesrotationr   r   )r.   mgrid	transposer   r   pir  r0   r1   r   r   RegularPolyCollectionr   r2   )	xxyy	xy_points	rotationsr7   r8   xyalphar   s	            r   !test_regularpolycollection_rotaterM    s     XXcrc3B3hFBbjjlBJJL9:IAqwI7IllnGC.	00VeD2<<9 	#	 /r   zregularpolycollection_scale.pngc                       " S S[         R                  5      n [        R                  " 5       u  pS/n[        R
                  S-  /nU " XCUR                  S9nUR                  U5        UR                  / SQ5        g )Nc                   .   ^  \ rS rSrU 4S jrS rSrU =r$ ):test_regularpolycollection_scale.<locals>.SquareCollectioni  c                 L   > [         TU ]  " SS[        R                  S-  0UD6  g )NrB  r  )r   )super__init__r.   rE  )selfkwargs	__class__s     r   rS  Ctest_regularpolycollection_scale.<locals>.SquareCollection.__init__  s     G<r<V<r   c                 V   U R                   nSUR                  SS9R                  -  nX!R                  R                  -  UR
                  R                  -  nX!R                  R                  -  UR
                  R                  -  n[        R                  " 5       R                  X45      $ )z4Return transform scaling circle areas to data space.g      R@T)root)
r   
get_figuredpibboxwidthviewLimheightr   r   scale)rT  r8   
pts2pixelsscale_xscale_ys        r   get_transformHtest_regularpolycollection_scale.<locals>.SquareCollection.get_transform  s~    B4 8 < <<J 77==02::3C3CCG 77>>1BJJ4E4EEG'')//AAr   rw   )__name__
__module____qualname____firstlineno__rS  rd  __static_attributes____classcell__)rV  s   @r   SquareCollectionrP    s    	=	B 	Br   rl  r   r    )rA  r   r   )r,   r   r,   r   )	r   rF  r0   r1   r.   rE  r   r2   axis)rl  r7   r8   rK  circle_areassquaress         r    test_regularpolycollection_scalerp    si    
B<== B llnGC
BEEAI;LGGgGGNr   c                  "   [         R                  " 5       u  pUR                  S/S/S/SS9nU R                  [        R
                  " 5       U R                  S9  [        SSS9nUR                  U5      u  pEU(       d   e[        US	   S/5        g )
Nr   i  T)picker)r[  iE     )r   r   ind)
r0   r1   r   savefigioBytesIOr[  r   containsr   )r7   r8   r   mouse_eventfoundindicess         r   test_pickingr|  3  sx    llnGC
**aS1#vd*
3CKK

#''K*!C3/K\\+.NEL5wu~s+r   c                  6   [         R                  " S5      n U S S 2S 4   U S S S 24   -  n[        R                  " 5       u  p#UR	                  U5      nUR                  5         Su  pVUR                  5       R                  XV45      u  p[        XVXS9nUR                  U5      u  pU	(       d   e[        U
S   S/5        Su  pVUR                  5       R                  XV45      u  p[        XVXS9nUR                  U5      u  pU	(       d   e[        U
S   S/5        g )Nr   r   r   xdataydatar   r   rt  r         ?r  rv   )r.   r   r0   r1   r   draw_without_renderingrd  r   r   rx  r   )r   r   r7   r8   meshr  r  r   ry  rz  r{  s              r   test_quadmesh_containsr  =  s    
		!A	!T'
QtQwZAllnGC==D LE))5.9DA!aEK]];/NEL5wu~s+LE))5.9DA!aEK]];/NEL5wu~s+r   c                  H   SS/SS//n SS/SS//n[         R                  " 5       u  p#UR                  XS//5      nUR                  5         / SQnU HM  nUu  pxn	UR	                  5       R                  Xx45      u  p[        XxXS9n
UR                  U
5      u  pXL a  MM   e   g )Nr   r,   r   ))      r  T)r   r  F)r   r  T)r   g      пTr  )r0   r1   r   r  rd  r   r   rx  )r   r   r7   r8   r  pointspointr  r  r|   ry  rz  r{  s                r   test_quadmesh_contains_concaver  S  s    
R1a&A
Q!RAllnGC==u%D F
 !&h!!#--un=%E!I{3    r   c                     [         R                  " S5      n U S S 2S 4   U S S S 24   -  n[        R                  " 5       u  p#UR	                  U5      nS Ul        UR                  5         Su  pVUR                  5       R                  XV45      u  p[        XVXS9nUR                  U5      b   eUR                  [         R                  " UR                  5      5        [        UR                  U5      S/5        g )Nr   r~  r  r   )r.   r   r0   r1   r   _Ar  rd  r   r   get_cursor_datar   onesshaper   )	r   r   r7   r8   r  r  r  r   ry  s	            r   test_quadmesh_cursor_datar  h  s    
		!A	!T'
QtQwZAllnGC==DDG LE))5.9DA!aEK,444 	NN277177#$t++K81#>r   c                  d   / SQn [         R                  " 5       u  pUR                  X [        R                  " S5      5      nUR                  5         Su  pEUR                  5       R                  XE45      u  p[        XEXS9n[        UR                  U5      [        R                  " S5      5        g )N)r   r    r   r    r   r   r  r  	   )r0   r1   r   r.   r  r  rd  r   r   r   r  )r   r7   r8   r  r  r  r   ry  s           r   )test_quadmesh_cursor_data_multiple_pointsr  |  s    AllnGC==rwwv/D LE))5.9DA!aEKt++K8"''!*Er   c                  j    [         R                  " / SQ/ SQSSS/4S9  [         R                  " 5         g )Nr   r   r    r   r   )r(   )r0   r   r;  rw   r   r   test_linestyle_single_dashesr    s#    KK	9b"X?HHJr   zsize_in_xy.pngc            	          [         R                  " 5       u  pSu  p#nSnSS/n[        R                  " X#USXQR                  S9nUR                  U5        UR                  SS5        UR                  SS5        g )N)r   r   r   r   r  )rh   rh   rK  )r   r   r   r   r   )r0   r1   r   r   r   r2   r4   r5   )r7   r8   r   r   r   coordses          r   test_size_in_xyr    sr    llnGC-FVF!F&&t	7A aKK2KK2r   c                     / SQnU R                  / SQUS9=p#U R                  / SQUS9nU R                  / SQUS9nU R                  / SQUS9n[        US9  [        US9  [        US	9  [        US
9  [        US9  g )N)   r      )redbluegreen)indexr   r    r   )r"   rt   dashdot)TFT)
edgecolors)r   )
linewidths)
linestyles)antialiaseds)Seriesr   )pdr  r   fclwr   r   s          r   test_pandas_indexingr    s     Eii0i>>B	9E	*B	1	?B	&e	4B""""Br   defaultc                     [         R                  " / 5      n U R                  SS/5        U R                  / SQ5        U R	                  5       S/S-  :X  d   eU R                  5       / SQS-  :X  d   eU R                  / SQ5        U R	                  5       S/S-  :X  d   eU R                  5       / SQ:H  R                  5       (       d   eg )N-r  r>   r   r    )r  r  r  r   )r   r   set_linestylesset_linewidthsget_linestylesget_linewidthsallr   s    r   test_lslw_bcastr    s    

%
%b
)CSz"y!I;?2229q=000'I;?222 I-224444r   c                      [        5       n [        R                  " [        SS9   U R	                  S5        S S S 5        g ! , (       d  f       g = f)Nz"Do not know how to convert 'fuzzy'matchfuzzy)r   pytestraisesr   set_linestyler,  s    r   test_set_wrong_linestyler    s1    A	z)M	N	  
O	N	Ns	   ?
Ar   )r    r   c                     [         R                  " S5        [         R                  " 5       u  pUR                  SS/SS/U S9  UR	                  [
        R                  " 5       5        g )Npdfr   r   )r   )r0   switch_backendr1   r   ru  rv  rw  )r   r7   r8   s      r    test_scatter_empty_linestyle_pdfr    sK    
 ullnGCJJ1v1v"J%KK

r   c                      [         R                  " / 5      n U R                  5       b   e[         R                  " / SS9n U R                  5       S:X  d   eU R                  S5        U R                  5       S:X  d   eg )Nround)capstylebutt)r   r   get_capstyleset_capstyler  s    r   test_capstyler    su    

%
%b
)C%%%

%
%b7
;C(((V'''r   c                      [         R                  " / 5      n U R                  5       b   e[         R                  " / SS9n U R                  5       S:X  d   eU R                  S5        U R                  5       S:X  d   eg )Nr  )	joinstylemiter)r   r   get_joinstyleset_joinstyler  s    r   test_joinstyler    su    

%
%b
)C&&&

%
%bG
<C')))g')))r   zcap_and_joinstyle.pngc                     [         R                  " 5       u  pUR                  SS/5        UR                  SS/5        [        R
                  " / SQ5      n[        R
                  " S/S/S//5      [        R
                  " / SQ/5      -   n[        R                  " S	5      nX$S S 2S S 2S
4'   X4S S 2S S 2S4'   [        U/ SQS9nUR                  S5        UR                  S5        UR                  U5        UR                  S5        g )Nr  r        @)r   r   r   r   r   r   )r   r   r   )r   r   r    r   r   )r   rh   ri   r  r  r  z2Line collection with customized caps and joinstyle)r0   r1   r4   r5   r.   r/   zerosr   r  r  r2   r3   )r7   r8   r   yssegsline_segmentss         r   test_cap_and_joinstyle_imager    s    llnGCKKsKKs
!A	C53%#'	(288_4E+F	FB88IDAqMAqM"4<@Mw'(m$LLEFr   zscatter_post_alpha.pngc                      [         R                  " 5       u  pUR                  [        S5      [        S5      [        S5      S9nUR	                  S5        g )Nrv   r  r   )r0   r1   r   r  r  )r7   r8   scs      r   test_scatter_post_alphar    s=     llnGC	E!HeAh%(	3BLLr   c                     [         R                  " S5      n U S-  n[        R                  " S5      u  nu  p4UR	                  X XS9nUR	                  X U S9nUR                  U5        [        R                  " 5         [        UR                  5       S S 2S4   U5        [        UR                  5       S S 2S4   U5        [        R                  " S5      u  nu  p4UR	                  X / SQUS9nUR	                  X SUS9n[        R                  " 5         [        UR                  5       S S 2S4   U5        [        UR                  5       S S 2S4   U5        [        R                  " S5      u  nu  p4UR	                  X / SQS	9nUR                  U5        UR	                  X SS	9nUR                  U5        [        R                  " 5         [        UR                  5       S S 2S4   U5        [        UR                  5       S S 2S4   U5        g )
Nrv   r    )r,  rL  r  r,   )r  r  r  r,  m)r'   rL  r  )r'   )	r.   r   r0   r1   r   r  r;  r   get_facecolors)r   rL  r7   ax0ax1sc0sc1s          r   test_scatter_alpha_arrayr    s   
		!AEEll1oOC#
++aa+
-C
++aa+
 CMM%HHJs))+ArE2E:s))+ArE2E:ll1oOC#
++a";5+
IC
++a#U+
3CHHJs))+ArE2E:s))+ArE2E:ll1oOC#
++a";+
<CMM%
++a#+
&CMM%HHJs))+ArE2E:s))+ArE2E:r   c            
         [         R                  R                  S5        [         R                  R                  SS5      u  p[         R                  R                  S5      n[         R                  R	                  SSSS9n[         R                  R	                  SSSS9n[
        R                  " 5       u  pEUR                  XX#SS	SS
9nUR                  SS9u  px[        U5      S:X  d   eU/ SQ:X  d   e[         R                  " U V	s/ s H  oR                  5       PM     sn	5      n
UR                  [         R                  " S5      S-  5      n[        X5        UR                  XxSS9nUR                  SS9u  p[        U5      S:X  d   eUR                  XSS9nUR                  SSSS9u  px[!        S U 5       5      (       d   e[!        S U 5       5      (       d   eUR                  XxSS9nUR                  SSSS S9u  pxU V	s/ s H  oR#                  5       PM     nn	[         R$                  " [         R                  " U[&        5      S-  5      n[)        UU5        UR                  XxSS9n[*        R,                  R/                  SS/ SQS9nUR                  US9u  nn[        U5      [        U5      :X  d   e/ S QnUR                  USSS!9u  nnU Vs/ s H  n['        U5      PM     snUSS  :X  d   eXUU4 H  nUR1                  U5        M     UR2                  R5                  5         g s  sn	f s  sn	f s  snf )"N!N,r    r   r   rv   )sizei,  r3  r   )r,  r4  r5  r   r  z{x:g})fmt)01234r   r   )locr  )numrA  r   r  )rz   rL  r'   c              3   F   #    U  H  oR                  5       S :H  v   M     g7f)r   N)	get_alpha.0lines     r   	<genexpr>6test_pathcollection_legend_elements.<locals>.<genexpr>2  s     514~~3&1   !c              3   F   #    U  H  oR                  5       S :H  v   M     g7f)r  N)get_markerfacecolorr  s     r   r  r  3  s     Aqt'')U2qr  z{x:.2f}c                     SU -  $ )Nr    rw   )r   s    r   <lambda>5test_pathcollection_legend_elements.<locals>.<lambda>7  s    QqSr   )rz   r  r  funcr   r   )r   r    r  r   rv   r   r   r   )nbinsmin_n_tickssteps)r,   r   g33333K@i  )r  rz   r  )r.   r   seedrandrandintr0   r1   r   legend_elementsr  r/   rG   r5  r   r   legendr  get_markersizesqrtfloatr   mpltickerMaxNLocator
add_artistr:  r;  )r   r   r,  r4  r7   r8   r  hlr  r'  colors2l1h2lab2l2l3actsizeslabeledsizesl4r  h5lab5levelsh6lab6s                             r   #test_pathcollection_legend_elementsr    s   IINN899>>!R DA
		rA
		!QR(A
		"c+AllnGC	AAsq	IB'*DAq6Q;;))))XXA6AD~~'A67Fggbiil1n%Gv'	1Q	B!!a!(HBr7a<<	2	#B7#UCDA5155555AqAAAAA	1Q	B7y#0  2DA234!$##%!H477288Au-12Lh5	1Q	B
**
 
 qc'B ! DC!!c!*HBr7c"gF!!f7!HHB"#dE!Hd#vabz111b"
a  JJOOC 7  5 $s   	L7L<Mc                      [         R                  " / SQ5      n [        U 5      n[         R                  R	                  U [         R                  " / SQ5      5        g )N)r   r    r   r   )r.   r/   r	   r@   r   )arrr6   s     r   test_EventCollection_nosortr"  L  s7    
((=
!C3DJJ!!#rxx'>?r   c                  4   [         R                  " S[         R                  S9R                  SSS5      n [	        U 5      n[	        [        U 5      5      n[        UR                  5      [        UR                  5      :X  d   e[        UR                  UR                  5       Hi  u  p4[         R                  " UR                  UR                  5      (       d   e[         R                  " UR                  UR                  5      (       a  Mi   e   [         R                  " S[        S9nU  Vs/ s H  n[        S U 5       5      PM     snUS S & [	        U5      n[        UR                  5      [        UR                  5      :X  d   e[        UR                  UR                  5       Hi  u  p8[         R                  " UR                  UR                  5      (       d   e[         R                  " UR                  UR                  5      (       a  Mi   e   g s  snf )Nr   dtyper   r   r    c              3   8   #    U  H  n[        U5      v   M     g 7fr   )tuple)r  r   s     r   r  2test_collection_set_verts_array.<locals>.<genexpr>]  s     0aE!HHas   )r.   r   doubler   r
   r  r  _pathsr   array_equal	_vertices_codesemptyobjectr'  )	vertscol_arrcol_listaplpverts_tupler   col_arr_tupleatps	            r   test_collection_set_verts_arrayr8  S  sx   IIb		*222q!<EU#Gd5k*Hw~~#hoo"6666gnnhoo6~~bllBLL9999~~bii3333 7 ((2V,K:?@%Qe0a00%@KN";/Mw~~#m&:&:";;;;w~~}';';<~~bllCMM::::~~bii4444 = As   ,HrU  stepprec                    [         R                  " SS5      n[         R                  " U5      nUS-   nUR                  5       R                  " X4U40 UD6  U R                  5       R                  " USS40 UD6nUR                  X4U5        g )Nr      皙?r,   g333333?)r.   r   r   r1   fill_betweenset_data)r   r   rU  tf1f2r6   s          r   *test_fill_between_poly_collection_set_datarC  e  sx     	ArA	B	cB##A288++Ar3A&ADMM!r   )t_directionrA  r  wheremsg)r+  NNNz't_direction must be 'x' or 'y', got 'z')r   N)r,   r   Nz'x' is not 1-dimensionalr   Fr   z0where size \(3\) does not match 'x' size \(\d+\)r   r   r    z5'y' has size \d+, but 'x1' has an unequal size of \d+c           	      B   [         R                  " SS5      nUc  [         R                  " U5      O[         R                  " U5      nUS-   nU(       a  UR                  " U6 n[
        R                  " [        US9   [        XXUS9  S S S 5        g ! , (       d  f       g = f)Nr   r<  r=  r  )rE  )	r.   r   r   asarrayr   r  r  r   r   )rD  rA  r  rE  rF  r@  rB  s          r   'test_fill_between_poly_collection_raiserI  r  so     	ArAjbjjnB	cBIIu	z	-!+"F 
.	-	-s   ;B
Bc                  X   / [        S5      Qn [        5       nUR                  U 5        [        R                  " [
        SS9   UR                  S5        S S S 5        SU S'   [        R                  " XR                  5       5      R                  5       (       d   eg ! , (       d  f       NM= f)Nr   z^Image data of dtyper  wrong_inputr   rv   )
r  r   r   r  r  	TypeErrorr.   	not_equal	get_arrayany)valsr,  s     r   test_collection_set_arrayrQ    s    U2Y<D 	AKK 
y(>	?	M" 
@ DG<<kkm,002222 
@	?s   B
B)c                  b   [         R                  " 5       u  pUR                  / SQ/ SQ5        [        R                  R                  UR                  R                  UR                  R                  4S5        UR                  R                  UR                  R                  p2/ SQnU Vs/ s H  n[        R                  " US/US//5      PM!     nn[        R                  " UR                  UR                  5      nUR!                  [#        XgS95        [        R                  R                  UR                  R                  UR                  R                  4S5        [        R                  R                  UR                  R                  UR                  R                  4X#45        g s  snf )	N)r    r   r   )皙?333333?r   )r    r   r   r    r   r   rv   r   r   r   )r   rv   )r0   r1   r   r.   r@   assert_allcloser   xminxmaxyminymaxr/   r   blended_transform_factoryr   	transAxesr2   r   )fr8   	data_ymin	data_ymaxr   xivertical_linesr   s           r   test_blended_collection_autolimrb    s   LLNEA GGI'JJ

A6J::??BJJOOy 	A=>?QrbhhQ"a12QN?11",,MEn^EF JJ

A6JJJ

A )57 @s   +&F,c                     [         R                  " 5       u  pUR                  SS5        [        R                  R                  UR                  5       SS/5        [        R                  R                  UR                  5       SS/5        g )Nr   gQgQ?)r0   r1   r   r.   r@   rV  get_ylimget_xlim)r7   r8   s     r   test_singleton_autolimrf    sY    llnGCJJq!JJr{{}udm<JJr{{}udm<r   ztransform, expected)r   )r  g      @)r\  )gffffff@ru   c                 B   [         R                  " 5       u  p#UR                  SS[        X05      S9  UR                  SS5        [        R
                  R                  UR                  5       U5        [        R
                  R                  UR                  5       U5        g )Nr   r   r   )	r0   r1   r   getattrr.   r@   rV  rd  re  )r   r|   r7   r8   s       r   test_autolim_with_zerosri    sj     llnGCJJq!wr5J6JJq!JJr{{}h7JJr{{}h7r   c                    [         R                  " S5      n[         R                  " S5      n[         R                  R                  S5      n[        R                  " 5       u  pE[        XP5      " XU5      n[        R                  " [        [        R                  " S5      S9   UR                  UR                  SS5      5        S S S 5        [         R                  " S5      R                  S	5      n[        R                  " [        [        R                  " S
5      S9   UR                  U5        S S S 5        [        R                  " [        [        R                  " S5      S9   UR                  UR                  5       5        S S S 5        [         R                  " S5      n[        R                  " [        [        R                  " S5      S9   UR                  U5        S S S 5        [         R                  " S5      n[        R                  " [        [        R                  " S5      S9   UR                  U5        S S S 5        [         R                  " S5      n[        R                  " [        [        R                  " S5      S9   UR                  U5        S S S 5        [         R                  " S5      n[         R                  " S5      n[         R                  R                  S5      n[        R                  " 5       u  pEUR                  XUSS9ng ! , (       d  f       GN[= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNs= f! , (       d  f       GN(= f! , (       d  f       N= f)Nr  r   )   r   zuFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (10, 7)r  r   rk  6   )r   r  ztFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (6, 9)zsFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (54,))r  r   r   zwFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (9, 6, 3))r  r   r   zwFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (9, 6, 4))rk  r   r    zxFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (7, 10, 2)gouraudshading)r.   r   r   r0   r1   rh  r  r  r   reescaper   r   r   r  r   )r   r   r   r+  r7   r8   r6   s          r   "test_quadmesh_set_array_validationrr    s   
		"A
		!A
		!AllnGC2qQ'D	zH*I 
J 	qyyQ'(
J
 			"f%A	zG*H 
I 	q
I 
zF*G 
H 	qwwy!
H 		A	zJ*K 
L 	q
L
 		A	zJ*K 
L 	q
L
 	
A	zK*L 
M 	q
M
 			"A
		!A
		!AllnGC==q)=4DM
J 
J
I 
I
H 
H
L 
L
L 
L
M 
MsH   ""LL*% L<M-M 
M2
L'*
L9<
M
M 
M/2
N c                     [         R                  " / SQ/ SQ5      u  pX-  S S2S S24   n[        R                  " XU5      nUR	                  5         UR                  5       SS 2S S 24   n[         R                  R                  U S:H  US:H  -  U 5      n [        R                  " XU5      nUR	                  5         [        UR                  5       5      S:X  d   e[        XER                  5       5        [         R                  R                  U S:H  US:H  -  U5      n[        R                  " XU5      nUR	                  5         [        UR                  5       5      S:X  d   e[        XER                  5       5        [         R                  R                  U S S2S S24   S:H  US S2S S24   S:H  -  U5      n[        R                  " U5      nUR	                  5         [        UR                  5       5      S:X  d   e[        XER                  5       5        [         R                  " S5      R                  S5      nUR                  U5        UR	                  5         [        UR                  5       5      S:X  d   e[         R                  R                  US	5      nUR                  U5        UR	                  5         [        UR                  5       5      S
:X  d   eg )Nr  )r   r   r    r   r,   r   r   rv   r   )r   r    r    r   )r.   r   r0   r   update_scalarmappableget_facecolormamasked_wherer   r  	get_pathsr   r   r   r   masked_less)rG  rH  zzquadmeshquadmesh_fcpolymeshs         r   'test_polyquadmesh_masked_vertices_arrayr~    sd   [[L1FB
%"crc	B~~bb)H""$((*12q51K			R1Wq12	6Bzz""%H""$x!!#$))){$:$:$<= 
		R1Wq12	6Bzz""%H""$x!!#$))){$:$:$<= 
		RSbS\Q.2crc3B3h<13DEr	JBzz"~H""$x!!#$))){$:$:$<=
 
1		f	%Br""$x!!#$)))			2q	!Br""$x!!#$)))r   c                 :   / SQn/ SQn[         R                  " SS9n[         R                  " X5      u  pE[        [        U 5      " XEU5      n[         R
                  " UR                  UR                  /5      R                  n[        UR                  5       U5        g )Nr  )r    r   r   )r    r    )r  )	r.   r  r   rh  r0   stackr   r   get_coordinates)r   r   r   r+  rG  rH  r6   r  s           r   test_quadmesh_get_coordinatesr    sr    AA
fA[[FB3*D XXrttRTTl#%%Ft++-v6r   c                  b   [         R                  " S5      n [         R                  " S5      n[         R                  " S5      R                  S5      n[        R                  " 5       u  p4UR                  X[         R                  " UR                  5      5      nUR                  U5        UR                  R                  5         [         R                  " UR                  5       U5      (       d   eUR                  [         R                  " S5      5        UR                  R                  5         [         R                  " UR                  5       [         R                  " S5      5      (       d   e[         R                  " S5      R                  S5      n[        R                  " 5       u  p4UR                  X[         R                  " UR                  5      SS9nUR                  U5        UR                  R                  5         [         R                  " UR                  5       U5      (       d   eUR                  [         R                  " S5      5        UR                  R                  5         [         R                  " UR                  5       [         R                  " S5      5      (       d   eg )Nr   r  r  r<  )r   r   rm  rn  )r.   r   r   r0   r1   r   r  r  r   r:  r;  r+  rN  )r   r   r+  r7   r8   r6   s         r   test_quadmesh_set_arrayr  *  s   
		!A
		!A
		!V$AllnGC==rwwqww/0DNN1JJOO>>$..*A.... 	NN2771:JJOO>>$..*BGGAJ7777
		"f%AllnGC==rwwqww/=CDNN1JJOO>>$..*A.... 	NN2772;JJOO>>$..*BGGBK8888r   c                 :   [         R                  " 5       u  p[        R                  S   n[        R                  R                  SSS9n[        X 5      " S//X4S9nUR                  R                  5         [        R                  " UR                  5       SS S 24   U" U" S5      5      5      (       d   eSu  Ul        Ul        UR                  R                  5         [        R                  " UR                  5       SS S 24   U" U" S5      5      5      (       d   eg )Nplasmar   r   )vminvmax)r5  r   )r   r    )r0   r1   r  	colormapsr'  	Normalizerh  r:  r;  r.   r+  r  r  r  )r   r7   r8   r5  r   r6   s         r   test_quadmesh_vmin_vmaxr  H  s    llnGC=="D::QQ/D2u4;DJJOO>>$--/15tDG}EEEE  DItyJJOO>>$--/15tDG}EEEEr   c                 ~   [         R                  " S5      n[         R                  " S5      n[         R                  " S5      R                  S5      nX3R                  5       -  nUR	                  5       n[
        R                  " S5      u  nu  px[        Xp5      " XX4S9n	[        Xp5      " XU5      n
U
R                  U5        [
        R                  " 5         [        U	R                  5       S S 2S4   U5        [        U
R                  5       S S 2S4   U5        [
        R                  " S5      u  nu  px[        Xp5      " XX4S9n	[        X5      " XU5      n
U
R                  U5        [
        R                  " 5         [        U	R                  5       S S 2S4   U5        [        U
R                  5       S S 2S4   U5        g )Nr   r  r  r    )rL  r,   )r.   r   r   maxr   r0   r1   rh  r  r;  r   r  )r   r   r   r+  rL  
alpha_flatr7   r  r  coll1coll2s              r   test_quadmesh_alpha_arrayr  X  sP   
		!A
		!A
		!V$AKEJll1oOC#C q6EC q)E	OOEHHJu++-ae4jAu++-ae4jAll1oOC#C q6EC q)E	OOEHHJu++-ae4jAu++-ae4jAr   c                 F   [         R                  " 5       u  p[        X 5      " [        R                  " S5      R                  S5      5      n[        R                  " [        SS9   UR                  SS/5        UR                  5         S S S 5        g ! , (       d  f       g = f)Nr   )r   r   z^Data array shaper  r   rT  )r0   r1   rh  r.   r   r   r  r  r   r  rt  )r   r7   r8   pcs       r   test_alpha_validationr  p  sh    llnGC		RYYr]226:	;B	z)<	=
c3Z 
  " 
>	=	=s   %$B
B c                      [         R                  R                  S5        [         R                  R                  S5      n [         R                  R                  S5      nS[         R                  R                  S5      -
  nSU-  n/ SQn[        R                  " 5       u  pVUR                  XUS9nUR                  SUS S	9u  pU V
s/ s H  oR                  5       PM     nn
U V
s/ s H  n
SU
S
-  -  PM     nn
[        XSS9  gs  sn
f s  sn
f )zl
Ensure legend markers scale appropriately when label and size are
inversely related.
Here label = 5 / size
r  2   r   rv   )r=  rS  rT  g?r4  rA  c                     SU -  $ )Nrv   rw   r  s    r   r  =test_legend_inverse_size_label_relationship.<locals>.<lambda>  s    QUr   )rz   r  r  r    r   N)	r.   r   r  r0   r1   r   r  r  r   )r   r   CSlegend_sizesr7   r8   r  handleslabelsr   handle_sizess               r   +test_legend_inverse_size_label_relationshipr  y  s     IINN8
		A
		A	BIIR  A	AA'LllnGC	AA	B((? ) OG
 1881$$&L8&23lA1HlL3l!D 93s   D'Dc                    [        [        U 5      n [        R                  " S5      R	                  SS5      nU " USSS9nUR                  5         [        R                  " UR                  5       5      nUR                  5       " UR                  UR                  5       5      5      n[        R                  " UR                  5       S5      (       d   eU " U5      nUR                  S5        UR                  S5        UR                  5         [        R                  " UR!                  5       S5      (       d   e[        R                  " UR                  5       / SQ/5      (       d   eUR#                  S5        UR                  5         [        R                  " UR                  5       / S	Q/5      (       d   eUR#                  S 5        UR                  5         [        R                  " UR                  5       / SQ/5      (       d   eUR                  S 5        UR                  5         [        R$                  " UR                  5       U5      (       d   eUR                  S 5        UR                  5         [        R$                  " UR!                  5       U5      (       d   e[        R                  " UR                  5       S5      (       d   eUR'                  S 5        UR                  5         [        R                  " UR                  5       S5      (       d   e[        R                  " UR!                  5       U5      (       d   eUR'                  U5        UR                  5         [        R$                  " UR!                  5       U5      (       d   e[        R                  " UR                  5       S5      (       d   eU " US
SS9nUR                  5         [        R$                  " UR!                  5       U5      (       d   e[        R                  " UR                  5       / SQ/5      (       d   eU " US
[        R(                  " S5      S9nUR                  5         [        R$                  " UR!                  5       U5      (       d   e[        R                  " UR                  5       / SQ/5      (       d   eUR'                  S 5        UR                  5         [        R                  " UR!                  5       [        R(                  " S5      5      (       d   e[        R                  " UR                  5       / SQ/5      (       d   eU " US
[        R(                  " S5      S9nUR                  5         [        R$                  " UR!                  5       U5      (       d   e[        R                  " UR                  5       / SQ/5      (       d   eUR'                  S 5        UR                  5         [        R                  " UR!                  5       [        R(                  " S5      5      (       d   e[        R                  " UR                  5       / SQ/5      (       d   eg )Nr   r   r   r  r   )r  r   r!   r   )r   r   r   r   )r   r   r   )r   r   r   )r   r   )r   r   )rh  r0   r.   r   r   rt  mcolorsto_rgba_array_get_default_facecolorget_cmapr   r   
same_colorget_edgecolorset_facecolorset_edgecolorru  r  r+  r   r  )r   r+  r  face_defaultmappeds        r   test_color_logicr    s   S&!F
		"a#A	e	7B(()B)B)DEL[[]2771779-.Fb..0%8888	BVUb..0&9999b..0<.AAAALLb..0>2BCCCCLLb..0<.AAAAT>>"**,f5555T>>"**,f5555b..0&9999LLb..0&9999b..0,????LLO>>"**,f5555b..0&9999	iI	>B>>"**,f5555b..0<.AAAA	iBGGG4D	EB>>"**,f5555b..0<.AAAALLb..0"'''2BCCCCb..0<.AAAA	iBGGG4D	EB>>"**,f5555b..0<.AAAALLb..0"'''2BCCCCb..0<.AAAAr   c                     [        S SSS/ SQS9n U R                  5       S   S:X  d   e[        R                  " U R	                  5       S5      (       d   eU R                  5       S:X  d   e[        R                  " U R                  5       / SQ/5      (       d   e[        S S S9n [        R                  " U R                  5       S5      (       d   eg )	Ng@r  r   )r   r   r   r   )r&   	edgecolorzorderr   r   )	facecolorr   )r   get_linewidthr  r  r  
get_zorderru  )lcs    r   test_LineCollection_argsr    s    	s \
;Ba C'''b..0#6666==?ab..0<.AAAA 
	-Bb..0&9999r   c                    [         R                  " S5      R                  SS5      n[        [        U 5      " U5      nUR                  UR                  5       5        UR                  5         UR                  U5        UR                  5         [         R                  " S[         R                  S9R                  SSS5      nUR                  U5        UR                  5         g )Nr   r   r   $   r$  )	r.   r   r   rh  r0   r   r   rt  uint8)r   r+  r  s      r   test_array_dimensionsr    s    
		"a#A	f	a	 BLLLLO
		"BHH%--aA6ALLOr   c                      [         R                  " [         R                  " SSS5      S5      R                  n [	        U /5      nUR                  5       u  n[         R                  " X:H  5      (       d   eg )Nr   r      )r    r   )r.   tiler   r   r   r   r  )r   r  readbacks      r   test_get_segmentsr    sW    wwr{{1a-v688H	
	#B!IH66(&''''r   c                     [         R                  " 5       n S/n[        R                  " US9n[        R                  " USS9n[        R                  " US9nUR	                  S5        UR                  U 5      R                  nUR                  U 5      R                  nUR                  U 5      R                  nXV:w  d   eXg:X  d   eg )Nr    )rA  r  )rA  r   )r   r   r   CircleCollectionset_offsetsr   r   )identityrA  r   initlatenull_boundsinit_boundslate_boundss           r   test_set_offsets_later    s    ,,.HCE((u5D((uhGD((u5DX ""8,33K""8,33K""8,33K %%%%%%r   c                     [         R                  " 5       R                  SS5      n [        R                  " U S9n[        R                  " 5       nUR                  U 5        XR                  5       s=:X  a  UR                  5       :X  d   e   eg )Nr    )r   )r   r   skewr   r   set_offset_transformget_offset_transform)r  r  r  s      r   test_set_offset_transformr    sr    !&&q!,D""D9D""$Dd#,,.M$2K2K2MMMMMMr   c                     [         R                  " SSS5      n [         R                  " U 5      nU [         R                  " SS5      -  [         R                  " S5      -   n[
        R                  " X!5      nUR                  5       nUR                  [        [        X!5      5      5        [         R                  R                  XCR                  5       5        [
        R                  " 5       u  pVUR                  X5      nUR                  5       nUR                  [        [        X5      5      5        [         R                  R                  XCR                  5       5        g )Nr   r   rv   r   r  z
2021-11-29)r.   r   r   timedelta64
datetime64r0   r   get_offsetsr  r  r   r@   rV  r1   )r   r   dr  off0r7   r8   s          r   test_set_offset_unitsr     s     	Ar1A
q	A	BNN2s##bmmL&AAA	Q	B>>DNN4A	?#JJt^^%56 llnGC	A	B>>DNN4A	?#JJt^^%56r   ztest_check_masked_offsets.pngc                  2   [        SSSSSS5      [        SSSSSS5      [        SSSSSS5      [        SSSSSS	5      [        SSSSSS
5      /n [        R                  R                  / SQ/ SQS9n[        R
                  " 5       u  p#UR                  X5        g )Ni  r   rh   r   1   4   5   rl  7   8   rU  )r   r   r   r   r   mask)r   r.   rv  r/   r0   r1   r   )
unmasked_xmasked_yr7   r8   s       r   test_check_masked_offsetsr  4  s    
 	r2q"b)r2q"b)r2q"b)r2q"b)r2q"b)J uu{{?{AHllnGCJJz$r   c                    [         R                  R                  / SQ/ SQS9n[         R                  " SS5      nUR	                  5       nUR                  X#5      nUR                  [         R                  R                  X#/5      5        UR                  / 5        UR                  / 5        U R	                  5       nUR                  / SQ/ SQ5        UR                  / 5        UR                  / 5        g )NrU  r   r   r   r   r   r  r   r   )r   r    rv   )
r.   rv  r/   r   r9  r   r  column_stack
set_xticks
set_yticks)r   r   r   r   r   scatr   s          r   test_masked_set_offsetsr  F  s    
O/:A
		!QA""$G??1 DRUU''/0rr  "F
NN9i(
b
br   c                      [         R                  R                  / SQ/ SQS9n [         R                  " SS5      n[        R
                  " 5       u  p#UR                  X5      n[         R                  R                  X/5      nUR                  U5        [        UR                  5       [        U5      5      (       d   e[         R                  " X/5      nUR                  U5        [        UR                  5       [        U5      5      (       d   eg )NrU  r  r  r   r   )r.   rv  r/   r   r0   r1   r   r  r  
isinstancer  type)r   r   r7   r8   r  masked_offsetsunmasked_offsetss          r   test_check_offsets_dtyper  W  s    
O/:A
		!QAllnGC::aDUU''/N^$d&&($~*>????v.%&d&&($/?*@AAAAr   gapcolororanger  r  c                    U R                  S5      nUR                  S5      nX44 H'  nUR                  SS5        UR                  SS5        M)     [        SS5      n/ SQnUR	                  USSSXrSS9  [        U[        5      (       a  U/n[        U[        R                  " U5      [        R                  " U5      5       H  u  phn	UR                  USSSXSS9  M     g )	Nr/  r   r   r   ):r  z--ri   r   )r&   r(   r  rL  )r9  r4   r5   r  vlinesr  strr   r7  cycleaxvline)
r   r   r  r   r   r8   r   r  gcolr   s
             r   test_striped_linesr  g  s     ""3'G  %F
Aq
Aq   	aA!JNN1abJ   (C  :1iooh7$??:68q!Q"QTU8r   )pngr  svgeps)
extensionsc                    U R                  5       nUR                  5       nSn/ SQ/ SQ/n[        USS9nUR                  U5        [        R                  " SU05         [        USS9nS S S 5        UR                  U5        UR                  W5        UR                  5       UR                  5       s=:X  a  U:X  d   e   eg ! , (       d  f       N_= f)Nr   ))r   r   )r   rS  )rS  rS  )rS  r   ))rT  rT  )rT  ?)r  r  )r  rT  r   hatchzhatch.linewidth)r9  r
   set_hatch_linewidthr  
rc_contextr2   get_hatch_linewidth)r   r   r   r   r  polygonsreftests           r   test_hatch_linewidthr    s    ""$G  "F	B 	98H 
-CB	*B/	0hc2 
1 #4 ##%)@)@)BHbHHHHH 
1	0s   C
Cc                     SSK Jn   [        R                  R	                  5       n/ SQn/ SQn[
        R                  " SS05         U " U/SX#S9n[        UR                  5       [
        R                  R                  U5      5        U " U/SS	9nUR                  U5        [        UR                  5       [
        R                  R                  U5      5        UR                  U5        [        UR                  5       [
        R                  R                  U5      5        U " U/SS	9nUR                  U5        [        UR                  5       [
        R                  R                  U5      5        UR                  U5        [        UR                  5       [
        R                  R                  U5      5        S S S 5        g ! , (       d  f       g = f)
Nr   r   purpler  r  yellowr  cyanr  magentahatch.coloredge//r  r  
hatchcolorr  )matplotlib.collectionsr   r   r   unit_rectangler  r  r   get_hatchcolorr'  r  r  set_hatchcolorr   pathr  hatchcolorsr   s        r   (test_collection_hatchcolor_inherit_logicr    sT   5::$$&D5J7K	/	0dV4(2L3--/1I1I+1VW dV40*%3--/1I1I*1UV;'3--/1I1I+1VW dV40;'3--/1I1I+1VW*%3--/1I1I+1VW% 
1	0	0s   E1F??
Gc                     SSK Jn   [        R                  R	                  5       n/ SQn/ SQn[
        R                  " SS05         U " U/SUS9nS S S 5        [        WR                  5       [
        R                  R                  U5      5        [
        R                  " SS05         U " U/SX#S	9nS S S 5        [        UR                  5       [
        R                  R                  U5      5        [
        R                  " SS05         U " U/SS
9n[        UR                  5       [
        R                  R                  S5      5        UR                  U5        [        UR                  5       [
        R                  R                  S5      5        S S S 5        [
        R                  " SS05         U " U/SUS9nS S S 5        [        UR                  5       [
        R                  R                  U5      5        U " U/SUSS	9n[        UR                  5       [
        R                  R                  U5      5        U " U/SS
9n[        UR                  5       [
        R                  R                  [
        R                  S   5      5        g ! , (       d  f       GNB= f! , (       d  f       GN= f! , (       d  f       GN&= f! , (       d  f       GN= f)Nr   r  r  r
  r  r  r  r  r  r  r  r  )r  r  zpatch.edgecolor)r  r   r   r   r  r  r  r   r  r'  r  r  r  r  s        r   )test_collection_hatchcolor_fallback_logicr    s   5::$$&D5J7K 
0	1dV4KH 
2s))+SZZ-E-Ek-RS	0	1dV4'1K 
2 s))+SZZ-E-Ek-RS 
0	1dV403--/1I1I'1RS*%3--/1I1I'1RS	 
2 
/	0dV4:F 
1s))+SZZ-E-Ej-QR
$tzf
UCs))+SZZ-E-Ej-QR $t
,Cs))+zz//=N0OPR; 
2	1 
2	1 
2	1 
1	0s1   
J
&
JBJ./
K 

J
J+.
J= 
Kbackend)aggr  r  psc                    SSK Jn  [        R                  R	                  5       n[
        R                  " U 5        [
        R                  " 5       u  p4UR                  5       nU" U/SS9nUR                  U5        UR                  5       n[        R                  " 5       nUR                  5       n	UR                  5       n
UR                  5       nUR!                  5       nUR#                  5       nUR%                  5       nUR'                  5       nUR)                  5       nUR+                  5       nUR-                  5       nSnUR/                  XxXXXUUUUU5        g )Nr   r  r  r  screen)r  r   r   r   r  r0   r  r1   _get_rendererr2   new_gcr   r   rx  get_transformsr  r  ru  r  r  rF   get_antialiasedget_urlsdraw_path_collection)r  r   r  r7   r8   rendererr   gcr   paths
transformsr   
offset_trfr   r  r  r  r  urlsoffset_positions                       r   'test_draw_path_collection_no_hatchcolorr/    s"   5::$$&DwllnGC  "H
$t
,Cc		B--/IMMOE##%JooG))+J""$J""$J""$J""$J&&(L<<>DO!!
u'
JdOr   c                 <   [         R                  " 5       u  pUR                  nUR                  5       nS nU R	                  USU5        SSKJn  [        R                  R                  5       nU" U/SSS9nUR                  U5        [         R                  " 5         g )Nc                     g r   rw   )rT  r)  master_transformr*  all_transformsr   offset_transr   r  r  r  r  r-  r.  s                 r   mock_draw_path_collectionTtest_third_party_backend_hatchcolors_arg_fallback.<locals>.mock_draw_path_collection  s     	r   r'  r   r  r  r  r  )r0   r1   r:  get_renderersetattrr  r   r   r   r  r2   r;  )	monkeypatchr7   r8   r:  r(  r5  r   r  r6   s	            r   1test_third_party_backend_hatchcolors_arg_fallbackr:    s    llnGCZZF""$H "8:ST 6::$$&D4&?DdHHJr   )yr   rv  r7  platformrp  typesr   numpyr.   numpy.testingr   r   r  
matplotlibr  matplotlib.pyplotpyplotr0   r  collectionsr   matplotlib.colorsr'  r  matplotlib.pathr  r   matplotlib.transformsr+  r   r   r   r	   r
   r   matplotlib.testing.decoratorsr   r   fixturer   r:   rJ   rR   rW   rZ   r]   ra   rc   rf   rl   rq   r}   r   r?   r   r   r   r   r<   contextr   r   r   machiner   r  r-  r>  rM  rp  r|  r  r  r  r  r  r  r  r  r  markparametrizer  r  r  r  r  r  r  r"  r8  rC  rI  rQ  rb  rf  ri  rr  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r/  r:  rw   r   r   <module>rL     sR    	   	 !  G    - #  +E E < O h/0 1%P 67wG= H=2 <=WM
 N
 <=WM N" ?@P Q ?@P Q AB'R S  EFgV= W=( >?wO P  =>gN O =>gN O   
	

7

7 89I1 J104!==' 7)  )08") 56D'#++-9auFF$(CV -.DP" Q"J 7 7* 56D')
)
 454'))8,,,!*?(	F
 #$$oN O  " 9
5 
5! 01 2 9( ( 9* * *+7;G <G& +,")55;:.b@5$ B#89 :  GG;$ugk#VW1a&$VW	J GG3 7*= .1 	8		8-5`-*`	79<F B0#E6 9BB BBJ: (&*N7( 23WU% V%"   B  hc
%;<V  =V,  <=I >I,X6'RT $?@ A@r   