+
    Bi                        R t ^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
 ! R R4      t ! R R4      t ! R R4      t ! R	 R
]]]P                  4      t ! R R4      t ! R R]]]]P                  4      t ! R R]]P                  4      t ! R R]4      t ! R R]4      t ! R R]4      t]R8X  d   ]P.                  ! 4        R# R# )zdUnit tests for memory-based file-like objects.
StringIO -- for unicode strings
BytesIO -- for bytes
N)supportc                   0   a  ] tR t^t o R tR t]tRtV tR# )IntLikec                    Wn         R # N_num)selfnums   &&)/usr/lib/python3.14/test/test_memoryio.py__init__IntLike.__init__   s    	    c                    V P                   # r   r   r	   s   &r   	__index__IntLike.__index__   s    yyr   r   N)	__name__
__module____qualname____firstlineno__r   r   __int____static_attributes____classdictcell____classdict__s   @r   r   r      s     Gr   r   c                   >   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )MemorySeekTestMixinc                J    V P                  R 4      pV P                  V4      pR# 
1234567890N)buftypeioclassr	   bufbytesIos   &  r   testInitMemorySeekTestMixin.testInit   s    ll<(,,s#r   c                   V P                  R 4      pV P                  V4      pV P                  VR,          VP                  ^4      4       V P                  VR,          VP                  ^4      4       V P                  VR,          VP                  R4      4       V P                  V P                  VP                  4       4       R# )r    N   Nr*      Nr,   NN  Nr!   r"   assertEqualreadEOFr#   s   &  r   testReadMemorySeekTestMixin.testRead   s    ll<(,,s#R',,q/2S7<<?3R',,s"347<<>2r   c                    V P                  R 4      pV P                  V4      pV P                  WP                  4       4       V P                  V P                  VP                  4       4       R# r   r/   r#   s   &  r   testReadNoArgs"MemorySeekTestMixin.testReadNoArgs&   sL    ll<(,,s#lln-7<<>2r   c                ~   V P                  R 4      pV P                  V4      pVP                  ^4       VP                  ^ 4       V P	                  WP                  4       4       VP                  ^4       V P	                  VR,          VP                  4       4       V P                  \        VP                  R4       R# )r       NN        N)r!   r"   r1   seekr0   assertRaises	TypeErrorr#   s   &  r   testSeekMemorySeekTestMixin.testSeek-   s    ll<(,,s#QQlln-QR',,.1)W\\37r   c                N   V P                  R 4      pV P                  V4      pV P                  ^ VP                  4       4       VP	                  ^4       V P                  ^VP                  4       4       VP	                  R4       V P                  RVP                  4       4       R# r    i'  N)r!   r"   r0   tellr<   r#   s   &  r   testTellMemorySeekTestMixin.testTell9   sw    ll<(,,s#GLLN+QGLLN+U/r    N)r   r   r   r   r&   r3   r6   r?   rD   r   r   r   s   @r   r   r      s#     $33
80 0r   r   c                      a  ] tR t^Dt o 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R tR tR tRtV tR# )MemoryTestMixinc                r    V P                  4       pV P                  V P                  VP                  4       R # r   )r"   r=   UnsupportedOperationdetachr	   r$   s   & r   test_detachMemoryTestMixin.test_detachF   s'    lln$33SZZ@r   c                   V P                  VP                  V! R 4      4      ^4       V P                  VP                  ^ 4      ^ 4       V P                  VP                  V! R4      4      ^4       V P                  VP                  4       ^4       V P                  VP                  ^4      ^4       V P                  VP                  4       ^4       V P                  VP                  V! R4      4      ^	4       V P                  VP                  ^ 4      ^ 4       V P                  VP                  V! R4      4      ^4       V P                  VP	                  ^4      ^4       V P                  VP                  4       ^4       R# )zblah.zHello.z	 world


hN)r0   writer<   rC   truncate)r	   fts   &&&r   	write_opsMemoryTestMixin.write_opsJ   s   7,a0A&8-q11%A&1%>!23Q7A&3!,B,1%r   c                   V P                  R 4      pV P                  V4      pV P                  W P                   4       V P                  VP	                  4       V4       V P                  4       pV P                  W P                   4       V P                  VP	                  4       V4       V P                  \        VP                  R4       VP                  4        V P                  \        VP                  V P                  R4      4       R# )zhello world
N )
r!   r"   rU   r0   getvaluer=   r>   rQ   close
ValueErrorr	   r$   memios   &  r   
test_writeMemoryTestMixin.test_writeW   s    ll?+S!ull+)3/ull+)3/)U[[$7*ekk4<<3CDr   c                   V P                  R 4      pV P                  4       pV P                  VP                  V.^d,          4      R4       V P                  VP	                  4       V^d,          4       VP                  . 4       V P                  VP	                  4       V^d,          4       V P                  4       pV P                  \        VP                  V.^.,           4       V P                  VP	                  4       V4       V P                  \        VP                  R4       VP                  4        V P                  \        VP                  . 4       R# r   )	r!   r"   r0   
writelinesrY   r=   r>   rZ   r[   r\   s   &  r   test_writelinesMemoryTestMixin.test_writelinesd   s    ll<())3%#+6=)395)395)U%5%5us{C)3/)U%5%5t<*e&6&6;r   c                   a  S P                  4       pV 3R  lpS P                  \        VP                  V! 4       4       R# )c               3   >   <"   S P                  R 4      x  \        h5i)spam)r!   KeyboardInterruptr   s   r   	error_gen8MemoryTestMixin.test_writelines_error.<locals>.error_genu   s     ,,v&&##s   N)r"   r=   rg   ra   )r	   r]   rh   s   f  r   test_writelines_error%MemoryTestMixin.test_writelines_errors   s0    	$ 	+U-=-=y{Kr   c                >   V P                  R 4      pV P                  V4      pV P                  \        VP                  R4       V P                  \        VP                  \        R4      4       VP                  ^4       V P                  VP	                  \        ^4      4      ^4       V P                  VP                  4       VR,          4       V P                  VP	                  4       ^4       V P                  VP                  4       VR,          4       V P                  VP	                  ^4      ^4       V P                  VP                  4       VR,          4       V P                  VP                  4       ^4       VP                  ^ ^4       VP                  V4       V P                  VP                  4       VR,          V,           4       VP                  4       pV P                  VP	                  R4      V4       V P                  VP                  4       V4       V P                  \        VP                  R4       VP                  4        V P                  \        VP                  ^ 4       V P                  \        VP                  \        ^ 4      4       R# )r    :N   N:N   N:N   NN0)r!   r"   r=   r[   rR   r   r<   r0   rY   rC   rQ   r>   rZ   )r	   r$   r]   poss   &   r   test_truncateMemoryTestMixin.test_truncate{   s   ll<(S!*ennb9*enngbkB

1
3Q7)3r73)1-)3r73*A.)3r73q)

