o
    :a4                     @   s  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	d
Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Z e	j!j"d!d"d#gd$d%gd&d'd( Z#d)d* Z$d+d, Z%dS ).    )contextmanager)Path)TemporaryDirectoryN)pyplotstyle)USER_LIBRARY_PATHSSTYLE_EXTENSIONz
image.cmapZpinkc                 c   s    |st }d| tf }z?t &}t||ddd | D  t| t	
  dV  W d   n1 s8w   Y  W t	
  dS W t	
  dS t	
  w )zAContext manager to create a style sheet in a temporary directory.z%s.%s
c                 s   s     | ]\}}d  ||V  qdS )z{}: {}N)format).0kv r   =/usr/lib/python3/dist-packages/matplotlib/tests/test_style.py	<genexpr>   s    ztemp_style.<locals>.<genexpr>N)DUMMY_SETTINGSr   r   r   
write_textjoinitemsr   appendr   Zreload_library)Z
style_nameZsettings	temp_filetmpdirr   r   r   
temp_style   s    

		r   c                 C   s^   ddi}d}t || W d    n1 sw   Y  t| jdkr+|| jd  v s-J d S )NZfooZbarbasename   r   )r   lenZrecordsZ
getMessage)ZcaplogZSETTINGSr   r   r   r   )test_invalid_rc_warning_includes_filename&   s   
r   c                   C   s>   t dt dtjv sJ W d    d S 1 sw   Y  d S )NZ_test_)r   r   r   Z	availabler   r   r   r   test_available0   s   "r   c                	   C   s   dt jt< tdt/ td t jt tksJ W d    n1 s$w   Y  W d    d S W d    d S 1 s<w   Y  d S NgraytestmplrcParamsPARAMr   r   r   contextVALUEr   r   r   r   test_use5   s   
"r'   c              	   C   s   t | d}|d tdt@ dtjdkrdnd |   }t	| t
jd d	ks0J W d    n1 s:w   Y  W d    d S W d    d S 1 sRw   Y  d S )
Nfilezaxes.facecolor: adeader    zfile:win32z/// zaxes.facecolorz#adeade)r   r   r   r   sysplatformZresolveZas_posixr   r%   r"   r#   )r   pathZurlr   r   r   test_use_url<   s   


"r.   c                 C   s   dt jt< dt }t| |}|t dt  t| t jt tks(J W d    n1 s2w   Y  t jt dks@J d S )Nr   ztext.z : )	r"   r#   r$   r   r   r   r&   r   r%   )r   r   r-   r   r   r   test_single_pathG   s   


r/   c                	   C   s   dt jt< tdt& td t jt tksJ W d    n1 s$w   Y  W d    n1 s3w   Y  t jt dksAJ d S r   r!   r   r   r   r   test_contextQ   s   
r0   c                  C   sh   d} d}| t jt< tt|i t jt |ksJ W d    n1 s$w   Y  t jt | ks2J d S )Nr   blue)r"   r#   r$   r   r%   original_valueother_valuer   r   r   test_context_with_dictZ   s   
r5   c               	   C   s   d} d}| t jt< tdt* tdt|ig t jt |ks"J W d    n1 s,w   Y  W d    n1 s;w   Y  t jt | ksIJ d S Nr   r1   r    )r"   r#   r$   r   r   r   r%   r2   r   r   r   'test_context_with_dict_after_namedstylec      
r7   c               	   C   s   d} d}| t jt< tdt* tt|idg t jt tks"J W d    n1 s,w   Y  W d    n1 s;w   Y  t jt | ksIJ d S r6   r!   r2   r   r   r   (test_context_with_dict_before_namedstylen   r8   r9   c               	   C   s   d} d}d}||i}| t jt< | t j|< tdt1 td|g t jt tks,J t j| |ks5J W d    n1 s?w   Y  W d    n1 sNw   Y  t jt | ks\J t j| | ksfJ d S )Nr   ztext.usetexTr    r!   )r3   Zother_paramr4   dr   r   r   .test_context_with_union_of_dict_and_namedstyley   s   
r;   c               
   C   s   d} d}t t|iK tjt |ksJ t t| dd i}tt | W d    n1 s1w   Y  W d    n1 s@w   Y  tjt |ksNJ W d    d S 1 sYw   Y  d S )Nr   r1   Zbadparam)r   r%   r$   r"   r#   pytestZraisesKeyError)r3   r4   xr   r   r   test_context_with_badparam   s   "r?   equiv_styles)mpl20default)mpl15ZclassicrA   rC   )Zidsc              	   C   s   g }| D ]}t | |tj  W d    n1 sw   Y  q|d }t| dd  |dd  D ]
\}}||ks?J q5d S )Nr   r   )r   r%   r   r"   r#   copyzip)r@   Zrc_dictsZstyZrc_baseZnmZrcr   r   r   
test_alias   s   "rF   c                   C   sL   t jd d u s	J t  t jd dksJ tj  t jd dks$J d S Nzpath.sketch)r   d      )r"   r#   pltxkcdnpZtestingZbreak_cyclesr   r   r   r   test_xkcd_no_cm   s
   
rM   c                   C   sb   t jd d u s	J t  t jd dksJ W d    n1 s!w   Y  t jd d u s/J d S rG   )r"   r#   rJ   rK   r   r   r   r   test_xkcd_cm   s
   
rN   )N)&
contextlibr   Zpathlibr   Ztempfiler   r+   ZnumpyrL   r<   Z
matplotlibr"   r   rJ   r   Zmatplotlib.style.corer   r   r$   r&   r   r   r   r   r'   r.   r/   r0   r5   r7   r9   r;   r?   ZmarkZparametrizerF   rM   rN   r   r   r   r   <module>   sD    

		
