
    ^j                     $   d dl mZ d dlmZ d dlmZ d dlZd dlZd dl	Z	d dl
Zd dl
mZmZ dZdZeeiZedd       Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Ze	j<                  j?                  dddgddg      d        Z d Z!d Z"d Z#d Z$y)     )contextmanager)Path)TemporaryDirectoryN)pyplotstylez
image.cmappinkc              #     K   |st         }|  d}t        j                  }	 t               5 }t	        ||      j                  dj                  d |j                         D              d       t        j                  j                  |       t        j                          d ddd       |t        _        t        j                          y# 1 sw Y   )xY w# |t        _        t        j                          w xY ww)zAContext manager to create a style sheet in a temporary directory.	.mplstyle
c              3   0   K   | ]  \  }}| d |   yw)z: N ).0kvs      f/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_style.py	<genexpr>ztemp_style.<locals>.<genexpr>   s     C$!QQCr!+Cs   utf-8encodingN)
DUMMY_SETTINGSr   USER_LIBRARY_PATHSr   r   
write_textjoinitemsappendreload_library)
style_namesettings	temp_fileorig_library_pathstmpdirs        r   
temp_styler"      s      !,i(I11! 	V#..		C(..2BCC  / " $$++F3  "	 $6 	 	 $6 s4   C<
C A9C$C , C<CC !C99C<c                     ddi}d}t        ||      5  	 d d d        t        | j                        dk(  r|| j                  d   j                         v sJ y # 1 sw Y   CxY w)Nfoobarbasename   r   )r"   lenrecords
getMessage)caplogSETTINGSr&   s      r   )test_invalid_rc_warning_includes_filenamer-   (   sl    u~HH	Hh	'  1$FNN1-88::< ;:	 s   AA c                     dt         j                  vsJ dt         j                  v sJ t        dt              5  t        dt              5  dt         j                  v sJ dt         j                  v sJ dt         j                  vsJ dt         j                  v sJ 	 d d d        d d d        dt         j                  vsJ dt         j                  vsJ y # 1 sw Y   :xY w# 1 sw Y   >xY w)N_classic_test_patch_test_dummy)r   	availablelibraryr"   r   r       r   test_availabler5   2   s     777 EMM111	Hn	- )z'>/R )%//)))%--'''u...5==(((	) )
 %//)))5??***) ) ) )s$   C!
