
    /hh0                         S SK Jr  S SKJrJr  S SKrS SKrS SKr " S S\R                  5      r	 " S S5      r
 " S S	\
5      r " S
 S\
5      rg)    )findfile)TESTFNunlinkNc                        \ rS rSrS rS rSrg)UnseekableIO   c                 "    [         R                  eNioUnsupportedOperationselfs    8/opt/python-3.13.8/usr/lib/python3.13/test/audiotests.pytellUnseekableIO.tell	       %%%    c                 "    [         R                  er
   r   )r   argskwargss      r   seekUnseekableIO.seek   r   r    N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__r   r   r   r   r      s    &&r   r   c                   *    \ rS rSrSrS rS rS rSrg)
AudioTests   Fc                      S =U l         U l        g r
   ffoutr   s    r   setUpAudioTests.setUp   s    !!r   c                     U R                   b  U R                   R                  5         U R                  b  U R                  R                  5         [        [        5        g r
   )r%   closer&   r   r   r   s    r   tearDownAudioTests.tearDown   s8    66FFLLN99 IIOOvr   c           	         U R                  UR                  5       U5        U R                  UR                  5       U5        U R                  UR                  5       U5        U R                  UR	                  5       U5        U R                  UR                  5       U5        U R                  UR                  5       U5        UR                  5       nU R                  UX#XEXg45        U R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        [        [        R                   S-   5       H?  n	[        R"                  " X5      n
U R                  [        R$                  " U
5      U5        MA     g )N   )assertEqualgetnchannelsgetsampwidthgetframerate
getnframesgetcomptypegetcompname	getparams	nchannels	sampwidth	frameratenframescomptypecompnamerangepickleHIGHEST_PROTOCOLdumpsloads)r   r%   r7   r8   r9   r:   r;   r<   paramsprotodumps              r   check_paramsAudioTests.check_params   sn   )95)95)951(3(3y8N	P))95))95))951(3(3622Q67E<<.DV\\$/8 8r   r$   N)	r   r   r   r   close_fdr'   r+   rE   r   r   r   r   r!   r!      s    H"9r   r!   c                   z    \ 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S rS rSrg)AudioWriteTests5   c                 8   U R                   R                  US5      =o l        UR                  U R                  5        UR                  U R                  5        UR                  U R                  5        UR                  U R                  U R                  5        U$ Nwb)moduleopenr&   setnchannelsr7   setsampwidthr8   setframerater9   setcomptyper;   r<   r   testfiler%   s      r   create_fileAudioWriteTests.create_file7   sh    ((488I	t~~&	t~~&	t~~&	dmmT]]3r   c                    U R                   R                  US5       nU R                  UR                  5       U R                  5        U R                  UR                  5       U R                  5        U R                  UR                  5       U R                  5        U R                  UR                  5       U5        U R                  UR                  U5      U5        S S S 5        g ! , (       d  f       g = fNrb)rN   rO   r/   r0   r7   r1   r8   r2   r9   r3   
readframes)r   rU   r:   framesr%   s        r   
check_fileAudioWriteTests.check_file?   s    [[h-Q^^-t~~>Q^^-t~~>Q^^-t~~>Q\\^W5Q\\'2F; .--s   C C&&
C4c           	      ^   U R                  [        5      nUR                  U R                  5        UR	                  U R
                  5        U R                  XR                  U R                  U R                  U R                  U R                  U R                  5        UR                  5         g r
   )rV   r   
setnframesr:   writeframesr\   rE   r7   r8   r9   r;   r<   r*   r   r%   s     r   test_write_params!AudioWriteTests.test_write_paramsG   so    V$	T\\"	dkk"!^^T^^T^^,,t}}	F		r   c                 6   U R                  U R                  R                  5         U R                  R                  [        S5          S S S 5        S S S 5        U R                  U R                  R                  5         [        [        S5       nU R                  R                  U5          S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NA= f! , (       d  f       NJ= f! , (       d  f       g = frL   )assertRaisesrN   ErrorrO   r   )r   rU   s     r   &test_write_context_manager_calls_close6AudioWriteTests.test_write_context_manager_calls_closeO   s     t{{001!!&$/ 0 2 t{{001fd#x[[%%h/ 0 $ 21 0/ 21
 0/ $# 21s_   !CC	C>D
C9+C(-C95D

C	C
C%(
C62C99
D	D


Dc                    [        [        S5       nU R                  R                  U5       nUR                  U R                  5        UR                  U R                  5        UR                  U R                  5        UR                  U R                  U R                  5        S S S 5        U R                  UR                  U R                  5        S S S 5        [        [        S5       nU R                  R                  U5       nU R                  UR!                  5       R                  5        UR#                  5       nU R                  UR                  U R                  5        U R                  UR                  U R                  5        U R                  UR                  U R                  5        S S S 5        U R                  (       d  U R%                  WR!                  5       5        U R                  UR                  U R                  5        S S S 5        g ! , (       d  f       GN|= f! , (       d  f       GN`= f! , (       d  f       N= f! , (       d  f       g = f)NrM   rZ   )rO   r   rN   rP   r7   rQ   r8   rR   r9   rS   r;   r<   r/   closedrG   assertFalsegetfpr6   assertIsNone)r   rU   r%   rB   s       r   #test_context_manager_with_open_file3AudioWriteTests.test_context_manager_with_open_fileZ   s   &$8!!(+qt~~.t~~.t~~.dmmT]];	 ,
 X__dmm<   &$8!!(+q  !1!12  !1!14>>B  !1!14>>B  !1!14>>B , ==!!!''),X__dmm<   ,+   ,+  sI   H,A8H%.H,+IB,H>3AI
H)	$H,,
H;>
I	I
Ic                    U R                   R                  [        S5       nUR                  U R                  5        UR                  U R                  5        UR                  U R                  5        UR                  U R                  U R                  5        S S S 5        U R                   R                  [        5       nU R                  UR                  5       R                  5        UR                  5       nU R!                  UR                  U R                  5        U R!                  UR                  U R                  5        U R!                  UR                  U R                  5        S S S 5        U R"                  (       d   U R%                  WR                  5       5        g g ! , (       d  f       GN= f! , (       d  f       NR= frL   )rN   rO   r   rP   r7   rQ   r8   rR   r9   rS   r;   r<   rl   rm   rk   r6   r/   rG   rn   )r   r%   rB   s      r   "test_context_manager_with_filename2AudioWriteTests.test_context_manager_with_filenamem   s'    [[fd+qNN4>>*NN4>>*NN4>>*MM$--7	 ,
 [[f%QWWY--.[[]FV--t~~>V--t~~>V--t~~> & }}aggi(  ,+
 &%s   A8F& B,F8&
F58
Gc                    U R                  [        5      nUR                  U R                  5        UR	                  U R
                  5        UR                  5         U R                  [        U R                  U R
                  5        g r
   )rV   r   r`   r:   ra   r\   r*   r]   rb   s     r   
test_writeAudioWriteTests.test_write~   sS    V$	T\\"	dkk"		dkk:r   c                 "   U R                  [        5      nUR                  U R                  5        UR	                  [        U R                  5      5        UR                  5         U R                  [        U R                  U R                  5        g r
   )	rV   r   r`   r:   ra   	bytearrayr\   r*   r]   rb   s     r   test_write_bytearray$AudioWriteTests.test_write_bytearray   sX    V$	T\\"	i,-		dkk:r   c                 :   U R                  [        5      nUR                  U R                  5        UR	                  [
        R
                  " SU R                  5      5        UR                  5         U R                  [        U R                  U R                  5        g )Nh)	rV   r   r`   r:   ra   arrayr\   r*   r]   rb   s     r   test_write_array AudioWriteTests.test_write_array   s^    V$	T\\"	ekk#t{{34		dkk:r   c                 "   U R                  [        5      nUR                  U R                  5        UR	                  [        U R                  5      5        UR                  5         U R                  [        U R                  U R                  5        g r
   )	rV   r   r`   r:   ra   
memoryviewr\   r*   r]   rb   s     r   test_write_memoryview%AudioWriteTests.test_write_memoryview   sX    V$	T\\"	j-.		dkk:r   c                    [        [        S5       nUR                  S5        U R                  U5      nUR	                  U R
                  S-   5        UR                  U R                  5        UR                  5         S S S 5        [        [        S5       nU R                  UR                  S5      S5        U R                  XR
                  U R                  5        S S S 5        g ! , (       d  f       No= f! , (       d  f       g = fNrM      ababagalamagar.   rZ      rO   r   writerV   r`   r:   ra   r\   r*   r/   readr]   rT   s      r   test_incompleted_write&AudioWriteTests.test_incompleted_write       &$8NN+,  *ALL)*MM$++&GGI   &$8X]]2.0@AOOHllDKK@         A,C&AC7&
C47
Dc                    [        [        S5       nUR                  S5        U R                  U5      nUR	                  U R
                  5        U R                  U R                  -  nUR                  U R                  S U*  5        UR                  U R                  U* S  5        UR                  5         S S S 5        [        [        S5       nU R                  UR                  S5      S5        U R                  XR
                  U R                  5        S S S 5        g ! , (       d  f       No= f! , (       d  f       g = fNrM   r   rZ   r   )rO   r   r   rV   r`   r:   r7   r8   ra   r\   r*   r/   r   r]   r   rU   r%   	framesizes       r   test_multiple_writes$AudioWriteTests.test_multiple_writes   s    &$8NN+,  *ALL&7IMM$++k	z23MM$++yjk23GGI   &$8X]]2.0@AOOHllDKK@      s   B%DAD0
D-0
D>c                    [        [        S5       nUR                  S5        U R                  U5      nUR	                  U R
                  S-
  5        UR                  U R                  5        UR                  5         S S S 5        [        [        S5       nU R                  UR                  S5      S5        U R                  XR
                  U R                  5        S S S 5        g ! , (       d  f       No= f! , (       d  f       g = fr   r   rT   s      r   test_overflowed_write%AudioWriteTests.test_overflowed_write   r   r   c                 n   U R                  [        5       nUR                  U R                  5        UR	                  U R
                  5        S S S 5        [        [        S5       nU R                  X R                  U R
                  5        S S S 5        g ! , (       d  f       NN= f! , (       d  f       g = frY   )rV   r   r`   r:   ra   r\   r   r]   )r   r%   rU   s      r   test_unseekable_read$AudioWriteTests.test_unseekable_read   su    f%LL&MM$++& & &$'8OOHllDKK@ ('	 &% ('s   7B%'B&
B#&
B4c                 p   [        [        S5       nU R                  U5       nUR                  U R                  5        UR                  U R                  5        S S S 5        S S S 5        U R                  [        U R                  U R                  5        g ! , (       d  f       NB= f! , (       d  f       NK= frL   )r   r   rV   r`   r:   ra   r\   r]   rT   s      r   test_unseekable_write%AudioWriteTests.test_unseekable_write   st    &$'8!!(+qT\\*dkk* , (
 	dkk:	 ,+ ('s"   B'7BB'
B$	 B''
B5c                 Z   [        [        S5       nUR                  S5        U R                  U5      nUR	                  U R
                  S-   5         UR                  U R                  5         UR                  5         S S S 5        [        [        S5       nU R                  UR                  S5      S5        U R                  XR
                  S-   U R                  5        S S S 5        g ! [         a     Nf = f! [         a     Nf = f! , (       d  f       N= f! , (       d  f       g = fr   )r   r   r   rV   r`   r:   ra   r\   OSErrorr*   rO   r/   r   r]   rT   s      r   !test_unseekable_incompleted_write1AudioWriteTests.test_unseekable_incompleted_write   s    &$'8NN+,  *ALL)*dkk*	 ( &$8X]]2.0@AOOHllQ&6D       ('  sU   ADC+/C;AD+
C85D7C88D;
DDDD
D
D*c                    [        [        S5       nUR                  S5        U R                  U5      nUR	                  U R
                  S-
  5         UR                  U R                  5         UR                  5         S S S 5        [        [        S5       nU R                  UR                  S5      S5        U R                  U R                  -  nU R                  XR
                  S-
  U R                  S U*  5        S S S 5        g ! [         a     Nf = f! [         a     Nf = f! , (       d  f       N= f! , (       d  f       g = fr   )r   r   r   rV   r`   r:   ra   r\   r   r*   rO   r/   r   r7   r8   r]   r   s       r    test_unseekable_overflowed_write0AudioWriteTests.test_unseekable_overflowed_write   s   &$'8NN+,  *ALL)*dkk*	 ( &$8X]]2.0@A7IOOHllQ&6KiZ8PQ       ('  sU   AD(D/DA(D9
DD(DD(
D%"D($D%%D((
D69
E)r&   N)r   r   r   r   rV   r]   rc   rh   ro   rr   ru   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   rI   rI   5   s]    <	=&)";;;;
AA
AA;E$Rr   rI   c                   B    \ rS rSr\S 5       rS rS rS rS r	S r
Srg	)
AudioTestsWithSourceFile   c                 6    [        U R                  SS9U l        g )N	audiodata)subdir)r   sndfilenamesndfilepath)clss    r   
setUpClass#AudioTestsWithSourceFile.setUpClass   s    "3??;Gr   c           	          U R                   R                  U R                  5      =ol        U R	                  XR
                  U R                  U R                  U R                  U R                  U R                  5        g r
   )rN   rO   r   r%   rE   r7   r8   r9   sndfilenframesr;   r<   rb   s     r   test_read_params)AudioTestsWithSourceFile.test_read_params   sW    [[%%d&6&677F!^^T^^T^^--t}}dmm	Mr   c                     [        U R                  S5       nU R                  R                  U5      =o l        U R	                  UR
                  5        UR                  5         U R                  UR
                  U R                  5        S S S 5        [        [        S5       nU R                  R                  US5      =o0l
        U R	                  UR
                  5        U R                  U R                  R                  5         UR                  5         S S S 5        U R                  UR
                  U R                  5        UR                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N^= f! , (       d  f       g = f)NrZ   rM   )rO   r   rN   r%   rl   rk   r*   r/   rG   r   r&   rf   rg   )r   rU   r%   r&   s       r   
test_close#AudioTestsWithSourceFile.test_close  s
   $""D)X))(33AX__-GGIX__dmm<	 *
 &$8#{{//$??D9X__-""4;;#4#45

 6X__dmm<JJL   *) 65  s1   A3E"A#E?E.>E?
E+.
E<	8E??
Fc                    U R                   U R                  -  nU R                  S SU-   nU R                  SU-  SU-   nU R                  R	                  U R
                  5      =o@l        U R                  UR                  S5      S5        U R                  UR                  5       S5        U R                  UR                  S5      U5        UR                  5         UR                  5       nU R                  US5        U R                  UR                  S5      U5        UR                  5       nU R                  US5        U R                  UR                  S5      U5        UR                  U5        U R                  UR                  S5      U5        UR                  U5        U R                  UR                  S5      U5        U R                  U R                  R                  5         UR                  S5        S S S 5        U R                  U R                  R                  5         UR                  UR                  5       S-   5        S S S 5        g ! , (       d  f       N_= f! , (       d  f       g = f)N      r   r   r.   )r7   r8   r\   rN   rO   r   r%   r/   r[   r   rewindsetposrf   rg   r3   )r   r   chunk1chunk2r%   pos0pos2s          r   	test_read"AudioTestsWithSourceFile.test_read  s   NNT^^3	^a)m,Q]A	M:[[%%d&6&677Fa#.1%a&1	
vvxq!a&1vvxq!a&1	a&1	a&1t{{001HHRL 2t{{001HHQ\\^a'( 21 2111s   -I,#I)
I&)
I7c                    U R                   R                  U R                  5      =ol        U R                   R                  [        S5      =o l        UR                  UR                  5       5        SnUR                  5       nUS:  a1  US-  nUR                  UR                  U5      5        XC-  nUS:  a  M1  UR                  5         U R                   R                  [        S5      =o l        UR                  5         U R                  UR                  5       UR                  5       5        U R                  UR                  UR                  5       5      UR                  UR                  5       5      5        g )NrM   r   r.   rZ   )rN   rO   r   r%   r   r&   	setparamsr6   r3   ra   r[   r*   r   r/   )r   r%   r&   ins        r   	test_copy"AudioTestsWithSourceFile.test_copy,  s   [[%%d&6&677F;;++FD99yq{{}%LLN!eFAQ\\!_-FA !e 	

;;++FD99y	
(89alln5):;	=r   c                    [        [        S5       nUR                  S5        [        U R                  S5       nUR                  UR	                  5       5        S S S 5        S S S 5        [        [        S5       nU R                  UR	                  S5      S5        U R                  R                  US5       nU R                  UR                  5       U R                  5        U R                  UR                  5       U R                  5        U R                  UR                  5       U R                  5        U R                  UR                  5       U R                  5        U R                  UR                  U R                   5      U R"                  5        S S S 5        S S S 5        g ! , (       d  f       GNT= f! , (       d  f       GN^= f! , (       d  f       N;= f! , (       d  f       g = fr   )rO   r   r   r   r   r/   rN   r0   r7   r1   r8   r2   r9   r3   r   r[   r:   r\   rT   s      r   test_read_not_from_start1AudioTestsWithSourceFile.test_read_not_from_start=  sF   &$8NN+,d&&-qvvx( .  
 &$8X]]2.0@A!!(D1Q  !14>>B  !14>>B  !14>>B  1D1DE  dll!;T[[I 2   .-   21  sG   (F8 F&F89>G7CG
G&
F5	0F88
G

G	G
G)r$   N)r   r   r   r   classmethodr   r   r   r   r   r   r   r   r   r   r   r      s1    H HM)0="Jr   r   )test.supportr   test.support.os_helperr   r   r}   r   r>   FileIOr   r!   rI   r   r   r   r   <module>r      sP    ! 1  	 &299 &"9 "9JBRj BRJPJz PJr   