1aC)3r7S=9jjl-s3s+)U^^S9*enna8*enngajAr   c                "   V P                  R 4      pV P                  V4      pV P                  VP                  4       V4       V P                  R4      pV P                  VP                  4       V P                  4       VP                  V^,          4       V P                  VP                  4       V^,          4       VP                  V4       V P                  VP                  4       V4       V P                  \        VP
                  . 4       R# r   )r!   r"   r0   rY   r2   r   r=   r>   r\   s   &  r   	test_initMemoryTestMixin.test_init   s    ll<(S!)3/T")4884sQw)373s)3/)U^^R8r   c                N	   V P                  R 4      pV P                  V4      pV P                  VP                  ^ 4      V P                  4       V P                  VP                  ^4      VR,          4       V P                  VP                  ^4      VR,          4       V P                  VP                  R4      VR,          4       V P                  VP                  4       V P                  4       VP                  ^ 4       V P                  VP                  \        ^ 4      4      V P                  4       V P                  VP                  \        ^4      4      VR,          4       V P                  VP                  \        ^4      4      VR,          4       V P                  VP                  \        R4      4      VR,          4       VP                  ^ 4       V P                  VP                  4       V4       V P                  VP                  4       V P                  4       V P                  VP                  4       ^
4       VP                  ^ 4       V P                  VP                  R4      V4       VP                  ^ 4       V P                  VP                  \        R4      4      V4       VP                  ^ 4       V P                  \        VP                  4       4      \        V4      4       VP                  ^d4       V P                  \        VP                  4       4      \        V4      4       VP                  ^ 4       V P                  VP                  R4      V4       V P                  \        VP                  R4       VP                  \        V4      ^,           4       V P                  VP                  ^4      V P                  4       VP                  \        V4      ^,           4       V P                  VP                  \        ^4      4      V P                  4       VP                  \        V4      ^,           4       V P                  VP                  4       V P                  4       VP                  4        V P                  \        VP                  4       R# )r    r)   r+   r.   r-   NrX   rq   )r!   r"   r0   r1   r2   r<   r   rC   typer=   r>   lenrZ   r[   r\   s   &  r   	test_readMemoryTestMixin.test_read   s   ll<(S!A1AB0AC1C#b'2txx0

1GAJ/:GAJ/R9GAJ/S:GCL13r7;

1s+txx0r*

1B-

1GBK0#6

1ejjl+T#Y7

3ejjl+T#Y7

1D)3/)UZZ4

3s8a< A1

3s8a< GAJ/:

3s8a< txx0*ejj1r   c                |	   V P                  R 4      pV P                  V^,          4      pV P                  VP                  ^ 4      V P                  4       V P                  VP                  \        ^ 4      4      V P                  4       V P                  VP                  4       V4       V P                  VP                  4       V4       V P                  VP                  4       V P                  4       VP                  ^ 4       V P                  VP                  ^4      VR,          4       V P                  VP                  ^4      VR,          4       V P                  VP                  ^4      VR,          4       VP                  ^ 4       V P                  VP                  \        ^4      4      VR,          4       V P                  VP                  \        ^4      4      VR,          4       V P                  VP                  \        ^4      4      VR,          4       VP                  ^ 4       V P                  VP                  R4      V4       VP                  ^ 4       V P                  VP                  \        R4      4      V4       VP                  ^ 4       V P                  VP                  ^ 4      V P                  4       V P                  VP                  \        ^ 4      4      V P                  4       VP                  \        V4      ^,          ^,           4       V P                  VP                  4       V P                  4       V P                  R 4      pV P                  V^,          RR 4      pV P                  VP                  4       V4       V P                  VP                  4       V4       V P                  VP                  4       VRR 4       V P                  VP                  4       V P                  4       VP                  ^ 4       V P                  \        VP                  4       4      \        V4      4       V P                  VP                  4       V4       V P                  \        VP                  R4       VP                  4        V P                  \        VP                  4       R# )1234567890
:Nr,   N:r,   
   N:r      NNrX   rq   )r!   r"   r0   readliner2   r   r<   rz   ry   r=   r>   rZ   r[   r\   s   &  r   test_readlineMemoryTestMixin.test_readline   sC   ll>*S1W%*DHH5
