a
    
d!,                     @   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   MarkerStyleZget_fillstyleZ	is_filled)Zmarker_style r   e/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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(0    Y  t|  t t td } W d    n1 sf0    Y  t|  d S r   )pytestZwarnsr   r   r   )msr   r   r   test_deprecated_marker+   s    &
(r   Zsquare)      r   r   r      )r   )r   r    )r   r   r       c                 C   s8   t t t|  W d    n1 s*0    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_recacheZ_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	   sr3   r   r   )r!   r   D      ?)r!   r   r   r   pg      @)r   r   r   r    )   r   hg      @)r7   r   r   r!   )r7   r      Hr   )   r   g     6@8)r   g      @ZxlimZylim)add_subplotscatterr%   set)fig_testfig_refax_testax_refsizer   r   r   test_poly_markerL   s.    rF   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 )
Nr0   r   )r   r   r2   r   )r   r   r   )r         ?r   r5   r=   )pltZsubplotsr?   r@   )rE   Zfigaxr   r   r   test_star_markery   s
    rK   g333333?)Z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 )Nr0   c                    sF    j | g| gt||d ddkrB j | g| gt||d d S )Nr2   extZpng)r?   r%   Zgetfixturevalue)ystylerE   rD   requestr   r   draw_ref_marker   s
    z-test_asterisk_marker.<locals>.draw_ref_markerr   )r!   r   r2   +rG   )r!   r   r   r   )r!   r   r1   r   r   rH   r=   )r>   r?   r@   )rA   rB   rP   rC   rE   rQ   r   rO   r   test_asterisk_marker   s    	rS   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 ]\}
}|
| }|
| 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
 q|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   fullZwhite)rW   r	   
markersizemarkeredgewidthr
   markerfacecolor)rW   rX   rY   r	   r[   r\   r
   r]   r   r=   off)
lenr   r   Zset_size_inchesZdpiZadd_axes	enumerateZplotr@   Zaxis)rB   rA   Zmarker_countZmarker_sizeZncolZnrowwidthheightrD   rC   ir	   r   rM   r   r   r   test_marker_clipping   s<     

rd   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   	translateZget_transform)r	   tZt_markerr   r   r   test_marker_init_transforms   s    
ri   c                  C   sD   t d} t jj}t jd|d}| |ks0J |  |ks@J d S )N*)Z	joinstyle)r   r   Z	JoinStyleroundZget_joinstyle)r	   Zjstlstyled_markerr   r   r   test_marker_init_joinstyle   s
    
rm   c                  C   sD   t d} t jj}t jd|d}| |ks0J |  |ks@J d S )Nrj   )Zcapstyle)r   r   ZCapStylerk   Zget_capstyle)r	   Zcapstlrl   r   r   r   test_marker_init_captyle   s
    
rn   zmarker,transform,expectedre   r   z$|||$c                 C   s:   |  |}|| usJ | |ks&J | j|jus6J d S r   )Ztransformedget_user_transform_user_transform)r	   rf   expected
new_markerr   r   r   test_marker_transformed   s    
rs   c                  C   sx   t d} tt |  }W d    n1 s20    Y  tt | jddd}W d    n1 sj0    Y  d S )Nr   r   degrad)r   r   r   r"   r#   rotated)r	   rr   r   r   r   test_marker_rotated_invalid   s
    
&rx   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 )Nrt   )rw   ro   rp   )r	   ru   rv   rq   rr   r   r   r   test_marker_rotated  s    ry   c                  C   s   t d} | d}|| us J | t dks8J | j|jusHJ | dd}|| us`J | t ddkszJ | j|jusJ t jdt ddd} | d}|| usJ t ddd}| |ksJ | j|jusJ d S )N1r   r    r   re   )r   r   Zscaledro   r   Zscalerp   rg   )r	   rr   rq   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_degZget_alt_transform)m1m2r   r   r   test_alt_transform,  s    r   )+numpynpZmatplotlib.pyplotZpyplotrI   Z
matplotlibr   Zmatplotlib._api.deprecationr   Zmatplotlib.pathr   Zmatplotlib.testing.decoratorsr   Zmatplotlib.transformsr   r   r   markZparametrizeZTICKLEFTarrayZMOVETOZLINETOr   r   r   r$   r%   rF   rK   rS   rd   ri   rm   rn   rg   rs   rx   r~   rotatery   r{   r   r   r   r   r   <module>   s   
	

,
 
(

