a
    ضa                     @   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 )	Ny   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   l/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/matplotlib/tests/test_pickle.pytest_simple   s     

r    zmulti_pickle.pngTZmpl20gˡE?)Zremove_text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sJ |!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)locg      g?g?)ZxerrZyerrall)$r   ZrcParamsr   Zsuptitler   r   Zlinspacereshape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    







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%   )
Zmatplotlib.backends.backend_pdfr<   mfigureFigureadd_subplotr   r   r   r   r   )r<   r   _r   r   r   r   test_no_pyplotq   s    rA   c                  C   s*   ddl m}  | ddd}t|t  d S )Nr   )RendererAggr	         )matplotlib.backends.backend_aggrB   r   r   r   )rB   Zrendererr   r   r   test_renderer{   s    rF   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(   )rE   rG   canvasr   r?   r2   r   r   r.   drawr   r   r   )rG   managerr   r   r   r   r   
test_image   s    
rL   c                  C   s4   t jdd t  } t| }t| t   d S )NT)r   )r   r   Zgcfr   dumpsloadsrJ   )r   pfr   r   r   
test_polar   s
    

rP   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__rY   r   r   r   r   rQ      s   rQ   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   ).0r:   r   r   r   
<listcomp>       z"test_transform.<locals>.<listcomp>)rQ   r   rM   rN   rV   Z_childrU   _parentsvaluesrW   Z
input_dimsZoutput_dims)objrO   r   r   r   test_transform   s    

"rc   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   rN   rM   RecursionErrorprint)rr   r   r   test_rrulewrapper   s    rg   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	   rC   r&   )r	   rC   )r   subplotsr   rN   rM   r   r3   Zget_xlim)r   Zaxsr   r   r   test_shared   s    ri   c                  C   sD   t  \} }|g d |jdtjtjfd tt	|  d S )N)皙?rj   333333?rk   top)Z	functions)
r   rh   Z
inset_axesZsecondary_xaxisr   Zsquaresqrtr   rN   rM   r   r   r   r   test_inset_and_secondary   s    rn   cmapc                 C   s   t |  d S rR   )r   rM   )ro   r   r   r   	test_cmap   s    rp   c                  C   sN   t  } | jd usJ t }t| | |d t|}|jd usJJ d S )Nr   )r=   r>   rI   r   r   r   r5   r6   )r   outZfig2r   r   r   test_unpickle_canvas   s    

rr   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   rN   rM   ZHostAxes)r   r   r   r   test_mpl_toolkits   s    rt   ))ior   r   Znumpyr   ZpytestZ
matplotlibr   Zmatplotlib.testing.decoratorsr   Zmatplotlib.datesr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.transformsZ
transformsrS   Zmatplotlib.figurer   r=   Zmpl_toolkits.axes_grid1r   r    r;   rA   rF   rL   rP   rQ   rc   rg   ri   rn   markZparametrizeZ_cmap_registryra   rp   rr   rt   r   r   r   r   <module>   s8   

D
	

