
    P/Ph'                     F   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	 Z"d
 Z#ej$        %                    d           edg          d                         Z&d Z'ej$        %                    d           edg          d                         Z(d Z)d Z*d Z+d Z,d Z- G d d          Z.d Z/d Z0d Z1d Z2e	j3        4                    dej5        6                                          d             Z7d Z8d Z9d  Z:d! Z;d" Z<d# Z=d$ Z>e	j3        ?                    d%ej@        v s	d&ej@        v oejA        d'k    oejB        dd(         d)k     d*+          d,             ZCdS )-    )BytesION)cm)subprocess_run_helperis_ci_environment)check_figures_equal)rrulewrapper)VertexSelector)axes_dividerparasite_axesc                  *   t          j                    } t          j        | t	                      t          j                   t          j        d          }t          j        |t	                      t          j                   t          j        d          }t          j        t          j
        d          d           t          j                     t          j        |t	                      t          j                   t          j                     t          j        t          j
        d          t          j
        d                     t          j        t          j                    t	                      t          j                   t          j                    } t          j                    }t          j        t          j
        d                     |                    d           t          j        | t	                      t          j                   d S )	Ny   polar)
projection
   foobarlabel)xheightlog)pltfigurepickledumpr   HIGHEST_PROTOCOLsubplotaxesplotnparangelegendbargca
set_yscalefigaxs     \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_pickle.pytest_simpler)      s[   
*,,C
KWYY 7888	S		B
KGIIv6777	W	%	%	%BHRYr]](++++JLLL
KGIIv6777
 JLLLGbimmBIbMM2222
K		799f&=>>>
*,,C	BHRYr]]MM%
KWYY 788888    c                    |                      d           t          j        |            t          j        d           t	          j        d          t	          j        d          }}t	          j        ddd                              dd          x}x}}t	          j        |dz            }t          j	        ddd	           t          j
        t          t          d                               t          j        d
           t          j	        ddd           t          j        |ddg           t          j                     t          j	        ddd           t          j        |           t          j	        ddd           t          j        |           t          j        d           t          j	        ddd           t          j        |           t          j	        ddd          }|                    dd           |                    dd           t          j        ||||           t          j	        ddd          }|                    dd           |                    dd           t          j        ||||           t          j	        ddd           t          j        ||dz  d           t          j        d           t          j	        ddd           t          j        ||dz  ddd           t          j        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      hello   z//ooo)hatches   zhello
