+
    nDjWI              	          ^ RI t ^ RIt^ RIHtHt ^ RIt^ RIt^ RIt^ RI	H
t
HtHt ^ RIt^ RIHtHt ^ RIHt R tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR t R t!R t"]PF                  PH                  R 4       t% ! R R4      t&R t'R t(R t)R t*R t+R t,R  t-R! t.]PF                  P_                  R". R/O4      ]PF                  P_                  R#. R0O4      ]PF                  P_                  R$R%R&.4      ]PF                  P_                  R'R(R).4      ]PF                  P_                  R*R(R).4      R+ 4       4       4       4       4       t0]PF                  P_                  R,]Pb                  .4      R- 4       t2R. t3R# )1    N)BytesIOUnsupportedOperation)assert_equalassert_assert_array_equal)raiseswarns)wavfilec                     \         P                  P                  \         P                  P                  \        4      R V 4      # )data)ospathjoindirname__file__)fns   &U/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/io/tests/test_wavfile.pydatafiler      s&    77<<162>>    c                     R F  p Rp\         P                  ! \        V4      V R7      w  r#\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       ?K  	  R# )Ftest-44100Hz-le-1ch-4bytes.wavmmapD  NFT)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                     R F  p Rp\         P                  ! \        V4      V R7      w  r#\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       ?K  	  R# )Ftest-8000Hz-le-2ch-1byteu.wavr   @  Nr   )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                     R F  p Rp\         P                  ! \        V4      V R7      w  r#\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       ?K  	  R# )F#test-44100Hz-2ch-32bit-float-le.wavr   r   Nr   i  r*   )
r
   r   r   r   r   r   r   r    float32r"   r#   s       r   test_read_3r1   .   s^    8\\(8"44@
T5!djj"**56TZZ* r   c                     R F  p \         P                  ! 4       ;_uu_ 4        \         P                  ! RR\        P                  4       Rp\        P
                  ! \        V4      V R7      w  r#RRR4       \        XR4       \        \        P                  ! XP                  \        P                  4      4       \        VP                  R4       ?K  	  R#   + '       g   i     Lq; i)	Fignorez,Chunk .non-data. not understood, skipping itz)test-48000Hz-2ch-64bit-float-le-wavex.wavr   Ni  r   )i  r*   )warningscatch_warningsfilterwarningsr
   WavFileWarningr   r   r   r   r   r   r    float64r"   r#   s       r   test_read_4r9   ;   s    $$&&##>&&
 CH hx&8tDJD ' 	T5!djj"**56TZZ* &&s   ACC(c                     R F  p Rp\         P                  ! \        V4      V R7      w  r#\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \	        VP                  P                  R8H  ;'       g5    \        P                  R8H  ;'       d    VP                  P                  R8H  4       \        VP                  R	4       ?K  	  R# )
F#test-44100Hz-2ch-32bit-float-be.wavr   r   >big=Nr   r/   )r
   r   r   r   r   r   r   r    r0   	byteordersysr"   r#   s       r   test_read_5rA   N   s    8\\(8"44@
T5!djj"**56

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

0D0D0K	NTZZ* r   c                     R F  p Rp\         P                  ! \        V4      V R7      w  r#\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       \        V^,          ^ 4       \        VP                  4       ^4       \        VR,          ^4       \        VP                  4       ^ 4       ?K  	  R# )Ftest-8000Hz-le-5ch-9S-5bit.wavr   r)   Nr   )	      r   r   )r
   r   r   r   r   r   r   r    r+   r"   maxminr#   s       r   test_5_bit_odd_size_no_padrI   ]   s     3\\(8"44@
T4 djj"((34TZZ( 	TJ&* 	TXXZ,T$Z%TXXZ#! r   c                     R F  p Rp\         P                  ! \        V4      V R7      w  r#\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       \        V^,          ^ 4       \        VP                  4       R4       \        VR,          ^ 4       \        VP                  4       R	4       ?K  	  R# )
Ftest-8000Hz-le-4ch-9S-12bit.wavr   r)   i  Nr   )rD      rF   i )r
   r   r   r   r   r   r   r    int16r"   rG   rH   r#   s       r   test_12_bit_even_sizerN   t   s     4\\(8"44@
