U
    \	¸ax,  ã                
   @   sb  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#d$d%d&d'd(d)d*g¡d+d,„ ƒZ+d-d.„ Z,d/d0„ Z-d1d2„ Z.d3d4„ Z/dS )5é    N)Úchain)Úcheck_figures_equalÚimage_comparisonc                  C   s<  t  ¡ } |  ddg¡ |  ddg¡ d}| j |¡}tj|ddddd}|  |¡ |j	| jksbt
‚tj|dddd dd	}| ¡ s„t
‚|  |¡ t|j	tjƒs t
‚tj|d
d
t ¡ dd}|  |¡ t|j	tjƒsÔt
‚tj|ddddd}| ¡ }| ¡ rüt
‚|  |¡ | ¡ |kst
‚| ¡ s&t
‚|j	| jks8t
‚d S )Né   é   ©é   r   Úyellowç      à?)ÚwidthÚheightÚfcÚalphaéx   Úcoral)r   r   r   Ú	transformr   éd   )r   r   r   r   )ÚpltÚaxesÚset_xlimÚset_ylimÚ	transDatar   ÚmpatchesÚEllipseÚ	add_patchZ
_transformÚAssertionErrorZis_transform_setÚ
isinstanceÚmtransformsÚIdentityTransformÚget_transform)ÚaxÚxy_dataÚxy_pixÚeZintermediate_transform© r$   ú@/tmp/pip-unpacked-wheel-wjyw_3jo/matplotlib/tests/test_artist.pyÚtest_patch_transform_of_none   s<    
 ÿ

 ÿ
ÿ
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szt‚tj|ddd}tj	|gd	dd}| d ¡ |  
|¡ t| ¡ tjƒsÄt‚tj|d
d
d}tj	|gt ¡ dd}|  
|¡ t|jtjƒst‚d S )Nr   r   r   )r   r   r	   r
   )Ú	facecolorr   r   r   r   )r   r   )r   r   r   r   r   r   r   r   ÚmcollectionsZPatchCollectionÚadd_collectionZget_offset_transformr   r   Zset_transformr   r   r   Z_transOffset)r    r!   r"   r#   Úcr$   r$   r%   Ú!test_collection_transform_of_none<   s.    

ÿ

þ
r+   Z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)ZsharexZshareyé   ZblueZredgffffffæ?Ú*)ÚlwÚ	edgecolorr'   r   Úhatchéýÿÿÿr   )ÚmpathÚPathZunit_rectangleÚdeepcopyZverticesZunit_circleZmake_compound_pathZunit_regular_starr   Úsubplotsr(   ZPathCollectionÚset_clip_pathr   r)   r   Ú	PathPatchr   r   r   )	ZexteriorZinteriorZ	clip_pathZstarÚfigÚax1Úax2ÚcolÚpatchr$   r$   r%   Útest_clipping`   s0      ÿ
 ÿ
