o
    :a<                     @   sB  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Zdd Zejd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 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)d* ZdS )+    N)markers)Path)check_figures_equalc                  C   s.   t jddd} |  dksJ |  rJ d S )NoZnone)marker	fillstyle)r   MarkerStyleZget_fillstyleZ	is_filled)Zmarker_style r	   >/usr/lib/python3/dist-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   Z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   )pytestZ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_recacheZ_snap_threshold)self	__class__r	   r
   r!   >   s   

zUnsnappedMarkerStyle._recache)__name__
__module____qualname____doc__r!   __classcell__r	   r	   r#   r
   r   7   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   sr-   r   r   )r   r   D      ?)r   r   r   r   pg      @)r   r   r   r   )   r   hg      @)r1   r   r   r   )r1   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_markerC   s.   r@   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 )
Nr*   r   )r   r   r,   r   )r   r   r   )r         ?r   r/   r7   )pltZsubplotsr9   r:   )r?   ZfigZaxr	   r	   r
   test_star_markerp   s
   rD   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 )Nr*   c                    sJ    j | g| gt||d ddkr# j | g| gt||d d S d S )Nr,   extZpng)r9   r   Zgetfixturevalue)yZstyler?   r>   requestr	   r
   draw_ref_marker   s   
z-test_asterisk_marker.<locals>.draw_ref_markerr   )r   r   r,   +rA   )r   r   r   r   )r   r   r+   r   r   rB   r7   )r8   r9   r:   )r;   r<   rH   r=   r?   rI   r	   rG   r
   test_asterisk_marker   s   	rK   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   ZfullZwhite)rO   r   
markersizemarkeredgewidthr   markerfacecolor)rO   rP   rQ   r   rR   rS   r   rT   r   r7   Zoff)
lenr   r   Zset_size_inchesZdpiZadd_axes	enumerateZplotr:   Zaxis)r<   r;   Zmarker_countZmarker_sizeZncolZnrowwidthZheightr>   r=   ir   r   rF   r	   r	   r
   test_marker_clipping   s<    

rY   )ZnumpyZnpZmatplotlib.pyplotZpyplotrC   Z
matplotlibr   Zmatplotlib.pathr   Zmatplotlib.testing.decoratorsr   r   r   ZmarkZparametrizeZTICKLEFTZarrayZMOVETOZLINETOr   r   r   r   r@   rD   rK   rY   r	   r	   r	   r
   <module>   s\    


,
 