U
    f»{jš  ã                   @   s–   d dl Z d dlmZ d dlmZ d dlZd dlZd dlm	Z	 d dl
mZ d dlmZmZmZmZ d dlmZ dd	„ Zd
d„ Zej dd¡dd„ ƒZdS )é    N)Ú
rgb_to_hls)Únullcontext)Úcreate_info)ÚRawArray)Ú_get_colormap_from_arrayÚ_check_colorÚ_qt_is_darkÚ_pixmap_to_ndarray)Ú_check_qt_versionc                  C   s€   ddl m} m} tƒ }t||ƒs$t‚tdd�}t|| ƒs<t‚tdddgdd�}t|| ƒs\t‚tdddgd	d�}t|| ƒs|t‚d
S )zTest setting a colormap.r   )ÚListedColormapÚLinearSegmentedColormapZviridis)Úcolormapé   T)r   Znormalized_colormapéÿ   FN)Zmatplotlib.colorsr   r   r   Ú
isinstanceÚAssertionError)r   r   Zcmap© r   ú`/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/viz/backends/tests/test_utils.pyÚtest_get_colormap_from_array   s    

ÿ
ÿr   c                	   C   sô   t dƒdkst‚t dƒdks t‚t dƒdks0t‚tjtdd�� t ddgƒ W 5 Q R X tjtd	d�� t d
ddgƒ W 5 Q R X tjtd	d�� t dddgƒ W 5 Q R X tjtdd�� t dddgƒ W 5 Q R X tjtdd�� t dƒ W 5 Q R X dS )zTest color format.Úred)ç      ð?ç        r   )r   r   r   r   )r   r   r   r   zRGB or RGBA©Úmatchr   r   zout of rangeé   g      ð¿r   zExpected data typeZfooÚbarzExpected typeN)r   r   ÚpytestZraisesÚ
ValueErrorÚ	TypeErrorr   r   r   r   Útest_check_color%   s    r   Útheme)ÚautoÚlightÚdarkc              	   C   s>  t  d¡}| dt|ƒ¡ |jddd� | |ddd„ ¡ tt d	¡t	d
ddƒƒ}t
dd�\}}|dkr„|dkr„t jtdd�}d}	n
tƒ }d}	|� |j|d�}
W 5 Q R X |	r²dS t|
ƒ}tjdk�r|dkrÜ|sÚt|ƒ‚n4|dkrò|rðt|ƒ‚n| ¡  ¡ dk}||k�st‚dd„ }|
jj|
 ¡ fD ]}|||ƒ �q(dS )z*Test that theme colors propagate properly.Ú
darkdetectZ_MNE_FAKE_HOME_DIRZMNE_BROWSER_THEMEF)Zraisingr    c                   S   s   dS )Nr"   r   r   r   r   r   Ú<lambda>=   ó    z#test_theme_colors.<locals>.<lambda>)r   iè  r   g     @�@ZeegT)Z
return_api)ZPyQt6ZPySide6r#   znot yet supportedr   )r    NÚdarwinr"   c                 S   s¤   d}|   ¡  |  ¡ ¡ ¡ d d… }t|Ž d dk }||ksRt| › d|› d|› �ƒ‚t|  ¡ ƒd d …d d …d d…f }| ¡ dk }||ks t| › d|› d|› �ƒ‚d S )NTé   r   g      à?z dark=z want_dark=)	ÚpaletteÚcolorZbackgroundRoleZgetRgbFr   r   r	   ZgrabZmean)ÚwidgetZ	want_darkZ__tracebackhide__Úbgcolorr#   Úcolorsr   r   r   Úassert_correct_darknessU   s     "z2test_theme_colors.<locals>.assert_correct_darkness)r   ZimportorskipZsetenvÚstrZdelenvÚsetattrr   ÚnpZzerosr   r
   ZwarnsÚRuntimeWarningr   Zplotr   ÚsysÚplatformr   r    ÚlowerÚmneZtoolbarZ	statusBar)Z
pg_backendr    ZmonkeypatchZtmp_pathr$   ÚrawÚ_ÚapiÚctxZreturn_earlyZfigZis_darkZgot_darkr.   r+   r   r   r   Útest_theme_colors6   s4    
r;   )r3   Úcolorsysr   Ú
contextlibr   Únumpyr1   r   r6   r   Zmne.ior   Zmne.viz.backends._utilsr   r   r   r	   Z	mne.utilsr
   r   r   ÚmarkZparametrizer;   r   r   r   r   Ú<module>   s   