
    G8c;              
          d dl Z d dlmZ d dlmZ d dlZd dlmZmZ d dl	Z	d dl
Zd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZ d dl m!Z!m"Z" d dl#m$Z$ d Z% e"d	g      d
        Z& e"dg      d        Z' e"dg      d        Z( e"dg      d        Z) e"dg      d        Z* e"dg      d        Z+ e"dg      d        Z, e"dg      d        Z- e"dg      d        Z. e"dg      d        Z/ e"g d      d        Z0 e"dg      d         Z1d! Z2d" Z3d# Z4d$ Z5ejl                  jo                  d%       e!d&g'      d(               Z8d) Z9d* Z: e"d+gd,-      d.        Z; e"d/gd,-      d0        Z< e"d1gd,-      d2        Z= e"d3gd,-      d4        Z>d5 Z?d6 Z@d7 ZAd8 ZBd9 ZCd: ZD e"d;gd,-      d<        ZEd= ZFejl                  jo                  d>      d?        ZGejl                  jo                  d>      d@        ZHejl                  jo                  d>      dA        ZI e"dBg      dC        ZJ e"dDgd,d>E      dF        ZKdG ZLdH ZMdI ZNdJ ZOdK ZPdL ZQdM ZRe	j                  j                  dNdOdPg      dQ        ZUe	j                  j                  dRd,i fdSi fd, eVdST      fdS eVdUV      fg       e!d&g'      dW               ZW e!d&g'      dX        ZXdY ZYdZ ZZd[ Z[d\ Z\d] Z]d^ Z^d_ Z_ejl                  jo                  d>      e	j                  j                  d`ej                  ej                  g      da               Zbdb Zcdc Zddd Zede Zfdf Zgdg Zh e"dhgd&gd,d%i      dj        Ziy)k    N)SimpleNamespace)datetime)assert_array_equalassert_array_almost_equal)
CollectionLineCollectionEventCollectionPolyCollectionQuadMesh)check_figures_equalimage_comparison)MatplotlibDeprecationWarningc            
         t        j                  g d      } t        j                  g d      }d}d}d}d}g d}d}d	}t        | |||||||
      }	t        j                         \  }
}|j                  |	       |j                  d       | ||||||||d	}|j                  dd       |j                  dd       ||	|fS )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                C/usr/lib/python3/dist-packages/matplotlib/tests/test_collections.pygenerate_EventCollection_plotr2      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tU?    EventCollection_plot__defaultc                  *   t               \  } }}t        ||d   |d   |d   |d          t        j                  j	                  |d   |j                                |d   |j                         k(  sJ |j                         sJ |d   |j                         k(  sJ |d   |j                         k(  sJ |j                         dgk(  sJ |j                         g|j                         D ]%  }t        j                  j	                  ||d          ' y )Nr!   r   r   r   r   Nr   )r2   check_segmentsr%   testingr   get_positionsget_orientationis_horizontalget_linelengthget_lineoffsetget_linestyle	get_color
get_colors)_r-   r0   r   s       r1    test__EventCollection__get_propsrB   >   s   24NAtU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 =


%%eU7^<=r3   #EventCollection_plot__set_positionsc                  N   t               \  } }}t        j                  |d   |d   g      }|j                  |       t        j                  j                  ||j                                t        |||d   |d   |d          | j                  d       | j                  dd       y )	Nr!   r"   r   r   r   zEventCollection: set_positionsr#   Z   )
r2   r%   hstackset_positionsr8   r   r9   r7   r*   r+   spltr-   r0   new_positionss       r1   $test__EventCollection__set_positionsrK   X   s    57D$IIu[159J3KLMM}%JJ!!-1C1C1EF4&&') 	NN34MM"br3   #EventCollection_plot__add_positionsc                     t               \  } }}t        j                  |d   |d   d   g      }|j                          |j	                  |d   d          |j                          t        j
                  j                  ||j                                t        |||d   |d   |d          | j                  d       | j                  dd	       y )
Nr!   r"   r   r   r   r   zEventCollection: add_positionsr#   #   )r2   r%   rF   switch_orientationadd_positionsr8   r   r9   r7   r*   r+   rH   s       r1   $test__EventCollection__add_positionsrQ   f   s    57D$IIu[1$%67:< =Mu./23JJ!!-1C1C1EF4 &&'	)
 	NN34MM"br3   &EventCollection_plot__append_positionsc                  `   t               \  } }}t        j                  |d   |d   d   g      }|j                  |d   d          t        j                  j                  ||j                                t        |||d   |d   |d          | j                  d       | j                  dd	       y )
Nr!   r"   r   r   r   r   z!EventCollection: append_positionsr#   rE   )
r2   r%   rF   append_positionsr8   r   r9   r7   r*   r+   rH   s       r1   'test__EventCollection__append_positionsrU   x   s    57D$IIu[1$%67:< =M% 12156JJ!!-1C1C1EF4 &&'	)
 	NN67MM"br3   &EventCollection_plot__extend_positionsc                  `   t               \  } }}t        j                  |d   |d   dd  g      }|j                  |d   dd         t        j                  j                  ||j                                t        |||d   |d   |d          | j                  d       | j                  dd	       y )
Nr!   r"   r   r   r   r   z!EventCollection: extend_positionsr#   rE   )
r2   r%   rF   extend_positionsr8   r   r9   r7   r*   r+   rH   s       r1   'test__EventCollection__extend_positionsrY      s    57D$IIu[1$%67;= >M% 121267JJ!!-1C1C1EF4 &&'	)
 	NN67MM"br3   (EventCollection_plot__switch_orientationc                  F   t               \  } }}d}|j                          ||j                         k(  sJ |j                         rJ |j	                         }t        |||d   |d   |       | j                  d       | j                  dd       | j                  dd       y )	Nverticalr   r   z#EventCollection: switch_orientationr#   r$   r   r   )	r2   rO   r:   r;   r9   r7   r*   r,   r+   )rI   r-   r0   new_orientationrJ   s        r1   )test__EventCollection__switch_orientationr^      s    57D$ Od224444!!###&&(M4 &&9 	NN89MM"bMM!Qr3   ,EventCollection_plot__switch_orientation__2xc                  l   t               \  } }}|j                          |j                          |j                         }|d   |j                         k(  sJ |j	                         sJ t
        j                  j                  |d   |       t        |||d   |d   |d          | j                  d       y)zc
    Check that calling switch_orientation twice sets the orientation back to
    the default.
    r   r!   r   r   z&EventCollection: switch_orientation 2xN)
