o
    l’×i+   ã                   @   sž  d dl mZ d dlZd dlZd dl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lmZ d dlmZ d	d
„ Zdd„ Ze	j  !d¡edgddd„ ƒƒZ"dd„ Z#e	j  !d¡edgddd„ ƒƒZ$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/ 0d*e
j1 2¡ ¡d+d,„ ƒZ3d-d.„ Z4d/d0„ Z5d1d2„ Z6d3d4„ Z7d5d6„ Z8dS )7é    )ÚBytesION)Úcm)Úsubprocess_run_helper)Úcheck_figures_equal)Úrrulewrapper)ÚVertexSelector)Ú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)Ú
projectioné
   Úfoobar©Úlabel)ÚxÚheightÚlog)ÚpltÚfigureÚpickleÚdumpr   ÚHIGHEST_PROTOCOLÚsubplotÚaxesÚplotÚnpÚarangeÚlegendÚbarÚgcaÚ
set_yscale©ÚfigÚax© r$   úZ/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/matplotlib/tests/test_pickle.pyÚtest_simple   s    

r&   c                 C   s¾  |   d¡ t | ¡ 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jdd d S )N)r   é   z!Can you fit any more in a figure?é   r   r   éP   g333333ã¿é   é   é   z//Úooo)Úhatchesé   é   r'   é   é	   z$x^2$r   z
upper left)Úlocg      à¿gš™™™™™É?gš™™™™™Ù?)ÚxerrÚyerrT)Ú	draggable)Úset_size_inchesr   r   Úsuptitler   r   ÚlinspaceÚreshapeÚsinr   r   ÚlistÚrangeÚcontourfÚcolorbarÚ
pcolormeshÚimshowÚpcolorÚset_xlimÚset_ylimÚ
streamplotÚquiverÚscatterr   Úerrorbar)Úfig_refr   ÚyÚdataÚuÚvr#   r$   r$   r%   Ú_generate_complete_test_figure0   s>   





rN   ÚdefaultÚpng)Ú
extensionsc                 C   st   t |ƒ t |tj¡}ddd„ t |¡D ƒvsJ ‚t |¡}|j ¡  |  	| 
¡ ¡ |  |jj ¡ ¡ t |¡ d S )NÚFigureCanvasAggc                 S   s   g | ]\}}}|‘qS r$   r$   )Ú.0ÚopÚargÚposr$   r$   r%   Ú
<listcomp>i   s    z!test_complete.<locals>.<listcomp>)rN   r   Údumpsr   ÚpickletoolsÚgenopsÚloadsÚcanvasÚdrawr7   Úget_size_inchesÚfigimageÚrendererÚbuffer_rgbar   Úclose)Úfig_testrI   ÚpklÚloadedr$   r$   r%   Útest_complete_   s   

rf   c                  C   sd   dd l } dd l}| jd }t|dƒ}| |¡}W d   ƒ n1 s"w   Y  tt| |¡ƒƒ d S )Nr   ÚPICKLE_FILE_PATHÚrb)Úosr   ÚenvironÚopenÚloadÚprintÚstrrX   )ri   r   ÚpathÚblobr"   r$   r$   r%   Ú_pickle_load_subprocesss   s   
ÿrq   c                 C   sÂ   t |ƒ |d }| ¡ rJ ‚| d¡}t ||tj¡ W d   ƒ n1 s&w   Y  | ¡ s1J ‚ttddt|ƒid}t 	t
 |j¡¡}|j ¡  |  | ¡ ¡ |  |jj ¡ ¡ t |¡ d S )Nzsinus.pickleÚwbé<   rg   )ÚtimeoutÚ	extra_env)rN   Úexistsrk   r   r   r   r   rq   rn   r[   ÚastÚliteral_evalÚstdoutr\   r]   r7   r^   r_   r`   ra   r   rb   )rc   rI   Útmp_pathÚfpÚfileÚprocÚ
loaded_figr$   r$   r%   Ú test_pickle_load_from_subprocess   s"   ÿ
ý
r   c                  C   sp   t  d¡} tƒ }t | |tj¡ t  d¡ t jjj	i ksJ ‚t 
| ¡ ¡} t jjj	i ks.J ‚|  ¡ dks6J ‚d S )Nza labelÚall)r   r   r   r   r   r   rb   Ú_pylab_helpersÚGcfÚfigsr[   Ú	getbufferÚ	get_label)r"   Úbufr$   r$   r%   Útest_gcf›   s   

r‡   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*   )
Úmatplotlib.backends.backend_pdfrˆ   ÚmfigureÚFigureÚadd_subplotr   r   r   r   r   )rˆ   r"   Ú_r#   r$   r$   r%   Útest_no_pyplot¦   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   r`   r$   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’   r”   r\   r   rŒ   rA   r   r   r:   r]   r   r   r   )r”   Úmanagerr"   r#   r$   r$   r%   Ú
test_image¶   s   
r—   c                  C   s4   t jdd t  ¡ } t | ¡}t |¡ t  ¡  d S )NT)r
   )r   r   Úgcfr   rX   r[   r]   )r"   Úpfr$   r$   r%   Ú
