U
    f»{jÁ  ã                   @   sb   d dl mZ d dlZd dlmZ d dlmZ d dlmZ dd„ Z	dd	„ Z
ej d
d¡dd„ ƒZdS )é    )ÚdeepcopyN)Úassert_allclose)Ú_handle_default)Ú_get_scalingc                  C   sÔ   t tdƒƒ} tdƒ}tdtddd�ƒ}tdi ƒ}t|  ¡ ƒt| ¡ ƒksLt‚t|  ¡ ƒt| ¡ ƒksht‚|  ¡ D ]^}| | || ksˆt‚| | || ksœt‚|dkrº| | || ksÎt‚qp| | || kspt‚qpdS )zTest mutable default.Úscalingsé   é   )ÚmagZgradN)r   r   ÚdictÚsetÚkeysÚAssertionError)ÚxÚyÚzÚwÚkey© r   úV/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/tests/test_defaults.pyÚtest_handle_default	   s    
r   c               
   C   s¨   t ddƒ} t ddƒ}d| ks t‚d| d< d|d< t| ƒt|ƒksDt‚|  ¡ D ]V\}}|dkr†tjtdd�� t||| ƒ}W 5 Q R X qLt||| ƒ}t||d	d
� qLdS )z1Test that our scalings actually produce SI units.r   NÚunitsZcsd_badg     jø@u   V/mÂ²zis not a channel type)Úmatchgê-�™—q=)Zrtol)	r   r   r   ÚitemsÚpytestZraisesÚKeyErrorr   r   )r   r   r   ÚscaleZ
want_scaler   r   r   Útest_si_units   s    

r   r   )Zsi_unitsÚcolorr   Úscalings_plot_rawc                 C   s‚   t tdƒƒ}t t| ƒƒ}t d ¡ ƒ}| |¡t ƒ ks8t‚| dkrZ| |¡sNt‚| |¡}n| |¡t ƒ ksnt‚||ks~t| ƒ‚dS )zTest defaults consistency.r   zstim exci syst resp ias chpi)r   r   N)r   r   ÚsplitÚintersectionr   ÚissubsetÚ
difference)r   r   ÚotherZau_keysr   r   r   Útest_consistency-   s    r$   )Úcopyr   r   Znumpy.testingr   Zmne.defaultsr   Zmne.io.baser   r   r   ÚmarkZparametrizer$   r   r   r   r   Ú<module>   s   