a
    BCCf=                  	   @   s  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
mZmZ d dl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"d# Z d$d% Z!d&d' Z"d(d) Z#d*d+ Z$d,d- Z%d.d/ Z&d0d1 Z'd2d3 Z(ej)*d4g d5ej)*d6g d7ej)*d8d9d:gej)*d;d<d=gej)*d>d<d=gd?d@ Z+ej)*dAej,gdBdC Z-dS )D    N)BytesIO)assert_equalassert_assert_array_equalbreak_cyclessuppress_warningsIS_PYPY)raiseswarns)wavfilec                 C   s   t jt jtd| S )Ndata)ospathjoindirname__file__)fn r   W/var/www/html/django/DPS/env/lib/python3.9/site-packages/scipy/io/tests/test_wavfile.pydatafile   s    r   c                  C   sT   dD ]J} d}t jt|| d\}}t|d tt|jtj t|j	d ~qd S )NFTtest-44100Hz-le-1ch-4bytes.wavmmapD  )i:  
r   readr   r   r   np
issubdtypedtypeint32shaper   filenamerater   r   r   r   test_read_1   s    
r%   c                  C   sT   dD ]J} d}t jt|| d\}}t|d tt|jtj t|j	d ~qd S )Nr   ztest-8000Hz-le-2ch-1byteu.wavr   @  )i      )
r   r   r   r   r   r   r   r   uint8r!   r"   r   r   r   test_read_2   s    
r)   c                  C   sT   dD ]J} d}t jt|| d\}}t|d tt|jtj t|j	d ~qd S )Nr   z#test-44100Hz-2ch-32bit-float-le.wavr   r   i  r'   )
r   r   r   r   r   r   r   r   float32r!   r"   r   r   r   test_read_3,   s    
r,   c               	   C   s   dD ]~} t  8}|tjd d}tjt|| d\}}W d    n1 sL0    Y  t|d tt	|j
tj t|jd ~qd S )Nr   z,Chunk .non-data. not understood, skipping itz)test-48000Hz-2ch-64bit-float-le-wavex.wavr   i  )i  r'   )r   filterr   WavFileWarningr   r   r   r   r   r   r   Zfloat64r!   )r   supr#   r$   r   r   r   r   test_read_49   s    4
r0   c                  C   sz   dD ]p} d}t jt|| d\}}t|d tt|jtj t|jj	dkpbt
j	dkob|jj	dk t|jd ~qd S )	Nr   z#test-44100Hz-2ch-32bit-float-be.wavr   r   >big=r*   )r   r   r   r   r   r   r   r   r+   	byteordersysr!   r"   r   r   r   test_read_5I   s    

r6   c                  C   s   dD ]} d}t jt|| d\}}t|d tt|jtj t|j	d t|d@ d t|
 d t|d	 d
 t| d ~qd S )Nr   ztest-8000Hz-le-5ch-9S-5bit.wavr   r&   )	         r      r   r      )r   r   r   r   r   r   r   r   r(   r!   maxminr"   r   r   r   test_5_bit_odd_size_no_padX   s    
r?   c                  C   s   dD ]} d}t jt|| d\}}t|d tt|jtj t|j	d t|d@ d t|
 d t|d	 d t| d
 ~qd S )Nr   ztest-8000Hz-le-4ch-9S-12bit.wavr   r&   )r7         r   i  r;   i )r   r   r   r   r   r   r   r   Zint16r!   r=   r>   r"   r   r   r   test_12_bit_even_sizeo   s    
rB   c                  C   s~   d} t jt| dd\}}t|d tt|jtj t|j	d t|d@ d t|g dg d	g d
g dg dg d S )Ntest-8000Hz-le-3ch-5S-24bit.wavFr   r&   r8         r   )i   i  i )i   i  i r   r   r   )i   @i ?   ) rI   i   r   r#   r$   r   r   r   r   test_24_bit_odd_size_with_pad   s    

rK   c                  C   st   d} t jt| dd\}}t|d tt|jtj t|j	d t|d@ d t|d@ 
  t|g d	 d S )
N&test-8000Hz-le-1ch-10S-20bit-extra.wavFr     )
   rF   r   i   )
i i  i ?i  i i  i i  i i  )r   r   r   r   r   r   r   r   r    r!   anyrJ   r   r   r   test_20_bit_extra_data   s    
rP   c                  C   s   d} t jt| dd\}}t|d tt|jtj t|j	d t|d@ d g dg d	g d
g dg dg}t|| d S )Ntest-8000Hz-le-3ch-5S-36bit.wavFr   r&   rD   ir   )         l   ` i   )         l   ` i   rG   )            l      ` i   )      ` rU   i    
r   r   r   r   r   r   r   r   Zint64r!   r#   r$   r   correctr   r   r   test_36_bit_odd_size   s    
rY   c                  C   s   d} t jt| dd\}}t|d tt|jtj t|j	d t|d@ d g dg d	g d
g dg dg}t|| d S )Ntest-8000Hz-le-3ch-5S-45bit.wavFr   r&   rD   i r   )rR   l   i  )rS   l   i  rG   )rT   l      i   )      r[   i   rV   rW   r   r   r   test_45_bit_even_size   s    
r\   c                  C   s   d} t jt| dd\}}t|d tt|jtj t|j	d t|d@ d g dg d	g d
g dg dg}t|| d S )Ntest-8000Hz-le-3ch-5S-53bit.wavFr   r&   rD   i  r   )rR   l x i )rS   l x i rG   )rT   l    x i   )    x r^   i   rV   rW   r   r   r   test_53_bit_odd_size   s    
r_   c                  C   s   dD ]v} d}t jt|dd\}}t|d tt|jtj t|j	d g dg dg d	g d
g dg}t|| ~qd S )Nr   ztest-8000Hz-le-3ch-5S-64bit.wavFr   r&   rD   )rR   l )rS   l rG   )rT   l       )    rc   r'   rV   )r   r#   r$   r   rX   r   r   r   test_64_bit_even_size  s    

