o
    ¹iàY  ã                   @   s®  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mZmZmZ d dlmZ 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„ ƒZ!edgƒdd„ ƒZ"ed gƒd!d"„ ƒZ#ed#gƒd$d%„ ƒZ$eg d&¢ƒd'd(„ ƒZ%ed)gƒd*d+„ ƒZ&d,d-„ Z'd.d/„ Z(d0d1„ Z)d2d3„ Z*d4d5„ Z+ed6gd7d8d9d:„ ƒZ,ed;gd7d8d<d=„ ƒZ-ed>gd7d8d?d@„ ƒZ.edAgd7d8dBdC„ ƒZ/dDdE„ Z0dFdG„ Z1edHgd7d8dIdJ„ ƒZ2dKdL„ Z3ej4 5dM¡dNdO„ ƒZ6ej4 5dM¡dPdQ„ ƒZ7ej4 5dM¡dRdS„ ƒZ8edTgƒdUdV„ ƒZ9edWgd7dMdXdYdZ„ ƒZ:d[d\„ Z;d]d^„ Z<d_d`„ Z=dadb„ Z>dcdd„ Z?dedf„ Z@dS )gé    N)ÚSimpleNamespace)Úassert_array_equalÚassert_array_almost_equal)Ú
CollectionÚLineCollectionÚEventCollectionÚPolyCollection)Úimage_comparisonc               
   C   s¸   t  g d¢¡} t  g d¢¡}d}d}d}d}g d¢}d}d	}t| |||||||d
}	t ¡ }
|
 ddd¡}| |	¡ | d¡ | ||||||||dœ	}| dd¡ | 	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ÚfigureÚadd_subplotÚadd_collectionÚ	set_titleÚset_xlimÚset_ylim)r   r   r   r   r   r   r   r   r   ÚcollÚfigÚaxÚprops© r+   ú\/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/matplotlib/tests/test_collections.pyÚgenerate_EventCollection_plot   sF   ù


ø

r-   ÚEventCollection_plot__defaultc                  C   sÊ   t ƒ \} }}t||d |d |d |d ƒ tj |d | ¡ ¡ |d | ¡ ks+J ‚| ¡ s1J ‚|d | ¡ ks;J ‚|d | 	¡ ksEJ ‚| 
¡ dgksNJ ‚| ¡ g| ¡ ¢D ]}tj ||d ¡ qWd S )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)Ú_r'   r*   r   r+   r+   r,   Ú test__EventCollection__get_props:   s    üÿr;   Ú#EventCollection_plot__set_positionsc                  C   st   t ƒ \} }}t |d |d g¡}| |¡ tj || ¡ ¡ t|||d |d |d ƒ |  d¡ |  	dd¡ d S )	Nr   r   r   r   r   zEventCollection: set_positionsr   éZ   )
r-   r   ÚhstackÚset_positionsr1   r   r2   r0   r$   r%   ©Úspltr'   r*   Únew_positionsr+   r+   r,   Ú$test__EventCollection__set_positionsT   s   
ý
rC   Ú#EventCollection_plot__add_positionsc                  C   s   t ƒ \} }}t |d |d d g¡}| ¡  | |d d ¡ | ¡  tj || ¡ ¡ t|||d |d |d ƒ |  	d¡ |  
dd	¡ d S )
Nr   r   r   r   r   r   zEventCollection: add_positionsr   é#   )r-   r   r>   Úswitch_orientationÚadd_positionsr1   r   r2   r0   r$   r%   r@   r+   r+   r,   Ú$test__EventCollection__add_positionsb   s    

ÿü
rH   Ú&EventCollection_plot__append_positionsc                  C   s€   t ƒ \} }}t |d |d d g¡}| |d d ¡ tj || ¡ ¡ t|||d |d |d ƒ |  d¡ |  	dd	¡ d S )
Nr   r   r   r   r   r   z!EventCollection: append_positionsr   r=   )
r-   r   r>   Úappend_positionsr1   r   r2   r0   r$   r%   r@   r+   r+   r,   Ú'test__EventCollection__append_positionst   s   