r2   rO   r9   r:   r;   r%   r8   r   r7   r*   rH   s       r1   ,test__EventCollection__switch_orientation_2xra      s     67D$&&(M4#7#7#9999JJ!!%"4mD4 &&'	)
 	NN;<r3   %EventCollection_plot__set_orientationc                  .   t               \  } }}d}|j                  |       ||j                         k(  sJ |j                         rJ t	        ||d   |d   |d   |       | j                  d       | j                  dd       | j                  dd	       y )
Nr\   r!   r   r   z EventCollection: set_orientationr#   r$   r   r   )r2   set_orientationr:   r;   r7   r*   r,   r+   )rI   r-   r0   r]   s       r1   &test__EventCollection__set_orientationre      s    57D$ O)d224444!!###4%&&"	$
 	NN56MM"bMM!Qr3   $EventCollection_plot__set_linelengthc                      t               \  } }}d}|j                  |       ||j                         k(  sJ t        ||d   ||d   |d          | j	                  d       | j                  dd       y )N   r!   r   r   zEventCollection: set_linelengthi   )r2   set_linelengthr<   r7   r*   r,   )rI   r-   r0   new_linelengths       r1   %test__EventCollection__set_linelengthrl      s}    57D$N'T0022224%!&'	)
 	NN45MM#rr3   $EventCollection_plot__set_lineoffsetc                      t               \  } }}d}|j                  |       ||j                         k(  sJ t        ||d   |d   ||d          | j	                  d       | j                  dd       y )Ng      r!   r   r   zEventCollection: set_lineoffseti)r2   set_lineoffsetr=   r7   r*   r,   )rI   r-   r0   new_lineoffsets       r1   %test__EventCollection__set_lineoffsetrr      s}    57D$N'T0022224%&!'	)
 	NN45MM"br3   )#EventCollection_plot__set_linestylers   #EventCollection_plot__set_linewidthc                      dddgfdddgfdfD ]W  \  } }}t               \  }}} |j                  di | |i t        j                  ||       |k(  sJ |j	                  d|         Y y )Nr   dashed)r   )      @rw   )r      rx   zEventCollection: set_ )r2   setr'   getpr*   )propvalueexpectedrI   r-   rA   s         r1   test__EventCollection__set_propr      s     (_$56-/):;" 7eX
 67dA!D%=!xxd#x///.tf567r3   EventCollection_plot__set_colorc                     t               \  } }}t        j                  g d      }|j                  |       |j	                         g|j                         D ]"  }t        j                  j                  ||       $ | j                  d       y )N)r   r   r   r   zEventCollection: set_color)	r2   r%   r&   	set_colorr?   r@   r8   r   r*   )rI   r-   rA   	new_colorr   s        r1    test__EventCollection__set_colorr      sp    13MD$&INN9.."7T__%67 8


%%eY78NN/0r3   c                 n   | j                         }|j                         dk(  s|j                         dk(  s|d}d}n#|j                         dk(  rd}d}nt        d      t        |      D ]G  \  }}	|	d|f   ||dz  z   k(  sJ |	d|f   ||dz  z
  k(  sJ |	d|f   ||   k(  sJ |	d|f   ||   k(  rGJ  y)	zp
    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)
r-   r!   r   r   r   segmentspos1pos2isegments
             r1   r7   r7     s    
   "H|+  "f,0C				
	*IJJ  ) 0
7q$w:
Q#>>>>q$w:
Q#>>>>q$w9Q<///q$w9Q<///	0r3   c                      t        j                  g       } | j                  t        j                               }t        |j                         t        j                  j                         j                                y N)	mcollectionsPathCollectionget_datalimmtransformsIdentityTransformr   
get_pointsBboxnull)colcol_data_lims     r1   test_null_collection_datalimr   "  sW    

%
%b
)C??;#@#@#BCL|..0"'',,.99;=r3   c                  r   t        j                         } t        j                  t	        j
                  ddg      g      }| j                  |       |j                  t        j                               }t        |j                         t        j                  j                         j                                y )Nr   r   )r   r   )r'   axesr   r   mpathPathr)   r   r   r   r   r   r   r   )r/   r-   coll_data_lims      r1   test_no_offsets_datalimr   )  s     
B&&

FF3C(D'EFDd$$[%B%B%DEM}//1"'',,.99;=r3   c                     t        j                          t        j                         } | j                  ddgddg       | j                  j
                  }| j                  g g        | j                  j
                  |k(  sJ y )Nr   r   )r'   figurer   scatterdataLimbounds)r/   r   s     r1   test_add_collectionr   4  sc     JJL	BJJ1v1vZZFJJr2::&&&r3   mpl20png)
extensionsc                    g d}g d}t        j                  ||      \  }}|j                         }|j                         }| j                         }|j	                  d       |j                  d       d|_        |j                  ||       |j                         }|j	                  d       |j                  d       |j                  ||dd       y )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flattenr(   
set_xscale
set_yscalemarginsr   plot)fig_testfig_refx_valsy_valsxyax_testax_refs           r1   test_collection_log_datalimr   ?  s    JFF ;;vv&DAq			A			A!GuuGOOOAqF
e
e
KK1SRK(r3   c                  L   t        j                         } t        j                  d      t        j                  d      }}t        j                  ddd      j                  dd      x}}t        j                  ||||      }|j                  | j                        j                  dk(  sJ t        j                          t        j                         } t        j                  ddd      }t        j                  dd	d      }t        j                  ||      \  }}t        j                         j                  d
d      | j                  z   }t        j                  ||t        j                  |      t        j                   |      |       | j"                  j                  dk(  sJ y )N   
   r   P   )r   r   g      @g      "@ri             	transform)g      4@g      >@g      .@rw   )r'   r   r%   arangelinspacereshapequiverr   	transDatar   r   r   r   Affine2D	translatesincosr   )r/   r   r   uvqtranss          r1   test_quiver_limitsr   Y  s-   	B99Q<2qAKK2r"**2q11A

