U
    Fvf!,                     @   sZ  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dd dddg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/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 #ddfejd9e #ddd8e #dde #ddfejeje #ddd8e #dde #ddfgd:d; 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d8d?de #dd&d?fejd
e #ddd8dd@e #dd'd@fejd9e #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dAdB Z(dCdD Z)dEdF Z*dS )G    N)markers)MatplotlibDeprecationWarning)Path)check_figures_equal)Affine2Dc                  C   s.   t jddd} |  dkst|  r*td S )Nonone)marker	fillstyle)r   MarkerStyleZget_fillstyleAssertionErrorZ	is_filled)Zmarker_style r   @/tmp/pip-unpacked-wheel-7vhvci0g/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   sV   t t t } W 5 Q R X t|  t t td } W 5 Q R X 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!      c              	   C   s$   t t t|  W 5 Q R X 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	   sr4   r   r   )r"   r   D      ?)r"   r   r   r   pg      @)r   r   r   r!   )   r   hg      @)r8   r   r   r"   )r8   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.    rG   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 )
Nr1   r   )r   r   r3   r   )r   r   r   )r          ?r    r6   r>   )pltZsubplotsr@   rA   )rF   ZfigZ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 )Nr1   c                    sF    j | g| gt||d ddkrB j | g| gt||d d S )Nr3   extZpng)r@   r&   Zgetfixturevalue)ystylerF   rE   requestr   r   draw_ref_marker   s
    z-test_asterisk_marker.<locals>.draw_ref_markerr   )r"   r   r3   +rH   )r"   r   r   r   )r"   r   r2   r   r   rI   r>   )r?   r@   rA   )rB   rC   rP   rD   rF   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 | ddddg}|||j || j f |ddddg}	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   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plotrA   Zaxis)rC   rB   Zmarker_countZmarker_sizeZncolZnrowwidthheightrE   rD   ir	   r   rM   r   r   r   test_marker_clipping   sN     
         
rd   c                  C   sB   t d} t dd}t jd|d}|  | | ks>tdS )zBTest that initializing marker with transform is a simple addition.r   r   	transformN)r   r   r   	translateZget_transformr   )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s0t|  |ks@td S )N*)Z	joinstyle)r   r   Z	JoinStyleroundZget_joinstyler   )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s0t|  |ks@td S )Nrj   )Zcapstyle)r   r   ZCapStylerk   Zget_capstyler   )r	   Zcapstlrl   r   r   r   test_marker_init_captyle   s
    
rn   zmarker,transform,expectedre   z$|||$c                 C   s:   |  |}|| k	st| |ks&t| j|jk	s6td S r   )Ztransformedr   get_user_transform_user_transform)r	   rf   expected
new_markerr   r   r   test_marker_transformed   s    
rs   c               	   C   sP   t d} tt |  }W 5 Q R X tt | jddd}W 5 Q R X 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}|| k	st| |ks*t| j|jk	s:td S )Nrt   )rw   r   ro   rp   )r	   ru   rv   rq   rr   r   r   r   test_marker_rotated  s    ry   c                  C   s   t d} | d}|| k	s t| t dks8t| j|jk	sHt| dd}|| k	s`t| t ddkszt| j|jk	stt jdt ddd} | d}|| k	stt ddd}| |kst| j|jk	std S )N1r   r!   r   re   )	r   r   Zscaledr   ro   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<td S )Nr   leftZ   )r   r   r   
rotate_degZget_alt_transformr   )m1m2r   r   r   test_alt_transform,  s    r   )+ZnumpynpZmatplotlib.pyplotZpyplotrJ   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&   rG   rK   rS   rd   ri   rm   rn   rg   rs   rx   r~   rotatery   r{   r   r   r   r   r   <module>   s   
	

,
 
(    
         