rA   Zpng)Ú
extensionsc                 C   s°   |   ddddg¡}| 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}| |¡ |  ddddg¡}| ddgddg¡ |jddd |jddd d S )Nr   r   r5   r   )r   )r
   g      è?)ZxlimZylim)	Zadd_axesÚplotr6   r7   r   r;   r   r:   Úset)Zfig_testZfig_refZax_testÚlÚpZax_refr$   r$   r%   Útest_clipping_zoom|   s    (
rG   c                  C   s–   t j d¡} t j d¡}t ¡ \}}| | |d¡ | dd¡ t ¡ }|j|dd t	| 
¡ ƒdk sht‚t ¡ }|j|dd t	| 
¡ ƒdk s’t‚d S )	Ni N  zk.r   r   Úpdf)Úformati@  Úsvg)ÚnpÚrandomr   r9   rC   r   ÚioÚBytesIOZsavefigÚlenÚgetvaluer   )ÚxÚyr<   r    rH   rJ   r$   r$   r%   Útest_cull_markers   s    rS   ZhatchingÚdefault)r,   Ú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   r-   ú/)r4   i€>  )g      ø?ç      @)ÚsizesÚoffsetsÚtransOffsetr4   )r-   r   ZC1)r4   r3   )g      @rX   )rY   rZ   r[   r4   r3   r   é   é	   )r   r9   r   Z	Rectangler   r(   ZRegularPolyCollectionr   r)   r   r   )r<   r    Zrect1Zrect2Zrect3Zrect4r$   r$   r%   Útest_hatching    s(    

ý


 ý
r^   c                  C   sú   t  ¡ \} }| t d¡ dd¡¡}| tdƒ¡\}| js>t	‚|jsHt	‚| j
 ¡  | jr\t	‚|jrft	‚|jrpt	‚||jks~t	‚||jksŒt	‚|j|ksšt	‚| ¡  | ¡  ||fD ] }|jd ksÄt	‚|jd ks²t	‚q²||jksât	‚| jsìt	‚|jsöt	‚d S )Né$   r/   r0   )r   r9   ZimshowrK   ÚarangeZreshaperC   ÚrangeÚstaler   ZcanvasZdrawZ_mouseover_setr   ÚremoveÚfigure)r<   r    ZimÚlnÚartr$   r$   r%   Útest_remove¼   s(    






rg   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 ddddgtjjtjjtjjtjjg¡d|jd}| |¡ d S )Nr/   ztext.kerning_factorr   é
   rQ   r   ÚoZedge)Zalignr   ZBOXé   Zsawtooth)Zboxstyle)ÚsizeZbbox)r.   r   rV   )r   r   )r   r   Únone)r   r   )r   ZrcParamsr9   rC   rK   r`   ÚbarÚtextÚdictr   r   r   r;   r6   r7   ZMOVETOZCURVE3Z	CLOSEPOLYr   r   )r<   r=   r>   Zax3Zax4Zpp1r$   r$   r%   Útest_default_edgesÙ   s,    
  ÿ

 ÿÿ ürp   c                  C   s   t  g g ¡} |  ¡  d S ©N)ÚmlinesÚLine2DZ
properties)re   r$   r$   r%   Útest_propertiesî   s    rt   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sŽt‚d S )	Nr   r2   r0   Zgreen)ÚcolorÚzorder)Úfilez  zorder: float
)r   Zsetpr9   rC   ra   Úmartistr   ZspinesÚvaluesrM   ÚStringIOrP   r   )r<   r    Zlines1Zlines2Úsior$   r$   r%   Ú	test_setpó   s    
r|   c                  C   sp   t  ¡ \} }|jtdƒd d\}| ¡ tjjks4t‚| 	d¡ | ¡ dksNt‚| 	d ¡ | ¡ tjjkslt‚d S )Nr0   )rv   i@â )
r   r9   rC   ra   Z
get_zorderrr   rs   rv   r   Ú
set_zorder)r<   r    re   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:t‚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 rq   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)rx   ÚArtistr…   Ú__doc__ÚArtistInspectorZget_valid_valuesr   )Zaccept_clauseÚexpectedr‰   Zvalid_valuesr$   r$   r%   Ú&test_artist_inspector_get_valid_values  s    
ür   c                  C   s*   t  tj¡} |  ¡ }|d dhks&t‚d S )NZ	linewidthr2   )rx   r   rr   rs   Zget_aliasesr   )ZaiÚaliasesr$   r$   r%   Ú!test_artist_inspector_get_aliases&  s    r‘   c               	   C   s¤   t  ¡ } tjtdd |  d¡ W 5 Q R X tjtdd |  dddg¡ W 5 Q R X tjtdd |  d¡ W 5 Q R X tjtdd |  tj¡ W 5 Q R X d S )	Nú^alpha must be numeric or None©ÚmatchÚstringr   r   r   úoutside 0-1 rangeçš™™™™™ñ?)	rx   r‹   ÚpytestÚraisesÚ	TypeErrorZ	set_alphaÚ
ValueErrorrK   Únan©rf   r$   r$   r%   Útest_set_alpha-  s    rž   c               	   C   sÌ   t  ¡ } tjtdd |  d¡ W 5 Q R X tjtdd |  d¡ W 5 Q R X tjtdd |  tj¡ W 5 Q R X tjtdd |  ddg¡ W 5 Q R X tjtdd |  dtjg¡ W 5 Q R X d S )Nr’   r“   r•   r–   r—   zalpha must be between 0 and 1r
   )	rx   r‹   r˜   r™   rš   Z_set_alpha_for_arrayr›   rK   rœ   r   r$   r$   r%   Útest_set_alpha_for_array9  s    rŸ   c                     s„   ‡ fdd„‰ dˆ _ t ¡ } |  ˆ ¡}ˆ j dks2t‚|  ¡  ˆ j dksHt‚|  d¡ ˆ j dks`t‚|  |¡ |  ¡  ˆ j dks€t‚d S )Nc                    s   ˆ  j d7  _ d S )Nr   )Úcounter)Úartist©Úfuncr$   r%   r£   H  s    ztest_callbacks.<locals>.funcr   r   rh   r   )r    rx   r‹   Zadd_callbackr   Zpchangedr}   Zremove_callback)rf   Úoidr$   r¢   r%   Útest_callbacksG  s    


r¥   )0rM   Ú	itertoolsr   ZnumpyrK   r˜   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patchesZpatchesr   Zmatplotlib.linesÚlinesrr   Zmatplotlib.pathÚpathr6   Zmatplotlib.transformsZ
transformsr   Zmatplotlib.collectionsÚcollectionsr(   Zmatplotlib.artistr¡   rx   Zmatplotlib.testing.decoratorsr   r   r&   r+   rA   rG   rS   r^   rg   rp   rt   r|   r~   ÚmarkZparametrizer   r‘   rž   rŸ   r¥   r$   r$   r$   r%   Ú<module>   sP   *$





ù	