ÿü
rK   Ú&EventCollection_plot__extend_positionsc                  C   sˆ   t ƒ \} }}t |d |d dd … g¡}| |d dd … ¡ tj || ¡ ¡ t|||d |d |d ƒ |  d¡ |  	dd	¡ d S )
Nr   r   r   r   r   r   z!EventCollection: extend_positionsr   r=   )
r-   r   r>   Úextend_positionsr1   r   r2   r0   r$   r%   r@   r+   r+   r,   Ú'test__EventCollection__extend_positions„   s   
ÿü
rN   Ú(EventCollection_plot__switch_orientationc                  C   sz   t ƒ \} }}d}| ¡  || ¡ ksJ ‚| ¡ rJ ‚| ¡ }t|||d |d |ƒ |  d¡ |  dd¡ |  dd¡ d S )	NÚverticalr   r   z#EventCollection: switch_orientationr   r   r   r   )	r-   rF   r3   r4   r2   r0   r$   r&   r%   )rA   r'   r*   Únew_orientationrB   r+   r+   r,   Ú)test__EventCollection__switch_orientation”   s   ý
rR   Ú,EventCollection_plot__switch_orientation__2xc                  C   s€   t ƒ \} }}| ¡  | ¡  | ¡ }|d | ¡ ksJ ‚| ¡ s"J ‚tj |d |¡ t|||d |d |d ƒ |  	d¡ dS )zc
    Check that calling switch_orientation twice sets the orientation back to
    the default.
    r   r   r   r   z&EventCollection: switch_orientation 2xN)
r-   rF   r2   r3   r4   r   r1   r   r0   r$   r@   r+   r+   r,   Ú,test__EventCollection__switch_orientation_2x¥   s   ürT   Ú%EventCollection_plot__set_orientationc                  C   sx   t ƒ \} }}d}| |¡ || ¡ ksJ ‚| ¡ rJ ‚t||d |d |d |ƒ |  d¡ |  dd¡ |  dd	¡ d S )
NrP   r   r   r   z EventCollection: set_orientationr   r   r   r   )r-   Úset_orientationr3   r4   r0   r$   r&   r%   )rA   r'   r*   rQ   r+   r+   r,   Ú&test__EventCollection__set_orientationº   s   
ü
rW   Ú$EventCollection_plot__set_linelengthc                  C   s`   t ƒ \} }}d}| |¡ || ¡ ksJ ‚t||d ||d |d ƒ |  d¡ |  dd¡ d S )Né   r   r   r   zEventCollection: set_linelengthiìÿÿÿé   )r-   Úset_linelengthr5   r0   r$   r&   )rA   r'   r*   Únew_linelengthr+   r+   r,   Ú%test__EventCollection__set_linelengthË   s   
ü
r]   Ú$EventCollection_plot__set_lineoffsetc                  C   s`   t ƒ \} }}d}| |¡ || ¡ ksJ ‚t||d |d ||d ƒ |  d¡ |  dd¡ d S )Ng      Àr   r   r   zEventCollection: set_lineoffsetiúÿÿÿéüÿÿÿ)r-   Úset_lineoffsetr6   r0   r$   r&   )rA   r'   r*   Únew_lineoffsetr+   r+   r,   Ú%test__EventCollection__set_lineoffsetÚ   s   
ü
rb   )Ú#EventCollection_plot__set_linestylerc   Ú#EventCollection_plot__set_linewidthc                  C   sn   dddgfdddgfdfD ]'\} }}t ƒ \}}}|jdi | |i¤Ž t || ¡|ks,J ‚| d| › ¡ qd S )Nr   Údashed)r   )ç      @rf   )r   é   rg   zEventCollection: set_r+   )r-   Úsetr    Úgetpr$   )ÚpropÚvalueÚexpectedrA   r'   r:   r+   r+   r,   Útest__EventCollection__set_propé   s   

ýørm   ÚEventCollection_plot__set_colorc                  C   sX   t ƒ \} }}t g d¢¡}| |¡ | ¡ g| ¡ ¢D ]	}tj ||¡ q|  d¡ d S )N)r   r   r   r   zEventCollection: set_color)	r-   r   r   Ú	set_colorr8   r9   r1   r   r$   )rA   r'   r:   Ú	new_colorr   r+   r+   r,   Ú test__EventCollection__set_colorú   s   
rq   c           
      C   sÎ   |   ¡ }| ¡ dks| ¡ dks|du rd}d}n| ¡ dkr$d}d}ntdƒ‚t|ƒD ]8\}}	|	d|f ||d  ks>J ‚|	d|f ||d  ksLJ ‚|	d|f || ksXJ ‚|	d|f || ksdJ ‚q,dS )	zp
    Test helper checking that all values in the segment are correct, given a
    particular set of inputs.
    r   ÚnoneNr   r   rP   z.orientation must be 'horizontal' or 'vertical'r   )Úget_segmentsÚlowerÚ