1aAA==&--1AAAAJJL	B
BBA
B2A;;q!DAq  ",,R4r||CEJJq!RVVAYq	U;:: 7777r3   c                     t        j                         } t        j                  ddd      }t        j                  ddd      }t        j                  ||      \  }}t        j                         j                  dd      | j                  z   }t        j                  ||t        j                  |      t        j                  |      |       t        | j                  j                  d	d
       y )Nr   r   ri   r   r   r   r   r   )ri      rh      r   decimal)r'   r   r%   r   r   r   r   r   r   barbsr   r   r   r   r   )r/   r   r   r   s       r1   test_barb_limitsr   j  s    	B
BBA
B2A;;q!DAq  ",,R4r||CEIIaBFF1IrvvayE: bjj//&')r3   z EllipseCollection_test_image.pngT)remove_textc            	         t        j                         \  } }t        j                  d      }t        j                  d      }t        j                  ||      \  }}t        j
                  |j                         |j                         f      j                  }||d   z  }||d   z  }t        j                  |      dz  }	t        j                  |||	d||j                  d      }
|j                  |
       |j                          y )Nr      r#   ri   r   r   )unitsoffsetsoffset_transform
facecolors)r'   r(   r%   r   r   vstackravelT	ones_liker   EllipseCollectionr   r)   autoscale_view)r.   r/   r   r   XYXYwwhhaaecs              r1   test_EllipseCollectionr   x  s     llnGC
		!A
		!A;;q!DAq	AGGIqwwy)	*	,	,B	
QrUB	
QrUB	b	B	B		'	'
B#rBLL
B br3   zpolycollection_close.pngc                     ddl m}  ddgddgddgddggddgddgddgddggddgddgddgddggddgddgddgddggg}t        j                         }|j	                   | |d	            }g d
}t        t        d            }t        j                  |t        |      z  d      }|j                  d       g }g }t        ||      D ]A  \  }	}
|j                  |	gt        |      z         |j                  |
gt        |      z         C |j                  |       |j                  ||d       |j                  dd       |j!                  dd       |j#                  dd       y )Nr   )Axes3Dr   r   r   r         @F)auto_add_to_figure)rgbr   krx         ?r   gffffff?r   )zszdirr   r   )mpl_toolkits.mplot3dr   r'   r   add_axeslistranger   r
   len	set_alphazipextendr   add_collection3d
set_xlim3d
set_zlim3d
set_ylim3d)r   	vertsQuadr.   r/   colorszpospolyr  cszcs              r1   test_polycollection_closer    s   + 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	fSU;	<B&Fa>D&&CI/DNN3 
B	BD&! (1
		1#I&'
		1#I&'( 	NN2#. MM!QMM!QMM!Qr3   z regularpolycollection_rotate.pngc                     t         j                  d dd df   \  } }t        j                  | j                         |j                         g      }t        j                  ddt         j
                  z  t        |            }t        j                         \  }}t        ||      D ]=  \  }}t        j                  dd||g|j                        }|j                  |d       ? |j                          y )	Nr   r   r   r   )d   )sizesrotationr   r   Tautolim)r%   mgrid	transposer   r   pir  r'   r(   r
  r   RegularPolyCollectionr   r)   r   )	xxyy	xy_points	rotationsr.   r/   xyalphar   s	            r1   !test_regularpolycollection_rotater(    s    XXcrc3B3hFBbjjlBJJL9:IAqwI7IllnGCI. -	E00VeD2<<9 	#t,	-
 r3   zregularpolycollection_scale.pngc                      G d dt         j                        } t        j                         \  }}dg}t        j
                  dz  g} | |||j                        }|j                  |d       |j                  g d       y )	Nc                   $     e Zd Z fdZd Z xZS ):test_regularpolycollection_scale.<locals>.SquareCollectionc                 J    t        |   ddt        j                  dz  i| y )Nr  r   )r   )super__init__r%   r   )selfkwargs	__class__s     r1   r.  zCtest_regularpolycollection_scale.<locals>.SquareCollection.__init__  s     G<r<V<r3   c                 T   | j                   }d|j                  j                  z  }||j                  j                  z  |j
                  j                  z  }||j                  j                  z  |j
                  j                  z  }t        j                         j                  ||      S )z4Return transform scaling circle areas to data space.g      R@)
r   r   dpibboxwidthviewLimheightr   r   scale)r/  r/   
pts2pixelsscale_xscale_ys        r1   get_transformzHtest_regularpolycollection_scale.<locals>.SquareCollection.get_transform  s{    B		-J 277==02::3C3CCG 277>>1BJJ4E4EEG'')//AAr3   )__name__
__module____qualname__r.  r<  __classcell__)r1  s   @r1   SquareCollectionr+    s    	=	Br3   rA  r   r   )r  r   r   Tr  )r#   r   r#   r   )	r   r!  r'   r(   r%   r   r   r)   axis)rA  r.   r/   r&  circle_areassquaress         r1    test_regularpolycollection_scalerE    sr    B<== B llnGC
BEEAI;LBGGgt,GGNr3   c                  *   t        j                         \  } }|j                  dgdgdgd      }| j                  t	        j
                         | j                         t        dd      }|j                  |      \  }}|sJ t        |d	   dg       y )
Nr   i  T)picker)r3  iE     )r   r   ind)
r'   r(   r   savefigioBytesIOr3  r   containsr   )r.   r/   r   mouse_eventfoundindicess         r1   test_pickingrQ    s|    llnGC
**aS1#vd*
3CKK