ACC!C	C!!C*c                     dt         j                  t        <   t        dt              5  t        j                  d      5  t         j                  t           t        k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wNgraytestmplrcParamsPARAMr"   r   r   contextVALUEr   r4   r   test_user@   @   sl     CLL	FN	+ 0]]6" 	0<<&%///	00 0	0 	00 0s"   A=!A1 A=1A:	6A==Bc                 v   | dz  }|j                  dd       t        dt              5  dt        j                  dk(  rdnd	z   |j                         j                         z   }t        j                  |      5  t        j                  d
   dk(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nfilezaxes.facecolor: adeader   r   r9   zfile:win32z/// zaxes.facecolorz#adeade)r   r"   r   sysplatformresolveas_posixr   r>   r;   r<   )tmp_pathpathurls      r   test_use_urlrL   G   s    fDOO,wO?	FN	+ ?<<72%<((*+ ]]3 	?<< 01Y>>>	?	? ?	? 	?	? ?s$   AB/8B#B/#B,	(B//B8c                 J   dt         j                  t        <   | dz  }|j                  t         dt         d       t        j                  |      5  t         j                  t           t        k(  sJ 	 d d d        t         j                  t           dk(  sJ y # 1 sw Y   &xY w)Nr8   ztext.mplstylez : r   r   )r;   r<   r=   r   r?   r   r>   )rI   rJ   s     r   test_single_pathrN   R   s     CLLo%DOOugS(7O;	t	 ,||E"e+++,<<&(((, ,s   !BB"c                  J   dt         j                  t        <   t        dt              5  t        j                  d      5  t         j                  t           t        k(  sJ 	 d d d        d d d        t         j                  t           dk(  sJ y # 1 sw Y   .xY w# 1 sw Y   2xY wr7   r:   r   r4   r   test_contextrP   [   s     CLL	FN	+ 0]]6" 	0<<&%///	00 <<&(((	0 	00 0s"   B!B BB	BB"c                     d} d}| t         j                  t        <   t        j                  t        |i      5  t         j                  t           |k(  sJ 	 d d d        t         j                  t           | k(  sJ y # 1 sw Y   &xY w)Nr8   blue)r;   r<   r=   r   r>   original_valueother_values     r   test_context_with_dictrV   d   sn    NK(CLL	{+	, 2||E"k1112<<.0002 2s   A::Bc                  Z   d} d}| t         j                  t        <   t        dt              5  t        j                  dt        |ig      5  t         j                  t           |k(  sJ 	 d d d        d d d        t         j                  t           | k(  sJ y # 1 sw Y   .xY w# 1 sw Y   2xY wNr8   rR   r9   )r;   r<   r=   r"   r   r   r>   rS   s     r   'test_context_with_dict_after_namedstylerY   m   s    NK(CLL	FN	+ 6]]FUK$89: 	6<<&+555	66 <<.000	6 	66 6s#   B!
B(B!B	B!!B*c                  b   d} d}| t         j                  t        <   t        dt              5  t        j                  t        |idg      5  t         j                  t           t        k(  sJ 	 d d d        d d d        t         j                  t           | k(  sJ y # 1 sw Y   .xY w# 1 sw Y   2xY wrX   r:   rS   s     r   (test_context_with_dict_before_namedstyler[   x   s    NK(CLL	FN	+ 0]]UK0&9: 	0<<&%///	00 <<.000	0 	00 0s#   B%
!B,B%B"	B%%B.c                     d} d}d}||i}| t         j                  t        <   | t         j                  |<   t        dt              5  t        j                  d|g      5  t         j                  t           t        k(  sJ t         j                  |   |k(  sJ 	 d d d        d d d        t         j                  t           | k(  sJ t         j                  |   | k(  sJ y # 1 sw Y   GxY w# 1 sw Y   KxY w)Nr8   ztext.usetexTr9   r:   )rT   other_paramrU   ds       r   .test_context_with_union_of_dict_and_namedstyler_      s    NKK	k"A(CLL%0CLL	FN	+ <]]FA;' 	<<<&%///<<,;;;	<< <<.000<<$[999		< 	<< <s$   C*9CC*C'	#C**C3c                     d} d}t        j                  t        |i      5  t        j                  t           |k(  sJ t        j                  t        | dd i      }t        j                  t        d      5  |5  	 d d d        d d d        t        j                  t           |k(  sJ 	 d d d        y # 1 sw Y   7xY w# 1 sw Y   ;xY w# 1 sw Y   y xY w)Nr8   rR   badparamz-'badparam' is not a valid value for rcParam\.)match)r   r>   r=   r;   r<   pytestraisesKeyError)rT   rU   xs      r   test_context_with_badparamrg      s    NK	{+	, 2||E"k111MM5.*dCD]]8!QS 	 	 ||E"k1112 2
 	 	2 2s<   AC5B<8B0:B<$C0B95B<<C	CCequiv_styles)mpl20default)mpl15classicri   rk   )idsc                    g }| D ]M  }t        j                  |      5  |j                  t        j                  j                                d d d        O |d   }t        | dd  |dd        D ]  \  }}||k(  rJ  y # 1 sw Y   xY w)Nr   r'   )r   r>   r   r;   r<   copyzip)rh   rc_dictsstyrc_basenmrcs         r   
test_aliasrv      s    
 H 1]]3 	1OOCLL--/0	1 	11 qkGl12&5 B"}}		1 	1s   .A<<B	c                      t         j                  d   J t        j                          t         j                  d   dk(  sJ t        j
                  j                          t         j                  d   dk(  sJ y Nzpath.sketch)r'   d      )r;   r<   pltxkcdnptestingbreak_cyclesr   r4   r   test_xkcd_no_cmr      s^    <<&...HHJ<<&+555JJ<<&+555r4   c                      t         j                  d   J t        j                         5  t         j                  d   dk(  sJ 	 d d d        t         j                  d   J y # 1 sw Y   xY wrx   )r;   r<   r{   r|   r   r4   r   test_xkcd_cmr      sa    <<&...	 :||M*k999:<<&...: :s   A""A+c                      t         j                  j                  j                  h t         j                  j
                  k  sJ y N)r;   r   coreSTYLE_BLACKLISTrcsetup_validatorsr   r4   r   test_up_to_date_blacklistr      s.    99>>))-Gs{{/F/F-GGGGr4   c                 ,   |j                  |        |j                  |        | dz  }|j                          |dz  j                  dd       |j	                  d      j                  dd       t
        j                  j                  d       t
        j                  d	   d
k(  sJ t
        j                  j                  d       t
        j                  d	   dk(  sJ t
        j                  j                  d       t
        j                  d	   dk(  sJ y )Nmpl_test_style_pkgztest_style.mplstylezlines.linewidth: 42r   r   r
   zlines.linewidth: 84zmpl_test_style_pkg.test_stylezlines.linewidth*   zmpl_test_style_pkg.mplstyleT   z./mpl_test_style_pkg.mplstyle)	syspath_prependchdirmkdirr   with_suffixr;   r   user<   )rI   monkeypatchpkg_paths      r   test_style_from_moduler      s    )h..HNN%%11 2 1%00 1 1IIMM12<<)*b000IIMM/0<<)*b000IIMM12<<)*b000r4   r   )%
contextlibr   pathlibr   tempfiler   rE   numpyr}   rc   
matplotlibr;   r   r{   r   r=   r?   r   r"   r-   r5   r@   rL   rN   rP   rV   rY   r[   r_   rg   markparametrizerv   r   r   r   r   r   r4   r   <module>r      s    %  ' 
    + 	  *<+0?))111: 
2 ..0%w/  1	16/H1r4   