U
    Hvfj                     @   sN   d Z ddlmZ ddlZddlZddlZddlm	Z	 ddl
ZG dd dZdS )zK
Ensure that we can use pathlib.Path objects in all relevant IO functions.
    )PathN)tempdirc                   @   sv   e Zd Zedej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S )	TestPaths   c              	   C   sB   t  2}t|d }tj|d| ji | s4tW 5 Q R X d S Ndata.matdata)r   r   scipyiosavematr   is_fileAssertionError)selftemp_dirpath r   =/tmp/pip-unpacked-wheel-96ln3f52/scipy/io/tests/test_paths.pytest_savemat   s    zTestPaths.test_savematc              	   C   s\   t  L}t|d }tjt|d| ji tj|}|d | jk sNt	W 5 Q R X d S r   )
r   r   r	   r
   r   strr   Zloadmatallr   )r   r   r   Zmat_contentsr   r   r   test_loadmat   s
    zTestPaths.test_loadmatc              	   C   sV   t  F}t|d }tjt|d| ji tj|}|d dksHtW 5 Q R X d S )Nr   r   r   )r   )   r   int64)	r   r   r	   r
   r   r   r   Zwhosmatr   )r   r   r   contentsr   r   r   test_whosmat    s
    zTestPaths.test_whosmatc                 C   s   t tjd }tj| d S )Nzdata/scalar_string.sav)r   __file__parentr	   r
   Zreadsavr   r   r   r   r   test_readsav)   s    zTestPaths.test_readsavc              	   C   sf   t  V}tjtjd}t|d }tjt|| tj	|}||kj
dksXtW 5 Q R X d S )N   data.hbr   )r   r	   sparse
csr_matrixeyer   r
   hb_writer   Zhb_readnnzr   r   r   r   r   Zdata_newr   r   r   test_hb_read-   s    zTestPaths.test_hb_readc              	   C   sP   t  @}tjtjd}t|d }tj|| | sBt	W 5 Q R X d S )Nr   r    )
r   r	   r!   r"   r#   r   r
   r$   r   r   r   r   r   r   r   r   r   test_hb_write7   s
    zTestPaths.test_hb_writec              	   C   sf   t  V}tjtjd}t|d }tjt|| tj	|}||kj
dksXtW 5 Q R X d S )Nr   data.mtxr   )r   r	   r!   r"   r#   r   r
   mmwriter   Zmmreadr%   r   r&   r   r   r   test_mmio_read>   s    zTestPaths.test_mmio_readc              	   C   sD   t  4}tjtjd}t|d }tj|| W 5 Q R X d S )Nr   r*   )r   r	   r!   r"   r#   r   r
   r+   r(   r   r   r   test_mmio_writeH   s    zTestPaths.test_mmio_writec                 C   s   t tjd }tj| d S )Nzdata/example_1.nc)r   r   r   r	   r
   Znetcdf_filer   r   r   r   test_netcdf_fileN   s    zTestPaths.test_netcdf_filec                 C   s    t tjd }tjj| d S Nz"data/test-8000Hz-le-2ch-1byteu.wav)r   r   r   r	   r
   wavfilereadr   r   r   r   test_wavfile_readR   s    zTestPaths.test_wavfile_readc              	   C   sZ   t tjd }tjjt|\}}t &}t ||j	 }tjj
||| W 5 Q R X d S r/   )r   r   r   r	   r
   r0   r1   r   r   namewrite)r   Z
input_pathZrater   r   Zoutput_pathr   r   r   test_wavfile_writeV   s
    zTestPaths.test_wavfile_writeN)__name__
__module____qualname__npZarangeZastyper   r   r   r   r   r   r'   r)   r,   r-   r.   r2   r5   r   r   r   r   r      s   		

r   )__doc__pathlibr   Znumpyr9   Zscipy.ior	   Zscipy.io.wavfileZscipy._lib._tmpdirsr   Zscipy.sparser   r   r   r   r   <module>   s   