a
    fø1b£  ã                   @   s  d dl mZ d dl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„ Ze	d	gd
ddddd„ ƒZdd„ Zdd„ Zdd„ Zdd„ ZG dd„ dƒZdd„ Zdd„ Zdd„ Z d d!„ Z!ej" #d"ej$ %¡ ¡d#d$„ ƒZ&d%d&„ Z'd'd(„ Z(dS ))é    )ÚBytesION)Úcm)Úimage_comparison)Úrrulewrapper)Úparasite_axesc                  C   sè   t  ¡ } t | tƒ tj¡ t  d¡}t |tƒ tj¡ t jdd}t jt	 
d¡dd t  ¡  t |tƒ tj¡ t  ¡  t jt	 
d¡t	 
d¡d t t  ¡ tƒ tj¡ t  ¡ } t  ¡ }t  t	 
d¡¡ | d¡ t | tƒ tj¡ d S )	Néy   Úpolar)Z
projectioné
   Zfoobar©Zlabel)ÚxZheightÚlog)ÚpltÚfigureÚpickleÚdumpr   ÚHIGHEST_PROTOCOLÚsubplotÚaxesÚplotÚnpÚarangeÚlegendZbarZgcaZ
set_yscale©ÚfigÚax© r   ú;lib/python3.9/site-packages/matplotlib/tests/test_pickle.pyÚtest_simple   s     

r   zmulti_pickle.pngTZmpl20gË¡E¶óý´?)Zremove_textZstyleZtolc                  C   s$  dt jd< t jddd} t  d¡ t d¡t d¡ }}t d	dd
¡ dd¡ } }}t |d ¡}t  	ddd¡ t  
ttdƒƒ¡ t  	ddd¡ t j|ddgd t  ¡  t  	ddd¡ t  |¡ t  	ddd¡ t  |¡ t  	ddd¡ t  |¡ t  	ddd¡}| d	d¡ | d	d¡ t  ||||¡ t  	ddd¡}| d	d¡ | d	d¡ t  ||||¡ t  	ddd¡ t j||d dd t jdd t  	ddd¡ t j||d ddd tƒ }t | |tj¡ t  d¡ t jjj i ksæJ ‚| !d	¡ t "|¡} t jjj i ksJ ‚|  #¡ dks J ‚d S ) NFzpcolormesh.snapzFigure with a label?)r	   é   )Zfigsizez!Can you fit any more in a figure?é   r	   r   éP   g333333ã¿é   é   é   z//Zooo)Zhatchesé   é   r   é   é	   z$x^2$r
   z
upper left)Zlocg      à¿gš™™™™™É?gš™™™™™Ù?)ZxerrZyerrÚall)$r   ZrcParamsr   Zsuptitler   r   ZlinspaceÚreshapeZsinr   r   ÚlistÚrangeZcontourfZcolorbarZ
pcolormeshÚimshowZpcolorÚset_xlimZset_ylimZ
streamplotZquiverZscatterr   Zerrorbarr   r   r   r   ÚcloseZ_pylab_helpersZGcfZfigsÚseekÚloadZ	get_label)r   r   ÚyÚdataÚuÚvr   Z	result_fhr   r   r   Útest_complete+   sL    







r5   c                  C   sT   ddl m}  t ¡ }| |ƒ}| ddd¡}| g d¢g d¢¡ t |tƒ tj	¡ d S )Nr   )ÚFigureCanvasPdfr"   )r"   r#   r!   )
Zmatplotlib.backends.backend_pdfr6   ÚmfigureÚFigureÚadd_subplotr   r   r   r   r   )r6   r   Ú_r   r   r   r   Útest_no_pyplotq   s    r;   c                  C   s*   ddl m}  | dddƒ}t |tƒ ¡ d S )Nr   )ÚRendererAggr	   é   é   )Úmatplotlib.backends.backend_aggr<   r   r   r   )r<   Zrendererr   r   r   Útest_renderer{   s    r@   c                  C   s^   ddl m}  | dƒ}|jj}| ddd¡}| t d¡ dd¡¡ |j 	¡  t
 |tƒ ¡ d S )Nr   )Únew_figure_manageriè  r"   é   r!   r$   )r?   rA   Úcanvasr   r9   r,   r   r   r)   Údrawr   r   r   )rA   Zmanagerr   r   r   r   r   Ú
