
    gݼ                        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        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        Z0 e%dg      d        Z1 e%dg      d         Z2 e%g d!      d"        Z3 e%d#g      d$        Z4d% Z5d& Z6d' Z7d( Z8d) Z9ejt                  jw                  d*       e$d+g,      d-               Z<d. Z=d/ Z> e%d0gd1 ej~                         d2k(  rd3nd 4      d5        Z@d6 ZA e%d7gd1d*8      d9        ZB e%d:gd1;      d<        ZC e%d=gd1;      d>        ZDd? ZEd@ ZFdA ZGdB ZHdC ZIdD ZJ e%dEgd1;      dF        ZKdG ZLejt                  jw                  dH      dI        ZMdJ ZNejt                  jw                  dH      dK        ZOejt                  jw                  dH      dL        ZP e%dMg      dN        ZQ e%dOgd1dH8      dP        ZRdQ ZSdR ZTdS ZUdT ZV e$d+g,      ej                  j                  dUi dVdWig      dX               ZYej                  j                  dYdZd[d\ddd]gd^z  d_fd`dadbgdddcfg      dd        ZZde Z[df Z\dg Z]ej                  j                  dhdidjg      dk        Z^dl Z_dm Z`dn Zado Zbdp Zcdq Zddr Zeds Zfejt                  jw                  dH      dt        Zgdu Zhdv Zidw Zjdx Zkdy Zldz Zm e%d{gd+gd1d*|      d}        Zn e$d+g,      d~        Zod Zpej                  j                  ddddgg       e$d+g,      d               Zq e$g d,      d        Zry)    )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    ^/var/www/dash_apps/app1/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   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'   )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_propsrI   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   #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   )
r:   r.   hstackset_positionsr?   r   r@   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   #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,   #   )r:   r.   rM   switch_orientationadd_positionsr?   r   r@   r>   r3   r4   rO   s       r   $test__EventCollection__add_positionsrX   m   s    57D$IIu[1$%67:< =Mu./23JJ!!-1C1C1EF4 &&'	)
 	NN34MM"br   &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,   rL   )
r:   r.   rM   append_positionsr?   r   r@   r>   r3   r4   rO   s       r   'test__EventCollection__append_positionsr\      s    57D$IIu[1$%67:< =M% 12156JJ!!-1C1C1EF4 &&'	)
 	NN67MM"br   &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,   rL   )
r:   r.   rM   extend_positionsr?   r   r@   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   (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    )	r:   rV   rA   rB   r@   r>   r3   r5   r4   )rP   r6   r9   new_orientationrQ   s        r   )test__EventCollection__switch_orientationre      s    57D$ Od224444!!###&&(M4 &&9 	NN89MM"bMM!Qr   ,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)
r:   rV   r@   rA   rB   r.   r?   r   r>   r3   rO   s       r   ,test__EventCollection__switch_orientation_2xrh      s     67D$&&(M4#7#7#9999JJ!!%"4mD4 &&'	)
 	NN;<r   %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 )
Nrc   r*   r%   r$   z EventCollection: set_orientationr,   r-   r   r    )r:   set_orientationrA   rB   r>   r3   r5   r4   )rP   r6   r9   rd   s       r   &test__EventCollection__set_orientationrl      s    57D$ O)d224444!!###4%&&"	$
 	NN56MM"bMM!Qr   $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   )r:   set_linelengthrC   r>   r3   r5   )rP   r6   r9   new_linelengths       r   %test__EventCollection__set_linelengthrs      s}    57D$N'T0022224%!&'	)
 	NN45MM#rr   $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)r:   set_lineoffsetrD   r>   r3   r5   )rP   r6   r9   new_lineoffsets       r   %test__EventCollection__set_lineoffsetry      s}    57D$N'T0022224%&!'	)
 	NN45MM"br   )#EventCollection_plot__set_linestylerz   #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   )      @r~   )r&      r   zEventCollection: set_ )r:   setr0   getpr3   )propvalueexpectedrP   r6   rH   s         r   test__EventCollection__set_propr      s     (_$56-/):;" 7eX
 67dA!D%=!xxd#x///.tf567r   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)	r:   r.   r/   	set_colorrF   rG   r?   r   r3   )rP   r6   rH   	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   rc   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?r   )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   3  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   E  sc     JJL	BJJ1v1vZZFJJr2::&&&r   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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   P  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      "@rp   r          	transform)g      4@g      >@g      .@r~   )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   j  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   rp   r   r   r   r   r   )rp      ro      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arm64g/$?)remove_text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                  |
       |j                          y )Nr   r   r,   rp   r   r   )unitsoffsetsoffset_transform
