B
    \                 @   s   d dl Z d dlZd dlmZ ddlmZmZ d dlZyd dl	Z
W n ek
rX   dZ
Y nX d dlmZ d dlmZmZ ejd  eje
dkddd	d
 Zeje
dkdddd Zdd ZG dd dZdS )    N)NamedTemporaryFile   )imreadimsave)testing)assert_array_equalassert_array_almost_equalzskimage not installed)reasonc              C   sH   t tjtjd} ttjtjd}|jt j	ks:t
t||  d S )Nzchessboard_GRAY_U8.npyzchessboard_GRAY_U16.tif)nploadospathjoinsidata_dirr   dtypeuint16AssertionErrorr   )expectedimg r   =lib/python3.7/site-packages/skimage/external/test_tifffile.pytest_imread_uint16   s    r   c              C   sH   t tjtjd} ttjtjd}|jt j	ks:t
t||  d S )Nzchessboard_GRAY_U8.npyzchessboard_GRAY_U16B.tif)r
   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   test_imread_uint16_big_endian   s    r   c              C   s0   ddl m}  dd l}t| |js,tt| d S )Nr   )decode_packbitsr   )Ztifffile.tifffiler   types
isinstanceBuiltinFunctionTyper   type)r   r   r   r   r   test_extension#   s    r   c               @   sL   e Zd Zdd ZdZejejejej	ej
fZedeeedd ZdS )TestSavec             C   s   t dd}|j}|  t|| t|}t|| t dd}t|| |d t|}t|| |  ddlm} | }t|| |d t|}t|| d S )Nz.tif)suffixr   )BytesIO)	r   namecloser   r   r   seekior"   )selfr   xffnameyr"   br   r   r   	roundtrip+   s$    








zTestSave.roundtrip))
   r.   )r.   r.      )r.   r.      zshape, dtypec             C   sL   t jj| }t |t js2|t |j |}n
||}| || d S )N)	r
   randomZrandZ
issubdtypeZfloatingZiinfomaxZastyper-   )r'   shaper   r(   r   r   r   test_imsave_roundtripH   s
    
zTestSave.test_imsave_roundtripN)__name__
__module____qualname__r-   Zshapesr
   Zuint8r   Zfloat32Zint16Zfloat64Zdtypesr   Zparametrize	itertoolsproductr4   r   r   r   r   r    )   s   r    )r   r8   Ztempfiler   Ztifffiler   r   Znumpyr
   Zskimager   	ExceptionZskimage._sharedr   Zskimage._shared.testingr   r   r1   ZseedZskipifr   r   r   r    r   r   r   r   <module>   s   