T4 djj"((34TZZ( 	T//3 	TXXZ!45T$Z#TXXZ!56! r   c            	      `   R p \         P                  ! \        V 4      RR7      w  r\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       \        V^,          ^ 4       \        V. RO. RO. RO. R	O. R
O.4       R# )test-8000Hz-le-3ch-5S-24bit.wavFr   r)   NrE      )i   i  i )i   i  i r   r   r   )i   @i ?   ) rU   i   r   r$   r%   r   s      r   test_24_bit_odd_size_with_padrW      s     1Hhx0u=JDtBMM$**bhh/0V$ a  <<<<<	> ?r   c                     R p \         P                  ! \        V 4      RR7      w  r\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       \        V^,          ^ 4       \	        VR,          P                  4       4       \        V. RO4       R# )&test-1234Hz-le-1ch-10S-20bit-extra.wavFr     i   N)
   )
i i  i ?i  i i  i i  i i  )r
   r   r   r   r   r   r   r    r!   r"   anyrV   s      r   test_20_bit_extra_datar]      s     8Hhx0u=JDtBMM$**bhh/0U# a  TE\ !  
 
r   c                  b   R p \         P                  ! \        V 4      RR7      w  r\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       \        VR,          ^ 4       . RO. RO. R	O. R
O. RO.p\        W#4       R# )test-8000Hz-le-3ch-5S-36bit.wavFr   r)   iNrQ   )         l   ` i   )         l   ` i   rS   )            l      ` i   )      ` rc       
r
   r   r   r   r   r   r   r    int64r"   r$   r%   r   corrects       r   test_36_bit_odd_sizeri      s    0Hhx0u=JDtBMM$**bhh/0V$ 	!1% NMMMM	OG r   c                  b   R p \         P                  ! \        V 4      RR7      w  r\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       \        VR,          ^ 4       . RO. RO. R	O. R
O. RO.p\        W#4       R# )test-8000Hz-le-3ch-5S-45bit.wavFr   r)   i NrQ   )r`   l   i  )ra   l   i  rS   )rb   l      i   )      rl   i   re   rg   s       r   test_45_bit_even_sizerm      s    0Hhx0u=JDtBMM$**bhh/0V$ # LKKKK	MG r   c                  b   R p \         P                  ! \        V 4      RR7      w  r\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       \        VR,          ^ 4       . RO. RO. R	O. R
O. RO.p\        W#4       R# )test-8000Hz-le-3ch-5S-53bit.wavFr   r)   i  NrQ   )r`   l x i )ra   l x i rS   )rb   l    x i   )    x rp   i   re   rg   s       r   test_53_bit_odd_sizerq      s    0Hhx0u=JDtBMM$**bhh/0V$ q! IHHHH	JG r   c                  P   R F  p Rp\         P                  ! \        V4      V R7      w  r#\        VR4       \	        \
        P                  ! VP                  \
        P                  4      4       \        VP                  R4       . RO. RO. R	O. R
