a
    ëÝEb50  ã                   @   sh  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/d0„ Z0d1d2„ Z1dS )3é    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sbJ ‚tj|dddd dd	�}| 
¡ s„J ‚|  |¡ t|j	tjƒs J ‚tj|d
d
t ¡ dd�}|  |¡ t|j	tjƒsÔJ ‚tj|ddddd�}| ¡ }| 
¡ rüJ ‚|  |¡ | ¡ |k�sJ ‚| 
¡ �s&J ‚|j	| jk�s8J ‚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
_transformZis_transform_setÚ
isinstanceÚmtransformsÚIdentityTransformÚget_transform)ÚaxÚxy_dataÚxy_pixÚeZintermediate_transform© r#   ú\/home/ja/django-apps/lartica_env/lib/python3.9/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szJ ‚tj|ddd�}tj	|gd	dd�}| d ¡ |  
|¡ t| ¡ tjƒsÄJ ‚tj|d
d
d�}tj	|gt ¡ dd�}|  
|¡ t|jtjƒ�sJ ‚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   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é   ÚblueÚ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_pathÚstarÚfigÚax1Úax2ÚcolÚpatchr#   r#   r$   Útest_clipping`   s*    ÿ
ÿ
rC   Z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   r6   r   r   r   )r   )r
   g      è?)ZxlimZylim)	Zadd_axesÚplotr7   r8   r   r<   r   r;   Úset)Zfig_testZfig_refZax_testÚlÚpZax_refr#   r#   r$   Útest_clipping_zoom|   s    (
rI   c                  C   s–   t j d¡} t j d¡}t ¡ \}}| | |d¡ | dd¡ t ¡ }|j|dd� t	| 
¡ ƒdk shJ ‚t ¡ }|j|dd� t	| 
¡ ƒdk s’J ‚d S )	Ni N  zk.r   r   Úpdf)Úformati@  Úsvg)ÚnpÚrandomr   r:   rE   r   ÚioÚBytesIOZsavefigÚlenÚgetvalue)ÚxÚyr>   r   rJ   rL   r#   r#   r$   Útest_cull_markers�   s    rU   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,   ú/)r5   i€>  )g      ø?ç      @)ÚsizesÚoffsetsÚtransOffsetr5   )r,   r   ZC1)r5   r4   )g      @rZ   )r[   r\   r]   r5   r4   r   é   é	   )r   r:   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>J ‚|jsHJ ‚| j	 
¡  | jr\J ‚|jrfJ ‚|jrpJ ‚||jv s~J ‚||jvsŒJ ‚|j|u sšJ ‚| ¡  | ¡  ||fD ] }|jd u sÄJ ‚|jd u s²J ‚q²||jvsâJ ‚| jsìJ ‚|jsöJ ‚d S )Né$   r.   r/   )r   r:   ZimshowrM   ÚarangeZreshaperE   ÚrangeÚstaleZcanvasZdrawZ_mouseover_setr   ÚremoveÚfigure)r>   r   ZimÚlnÚartr#   r#   r$   Útest_remove¼   s(    






ri   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 )Nr.   ztext.kerning_factorr   é
   rS   r   ÚoÚedge)Úalignr   ZBOXé   Zsawtooth)Zboxstyle)ÚsizeZbbox)r-   r   )rX   )r   r   )r   r   rX   Únone)r   r   )r   ZrcParamsr:   rE   rM   rb   ÚbarÚtextÚdictr   r   r   r<   r7   r8   ZMOVETOZCURVE3Z	CLOSEPOLYr   r   )r>   r?   r@   Zax3Zax4Zpp1r#   r#   r$   Útest_default_edgesÙ   s$    
ÿ


