3
Pdg                 @   s   d dl Z d dlZd dlZd dlmZ d dlZd dlmZm	Z	m
Z
mZ d dlmZmZ d dlm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S )"    N)BytesIO)assert_equalassert_assert_array_equalsuppress_warnings)raiseswarns)wavfilec             C   s   t jjt jjtd| S )Ndata)ospathjoindirname__file__)fn r   O/var/www/html/virt/lib64/python3.6/site-packages/scipy/io/tests/test_wavfile.pydatafile   s    r   c              C   sX   xRdD ]J} d}t jt|| d\}}t|d ttj|jtj t|j	d ~qW d S )	NFTztest-44100Hz-le-1ch-4bytes.wav)mmapiD  :  )FT)r   )
r	   readr   r   r   np
issubdtypedtypeZint32shape)r   filenamerater
   r   r   r   test_read_1   s    

r   c              C   sX   xRdD ]J} d}t jt|| d\}}t|d ttj|jtj t|j	d	 ~qW d S )
NFTztest-8000Hz-le-2ch-1byteu.wav)r   i@        )FT)r   r   )
r	   r   r   r   r   r   r   r   Zuint8r   )r   r   r   r
   r   r   r   test_read_2   s    

r    c              C   sX   xRdD ]J} d}t jt|| d\}}t|d ttj|jtj t|j	d	 ~qW d S )
NFTz#test-44100Hz-2ch-32bit-float-le.wav)r   iD    r   )FT)r!   r   )
r	   r   r   r   r   r   r   r   float32r   )r   r   r   r
   r   r   r   test_read_3,   s    

r#   c              C   sx   xrd	D ]j} t  .}|jtjd d}tjt|| d\}}W d Q R X t|d ttj	|j
tj t|jd
 ~qW d S )NFTz,Chunk .non-data. not understood, skipping itz)test-48000Hz-2ch-64bit-float-le-wavex.wav)r   i    r   )FT)r$   r   )r   filterr	   WavFileWarningr   r   r   r   r   r   r   Zfloat64r   )r   supr   r   r
   r   r   r   test_read_49   s    
 
r(   c              C   s~   xxdD ]p} d}t jt|| d\}}t|d ttj|jtj t|jj	dkpdt
j	dkod|jj	dk t|jd ~qW d S )NFTz#test-44100Hz-2ch-32bit-float-be.wav)r   iD  >big=  r   )FT)r,   r   )r	   r   r   r   r   r   r   r   r"   	byteordersysr   )r   r   r   r
   r   r   r   test_read_5I   s    

r/   c              C   sV   xPdD ]H} d}t t|d,}ttdd tj|| d W d Q R X W d Q R X qW d S )	NFTzexample_1.ncrbz CDF.*'RIFF' and 'RIFX' supported)match)r   )FT)openr   r   
ValueErrorr	   r   )r   r   fpr   r   r   test_read_unknown_filetype_failX   s
    
r5   c              C   sV   xPdD ]H} d}t t|d,}ttdd tj|| d W d Q R X W d Q R X qW d S )	NFTzTransparent Busy.anir0   zNot a WAV file.*ACON)r1   )r   )FT)r2   r   r   r3   r	   r   )r   r   r4   r   r   r    test_read_unknown_riff_form_typea   s
    
r6   c              C   sV   xPdD ]H} d}t t|d,}ttdd tj|| d W d Q R X W d Q R X qW d S )	NFTz!test-8000Hz-le-1ch-1byte-ulaw.wavr0   z2Unknown wave file format.*MULAW.*Supported formats)r1   )r   )FT)r2   r   r   r3   r	   r   )r   r   r4   r   r   r   test_read_unknown_wave_formatj   s
    
r7   c              C   sv   xpd
D ]h} d}t t|dJ}ttjdd0 tj|| d\}}t|jdk t|d	 W d Q R X W d Q R X ~qW d S )NFTz(test-44100Hz-le-1ch-4bytes-early-eof.wavr0   zReached EOF)r1   )r   r   iD  )FT)	r2   r   r   r	   r&   r   r   sizer   )r   r   r4   r   r
   r   r   r   test_read_early_eof_with_datat   s    
r9   c              C   sV   xPdD ]H} d}t t|d,}ttdd tj|| d W d Q R X W d Q R X qW d S )	NFTz0test-44100Hz-le-1ch-4bytes-early-eof-no-data.wavr0   zUnexpected end of file.)r1   )r   )FT)r2   r   r   r3   r	   r   )r   r   r4   r   r   r   test_read_early_eof   s
    
r:   c              C   sV   xPdD ]H} d}t t|d,}ttdd tj|| d W d Q R X W d Q R X qW d S )	NFTz/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wavr0   zIncomplete chunk ID.*b'f')r1   )r   )FT)r2   r   r   r3   r	   r   )r   r   r4   r   r   r   test_read_incomplete_chunk   s
    
r;   c       
      C   s   | r t jdd\}}tj| nt }ztjjd|}|dkrN|d d df }|jdkrd|j	|}n|d j	|}t
j||| xJdD ]B}t
j||d
\}}	t|| t|	jjdk|	jd t||	 ~	qW W d | rtj| X d S )Nz.wav)suffixd      r   f   FT)r   <r+   |)msg)FT)rA   r+   rB   )tempfilemkstempr   closer   r   randomZrandkindZastyper	   writer   r   r   r   r-   r   unlink)
realfiler   r   channelsfdZtmpfiler
   r   Zrate2Zdata2r   r   r   _check_roundtrip   s(    




rN   c              C   s    xdD ]} xdD ]}xdD ]}|dkr2|dkr2q|dkrD|dkrDq|dksT|d	kr^|dkr^q|dkrv|dkrd}nqx\dD ]T}|dkr|dkrq|x<dD ]4}x.dD ]&}t jd|||f }t| ||| qW qW q|W qW qW qW d S )NFTiur?   gqr>   r         Zgq r)   rA   @   }     z%s%s%s)FT)rO   rP   r?   rQ   rR   )r>   r   rS   rT   )r)   rA   )rV   rW   )r>   r   rX   )r   r   rN   )rK   Z	dtypecharr8   Z
endiannessr   rL   dtr   r   r   test_write_roundtrip   s*    






rZ   )r   r.   rD   ior   Znumpyr   Znumpy.testingr   r   r   r   Zpytestr   r   Zscipy.ior	   r   r   r    r#   r(   r/   r5   r6   r7   r9   r:   r;   rN   rZ   r   r   r   r   <module>   s*   		
		