
    ^j1                        d dl m Z  d dlZd dlZd dlZd dlZd dlmZ d dlZd dl	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! d dlm"Z" d dl#m$Z$m%Z%  ejL                  dd	g
      d        Z'd Z( e%dgd      d        Z) e%dgd      d        Z* e%dgd      d        Z+ e%dgd      d        Z, e%dgd      d        Z- e%dgd      d        Z. e%dgd      d        Z/ e%dgd      d        Z0 e%dgd      d         Z1 e%d!gd      d"        Z2 e%g d#d      d$        Z3 e%d%gd      d&        Z4d' Z5d( Z6d) Z7d* Z8d+ Z9ejt                  jw                  d       e$       d,               Z<d- Z=d. Z> e%d/gd0d1 ej~                         d2k(  rd nd34      d5        Z@d6 ZA e%d7gd0d8      d9        ZB e$       d:        ZC e%d;gd0d18      d<        ZD e%d=gd0d18      d>        ZEd? ZFd@ ZGdA ZHdB ZIdC ZJdD ZK e%dEgd0d18      dF        ZLdG ZMejt                  jw                  dH      dI        ZNdJ ZOej                  j                  dKg dL      dM        ZRejt                  jw                  dH      dN        ZSejt                  jw                  dH      dO        ZT e%dPgd      dQ        ZU e%dRgd0dH8      dS        ZVdT ZWdU ZXdV ZYdW ZZ e$       ej                  j                  dXi dYdZig      d[               Z[ej                  j                  d\d]d^d_ddd`gdaz  dbfdcdddegdddffg      dg        Z\dh Z]di Z^dj Z_ej                  j                  dkdldmg      dn        Z`do Zadp Zbdq Zcdr Zdds Zedt Zfdu Zgdv Zhejt                  jw                  dH      dw        Zidx Zjdy Zkdz Zld{ Zmd| Znd} Zo e%d~gd0d8      d        Zp e$       d        Zqd Zrej                  j                  ddddgg       e$       d               Zs e$g d      d        Ztd Zud Zvej                  j                  dg d      d        Zwd Zxy)    )datetimeN)SimpleNamespace)assert_array_equalassert_array_almost_equal)
