o
    li!,                     @   sT  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 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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-d. Zd/d0 Z d1d2 Z!d3d4 Z"ejd5ed
e #dde #ddfejd
e #ddd6e #dde #d7d7fejd8e #ddd6e #dde #d7d7fejeje #ddd6e #dde #d7d7fgd9d: Z$d;d< Z%ejd=ed
d>de &d>fed
dd?e 'd?fejd
e #ddd6d>de #dd&d>fejd
e #ddd6dd?e #dd'd?fejd8e #ddd6d>de #dd&d>fejeje #ddd6d>de #dd&d>fgd@dA Z(dBdC Z)dDdE Z*dS )F    N)markers)MatplotlibDeprecationWarning)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   Z/home/ubuntu/SoloSpeech/.venv/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   c                  C   s~   t t t } W d    n1 sw   Y  t|  t t td } W d    n1 s3w   Y  t|  d S r   )pytestwarnsr   r   r   )msr   r   r   test_deprecated_marker+   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   )r   raises
ValueErrorr   r   r   r   r   r   test_markers_invalid4   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,   G   s   

zUnsnappedMarkerStyle._recache)__name__
__module____qualname____doc__r,   __classcell__r   r   r/   r   r*   @   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	   sr9   r   r   )r&   r   D      ?)r&   r   r   r   pg      @)r   r   r   r%   )   r   hg      @)r=   r   r   r&   )r=   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_markerL   s.   rN   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 )
Nr6   r   )r   r   r8   r   )r   r   r   )r$         ?r$   r;   rC   )pltsubplotsrG   rH   )rM   figaxr   r   r   test_star_markery   s
   rU   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 )Nr6   c                    sJ    j | g| gt||d ddkr# j | g| gt||d d S d S )Nr8   extpng)rG   r*   getfixturevalue)ystylerM   rL   requestr   r   draw_ref_marker   s   
z-test_asterisk_marker.<locals>.draw_ref_markerr   )r&   r   r8   +rO   )r&   r   r   r   )r&   r   r7   r   r   rP   rC   )rF   rG   rH   )rI   rJ   r]   rK   rM   r^   r   r\   r   test_asterisk_marker   s   	r`   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)rd   r	   
markersizemarkeredgewidthr
   markerfacecolor)rd   re   rf   r	   ri   rj   r
   rk   r$   rC   off)
lenr   r   set_size_inchesdpiadd_axes	enumerateplotrH   axis)rJ   rI   marker_countmarker_sizencolnrowwidthheightrL   rK   ir	   r   rZ   r   r   r   test_marker_clipping   s<    

r{   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   D   t d} t jj}t jd|d}| |ksJ |  |ks J d S )N*)	joinstyle)r   r   	JoinStyleroundget_joinstyle)r	   jstlstyled_markerr   r   r   test_marker_init_joinstyle   
   
r   c                  C   r   )Nr   )capstyle)r   r   CapStyler   get_capstyle)r	   capstlr   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pyplotrQ   
matplotlibr   matplotlib._api.deprecationr   matplotlib.pathr   matplotlib.testing.decoratorsr   matplotlib.transformsr   r   r   markparametrizeTICKLEFTarrayMOVETOLINETOr   r   r"   r)   r*   rN   rU   r`   r{   r   r   r   r~   r   r   r   rotater   r   r   r   r   r   r   <module>   s    
	

,
 
(