facecolors)r0   r1   r.   r   r   vstackravelT	ones_liker   EllipseCollectionr   r2   autoscale_view)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   r   )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   stylec                     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   kr         ?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   z regularpolycollection_rotate.png)r   c                     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,  r0   r1   r.  r   RegularPolyCollectionr   r2   r   )	xxyy	xy_points	rotationsr7   r8   xyalphar   s	            r   !test_regularpolycollection_rotaterL    s    XXcrc3B3hFBbjjlBJJL9:IAqwI7IllnGCI. -	E00VeD2<<9 	#t,	-
 r   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.   rD  )selfkwargs	__class__s     r   rR  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)rS  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__rR  rb  __classcell__)rU  s   @r   SquareCollectionrO    s    	=	Br   rg  r   r    )r>  r   r   Tr@  )r,   r   r,   r   )	r   rE  r0   r1   r.   rD  r   r2   axis)rg  r7   r8   rJ  circle_areassquaress         r    test_regularpolycollection_scalerk    sr    B<== B llnGC
BEEAI;LBGGgt,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)rY  iE     )r   r   ind)
r0   r1   r   savefigioBytesIOrY  r   containsr   )r7   r8   r   mouse_eventfoundindicess         r   test_pickingrw    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   ro  r         ?r~  r   )r.   r   r0   r1   r   draw_without_renderingrb  r   r   rs  r   )r   r   r7   r8   meshr{  r|  r   rt  ru  rv  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      пTrz  )r0   r1   r   r  rb  r   r   rs  )r   r   r7   r8   r  pointspointr{  r|  r   rt  ru  rv  s                r   test_quadmesh_contains_concaver  ;  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   ry  rz  r   )r.   r   r0   r1   r   _Ar  rb  r   r   get_cursor_datar   onesshaper   )	r   r   r7   r8   r  r{  r|  r   rt  s	            r   test_quadmesh_cursor_datar  P  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}  rz  	   )r0   r1   r   r.   r  r  rb  r   r   r   r  )r   r7   r8   r  r{  r|  r   rt  s           r   )test_quadmesh_cursor_data_multiple_pointsr  d  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   drawr   r   r   test_linestyle_single_dashesr  p  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  )ro   ro   rJ  )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  u  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"   r}   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
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   ro   rp   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 )Nr   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 )
Nr   r    )r:  rK  r  r,   )r  r   r!  r:  m)r'   rK  r  )r'   )	r.   r   r0   r1   r   r-  r  r   get_facecolors)r   rK  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   r   )sizei,  jetr   )r:  scmapr   r  z{x:g})fmt)01234r   r   )locr  )numr>  r   r  )r   rK  r'   c              3   B   K   | ]  }|j                         d k(    yw)r   N)	get_alpha.0lines     r   	<genexpr>z6test_pathcollection_legend_elements.<locals>.<genexpr>  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>  s     Att'')U2Ar  z{x:.2f}c                     d| z  S )Nr    r   )r   s    r   <lambda>z5test_pathcollection_legend_elements.<locals>.<lambda>  s
    QqS r   )r   r  r  funcr   r   )r   r    r  r   r   r   r   r   )nbinsmin_n_tickssteps)r,   r   g33333K@i  )r  r   r  )r.   r  seedrandrandintr0   r1   r   legend_elementsr,  r/   rF   r  r   r   legendr  get_markersizesqrtfloatr   mpltickerMaxNLocator