O. RO.p\        W44       ?K  	  R# )Ftest-8000Hz-le-3ch-5S-64bit.wavr   r)   Nr   rQ   )r`   l )ra   l rS   )rb   l       )    rw   r*   re   )r   r$   r%   r   rh   s        r   test_64_bit_even_sizerx     s    4\\(8"44@
T4 djj"((34TZZ( JIIII	K 	T#' r   c                      R FH  p \        \        RR7      ;_uu_ 4        \        P                  ! \	        V 4      RR7      w  rRRR4       KJ  	  R#   + '       g   i     K_  ; i)rP   zmmap.*not compatiblematchTr   N>   rP   r_   rk   ro   rY   )r   
ValueErrorr
   r   r   rV   s      r   test_unsupported_mmapr}     sI    ?
 J&<== hx&8tDJD >=?
 >==s   $AA"c                      R Fa  w  r\         P                  ! \        V 4      RR7      w  r#\         P                  ! \        V4      RR7      w  rE\        W$4       \        W54       Kc  	  R# )test-44100Hz-be-1ch-4bytes.wavFr   N>   ztest-8000Hz-be-3ch-5S-24bit.wavrP   r   r   )r
   r   r   r   )rifxriffrate1data1rate2data2s         r   	test_rifxr   *  sN    <
 ||HTN?||HTN?U"U"<r   c                      R Fa  w  r\         P                  ! \        V 4      RR7      w  r#\         P                  ! \        V4      RR7      w  rE\        W$4       \        W54       Kc  	  R# )#test-44100Hz-le-1ch-4bytes-rf64.wavFr   N>   z$test-8000Hz-le-3ch-5S-24bit-rf64.wavrP   r   r   )r
   r   r   r   )rf64r   r   r   r   r   s         r   	test_rf64r   6  sN    <
 ||HTN?||HTN?5(5(<r   c                    \         P                  ! R 4      p\        V P                  R4      4      pRp\         P                  P                  ^ ^R4      P                  V4      p\        P                  ! W#V4       \        P                  ! VRR7      w  rV\        W54       VP                   R2pVP                  P                  R9   g   Q V4       h\        WF4       ^ V^ &   R# )	<i8temp.wavr   Tr   z! byteorder not in ('<', '=', '|')N)rd   <r>   |)r   r    strr   randomrandintastyper
   writer   r   r?   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                   <   a  ] tR tRt o R tR tRR ltR tRtV t	R# )	NonseekableiV  c                    Wn         R # Nfp)selfr   s   &&r   __init__Nonseekable.__init__W  s    r   c                    R # )F r   s   &r   seekableNonseekable.seekableZ  s    r   c               8    V P                   P                  V4      # r   )r   r   )r   sizes   ""r   r   Nonseekable.read]  s    ww||D!!r   c                :    V P                   P                  4        R # r   )r   closer   s   &r   r   Nonseekable.close`  s    r   r   N)ru   )
__name__
__module____qualname____firstlineno__r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r   V  s     " r   r   c            
         R F  p \        V 4      p\        VR4      ;_uu_ 4       p\        VR4      ;_uu_ 4       p\        P                  ! V4      w  rE\        P                  ! \	        V4      4      w  rg\        P                  ! VRR7      w  r\        WH4       \        Wh4       \        WY4       \        Wy4       RRR4       RRR4       K  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)r   rbFr   N)r   r(   r.   r;   rC   rK   rP   rY   r_   rk   ro   rs   r   r   )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#B C:C#C C##C4c            
      (   R Fd  p Rp\        \        V4      R4      ;_uu_ 4       p\        \        RR7      ;_uu_ 4        \        P
                  ! W R7       RRR4       RRR4       Kf  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)Fzexample_1.ncr   z)CDF.*'RIFF', 'RIFX', and 'RF64' supportedrz   r   Nr   r   r   r   r|   r
   r   r   r$   r   s      r   test_read_unknown_filetype_failr   ~  sc    !(8$d++r
*UVVR+ W ,+  WV ,++"   B A-B -A=8B  Bc            
      (   R Fd  p Rp\        \        V4      R4      ;_uu_ 4       p\        \        RR7      ;_uu_ 4        \        P
                  ! W R7       RRR4       RRR4       Kf  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)FzTransparent Busy.anir   zNot a WAV file.*ACONrz   r   Nr   r   r   s      r    test_read_unknown_riff_form_typer     sc    )(8$d++r
*@AAR+ B ,+  BA ,++r   c            
      (   R Fd  p Rp\        \        V4      R4      ;_uu_ 4       p\        \        RR7      ;_uu_ 4        \        P
                  ! W R7       RRR4       RRR4       Kf  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)Fz!test-8000Hz-le-1ch-1byte-ulaw.wavr   z2Unknown wave file format.*MULAW.*Supported formatsrz   r   Nr   r   r   s      r   test_read_unknown_wave_formatr     si    6(8$d++r
 +, - -R+- ,+ - - ,++r   c            
         R F  p Rp\        \        V4      R4      ;_uu_ 4       p\        \        P                  RR7      ;_uu_ 4        \        P
                  ! W R7      w  r4VP                  ^ 8  g   Q hVR8X  g   Q h^ V^ &   RRR4       RRR4       K  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)	Fz(test-44100Hz-le-1ch-4bytes-early-eof.wavr   zReached EOFrz   r   r   Nr   )r   r   r	   r
   r7   r   r   )r   r$   r   r%   r   s        r   test_read_early_eof_with_datar     s    =(8$d++rw--]CC$\\"8
