o
    Õj'  ã                   @   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	Z	d dl
Zd dl
mZ d dlmZ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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%„ Z0d&d'„ Z1d(d)„ Z2e	j3 4d*ej5 6¡ ¡d+d,„ ƒZ7d-d.„ Z8d/d0„ Z9d1d2„ Z:d3d4„ Z;d5d6„ Z<d7d8„ Z=d9d:„ Z>e	j3j?d;ej@v sîd<ej@v oûejAd=koûejBdd>… d?k d@dAdBdC„ ƒZCdS )Dé    )ÚBytesION)Úcm)Úsubprocess_run_helperÚis_ci_environment)Úcheck_figures_equal)Úrrulewrapper)ÚVertexSelector)Úaxes_dividerÚ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©Úlabel)ÚxÚheightÚlog)ÚpltÚfigureÚpickleÚdumpr   ÚHIGHEST_PROTOCOLÚsubplotÚaxesÚplotÚnpÚarangeÚlegendÚbarZgcaZ
set_yscale©ÚfigÚax© r"   ú]/var/www/html/Deteccion_Ine/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
¡ t 	ddd¡ tj|ddgd t ¡  t 	ddd¡ t |¡ t 	ddd¡ t |¡ t d¡ 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d tjdd |  d¡}|d  d	d¡ |d	  d	d¡ |  ¡  d S ) N)r   é   z!Can you fit any more in a figure?é   r   r   éP   g333333ã¿é   é   Zhelloé   z//Zooo)Zhatchesé   zhello
world!é   r%   é   é	   z$x^2$r   z
upper left)Úlocg      à¿gš™™™™™É?gš™™™™™Ù?z$-.5 x$)ZxerrZyerrr   T)Z	draggable)Úset_size_inchesr   r   Zsuptitler   r   ZlinspaceÚreshapeÚsinr   r   ÚlistÚrangeZylabelZcontourfZcolorbarZ
pcolormeshÚimshowZpcolorÚset_xlimZset_ylimZ
streamplotZquiverZscatterr   ZerrorbarZ
subfiguresÚsubplotsZalign_ylabels)Úfig_refr   ÚyÚdataÚuÚvr!   Zsubfigsr"   r"   r#   Ú_generate_complete_test_figure2   sJ   








r=   ÚdefaultZpng)Ú
extensionsc                 C   st   t |ƒ t |tj¡}ddd„ t |¡D ƒvsJ ‚t |¡}|j ¡  |  	| 
¡ ¡ |  |jj ¡ ¡ t |¡ d S )NZFigureCanvasAggc                 S   s   g | ]\}}}|‘qS r"   r"   )Ú.0ÚopÚargÚposr"   r"   r#   Ú
<listcomp>t   s    z!test_complete.<locals>.<listcomp>)r=   r   Údumpsr   ÚpickletoolsZgenopsÚloadsÚcanvasÚdrawr0   Úget_size_inchesÚfigimageÚrendererÚbuffer_rgbar   Úclose)Úfig_testr8   ZpklZloadedr"   r"   r#   Útest_completej   s   

rP   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ÚstrrE   )rS   r   ÚpathZblobr    r"   r"   r#   Ú_pickle_load_subprocess~   s   
ÿrZ   c                 C   sÈ   t |ƒ |d }| ¡ rJ ‚| d¡}t ||tj¡ W d   ƒ n1 s&w   Y  | ¡ s1J ‚ttdt|ƒdt	j
dœd}t t |j¡¡}|j ¡  |  | ¡ ¡ |  |jj ¡ ¡ t |¡ d S )Nzsinus.pickleÚwbé<   ZAgg)rQ   Ú
MPLBACKENDZ-SETUPTOOLS_SCM_PRETEND_VERSION_FOR_MATPLOTLIB©ÚtimeoutZ	extra_env)r=   ÚexistsrU   r   r   r   r   rZ   rX   ÚmplÚ__version__rG   ÚastÚliteral_evalÚstdoutrH   rI   r0   rJ   rK   rL   rM   r   rN   )rO   r8   Ztmp_pathÚfpÚfileÚprocZ
loaded_figr"   r"   r#   Ú test_pickle_load_from_subprocessŠ   s(   ÿùý
ri   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   rN   Z_pylab_helpersZGcfZfigsrG   Ú	getbufferZ	get_label)r    Úbufr"   r"   r#   Útest_gcf®   s   