#''K*!C3/K\\+.NE7L5wu~s+r3   c                  D   t        j                  d      } | d d d f   | d d d f   z  }t        j                         \  }}|j	                  |      }|j                          d\  }}|j                         j                  ||f      \  } }t        ||| |      }|j                  |      \  }	}
|	sJ t        |
d   dg       d\  }}|j                         j                  ||f      \  } }t        ||| |      }|j                  |      \  }	}
|	sJ t        |
d   dg       y )Nr   r   r   xdataydatar   r   rI  r         ?rX  rx   )r%   r   r'   r(   
pcolormeshdraw_without_renderingr<  r   r   rM  r   )r   r   r.   r/   meshrU  rV  r   rN  rO  rP  s              r1   test_quadmesh_containsr\    s   
		!A	!T'
QtQwZAllnGC==D LE5))5%.9DAq!Ua1EK]];/NE7L5wu~s+LE5))5%.9DAq!Ua1EK]];/NE7L5wu~s+r3   c                  X   ddgddgg} ddgddgg}t        j                         \  }}|j                  | |dgg      }|j                          g d}|D ]U  }|\  }}}	|j	                         j                  ||f      \  } }t        ||| |      }
|j                  |
      \  }}||	u rUJ  y )Nr   r#   r   ))      r   T)r   r   F)r   r   T)r   g      пTrT  )r'   r(   rY  rZ  r<  r   r   rM  )r   r   r.   r/   r[  pointspointrU  rV  r~   rN  rO  rP  s                r1   test_quadmesh_contains_concavera    s    
R1a&A
Q!RAllnGC==Au%D F
  !!&uh!!#--uen=1%E!qI{3w   !r3   c                     t        j                  d      } | d d d f   | d d d f   z  }t        j                         \  }}|j	                  |      }d |_        |j                          d\  }}|j                         j                  ||f      \  } }t        ||| |      }|j                  |      J |j                  t        j                  |j                               t        |j                  |      dg       y )Nr   rS  rT  r   )r%   r   r'   r(   rY  _ArZ  r<  r   r   get_cursor_data	set_arrayonesshaper   )	r   r   r.   r/   r[  rU  rV  r   rN  s	            r1   test_quadmesh_cursor_datarh    s    
		!A	!T'
QtQwZAllnGC==DDG LE5))5%.9DAq!Ua1EK,444 	NN277AGG%&t++K81#>r3   c                  r   g d} t        j                         \  }}|j                  | | t        j                  d            }|j                          d\  }}|j                         j                  ||f      \  } }t        ||| |      }t        |j                  |      t        j                  d             y )N)r   r   r   r   r   r   rW  rT  	   )r'   r(   rY  r%   rf  rZ  r<  r   r   r   rd  )r   r.   r/   r[  rU  rV  r   rN  s           r1   )test_quadmesh_cursor_data_multiple_pointsrl  &  s    AllnGC==Arwwv/D LE5))5%.9DAq!Ua1EKt++K8"''!*Er3   c                  l    t        j                  g dg ddddgf       t        j                          y )Nr   r   r   r   r   )r   )r'   r   drawry   r3   r1   test_linestyle_single_dashesrp  2  s#    KK	9b"X?HHJr3   zsize_in_xy.pngc                      t        j                         \  } }d\  }}}d}ddg}t        j                  |||d||j                        }|j                  |       |j                  dd       |j                  dd       y )N)r   r   r   r   rr  )rh   rh   r&  )r   r   r   r   r   )r'   r(   r   r   r   r)   r+   r,   )r.   r/   widthsheightsanglescoordses          r1   test_size_in_xyrx  7  sz    llnGC-FGVF!F&&t	7A aKK2KK2r3   c                 0   g d}| j                  g d|      x}}| j                  g d|      }| j                  g d|      }| j                  g d|      }t        |       t        |       t        |	       t        |
       t        |       y )N)         )redbluegreen)indexr   r   r   )r   rv   dashdot)TFT)
