
    doiJ              	          S SK r S SKrS SKJrJr  S SKrS SKrS SKrS SK	J
r
JrJrJrJr  S SKrS SKJrJr  S SKJr  S rS rS rS	 rS
 rS rS rS rS rS rS rS rS r S r!S r"S r#S r$\RJ                  RL                  S 5       r' " S S5      r(S r)S r*S r+S r,S r-S r.S  r/S! r0\RJ                  Rc                  S"/ S#Q5      \RJ                  Rc                  S$/ S%Q5      \RJ                  Rc                  S&S'S(/5      \RJ                  Rc                  S)S*S+/5      \RJ                  Rc                  S,S*S+/5      S- 5       5       5       5       5       r2\RJ                  Rc                  S.\Rf                  /5      S/ 5       r4S0 r5g)1    N)BytesIOUnsupportedOperation)assert_equalassert_assert_array_equalbreak_cyclesIS_PYPY)raiseswarns)wavfilec                     [         R                  R                  [         R                  R                  [        5      SU 5      $ )Ndata)ospathjoindirname__file__)fns    W/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/io/tests/test_wavfile.pydatafiler      s&    77<<162>>    c                     S H  n Sn[         R                  " [        U5      U S9u  p#[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        AM     g )NFTtest-44100Hz-le-1ch-4bytes.wavmmapD  )i:  
r   readr   r   r   np
issubdtypedtypeint32shaper   filenamerater   s       r   test_read_1r(      s^    3\\(8"44@
T5!djj"((34TZZ) r   c                     S H  n Sn[         R                  " [        U5      U S9u  p#[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        AM     g )Nr   test-8000Hz-le-2ch-1byteu.wavr   @  )i      )
r   r   r   r   r   r    r!   r"   uint8r$   r%   s       r   test_read_2r.   !   s^    2\\(8"44@
T4 djj"((34TZZ* r   c                     S H  n Sn[         R                  " [        U5      U S9u  p#[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        AM     g )Nr   #test-44100Hz-2ch-32bit-float-le.wavr   r   i  r,   )
r   r   r   r   r   r    r!   r"   float32r$   r%   s       r   test_read_3r3   .   s^    8\\(8"44@
T5!djj"**56TZZ* r   c                     S H  n [         R                  " 5          [         R                  " SS[        R                  5        Sn[        R
                  " [        U5      U S9u  p#S S S 5        [        WS5        [        [        R                  " WR                  [        R                  5      5        [        UR                  S5        AM     g ! , (       d  f       Nn= f)Nr   ignorez,Chunk .non-data. not understood, skipping itz)test-48000Hz-2ch-64bit-float-le-wavex.wavr   i  )i  r,   )warningscatch_warningsfilterwarningsr   WavFileWarningr   r   r   r   r    r!   r"   float64r$   r%   s       r   test_read_4r;   ;   s    $$&##>&&
 CH hx&8tDJD ' 	T5!djj"**56TZZ* &&s   A	C
C	c                     S H  n Sn[         R                  " [        U5      U S9u  p#[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [	        UR                  R                  S:H  =(       d3    [        R                  S:H  =(       a    UR                  R                  S:H  5        [        UR                  S5        AM     g )	Nr   #test-44100Hz-2ch-32bit-float-be.wavr   r   >big=r1   )r   r   r   r   r   r    r!   r"   r2   	byteordersysr$   r%   s       r   test_read_5rC   N   s    8\\(8"44@
T5!djj"**56

$$+ M0F 1L04

0D0D0K	NTZZ* r   c                     S H  n Sn[         R                  " [        U5      U S9u  p#[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        [        US-  S5        [        UR                  5       S5        [        US	   S
5        [        UR                  5       S5        AM     g )Nr   test-8000Hz-le-5ch-9S-5bit.wavr   r+   )	         r      r   r      )r   r   r   r   r   r    r!   r"   r-   r$   maxminr%   s       r   test_5_bit_odd_size_no_padrN   ]   s     3\\(8"44@
T4 djj"((34TZZ( 	TJ&* 	TXXZ,T$Z%TXXZ#! r   c                     S H  n Sn[         R                  " [        U5      U S9u  p#[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        [        US-  S5        [        UR                  5       S5        [        US	   S5        [        UR                  5       S
5        AM     g )Nr   test-8000Hz-le-4ch-9S-12bit.wavr   r+   )rF         r   i  rJ   i )r   r   r   r   r   r    r!   r"   int16r$   rL   rM   r%   s       r   test_12_bit_even_sizerT   t   s     4\\(8"44@
T4 djj"((34TZZ( 	T//3 	TXXZ!45T$Z#TXXZ!56! r   c            	      P   Sn [         R                  " [        U 5      SS9u  p[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        [        US-  S5        [        U/ SQ/ S	Q/ S
Q/ SQ/ SQ/5        g )Ntest-8000Hz-le-3ch-5S-24bit.wavFr   r+   rG         r   )i   i  i )i   i  i r   r   r   )i   @i ?   ) r\   i   r   r&   r'   r   s      r   test_24_bit_odd_size_with_padr^      s     1Hhx0u=JDtBMM$**bhh/0V$ a  <<<<<	> ?r   c                  n   Sn [         R                  " [        U 5      SS9u  p[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        [        US-  S5        [	        US-  R                  5       5        [        U/ S	Q5        g )
N&test-1234Hz-le-1ch-10S-20bit-extra.wavFr     )
   rY   r   i   )
i i  i ?i  i i  i i  i i  )r   r   r   r   r   r    r!   r"   r#   r$   anyr]   s      r   test_20_bit_extra_datard      s     8Hhx0u=JDtBMM$**bhh/0U# a  TE\ !  
 