CollectionLineCollectionEventCollectionPolyCollection)FillBetweenPolyCollection)check_figures_equalimage_comparison
pcolormeshpcolor)paramsc                     | j                   S N)param)requests    l/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_collections.pypcfuncr      s    ==    c            
         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                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tU?r   z!EventCollection_plot__default.pngmpl20)stylec                  *   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'   )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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^<=r   z'EventCollection_plot__set_positions.pngc                  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   )
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                     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,   #   )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                  `   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,   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                  `   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,   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                  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    )	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d224444!!###&&(M4 &&9 	NN89MM"bMM!Qr   z0EventCollection_plot__switch_orientation__2x.pngc                  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)
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                  .   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    )r:   set_orientationrB   rC   r?   r3   r5   r4   )rP   r6   r9   r`   s       r   &test__EventCollection__set_orientationrf      s    57D$ O)d224444!!###4%&&"	$
 	NN56MM"bMM!Qr   z(EventCollection_plot__set_linelength.pngc                      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   )r:   set_linelengthrD   r?   r3   r5   )rP   r6   r9   new_linelengths       r   %test__EventCollection__set_linelengthrl      s}    57D$N'T0022224%!&'	)
 	NN45MM#rr   z(EventCollection_plot__set_lineoffset.pngc                      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)r:   set_lineoffsetrE   r?   r3   r5   )rP   r6   r9   new_lineoffsets       r   %test__EventCollection__set_lineoffsetrq      s}    57D$N'T0022224%&!'	)
 	NN45MM"br   )'EventCollection_plot__set_linestyle.pngrr   z'EventCollection_plot__set_linewidth.pngc                      dddddgfgfdddddgfgfdfD ]W  \  } }}t               \  }}} |j                  d	i | |i t        j                  ||       |k(  sJ |j	                  d|         Y y )
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+<=	" 	7eX 67dA!D%=!xxd#x///.tf56	7r   z#EventCollection_plot__set_color.pngc                     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)	r:   r.   r/   	set_colorrG   rH   r@   r   r3   )rP   r6   rI   	new_colorr'   s        r    test__EventCollection__set_colorr     sp    13MD$&INN9.."7T__%67 8


%%eY78NN/0r   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)
r6   r*   r%   r$   r#   segmentspos1pos2isegments
             r   r?   r?     s    
   "H|+  "f,0C				
	*IJJ  ) 0
7q$w:
Q#>>>>q$w:
Q#>>>>q$w9Q<///q$w9Q<///	0r   c                  F   t        j                  d      j                  d      } t        j                  | t        j                  d            }|j                  d      dk(  sJ |j                  t        j                  d      dz          |j                  d      dk(  sJ y )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                      t        j                  g       } | j                  t        j                               }t        |j                         t        j                  j                         j                                y 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                  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   )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                     t        j                          t        j                         } | j                  ddgddg       | j                  j
                  }| j                  g g        | j                  j
                  |k(  sJ y )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                    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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 ;;vv&DAq			A			A!GuuGOOOAqF
e
e
KK1SRK(r   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   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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7r   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)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!DAq  ",,R4r||CEIIaBFF1IrvvayE: bjj//&')r   z EllipseCollection_test_image.pngT_classic_testx86_64g/$?)remove_textr<   tolc            	         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                  |
       y )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!DAq	AGGIqwwy)	*	,	,B	
QrUB	
QrUB	b	B	B		'	'
B#rBLL
B br   c                     t         j                  j                  d      } d}d}d}| j                  d      dz  }t        j                         \  }}t        j                  ||||d|j                        }t        |j                  t        j                  |      j                         d	z         t        |j                  t        j                  |      j                         d	z         t        |j                  t        j                  |      j                                t        |j                         |       t        |j!                         |       t        |j#                         |       |j%                  |       |j'                  d
d       |j)                  d
d       | j                  d      dz  }| j                  d      dz  }	| j                  d      dz  }
|j+                  ||	|
       t        |j                         |j                                t        |j!                         |	j                                t        |j#                         |
j                                y )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*k*FEbmmoz/?/?/ABbnn.0A0A0CDbmmoz/?/?/ABr   zpolycollection_close.png)r   r<   c                     ddl m}  dt        j                  d<   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                   | |            }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   )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
		1#I&'
		1#I&'( 	NN2#. MM!QMM!QMM!Qr   c                    t        j                  t        t        j                  t        j
                  ddd      t        j
                  ddd      t        j
                  ddd                        j                  \  }}}||z   }| j                  dd      }|j                  ||||dd	      }| j                  j                          |j                  d
       |j                  dd      }|j                  ||||dd
	       y )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   	
	 Aq!
 	
AA ""34"8GooaAbuo=GOOY    6F
NN1aa2IN6r   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                  |       = y )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I. 	E00VeD2<<9 	#	r   zregularpolycollection_scale.pngc                      G d dt         j                        } t        j                         \  }}dg}t        j
                  dz  g} | |||j                        }|j                  |       |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 )NrB  r  )r   )super__init__r.   rE  )selfkwargs	__class__s     r   rS  zCtest_regularpolycollection_scale.<locals>.SquareCollection.__init__  s     G<r<V<r   c                 `   | j                   }d|j                  d      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@T)root)
r   
get_figuredpibboxwidthviewLimheightr   r   scale)rT  r8   
pts2pixelsscale_xscale_ys        r   get_transformzHtest_regularpolycollection_scale.<locals>.SquareCollection.get_transform  s    B4 8 < <<J 277==02::3C3CCG 277>>1BJJ4E4EEG'')//AAr   )__name__
__module____qualname__rS  rc  __classcell__)rV  s   @r   SquareCollectionrP    s    	=	Br   rh  r   r    )rA  r   r   )r,   r   r,   r   )	r   rF  r0   r1   r.   rE  r   r2   axis)rh  r7   r8   rK  circle_areassquaress         r    test_regularpolycollection_scalerl    sm    
B<== B llnGC
BEEAI;LBGGgGGNr   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)rZ  iE     )r   r   ind)
r0   r1   r   savefigioBytesIOrZ  r   containsr   )r7   r8   r   mouse_eventfoundindicess         r   test_pickingrx  3  s|    llnGC
**aS1#vd*
3CKK