ÿÿürt   c                  C   s   t  g g ¡} |  ¡  d S ©N)ÚmlinesÚLine2DÚ
properties)rg   r#   r#   r$   Útest_propertiesî   s    ry   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ŽJ ‚d S )	Nr   r3   r/   Úgreen)ÚcolorÚzorder)Úfilez  zorder: float
)r   Zsetpr:   rE   rc   Úmartistr   ZspinesÚvaluesrO   ÚStringIOrR   )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s4J ‚| d¡ | ¡ dksNJ ‚| d ¡ | ¡ tjjkslJ ‚d S )Nr/   )r|   i@â )	r   r:   rE   rc   Z
get_zorderrv   rw   r|   Ú
set_zorder)r>   r   rg   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 ru   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__ÚArtistInspectorZget_valid_values)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&J ‚d S )NZ	linewidthr3   )r~   r“   rv   rw   Zget_aliases)Z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 s60    Y  tjtdd�� |  g d¢¡ W d   ƒ n1 sr0    Y  tjtdd�� |  d¡ W d   ƒ n1 sª0    Y  tjtdd�� |  tj¡ W d   ƒ n1 sä0    Y  d S )Nú^alpha must be numeric or None©ÚmatchÚstring)r   r   r   úoutside 0-1 rangeçš™™™™™ñ?)	r~   r‘   ÚpytestÚraisesÚ	TypeErrorZ	set_alphaÚ
ValueErrorrM   Únan©rh   r#   r#   r$   Útest_set_alpha-  s    (,(r¤   c                  C   s2  t  ¡ } tjtdd�� |  d¡ W d   ƒ n1 s60    Y  tjtdd�� |  d¡ W d   ƒ n1 sn0    Y  tjtdd�� |  tj¡ W d   ƒ n1 s¨0    Y  tjtdd�� |  ddg¡ W d   ƒ n1 sä0    Y  tjtdd��  |  dtjg¡ W d   ƒ n1 �s$0    Y  d S )Nr˜   r™   r›   rœ   r�   zalpha must be between 0 and 1r
   )	r~   r‘   rž   rŸ   r    Z_set_alpha_for_arrayr¡   rM   r¢   r£   r#   r#   r$   Útest_set_alpha_for_array9  s    ((*,r¥   c                     s„   ‡ fdd„‰ dˆ _ t ¡ } |  ˆ ¡}ˆ j dks2J ‚|  ¡  ˆ j dksHJ ‚|  d¡ ˆ j dks`J ‚|  |¡ |  ¡  ˆ 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   rj   r   )r¦   r~   r‘   Zadd_callbackZpchangedrƒ   Zremove_callback)rh   Úoidr#   r¨   r$   Útest_callbacksG  s    


r«   c                  C   sv   G dd„ dt jƒ} t| jdƒs"J ‚d| jjv s2J ‚G dd„ d| ƒ}t|jdƒsRJ ‚d|jjv sbJ ‚d|jjv srJ ‚dS )	z3Test autogenerated ``set()`` for Artist subclasses.c                   @   s   e Zd Zdd„ ZdS )z%test_set_signature.<locals>.MyArtist1c                 S   s   d S ru   r#   ©r‰   Úvalr#   r#   r$   Úset_myparam1\  s    z2test_set_signature.<locals>.MyArtist1.set_myparam1N)rŒ   r�   rŽ   r®   r#   r#   r#   r$   Ú	MyArtist1[  s   r¯   Ú_autogenerated_signatureZmyparam1c                   @   s   e Zd Zdd„ ZdS )z%test_set_signature.<locals>.MyArtist2c                 S   s   d S ru   r#   r¬   r#   r#   r$   Úset_myparam2c  s    z2test_set_signature.<locals>.MyArtist2.set_myparam2N)rŒ   r�   rŽ   r±   r#   r#   r#   r$   Ú	MyArtist2b  s   r²   Zmyparam2N©r~   r‘   ÚhasattrrF   r’   )r¯   r²   r#   r#   r$   Útest_set_signatureY  s    rµ   c                  C   sV   G dd„ dt jƒ} t| jdƒr"J ‚| jjdks2J ‚G dd„ d| ƒ}|j| ju sRJ ‚dS )z=set() defined in Artist subclasses should not be overwritten.c                   @   s   e Zd Zdd„ ZdS )z*test_set_is_overwritten.<locals>.MyArtist3c                 [   s   dS )úNot overwritten.Nr#   )r‰   Úkwargsr#   r#   r$   rF   o  s    z.test_set_is_overwritten.<locals>.MyArtist3.setN)rŒ   r�   rŽ   rF   r#   r#   r#   r$   Ú	MyArtist3m  s   r¸   r°   r¶   c                   @   s   e Zd ZdS )z*test_set_is_overwritten.<locals>.MyArtist4N)rŒ   r�   rŽ   r#   r#   r#   r$   Ú	MyArtist4u  s   r¹   Nr³   )r¸   r¹   r#   r#   r$   Útest_set_is_overwrittenk  s
    rº   )2rO   Ú	itertoolsr   ÚnumpyrM   rž   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patchesZpatchesr   Zmatplotlib.linesÚlinesrv   Zmatplotlib.pathÚpathr7   Zmatplotlib.transformsZ
transformsr   Zmatplotlib.collectionsÚcollectionsr'   Zmatplotlib.artistr§   r~   Zmatplotlib.testing.decoratorsr   r   r%   r*   rC   rI   rU   r`   ri   rt   ry   r‚   r„   ÚmarkZparametrizer•   r—   r¤   r¥   r«   rµ   rº   r#   r#   r#   r$   Ú<module>   sD   *$





	