rd   c               	   C   sP   dD ]F} t tdd& tjt| dd\}}W d    q1 s@0    Y  qd S )N>   rQ   rZ   rC   r]   rL   zmmap.*not compatiblematchTr   )r	   
ValueErrorr   r   r   rJ   r   r   r   test_unsupported_mmap  s    rh   c                  C   sR   dD ]H\} }t jt| dd\}}t jt|dd\}}t|| t|| qd S )N>   )ztest-8000Hz-be-3ch-5S-24bit.wavrC   )ztest-44100Hz-be-1ch-4bytes.wavr   Fr   )r   r   r   r   )ZrifxZriffZrate1Zdata1rate2data2r   r   r   	test_rifx%  s
    
rk   c               
   C   sz   dD ]p} d}t t|dJ}ttdd tj|| d W d    n1 sL0    Y  W d    q1 sj0    Y  qd S )Nr   zexample_1.ncrbz CDF.*'RIFF' and 'RIFX' supportedre   r   openr   r	   rg   r   r   r   r#   fpr   r   r   test_read_unknown_filetype_fail1  s
    rq   c               
   C   sz   dD ]p} d}t t|dJ}ttdd tj|| d W d    n1 sL0    Y  W d    q1 sj0    Y  qd S )Nr   zTransparent Busy.anirl   zNot a WAV file.*ACONre   r   rm   ro   r   r   r    test_read_unknown_riff_form_type:  s
    rr   c               
   C   sz   dD ]p} d}t t|dJ}ttdd tj|| d W d    n1 sL0    Y  W d    q1 sj0    Y  qd S )Nr   z!test-8000Hz-le-1ch-1byte-ulaw.wavrl   z2Unknown wave file format.*MULAW.*Supported formatsre   r   rm   ro   r   r   r   test_read_unknown_wave_formatC  s
    rs   c               
   C   s   dD ]} d}t t|dr}ttjddD tj|| d\}}|jdksLJ |dksXJ d|d< W d    n1 st0    Y  W d    q1 s0    Y  qd S )	Nr   z(test-44100Hz-le-1ch-4bytes-early-eof.wavrl   zReached EOFre   r   r   r   )rn   r   r
   r   r.   r   size)r   r#   rp   r$   r   r   r   r   test_read_early_eof_with_dataM  s    ru   c               
   C   sz   dD ]p} d}t t|dJ}ttdd tj|| d W d    n1 sL0    Y  W d    q1 sj0    Y  qd S )Nr   z0test-44100Hz-le-1ch-4bytes-early-eof-no-data.wavrl   zUnexpected end of file.re   r   rm   ro   r   r   r   test_read_early_eofZ  s
    rv   c               
   C   sz   dD ]p} d}t t|dJ}ttdd tj|| d W d    n1 sL0    Y  W d    q1 sj0    Y  qd S )Nr   z/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wavrl   zIncomplete chunk ID.*b'f're   r   rm   ro   r   r   r   test_read_incomplete_chunkc  s
    rw   c               
   C   sz   dD ]p} d}t t|dJ}ttdd tj|| d W d    n1 sL0    Y  W d    q1 sj0    Y  qd S )Nr   z,test-8000Hz-le-3ch-5S-24bit-inconsistent.wavrl   zheader is invalidre   r   rm   ro   r   r   r   test_read_inconsistent_headerl  s
    rx   dt_str)z<i2z<i4z<i8z<f4z<f8z>i2z>i4z>i8z>f4z>f8z|u1channels)rb   r'   r8   r$   r&   i }  r   FTrealfilec                 C   s*  t |}| rt|d}nt }t jd|}|dkrJ|d d df }|jdkr`||}n|d |}t	
||| t	j||d\}	}
t||	 t|
jjdv |
jd	 t||
 | rd|
d< n6tjtd
d d|
d< W d    n1 s0    Y  | r&|r&tr&tjdkr&t  t  d S )Ntemp.wavd   rb   r   fr<   r   )<r3   |)msgz	read-onlyre   win32)r   r   strr   r   randomZrandkindastyper   writer   r   r   r4   r   pytestr	   rg   r   r5   platformr   )r{   r   r$   rz   ry   tmpdirr   tmpfiler   ri   rj   r   r   r   test_write_roundtripy  s,    




&r   r   c                 C   sn   t | d}tjd}|d|}d}tjtdd t	
||| W d    n1 s`0    Y  d S )Nr|   rM   )r}   r8   r&   ZUnsupportedre   )r   r   r   r   Zdefault_rngr   r   r	   rg   r   r   )r   r   r   rngr   r$   r   r   r   test_wavfile_dtype_unsupported  s    r   ).r   r5   ior   numpyr   Znumpy.testingr   r   r   r   r   r   r   r	   r
   Zscipy.ior   r   r%   r)   r,   r0   r6   r?   rB   rK   rP   rY   r\   r_   rd   rh   rk   rq   rr   rs   ru   rv   rw   rx   markZparametrizer   Zfloat16r   r   r   r   r   <module>   sL    		
		$