world!   r,      	   z$x^2$r   z
upper left)locg      g?g?z$-.5 x$)xerryerrr   T)	draggable)set_size_inchesr   r   suptitler   r    linspacereshapesinr   r   listrangeylabelcontourfcolorbar
pcolormeshimshowpcolorset_xlimset_ylim
streamplotquiverscatterr!   errorbar
subfiguressubplotsalign_ylabels)fig_refr   ydatauvr'   subfigss           r(   _generate_complete_test_figurerY   2   s   G$$$JwL4555 9Q<<2qA;q"b))11"a888D81q
q4xA K1aHT%))__JwK1aLe}----LNNNK1aN4K1aJtJK1aJt	Q1		BKK1KK1N1aA	Q1		BKK1KK1Jq!QK1aK16))))J<    K1aLAH3S	BBBBJ   ##GAJ1AJ1r*   defaultpng)
extensionsc                    t          |           t          j        |t          j                  }dd t	          j        |          D             vsJ t          j        |          }|j                                         | 	                    |
                                           |                     |j        j                                                   t          j        |           d S )NFigureCanvasAggc                     g | ]\  }}}|	S  r`   ).0opargposs       r(   
<listcomp>z!test_complete.<locals>.<listcomp>t   s    $U$U$U\RcS$U$U$Ur*   )rY   r   dumpsr   pickletoolsgenopsloadscanvasdrawr=   get_size_inchesfigimagerendererbuffer_rgbar   close)fig_testrS   pklloadeds       r(   test_completert   j   s     #7+++
,w 7
8
8C
 $U$U[=OPS=T=T$U$U$UUUUU\#F
MV3355666fm,88::;;;Ifr*   c                      dd l } dd l}| j        d         }t          |d          5 } |j        |          }d d d            n# 1 swxY w Y   t          t           |j        |                               d S )Nr   PICKLE_FILE_PATHrb)osr   environopenloadprintstrrf   )rx   r   pathblobr&   s        r(   _pickle_load_subprocessr   ~   s    IIIMMM:()D	dD		  Tfk$                              
#lfl3
 
 !!!!!s   AA
Ac                    t          |           |dz  }|                                rJ |                    d          5 }t          j        ||t          j                   d d d            n# 1 swxY w Y   |                                sJ t          t          dt          |          dt          j
        d          }t          j        t          j        |j                            }|j                                         |                     |                                           |                     |j        j                                                   t-          j        |           d S )Nzsinus.picklewb<   Agg)rv   
MPLBACKEND-SETUPTOOLS_SCM_PRETEND_VERSION_FOR_MATPLOTLIBtimeout	extra_env)rY   existsrz   r   r   r   r   r   r}   mpl__version__ri   astliteral_evalstdoutrj   rk   r=   rl   rm   rn   ro   r   rp   )rq   rS   tmp_pathfpfileproc
loaded_figs          r(    test_pickle_load_from_subprocessr      s    #7+++	N	"Byy{{	 <$GT6#:;;;< < < < < < < < < < < < < < <99;;  #B
 >A_
 
  D c.t{;;<<JZ7799:::j'0<<>>???Ijs    !A--A14A1c                     t          j        d          } t                      }t          j        | |t          j                   t          j        d           t           j        j        j	        i k    sJ t          j
        |                                          } t           j        j        j	        i k    sJ |                                 dk    sJ d S )Nza labelall)r   r   r   r   r   r   rp   _pylab_helpersGcffigsri   	getbuffer	get_label)r&   bufs     r(   test_gcfr      s    
*Y

C
))C
KS&1222Ie!&",,,,
,s}}
'
'C!&",,,,==??i''''''r*   c                     ddl m}  t          j                    } | |          }|                    ddd          }|                    g dg d           t          j        |t                      t          j	                   d S )Nr   )FigureCanvasPdfr0   )r0   r2   r/   )
matplotlib.backends.backend_pdfr   mfigureFigureadd_subplotr   r   r   r   r   )r   r&   _r'   s       r(   test_no_pyplotr      s    ??????
.

CA	Aq	!	!BGGIIIyyy!!!
KWYY 788888r*   c                  n    ddl m}   | ddd          }t          j        |t	                                 d S )Nr   )RendererAggr         )matplotlib.backends.backend_aggr   r   r   r   )r   rn   s     r(   test_rendererr      sC    ;;;;;;{2r2&&H
K'))$$$$$r*   c                  X   ddl m}   | d          }|j        j        }|                    ddd          }|                    t          j        d                              dd                     |j        	                                 t          j        |t                                 d S )Nr   )new_figure_manageri  r0      r/   r5   )r   r   rj   r   r   rH   r   r    r@   rk   r   r   r   )r   managerr&   r'   s       r(   
test_imager      s     CBBBBB  &&G
.
C	Aq	!	!BIIbimm##Aq))***N
KWYYr*   c                      t          j        d           t          j                    } t          j        |           }t          j        |           t          j                     d S )NT)r   )r   r   gcfr   rf   ri   rk   )r&   pfs     r(   
test_polarr      sN    Kd
'))C	c		B
LHJJJJJr*   c                       e Zd Zd ZdS )TransformBlobc                 2   t          j                    | _        t          j                    | _        t          j        | j        | j                  | _        t          j        | j                  | _        t          j        | j        | j                  | _        d S N)	mtransformsIdentityTransformidentity	identity2CompositeGenericTransform	compositeTransformWrapperwrapper
composite2)selfs    r(   __init__zTransformBlob.__init__   sx    #577$688$>MN  #3DNCC%?LM r*   N)__name__
__module____qualname__r   r`   r*   r(   r   r      s#            r*   r   c                  z   t                      } t          j        |           }~ t          j        |          } | j        j        | j        k    sJ d | j        j                                        D             | j	        gk    sJ | j        j
        | j        j
        k    sJ | j        j        | j        j        k    sJ d S )Nc                 "    g | ]} |            S r`   r`   )ra   rW   s     r(   re   z"test_transform.<locals>.<listcomp>   s    777AAACC777r*   )r   r   rf   ri   r   _childr   _parentsvaluesr   
