o
    i/                     @   s   d dl Z d dlmZmZmZmZmZmZ d dlm	Z
 d dlmZ d dlmZ d dlZd dlZd dlZdd Zdd Zdd Zejd	d
d Zejdg ddd Zdd ZdS )    N)FigureCanvasBaseLocationEventMouseButton
MouseEventNavigationToolbar2RendererBasec               	      sR  t   dd tddD }  fddtddD }tdd	}d
dg}d
dg}dd }| | |||| | | dd |||| | g |||| | | |dd ||| | | g ||| td|jd D ]}| | ||d|d d f || qk| | ||g | | | |||g  | | ||g g  | | |||dd | d S )Nc                 S   s   g | ]}t j|qS  )pathPathunit_regular_polygon.0ir   r   ^/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/matplotlib/tests/test_backend_bases.py
<listcomp>   s    z&test_uses_per_path.<locals>.<listcomp>      c                    s   g | ]}  |  qS r   )rotate
get_matrixcopyr   idr   r   r      s             )
      redgreenc                 S   s   t  }t|| ||}| }dd ||| |tt||t| ||g g dgg dD }	|	|||||}
|rOt
j|	t|d}t||
d |
gsQJ d S d S )Nc                 S   s   g | ]	\}}}}}|qS r   r   )r   xoyopath_idgc0rgbFacer   r   r   r      s    z5test_uses_per_path.<locals>.check.<locals>.<listcomp>Fscreen)	minlengthr   )r   list_iter_collection_raw_pathsnew_gc_iter_collectionrangelen
transformsAffineDeltaTransform_iter_collection_uses_per_pathnpbincountsetissubset)master_transformpathsall_transformsoffsets
facecolors
edgecolorsrb	raw_pathsgcidsusesseenr   r   r   check   s,   
z!test_uses_per_path.<locals>.checkr   )r,   Affine2Dr*   r/   arangereshapeshape)r4   tforms_matricesr6   r7   r8   r?   nr   r   r   test_uses_per_path   s(   rF   c                 C   s6   t | tjd< t }t|}| }|dksJ d S )Nzsavefig.directoryz	image.png)strpltrcParamsfigurer   get_default_filename)tmpdirfigcanvasfilenamer   r   r   test_get_default_filename7   s
   rP   c                  C   s.   t  } t| }t |  t | jrJ d S )N)rH   rJ   r   closefignum_existsnumber)rM   rN   r   r   r   test_canvas_change?   s   
rT   pdfc                 C   s   t   | tjdd tt}t   t	|dksJ dt
|d jv s)J W d    n1 s3w   Y  tt"}t    t	|dksLJ dt
|d jv sWJ W d    d S 1 sbw   Y  d S )NDISPLAYz:999r   z=Matplotlib is currently using pdf, which is a non-GUI backendr   )rH   subplotssetitemosenvironpytestwarnsUserWarningshowr+   rG   messagegcf)monkeypatchrecr   r   r   test_non_gui_warningH   s    

"rc   zx, y))*      )Nrd   )NN)   gq=
ף Y@)g     i@g       @c                 C   s  t  \}}t|}td|| |}| d u r|jd u sJ n|jt| ks&J t|jts.J |d u r:|jd u s9J n|jt|ksCJ t|jtsKJ | d ur}|d urt	d
|| |||| |siJ dd  |_|_t	d|| |sJ d S d S d S )N
test_eventz
x={} +y={}c                 S   s   dS )Nfoor   )xr   r   r   <lambda>p   s    z.test_location_event_position.<locals>.<lambda>zx=foo +y=foo)rH   rW   r   r   ri   int
isinstanceyrematchformatformat_xdataformat_ydataformat_coord	fmt_xdata	fmt_ydata)ri   rm   rM   axrN   eventr   r   r   test_location_event_position[   s(   
rx   c                  C   s  t  \} }|jdd | d u sJ t| j}|  | dks%J | }| }d}d}|j	
|t}|j	
|t}td| jg|tjR  }	| jj|	j|	 td| jg|tjR  }
| jj|
j|
 | |	j|
jfks{J | |	j|
jfksJ td| jg|tjR  }	| jj|	j|	 td| jg|tjR  }
| jj|
j|
 | tj|dd	d
ksJ | tj|dd	d
ksJ |  | d u sJ d S )Nlogit)xscaleZOOM)gư>g?)gwJ?g?button_press_eventbutton_release_eventr   g|=)relabs)rH   rW   r1   get_navigate_moder   rN   zoomget_xlimget_ylim	transData	transformastyperk   r   r   LEFT	callbacksprocessnamexdataydataRIGHTr[   approx)rM   rv   tbxlim0ylim0d0d1s0s1start_event
stop_eventr   r   r   test_interactive_zoomt   sd   
r   )rn   matplotlib.backend_basesr   r   r   r   r   r   matplotlib.pyplotpyplotrH   matplotlib.transformsr,   matplotlib.pathr	   rY   numpyr/   r[   rF   rP   rT   markbackendrc   parametrizerx   r   r   r   r   r   <module>   s$     )
	

