o
    Ö­jÓA  ã                	   @   sÈ  d dl Z d dlZd dlmZ d dl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#ej$j%d(d)„ ƒZ&d*d+„ Z'd,d-„ Z(d.d/„ Z)ej$j*d0d1„ ƒZ+d2d3„ Z,d4d5„ Z-d6d7„ Z.ej$ /d8g d9¢¡ej$ /d:g d;¢¡ej$ /d<d=d>g¡ej$ /d?d@dAg¡ej$ /dBd@dAg¡dCdD„ ƒƒƒƒƒZ0ej$ /dEej1g¡dFdG„ ƒZ2dS )Hé    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   úX/var/www/html/CropPilot/venv/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©ÚmmapéD¬  )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    Úfloat64r"   )r   Úsupr$   r%   r   r   r   r   Útest_read_4:   s   ÿü
õr3   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_5J   s   

ÿör9   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_padY   s   
ðrB   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(   )r:   é   é   r   ið  r>   i €ÿÿ)r   r   r   r   r   r   r   r    Úint16r"   r@   rA   r#   r   r   r   Útest_12_bit_even_sizep   s   
ðrF   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 ÿÿ?é   )é ÿÿrM   i   r   ©r$   r%   r   r   r   r   Útest_24_bit_odd_size_with_pad†   s   


ürO   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-1234Hz-le-1ch-10S-20bit-extra.wavFr   éÒ  )é
   rJ   r   i   )