r   c                  R   Sn [         R                  " [        U 5      SS9u  p[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        [        US-  S5        / SQ/ S	Q/ S
Q/ SQ/ SQ/n[        X#5        g )Ntest-8000Hz-le-3ch-5S-36bit.wavFr   r+   rW   ir   )         l   ` i   )         l   ` i   rZ   )            l      ` i   )      ` rj       
r   r   r   r   r   r    r!   r"   int64r$   r&   r'   r   corrects       r   test_36_bit_odd_sizerp      s    0Hhx0u=JDtBMM$**bhh/0V$ 	!1% NMMMM	OG r   c                  R   Sn [         R                  " [        U 5      SS9u  p[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        [        US-  S5        / SQ/ S	Q/ S
Q/ SQ/ SQ/n[        X#5        g )Ntest-8000Hz-le-3ch-5S-45bit.wavFr   r+   rW   i r   )rg   l   i  )rh   l   i  rZ   )ri   l      i   )      rs   i   rl   rn   s       r   test_45_bit_even_sizert      s    0Hhx0u=JDtBMM$**bhh/0V$ # LKKKK	MG r   c                  R   Sn [         R                  " [        U 5      SS9u  p[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        [        US-  S5        / SQ/ S	Q/ S
Q/ SQ/ SQ/n[        X#5        g )Ntest-8000Hz-le-3ch-5S-53bit.wavFr   r+   rW   i  r   )rg   l x i )rh   l x i rZ   )ri   l    x i   )    x rw   i   rl   rn   s       r   test_53_bit_odd_sizerx      s    0Hhx0u=JDtBMM$**bhh/0V$ q! IHHHH	JG r   c                  H   S H  n Sn[         R                  " [        U5      U S9u  p#[        US5        [	        [
        R                  " UR                  [
        R                  5      5        [        UR                  S5        / SQ/ SQ/ SQ/ S	Q/ S
Q/n[        X45        AM     g )Nr   test-8000Hz-le-3ch-5S-64bit.wavr   r+   rW   )rg   l )rh   l rZ   )ri   l       )    r~   r,   rl   )r   r&   r'   r   ro   s        r   test_64_bit_even_sizer     s    4\\(8"44@
T4 djj"((34TZZ( JIIII	K 	T#' r   c                      S H:  n [        [        SS9   [        R                  " [	        U 5      SS9u  pS S S 5        M<     g ! , (       d  f       MN  = f)N>   rV   rf   rr   rv   r`   zmmap.*not compatiblematchTr   )r
   
ValueErrorr   r   r   r]   s      r   test_unsupported_mmapr     sC    ?
 J&<= hx&8tDJD >=?
 >=s   !A
A	c                      S H[  u  p[         R                  " [        U 5      SS9u  p#[         R                  " [        U5      SS9u  pE[        X$5        [        X55        M]     g )N>   ztest-8000Hz-be-3ch-5S-24bit.wavrV   test-44100Hz-be-1ch-4bytes.wavr   Fr   )r   r   r   r   )rifxriffrate1data1rate2data2s         r   	test_rifxr   *  sN    <
 ||HTN?||HTN?U"U"<r   c                      S H[  u  p[         R                  " [        U 5      SS9u  p#[         R                  " [        U5      SS9u  pE[        X$5        [        X55        M]     g )N>   z$test-8000Hz-le-3ch-5S-24bit-rf64.wavrV   #test-44100Hz-le-1ch-4bytes-rf64.wavr   Fr   )r   r   r   r   )rf64r   r   r   r   r   s         r   	test_rf64r   6  sN    <
 ||HTN?||HTN?5(5(<r   c                    [         R                  " S5      n[        U R                  S5      5      nSn[         R                  R                  SSS5      R                  U5      n[        R                  " X#U5        [        R                  " USS9u  pV[        X55        UR                   S	3nUR                  R                  S
;   d   U5       e[        XF5        SUS'   g )N<i8temp.wavr   r      )rk   Tr   z! byteorder not in ('<', '=', '|')<r@   |)r    r"   strr   randomrandintastyper   writer   r   rA   r   )tmpdirr"   tmpfiler'   r   r   r   msgs           r   test_write_roundtrip_rf64r   B  s    HHUOE&++j)*GD99QX.55e<DMM'&<<d3LE[[M:
;C;;  O38S83t#E!Hr   c                   0    \ rS rSrS rS rSS jrS rSrg)	NonseekableiV  c                     Xl         g Nfp)selfr   s     r   __init__Nonseekable.__init__W  s    r   c                     g)NF r   s    r   seekableNonseekable.seekableZ  s    r   c                8    U R                   R                  U5      $ r   )r   r   )r   sizes     r   r   Nonseekable.read]  s    ww||D!!r   c                 8    U R                   R                  5         g r   )r   closer   s    r   r   Nonseekable.close`  s    r   r   N)r|   )	__name__
__module____qualname____firstlineno__r   r   r   r   __static_attributes__r   r   r   r   r   V  s    "r   r   c                     S H  n [        U 5      n[        US5       n[        US5       n[        R                  " U5      u  pE[        R                  " [	        U5      5      u  pg[        R                  " USS9u  p[        XH5        [        Xh5        [        XY5        [        Xy5        S S S 5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       M  = f)N)r   r*   r0   r=   rE   rP   rV   r`   rf   rr   rv   rz   r   r   rbFr   )r   openr   r   r   r   )
r&   dfnamefp1fp2r   r   r   r   rate3data3s
             r   test_streamsr   d  s    < (#&$3VT(:c"<<,LE"<<C(89LE"<<U;LE&&&& );< );(:s#   CA=B<'C<
C
C
C	c                      S HN  n Sn[        [        U5      S5       n[        [        SS9   [        R
                  " X S9  S S S 5        S S S 5        MP     g ! , (       d  f       N= f! , (       d  f       Ms  = f)Nr   zexample_1.ncr   z)CDF.*'RIFF', 'RIFX', and 'RF64' supportedr   r   r   r   r
   r   r   r   r   r&   r   s      r   test_read_unknown_filetype_failr   ~  sZ    !(8$d+r
*UVR+ W ,+  WV ,+"   A'AA'
A$ A''
A6	c                      S HN  n Sn[        [        U5      S5       n[        [        SS9   [        R
                  " X S9  S S S 5        S S S 5        MP     g ! , (       d  f       N= f! , (       d  f       Ms  = f)Nr   zTransparent Busy.anir   zNot a WAV file.*ACONr   r   r   r   s      r    test_read_unknown_riff_form_typer     sZ    )(8$d+r
*@AR+ B ,+  BA ,+r   c                      S HN  n Sn[        [        U5      S5       n[        [        SS9   [        R
                  " X S9  S S S 5        S S S 5        MP     g ! , (       d  f       N= f! , (       d  f       Ms  = f)Nr   z!test-8000Hz-le-1ch-1byte-ulaw.wavr   z2Unknown wave file format.*MULAW.*Supported formatsr   r   r   r   s      r   test_read_unknown_wave_formatr     s^    6(8$d+r
 +, -R+- ,+ - - ,+r   c                  H   S Hy  n Sn[        [        U5      S5       n[        [        R                  SS9   [        R
                  " X S9u  p4UR                  S:  d   eUS:X  d   eSUS'   S S S 5        S S S 5        M{     g ! , (       d  f       N= f! , (       d  f       M  = f)	Nr   z(test-44100Hz-le-1ch-4bytes-early-eof.wavr   zReached EOFr   r   r   r   )r   r   r   r   r9   r   r   )r   r&   r   r'   r   s        r   test_read_early_eof_with_datar     s    =(8$d+rw--]C$\\"8
yy1}$}u}$}Q D ,+  DC ,+s"   B6B,B
BB
B!	c                      S HN  n Sn[        [        U5      S5       n[        [        SS9   [        R
                  " X S9  S S S 5        S S S 5        MP     g ! , (       d  f       N= f! , (       d  f       Ms  = f)Nr   z0test-44100Hz-le-1ch-4bytes-early-eof-no-data.wavr   zUnexpected end of file.r   r   r   r   s      r   test_read_early_eofr     sZ    E(8$d+r
*CDR+ E ,+  ED ,+r   c                      S HN  n Sn[        [        U5      S5       n[        [        SS9   [        R
                  " X S9  S S S 5        S S S 5        MP     g ! , (       d  f       N= f! , (       d  f       Ms  = f)Nr   z/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wavr   zIncomplete chunk ID.*b'f'r   r   r   r   s      r   test_read_incomplete_chunkr     sZ    D(8$d+r
*EFR+ G ,+  GF ,+r   c                      S HN  n Sn[        [        U5      S5       n[        [        SS9   [        R
                  " X S9  S S S 5        S S S 5        MP     g ! , (       d  f       N= f! , (       d  f       Ms  = f)Nr   z,test-8000Hz-le-3ch-5S-24bit-inconsistent.wavr   zheader is invalidr   r   r   r   s      r   test_read_inconsistent_headerr     sX    A(8$d+r
*=>R+ ? ,+  ?> ,+r   dt_str)z<i2z<i4r   z<f4z<f8z>i2z>i4z>i8z>f4z>f8z|u1channels)r}   r,   rG   r'   r+   i }  r   FTrealfilec                    [         R                  " U5      nU (       aj  [        UR                  [        [        R
                  " 5       5      S5      5      n[        R                  " [        R                  R                  U5      SS9  O
[        5       n[         R                  R                  SU5      nUS:X  a	  US S 2S4   nUR                  S:X  a  UR                  U5      nOUS-  R                  U5      n[        R                   " XrU5        [        R"                  " XqS	9u  p[%        X)5        ['        U
R                  R(                  S
;   U
R                  S9  [+        X5        U (       a  SU
S'   O'[,        R.                  " [0        SS9   SU
S'   S S S 5        U (       a>  U(       a6  [2        (       a*  [4        R6                  S:X  a  [9        5         [9        5         g g g g g ! , (       d  f       NT= f)Nr   T)exist_okd   r}   r   frK   r   r   )r   z	read-onlyr   win32)r    r"   r   r   	threadingget_native_idr   makedirsr   r   r   r   randkindr   r   r   r   r   r   rA   r   pytestr
   r   r	   rB   platformr   )r   r   r'   r   r   r   r"   r   r   r   r   s              r   test_write_roundtripr     sZ    HHVEfkk#i&=&=&?"@*MN
BGGOOG,t<)99>>#x(D1}AqDzzzS{{5!S  'MM'&<<3LEEKK!!_4%++Ft#a]]:[9E!H : DWW)@ 		 *AWDx :9s   G
G-r"   c                 N   [        U R                  S5      5      n[        R                  R	                  S5      nUR                  S5      R                  U5      nSn[        R                  " [        SS9   [        R                  " X%U5        S S S 5        g ! , (       d  f       g = f)Nr   ra   )r   rG   r+   Unsupportedr   )r   r   r    r   default_rngr   r   r
   r   r   r   )r   r"   r   rngr   r'   s         r   test_wavfile_dtype_unsupportedr     so    &++j)*G
))


%C::h&&u-DD	z	7gT* 
8	7	7s   5B
B$c                     [         R                  " [        S5      5      n [        R                  " [
        5         U R                  SS5        S S S 5        [        R                  " [
        5         U R                  SS5        S S S 5        U R                  S[        R                  5      nUS:X  d
   SU 35       eg ! , (       d  f       Nt= f! , (       d  f       NP= f)Ns     r   rG   r|   r,   z$Failed to seek to end, got position )	r   SeekEmulatingReaderr   r   r
   r   seekr   SEEK_END)readerposs     r   'test_seek_emulating_reader_invalid_seekr     s    (()=>F 
+	,Aq 
- 
+	,B 
- ++a
%C!8A;C5AA8 
-	, 
-	,s   B;/C;
C	
C)6r   rB   ior   r   r   r6   numpyr    numpy.testingr   r   r   r   r	   r   r
   r   scipy.ior   r   r(   r.   r3   r;   rC   rN   rT   r^   rd   rp   rt   rx   r   r   r   r   markxslowr   r   r   r   r   r   r   r   r   r   parametrizer   float16r   r   r   r   r   <module>r      s   	 
 .   2 2    ?


&.,?.< 0 0 00E	#	)  & '4,,,
,,,  $N OY/$/%/eT]3" 4 0 0 0O"J 2::,/+ 0+Br   