test_image   s    
rE   c                  C   s4   t jdd t  ¡ } t | ¡}t |¡ t  ¡  d S )NT)r   )r   r   Zgcfr   ÚdumpsÚloadsrD   )r   Úpfr   r   r   Ú
test_polar   s
    

rI   c                   @   s   e Zd Zdd„ ZdS )ÚTransformBlobc                 C   sJ   t  ¡ | _t  ¡ | _t  | j| j¡| _t  | j¡| _t  | j| j¡| _d S ©N)	ÚmtransformsZIdentityTransformZidentityZ	identity2ZCompositeGenericTransformÚ	compositeZTransformWrapperÚwrapperÚ
composite2)Úselfr   r   r   Ú__init__–   s    

þþzTransformBlob.__init__N)Ú__name__Ú
__module__Ú__qualname__rQ   r   r   r   r   rJ   •   s   rJ   c                  C   s|   t ƒ } t | ¡}~ t |¡} | jj| jks.J ‚dd„ | jj ¡ D ƒ| j	gksPJ ‚| jj
| jj
ksdJ ‚| jj| jjksxJ ‚d S )Nc                 S   s   g | ]
}|ƒ ‘qS r   r   )Ú.0r4   r   r   r   Ú
<listcomp>®   ó    z"test_transform.<locals>.<listcomp>)rJ   r   rF   rG   rN   Z_childrM   Z_parentsÚvaluesrO   Z
input_dimsZoutput_dims)ÚobjrH   r   r   r   Útest_transform¥   s    

"rZ   c                  C   s>   t dƒ} zt t | ¡¡ W n ty8   tdƒ ‚ Y n0 d S )Nr#   z!rrulewrapper pickling test failed)r   r   rG   rF   ÚRecursionErrorÚprint)Úrr   r   r   Útest_rrulewrapper´   s    r^   c                  C   sN   t jddd\} }t t | ¡¡} | jd  dd¡ | jd  ¡ dksJJ ‚d S )	Nr#   T)Zsharexr   r	   r=   r"   )r	   r=   )r   Úsubplotsr   rG   rF   r   r-   Zget_xlim)r   Zaxsr   r   r   Útest_shared½   s    r`   c                  C   sD   t  ¡ \} }| g d¢¡ |jdtjtjfd t t 	| ¡¡ d S )N)çš™™™™™¹?ra   ç333333Ó?rb   Útop)Z	functions)
r   r_   Z
inset_axesZsecondary_xaxisr   ZsquareZsqrtr   rG   rF   r   r   r   r   Útest_inset_and_secondaryÄ   s    rd   Úcmapc                 C   s   t  | ¡ d S rK   )r   rF   )re   r   r   r   Ú	test_cmapË   s    rf   c                  C   sN   t  ¡ } | jd usJ ‚tƒ }t | |¡ | d¡ t |¡}|jd usJJ ‚d S )Nr   )r7   r8   rC   r   r   r   r/   r0   )r   ÚoutZfig2r   r   r   Útest_unpickle_canvasÐ   s    

rh   c                  C   s0   t  g d¢¡} tt t | ¡¡ƒt jks,J ‚d S )N)r   r   r"   r"   )r   Z	host_axesÚtyper   rG   rF   ZHostAxes)r   r   r   r   Útest_mpl_toolkitsÚ   s    rj   ))Úior   r   Znumpyr   ZpytestZ
matplotlibr   Zmatplotlib.testing.decoratorsr   Zmatplotlib.datesr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.transformsZ
transformsrL   Zmatplotlib.figurer   r7   Zmpl_toolkits.axes_grid1r   r   r5   r;   r@   rE   rI   rJ   rZ   r^   r`   rd   ZmarkZparametrizeZ_cmap_registryrX   rf   rh   rj   r   r   r   r   Ú<module>   s8   
ÿ
D
	

