
    G8c                     4   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 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	jB                  jE                  dddgddg      d        Z#d Z$d Z%d Z&d Z'y)!    )contextmanager)Path)TemporaryDirectoryN)pyplotstyle)USER_LIBRARY_PATHSSTYLE_EXTENSIONz
image.cmappinkc              #     K   |st         }| dt        }	 t               5 }t        ||      j	                  dj                  d |j                         D              d       t        j                  |       t        j                          d ddd       t        j                          y# 1 sw Y   xY w# t        j                          w xY ww)zAContext manager to create a style sheet in a temporary directory..
c              3   F   K   | ]  \  }}d j                  ||        yw)z{}: {}N)format).0kvs      =/usr/lib/python3/dist-packages/matplotlib/tests/test_style.py	<genexpr>ztemp_style.<locals>.<genexpr>   s     MDAq(//!Q/Ms   !utf-8encodingN)DUMMY_SETTINGSr	   r   r   
write_textjoinitemsr   appendr   reload_library)
style_namesettings	temp_filetmpdirs       r   
temp_styler"      s      !%7I! 	V#..		MHNN<LMM  / " %%f-  "	 		 	 	s4   C
B9 A/B-B9 C-B62B9 9C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                  x    t        dt              5  dt        j                  v sJ 	 d d d        y # 1 sw Y   y xY w)N_test_)r"   r   r   	available     r   test_availabler3   1   s3    	Hn	- +5??***+ + +s   09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VALUEr1   r2   r   test_user>   6   sl     CLL	FN	+ 0]]6" 	0<<&%///	00 0	0 	00 0s"   A=!A1 A=1A:	6A==Bc                    t        | d      }|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   r7   zfile:win32z/// zaxes.facecolorz#adeade)r   r   r"   r   sysplatformresolveas_posixr   r<   r9   r:   )r!   pathurls      r   test_use_urlrI   =   s    DOO,wO?	FN	+ ?<<72%<((*+ ]]3 	?<< 01Y>>>	?	? ?	? 	?	? ?s$   AB6?B*B6*B3	/B66B?c                 j   dt         j                  t        <   dt         }t	        | |      }|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)Nr6   ztext.z : r   r   )	r9   r:   r;   r	   r   r   r=   r   r<   )r!   r    rG   s      r   test_single_pathrK   H   s     CLL()I	"DOOugS(7O;	t	 ,||E"e+++,<<&(((, ,s   "!B))B2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r5   r8   r1   r2   r   test_contextrM   R   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)Nr6   blue)r9   r:   r;   r   r<   original_valueother_values     r   test_context_with_dictrS   [   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Nr6   rO   r7   )r9   r:   r;   r"   r   r   r<   rP   s     r   'test_context_with_dict_after_namedstylerV   d   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rU   r8   rP   s     r   (test_context_with_dict_before_namedstylerX   o   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)Nr6   ztext.usetexTr7   r8   )rQ   other_paramrR   ds       r   .test_context_with_union_of_dict_and_namedstyler\   z   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              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)Nr6   rO   badparam)r   r<   r;   r9   r:   pytestraisesKeyError)rQ   rR   xs      r   test_context_with_badparamrc      s    NK	{+	, 2||E"k111MM5.*dCD]]8$ 	 	 ||E"k1112 2 	 	2 2s<   AC3B:6B.8B: $C.B73B::C	?CCequiv_styles)mpl20default)mpl15classicre   rg   )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   r9   r:   copyzip)rd   rc_dictsstyrc_basenmrcs         r   
test_aliasrr      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      )r9   r:   pltxkcdnptestingbreak_cyclesr1   r2   r   test_xkcd_no_cmr|      s^    <<&...HHJ<<&+555JJ<<&+555r2   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rt   )r9   r:   rw   rx   r1   r2   r   test_xkcd_cmr~      sa    <<&...	 :||M*k999:<<&...: :s   A""A+c                  |   t         j                  j                  d      5  t         j                  j	                         } d d d        t         j                   k7  sJ t        j                  t         j                  j                        5  t         j                  j                  d       d d d        t         j                  | k(  sJ t        j                  t         j                  j                        5  t         j                  j                  d    d d d        y # 1 sw Y   xY w# 1 sw Y   ~xY w# 1 sw Y   y xY w)Nzseaborn-v0_8-brightzseaborn-bright)r9   r   r<   r:   rk   r_   warns_apiMatplotlibDeprecationWarninguselibrary)seaborn_brights    r   test_deprecated_seaborn_stylesr      s    			0	1 -**,-<<>)))	chh;;	< (		&'(<<>)))	chh;;	< ,		*+, ,- -( (, ,s#   D	 D&3D2D#&D/2D;c                      t         j                  j                  j                  h t         j                  j
                  k  sJ y N)r9   r   coreSTYLE_BLACKLISTrcsetup_validatorsr1   r2   r   test_up_to_date_blacklistr      s.    99>>))-Gs{{/F/F-GGGGr2   r   )(
contextlibr   pathlibr   tempfiler   rC   numpyry   r_   
matplotlibr9   r   rw   r   matplotlib.style.corer   r	   r;   r=   r   r"   r-   r3   r>   rI   rK   rM   rS   rV   rX   r\   rc   markparametrizerr   r|   r~   r   r   r1   r2   r   <module>r      s    %  ' 
    + E 	  &<+
0?))111: 	2 ..0%w/  1	16/,Hr2   