input_dimsoutput_dims)objr   s     r(   test_transformr      s    
//C	c		B
,r

C;....77-4466777CN;KKKKK;!S]%=====;"cm&???????r*   c                      t          d          } 	 t          j        t          j        |                      d S # t          $ r t          d            w xY w)Nr2   z!rrulewrapper pickling test failed)r   r   ri   rf   RecursionErrorr|   )rs    r(   test_rrulewrapperr      s]    QAV\!__%%%%%   1222s	   &9 Ac                     t          j        dd          \  } }t          j        t          j        |                     } | j        d                             dd           | j        d                                         dk    sJ d S )	Nr2   T)sharexr   r   r   r0   )r   r   )r   rQ   r   ri   rf   r   rJ   get_xlim)r&   axss     r(   test_sharedr     sx    |Ad+++HC
,v|C((
)
)CHQKR   8A;!!X------r*   c                     t          j                    \  } }|                    g d           |                    dt          j        t          j        f           t          j        t          j	        |                      d S )N)皙?r   333333?r   top)	functions)
r   rQ   
inset_axessecondary_xaxisr   squaresqrtr   ri   rf   r%   s     r(   test_inset_and_secondaryr     sl    lnnGCMM"""###uBG(<===
Lc""#####r*   cmapc                 .    t          j        |            d S r   )r   rf   )r   s    r(   	test_cmapr     s    
Lr*   c                      t          j                    } | j        J t                      }t	          j        | |           |                    d           t	          j        |          }|j        J d S )Nr   )r   r   rj   r   r   r   seekr{   )r&   outfig2s      r(   test_unpickle_canvasr     sj    
.

C:!!!
))C
KSHHQKKK;sD;"""""r*   c                      t          j        g d          } t          j        |            t	          t          j        t          j        |                               t           j        k    sJ d S )N)r   r   r0   r0   )	r   	host_axesr
   make_axes_area_auto_adjustabletyper   ri   rf   HostAxesr'   s    r(   test_mpl_toolkitsr   "  s]    		 	.	.B/333V\"--..//=3IIIIIIIr*   c                      t          t          j        t          j        t          j                                                                      t          j        j        k    sJ d S r   )r   r   ri   rf   r   colorsLogNormr`   r*   r(   test_standard_normr   (  sU    V\#**<*<*>*>??@@AA:     r*   c                     t          j                            t           j        j        t           j        j                              } t          t          j        t          j	        |                               t          |           k    sJ d S r   )
r   r   make_norm_from_scalescale
LogitScale	Normalizer   r   ri   rf   )logit_norm_instances    r(   test_dynamic_normr   -  s}    *99	cj24 4 6 6V\*=>>??@@#$$% % % % % %r*   c                      t          j        ddgd          \  } t          j        t          j        t          |                                d S )Nr   r0   T)picker)r   r   r   ri   rf   r	   )lines    r(   test_vertexselectorr  4  sD    HaVD)))ED
LnT223344444r*   c                  `   t          j                                                    } |                     g d           |                     ddg           t          j        t          j        |                     } |                     ddg          \  }|                                dk    sJ d S )N)cmrT   k)r  r0   r2   r/   r5   r  )	r   r   r   set_prop_cycler   r   ri   rf   	get_color)r'   ls     r(   test_cyclerr	  9  s    		!	!	#	#B,,,---GGQFOOO	fl2&&	'	'B	!QBA;;==Cr*   c                      t          j                                                    } t          j        t
          j                            | d                     d S )Nbutton)r   r   r   r   rf   r   widgetsButtonr   s    r(   _test_axeswidget_interactiver  D  sA    		!	!	#	#B
L##B1122222r*   TF_BUILDGITHUB_ACTIONdarwinr2   )r/      z%Tk version mismatch on Azure macOS CI)reasonc                  X    t          t          t                      rdndddi           d S )Nx   r   r   tkaggr   )r   r  r   r`   r*   r(   test_axeswidget_interactiver  I  sB     $(**2)     r*   )Dior   r   rx   sysr   rg   numpyr   pytest
matplotlibr   r   matplotlib.testingr   r   matplotlib.testing.decoratorsr   matplotlib.datesr   matplotlib.linesr	   matplotlib.pyplotpyplotr   matplotlib.transforms
transformsr   matplotlib.figurer   r   mpl_toolkits.axes_grid1r
   r   r)   rY   stylecontextrt   r   r   r   r   r   r   r   r   r   r   r   r   markparametrize
_colormapsr   r   r   r   r   r   r  r	  r  xfailry   platformversion_infor  r`   r*   r(   <module>r/     s         



 				 



                     G G G G G G G G = = = = = = ) ) ) ) ) ) + + + + + +       + + + + + + # # # # # # ? ? ? ? ? ? ? ?9 9 965 5 5p 9(((  )( $	" 	" 	" 9(((  )( D( ( (9 9 9% % %	  	  	           @ @ @  . . .$ $ $ !5!5!7!788  98# # #J J J  
% % %5 5 5
     3 3 3
 	rz	!	B_
%B 	D 	D%(%5bqb%9G%C6   
  
  r*   