#''K*!C3/K\\+.NE7L5wu~s+r   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   rp  r         ?r  rv   )r.   r   r0   r1   r   draw_without_renderingrc  r   r   rt  r   )r   r   r7   r8   meshr|  r}  r   ru  rv  rw  s              r   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+r   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      пTr{  )r0   r1   r   r  rc  r   r   rt  )r   r   r7   r8   r  pointspointr|  r}  r|   ru  rv  rw  s                r   test_quadmesh_contains_concaver  S  s    
R1a&A
Q!RAllnGC==Au%D F
  !!&uh!!#--uen=1%E!qI{3w   !r   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   rz  r{  r   )r.   r   r0   r1   r   _Ar  rc  r   r   get_cursor_datar   onesshaper   )	r   r   r7   r8   r  r|  r}  r   ru  s	            r   test_quadmesh_cursor_datar  h  s    
		!A	!T'
QtQwZAllnGC==DDG LE5))5%.9DAq!Ua1EK,444 	NN277177#$t++K81#>r   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   r~  r{  	   )r0   r1   r   r.   r  r  rc  r   r   r   r  )r   r7   r8   r  r|  r}  r   ru  s           r   )test_quadmesh_cursor_data_multiple_pointsr  |  s    AllnGC==Arwwv/D LE5))5%.9DAq!Ua1EKt++K8"''!*Er   c                  l    t        j                  g dg ddddgf       t        j                          y )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                      t        j                         \  } }d\  }}}d}ddg}t        j                  |||d||j                        }|j                  |       |j                  dd       |j                  dd       y )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    sz    llnGC-FGVF!F&&t	7A aKK2KK2r   c                 0   g d}| j                  g d|      x}}| j                  g d|      }| j                  g d|      }| j                  g d|      }t        |       t        |       t        |	       t        |
       t        |       y )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                     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  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4r   c                      t               } t        j                  t        d      5  | j	                  d       d d d        y # 1 sw Y   y xY w)Nz"Do not know how to convert 'fuzzy'matchfuzzy)r   pytestraisesr   set_linestyler,  s    r   test_set_wrong_linestyler    s9    A	z)M	N !	 ! ! !s   AA
r   )r    r   c                     t        j                  d       t        j                         \  }}|j                  ddgddg|        |j	                  t        j                                y )Npdfr   r   )r   )r0   switch_backendr1   r   rq  rr  rs  )r   r7   r8   s      r    test_scatter_empty_linestyle_pdfr    sM    
 ullnGCJJ1v1v"J%KK

r   c                      t        j                  g       } | j                         J 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    r   test_capstyler    su    

%
%b
)C%%%

