o
    gx,                     @   sX  d dl Z d dlmZ d dlZ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mZ d dlmZmZ dd Zdd Zedgd	d
dd Z edgddd Z!dd Z"edgd	dddd Z#dd Z$edgd	dddd Z%dd Z&dd  Z'd!d" Z(ej)*d#g d$d%d& Z+d'd( Z,d)d* Z-d+d, Z.d-d. Z/dS )/    N)chain)check_figures_equalimage_comparisonc                  C   s6  t  } | ddg | ddg d}| j|}tj|ddddd}| | |j	| jks1J tj|dddd dd	}|
 sBJ | | t|j	tjsPJ tj|d
d
t dd}| | t|j	tjsjJ tj|ddddd}| }|
 r~J | | | |ksJ |
 sJ |j	| jksJ d S )N         r   yellow      ?)widthheightfcalphax   coral)r   r   r   	transformr   d   )r   r   r   r   )pltaxesset_xlimset_ylim	transDatar   mpatchesEllipse	add_patch
_transformis_transform_set
isinstancemtransformsIdentityTransformget_transform)axxy_dataxy_pixeintermediate_transform r&   Z/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/matplotlib/tests/test_artist.pytest_patch_transform_of_none   s8   




r(   c                  C   s
  t  } | ddg | ddg d}| j|}tj|ddd}tj	|gddd}| 
| | |  | jks=J tj|ddd}tj	|gd	dd}|d  | 
| t| tjsbJ tj|d
d
d}tj	|gt dd}| 
| t|jtjsJ d S )Nr   r   r   )r   r   r	   r
   )	facecolorr   r   r   r   )r   r   )r   r   r   r   r   r   r   r   mcollectionsPatchCollectionadd_collectionget_offset_transformr    set_transformr   r   r   _transOffset)r!   r"   r#   r$   cr&   r&   r'   !test_collection_transform_of_none<   s.   




r1   clip_path_clippingT)remove_textc            	      C   s  t j  } |  jd9  _|  jd8  _t j  }|jd d d |_t j| |}t jd }| jd9  _tj	ddddd\}\}}t
j|gd	d
dddd}|||j || tj|d	d
dddd}|||j || |ddg |ddg d S )N   r      g@r   T)sharexsharey   blueredgffffff?*)lw	edgecolorr)   r   hatchr   )mpathPathunit_rectangledeepcopyverticesunit_circlemake_compound_pathunit_regular_starr   subplotsr*   PathCollectionset_clip_pathr   r,   r   	PathPatchr   r   r   )	exteriorinterior	clip_pathstarfigax1ax2colpatchr&   r&   r'   test_clipping`   s*   

rV   png)
extensionsc                 C   s   |  g d}|ddgddg\}tddgddgddgddgddgg}tj||jd}|| | g d}|ddgddg |jddd |jddd d S )	N)r   r   r   r   r@   r   r   r   )r   )r
   g      ?)xlimylim)	add_axesplotrA   rB   r   rL   r   rK   set)fig_testfig_refax_testlpax_refr&   r&   r'   test_clipping_zoom|   s   (
rd   c                  C   s   t jd} t jd}t \}}|| |d |dd t }|j|dd t	|
 dk s4J t }|j|dd t	|
 dk sIJ d S )	Ni N  zk.r   r   pdf)formati@  svg)nprandomr   rI   r\   r   ioBytesIOsavefiglengetvalue)xyrQ   r!   re   rg   r&   r&   r'   test_cull_markers   s   rq   hatchingdefault)r3   stylec                  C   s   t dd\} }tjddddd}|| tjddgdg|jdd	}|| tjd
ddddd}|| tjddgdg|jddd}|| |	dd |
dd d S )Nr   r   r   r   r4   /)r?   i>  )g      ?      @)sizesoffsetstransOffsetr?   )r4   r   C1)r?   r>   )g      @rw   )rx   ry   rz   r?   r>   r      	   )r   rI   r   	Rectangler   r*   RegularPolyCollectionr   r,   r   r   )rQ   r!   rect1rect2rect3rect4r&   r&   r'   test_hatching   s&   





r   c                  C   s   t  \} }|tddd}|td\}| jsJ |js$J | j	
  | jr.J |jr3J |jr8J ||jv s?J ||jvsFJ |j|u sMJ |  |  ||fD ]}|jd u sbJ |jd u siJ qY||jvsqJ | jsvJ |js{J d S )N$   r6   r9   )r   rI   imshowrh   arangereshaper\   rangestalecanvasdraw_mouseover_setr   removefigure)rQ   r!   imlnartr&   r&   r'   test_remove   s(   






