U
    ƒ±Ëh  ã                   @   s<  d dl Zd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlZd dl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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/d0„ Z#d1d2„ Z$d3d4„ Z%d5d6„ Z&d7d8„ Z'ej( )d9d:g¡d;d<„ ƒZ*dS )=é    N)Ú_image_fetcher)Úio)Úassert_equalÚassert_almost_equalÚfetchc               	   C   sb   t j} td k	r@t  ¡  dt | ¡ks(t‚tt | ¡ƒdks^t‚nt 	t
¡ t  ¡  W 5 Q R X d S )Nzastronaut.pngé2   )ÚdataÚdata_dirr   Zdownload_allÚosÚlistdirÚAssertionErrorÚlenÚpytestZraisesÚModuleNotFoundError)r	   © r   ú@/tmp/pip-unpacked-wheel-gtraehzf/skimage/data/tests/test_data.pyÚtest_download_all_with_pooch
   s    r   c                  C   s   t  ¡ } t| jdƒ dS )z, Test that "astronaut" image can be loaded. )é   r   é   N)r   Ú	astronautr   Úshape)r   r   r   r   Útest_astronaut!   s    r   c                  C   s   t  ¡ } t| jdƒ dS )z) Test that "camera" image can be loaded. é   N)r   Zcamerar   Úndim)Z	cameramanr   r   r   Útest_camera'   s    r   c                   C   s   t  ¡  dS )z/ Test that "checkerboard" image can be loaded. N)r   Zcheckerboardr   r   r   r   Útest_checkerboard-   s    r   c                   C   s   t  ¡  dS )z* Test that "chelsea" image can be loaded. N)r   Zchelsear   r   r   r   Útest_chelsea2   s    r   c                   C   s   t  ¡  dS )z( Test that "clock" image can be loaded. N)r   Zclockr   r   r   r   Ú
test_clock7   s    r   c                   C   s   t  ¡  dS )z) Test that "coffee" image can be loaded. N)r   Zcoffeer   r   r   r   Útest_coffee<   s    r   c                  C   s2   t dƒ t ¡ } t| jdƒ t| jt d¡ƒ dS )z( Test that "eagle" image can be loaded. zdata/eagle.pngr   Zuint8N)r   r   Úeagler   r   ÚdtypeÚnp)r   r   r   r   Ú
test_eagleA   s    r"   c                  C   s*   t  ¡ } t| jdƒ t| jt d¡ƒ dS )z( Test that "horse" image can be loaded. r   ÚboolN)r   Úhorser   r   r    r!   )r$   r   r   r   Ú
test_horseK   s    r%   c                   C   s   t  ¡  dS )z) Test that "Hubble" image can be loaded. N)r   Zhubble_deep_fieldr   r   r   r   Útest_hubbleR   s    r&   c                   C   s   t  ¡  dS )z7 Test that "immunohistochemistry" image can be loaded. N)r   Zimmunohistochemistryr   r   r   r   Útest_immunohistochemistryW   s    r'   c                  C   s(   t  ¡ } t| jdƒ t| jd dƒ dS )z' Test that "logo" image can be loaded. r   r   é   N)r   Úlogor   r   r   )r)   r   r   r   Ú	test_logo\   s    r*   c                   C   s   t  ¡  dS )z' Test that "moon" image can be loaded. N)r   Zmoonr   r   r   r   Ú	test_moonc   s    r+   c                   C   s   t  ¡  dS )z' Test that "page" image can be loaded. N)r   Úpager   r   r   r   Ú	test_pageh   s    r-   c                   C   s   t  ¡  dS )z) Test that "rocket" image can be loaded. N)r   Zrocketr   r   r   r   Útest_rocketm   s    r.   c                   C   s   t  ¡  dS )z' Test that "text" image can be loaded. N)r   Útextr   r   r   r   Ú	test_textr   s    r0   c                   C   s   t  ¡  dS )z4 Test that "stereo_motorcycle" image can be loaded. N)r   Zstereo_motorcycler   r   r   r   Útest_stereo_motorcyclew   s    r1   c                  C   s†   t jdd} t|  ¡ ddd t jddd} t|  ¡ ddd t jddd	d
} t|  ¡ ddd t jddd	d
}t | |k¡r‚t‚d S )Né€   )Úlengthg      à?é   )Údecimalg      Ð?)r3   Úvolume_fractioné    r   )r3   r6   Zn_dim)r   Zbinary_blobsr   Zmeanr!   Úallr   )ZblobsZother_realizationr   r   r   Útest_binary_blobs|   s    ÿr9   c                   C   s   t  ¡  dS )z& Test that "lfw_subset" can be loaded.N)r   Z
lfw_subsetr   r   r   r   Útest_lfw_subsetˆ   s    r:   c                  C   s   t  ¡ } | jdkst‚dS )zJTest that "skin" image can be loaded.

    Needs internet connection.
    r   N)r   Úskinr   r   )r;   r   r   r   Ú	test_skin   s    r<   c                   C   s   t  ¡  dS )z& Test that "cell" image can be loaded.N)r   Úcellr   r   r   r   Ú	test_cell–   s    r>   c                  C   s$   t dƒ} t | ¡}|jdks t‚dS )úNeeds internet connection.zdata/cells3d.tif)é<   r   é   rA   N©r   r   Zimreadr   r   ©ÚpathÚimager   r   r   Útest_cells3d›   s    
rF   c                  C   s$   t dƒ} t | ¡}|jdks t‚dS )r?   zdata/brain.tiff)é
   rA   rA   NrB   rC   r   r   r   Útest_brain_3d¢   s    
rH   c                  C   s"   t dƒ t ¡ } | jdkst‚dS )zdTest that 3D multichannel image of kidney tissue can be loaded.

    Needs internet connection.
    zdata/kidney.tif)é   r   r   r   N)r   r   Úkidneyr   r   )rJ   r   r   r   Útest_kidney_3d_multichannel©   s    rK   c                  C   s"   t dƒ t ¡ } | jdkst‚dS )zdTest that microscopy image of lily of the valley can be loaded.

    Needs internet connection.
    zdata/lily.tif)éš  rL   r(   N)r   r   Úlilyr   r   )rM   r   r   r   Útest_lily_multichannel³   s    rN   c                  C   s<   t dƒ t dƒ t ¡ \} }| |fD ]}|jdks$t‚q$d S )Nzdata/pivchallenge-B-B001_1.tifzdata/pivchallenge-B-B001_2.tif)r   r   )r   r   Zvortexr   r   )Zimage0Zimage1rE   r   r   r   Útest_vortex½   s
    rO   Úfunction_nameZ	file_hashc                 C   s   t t| ƒst‚d S )N)Úhasattrr   r   )rP   r   r   r   Útest_fetchers_are_publicÅ   s    rR   )+Znumpyr!   Zskimage.datar   Zskimage.data._fetchersr   Zskimager   Zskimage._shared.testingr   r   r   r
   r   r   r   r   r   r   r   r   r"   r%   r&   r'   r*   r+   r-   r.   r0   r1   r9   r:   r<   r>   rF   rH   rK   rN   rO   ÚmarkZparametrizerR   r   r   r   r   Ú<module>   sJ   
	

 ÿ