%
%b7
;C(((V'''r   c                      t        j                  g       } | j                         J 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    r   test_joinstyler    su    

%
%b
)C&&&

%
%bG
<C')))g')))r   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  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DAqMDAqM"4<@Mw'(m$LLEFr   zscatter_post_alpha.pngc                      t        j                         \  } }|j                  t        d      t        d      t        d            }|j	                  d       y )Nrv   r  r   )r0   r1   r   r  r  )r7   r8   scs      r   test_scatter_post_alphar    s?     llnGC	E!HeAh%(	3BLLr   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 )
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#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:r   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 |g dk(  sJ 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!        d |D              sJ t!        d |D              sJ |j                  ||d      }|j                  dddd       \  }}|D 	cg c]  }	|	j#                          }}	t        j$                  t        j                  |t&              dz        }t)        ||       |j                  ||d      }t*        j,                  j/                  ddg d      }|j                  |      \  }}t        |      t        |      k(  sJ g d }|j                  |dd!      \  }}|D cg c]  }t'        |       c}|dd  k(  sJ ||||fD ]  }|j1                  |        |j2                  j5                          y c c}	w c c}	w c c}w )"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   B   K   | ]  }|j                         d k(    yw)r   N)	get_alpha.0lines     r   	<genexpr>z6test_pathcollection_legend_elements.<locals>.<genexpr>2  s     54t~~3&5   c              3   B   K   | ]  }|j                         d k(    yw)r  N)get_markerfacecolorr  s     r   r  z6test_pathcollection_legend_elements.<locals>.<genexpr>3  s     Att'')U2Ar  z{x:.2f}c                     d| z  S )Nr    rw   )r   s    r   <lambda>z5test_pathcollection_legend_elements.<locals>.<lambda>7  s
    QqS r   )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 DAq
		rA
		!QR(A
		"c+AllnGC	AqAsq	IB'*DAqq6Q;;))))XXA6Dt~~'67Fggbiil1n%Gvw'	1aQ	B!!a!(HBr7a<<	2t	#B7#UCDAq515555AqAAAA	1aQ	B7y#0  2DAq234$##%4H477288Au-12Lh5	1aQ	B
**
 
 qc'B ! DC!!c!*HBr7c"gF!!f7!HHB"#E!H#vabz111"b" 
a JJOOC 7  5 $s   M$M>Mc                      t        j                  g d      } t        |       }t         j                  j	                  | t        j                  g d             y )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                     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)r  r   s     r   r  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	            r   test_collection_set_verts_arrayr1  S  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:rU  stepprec                    t        j                  dd      }t        j                  |      }|dz   } |j                         j                  |||fi |  | j                         j                  |ddfi |}|j                  |||       y )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_datar<  e  s     	ArA	B	cB#G##Ar288+8++Ar3A&ADMM!Rr   )t_directionr:  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                 4   t        j                  dd      }|t        j                  |      nt        j                  |      }|dz   }|r |j                  | }t        j                  t        |      5  t        | ||||       d d d        y # 1 sw Y   y xY w)Nr   r5  r6  r  )r>  )	r.   r   r   asarrayr   r  r  r   r   )r=  r:  r  r>  r?  r9  r;  s          r   'test_fill_between_poly_collection_raiserB  r  s     	ArAjbjjnB	cBAIIu	z	- G!+q"bFG G Gs   4BB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 dtyper  wrong_inputr   rv   )
r  r   r   r  r  	TypeErrorr.   	not_equal	get_arrayany)valsr,  s     r   test_collection_set_arrayrJ    s    U2Y<D 	AKK 
y(>	? #	M"# DG<<akkm,00222# #s   BB!c                  d   t        j                         \  } }|j                  g dg d       t        j                  j                  |j                  j                  |j                  j                  fd       |j                  j                  |j                  j                  }}g d}|D cg c]  }t        j                  |dg|dgg       }}t        j                  |j                  |j                        }|j!                  t#        ||             t        j                  j                  |j                  j                  |j                  j                  fd       t        j                  j                  |j                  j                  |j                  j                  f||f       y c c}w )	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_autolimr[    s$   LLNEAr GGI'JJ

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

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

A )957 @s   ,"F-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?)r0   r1   r   r.   r@   rO  get_ylimget_xlim)r7   r8   s     r   test_singleton_autolimr_    s[    llnGCJJq!JJr{{}udm<JJr{{}udm<r   ztransform, expected)r   )r  g      @)rU  )gffffff@ru   c                 J   t        j                         \  }}|j                  ddt        ||              |j                  dd       t        j
                  j                  |j                         |       t        j
                  j                  |j                         |       y )Nr   r   r   )	r0   r1   r   getattrr.   r@   rO  r]  r^  )r   r|   r7   r8   s       r   test_autolim_with_zerosrb    sn     llnGCJJq!wr95J6JJq!JJr{{}h7JJr{{}h7r   c                    t        j                  d      }t        j                  d      }t         j                  j                  d      }t        j                         \  }} t        ||       |||      }t        j                  t        t        j                  d            5  |j                  |j                  dd             d d d        t        j                  d      j                  d	      }t        j                  t        t        j                  d
            5  |j                  |       d d d        t        j                  t        t        j                  d            5  |j                  |j                                d d d        t        j                  d      }t        j                  t        t        j                  d            5  |j                  |       d d d        t        j                  d      }t        j                  t        t        j                  d            5  |j                  |       d d d        t        j                  d      }t        j                  t        t        j                  d            5  |j                  |       d d d        t        j                  d      }t        j                  d      }t         j                  j                  d      }t        j                         \  }}|j                  |||d      }y # 1 sw Y   YxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   xY w# 1 sw Y   xY w)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   rd  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))rd  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   ra  r  r  r   reescaper   r   r   r  r   )r   r   r   r+  r7   r8   r6   s          r   "test_quadmesh_set_array_validationrk    s   
		"A
		!A
		!AllnGC72vq!Q'D	zH*I 
J ) 	qyyQ'()
 			"f%A	zG*H 
I  	q 
zF*G 
H " 	qwwy!" 		A	zJ*K 
L  	q
 		A	zJ*K 
L  	q
 	
A	zK*L 
M  	q
 			"A
		!A
		!AllnGC==Aq)=4DM) ) " "   sH   #"LL)' L6M/MML&)L36M MMM&c                     t        j                  g dg d      \  } }| |z  d dd df   }t        j                  | ||      }|j	                          |j                         dd d d f   }t         j                  j                  | dk(  |dk(  z  |       } t        j                  | ||      }|j	                          t        |j                               dk(  sJ t        ||j                                t         j                  j                  | dk(  |dk(  z  |      }t        j                  | ||      }|j	                          t        |j                               dk(  sJ t        ||j                                t         j                  j                  | d dd df   dk(  |d dd df   dk(  z  |      }t        j                  |      }|j	                          t        |j                               dk(  sJ t        ||j                                t        j                  d      j                  d      }|j                  |       |j	                          t        |j                               dk(  sJ t         j                  j                  |d	      }|j                  |       |j	                          t        |j                               d
k(  sJ y )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_arrayrw    st   [[L1FB
R%"crc	B~~b"b)H""$((*12q51K			R1Wq12	6Bzz"b"%H""$x!!#$))){H$:$:$<= 
		R1Wq12	6Bzz"b"%H""$x!!#$))){H$:$:$<= 
		RSbS\Q.2crc3B3h<13DEr	JBzz"~H""$x!!#$))){H$:$:$<=
 
1		f	%Br""$x!!#$)))			2q	!Br""$x!!#$)))r   c                 @   g d}g d}t        j                  d      }t        j                  ||      \  }} t        t        |       |||      }t        j
                  |j                  |j                  g      j                  }t        |j                         |       y )Nr  )r    r   r   )r    r    )r  )	r.   r  r   ra  r0   stackr   r   get_coordinates)r   r   r   r+  rG  rH  r6   r  s           r   test_quadmesh_get_coordinatesr{    sz    AA
fA[[AFB73B*D XXrttRTTl#%%Ft++-v6r   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   r  r  r5  )r   r   rf  rg  )r.   r   r   r0   r1   r   r  r  r   r:  r;  r$  rG  )r   r   r+  r7   r8   r6   s         r   test_quadmesh_set_arrayr}  *  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8r   c                 2   t        j                         \  }}t        j                  d   }t        j                  j                  dd      } t        ||       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)r5  r   )r   r    )r0   r1   r  	colormapsr'  	Normalizera  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72vu4d;DJJOO>>$--/15tDG}EEE  DItyJJOO>>$--/15tDG}EEEr   c                    t        j                  d      }t        j                  d      }t        j                  d      j                  d      }||j                         z  }|j	                         }t        j                  d      \  }\  }} t        ||       ||||      }	 t        ||       |||      }
|
j                  |       t        j                          t        |	j                         d d df   |       t        |
j                         d d df   |       t        j                  d      \  }\  }} t        ||       ||||      }	 t        ||       |||      }
|
j                  |       t        j                          t        |	j                         d d df   |       t        |
j                         d d df   |       y )Nr   r  r  r    )rL  r,   )r.   r   r   maxr   r0   r1   ra  r  r;  r   r  )r   r   r   r+  rL  
alpha_flatr7   r  r  coll1coll2s              r   test_quadmesh_alpha_arrayr  X  sr   
		!A
		!A
		!V$AKEJll1oOC#s GC Aq6E GC Aq)E	OOEHHJu++-ae4jAu++-ae4jAll1oOC#s GC Aq6E GC Aq)E	OOEHHJu++-ae4jAu++-ae4jAr   c                 @   t        j                         \  }} t        ||       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   rM  )r0   r1   ra  r.   r   r   r  r  r   r  rm  )r   r7   r8   pcs       r   test_alpha_validationr  p  sw    llnGC	V	RYYr]226:	;B	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   rv   )r6  rL  rM  g?r4  rA  c                     d| z  S )Nrv   rw   r  s    r   r  z=test_legend_inverse_size_label_relationship.<locals>.<lambda>  s
    QU r   )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	AqA	B((? ) OGV
 1881A$$&8L8&23A1H3L3lL!D 93s   D-Dc                    t        t        |       } 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                          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   )ra  r0   r.   r   r   rm  mcolorsto_rgba_array_get_default_facecolorget_cmapr   r   
same_colorget_edgecolorset_facecolorset_edgecolorrn  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R[[]2771779-.F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>>"**,f555T>>"**,f555b..0&999LLb..0&999b..0,???LLO>>"**,f555b..0&999	iI	>B>>"**,f555b..0<.AAA	iBGGG4D	EB>>"**,f555b..0<.AAALLb..0"'''2BCCCb..0<.AAA	iBGGG4D	EB>>"**,f555b..0<.AAALLb..0"'''2BCCCb..0<.AAAr   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_linewidthr  r  r  
get_zorderrn  )lcs    r   test_LineCollection_argsr    s    	s \
;Ba C'''b..0#666==?ab..0<.AAA 
	-Bb..0&999r   c                    t        j                  d      j                  dd      } t        t        |       |      }|j                  |j                                |j                          |j                  |       |j                          t        j                  dt         j                        j                  ddd      }|j                  |       |j                          y )Nr   r   r   $   r  )	r.   r   r   ra  r0   r   r   rm  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                      t        j                  t        j                  ddd      d      j                  } t	        | g      }|j                         \  }t        j                  | |k(        sJ y )Nr   r      )r    r   )r.   tiler   r   r   r   r  )r   r  readbacks      r   test_get_segmentsr    sV    wwr{{1a-v688H	
	#B!IH66(h&'''r   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    )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                     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      r   test_set_offset_transformr    st    !&&q!,D""D9D""$Dd#4,,.M$2K2K2MMMMMMr   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   rv   r   r	  z
2021-11-29)r.   r   r   timedelta64
datetime64r0   r   get_offsetsr  r  r   r@   rO  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Aq	?#JJtR^^%56 llnGC	Aq	B>>DNN4Aq	?#JJtR^^%56r   ztest_check_masked_offsets.pngc                  :   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   re  7   8   rN  )r   r   r   r   r   mask)r   r.   ro  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JJz8$r   c                    t         j                  j                  g dg d      }t        j                  dd      }|j	                         }|j                  ||      }|j                  t         j                  j                  ||g             |j                  g        |j                  g        | j	                         }|j                  g dg d       |j                  g        |j                  g        y )NrN  r   r   r   r   r   r  r   r   )r   r    rv   )
r.   ro  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??1a DRUU''A/0rr  "F
NN9i(
b
br   c                     t         j                  j                  g dg d      } t        j                  dd      }t	        j
                         \  }}|j                  | |      }t         j                  j                  | |g      }|j                  |       t        |j                         t        |            sJ t        j                  | |g      }|j                  |       t        |j                         t        |            sJ y )NrN  r  r  r   r   )r.   ro  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''A/N^$d&&($~*>???1v.%&d&&($/?*@AAAr   gapcolororanger  r  c           
         | j                  d      }|j                  d      }||fD ]&  }|j                  dd       |j                  dd       ( t        dd      }g d}|j	                  |ddd||d       t        |t              r|g}t        |t        j                  |      t        j                  |            D ]  \  }}}	|j                  |ddd|	|d         y )	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 V4q!Q"TQTUVr   )pngr  svgeps)