rm   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_pdfrn   ÚmfigureÚFigureÚadd_subplotr   r   r   r   r   )rn   r    Ú_r!   r"   r"   r#   Útest_no_pyplot¹   s   rs   c                  C   s*   ddl m}  | dddƒ}t |tƒ ¡ d S )Nr   )ÚRendererAggr   é   é   )Úmatplotlib.backends.backend_aggrt   r   r   r   )rt   rL   r"   r"   r#   Útest_rendererÃ   s   rx   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+   )rw   ry   rH   r   rq   r5   r   r   r1   rI   r   r   r   )ry   Ú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   Zgcfr   rE   rG   rI   )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)	ÚmtransformsZIdentityTransformÚidentityZ	identity2ZCompositeGenericTransformÚ	compositeZ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"   )r@   r<   r"   r"   r#   rD   ö   s    z"test_transform.<locals>.<listcomp>)r   r   rE   rG   r„   Ú_childrƒ   Ú_parentsÚvaluesr…   Z
input_dimsZ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   rG   rE   ÚRecursionErrorrW   )Ú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)Zsharexr   r   ru   r)   )r   ru   )r   r7   r   rG   rE   r   r6   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)çš™™™™™¹?r”   ç333333Ó?r•   Útop)Z	functions)
r   r7   Z
inset_axesZsecondary_xaxisr   ZsquareÚsqrtr   rG   rE   r   r"   r"   r#   Útest_inset_and_secondary  s   r˜   Úcmapc                 C   s   t  | ¡ d S r€   )r   rE   )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   )ro   rp   rH   r   r   r   ÚseekrV   )r    ÚoutZfig2r"   r"   r#   Útest_unpickle_canvas  s   

r   c                  C   s:   t  g d¢¡} t | ¡ tt t | ¡¡ƒt jksJ ‚d S )N)r   r   r)   r)   )	r
   Z	host_axesr	   Zmake_axes_area_auto_adjustableÚtyper   rG   rE   Z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   rG   rE   ra   ÚcolorsZ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€   )
ra   r¡   Zmake_norm_from_scaleÚscaleZ
LogitScaleZ	Normalizerž   r   rG   rE   )Z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)Zpicker)r   r   r   rG   rE   r   )Úliner"   r"   r#   Útest_vertexselector4  s   r¦   c                  C   s^   t  ¡  ¡ } | jg d¢d |  ddg¡ t t | ¡¡} |  ddg¡\}| ¡ dks-J ‚d S )N)ÚcÚmr9   Úk)r§   r)   r*   r(   r+   r¨   )	r   r   rq   Zset_prop_cycler   r   rG   rE   Ú	get_color)r!   Úlr"   r"   r#   Útest_cycler9  s   r¬   c                  C   s$   t  ¡  ¡ } t tj | d¡¡ d S )NZbutton)r   r   rq   r   rE   ra   ZwidgetsZButtonrŸ   r"   r"   r#   Ú_test_axeswidget_interactiveD  s   r­   ZTF_BUILDZGITHUB_ACTIONÚdarwinr*   )r(   é   z%Tk version mismatch on Azure macOS CI)Úreasonc                   C   s    t ttƒ rdndddid d S )Néx   ru   r]   Ztkaggr^   )r   r­   r   r"   r"   r"   r#   Útest_axeswidget_interactiveI  s
   
ýr²   )DÚior   rc   rS   Úsysr   rF   Únumpyr   ZpytestZ
matplotlibra   r   Zmatplotlib.testingr   r   Zmatplotlib.testing.decoratorsr   Zmatplotlib.datesr   Zmatplotlib.linesr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.transformsZ
transformsr   Zmatplotlib.figurer   ro   Zmpl_toolkits.axes_grid1r	   r
   r$   r=   ÚstyleÚcontextrP   rZ   ri   rm   rs   rx   r|   r~   r   r   r’   r“   r˜   ÚmarkZparametrizeZ
_colormapsr   rš   r   r    r¢   r¤   r¦   r¬   r­   ZxfailrT   ÚplatformÚversion_infor²   r"   r"   r"   r#   Ú<module>   sl    
8


"
	

ÿý