o
    -h,                     @   sV  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Zdd Zejdd	d
dddddejdd gdd ggedd gdd gged d gdd ggejejgdddddded	gdd Zejddeg dgdddgdd ZG d d! d!ejZe
 d"d# Zd$d% Ze
d&d'd(d) Ze
d*gd+d,d-d. Ze
 d/d0 Zd1d2 Zd3d4 Zd5d6 Z ejd7ed	e !dde !ddfejd	e !ddd8e !dde !d9d9fejd:e !ddd8e !dde !d9d9fejeje !ddd8e !dde !d9d9fgd;d< Z"d=d> Z#ejd?ed	d@de $d@fed	ddAe %dAfejd	e !ddd8d@de !dd$d@fejd	e !ddd8ddAe !dd%dAfejd:e !ddd8d@de !dd$d@fejeje !ddd8d@de !dd$d@fgdBdC Z&dDdE Z'dFdG Z(dS )H    N)markers)Path)check_figures_equal)Affine2Dc                  C   s.   t jddd} |  dksJ |  rJ d S )Nonone)marker	fillstyle)r   MarkerStyleget_fillstyle	is_filled)marker_style r   P/var/www/vscode/kcb/lib/python3.10/site-packages/matplotlib/tests/test_marker.pytest_marker_fillstyle   s   r   r   r   x Nonez$\frac{1}{2}$u   $♫$      r   )   r   )r      )r   r   
   )r   r   r   )r   r   r   c                 C   s   t |  d S N)r   r
   r   r   r   r   test_markers_valid   s   r   square)      r   r   r      )r   )r   r    )r   r   r       c                 C   s:   t t t|  W d    d S 1 sw   Y  d S r   )pytestraises
ValueErrorr   r
   r   r   r   r   test_markers_invalid*   s   "r%   c                       s    e Zd ZdZ fddZ  ZS )UnsnappedMarkerStylez
    A MarkerStyle where the snap threshold is force-disabled.

    This is used to compare to polygon/star/asterisk markers which do not have
    any snap threshold set.
    c                    s   t    d | _d S r   )super_recache_snap_threshold)self	__class__r   r   r(   =   s   

zUnsnappedMarkerStyle._recache)__name__
__module____qualname____doc__r(   __classcell__r   r   r+   r   r&   6   s    r&   c                 C   s  |   }|  }d}|jdgdgd|d |jdgdgd|d d |jdgdgd|d |jdgdgtd	|d d |jdgd
gd|d |jdgd
gtd	|d d |jdgdgd|d |jdgdgtd|d |jdgdgd|d |jdgdgtd|d |jdgdgd|d |jdgdgd|d |jdgdgd|d |jdgdgd|d |jdgdgd|d |jdgdgd|d |jdgdgd|d |jdgdgtd|d |jddd |jddd d S )N  r   )r!   r   -   r   sr5   r   r   )r!   r   D      ?)r!   r   r   r   pg      @)r   r   r   r    )   r   hg      @)r9   r   r   r!   )r9   r      Hr   )   r   g     6@8)r   g      @xlimylim)add_subplotscatterr&   set)fig_testfig_refax_testax_refsizer   r   r   test_poly_markerB   s.   rJ   c                  C   sN   d} t  \}}|jdgdgd| d |jdgdgd| d |jddd	 d S )
Nr2   r   )r   r   r4   r   )r   r   r   )r         ?r   r7   r?   )pltsubplotsrC   rD   )rI   figaxr   r   r   test_star_markero   s
   rQ   g333333?)tolc                    s   |   }|   d} fdd}|jdgdgd|d |dd| |jdgdgd	|d |dd| |jd