3TXX>)3/)3/)4884

1*CG4*CI6*CJ7

1
3SW=
3SY?
3SZ@

1+S1

14c:

1*DHH5
3TXX>

3s8a<!#$)4884ll>*cAgs^,)3/)3/)3s84)4884

1enn./c;)3/)U^^R8*u~~6r   c                   V P                  R 4      pV P                  V^
,          4      pV P                  VP                  4       V.^
,          4       VP	                  ^4       V P                  VP                  4       VR,          .V.^	,          ,           4       VP	                  ^ 4       V P                  VP                  ^4      V.^,          4       VP	                  ^ 4       V P                  VP                  R4      V.^
,          4       VP	                  ^ 4       V P                  VP                  ^ 4      V.^
,          4       VP	                  ^ 4       V P                  \        VP                  4       ^ ,          4      \        V4      4       VP	                  ^ 4       V P                  VP                  R4      V.^
,          4       V P                  \        VP                  R4       VP	                  \        V4      ^
,          ^,           4       V P                  VP                  4       . 4       VP                  4        V P                  \        VP                  4       R# )r~   r-   NrX   rq   )r!   r"   r0   	readlinesr<   ry   r=   r>   rz   rZ   r[   r\   s   &  r   test_readlinesMemoryTestMixin.test_readlines   s   ll>*S2X&*SEBJ7

1*SWI	,AB

1,seai8

1,sebj9

1+cURZ8

1eoo/23T#Y?

1.
;)U__b9