edgecolors)r   )
linewidths)
linestyles)antialiaseds)Seriesr   )pdr  r   fclwr   r   s          r1   test_pandas_indexingr  H  s     Eii0i>>B	9E	*B	1	?B	&e	4B""""Br3   defaultc                     t        j                  g       } | j                  ddg       | j                  g d       | j	                         dgdz  k(  sJ | j                         g ddz  k(  sJ | j                  g d       | j	                         dgdz  k(  sJ | j                         g dk(  j                         sJ y )N-r  r6   r   r   )r  r  r  r   )r   r   set_linestylesset_linewidthsget_linestylesget_linewidthsallr   s    r1   test_lslw_bcastr  Y  s    

%
%b
)CSz"y!I;?2229q=000'I;?222 I-22444r3   c                      t        j                  g d      } | j                         dk(  sJ | j                  d       | j                         dk(  sJ y )Nround)capstylebutt)r   r   get_capstyleset_capstyler  s    r1   test_capstyler  g  sP    

%
%b7
;C(((V'''r3   c                      t        j                  g d      } | j                         dk(  sJ | j                  d       | j                         dk(  sJ y )Nr  )	joinstylemiter)r   r   get_joinstyleset_joinstyler  s    r1   test_joinstyler  o  sP    

%
%bG
<C')))g')))r3   zcap_and_joinstyle.pngc                     t        j                         \  } }|j                  ddg       |j                  ddg       t	        j
                  g d      }t	        j
                  dgdgdgg      t	        j
                  g dg      z   }t	        j                  d	      }||d d d d d
f<   ||d d d d df<   t        |g d      }|j                  d       |j                  d       |j                  |       |j                  d       y )Nr^  rX        @)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)r'   r(   r+   r,   r%   r&   zerosr   r  r  r)   r*   )r.   r/   r   yssegsline_segmentss         r1   test_cap_and_joinstyle_imager  w  s    llnGCKKsKKs
!A	C53%#'	(288_4E+F	FB88IDDAqMDAqM"4<@Mw'(m$LLEFr3   zscatter_post_alpha.png)r   stylec                      t        j                         \  } }|j                  t        d      t        d      t        d            }|j	                  d       y )Nrx   r  r   )r'   r(   r   r  r	  )r.   r/   scs      r1   test_scatter_post_alphar    s?     llnGC	E!HeAh%(	3BLLr3   c                  B   t        j                  d      } | dz  }t        j                  d      \  }\  }}|j	                  | | | |      }|j	                  | | |       }|j                  |       t        j                          t        |j                         d d df   |       t        |j                         d d df   |       t        j                  d      \  }\  }}|j	                  | | g d|      }|j	                  | | d|      }t        j                          t        |j                         d d df   |       t        |j                         d d df   |       t        j                  d      \  }\  }}|j	                  | | g d	      }|j                  |       |j	                  | | d	      }|j                  |       t        j                          t        |j                         d d df   |       t        |j                         d d df   |       y )
Nrx   r   )r  r'  r  r#   )r   r   r   r  m)r   r'  r   )r   )	r%   r   r'   r(   r   r	  ro  r   get_facecolors)r   r'  r.   ax0ax1sc0sc1s          r1   test_scatter_alpha_arrayr    s   
		!AEEll1oOC#s
++aau+
-C
++aa+
 CMM%HHJs))+ArE2E:s))+ArE2E:ll1oOC#s
++a";5+
IC
++a#U+
3CHHJs))+ArE2E:s))+ArE2E:ll1oOC#s
++a";+
<CMM%
++a#+
&CMM%HHJs))+ArE2E:s))+ArE2E:r3   c            	      ,   t         j                  j                  d       t         j                  j                  dd      \  } }t         j                  j                  d      }t         j                  j	                  ddd      }t         j                  j	                  ddd      }t        j                         \  }}|j                  | |||dd	d
      }|j                  d      \  }}t        |      dk(  sJ t        t        j                  |      j                  t              t        j                  d             t        j                  |D 	cg c]  }	|	j                          c}	      }
|j!                  t        j                  d      dz        }t        |
|       |j#                  ||d      }|j                  d      \  }}t        |      dk(  sJ |j#                  ||d      }|j                  ddd      \  }}t        j                  |D 	cg c]  }	|	j%                          c}	      }t        |d       t        j                  |D 	cg c]  }	|	j'                          c}	      }t        |d       |j#                  ||d      }|j                  dddd       \  }}|D 	cg c]  }	|	j)                          }}	t        j*                  t        j                  |      j                  t              dz        }t-        ||       |j#                  ||d      }t.        j0                  j3                  ddg d      }|j                  |      \  }}t        |      t        |      k(  sJ g d}|j                  |dd      \  }}t        t        j                  |      j                  t              |dd         ||||fD ]  }|j5                  |        |j6                  j9                          y c c}	w c c}	w c c}	w c c}	w )N!N,r   r   r   rx   )sizei,  jetr   )r  scmapr   r  z{x:g})fmtr   r   )locrk  )numr  r   r}  )r|   r'  r   z{x:.2f}c                     d| z  S )Nr   ry   )r   s    r1   <lambda>z5test_pathcollection_legend_elements.<locals>.<lambda>  s
    QqS r3   )r|   r  r  funcr   r   )r   r   r  r   rx   r   r   r   )nbinsmin_n_tickssteps)r#   r   g33333K@i  )r  r|   r  )r%   randomseedrandrandintr'   r(   r   legend_elementsr  r   r&   astypefloatr   r?   r  legend	get_alphaget_markerfacecolorget_markersizesqrtr   mpltickerMaxNLocator
add_artistcanvasro  )r   r   r  r  r.   r/   r  hlliner  colors2l1h2lab2l2r'  r   l3actsizeslabeledsizesl4r  h5lab5levelsh6lab6s                               r1   #test_pathcollection_legend_elementsr    s[   IINN899>>!R DAq
		rA
		!QR(A
		"c+AllnGC	AqAsq	IB'*DAqq6Q;;rxx{))%0"))A,?XXA6Dt~~'67Fggbiil1n%Gvw'	1aQ	B!!a!(HBr7a<<	2t	#B7#UCDAqHH154dnn&56Euc"HHQ?Td..0?@Eue$	1aQ	B7y#0  2DAq234$##%4H477288A;--e4Q67Lh5	1aQ	B
**
 
 qc'B ! DC!!c!*HBr7c"gF!!f7!HHBrxx~,,U3VABZ@"b" 
a JJOOG 7 6? 5s   PPP2Pc                      t        j                  g d      } t        |       }t         j                  j	                  | t        j                  g d             y )N)r   r   r   r   )r%   r&   r	   r8   r   )arrr-   s     r1   test_EventCollection_nosortr    s7    
((=
!C3DJJ!!#rxx'>?r3   c                     t        j                  dt         j                        j                  ddd      } t	        |       }t	        t        |             }t        |j                        t        |j                        k(  sJ t        |j                  |j                        D ]]  \  }}t        j                  |j                  |j                        sJ t        j                  |j                  |j                        r]J  t        j                  dt              }| D cg c]  }t        d |D               c}|d d  t	        |      }t        |j                        t        |j                        k(  sJ t        |j                  |j                        D ]]  \  }}t        j                  |j                  |j                        sJ t        j                  |j                  |j                        r]J  y c c}w )Nr   )dtyper   r   r   c              3   2   K   | ]  }t        |        y wr   )tuple).0r   s     r1   	<genexpr>z2test_collection_set_verts_array.<locals>.<genexpr>  s     0E!H0s   )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	            r1   test_collection_set_verts_arrayr    sv   IIb		*222q!<EU#Gd5k*Hw~~#hoo"6666gnnhoo6 4B~~bllBLL999~~bii3334 ((2V,K:?@Qe0a00@KN";/Mw~~#m&:&:";;;;w~~}';';< 5C~~bllCMM:::~~bii4445 As   "G:c                  H   g t        d      } t               }|j                  |        t        j                  t
        d      5  |j                  d       d d d        d| d<   t        j                  | |j                               j                         sJ y # 1 sw Y   CxY w)Nr   z^Image data of dtypematchwrong_input-   rx   )
r  r   re  pytestraises	TypeErrorr%   	not_equal	get_arrayany)valsr  s     r1   test_collection_set_arrayr    s    U2Y<D 	AKK 
y(>	? #	M"# DG<<akkm,00222# #s   BB!c            	         g d} d}t        j                  t        j                  | d      t        j                  d|gt	        |             g      }|j                  t	        |       ddg      }t        j                         \  }}t        j                  |j                  |j                        }|j                  t        ||             |j                  dd       t         j                  j!                  |j#                         d	d
g       y )N)r   r   r   皙?r   r   r   TF)scalexscaleyr   r   )r%   column_stackrepeattiler  r   r'   r(   r   blended_transform_factoryr   	transAxesr)   r   r   r8   assert_allcloseget_xlim)ar7  xy_pairs	line_segsfr/   r   s          r1   test_blended_collection_autolimr    s    AF		!Q!Vc!f1MNOH  #a&!Q0ILLNEAr11",,MEnY%@AT%0JJr{{}r2h7r3   c                     t        j                         \  } }|j                  dd       t        j                  j                  |j                         ddg       t        j                  j                  |j                         ddg       y )Nr   gQgQ?)r'   r(   r   r%   r8   r  get_ylimr  )r.   r/   s     r1   test_singleton_autolimr!    s[    llnGCJJq!JJr{{}udm<JJr{{}udm<r3   ztransform, expected)r   )r^  g      @)r  )gffffff@g	@c                 J   t        j                         \  }}|j                  ddt        ||              |j                  dd       t        j
                  j                  |j                         |       t        j
                  j                  |j                         |       y )Nr   r   r   )	r'   r(   r   getattrr%   r8   r  r   r  )r   r~   r.   r/   s       r1   test_autolim_with_zerosr$  !  sn     llnGCJJq!wr95J6JJq!JJr{{}h7JJr{{}h7r3   zflat_ref, kwargsF)r    __initialization_delayed__r   c           	      $   g d}g d}t        j                  ||      \  }}|d|z  z  }t        j                  ||gd      }|j                  dk(  sJ t        j                  ddd	      j                  dd
      }	| j                         }
|
j                  dd       d|v r3t        j                         j                  d      |
j                  z   |d<   t        |fi |}|j                  |	       |
j                  |       |j                  dk(  sJ |j                         }
|
j                  dd       d|v r3t        j                         j                  d      |
j                  z   |d<   t!        j"                  t$              5  t        d
d|r |j'                         j                  dd      n|fi |}d d d        |j                  |r|	j)                         n|	       |
j                  |       |j                  dk(  sJ y # 1 sw Y   OxY w)Nr   r   r   r   r   r   r   r  r#   rB  r   r   r   r   r   r   r   r   rx   r   r   xlimylimr   g333333?flat)r%   r   stackrg  r   r   add_subplotrz   r   r   r8  r   r   re  r)   _shadingr  warnsr   copyr   )r   r   flat_refr0  r   r   r   r   rv  Cr/   qmeshs               r1   "test_quadmesh_deprecated_signaturer9  1  s    	AA;;q!DAqqLAXXq!f2&F<<9$$$
Aq!$$Q*A				BFFVF$f)224::3?",,N{V&v&E	OOAe>>V###				BFFVF$f)224::3?",,N{	2	3 #9A..r15v#!## 
OO8AIIK3e>>V#### #s   1HHc           	         ddl m} g d}g d}t        j                  ||      \  }}|d|z  z  }t        j                  ||gd      }|j
                  dk(  sJ t        j                  dd	d
      j                  dd      }| j                         }	|	j                  dd        ||dd      }
|
j                  |       |	j                  |
       |j                         }	|	j                  dd       t        j                  t              5   |dd	|j                         j                  dd	      dd      }
d d d        |
j                  |       |	j                  |
       y # 1 sw Y   ,xY w)Nr   )r   r'  r(  r  r#   r)  r*  r   r{  r   r   r+  r,  r-  Fgouraud)r    shading)matplotlib.collectionsr   r%   r   r1  rg  r   r   r2  rz   re  r)   r  r4  r   r5  )r   r   r   r   r   r   r   rv  r7  r/   r8  s              r1   #test_quadmesh_deprecated_positionalr>  Z  sA   
 0AA;;q!DAqqLAXXq!f2&F<<9$$$
Aq"%%a+A				BFFVF$V	BE	OOAe				BFFVF$	2	3 +v{{}'<'<R'C	++ 
OOAe	+ +s   +E##E,c                     t        j                  d      } t        j                  d      }t         j                  j                  d      }t        j                         \  }}|j                  | ||      }t        j                  t              5  |j                  |j                  dd             d d d        t        j                  d      j                  d      }t        j                  t        d	      5  |j                  |       d d d        t        j                  t        d
	      5  |j                  |j                                d d d        t        j                  d      } t        j                  d      }t         j                  j                  d      }t        j                         \  }}|j                  | ||d      }y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nrz  r   )   r   r   r@  6   )r   rk  zFDimensions of A \(6, 9\) are incompatible with X \(11\) and/or Y \(8\)r  zEDimensions of A \(54,\) are incompatible with X \(11\) and/or Y \(8\)r;  r<  )r%   r   r  r'   r(   rY  r  r4  r   re  r   r  r	  r   r   r   r  r.   r/   r-   s         r1   "test_quadmesh_set_array_validationrD  x  so   
		"A
		!A
		!AllnGC==Aq!D 
2	3 )qyyQ'() 			"f%A	y )H 
I q 
y )H 
I "qwwy!" 			"A
		!A
		!AllnGC==Aq)=4D) ) " "s$   "G	6G+ G"	GG"G+c                  >   g d} g d}t        j                  d      }t        j                  | |      \  }}t        j                  |||      }t        j
                  |j                  |j                  g      j                  }t        |j                         |       y )Nrn  )r   r   r   )r   r   )rg  )	r%   rf  r   r'   rY  r1  r   r   get_coordinates)r   r   r  r"  r#  r-   rv  s          r1   test_quadmesh_get_coordinatesrG    su    AA
fA[[AFB>>"b!$D XXrttRTTl#%%Ft++-v6r3   c                  (   t        j                  d      } t        j                  d      }t        j                  d      j                  d      }t        j                         \  }}|j                  | |t        j                  |j                              }|j                  |       |j                  j                          t        j                  |j                         |      sJ |j                  t        j                  d             |j                  j                          t        j                  |j                         t        j                  d            sJ t        j                  d      j                  d      }t        j                         \  }}|j                  | |t        j                  |j                        d      }|j                  |       |j                  j                          t        j                  |j                         |      sJ |j                  t        j                  d             |j                  j                          t        j                  |j                         t        j                  d            sJ y )Nr   rk  rj     )r   r   r;  rB  )r%   r   r   r'   r(   rY  rf  rg  re  r  ro  r  r  rC  s         r1   test_quadmesh_set_arrayrJ    s   
		!A
		!A
		!V$AllnGC==Arwwqww/0DNN1JJOO>>$..*A... 	NN2771:JJOO>>$..*BGGAJ777
		"f%AllnGC==Arwwqww/=CDNN1JJOO>>$..*A... 	NN2772;JJOO>>$..*BGGBK888r3   c                  0   t        j                         \  } }t        j                  d   }t        j                  j                  dd      }|j                  dgg||      }| j                  j                          t        j                  |j                         dd d f    | |d                  sJ d\  |_        |_        | j                  j                          t        j                  |j                         dd d f    | |d                  sJ y )Nplasmar   r   )vminvmax)r  norm)r   r   )r'   r(   r  	colormapsr  	NormalizerY  r  ro  r%   r  r  rM  rN  )r.   r/   r  rO  r-   s        r1   test_quadmesh_vmin_vmaxrR    s    llnGC=="D::QQ/D==1#T=5DJJOO>>$--/15tDG}EEE  DItyJJOO>>$--/15tDG}EEEr3   c                     t        j                  d      } t        j                  d      }t        j                  d      j                  d      }||j                         z  }|j	                         }t        j                  d      \  }\  }}|j                  | |||      }|j                  | ||      }	|	j                  |       t        j                          t        |j                         d d df   |       t        |	j                         d d df   |       t        j                  d      \  }\  }}|j                  | |||      }|j                  | ||      }	|	j                  |       t        j                          t        |j                         d d df   |       t        |	j                         d d df   |       y )Nr   rk  rj  r   )r'  r#   )r%   r   r   maxr   r'   r(   rY  r	  ro  r   r  )
r   r   r  r'  
alpha_flatr.   r  r  coll1coll2s
             r1   test_quadmesh_alpha_arrayrX    sb   
		!A
		!A
		!V$AKEJll1oOC#sNN1a%N0ENN1a#E	OOEHHJu++-ae4jAu++-ae4jAll1oOC#sNN1a*N5ENN1a#E	OOJHHJu++-ae4jAu++-ae4jAr3   c                  >   t        j                         \  } }|j                  t        j                  d      j                  d            }t        j                  t        d      5  |j                  ddg       |j                          d d d        y # 1 sw Y   y xY w)Nr{  )r   r   z^Data array shaper  r   333333?)r'   r(   rY  r%   r   r   r  r  r   r	  update_scalarmappable)r.   r/   pcs      r1   test_alpha_validationr]    sr    llnGC	ryy},,V4	5B	z)<	= #
c3Z 
  "# # #s   &$BBc                  .   t         j                  j                  d       t         j                  j                  d      } t         j                  j                  d      }dt         j                  j                  d      z
  }d|z  }g d}t        j                         \  }}|j                  | ||      }|j                  d|d 	      \  }}	|D 
cg c]  }
|
j                          }}
|D 
cg c]
  }
d|
d
z  z   }}
t        ||d       yc c}
w c c}
w )z|
    Ensure legend markers scale appropriately when label and size are
    inversely related.
    Here label = 5 / size
    r  2   r   rx   )r  g?rZ  g?r  r  c                     d| z  S )Nrx   ry   r`  s    r1   r  z=test_legend_inverse_size_label_relationship.<locals>.<lambda>  s
    QU r3   )r|   r  r  r   r   N)	r%   r  r  r'   r(   r   r  r  r   )r   r   r7  Slegend_sizesr.   r/   r  handleslabelsr   handle_sizess               r1   +test_legend_inverse_size_label_relationshiprg    s     IINN8
		A
		A	BIIR  A	AA'LllnGC	AqA	B((? ) OGV
 1881A$$&8L8&23A1H3L3lL!D 93s   D-Dpcfuncc                    t        j                  d      j                  dd      } | |dd      }|j                          t	        j
                  |j                               } |j                         |j                  |j                                     }t	        j                  |j                         d      sJ  | |      }|j                  d       |j                  d       |j                          t	        j                  |j                         d      sJ t	        j                  |j                         g dg      sJ |j                  d       |j                          t	        j                  |j                         g d	g      sJ |j                  d        |j                          t	        j                  |j                         g dg      sJ |j                  d        |j                          t	        j                  |j                         |      sJ |j                  d        |j                          t	        j                  |j                         |      sJ t	        j                  |j                         d      sJ |j!                  d        |j                          t	        j                  |j                         d      sJ t	        j                  |j                         |      sJ |j!                  |j                                |j                          t	        j                  |j                         |      sJ t	        j                  |j                         d      sJ  | |d
d      }|j                          t	        j                  |j                         |      sJ t	        j                  |j                         g dg      sJ  | |d
t        j"                  d            }|j                          t	        j                  |j                         |      sJ t	        j                  |j                         g dg      sJ |j!                  d        |j                          t	        j                  |j                         t        j"                  d            sJ t	        j                  |j                         g dg      sJ  | |d
t        j"                  d            }|j                          t	        j                  |j                         |      sJ t	        j                  |j                         g dg      sJ |j!                  d        |j                          t	        j                  |j                         t        j"                  d            sJ t	        j                  |j                         g dg      sJ y )Nr{  r   r   r}  r   )r  r   r   r   )r   r   r   r   )r   r   r   )r   r   r   )r{  r   )r{  r   )r%   r   r   r[  mcolorsto_rgba_array_get_default_facecolorget_cmaprO  r   
same_colorget_edgecolorset_facecolorset_edgecolorget_facecolorr	  re  rf  )rh  r  r\  face_defaultmappeds        r1   test_color_logicru    s    			"a#A	e	7B(()B)B)DELR[[]277AGGI/0Fb..0%888	BVUb..0&999b..0<.AAALLb..0>2BCCCLLb..0<.AAATb..0&999Tb..0&999b..0&999LLb..0&999b..0,???LLb..0&999b..0&999	iI	>Bb..0&999b..0<.AAA	iBGGG4D	EBb..0&999b..0<.AAALLb..0"'''2BCCCb..0<.AAA	iBGGG4D	EBb..0&999b..0<.AAALLb..0"'''2BCCCb..0<.AAAr3   c                     t        d dddg d      } | j                         d   dk(  sJ t        j                  | j	                         d      sJ | j                         dk(  sJ t        j                  | j                         g dg      sJ t        d d       } t        j                  | j                         d      sJ y )	Ng@r   r   )r   r   r   r   )r   	edgecolorzorderr   r   )	facecolorr   )r   get_linewidthrj  rn  ro  
get_zorderrr  )lcs    r1   test_LineCollection_argsr}  N  s    	s \
;Ba C'''b..0#666==?ab..0<.AAA 
	-Bb..0&999r3   c                     t        j                  d      j                  dd      } t        j                  |       }t        j                  t        d      5  |j                  |        |j                          d d d        t        j                  |       }|j                  |        |j                          y # 1 sw Y   @xY w)Nr{  r   r   z^Collections can only mapr  )r%   r   r   r'   pcolorr  r  r   re  r[  rY  )r  r\  s     r1   test_array_wrong_dimensionsr  \  s    
		"a#A	AB	z)D	E #
Q
  "# 
	BLLO# #s   "B77C c                      t        j                  t        j                  ddd      d      j                  } t	        | g      }|j                         \  }t        j                  | |k(        sJ y )Nr   r      )r   r   )r%   r  r   r   r   r   r  )r   r|  readbacks      r1   test_get_segmentsr  g  sV    wwr{{1a-v688H	
	#B!IH66(h&'''r3   c                     t        j                         } dg}t        j                  |      }t        j                  |d      }t        j                  |      }|j	                  d       |j                  |       j                  }|j                  |       j                  }|j                  |       j                  }||k7  sJ ||k(  sJ y )Nr   )r  rr  )r  r   )r   r   r   CircleCollectionset_offsetsr   r   )identityr  r   initlatenull_boundsinit_boundslate_boundss           r1   test_set_offsets_later  p  s    ,,.HCE((u5D((uhGD((u5DX ""8,33K""8,33K""8,33K +%%%+%%%r3   c                     t        j                         j                  dd      } t        j                  |       }t        j                         }|j                  |        | |j                         cxk(  r|j                         k(  sJ  J y )Nr   )r   )r   r   skewr   r   set_offset_transformget_offset_transform)r  r  r  s      r1   test_set_offset_transformr    st    !&&q!,D""D9D""$Dd#4,,.M$2K2K2MMMMMMr3   c                     t        j                  ddd      } t        j                  |       }| t        j                  dd      z  t        j                  d      z   }t        j                  ||      }|j                         }|j                  t        t        ||                   t         j                  j                  ||j                                t        j                         \  }}|j                  ||      }|j                         }|j                  t        t        ||                   t         j                  j                  ||j                                y )Nr   r   rx      r  z
2021-11-29)r%   r   r   timedelta64
datetime64r'   r   get_offsetsr  r  r
  r8   r  r(   )r   r   dr  off0r.   r/   s          r1   test_set_offset_unitsr    s     	Ar1A
q	A	BNN2s##bmmL&AAA	Q	B>>DNN4Aq	?#JJtR^^%56 llnGC	Aq	B>>DNN4Aq	?#JJtR^^%56r3   test_check_masked_offsets)baseline_imagesr   r   r  c                  :   t        dddddd      t        dddddd      t        dddddd      t        dddddd	      t        dddddd
      g} t        j                  j                  g dg d      }t	        j
                         \  }}|j                  | |       y )Ni  r{  rh   r   1   4   5   rA  7   8   )r   r   r   r   rx   )r   r   r   r   r   )mask)r   r%   mar&   r'   r(   r   )
unmasked_xmasked_yr.   r/   s       r1   r  r    s     	r2q"b)r2q"b)r2q"b)r2q"b)r2q"b)J uu{{?{AHllnGCJJz8$r3   )jrK  typesr   r   numpyr%   numpy.testingr   r   r  
matplotlibr  matplotlib.pyplotpyplotr'   r=  collectionsr   matplotlib.colorsr  rj  matplotlib.pathpathr   matplotlib.transforms
transformsr   r   r   r	   r
   r   matplotlib.testing.decoratorsr   r   matplotlib._api.deprecationr   r2   rB   rK   rQ   rU   rY   r^   ra   re   rl   rr   r   r   r7   r   r   r   r  contextr   r   r   r   r  r(  rE  rQ  r\  ra  rh  rl  rp  rx  r  r  r  r  r  r  r  r  r  r  r  r  r!  markparametrizer$  dictr9  r>  rD  rG  rJ  rR  rX  r]  rg  r  rY  ru  r}  r  r  r  r  r  r  ry   r3   r1   <module>r     s   	 !   G    - #  +. . P D%P 234= 5=2 89:
 ;
 89: ;" ;<= > ;<= > =>? @  ABC= D=( :;< =  9:; < 9:; <   
	7
	7 4561 7104==' 7() ) )08") 56DI J& -.DA! B!H 56DI J 454H I8,,,!*?(	F
 #$$7 8  " 9
5 
5 9( ( 9* * *+,G -G& +,")55;:0f@5$3 8= .1 	8		8 +	2J
BK	4E"#
D789	.  ($ )$D ( ):54	79<F B0#E6 9CJJ#?@AB A ABH:(&*N7( #>"?#W$gG%G%r3   