gd
gd|d |d
d|d  |jddd  jddd d S )Nr2   c                    sJ    j | g| gt||d ddkr# j | g| gt||d d S d S )Nr4   extpng)rC   r&   getfixturevalue)ystylerI   rH   requestr   r   draw_ref_marker   s   
z-test_asterisk_marker.<locals>.draw_ref_markerr   )r!   r   r4   +rK   )r!   r   r   r   )r!   r   r3   r   r   rL   r?   )rB   rC   rD   )rE   rF   rY   rG   rI   rZ   r   rX   r   test_asterisk_marker~   s   	r\   rT   g(\?)
extensionsrR   c                 C   s<   |   }|  }|jdddddd |jdddddd d S )Nr   r   d   )r   
markersizemarkeredgewidthz	$\bullet$)rB   plot)rF   rE   rH   rG   r   r   r   test_text_marker   s   rb   c                 C   s  t tjj}d}d}|| d }d| | }d| | d }| || j || j f | g d}|||j || j f |g d}	ttjjD ]O\}
}|
| }|
| d }|j||g||d gdddd	 |j||d||d
ddd |j||d d||d
ddd |	j||g||d gddd||d
ddd
 qL|jd|fdd| fd |	jd|fdd| fd |	d |		d d S )N2   r   r   r   )r   r   r   r   k-r    )c	linestylelwr   fullwhite)rf   r   r_   r`   r	   markerfacecolor)rf   rg   rh   r   r_   r`   r	   rk   r   r?   off)
lenr   r
   set_size_inchesdpiadd_axes	enumeratera   rD   axis)rF   rE   marker_countmarker_sizencolnrowwidthheightrH   rG   ir   r   rV   r   r   r   test_marker_clipping   s<    

rz   c                  C   sB   t d} t dd}t jd|d}|  | | ksJ dS )zBTest that initializing marker with transform is a simple addition.r   r   	transformN)r   r
   r   	translateget_transform)r   tt_markerr   r   r   test_marker_init_transforms   s   
r   c                  C   <   t d} t jddd}| dksJ |  dksJ d S )N*round)	joinstyle)r   r
   get_joinstyler   styled_markerr   r   r   test_marker_init_joinstyle      
r   c                  C   r   )Nr   r   )capstyle)r   r
   get_capstyler   r   r   r   test_marker_init_captyle   r   r   zmarker,transform,expectedr{   r   z$|||$c                 C   s:   |  |}|| usJ | |ksJ | j|jusJ d S r   )transformedget_user_transform_user_transform)r   r|   expected
new_markerr   r   r   test_marker_transformed   s   
r   c                  C   sz   t d} tt |  }W d    n1 sw   Y  tt | jddd}W d    d S 1 s6w   Y  d S )Nr   r   degrad)r   r
   r"   r#   r$   rotated)r   r   r   r   r   test_marker_rotated_invalid   s   

"r   zmarker,deg,rad,expectedr   g{Gz?c                 C   s>   | j ||d}|| usJ | |ksJ | j|jusJ d S )Nr   )r   r   r   )r   r   r   r   r   r   r   r   test_marker_rotated  s   r   c                  C   s   t d} | d}|| usJ | t dksJ | j|jus$J | dd}|| us0J | t ddks=J | j|jusEJ t jdt ddd} | d}|| us\J t ddd}| |ksnJ | j|jusvJ d S )N1r   r    r   r{   )r   r
   scaledr   r   scaler   r}   )r   r   r   r   r   r   test_marker_scaled  s   


r   c                  C   s@   t dd} t ddt d}|  d| ksJ d S )Nr   leftZ   )r   r
   r   
rotate_degget_alt_transform)m1m2r   r   r   test_alt_transform,  s   r   ))numpynpmatplotlib.pyplotpyplotrM   
matplotlibr   matplotlib.pathr   matplotlib.testing.decoratorsr   matplotlib.transformsr   r"   r   markparametrizeTICKLEFTarrayMOVETOLINETOr
   r   r%   r&   rJ   rQ   r\   rb   rz   r   r   r   r}   r   r   r   rotater   r   r   r   r   r   r   <module>   s    


,
#

(