3s8b=1$%*B/*eoo6r   c                   V P                  R 4      pV P                  V^
,          4      pV P                  \        V4      V4       V P	                  VR4       V P	                  VR4       ^ pV F  pV P                  WA4       V^,          pK  	  V P                  V^
4       VP                  ^ 4       ^ pV F  pV P                  WA4       V^,          pK  	  V P                  V^
4       VP                  \        V4      ^
,          ^,           4       V P                  \        V4      . 4       V P                  V^,          4      pVP                  4        V P                  \        VP                  4       R# )r~   __iter____next__N)r!   r"   r0   iterassertHasAttrr<   rz   listrZ   r=   r[   r   )r	   r$   r]   ilines   &    r   test_iteratorMemoryTestMixin.test_iterator  s-   ll>*S2X&ee,5*-5*-DT'FA  	B

1DT'FA  	B

3s8b=1$%eb)S1W%*enn5r   c                d   V P                  R 4      pV P                  V4      pV P                  VP                  4       V4       VP	                  4        V P                  VP                  4       V4       V P                  \        VP                  4       4      \        V4      4       V P                  VR,          4      pV P                  VP                  4       RR V P                  R4      4       V P                  V4      pVP                  4        V P                  \        VP                  4       R# )r      N890)	r!   r"   r0   rY   r1   ry   rZ   r=   r[   r\   s   &  r   test_getvalueMemoryTestMixin.test_getvalue   s    ll<(S!)3/

)3/enn./c;S4Z()"#.U0CDS!*enn5r   c                ,   V P                  R 4      pV P                  V4      pVP                  ^4       V P                  \        VP
                  R4       V P                  \        VP
                  ^R4       V P                  \        VP
                  ^^4       V P                  VP                  ^ 4      ^ 4       V P                  VP                  ^ ^ 4      ^ 4       V P                  VP                  4       V4       V P                  VP                  ^4      ^4       V P                  VP                  ^ ^4      ^4       V P                  VP                  4       VR,          4       V P                  VP                  \        V4      4      \        V4      4       V P                  VP                  4       V P                  4       VP                  \        V4      ^,           4       V P                  VP                  4       V P                  4       V P                  VP                  ^ ^4      \        V4      4       V P                  VP                  4       V P                  4       VP                  4        V P                  \        VP
                  ^ 4       R# )r    r9   Nrq   )
r!   r"   r1   r=   r[   r<   r0   rz   r2   rZ   r\   s   &  r   	test_seekMemoryTestMixin.test_seek.  s   ll<(S!

1*ejj"5*ejj!R8*ejj!Q7A*Aq)1-s+A*Aq)1-s2w/CH-s3x8txx0

3s8a< txx0Aq)3s84txx0*ejj!4r   c                   V P                  R 4      pV P                  V4      pV P                  VP                  \	        V4      ^,           4      ^4       V P                  VP                  4       V P                  4       V P                  VP                  4       ^4       V P                  VP                  4       V4       VP                  V P                  4       V P                  VP                  4       V4       VP                  V4       V P                  VP                  4       WP                  R4      ,           V,           4       R# )r     N)
r!   r"   r0   r<   rz   r1   r2   rC   rY   rQ   r\   s   &  r   test_overseekMemoryTestMixin.test_overseekE  s    ll<(S!CHqL126txx0r*)3/DHH)3/C)3d1C+Cc+IJr   c                   V P                  R 4      pV P                  V4      pV P                  VP                  4       ^ 4       VP	                  ^4       V P                  VP                  4       ^4       VP	                  R4       V P                  VP                  4       R4       VP                  4        V P                  \        VP                  4       R# rB   )r!   r"   r0   rC   r<   rZ   r=   r[   r\   s   &  r   	test_tellMemoryTestMixin.test_tellR  s    ll<(S!q)

1q)

5u-*ejj1r   c                    V P                  R 4      pV P                  V4      pV P                  VP                  4       R4       R# r   )r!   r"   r0   flushr\   s   &  r   
test_flushMemoryTestMixin.test_flush^  s4    ll<(S!-r   c                   V P                  4       pV P                  VP                  4       R 4       V P                  VP                  4       R 4       V P                  VP	                  4       R 4       V P                  VP                  4       R4       V P                  VP                  R4       VP                  4        V P                  \        VP                  4       V P                  \        VP                  4       V P                  \        VP                  4       V P                  \        VP
                  4       V P                  VP                  R 4       R# )TFN)
r"   r0   writablereadableseekableisattyclosedrZ   r=   r[   r	   r]   s   & r   
test_flagsMemoryTestMixin.test_flagsd  s    )40)40)40/u-*enn5*enn5*enn5*ell3t,r   c                   a a S P                  R 4      oVV 3R lpVV 3R lpS P                  V! 4       S4       S P                  V! 4       S4       R# )r    c                  ^   <  ! R  RSP                   4      p V ! S4      pVP                  4       # )c                       ] tR tRtRtR# )>MemoryTestMixin.test_subclassing.<locals>.test1.<locals>.MemIOiv  rF   N)r   r   r   r   r   rF   r   r   MemIOr   v  s    r   r   r"   rY   r   mr$   r	   s     r   test1/MemoryTestMixin.test_subclassing.<locals>.test1u  s(     c
A::<r   c                  f   <  ! V3R  lRSP                   4      p V ! SR4      pVP                  4       # )c                   .   <a  ] tR tRt o V3R ltRtV tR# )>MemoryTestMixin.test_subclassing.<locals>.test2.<locals>.MemIOi{  c                >   < SP                   P                  W4       R # r   )r"   r   )meabr	   s   &&&r   r   GMemoryTestMixin.test_subclassing.<locals>.test2.<locals>.MemIO.__init__|  s    LL))"0r   rF   Nr   r   r   r   r   r   r   r   r	   s   @r   r   r   {  s     1 1r   r   Nr   r   s     r   test2/MemoryTestMixin.test_subclassing.<locals>.test2z  s-    1 1 c4 A::<r   N)r!   r0   )r	   r   r   r$   s   f  @r   test_subclassing MemoryTestMixin.test_subclassings  sA    ll<(	 
	  	#&#&r   c                X    \        ^d4       F  pV P                  4       p^Vn        K  	  R# )d   N)ranger"   foo)r	   _r]   s   &  r   test_instance_dict_leak'MemoryTestMixin.test_instance_dict_leak  s$     sALLNEEI r   c           	       a  S P                  R 4      pS P                  V4      p^*Vn        VP                  ^4        ! V 3R lRS P                  4      p^ RIpRVn        VP                  Vn        W4n        V! V^P4      pVP                  ^4       \        ^\        P                  ^,           4       EF  pW%3 EF  p\        P                  ! \        P                  ! WvR7      4      pS P                  VP                  4       VP                  4       4       S P                  VP                   VP                   4       S P                  VP                  VP                  4       S P                  VP#                  4       VP#                  4       4       VP%                  4        S P'                  \(        \        P                  W4       EK  	  EK  	  V=R# )r    c                   .   <a  ] tR tRt o V3R ltRtV tR# )6MemoryTestMixin.test_pickling.<locals>.PickleTestMemIOi  c                J   < SP                   P                  W4       W n        R # r   )r"   r   r   )r   	initvaluer   r	   s   &&&r   r   ?MemoryTestMixin.test_pickling.<locals>.PickleTestMemIO.__init__  s    %%b4r   rF   Nr   r   s   @r   PickleTestMemIOr     s      r   r   N__main__)protocol)r!   r"   r   r<   r   r   r   r   r   r   pickleHIGHEST_PROTOCOLloadsdumpsr0   rY   	__class__rC   rZ   r=   r[   )	r	   r$   r]   r   r   submemioprotoobjobj2s	   f        r   test_picklingMemoryTestMixin.test_pickling  sK   ll<(S!	

1	dll 	 	%/"'6'?'?$#2 "3+a 1f559:E(||FLL$EF  A  ?  $((3  TYY[9

!!*fllDH ) ; $r   rF   N)r   r   r   r   rM   rU   r^   rb   rj   rs   rv   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r   rH   rH   D   su     A&E<LB2
9$2L'7R706265.K
2.-' #% #%r   rH   c                      a  ] tR tRt o ]P
                  t]R 4       t]P                  t	Rt
R tR tR tR tR tR	 tR
 tR tR tRtV tR# )PyBytesIOTesti  c                $    V P                  R 4      # )ascii)encode)ss   &r   r!   PyBytesIOTest.buftype  s    xx  r   r   c                   V P                  R 4      pVP                  4       pV P                  \        V4      R 4       VP	                  ^4       VP                  4       pV P                  \        V4      R 4       V P                  \        VP                  R4       V P                  \        VP                  4       V P                  \        VP                  4       V P                  VP                  4       RVR&   V P                  \        V4      R4       V P                  VP                  4       R4       ?\        P                  ! 4        VP                  4        VP                  4        V P                  \        VP                  4       R# )
   1234567890s   abc:r:   rn   Ns
   123abc7890Nsd   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r"   	getbufferr0   bytesr<   r=   BufferErrorrQ   rR   rZ   assertFalser   rY   r   
gc_collectr[   )r	   r]   r$   s   &  r   test_getbufferPyBytesIOTest.test_getbuffer  s   ]+oos]3

1oos]3 	+u{{J?+u~~6+u{{3&Cs]3)=9 *eoo6r   c                   V P                  4       pVP                  4       pV P                  \        V4      R 4       V P	                  \
        VP                  R4       VP                  4       pV P	                  \
        VP                  R4       VP                  4        V P	                  \
        VP                  R4       VP                  4        VP                  R4       R# )r      xN)r"   r   r0   r   r=   r   rQ   release)r	   r]   r$   buf2s   &   r   test_getbuffer_empty"PyBytesIOTest.test_getbuffer_empty  s    oosS) 	+u{{D9 +u{{D9+u{{D9Dr   c                4   V P                  R 4      pVP                  4       p\        P                  ! V4      p\        P                  ! V4      pV.pVP	                  V4       \
        P                  ! 4       ;_uu_ 4        ?RRR4       ??\
        P                  ! 4       ;_uu_ 4        \        P                  ! 4        RRR4       V P                  V! 4       4       V P                  V! 4       4       R#   + '       g   i     L{; i  + '       g   i     LQ; i)r   N)
r"   r   weakrefrefappendr   catch_unraisable_exceptiongccollectassertIsNone)r	   r]   r$   memiowrbufwrr   s   &     r   test_getbuffer_gc_collect'PyBytesIOTest.test_getbuffer_gc_collect  s    ]+oo++e$C E	//11 2//11JJL 2')$%'" 21
 21s   ?C4(D4D	D	c                    V P                  R 4      pV P                  V P                  V4      P                  4       V4       V P                  V P                  V4      P                  R4      V4       R# )r    Nrq   )r!   r0   r"   read1rL   s   & r   
test_read1PyBytesIOTest.test_read1  sV    ll<(c*002C8c*004c:r   c                   V P                  R 4      pV P                  V4      p\        R4      pV P                  VP	                  V4      ^4       V P                  VR4       V P                  VP	                  V4      ^4       V P                  VR4       V P                  VP	                  V4      ^ 4       V P                  VR4       \        R4      pVP                  ^ 4       V P                  VP	                  V4      ^
4       V P                  VR4       \        R4      pVP                  ^ 4       V P                  VP	                  V4      ^ 4       V P                  VR4       V P                  \        VP                  R4       ^ RIpVP                  R	R4      pV P                  V4      pVP	                  V4       V P                  VP                  4       R4       VP                  4        V P                  \        VP                  V4       V P                  R
4      p\        4       pVP                  ^*4       VP	                  V4       V P                  VR4       R# )r    s   hellos   12345s   67890s   hello worlds   1234567890dr   rX   Nr   s   123)r!   r"   	bytearrayr0   readintor<   r=   r>   arraytobytesrZ   r[   )r	   r$   r]   r   r  r   s   &     r   test_readintoPyBytesIOTest.test_readinto  s   ll<(S!h*A.H%*A.H%*A.H%n%

1*B/N+cN

1*A.C )U^^R8KK^,S!qn5*enna8V$K

2qC r   c                   V P                  R 4      pV P                  V4      pV P                  VP                  R^4      ^ 4       V P                  VP                  ^^4      ^4       V P                  VP                  R^4      ^ 4       V P                  VP                  R^4      ^	4       V P                  VP                  ^^4      ^
4       V P                  VP                  ^^4      ^4       VP                  R^4       V P                  VP	                  4       VRR 4       VP                  ^ 4       VP                  ^^4       V P                  VP	                  4       VR,          4       R# )r    N:r*   NNrq   r   )r!   r"   r0   r<   r1   r\   s   &  r   test_relative_seek PyBytesIOTest.test_relative_seek  s   ll<(S!B*A.Aq)1-B*A.B*A.Aq)2.Aq)2.

2qs23x0

1

1as2w/r   c                    V P                  4       pV P                  \        V P                   R 4       V P                  \        VP                  R 4       V P                  \        VP                  R .4       R# r   )r"   r=   r>   rQ   ra   r   s   & r   test_unicodePyBytesIOTest.test_unicode+  sS    )T\\<@)U[[,?)U%5%5~Fr   c                ,   R p^ RI pVP                  R\        V4      4      pV P                  V4      pV P                  VP	                  4       V4       V P                  VP                  V4      ^
4       V P                  VP	                  4       V4       R# )r   Nr   )r  r   r"   r0   rY   rQ   )r	   r$   r  r   r]   s   &    r   test_bytes_arrayPyBytesIOTest.test_bytes_array2  sq    KKT#Y'Q)3/Q,)3/r   c                    V P                  R 4      pV P                  VR7       V P                  \        V P                  VRR7       R# )r    )initial_bytesN)r   )r!   r"   r=   r>   rL   s   & r   test_issue5449PyBytesIOTest.test_issue5449;  s9    ll<(3')T\\3DAr   rF   N)r   r   r   r   pyiorJ   staticmethodr!   BytesIOr"   r2   r   r   r  r  r  r  r  r  r  r   r   r   s   @r   r   r     si       44! !llG
C72#&;
!B0 G0B Br   r   c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )TextIOTestMixiniA  c                  a V P                  R R7      oV3R lpV P                  SP                  R 4       SP                  R4       V! 4        V P                  SP                  R4       SP                  R4       V! 4        V P                  SP                  R4       SP                  R4       V! 4        V P                  SP                  R4       R # )	Nnewlinec                  J   < S P                  ^ 4       S P                  4        R# )    N)r<   r1   r]   s   r   force_decode<TextIOTestMixin.test_newlines_property.<locals>.force_decodeH  s    JJqMJJLr   a

b
cd)r+  
)r+  r.  )r"   r0   newlinesrQ   )r	   r(  r]   s   & @r   test_newlines_property&TextIOTestMixin.test_newlines_propertyC  s    T*	 	.E.G8F)=>r   c                   V P                  4       pV P                  \        VP                  R^4       V P                  \        VP                  ^^4       V P                  \        VP                  R^4       V P                  \        VP                  R^4       V P                  \        VP                  ^^4       V P                  \        VP                  ^^4       R# )r*   Nrq   r   )r"   r=   OSErrorr<   r   s   & r   r  "TextIOTestMixin.test_relative_seekV  s    '5::r15'5::q!4'5::r15'5::r15'5::q!4'5::q!4r   c                    V P                  4       pV P                  VP                  4       V P                  VP                  4       V P	                  VP
                  4       R # r   )r"   r   encodingerrorsr   line_bufferingr   s   & r   test_textio_properties&TextIOTestMixin.test_textio_properties`  sG     	%..)%,,'--.r   c                   V P                  R 4      pV P                  \        V4      . RO4       V P                  VP                  4       R 4       V P                  4       pV P                  VP	                  R 4      ^4       VP                  ^ 4       V P                  \        V4      . RO4       V P                  VP                  4       R 4       R# )a
b
cdNr*  r,  r-  r"   r0   r   rY   rQ   r<   r   s   & r   test_newline_default$TextIOTestMixin.test_newline_defaulti  s    ^,e&>?)>:^4a8

1e&>?)>:r   c                   V P                  R RR7      pV P                  \        V4      . RO4       VP                  ^ 4       V P                  VP	                  ^4      R4       V P                  VP	                  ^4      R4       V P                  VP	                  ^4      R4       V P                  VP	                  ^4      R4       V P                  VP                  4       R4       V P                  RR7      pV P                  ^VP                  R4      4       V P                  ^VP                  R	4      4       V P                  ^VP                  R
4      4       VP                  ^ 4       V P                  VP	                  4       R4       V P                  VP                  4       R4       V P                  RRR7      pV P                  VP	                  ^4      R4       R# )r=  Nr#  r*  r   z
b
cr+  za
b
c
dr,  r-  za
bza
b)r*  zb
zc
dr"   r0   r   r<   r1   rY   rQ   r   s   & r   test_newline_none!TextIOTestMixin.test_newline_nonet  sh   ^T:e&@A

1A,A.A.A-)<8T*EKK./EKK01EKK/0

1|4)<8Xt4A/r   c                V   V P                  R RR7      pV P                  \        V4      . R
O4       VP                  ^ 4       V P                  VP	                  ^4      R4       V P                  VP	                  ^4      R4       V P                  VP	                  ^4      R4       V P                  VP                  4       R 4       V P                  RR7      pV P                  ^VP                  R4      4       V P                  ^VP                  R4      4       V P                  ^VP                  R4      4       V P                  ^VP                  R4      4       VP                  ^ 4       V P                  \        V4      . R
O4       V P                  VP                  4       R 4       R	# )r=  rX   r#  r*  za
brC  r/  bzdN)r*  r,  crD  rE  r   s   & r   test_newline_empty"TextIOTestMixin.test_newline_empty  s>   ^R8e&BC

1A1A.A-)>:R(EKK./EKK./EKK./EKK./

1e&BC)>:r   c                   V P                  R RR7      pV P                  \        V4      . RO4       V P                  VP                  4       R 4       V P                  RR7      pV P                  VP	                  R 4      ^4       VP                  ^ 4       V P                  \        V4      . RO4       V P                  VP                  4       R 4       R# )r=  r+  r#  Nr>  r?  r   s   & r   test_newline_lfTextIOTestMixin.test_newline_lf  s    ^T:e&>?)>:T*^4a8

1e&>?)>:r   c                p   V P                  R RR7      pV P                  VP                  4       R4       VP                  ^ 4       V P                  \	        V4      . RO4       V P                  VP                  4       R4       V P                  RR7      pV P                  VP                  R 4      ^4       VP                  ^ 4       V P                  \	        V4      . RO4       VP                  ^ 4       V P                  VP                  4       . RO4       V P                  VP                  4       R4       R# )r=  r/  r#  zabcdN)zarI  r/  rJ  rD  )r"   r0   r1   r<   r   rY   rQ   r   r   s   & r   test_newline_crTextIOTestMixin.test_newline_cr  s    ^T:~6

1e&FG)>:T*^4a8

1e&FG

1*,LM)>:r   c                p   V P                  R RR7      pV P                  VP                  4       R4       VP                  ^ 4       V P                  \	        V4      . RO4       VP                  ^ 4       V P                  VP                  4       . RO4       V P                  VP                  4       R4       V P                  RR7      pV P                  VP                  R 4      ^4       VP                  ^ 4       V P                  \	        V4      . RO4       V P                  VP                  4       R4       R# )r=  r.  r#  z
a
b
cdN)za
zb
r-  )r"   r0   r1   r<   r   r   rY   rQ   r   s   & r   test_newline_crlf!TextIOTestMixin.test_newline_crlf  s    ^V<'9:

1e&BC

1*,HI)+=>V,^4a8

1e&BC)+=>r   c                    V P                  R RR7      pV P                  VP                  ^4      R4       V P                  VP                  4       R4       R# )za
b
Nr#  za
b
)r"   r0   r1   rY   r   s   & r   test_issue5265TextIOTestMixin.test_issue5265  sC    \48A1)84r   c                    V P                  \        V P                  R R7       V P                  \        V P                  RR7       R F  pV P                  VR7       K  	  R# )   
r#  errorN)NrX   r+  r/  r.  )r=   r>   r"   r[   )r	   r$  s   & r   test_newline_argument%TextIOTestMixin.test_newline_argument  sL    )T\\5A*dllGD5GLLL) 6r   rF   N)r   r   r   r   r1  r  r:  r@  rF  rK  rN  rQ  rT  rW  r\  r   r   r   s   @r   r!  r!  A  sA     ?&5/	;0,;&
;; ? 5* *r   r!  c                   ^   a  ] tR tRt o ]t]P                  t]P                  t	Rt
R tRtV tR# )PyStringIOTesti  rX   c                    V P                  R 4      pV P                  VP                  4       R 4       V P                  4       pVP                  R 4       V P                  VP	                  4       R 4       R# )u   N)r"   r0   r1   rQ   rY   r   s   & r   test_lone_surrogates#PyStringIOTest.test_lone_surrogates  sT    X&x0H)84r   rF   N)r   r   r   r   strr!   r  StringIOr"   rJ   r2   ra  r   r   r   s   @r   r_  r_    s.     GmmG44
C5 5r   r_  c                   d    ] tR tRtRt]t]P                  tRt	 ! R R]P                  4      tRtR# )PyStringIOPickleTesti  zETest if pickle restores properly the internal state of StringIO.
    rX   c                   ,   a  ] tR tRt o R tR tRtV tR# )PyStringIOPickleTest.ioclassi  c           	     ~    \         P                  ! \         P                  ! \        P                  ! V/ VB 4      4      # r   )r   r   r   r  rd  clsargskwargss   &*,r   __new__$PyStringIOPickleTest.ioclass.__new__  s(    <<T]]D-KF-K LMMr   c                    R # r   rF   r	   rl  rm  s   &*,r   r   %PyStringIOPickleTest.ioclass.__init__      r   rF   Nr   r   r   r   rn  r   r   r   r   s   @r   r"   rh    s     	N	 	r   r"   rF   N)r   r   r   r   __doc__rc  r!   r  rJ   r2   rd  r"   r   rF   r   r   rf  rf    s2    G44
C$--  r   rf  c                   .  a  ] tR tRt o ]P
                  t]P                  tR tR t	]
P                  t]
P                  R 4       tR t]
P                  R 4       t]
P                  R 4       t]
P                  R 4       t]
P                  R	 4       tR
tV tR# )CBytesIOTesti  c                   V P                  4       pVP                  4       pV P                  \        V4      ^4       \	        V^ ,          4       V P                  V^,          \        4       V^,          e   V P                  V^,          \        4       VP                  4        V P                  \        VP                  4       R# )r:   N)r"   __getstate__r0   rz   r	  assertIsInstanceintdictrZ   r=   r[   r	   r]   states   &  r   test_getstateCBytesIOTest.test_getstate  s    ""$UQ'%(eAh,8!!%(D1*e&8&89r   c                   V P                  4       pVP                  R4       VP                  \        R 4      ^ R34       VP                  R ^ R^/34       V P                  \        VP                  R4       V P                  \
        VP                  R4       V P                  \
        VP                  R4       V P                  \
        VP                  R4       V P                  \
        VP                  R4       V P                  \
        VP                  4       V P                  \
        VP                  ^ 4       VP                  4        V P                  \        VP                  R	4       R# )
   no errorNrf   )r  r&  N)r   rq   N)unicoder&  N)r   r;   N)r   r&  r&  )s   len-testr&  )s   closedr&  N)r"   __setstate__r	  r=   r[   r>   rZ   r   s   & r   test_setstateCBytesIOTest.test_setstate  s   12Ik2At<=KVQK89*e&8&8/J)U%7%79MN)U%7%79IJ)U%7%7E)U%7%79IJ)U%7%78)U%7%7;*e&8&8:NOr   c                   \         P                  ! R 4      pV P                  pV P                  \        P                  \        P                  ! 4       4      V4       V! \        P                  ! 4       V4       RpV! \        P                  ! RV,          4      V\        P                  ! RV,          4      ,           4       R# )P2n2Pnr      aN)
r   calcobjsizecheck_sizeofr0   object
__sizeof__ior  sys	getsizeof)r	   basesizecheckns   &   r   test_sizeofCBytesIOTest.test_sizeof  s|    &&x0!!**2::<8(CbjjlH&bjj"Hs}}TAX/F$FGr   c                ,   RP                  R4      p\        P                  ! V4      pV P                  V4      pV P	                  \        P                  ! V4      V^,           4       V! V4       V P	                  \        P                  ! V4      V4       R# ) r   Na                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   )r   r  getrefcountr"   r0   )r	   mutationimmold_rcr]   s   &&   r   _test_cow_mutationCBytesIOTest._test_cow_mutation"  sk    !!'*%S!-vz:-v6r   c                .    R  pV P                  V4       R# )c                 (    V P                  ^4       R# )r*   N)rR   r'  s   &r   r  0CBytesIOTest.test_cow_truncate.<locals>.mutation.  s    NN1r   Nr  r	   r  s   & r   test_cow_truncateCBytesIOTest.test_cow_truncate+  s    	)r   c                .    R  pV P                  V4       R# )c                 J    V P                  ^ 4       V P                  R4       R# )r&  s   fooN)r<   rQ   r'  s   &r   r  -CBytesIOTest.test_cow_write.<locals>.mutation5  s    JJqMKKr   Nr  r  s   & r   test_cow_writeCBytesIOTest.test_cow_write2  s    	  	)r   c                x   a V P                  R 4      pVP                  4       oV3R lpV P                  V4       R# )s   fooooooc                 *   < V P                  S4       R # r   )r  )r]   r~  s   &r   r  0CBytesIOTest.test_cow_setstate.<locals>.mutation?  s    u%r   N)r"   ry  r  )r	   r]   r  r~  s   &  @r   test_cow_setstateCBytesIOTest.test_cow_setstate:  s4     Z(""$	&)r   c                    \        R 4      p\        P                  ! V4      pV P                  V4      pV P	                  \        P                  ! V4      V4       R# )i   N)r	  r  r  r"   r0   )r	   bar  r]   s   &   r   test_cow_mutableCBytesIOTest.test_cow_mutableC  sB    
 t_$R ,f5r   rF   N)r   r   r   r   r  r  r"   rJ   r  r  r   r  cpython_onlyr  r  r  r  r  r  r   r   r   s   @r   rw  rw    s     jjG22	:P  ''LH H7 * * * * * * 6 6r   rw  c                   b   a  ] tR tRt o ]P
                  t]P                  tR tR t	R t
RtV tR# )CStringIOTestiM  c                p   V P                  R 4      pV P                  V4      pV P                  VP                  4       V4       V P                  VP	                  V4      \        V4      4       V P                  VP                  4       \        V4      4       V P                  VP                  4       V4       V P                  VP	                  V4      \        V4      4       V P                  VP                  4       \        V4      ^,          4       V P                  VP                  4       W,           4       R# )u   𠌊𠍇N)r!   r"   r0   rY   rQ   rz   rC   r\   s   &  r   test_widecharCStringIOTest.test_widecharS  s    ll12S!)3/S)3s84s3x0)3/S)3s84s3x!|4)395r   c                   V P                  4       pVP                  4       pV P                  \        V4      ^4       V P	                  V^ ,          \
        4       V P	                  V^,          \
        4       V P	                  V^,          \        4       V^,          e   V P	                  V^,          \        4       VP                  4        V P                  \        VP                  4       R# )ro   N)r"   ry  r0   rz   rz  rc  r{  r|  rZ   r=   r[   r}  s   &  r   r  CStringIOTest.test_getstate_  s    ""$UQ'eAh,eAh,eAh,8!!%(D1*e&8&89r   c                (   V P                  4       pVP                  R4       VP                  R R^ R^/34       V P                  \        VP                  R4       V P                  \        VP                  R4       V P                  \        VP                  R4       V P                  \        VP                  R4       V P                  \        VP                  R	4       V P                  \        VP                  R
4       V P                  \        VP                  R4       V P                  \        VP                  4       V P                  \        VP                  ^ 4       VP                  4        V P                  \        VP                  R4       R# )no errorNrX   rf   )r  r+  r&  N)rX   rS   r&  N)rX   rX   rq   N)r   rX   r&  N)rX   r   r&  N)rX   rX   r;   N)rX   rX   r&  r&  )zlen-testr&  )r   rX   r&  N)r"   r  r=   r[   r>   rZ   r   s   & r   r  CStringIOTest.test_setstatek  s4   67JA{;<*e&8&8:LM*e&8&8:LM)U%7%79KL)U%7%79KL)U%7%79LM)U%7%7H)U%7%7I)U%7%78)U%7%7;*e&8&8:QRr   rF   N)r   r   r   r   r  rd  r"   rJ   r  r  r  r   r   r   s   @r   r  r  M  s0     kkG22
6
:S Sr   r  c                   X    ] tR tRt]P
                  t ! R R]P                  4      tRtR# )CStringIOPickleTesti}  c                   ,   a  ] tR tRt o R tR tRtV tR# )CStringIOPickleTest.ioclassi  c           	     ~    \         P                  ! \         P                  ! \        P                  ! V/ VB 4      4      # r   )r   r   r   r  rd  rj  s   &*,r   rn  #CStringIOPickleTest.ioclass.__new__  s(    <<R[[$-I&-I JKKr   c                    R # r   rF   rq  s   &*,r   r   $CStringIOPickleTest.ioclass.__init__  rs  r   rF   Nrt  r   s   @r   r"   r    s     	L	 	r   r"   rF   N)	r   r   r   r   r  rJ   rd  r"   r   rF   r   r   r  r  }  s#    22"++  r   r  r   )ru  unittesttestr   r   r  _pyior  r   r  r   r   r   rH   TestCaser   r!  r_  rf  rw  r  r  r   mainrF   r   r   <module>r     s   
   	 	   
  *0 *0Zi% i%XNBO%8(:K:K NBbS* S*l5_&9$h&7&75"?H,=,= U6= U6n-SN -S`.  zMMO r   