extensionsc                    | j                         }|j                         }d}g dg dg}t        |d      }|j                  |       t        j                  d|i      5  t        |d      }d d d        |j                  |       |j                         |j                         |j                         cxk(  r|k(  sJ  J y # 1 sw Y   XxY w)Nr   ))r   r   )r   rL  )rL  rL  )rL  r   ))rM  rM  )rM  ?)r  r  )r  rM  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 3hc23 #4 ##%)@)@)BHbHHHHH3 3s    CCc                     ddl m}  t        j                  j	                         }g d}g d}t        j                  ddi      5   | |gd||      }t        |j                         t
        j                  j                  |              | |gd	      }|j                  |       t        |j                         t
        j                  j                  |             |j                  |       t        |j                         t
        j                  j                  |              | |gd	      }|j                  |       t        |j                         t
        j                  j                  |             |j                  |       t        |j                         t
        j                  j                  |             d d d        y # 1 sw Y   y xY w)
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    sc   5::$$&D5J7K	/	0 X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%X X Xs   E;GGc                     ddl m}  t        j                  j	                         }g d}g d}t        j                  ddi      5   | |gd|      }d d d        t        j                         t
        j                  j                  |             t        j                  ddi      5   | |gd||	      }d d d        t        |j                         t
        j                  j                  |             t        j                  ddi      5   | |gd
      }t        |j                         t
        j                  j                  d             |j                  |       t        |j                         t
        j                  j                  d             d d d        t        j                  ddi      5   | |gd|      }d d d        t        |j                         t
        j                  j                  |              | |gd|d	      }t        |j                         t
        j                  j                  |              | |gd
      }t        |j                         t
        j                  j                  t
        j                  d                y # 1 sw Y   JxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)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    sA   5::$$&D5J7K 