ValueErrorÚ	enumerate)
r'   r   r   r   r   ÚsegmentsÚpos1Úpos2ÚiÚsegmentr+   r+   r,   r0     s   ür0   c                  C   s4   t  g ¡} |  t ¡ ¡}t| ¡ tj ¡  ¡ ƒ d S ©N)	ÚmcollectionsÚPathCollectionÚget_datalimÚmtransformsÚIdentityTransformr   Ú
get_pointsÚBboxÚnull)ÚcolÚcol_data_limr+   r+   r,   Útest_null_collection_datalim  s
   
ÿr‡   c                  C   sV   t  ¡  t  ¡ } |  ddgddg¡}|  |¡ | jj}|  g g ¡}| jj|ks)J ‚d S )Nr   r   )r    r!   ÚaxesÚscatterr#   ÚdataLimÚbounds)r)   r'   r‹   r+   r+   r,   Útest_add_collection%  s   
rŒ   c                  C   sä   t  ¡ } t d¡t d¡}}t ddd¡ dd¡ }}t  ||||¡}| | j¡j	dks/J ‚t  
¡  t  ¡ } t ddd¡}t dd	d¡}t ||¡\}}t ¡  d
d¡| j }t j||t |¡t |¡|d | jj	dkspJ ‚d S )Né   é
   r   éP   )r
   r
   g      @g      "@éûÿÿÿrZ   éþÿÿÿé   é   é    ©Ú	transform)g      4@g      >@g      .@rf   )r    rˆ   r   ÚarangeÚlinspaceÚreshapeÚquiverr   Ú	transDatar‹   r!   Úmeshgridr€   ÚAffine2DÚ	translateÚsinÚcosrŠ   )r)   ÚxÚyÚuÚvÚqÚtransr+   r+   r,   Útest_quiver_limits1  s    r§   c                  C   s€   t  ¡ } t ddd¡}t ddd¡}t ||¡\}}t ¡  dd¡| j }t j	||t 
|¡t |¡|d t| jjd	d
d d S )Nr   rŽ   rZ   r‘   r’   r“   r”   r•   )rZ   é   rY   é   r   )Údecimal)r    rˆ   r   r˜   rœ   r€   r   rž   r›   ÚbarbsrŸ   r    r   rŠ   r‹   )r)   r¡   r¢   r¦   r+   r+   r,   Útest_barb_limitsB  s    

ÿr¬   z EllipseCollection_test_image.pngT)Úremove_textc               	   C   sž   t  ¡ \} }t d¡}t d¡}t ||¡\}}t | ¡ | ¡ f¡j}||d  }||d  }t |¡d }	t	j
|||	d||jdd}
| |
¡ | ¡  d S )Nr’   é   r   rZ   r¡   rr   )ÚunitsÚoffsetsÚtransOffsetÚ
facecolors)r    Úsubplotsr   r—   rœ   ÚvstackÚravelÚTÚ	ones_liker}   ÚEllipseCollectionr›   r#   Úautoscale_view)r(   r)   r¡   r¢   ÚXÚYÚXYÚwwÚhhÚaaÚecr+   r+   r,   Útest_EllipseCollectionP  s    


ü
rÁ   zpolycollection_close.pngc                  C   sB  ddl m}  ddgddgddgddggddgddgddgddggddgddgddgddggddgddgddgddggg}t ¡ }| |ƒ}g d¢}ttd	ƒƒ}tj|t|ƒ d
d}| 	d¡ g }g }t
||ƒD ]\}	}
| |	gt|ƒ ¡ | |
gt|ƒ ¡ qg| |¡ |j||dd | dd¡ | dd¡ | dd¡ d S )Nr   )ÚAxes3Dr
   r   r   r   ç      @)ÚrÚgÚbr¢   Úkrg   g      Ð?©r   gffffffæ?r¢   )ÚzsÚzdirr’   r®   )Úmpl_toolkits.mplot3drÂ   r    r!   ÚlistÚranger}   r   ÚlenÚ	set_alphaÚzipÚextendro   Úadd_collection3dÚ
set_xlim3dÚ
set_zlim3dÚ
set_ylim3d)rÂ   Ú	vertsQuadr(   r)   ÚcolorsÚzposÚpolyrÉ   ÚcsÚzÚcr+   r+   r,   Útest_polycollection_closef  s0   üÿ