r   zdefault_edges.pngc               	   C   s   dt jd< t dd\} \\}}\}}|tdtddtdd tdd |jtdtddd	 |jd
d
ddtddd |	d |
d tjtg dtjjtjjtjjtjjgd|jd}|| d S )Nr6   ztext.kerning_factorr   
   ro   r   oedge)alignr   BOX   sawtooth)boxstyle)sizebbox)r5   r   )ru   )r   r   )r   r   ru   none)r   r   )r   rcParamsrI   r\   rh   r   bartextdictr   r   r   rL   rA   rB   MOVETOCURVE3	CLOSEPOLYr   r   )rQ   rR   rS   ax3ax4pp1r&   r&   r'   test_default_edges   s$   



r   c                  C   s   t g g } |   d S N)mlinesLine2D
properties)r   r&   r&   r'   test_properties   s   r   c                  C   s   t g  t g g t  \} }|td}|td}tt||dd t j|j dd t	
 }t j|d|d | dksGJ d S )	Nr   r=   r9   green)colorzorder)filez  zorder: float
)r   setprI   r\   r   martistr   spinesvaluesrj   StringIOrn   )rQ   r!   lines1lines2sior&   r&   r'   	test_setp   s   
r   c                  C   sp   t  \} }|jtdd d\}| tjjksJ |d | dks'J |d  | tjjks6J d S )Nr9   )r   i@ )	r   rI   r\   r   
get_zorderr   r   r   
set_zorder)rQ   r!   r   r&   r&   r'   test_None_zorder  s   

r   zaccept_clause, expected)) unknown)zACCEPTS: [ '-' | '--' | '-.' ]z[ '-' | '--' | '-.' ])zACCEPTS: Some description.Some description.)z.. ACCEPTS: Some description.r   )z	arg : intint)z
*arg : intr   )z"arg : int
ACCEPTS: Something else.zSomething else. c                 C   s>   G dd dt j}d|  |j_t |d}||ksJ d S )Nc                   @   s   e Zd Zdd ZdS )z:test_artist_inspector_get_valid_values.<locals>.TestArtistc                 S   s   d S r   r&   )selfargr&   r&   r'   set_f  s   z@test_artist_inspector_get_valid_values.<locals>.TestArtist.set_fN)__name__
__module____qualname__r   r&   r&   r&   r'   
TestArtist  s    r   z
    Some text.

    %s
    f)r   Artistr   __doc__ArtistInspectorget_valid_values)accept_clauseexpectedr   valid_valuesr&   r&   r'   &test_artist_inspector_get_valid_values  s   
r   c                  C   s*   t tj} |  }|d dhksJ d S )N	linewidthr=   )r   r   r   r   get_aliases)aialiasesr&   r&   r'   !test_artist_inspector_get_aliases&  s   r   c                  C   s   t  } tjtdd | d W d    n1 sw   Y  tjtdd | g d W d    n1 s9w   Y  tjtdd | d W d    n1 sUw   Y  tjtdd | tj W d    d S 1 ssw   Y  d S )N^alpha must be numeric or Nonematchstring)r   r   r   outside 0-1 range皙?)	r   r   pytestraises	TypeError	set_alpha
ValueErrorrh   nanr   r&   r&   r'   test_set_alpha-  s   "r   c                  C   s2  t  } tjtdd | d W d    n1 sw   Y  tjtdd | d W d    n1 s7w   Y  tjtdd | tj W d    n1 sTw   Y  tjtdd | ddg W d    n1 srw   Y  tjtdd | dtjg W d    d S 1 sw   Y  d S )Nr   r   r   r   r   zalpha must be between 0 and 1r
   )	r   r   r   r   r   _set_alpha_for_arrayr   rh   r   r   r&   r&   r'   test_set_alpha_for_array9  s    "r   c                     s    fdd d _ t } |  } j dksJ |    j dks$J | d  j dks0J | | |    j dks@J d S )Nc                    s     j d7  _ d S )Nr   )counter)artistfuncr&   r'   r   H  s   ztest_callbacks.<locals>.funcr   r   r   r   )r   r   r   add_callbackpchangedr   remove_callback)r   oidr&   r   r'   test_callbacksG  s   


r   )0rj   	itertoolsr   numpyrh   r   matplotlib.pyplotpyplotr   matplotlib.patchespatchesr   matplotlib.lineslinesr   matplotlib.pathpathrA   matplotlib.transforms
transformsr   matplotlib.collectionscollectionsr*   matplotlib.artistr   r   matplotlib.testing.decoratorsr   r   r(   r1   rV   rd   rq   r   r   r   r   r   r   markparametrizer   r   r   r   r   r&   r&   r&   r'   <module>   sB    *$






	