0	1 IdV4KHIs))+SZZ-E-Ek-RS	0	1 KdV4'1kKK s))+SZZ-E-Ek-RS 
0	1 TdV403--/1I1I'1RS*%3--/1I1I'1RS	T 
/	0 GdV4:FGs))+SZZ-E-Ej-QR
$tzf
UCs))+SZZ-E-Ej-QR $t
,Cs))+zz//=N0OPR;I IK KT TG Gs1   J'J&BJ35K J#&J03J= K	backend)aggr  r  psc                    ddl m} t        j                  j	                         }t        j                  |        t        j                         \  }}|j                         } ||gd      }|j                  |       |j                         }t        j                         }|j                         }	|j                         }
|j                         }|j!                         }|j#                         }|j%                         }|j'                         }|j)                         }|j+                         }|j-                         }d}|j/                  |||	|
|||||||||       y )Nr   r  r  r  screen)r
  r   r   r   r  r0   r  r1   _get_rendererr2   new_gcr   r   rq  get_transformsr  r  rn  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!!
Iuj':J
JdOr   c                 @   t        j                         \  }}|j                  }|j                         }d }| j	                  |d|       ddlm} t        j                  j                         } ||gdd      }|j                  |       t        j                          y )Nc                      y r   rw   )rT  r!  master_transformr"  all_transformsr   offset_transr   r  r  r  r  r%  r&  s                 r   mock_draw_path_collectionzTtest_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   r-  r   r  r6   s	            r   1test_third_party_backend_hatchcolors_arg_fallbackr1    s    llnGCZZF""$H "8:ST 6::$$&D4&?DdHHJr   )yr   rr  r7  platformri  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  rl  rx  r  r  r  r  r  r  r  r  r  markparametrizer  r  r  r  r  r  r  r  r1  r<  rB  rJ  r[  r_  rb  rk  rw  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  r1  rw   r   r   <module>rC     sV    	   	 !  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'+8++-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   