U
    »mœdà  ã                   @   s®   d dl m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mZ d dlZd dlZzd dlZW n ek
r„   edƒ‚Y nX ejZdd	„ ZG d
d„ dƒZdd„ ZdS )é    )Úregistry)Údata_fetcher)Ú_clear_cache)ÚascentÚfaceÚelectrocardiogramÚdownload_all)Úassert_equalÚassert_almost_equalNzsMissing optional dependency 'pooch' required for scipy.datasets module. Please use pip or conda to install 'pooch'.c                 C   s   t j | ¡sdS t | ¡|kS )z1Check if the provided path has the expected hash.F)ÚosÚpathÚexistsÚpoochZ	file_hash)r   Zexpected_hash© r   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/datasets/tests/test_data.pyÚ	_has_hash   s    r   c                   @   sB   e Zd Zejddd�dd„ ƒZdd„ Zdd	„ Zd
d„ Zdd„ Z	dS )ÚTestDatasetsÚmoduleT)ÚscopeZautousec                 c   s   t ƒ  d V  d S ©N)r   ©Úselfr   r   r   Útest_download_all   s    zTestDatasets.test_download_allc                 C   s   t t t¡ƒt tƒkst‚d S r   )Úlenr   ÚlistdirÚdata_dirr   ÚAssertionErrorr   r   r   r   Útest_existence_all&   s    zTestDatasets.test_existence_allc                 C   s.   t tƒ jdƒ ttj td¡td ƒs*t	‚d S )N)é   r   z
ascent.dat)
r	   r   Úshaper   r   r   Újoinr   r   r   r   r   r   r   Útest_ascent)   s    ÿzTestDatasets.test_ascentc                 C   s.   t tƒ jdƒ ttj td¡td ƒs*t	‚d S )N)i   i   é   zface.dat)
r	   r   r   r   r   r   r    r   r   r   r   r   r   r   Ú	test_face0   s    ÿzTestDatasets.test_facec                 C   sZ   t ƒ }t|jtƒ t|jdƒ t| ¡ dƒ t| ¡ dƒ tt	j
 td¡td ƒsVt‚d S )N)ià¥ gÃGÄ”H"Å¿g�­á-ã?zecg.dat)r   r	   ZdtypeÚfloatr   r
   ZmeanZstdr   r   r   r    r   r   r   )r   Zecgr   r   r   Útest_electrocardiogram7   s    ÿz#TestDatasets.test_electrocardiogramN)
Ú__name__Ú
__module__Ú__qualname__ÚpytestZfixturer   r   r!   r#   r%   r   r   r   r   r      s   
r   c           
   	   C   s„  | d }|  ¡  i }tdƒD ]6}d|› d�g|d|› �< |d|› d� }| d¡ qdd„ }t|||d� tj |d	 ¡r~t‚d
d„ }dd„ }t||g||d� tj |d ¡r´t‚tj |d ¡rÈt‚dd„ }|d  d¡ |d  d¡ ddg|d< t|g||d� tj |d ¡�rt‚tj |d ¡�r4t‚dd„ }	t 	t
¡� t|	g||d� W 5 Q R X td |d� tj |¡�r€t‚d S )NZdummy_cache_diré   Údataz.datÚ c                   S   s   d S r   r   r   r   r   r   Údata0R   s    ztest_clear_cache.<locals>.data0)ÚdatasetsÚ	cache_dirZ
method_mapz	data0.datc                   S   s   d S r   r   r   r   r   r   Údata1Y   s    ztest_clear_cache.<locals>.data1c                   S   s   d S r   r   r   r   r   r   Údata2\   s    ztest_clear_cache.<locals>.data2z	data1.datz	data2.datc                   S   s   d S r   r   r   r   r   r   Údata4e   s    ztest_clear_cache.<locals>.data4zdata4_0.datzdata4_1.datr2   c                   S   s   d S r   r   r   r   r   r   Údata5s   s    ztest_clear_cache.<locals>.data5)r.   r/   )ÚmkdirÚrangeÚ
write_textr   r   r   r   r   r)   ZraisesÚ
ValueError)
Ztmp_pathZdummy_basepathZdummy_method_mapÚiZdata_filepathr-   r0   r1   r2   r3   r   r   r   Útest_clear_cacheD   sF    ÿ
ÿÿÿr9   )Zscipy.datasets._registryr   Zscipy.datasets._fetchersr   Zscipy.datasets._utilsr   Zscipy.datasetsr   r   r   r   Znumpy.testingr	   r
   r   r)   r   ÚImportErrorr   r   r   r   r9   r   r   r   r   Ú<module>   s   )