rÝ   z regularpolycollection_rotate.pngc            	      C   sš   t jd d…d d…f \} }t  |  ¡ | ¡ g¡}t  ddt j t|ƒ¡}t ¡ \}}t	||ƒD ]\}}t
jdd||g|jd}|j|dd q/| ¡  d S )	NrŽ   r   r   r’   )éd   )ÚsizesÚrotationr°   r±   T©Úautolim)r   ÚmgridÚ	transposeÚflattenr˜   ÚpirÎ   r    r³   rÐ   r}   ÚRegularPolyCollectionr›   r#   r¹   )	ÚxxÚyyÚ	xy_pointsÚ	rotationsr(   r)   ÚxyÚalphar…   r+   r+   r,   Ú!test_regularpolycollection_rotate‹  s   þrî   zregularpolycollection_scale.pngc                  C   s`   G dd„ dt jƒ} t ¡ \}}dg}tjd g}| |||jd}|j|dd | g d¢¡ d S )	Nc                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )z:test_regularpolycollection_scale.<locals>.SquareCollectionc                    s    t ƒ jddtjd i|¤Ž d S )Nr’   rà   rÃ   )r’   )ÚsuperÚ__init__r   ræ   )ÚselfÚkwargs©Ú	__class__r+   r,   rð   Ÿ  s    zCtest_regularpolycollection_scale.<locals>.SquareCollection.__init__c                 S   sJ   | j }d|jj }||jj |jj }||jj |jj }t ¡  	||¡S )z4Return transform scaling circle areas to data space.g      R@)
rˆ   r!   ÚdpiÚbboxÚwidthÚviewLimÚheightr€   r   Úscale)rñ   r)   Ú
pts2pixelsÚscale_xÚscale_yr+   r+   r,   Úget_transform¢  s
   zHtest_regularpolycollection_scale.<locals>.SquareCollection.get_transform)Ú__name__Ú