add_artistcanvasr  )r   r   r:  r  r7   r8   r  hlr  r5  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  )  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_arrayr0  0  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:rT  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   rT  tf1f2r6   s          r   *test_fill_between_poly_collection_set_datar;  B  s     	ArA	B	cB#G##Ar288+8++Ar3A&ADMM!Rr   )t_directionr9  r  wheremsg)r9  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   r4  r5  r  )r=  )	r.   r   r   asarrayr   r  r  r   r   )r<  r9  r  r=  r>  r8  r:  s          r   'test_fill_between_poly_collection_raiserA  O  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  r   )
r+  r   r   r  r  	TypeErrorr.   	not_equal	get_arrayany)valsr:  s     r   test_collection_set_arrayrI  _  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   r5  r    r   r   TF)scalexscaleyr   r  )r.   column_stackrepeattiler,  r   r0   r1   r   blended_transform_factoryr   	transAxesr2   r   r   r?   assert_allcloseget_xlim)ar]  xy_pairs	line_segsfr8   r   s          r   test_blended_collection_autolimrX  o  s    AF		!Q!Vc!f1MNOH  #a&!Q0ILLNEAr11",,MEnY%@AT%0JJr{{}r2h7r   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?   rR  get_ylimrS  )r7   r8   s     r   test_singleton_autolimr[  }  s[    llnGCJJq!JJr{{}udm<JJr{{}udm<r   ztransform, expected)r   )r  g      @)rQ  )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   )	r0   r1   r   getattrr.   r?   rR  rZ  rS  )r   r   r7   r8   s       r   test_autolim_with_zerosr^    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   r`  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))r`  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   r]  r  r  r   reescaper   r   r   r  r   )r   r   r   r9  r7   r8   r6   s          r   "test_quadmesh_set_array_validationrg    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   r   r   )r   r    r    r   )r.   r   r0   r   update_scalarmappableget_facecolormamasked_wherer   r,  	get_pathsr   r   r   r   masked_less)rF  rG  zzquadmeshquadmesh_fcpolymeshs         r   'test_polyquadmesh_masked_vertices_arrayrs    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   r]  r0   stackr   r   get_coordinates)r   r   r   r9  rF  rG  r6   r  s           r   test_quadmesh_get_coordinatesrw    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  r4  )r   r   rb  rc  )r.   r   r   r0   r1   r   r  r  r   r  r  r#  rF  )r   r   r9  r7   r8   r6   s         r   test_quadmesh_set_arrayry     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)r  r   )r   r    )r0   r1   r  	colormapsr5  	Normalizer]  r  r  r.   r#  r  r|  r}  )r   r7   r8   r  r   r6   s         r   test_quadmesh_vmin_vmaxr    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    )rK  r,   )r.   r   r   maxr   r0   r1   r]  r-  r  r   r  )r   r   r   r9  rK  
alpha_flatr7   r  r  coll1coll2s              r   test_quadmesh_alpha_arrayr  .  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   333333?)r0   r1   r]  r.   r   r   r  r  r   r-  ri  )r   r7   r8   pcs       r   test_alpha_validationr  F  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   r   )r5  皙?r  g?r  r>  c                     d| z  S )Nr   r   r  s    r   r  z=test_legend_inverse_size_label_relationship.<locals>.<lambda>`  s
    QU r   )r   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  O  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   )r]  r0   r.   r   r   ri  mcolorsto_rgba_array_get_default_facecolorget_cmapr   r   
same_colorget_edgecolorset_facecolorset_edgecolorrj  r-  r#  r   r  )r   r9  r  face_defaultmappeds        r   test_color_logicr  j  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_zorderrj  )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   r]  r0   r   r   ri  uint8)r   r9  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.   rO  r   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    )r>  r  )r>  r   )r   r   r   CircleCollectionset_offsetsr   r   )identityr>  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   r   r   r  z
2021-11-29)r.   r   r   timedelta64
datetime64r0   r   get_offsetsr  r*  r.  r?   rR  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   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  ro   r   1   4   5   ra  7   8   r   r    r   r   r   )r   r   r   r   r   mask)r   r.   rk  r/   r0   r1   r   )
unmasked_xmasked_yr7   r8   s       r   r  r  
  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 )Nr  r   r   r   r   r   r  r   r   )r   r    r   )
r.   rk  r/   r   add_subplotr   r  rM  
set_xticks
set_yticks)r   r   r   r   r   scatr   s          r   test_masked_set_offsetsr    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 )Nr  r  r  r   r   )r.   rk  r/   r   r0   r1   r   rM  r  
isinstancer  type)r   r   r7   r8   r  masked_offsetsunmasked_offsetss          r   test_check_offsets_dtyper  .  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 )	No   r   r   r   ):r  z--rp   r   )r&   r(   r  rK  )r  r4   r5   r+  vlinesr  strr.  	itertoolscycleaxvline)
r   r   r  r   r   r8   r   r  gcolr   s
             r   test_striped_linesr  >  s     ""3'G  %F 
Aq
Aq 	aA!JNN1abJ   (C :1iooh7$??:68 V4q!Q"TQTUVr   )r   pdfsvgepsc                    | 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   r  )r  r  )r  r   ))r  r  )r  ?)r  r  )r  r  r   )hatchzhatch.linewidth)r  r
   set_hatch_linewidthr  
rc_contextr2   get_hatch_linewidth)r   r   r   r   r  polygonsreftests           r   test_hatch_linewidthr  V  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)sr   rq  r  platformre  typesr   numpyr.   numpy.testingr   r   r  
matplotlibr  matplotlib.pyplotpyplotr0   matplotlib.collectionscollectionsr   matplotlib.colorsr5  r  matplotlib.pathpathr   matplotlib.transforms
transformsr   r   r   r	   r
   r   matplotlib.testing.decoratorsr   r   fixturer   r:   rI   rR   rX   r\   r`   re   rh   rl   rs   ry   r   r   r>   r   r   r   r   r  contextr   r   r   machiner  r  r;  rL  rk  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r0  markparametrizer;  rA  rI  rX  r[  r^  rg  rs  rw  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   <module>r     s    	   	 !  G    - #  +E E < O h/0 1%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/x//1W<e!EE&(CV -.DP" Q"J 56DI J 454H I8,,,!*?(	F
 #$$7 8  " 9
5 
5! 9( ( 9* * *+,G -G& +,")55;:.b@5$ (B#89 : ) GG;$ugk#VW1a&$VW	J GG3 8= .1 	8		8-5`-*`	79<F B0#E6 9BB BBJ: (&*N7( #>"?#W$gG%G%" ( ) B  hc
%;<(V ) =V,  <=I >Ir   