i ðÿi  €i øÿ?i  Ài üÿi  ài þÿi  ði ÿÿi  ø)r   r   r   r   r   r   r   r    r!   r"   ÚanyrN   r   r   r   Útest_20_bit_extra_data�   s   
rT   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(   rH   iÿÿÿr   )ìûÿÿÿ         lûÿÿÿ   `ÿÿ i   à)ìûÿÿÿ         lûÿÿÿ   `ÿÿ i   ðrK   )ì            l      `ÿÿ i   )ì      `ÿÿ rZ   é    ©
r   r   r   r   r   r   r   r    Úint64r"   ©r$   r%   r   Úcorrectr   r   r   Útest_36_bit_odd_size»   ó   
ür`   c                  C   rU   )Nútest-8000Hz-le-3ch-5S-45bit.wavFr   r(   rH   iÿÿ r   )rW   lûÿÿÿ  ðÿÿ i  ðÿ)rX   lûÿÿÿ  ðÿÿ i  øÿrK   )rY   l     ðÿÿ i   )ì     ðÿÿ rc   i   r\   r^   r   r   r   Útest_45_bit_even_sizeÓ   ra   rd   c                  C   rU   )Nútest-8000Hz-le-3ch-5S-53bit.wavFr   r(   rH   iÿ  r   )rW   lûÿÿÿ xÿÿÿ i ðÿÿ)rX   lûÿÿÿ xÿÿÿ i øÿÿrK   )rY   l    xÿÿÿ i   )ì    xÿÿÿ rf   i   r\   r^   r   r   r   Útest_53_bit_odd_sizeë   ra   rg   c                  C   s€   dD ];} d}t jt|ƒ| 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.wavr   r(   rH   )rW   lûÿÿÿÿÿÿÿ éþÿÿÿ)rX   lûÿÿÿÿÿÿÿ éÿÿÿÿrK   )rY   l   ÿÿÿÿ é   )ì   ÿÿÿÿ rk   r)   r\   )r   r$   r%   r   r_   r   r   r   Útest_64_bit_even_size  s   
ü
írl   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>   rG   rV   rb   re   rP   zmmap.*not compatible©ÚmatchTr   )r	   Ú
ValueErrorr   r   r   rN   r   r   r   Útest_unsupported_mmap  s   ÿ€ûrp   c                  C   óR   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.wavrG   Fr   )r   r   r   r   )ÚrifxÚriffÚrate1Údata1Úrate2Údata2r   r   r   Ú	test_rifx&  ó   
ùrz   c                  C   rq   )N>   ©z#test-44100Hz-le-1ch-4bytes-rf64.wavr   ©z$test-8000Hz-le-3ch-5S-24bit-rf64.wavrG   Fr   )r   r   r   r   )Úrf64ru   rv   rw   rx   ry   r   r   r   Ú	test_rf642  r{   r   c                 C   s’   t  d¡}t|  d¡ƒ}d}t j ddd¡ |¡}t |||¡ tj	|dd�\}}t
||ƒ |j› d	�}|jjd
v s>J |ƒ‚t||ƒ d|d< d S )Nú<i8útemp.wavr   r   é   )r[   Tr   z! byteorder not in ('<', '=', '|')©ú<r6   ú|)r   r    Ústrr   ÚrandomÚrandintÚastyper   Úwriter   r   r7   r   )Útmpdirr    Útmpfiler%   r   rx   ry   Úmsgr   r   r   Útest_write_roundtrip_rf64>  s   


rŽ   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', 'RIFX', and 'RF64' supportedrm   r   ©Úopenr   r	   ro   r   r   ©r   r$   Úfpr   r   r   Útest_read_unknown_filetype_failQ  ó   ÿ€ÿ€þr•   c               
   C   r�   )Nr   zTransparent Busy.anir�   zNot a WAV file.*ACONrm   r   r‘   r“   r   r   r   Ú test_read_unknown_riff_form_typeZ  r–   r—   c               
   C   r�   )Nr   z!test-8000Hz-le-1ch-1byte-ulaw.wavr�   z2Unknown wave file format.*MULAW.*Supported formatsrm   r   r‘   r“   r   r   r   Útest_read_unknown_wave_formatc  s   þ€ÿ€þr˜   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.wavr�   zReached EOFrm   r   r   r   )r’   r   r
   r   r0   r   Úsize)r   r$   r”   r%   r   r   r   r   Útest_read_early_eof_with_datam  s   
û€ÿ€þrš   c               
   C   r�   )Nr   z0test-44100Hz-le-1ch-4bytes-early-eof-no-data.wavr�   zUnexpected end of file.rm   r   r‘   r“   r   r   r   Útest_read_early_eof{  r–   r›   c               
   C   r�   )Nr   z/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wavr�   zIncomplete chunk ID.*b'f'rm   r   r‘   r“   r   r   r   Útest_read_incomplete_chunk„  r–   rœ   c               
   C   r�   )Nr   z,test-8000Hz-le-3ch-5S-24bit-inconsistent.wavr�   zheader is invalidrm   r   r‘   r“   r   r   r   Útest_read_inconsistent_header�  r–   r�   Údt_str)z<i2z<i4r€   z<f4z<f8z>i2z>i4z>i8z>f4z>f8z|u1Úchannels)rj   r)   r;   r%   r(   i }  r   FTÚrealfilec                 C   sR  t  |¡}| rt| tt ¡ ƒd¡ƒ}tjtj 	|¡dd� nt
ƒ }t j d|¡}|dkr5|d d …df }|jdkr@| |¡}n|d  |¡}t |||¡ tj||d	�\}	}
t||	ƒ t|
jjd
v |
jd� t||
ƒ | rsd|
d< ntjtdd�� d|
d< W d   ƒ n1 s‰w   Y  | r¡|r£tr¥tjdkr§tƒ  tƒ  d S d S d S d S d S )Nr�   T)Úexist_okéd   rj   r   Úfr?   r   rƒ   )r�   z	read-onlyrm   Úwin32)r   r    r†   r   Ú	threadingÚget_native_idr   Úmakedirsr   r   r   r‡   ÚrandÚkindr‰   r   rŠ   r   r   r   r7   r   Úpytestr	   ro   r   r8   Úplatformr   )r    r   r%   rŸ   rž   r‹   r    rŒ   r   rx   ry   r   r   r   Útest_write_roundtripš  s2   





ÿ
ür¬   r    c                 C   sp   t |  d¡ƒ}tj d¡}| d¡ |¡}d}tjtdd�� t	 
|||¡ W d   ƒ d S 1 s1w   Y  d S )Nr�   rQ   )r¢   r;   r(   ÚUnsupportedrm   )r†   r   r   r‡   Údefault_rngr‰   rª   r	   ro   r   rŠ   )r‹   r    rŒ   Úrngr   r%   r   r   r   Útest_wavfile_dtype_unsupportedÅ  s   "ÿr°   )3r   r8   Úior   r¥   Únumpyr   Únumpy.testingr   r   r   r   r   r   rª   r	   r
   Úscipy.ior   r   r&   r+   r.   r3   r9   rB   rF   rO   rT   r`   rd   rg   rl   rp   rz   r   ÚmarkÚxslowrŽ   r•   r—   r˜   Úthread_unsaferš   r›   rœ   r�   Úparametrizer¬   Úfloat16r°   r   r   r   r   Ú<module>   sX     
		

		%