__module__Ú__qualname__rð   rþ   Ú__classcell__r+   r+   ró   r,   ÚSquareCollectionž  s    r  )r   r   r   )rß   r°   r±   Trá   )r   r   r   r   )	r}   rç   r    r³   r   ræ   r›   r#   Úaxis)r  r(   r)   rì   Úcircle_areasÚsquaresr+   r+   r,   Ú test_regularpolycollection_scaleš  s   ÿr  c                  C   sn   t  ¡ \} }|jdgdgdgdd}| jt ¡ | jd tddd}| |¡\}}|s-J ‚t	|d	 dgƒ d S )
Nr   iè  T)Úpicker)rõ   iE  éð   )r¡   r¢   Úind)
r    r³   r‰   ÚsavefigÚioÚBytesIOrõ   r   Úcontainsr   )r(   r)   r…   Úmouse_eventÚfoundÚindicesr+   r+   r,   Útest_picking·  s   r  c                   C   s,   t jg d¢g d¢dddgfd t  ¡  d S )N)r   r   r   r
   r   )r   )r    r‰   Údrawr+   r+   r+   r,   Útest_linestyle_single_dashesÁ  s    r  zsize_in_xy.pngc                  C   s`   t  ¡ \} }d\}}}d}ddg}tj|||d||jd}| |¡ | dd¡ | dd¡ d S )N)©rŽ   rŽ   rŽ   r   r  )rY   rY   rì   )r¯   r°   r±   r   r¨   )r    r³   r}   r¸   r›   r#   r%   r&   )r(   r)   ÚwidthsÚheightsÚanglesÚcoordsÚer+   r+   r,   Útest_size_in_xyÆ  s   
ü
r  c                 C   sŠ   g d¢}| j g d¢|d }}| j g d¢|d}| j g d¢|d}| j g d¢|d}t|d t|d t|d	 t|d
 t|d d S )N)é   é   é   )ÚredÚblueÚgreen)Úindex©r   r   r®   )r   re   Údashdot)TFT)Ú
edgecolors)r²   )Ú
linewidths)Ú
linestyles)Úantialiaseds)ÚSeriesr   )Úpdr"  rÀ   ÚfcÚlwÚlsr¿   r+   r+   r,   Útest_pandas_indexingÙ  s   



r.  Údefaultc                  C   s”   t  g ¡} |  ddg¡ |  g d¢¡ |  ¡ dgd ksJ ‚|  ¡ g d¢d ks*J ‚|  g d¢¡ |  ¡ dgd ks<J ‚|  ¡ g d¢k ¡ sHJ ‚d S )Nú-r#  r/   r©   r   )r0  r0  r0  r®   )r}   r~   Úset_linestylesÚset_linewidthsÚget_linestylesÚget_linewidthsÚall©r…   r+   r+   r,   Útest_lslw_bcastê  s   
r7  c                  C   ó<   t jg dd} |  ¡ dksJ ‚|  d¡ |  ¡ dksJ ‚d S )NÚround)ÚcapstyleÚbutt)r}   r~   Úget_capstyleÚset_capstyler6  r+   r+   r,   Útest_capstyleø  ó   
r>  c                  C   r8  )Nr9  )Ú	joinstyleÚmiter)r}   r~   Úget_joinstyleÚset_joinstyler6  r+   r+   r,   Útest_joinstyle   r?  rD  zcap_and_joinstyle.pngc                  C   sØ   t  ¡ } |  ddd¡}| ddg¡ | ddg¡ t g d¢¡}t dgdgdgg¡t g d	¢g¡ }t d
¡}||d d …d d …df< ||d d …d d …df< t|g d¢d}| 	d¡ | 
d¡ | |¡ | d¡ d S )Nr   g      à¿g      ø?ç      @)r
   r   r   r
   r   r   )r
   r
   r   )r®   r®   r   r   )rŽ   rY   rZ   rÈ   r9  rA  z2Line collection with customized caps and joinstyle)r    r!   r"   r%   r&   r   r   Úzerosr   r=  rC  r#   r$   )r(   r)   r¡   ÚysÚsegsÚline_segmentsr+   r+   r,   Útest_cap_and_joinstyle_image  s   &



rJ  zscatter_post_alpha.png)r­   Ústylec                  C   s@   t  ¡ \} }|jtdƒtdƒtdƒd}| j ¡  | d¡ d S )Nrg   )rÜ   gš™™™™™¹?)r    r³   r‰   rÍ   Úcanvasr  rÏ   )r(   r)   Úscr+   r+   r,   Útest_scatter_post_alpha  s   
rN  c               	   C   s~  t j d¡ t j dd¡\} }t j d¡}t jjdddd}t jjdddd}t ¡ \}}|j| |||dd	dd
}|jdd\}}t	|ƒdksIJ ‚t
t  |¡ t¡t  d¡ƒ t  dd„ |D ƒ¡}	| t  d¡d ¡}
t
|	|
ƒ |j||dd}|jdd\}}t	|ƒdksˆJ ‚|j||dd}|jdddd\}}t  dd„ |D ƒ¡}t
|dƒ t  dd„ |D ƒ¡}t
|dƒ |j||dd}|jddddd„ d\}}dd„ |D ƒ}t  t  |¡ t¡d ¡}t||ƒ |j||dd}tjjdd g d!¢d"}|j|d\}}t	|ƒt	|ƒksJ ‚g d#¢}|j|ddd$\}}t
t  |¡ t¡|dd … ƒ ||||fD ]}| |¡ q/|j ¡  d S )%Ni!N,r   rŽ   r   rg   )Úsizei,  ÚjetÚo)rÜ   ÚsÚcmapÚmarkerr&  z{x:g})Úfmtc                 S   ó   g | ]}|  ¡ ‘qS r+   )r8   ©Ú.0Úliner+   r+   r,   Ú
<listcomp>4  ó    z7test_pathcollection_legend_elements.<locals>.<listcomp>r’   r   )Úlocé	   )Únumrß   r   r  )rj   rí   r   c                 S   rV  r+   )Ú	get_alpharW  r+   r+   r,   rZ  >  r[  c                 S   rV  r+   )Úget_markerfacecolorrW  r+   r+   r,   rZ  @  r[  z{x:.2f}c                 S   s   d|  S )Nr   r+   )r¡   r+   r+   r,   Ú<lambda>E  s    z5test_pathcollection_legend_elements.<locals>.<lambda>)rj   r^  rU  Úfuncc                 S   rV  r+   )Úget_markersizerW  r+   r+   r,   rZ  F  r[  r®   r   )r   r   rE  r®   rg   r©   r   rŽ   )ÚnbinsÚmin_n_ticksÚsteps)r   r   g33333³K@i  )r^  rj   rU  )r   ÚrandomÚseedÚrandÚrandintr    r³   r‰   Úlegend_elementsrÎ   r   r   ÚastypeÚfloatr—   rS  ÚlegendÚsqrtr   ÚmplÚtickerÚMaxNLocatorÚ
add_artistrL  r  )r¡   r¢   rÜ   rR  r(   r)   rM  ÚhÚlr×   Úcolors2Úl1Úh2Úlab2Úl2rí   r   Úl3ÚactsizesÚlabeledsizesÚl4r\  Úh5Úlab5ÚlevelsÚh6Úlab6r+   r+   r,   Ú#test_pathcollection_legend_elements'  sR   




ÿ

ÿr„  c                  C   s2   t  g d¢¡} t| ƒ}t j | t  g d¢¡¡ d S )N)r®   r   r   rŽ   )r   r   r   r1   r   )Úarrr'   r+   r+   r,   Útest_EventCollection_nosortZ  s   r†  c                  C   s  t jdt jd ddd¡} t| ƒ}tt| ƒƒ}t|jƒt|jƒks#J ‚t|j|jƒD ]\}}t  	|j
|j
¡s8J ‚t  	|j|j¡sBJ ‚q*t jdtd}dd„ | D ƒ|d d …< t|ƒ}t|jƒt|jƒkseJ ‚t|j|jƒD ]\}}t  	|j
|j
¡szJ ‚t  	|j|j¡s„J ‚qld S )Nr   )ÚdtyperŽ   r’   r   c                 S   s   g | ]}t d d„ |D ƒƒ‘qS )c                 s   s    | ]}t |ƒV  qd S r|   ©Útuple)rX  r¢   r+   r+   r,   Ú	<genexpr>k  s   € z=test_collection_set_verts_array.<locals>.<listcomp>.<genexpr>rˆ  )rX  r¡   r+   r+   r,   rZ  k  s    z3test_collection_set_verts_array.<locals>.<listcomp>)r   r—   Údoubler™   r   rÌ   rÎ   Ú_pathsrÐ   Úarray_equalÚ	_verticesÚ_codesÚemptyÚobject)ÚvertsÚcol_arrÚcol_listÚapÚlpÚverts_tupleÚcol_arr_tupleÚatpr+   r+   r,   Útest_collection_set_verts_arraya  s   þrš  c                  C   sœ   g d¢} d}t  t  | d¡t  d|gt| ƒ¡g¡}| t| ƒddg¡}t ¡ \}}t 	|j
|j¡}| t||d¡ |jddd t j | ¡ d	d
g¡ d S )N)r   r   r’   gš™™™™™É?r   r   r•   TF)ÚscalexÚscaleyr   rÃ   )r   Úcolumn_stackÚrepeatÚtilerÎ   r™   r    r³   r€   Úblended_transform_factoryr›   Ú	transAxesr#   r   r¹   r1   Úassert_allcloseÚget_xlim)Úarù   Úxy_pairsÚ	line_segsÚfr)   r¦   r+   r+   r,   Útest_blended_collection_autolims  s   &r¨  c                  C   sH   t  ¡ \} }| dd¡ tj | ¡ ddg¡ tj | ¡ ddg¡ d S )Nr   g¸…ëQ¸®¿g¸…ëQ¸®?)r    r³   r‰   r   r1   r¢  Úget_ylimr£  )r(   r)   r+   r+   r,   Útest_singleton_autolim  s   rª  c                  C   s¦   t  d¡} t  d¡}t  d¡ d¡}t ¡ \}}| | |t  |j¡¡}| |¡ |j	 
¡  t  | ¡ |¡s7J ‚| t  d¡¡ |j	 
¡  t  | ¡ t  d¡¡sQJ ‚d S )Nr’   r]  )r®   r®   )r   r—   r™   r    r³   Ú
pcolormeshÚonesÚshapeÚ	set_arrayrL  r  r  Ú	get_array)r¡   r¢   rÛ   r(   r)   r'   r+   r+   r,   Útest_quadmesh_set_arrayˆ  s   




r°  )Ar  Útypesr   Únumpyr   Únumpy.testingr   r   ÚpytestÚ
matplotlibrp  Úmatplotlib.pyplotÚpyplotr    Úmatplotlib.collectionsÚcollectionsr}   Úmatplotlib.transformsÚ
transformsr€   r   r   r   r   Úmatplotlib.testing.decoratorsr	   r-   r;   rC   rH   rK   rN   rR   rT   rW   r]   rb   rm   rq   r0   r‡   rŒ   r§   r¬   rÁ   rÝ   rî   r  r  r  r  r.  ÚmarkrK  r7  r>  rD  rJ  rN  r„  r†  rš  r¨  rª  r°  r+   r+   r+   r,   Ú<module>   s    )












	

$










ÿ
3