o
    i;                  	   @   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+dS )A    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   j/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/scipy/io/tests/test_wavfile.pydatafile   s   r   c                  C   T   dD ]%} 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      
r&   c                  C   r   )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   r'   r+   c                  C   r   )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,   r'   r.   c               	   C   s   dD ]?} t  }|tjd d}tjt|| d\}}W d    n1 s&w   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   
r2   c                  C   sz   dD ]8} d}t jt|| d\}}t|d tt|jtj t|jj	dkp1t
j	dko1|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   

r8   c                  C   s   dD ]A} 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   
rA   c                  C   s   dD ]A} 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(   )r9         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   
rD   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(   r:         r   )i   i  i )i   i  i r   r   r   )i   @i ?   ) rK   i   r   r$   r%   r   r   r   r   test_24_bit_odd_size_with_pad   s   


rM   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   i  )
   rH   r   i   )
i i  i ?i  i i  i i  i i  )r   r   r   r   r   r   r   r    r!   r"   anyrL   r   r   r   test_20_bit_extra_data   s   
rQ   c                  C      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(   rF   ir   )         l   ` i   )         l   ` i   rI   )            l      ` i   )      ` rW   i    
r   r   r   r   r   r   r   r    Zint64r"   r$   r%   r   correctr   r   r   test_36_bit_odd_size      
r[   c                  C   rR   )Ntest-8000Hz-le-3ch-5S-45bit.wavFr   r(   rF   i r   )rT   l   i  )rU   l   i  rI   )rV   l      i   )      r^   i   rX   rY   r   r   r   test_45_bit_even_size   r\   r_   c                  C   rR   )Ntest-8000Hz-le-3ch-5S-53bit.wavFr   r(   rF   i  r   )rT   l x i )rU   l x i rI   )rV   l    x i   )    x ra   i   rX   rY   r   r   r   test_53_bit_odd_size   r\   rb   c                  C   s   dD ];} 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(   rF   )rT   l )rU   l rI   )rV   l       )    rf   r)   rX   )r   r$   r%   r   rZ   r   r   r   test_64_bit_even_size  s   

rg   c               	   C   sP   dD ]#} t tdd tjt| dd\}}W d    n1 s w   Y  qd S )N>   rE   r]   rS   r`   rN   zmmap.*not compatiblematchTr   )r	   
ValueErrorr   r   r   rL   r   r   r   test_unsupported_mmap  s   rk   c                  C   sR   dD ]$\} }t jt| dd\}}t jt|dd\}}t|| t|| qd S )N>   )ztest-44100Hz-be-1ch-4bytes.wavr   )ztest-8000Hz-be-3ch-5S-24bit.wavrE   Fr   )r   r   r   r   )ZrifxZriffZrate1Zdata1rate2data2r   r   r   	test_rifx%  s   
rn   c               
   C   z   dD ]8} d}t t|d%}ttdd tj|| d W d    n1 s&w   Y  W d    n1 s5w   Y  qd S )Nr   zexample_1.ncrbz CDF.*'RIFF' and 'RIFX' supportedrh   r   openr   r	   rj   r   r   r   r$   fpr   r   r   test_read_unknown_filetype_fail1     ru   c               
   C   ro   )Nr   zTransparent Busy.anirp   zNot a WAV file.*ACONrh   r   rq   rs   r   r   r    test_read_unknown_riff_form_type:  rv   rw   c               
   C   ro   )Nr   z!test-8000Hz-le-1ch-1byte-ulaw.wavrp   z2Unknown wave file format.*MULAW.*Supported formatsrh   r   rq   rs   r   r   r   test_read_unknown_wave_formatC  s   rx   c               
   C   s   dD ]L} d}t t|d9}ttjdd" tj|| d\}}|jdks&J |dks,J d|d< W d    n1 s:w   Y  W d    n1 sIw   Y  qd S )	Nr   z(test-44100Hz-le-1ch-4bytes-early-eof.wavrp   zReached EOFrh   r   r   r   )rr   r   r
   r   r0   r   size)r   r$   rt   r%   r   r   r   r   test_read_early_eof_with_dataM  s   
rz   c               
   C   ro   )Nr   z0test-44100Hz-le-1ch-4bytes-early-eof-no-data.wavrp   zUnexpected end of file.rh   r   rq   rs   r   r   r   test_read_early_eofZ  rv   r{   c               
   C   ro   )Nr   z/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wavrp   zIncomplete chunk ID.*b'f'rh   r   rq   rs   r   r   r   test_read_incomplete_chunkc  rv   r|   c               
   C   ro   )Nr   z,test-8000Hz-le-3ch-5S-24bit-inconsistent.wavrp   zheader is invalidrh   r   rq   rs   r   r   r   test_read_inconsistent_headerl  rv   r}   dt_str)z<i2z<i4z<i8z<f4z<f8z>i2z>i4z>i8z>f4z>f8z|u1channels)re   r)   r:   r%   r(   i }  r   FTrealfilec                 C   s2  t |}| rt|d}nt }t jd|}|dkr%|d d df }|jdkr0||}n|d |}t	
||| t	j||d\}	}
t||	 t|
jjdv |
jd	 t||
 | rcd|
d< ntjtd
d d|
d< W d    n1 syw   Y  | r|rtrtjdkrt  t  d S d S d S d S d S )Nztemp.wavd   re   r   fr>   r   )<r5   |)msgz	read-onlyrh   win32)r   r    strr   r   randomZrandkindZastyper   writer   r   r   r6   r   pytestr	   rj   r   r7   platformr   )r   r   r%   r   r~   Ztmpdirr    Ztmpfiler   rl   rm   r   r   r   test_write_roundtripy  s0   






r   ),r   r7   ior   numpyr   Znumpy.testingr   r   r   r   r   r   r   r	   r
   Zscipy.ior   r   r&   r+   r.   r2   r8   rA   rD   rM   rQ   r[   r_   rb   rg   rk   rn   ru   rw   rx   rz   r{   r|   r}   markZparametrizer   r   r   r   r   <module>   sJ     		
		