test_polarÂ   s
   

rš   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)	ÚmtransformsÚIdentityTransformÚidentityÚ	identity2ÚCompositeGenericTransformÚ	compositeÚTransformWrapperÚwrapperÚ
composite2)Úselfr$   r$   r%   Ú__init__Ë   s   

þ
þzTransformBlob.__init__N)Ú__name__Ú
__module__Ú__qualname__r§   r$   r$   r$   r%   r›   Ê   s    r›   c                  C   s|   t ƒ } t | ¡}~ t |¡} | jj| jksJ ‚dd„ | jj ¡ D ƒ| j	gks(J ‚| jj
| jj
ks2J ‚| jj| jjks<J ‚d S )Nc                 S   s   g | ]}|ƒ ‘qS r$   r$   )rS   rM   r$   r$   r%   rW   ã   s    z"test_transform.<locals>.<listcomp>)r›   r   rX   r[   r¤   Ú_childr¢   Ú_parentsÚvaluesr¥   Ú
input_dimsÚoutput_dims)Úobjr™   r$   r$   r%   Útest_transformÚ   s   

"r±   c                  C   s8   t dƒ} zt t | ¡¡ W d S  ty   tdƒ ‚ w )Nr,   z!rrulewrapper pickling test failed)r   r   r[   rX   ÚRecursionErrorrm   )Ú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s%J ‚d S )	Nr,   T)Úsharexr   r   r   r+   )r   r   )r   Úsubplotsr   r[   rX   r   rC   Úget_xlim)r"   Ú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)çš™™™™™¹?rº   ç333333Ó?r»   Útop)Ú	functions)
r   r¶   Ú
inset_axesÚsecondary_xaxisr   ÚsquareÚsqrtr   r[   rX   r!   r$   r$   r%   Útest_inset_and_secondaryù   s   rÂ   Úcmapc                 C   s   t  | ¡ d S rœ   )r   rX   )rÃ   r$   r$   r%   Ú	test_cmap   s   rÄ   c                  C   sN   t  ¡ } | jd usJ ‚tƒ }t | |¡ | d¡ t |¡}|jd us%J ‚d S )Nr   )rŠ   r‹   r\   r   r   r   Úseekrl   )r"   ÚoutÚfig2r$   r$   r%   Útest_unpickle_canvas  s   

rÈ   c                  C   s0   t  g d¢¡} tt t | ¡¡ƒt jksJ ‚d S )N)r   r   r+   r+   )r   Ú	host_axesÚtyper   r[   rX   ÚHostAxes)r#   r$   r$   r%   Útest_mpl_toolkits  s   "rÌ   c                   C   s*   t t t tj ¡ ¡¡ƒtjjksJ ‚d S rœ   )rÊ   r   r[   rX   ÚmplÚcolorsÚLogNormr$   r$   r$   r%   Útest_standard_norm  s   ÿrÐ   c                  C   s<   t j t jjt jj¡ƒ } tt t 	| ¡¡ƒt| ƒksJ ‚d S rœ   )
rÍ   rÎ   Úmake_norm_from_scaleÚscaleÚ
LogitScaleÚ	NormalizerÊ   r   r[   rX   )Úlogit_norm_instancer$   r$   r%   Útest_dynamic_norm  s   ÿÿrÖ   c                  C   s,   t jddgdd\} t t t| ƒ¡¡ d S )Nr   r+   T)Úpicker)r   r   r   r[   rX   r   )Úliner$   r$   r%   Útest_vertexselector   s   rÙ   )9Úior   rw   r   rY   Únumpyr   ÚpytestÚ
matplotlibrÍ   r   Úmatplotlib.testingr   Úmatplotlib.testing.decoratorsr   Úmatplotlib.datesr   Úmatplotlib.linesr   Úmatplotlib.pyplotÚpyplotr   Úmatplotlib.transformsÚ
transformsr   Úmatplotlib.figurer   rŠ   Úmpl_toolkits.axes_grid1r   r&   rN   ÚstyleÚcontextrf   rq   r   r‡   rŽ   r“   r—   rš   r›   r±   r´   r¹   rÂ   ÚmarkÚparametrizeÚ
_colormapsr­   rÄ   rÈ   rÌ   rÐ   rÖ   rÙ   r$   r$   r$   r%   Ú<module>   sT    
/



	