yy1}$}u}$}Q D ,+  DC ,++s#   $B-	;BB-B*%B--B>c            
      (   R Fd  p Rp\        \        V4      R4      ;_uu_ 4       p\        \        RR7      ;_uu_ 4        \        P
                  ! W R7       RRR4       RRR4       Kf  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)Fz0test-44100Hz-le-1ch-4bytes-early-eof-no-data.wavr   zUnexpected end of file.rz   r   Nr   r   r   s      r   test_read_early_eofr     sc    E(8$d++r
*CDDR+ E ,+  ED ,++r   c            
      (   R Fd  p Rp\        \        V4      R4      ;_uu_ 4       p\        \        RR7      ;_uu_ 4        \        P
                  ! W R7       RRR4       RRR4       Kf  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)Fz/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wavr   zIncomplete chunk ID.*b'f'rz   r   Nr   r   r   s      r   test_read_incomplete_chunkr     sc    D(8$d++r
*EFFR+ G ,+  GF ,++r   c            
      (   R Fd  p Rp\        \        V4      R4      ;_uu_ 4       p\        \        RR7      ;_uu_ 4        \        P
                  ! W R7       RRR4       RRR4       Kf  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)Fz,test-8000Hz-le-3ch-5S-24bit-inconsistent.wavr   zheader is invalidrz   r   Nr   r   r   s      r   test_read_inconsistent_headerr     sa    A(8$d++r
*=>>R+ ? ,+  ?> ,++r   dt_strchannelsr%   r)   i }  r   FTrealfilec                    \         P                  ! V4      pV '       dn   \        VP                  \        \        P
                  ! 4       4      R 4      4      p\        P                  ! \        P                  P                  V4      RR7       M
\        4       p\         P                  P                  ^dV4      pV^8X  d
   VR	,          pVP                  R8X  d   VP                  V4      pMV^,          P                  V4      p\        P                   ! WrV4       \        P"                  ! WqR7      w  r\%        W)4       \'        V
P                  P(                  R
9   V
P                  R7       \+        W4       V '       d   ^ V
^ &   R# \,        P.                  ! \0        RR7      ;_uu_ 4        ^ V
^ &   RRR4       R#   + '       g   i     R# ; i)r   T)exist_okfr   )r   z	read-onlyrz   N):NNNr   r   )r   r    r   r   	threadingget_native_idr   makedirsr   r   r   r   randkindr   r
   r   r   r   r   r?   r   pytestr   r|   )r   r   r%   r   r   r   r    r   r   r   r   s   &&&&&&     r   test_write_roundtripr     s,    HHVEfkk#i&=&=&?"@*MN
BGGOOG,t<)99>>#x(D1}DzzzS{{5!S  'MM'&<<3LEEKK!!_4%++Ft#a]]:[99E!H :999s   (F88G		r    c                 l   \        V P                  R 4      4      p\        P                  P	                  R4      pVP                  R4      P                  V4      pRp\        P                  ! \        RR7      ;_uu_ 4        \        P                  ! W%V4       RRR4       R#   + '       g   i     R# ; i)r   rZ   r)   Unsupportedrz   N)d   rE   )r   r   r   r   default_rngr   r   r   r|   r
   r   )r   r    r   rngr   r%   s   &&    r   test_wavfile_dtype_unsupportedr     su    &++j)*G
))


%C::h&&u-DD	z	7	7gT* 
8	7	7	7s    B""B3	c                     \         P                  ! \        R 4      4      p \        P                  ! \
        4      ;_uu_ 4        V P                  ^ ^4       RRR4       \        P                  ! \
        4      ;_uu_ 4        V P                  R^ 4       RRR4       V P                  ^ \        P                  4      pV^8X  g   Q RV 24       hR#   + '       g   i     L; i  + '       g   i     LV; i)s     Nz$Failed to seek to end, got position ru   )	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   C?C C	 C0	)z<i2z<i4r   z<f4z<f8z>i2z>i4z>i8z>f4z>f8z|u1)rv   r*   rE   )4r   r@   ior   r   r   r4   numpyr   numpy.testingr   r   r   r   r   r	   scipy.ior
   r   r&   r,   r1   r9   rA   rI   rN   rW   r]   ri   rm   rq   rx   r}   r   r   markxslowr   r   r   r   r   r   r   r   r   r   parametrizer   float16r   r   r   r   r   <module>r      s   	 
 .    C C    ?


&.,?.< 0 0 00E	#	)  & '4,,,
,,,  $N OY/$/%/eT]3 4 0 0 0O> 2::,/+ 0+Br   