
    dafLB                    z   d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZ ddlmZ ddlZddlZddlmZmZ ddlmZ ej*                  j,                  rd Znd Z G d	 d
      Z G d d      Z G d dee
j4                        Z G d dee
j4                        Z G d de
j4                        Z G d de
j4                        Z G d dej>                  j@                        Z! G d de!e
j4                        Z" G d de!e
j4                        Z# G d d      Z$ G d de%      Z& G d d e%      Z' G d! d"e(      Z) G d# d$e(      Z* G d% d&      Z+ G d' d(e$e
j4                        Z, G d) d*e$e
j4                        Z- G d+ d,e$e
j4                        Z.e/d-k(  r e
j`                          yy).zUnit tests for the bytes and bytearray types.

XXX This is a mess.  Common tests should be unified with string_tests.py (and
the latter should be modernized).
    N)import_helper)warnings_helper)bigaddrspacetestMAX_Py_ssize_t)assert_python_failurec                 B     t        j                          fd       }|S )Nc                  v    t        j                  dt        f      5   | i |cd d d        S # 1 sw Y   y xY wN r   check_warningsBytesWarning)argskwfuncs     */root/Python-3.12.4/Lib/test/test_bytes.pywrapperz%check_bytes_warnings.<locals>.wrapper   s8     //\0BC )T(R() ) )s   /8)	functoolswraps)r   r   s   ` r   check_bytes_warningsr      s%    			) 
	)     c                     | S N )r   s    r   r   r   $   s    r   c                       e Zd ZddZd Zy)	Indexablec                     || _         y r   valueselfr   s     r   __init__zIndexable.__init__)   	    
r   c                     | j                   S r   r   r!   s    r   	__index__zIndexable.__index__+       zzr   N)r   )__name__
__module____qualname__r"   r&   r   r   r   r   r   (   s    r   r   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zed        Zd Zd Zed        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d  Z$d! Z%d" Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z;d8 Z<d9 Z=d: Z>d; Z?d< Z@d= ZAd> ZBd? ZCd@ ZDdA ZEdB ZFdC ZGdD ZHdE ZIdF ZJdG ZKyH)IBaseBytesTestc                 p    | j                  t        |      t        |             | j                  ||       y r   )assertIstypeassertEqual)r!   actualexpecteds      r   assertTypedEqualzBaseBytesTest.assertTypedEqual1   s(    d6lDN3*r   c                     | j                         }| j                  t        |      | j                          | j                  |j                  | j                          y r   )	type2testr0   r/   	__class__r!   bs     r   test_basicszBaseBytesTest.test_basics5   s>    NNa$..1dnn5r   c                     | j                  d      }t        j                  t        j                  fD ]@  } ||      }| j                  ||       | j                  t	        |      t	        |             B y N   abcd)r5   copydeepcopyr0   r/   r!   acopy_methodr8   s       r   	test_copyzBaseBytesTest.test_copy:   s]    NN7# IIt}}5 	/KAAQ"T!Wd1g.	/r   c                    | j                         | j                  t              d       | j                  t        fd       | j                  t        fd       | j                  t        fd       | j                  t        fd       | j                  t        fd       | j                  t        fd       | j                  t        fd       | j                  t        fd	       | j                  t        fd
       | j                  t        fd       | j                  t        fd       y )Nr   c                       d   S Nr   r   r8   s   r   <lambda>z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>D       ad r   c                       d   S N   r   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>E   rH   r   c                  *     t         j                     S r   sysmaxsizerF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>F   s    an r   c                  0     t         j                  dz      S rJ   rM   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>G   s    aA.> r   c                       ddz     S N
   d   r   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>H   s    aCj r   c                       d   S Nr   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>I       ae r   c                       d   S )Nr   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>J   rX   r   c                  ,     t         j                      S r   rM   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>K   s    ao r   c                  2     t         j                   dz
     S rJ   rM   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>L       aQ.? r   c                  2     t         j                   dz
     S )N   rM   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>M   r]   r   c                       ddz      S rR   r   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>N   s    aSk r   )r5   r0   lenassertRaises
IndexErrorr7   s    @r   test_empty_sequencez!BaseBytesTest.test_empty_sequenceA   s    NNQ#*l3*l3*&<=*&>?*&89*m4*m4*&=>*&?@*&?@*&9:r   c                    | j                  t        d            }| j                  t        |      d       | j                  t	        |      t	        t        d                   | j                  dh      }| j                  |d       | j                  ddh      }| j                  t        |      ddh       | j                  t        t        d                  }| j                  t        |      d       | j                  t	        |      t	        t        d                   | j                  d t        d      D              }| j                  t        |      d	       | j                  t	        |      t	        t        d            d
d d           G d d      }| j                   |             }| j                  |d       y )N   *      *+   -   )ri   rj   )rj   ri   c              3   ,   K   | ]  }|d z  s	|  yw)r_   Nr   ).0is     r   	<genexpr>z3BaseBytesTest.test_from_iterable.<locals>.<genexpr>a   s     :AE1:s   
   rK   r_   c                       e Zd Zd Zy)+BaseBytesTest.test_from_iterable.<locals>.Sc                     d|   S )NrK   r_      r   )r!   rm   s     r   __getitem__z7BaseBytesTest.test_from_iterable.<locals>.S.__getitem__g   s     |#r   N)r(   r)   r*   ru   r   r   r   Srq   f   s    $r   rv      )r5   ranger0   ra   listassertIntupleiter)r!   r8   rv   s      r   test_from_iterablez BaseBytesTest.test_from_iterableP   s\   NN5:&Q%a$uSz"23 NNB4 D!NNB8$eAh8 45 NN4c
+,Q%a$uSz"23 NN:eCj::Q%a$uSz"214a4"89	$ 	$ NN13O,r   c                     | j                  t        t        d                  }| j                  t	        |      d       | j                  t        |      t        t        d                   | j                  d      }| j                  |d       y Nrf   rs   rw   )r5   r{   rx   r0   ra   ry   r7   s     r   test_from_tuplezBaseBytesTest.test_from_tuplel   sh    NN5s,-Q%a$uSz"23NN9%O,r   c                 $   | j                  t        t        d                  }| j                  t	        |      d       | j                  t        |      t        t        d                   | j                  g d      }| j                  |d       y r   )r5   ry   rx   r0   ra   r7   s     r   test_from_listzBaseBytesTest.test_from_listt   sh    NN4c
+,Q%a$uSz"23NN9%O,r   c                      G fdd      } |        |       g| j                  t              d        G fdd      } |       g| j                  t              d       y )Nc                       e Zd Z fdZy)0BaseBytesTest.test_from_mutating_list.<locals>.Xc                 &    j                          yNrg   clearr!   r@   s    r   r&   z:BaseBytesTest.test_from_mutating_list.<locals>.X.__index__   s    	r   Nr(   r)   r*   r&   r@   s   r   Xr   ~   s    r   r   rh   c                       e Zd Z fdZy)0BaseBytesTest.test_from_mutating_list.<locals>.Yc                 D    t              dk  rj                  |        y)N  rg   )ra   appendr   s    r   r&   z:BaseBytesTest.test_from_mutating_list.<locals>.Y.__index__   s    q6D=HHTNr   Nr   r   s   r   Yr          r   r   s  ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************r0   bytes)r!   r   r   r@   s      @r   test_from_mutating_listz%BaseBytesTest.test_from_mutating_list|   sY    	 	 S!#Jq4(	 	
 SEq;/r   c                 Z   | j                  t               t        d      t        d      t        d      g      }| j                  t        |      g d       | j	                  t
        | j                   t        d      g       | j	                  t
        | j                   t        d      g       y )NrK         r   rK   r   r   rW   rf   )r5   r   r0   ry   rb   
ValueErrorr7   s     r   test_from_indexzBaseBytesTest.test_from_index   sz    NNIK1y~%cN, -a"23*dnny}oF*dnny~6FGr   c                 (   | j                  t        j                  dg d            }| j                  |d       | j                  d      }| j                  |d        G d dt              }| j                  | j                   |d            d       y )NBrs   rw   c                       e Zd Zd Zy))BaseBytesTest.test_from_buffer.<locals>.Bc                     t         r   )	TypeErrorr%   s    r   r&   z3BaseBytesTest.test_from_buffer.<locals>.B.__index__   s    r   Nr   r   r   r   r   r      s     r   s   foobar)r5   arrayr0   r   )r!   r@   r   s      r   test_from_bufferzBaseBytesTest.test_from_buffer   st    NN5;;sI67O,NN?+O,	  	  	)5yAr   c                    | j                  | j                  d      d       | j                  | j                  d      d       | j                  | j                  d      d       | j                  t        | j                  d       | j                  | j                  dd	      d
       | j                  | j                  d
      d
       | j                  t        | j                  t
        j                  dz          y )Nr   r   rK          s        rW   0ascii   0)r0   r5   rb   r   OverflowErrorrN   rO   r%   s    r   test_from_ssizezBaseBytesTest.test_from_ssize   s    *C0*G4*,CD*dnnb9W5t<-t4-qIr   c                 "   | j                  t        | j                  d        G d d      }| j                  t        | j                  dg       | j                  t        | j                  dg       | j                  t        | j                  d g       | j                  t        | j                   |       g       | j                  t        | j                  d       | j                  t        | j                  d       | j                  t        | j                  d	d       | j                  t        | j                  d
d       | j                  t        | j                  d	d       | j                  t        | j                  d
d       | j                  t        | j                  d       | j                  t        | j                  dd       | j                  t        | j                  dd       | j                  t        | j                  ddd       y )Ng        c                       e Zd Zy)5BaseBytesTest.test_constructor_type_errors.<locals>.CNr(   r)   r*   r   r   r   Cr          r   r   r   r   )encodingignore)errorsr   r   r   s   asciis   ignore)rb   r   r5   )r!   r   s     r   test_constructor_type_errorsz*BaseBytesTest.test_constructor_type_errors   s   )T^^S9	 	)T^^cU;)T^^cU;)T^^dV<)T^^acU;)T^^gF)T^^HE)T^^Q@)T^^S'B)T^^QxH)T^^SJ)T^^R8)T^^RI)T^^RB)T^^R)Lr   c                 ^   | j                  t        | j                  dg       | j                  t        | j                  t        j                   g       | j                  t        | j                  t        j                   dz
  g       | j                  t        | j                  t        j                   dz
  g       | j                  t        | j                  ddz   g       | j                  t        | j                  dg       | j                  t        | j                  dg       | j                  t        | j                  t        j                  g       | j                  t        | j                  t        j                  dz   g       | j                  t        | j                  ddz  g       y )NrW   rK   r_   rS   rT   rf   i  )rb   r   r5   rN   rO   r%   s    r   test_constructor_value_errorsz+BaseBytesTest.test_constructor_value_errors   s$   *dnnrd;*dnn|nE*dnn|A~6FG*dnn|A~6FG*dnnCxjA*dnnse<*dnnse<*dnns{{mD*dnns{{1}oF*dnnr3wi@r   c                     t         }| j                  t        t        f| j                  |       	 t        |dz
         y # t        t        f$ r Y y w xY w)N   )r   rb   r   MemoryErrorr5   	bytearray)r!   sizes     r   test_constructor_overflowz'BaseBytesTest.test_constructor_overflow   sL    =+6M	 dQh{+ 		s   > AAc                     G d d      }| j                  t        | j                   |              | j                  t        | j                   |       g        G d d      }| j                  t        | j                   |              y )Nc                       e Zd Zd Zy)9BaseBytesTest.test_constructor_exceptions.<locals>.BadIntc                     ddz   y NrK   r   r   r%   s    r   r&   zCBaseBytesTest.test_constructor_exceptions.<locals>.BadInt.__index__   	    !r   Nr   r   r   r   BadIntr          r   r   c                       e Zd Zd Zy)>BaseBytesTest.test_constructor_exceptions.<locals>.BadIterablec                     ddz   y r   r   r%   s    r   __iter__zGBaseBytesTest.test_constructor_exceptions.<locals>.BadIterable.__iter__   r   r   N)r(   r)   r*   r   r   r   r   BadIterabler      r   r   r   )rb   ZeroDivisionErrorr5   )r!   r   r   s      r   test_constructor_exceptionsz)BaseBytesTest.test_constructor_exceptions   sg    	 	 	+T^^VXF+T^^fhZH	 	 	+T^^[]Kr   c                    | j                  g d      }| j                  g d      }| j                  ddg      }| j                  ||       | j                  ||k7         | j                  ||k         | j                  ||k         | j                  ||k         | j                  ||k\         | j                  ||k\         | j                  ||kD         | j                  ||k7         | j                  ||k(         | j                  ||kD         | j                  ||kD         | j                  ||k\         | j                  ||k         | j                  ||k         | j                  ||k         y )Nrs   rK   rt   )r5   r0   
assertTrueassertFalse)r!   b1b2b3s       r   test_comparezBaseBytesTest.test_compare   s@   ^^I&^^I&^^QF#R b!b!b!b!b!b!b!r"r"r"r"r"r"r"r"r   c                    | j                  | j                  d      dk(  d       | j                  | j                  d      dk(  d       | j                  | j                  d      dk(  d       | j                  | j                  d      dk(  d       | j                  | j                         t               k(  d       | j                  | j                         t               k7  d       y )Ns    a b cabcFs      a   b   cs   a b c s   a   b   c   T)r0   r5   strr%   s    r   test_compare_to_strz!BaseBytesTest.test_compare_to_str   s    
 	5>F(@AUJ!	#5>F(@AUJ!	#)SU2E:)SU2D9r   c                     t        t        t        d            }| j                  |      }t        t	        |            }|j                          | j                  ||       y )NHello)ry   mapordr5   reversedreverser0   )r!   inputr8   outputs       r   test_reversedzBaseBytesTest.test_reversed	  sH    Sg&'NN5!hqk"'r   c                      fd} |d      } j                  |d d  |d              j                  |dd  |d              j                  |dd  |d              j                  |dd   |d	              j                  |dd
  |d	              j                  |dd  |d	              j                  |d d  |d              j                  |dd  |d              j                  |dd  |d              j                  |dd   |d	              j                  |dd
  |d	              j                  |dd  |d	              j                  |dd  |d             y )Nc                 B    j                  t        t        |             S r   )r5   r   r   )sr!   s    r   byz'BaseBytesTest.test_getslice.<locals>.by  s    >>#c1+..r   Hello, worldr   r   rK   ello   z, world   rT   i)r0   r!   r   r8   s   `  r   test_getslicezBaseBytesTest.test_getslice  sd   	/~2A7,1QF,1QD*127,1R"W+.1S2g;/3BG-3rBvJ/2b2d8,23G-2b2g;/2cBwK04BwK0r   c                    t        t        d            }| j                  |      }dd ddddt        j                  ddd	d
f}|D ]@  }|D ]9  }|dd  D ]/  }| j                  ||||   | j                  ||||                1 ; B y )Nr   r   rK   rt      rT   rW   rZ   r   )ry   rx   r5   rN   rO   r0   )r!   Lr8   indicesstartstopsteps          r   test_extended_getslicez$BaseBytesTest.test_extended_getslice$  s    sNN1dAq"c3;;BTJ 	]E ]#ABK ]D$$QuT$%7%PTUY/HZ9[\]]	]r   c           	      N   d}dD ]D  }| j                  ||      }| j                  || j                  |j                  |                   F | j                  t        | j                   |d       | j                  |dd      }| j                  || j                  |d d d             y )N   Hello world
ሴ噸骼utf-8zutf-16latin-1r   r   )r5   r0   encoderb   UnicodeEncodeErrorr!   sampleencr8   s       r   test_encodingzBaseBytesTest.test_encoding/  s    2& 	DCvs+AQv}}S/A BC	D 	,dnnfiPNN69h7DNN6#2;@Ar   c                    d}dD ]5  }| j                  ||      }| j                  |j                  |      |       7 d}| j                  |d      }| j                  t        |j                  d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  | j                  d	      j                         d
       y )Nr   r   u   Hello world
þÿr   r   r   zHello world
)r   r   s   ☃u   ☃)r5   r0   decoderb   UnicodeDecodeErrorr  s       r   test_decodezBaseBytesTest.test_decode8  s    2& 	4Cvs+AQXXc]F3	4 1NN69-,ahh@'84oFGD(	* 	8??A8Lr   c                     d}d}t        j                  d| j                  j                   d|d|d|d|d|d	|d
      }t	        ddd|      }| j                  |j                  d|       y )NzBoom, Shaka Laka, Boom!)r   utf8latin1z0
            import sys
            type2test = z
            encodings = zr

            for data in ('', 'short string'):
                try:
                    type2test(data, encoding=z)
                except LookupError:
                    pass
                else:
                    sys.exit(21)

                for encoding in encodings:
                    try:
                        type2test(data, encoding=encoding, errors=a>  )
                    except LookupError:
                        pass
                    else:
                        sys.exit(22)

            for data in (b'', b'short string'):
                data = type2test(data)
                print(repr(data))
                try:
                    data.decode(encoding=z)
                except LookupError:
                    sys.exit(10)
                else:
                    sys.exit(23)

                try:
                    data.decode(errors=z)
                except LookupError:
                    pass
                else:
                    sys.exit(24)

                for encoding in encodings:
                    try:
                        data.decode(encoding=encoding, errors=z)
                    except LookupError:
                        pass
                    else:
                        sys.exit(25)

            sys.exit(10)
        z-Xdevz-crS   )textwrapdedentr5   r(   r   r0   rc)r!   invalid	encodingscodeprocs        r   test_check_encoding_errorsz(BaseBytesTest.test_check_encoding_errorsF  s     ,/	 $001 2" &. /6[ 9C DK+ 
N* +2 5( )0{ 3? @Gk J	Q/  /` %T5$="d+r   c                 >   | j                  d      }| j                  || j                                | j                  d      }| j                  || j                  dgdz               | j                  d      }| j                  || j                  dgdz               y )Nr   rS   i'  )r5   r0   r7   s     r   test_from_intzBaseBytesTest.test_from_int~  s    NN1DNN,-NN2DNNA3r623NN5!DNNA3u956r   c                 R   | j                  d      | j                  d      | j                  z   d       | j                  t        d      z   d       | j                  t        d      z   d       | j                  t        fd       | j                  t        fd       y )N   abc   def   abcdefs   defabcc                       dz   S )Ndefr   )r   s   r   rG   z+BaseBytesTest.test_concat.<locals>.<lambda>  s    R%Z r   c                      d z   S )Nr   r   )r   s   r   rG   z+BaseBytesTest.test_concat.<locals>.<lambda>  s    URZ r   )r5   r0   r   rb   r   )r!   r   r   s    @@r   test_concatzBaseBytesTest.test_concat  s    ^^F#^^F#b),eFm+Y7v+Y7)%78)%78r   c                 $   d| j                  d      fD ]  | j                  dz  d       | j                  dz  d       | j                  dz  d       | j                  t        fd       | j                  t        fd       | j                  t        t
        f      5  t        j                  z  }d d d        | j                  t        t
        f      5  t        j                  z  d d d         y # 1 sw Y   CxY w# 1 sw Y   xY w)	Nr  rt   	   abcabcabcr   r   rW   c                       dz  S NgQ	@r   rF   s   r   rG   z+BaseBytesTest.test_repeat.<locals>.<lambda>  s    T r   c                      d z  S r#  r   rF   s   r   rG   z+BaseBytesTest.test_repeat.<locals>.<lambda>  s     r   )r5   r0   rb   r   r   r   rN   rO   r!   cr8   s     @r   test_repeatzBaseBytesTest.test_repeat  s    // 
	!AQUL1QUC(QVS)i)9:i)9:""M;#?@ $O$""M;#?@ !S[[ ! !
	!$ $! !s   $C:D:D	D	c                     | j                  | j                  d      dz  | j                  t        d      gdz               y )N   xrT   x)r0   r5   r   r%   s    r   test_repeat_1charzBaseBytesTest.test_repeat_1char  s3    -c14>>3s8*S.3QRr   c                 ,   | j                  d      | j                  t        d             | j                  t        t        d                   | j	                  d       | j                  t        fd       | j                  t        fd       | j                  t        fd       | j                  t        fd       | j                  t        fd       | j                  t        fd	       t        t        fD ]  }| j                   |d
             | j                   |d             | j                   |d             | j                   |d             | j                   |d             | j                   |d             | j                   |d             | j	                   |d             | j	                   |d             | j	                   |d             | j	                   |d              y )Nr  r@      c                      d v S )N,  r   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    cQh r   c                      d v S rV   r   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    bAg r   c                  .    t         j                  dz    v S rJ   rM   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    ckk!mq.@ r   c                      d  v S r   r   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    TQY r   c                  0    t        t        d             v S Nr@   )floatr   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    U3s8_-A r   c                      d v S r4  r   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    SAX r   r      a   b   c   ab   bc   ac   ds   dabs   abd)
r5   rz   r   intassertNotInrb   r   r   r   r   )r!   fr8   s     @r   test_containszBaseBytesTest.test_contains  s   NN6"c#h"c#c(mQ'a *&67*o6*&@A)%67)%AB)%56	! 	+AMM!C&!$MM!D'1%MM!D'1%MM!D'1%MM!E(A&MM!E(A&MM!F)Q'QuXq)QtWa(QvY*QvY*	+r   c                 h   | j                  t        | j                  j                         | j                  t        | j                  j                  d       | j	                  | j                  j                  d      | j                                t        g d      }| j	                  | j                  j                  d      |       | j	                  | j                  j                  d      |       | j	                  | j                  j                  d      |       dD ];  }| j	                  | j                  j                  |      | j                                = dD ]-  }| j                  t        | j                  j                  |       / | j	                  | j                  j                  d	      d
       | j                  t        | j                  j                  d       | j                  t        | j                  j                  d       | j                  t        | j                  j                  d       | j                  t        | j                  j                  d       | j                  t        | j                  j                  d       | j                  t        | j                  j                  d       dD ]f  \  }}| j                  t              5 }| j                  j                  |       d d d        | j                  d|z  t        j                               h y # 1 sw Y   4xY w)NrK   r      ri   0   1a2B30z  1A 2B  30   z
 1A
2B	30z	
 u       0000s     s   1Br@   rtz1a b cd z12       34))z12 x4 56rt   )z12 3x 56r   )z12 xy 56rt   )u	   12 3ÿ 56r   zat position %s)
rb   r   r5   fromhexr0   r   r   rz   r   	exception)r!   r8   r&  dataposcms         r   test_fromhexzBaseBytesTest.test_fromhex  sd   )T^^%;%;<)T^^%;%;Q?//3T^^5EF()//91=//0@A1E 	//@!D+ 	JAT^^33A68HI	J= 	EAj$..*@*@!D	E 	//7A)T^^%;%;UC*dnn&<&<cB*dnn&<&<dC*dnn&<&<iH*dnn&<&<fE*dnn&<&<>NO	
 	EID# "":. -"&&t,-MM*S0#bll2CD	E- -s   L((L1	c                    | j                  t        | j                  j                         | j                  t        | j                  j                  d       | j	                  | j                  d      j                         d       | j	                  t        g d      j                         d       | j	                  | j                  d      j                         d       | j	                  t        d      j                         d       y )NrK   r   r   rC  1a2b30   +0)rb   r   r5   hexr0   r   
memoryviewr%   s    r   test_hexzBaseBytesTest.test_hex  s    )T^^%7%78)T^^%7%7;,002B7#56::<hG8<<>IO488:HEr   c                 >   | j                  d      }| j                  |j                         d       | j                  t              5  |j                  d       d d d        | j                  t              5  |j                  d       d d d        | j                  |j                  dd      d       | j                  t
              5  |j                  d d       d d d        | j                  t              5  |j                  d       d d d        | j                  t              5  |j                  d       d d d        | j                  t              5  |j                  d	       d d d        | j                  t              5  |j                  t        d
             d d d        | j                  |j                  dd      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       d}| j                  |j                  dd       d!       y # 1 sw Y   mxY w# 1 sw Y   KxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   uxY w)"Ns   b901efr   xx:r      ÿ      rf   r   zb9 01 efrI     zb901efrt   r   zb9:01:ef   $zb9$01$efrK   rW   r_   zb9:01ef*rZ   zb901*efs    {s   worldi   s   helloi   0.   zC7b7305000000776f.726c646902000000.730500000068656c.6c6f690100000030)r5   r0   rS  rb   r   r   chr)r!   three_bytesr   s      r   test_hex_separator_basicsz'BaseBytesTest.test_hex_separator_basics  s@   nn_5*H5z* 	 OOB	 z* 	"OOD!	"a0(;y) 	%OOD!$	%z* 	$OOF#	$z* 	%OOG$	%z* 	%OOG$	%z* 	(OOCJ'	(a0(;13CD02BC13CD02BCa0(;a0(;b18<-z:.
;a0*=b1:>a0)<a0*=b19=c3*,qrA	  	 	" 	"	% 	%	$ 	$	% 	%	% 	%	( 	(sT   O6OO7O+&O8PPOOO(+O58PPPc                 z    | j                  t        dd            }| j                  |j                         d       y )NZ   _   
5a5b5c5d5er5   rx   r0   rS  )r!   
five_bytess     r   test_hex_separator_five_bytesz+BaseBytesTest.test_hex_separator_five_bytes	  s-    ^^E"RL1
)<8r   c                    | j                  d t        dd      D              }| j                  |j                         d       | j                  |j                  dd      d       | j                  |j                  dd      d	       | j                  |j                  d
d      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       y )Nc              3   &   K   | ]	  }|d z    yw)rt   Nr   rl   r*  s     r   rn   z=BaseBytesTest.test_hex_separator_six_bytes.<locals>.<genexpr>  s     "<11Q3"<s   rK   r   0306090c0f12rb  z03.06.09.0c.0f.12 r_   z0306 090c 0f12-rt   z030609-0c0f12rY  r   z0306:090c0f12r   z03:06090c0f12   ri  _r   030609_0c0f12r_  z0306090c:0f12   @r   z0306090c0f@12iirk  )r!   	six_bytess     r   test_hex_separator_six_bytesz*BaseBytesTest.test_hex_separator_six_bytes  sx   NN"<a"<<	.9sA.0CDsA.0@AsA.@sA.@sA.@sA.?sB/@sB/AsB/AtR0/BsB/@sC0.Ar   c                    | j                  | j                  d      j                  g       d       | j                  | j                  d      j                  dg      d       dgddgddgg dfD ]  }t        t	        | j                  |            }| j                  | j                  d      j                  |      d       | j                  | j                  d      j                  t        |            d       | j                  | j                  d      j                  t        |            d        | j                  d      j                  }| j                   |dd	g      d
       | j                   |t        d      d	g      d
       | j                   |dt        d	      g      d
       | j                   |t        d      d	g      d
       | j                   |dt        d	      g      d
       dgdz  }dddz  z   }| j                   ||      |       dgdz  }ddz  }| j                  | j                  d      j                  |      |       | j                  t        | j                  d      j                  d        | j                  t              5   |t        d      ddg       d d d        | j                  t              5   |t        d      ddg       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)Nr   r  r7  r;  r:  r9  )r7  r8  r9  s   .:s   cds   ab.:cdi s   .:abci     cds   ef)r0   r5   joinry   r   r{   r|   rT  r   rb   r   )r!   lstdot_joinseqr2   s        r   	test_joinzBaseBytesTest.test_join  s   ,11"5s;,113%8#>HtUmeT]<NO 	JCs4>>3/0CT^^C055c:FCT^^C055eCjA6JT^^C055d3i@&I		J
 >>%(--5%.19=:e#4e"<=yI5*U*;"<=yI9U#3U";<iH5)E*:";<iHhHu,,#1hF?,11#6A)T^^D%9%>%>E y) 	6i&e45	6y) 	7j'u56	7 	7	6 	6	7 	7s   K,K8,K58Lc                    | j                  d      }d}d}d}| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d	      d
       | j                  |j                  |      d       | j                  |j                  |      d
       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  ddd      d       | j                  |j                  ddd      d       | j                  |j                  |d      d       | j                  |j                  |d      d       | j                  |j                  |dd      d       | j                  |j                  |dd      d       y )N   mississippii   p   w      ir      ssr_      wr   rt     prK   rt   r   	   )r5   r0   count)r!   r8   rm   pws        r   
test_countzBaseBytesTest.test_count;  su   NN>**+*Q'Q'q)1-q)1-q!,a0q!,a0A*A*Aq)1-Aq)1-r   c                    | j                  d      }| j                  | j                         j                  d             | j                  |j                  d             | j                  |j                  d             | j                  |j                  d             | j                  |j                  d             | j                  |j                  d             | j	                  t
              5 }|j                  dg       d d d        t        j                        }| j                  d|       | j                  d|       y # 1 sw Y   CxY w)	N   hello   anythings   hel   hs   hellows   har   r{   )	r5   r   
startswithr   rb   r   r   rK  rz   r!   r8   rN  excs       r   test_startswithzBaseBytesTest.test_startswithR  s    NN8$)44[ABX./V,-T*+i01e,-y) 	!RLL$ 	!",,gs#gs#		! 	!s   5E

Ec                    | j                  d      }| j                  t               j                  d             | j	                  |j                  d             | j	                  |j                  d             | j	                  |j                  d             | j                  |j                  d             | j                  |j                  d             | j                  t              5 }|j                  dg       d d d        t        j                        }| j                  d|       | j                  d|       y # 1 sw Y   CxY w)	Nr  r  s   llo   os   whellos   nor   r{   )
r5   r   r   endswithr   rb   r   r   rK  rz   r  s       r   test_endswithzBaseBytesTest.test_endswith`  s    NN8$--k:;

8,-

6*+

4()I./E*+y) 	RJJv	",,gs#gs#		 	s   /EEc                    | j                  d      }d}d}| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  |      d	       | j                  |j                  |      d       | j                  |j                  dd
      d       | j                  |j                  dd	d      d       | j                  |j                  dd	d
      d       | j                  |j                  |d      d       | j                  |j                  |d	d
      d	       | j                  |j                  |d	d
      d       ddt        j                  d	z   fD ]$  }| j                  t        d|j                  |       & y )Nr  r  r  r  r_   r  rW      mississippianrK   rt   r   r   rt  rf   zbyte must be in range\(0, 256\))r5   r0   findrN   rO   assertRaisesRegexr   )r!   r8   rm   r  indexs        r   	test_findzBaseBytesTest.test_findn  sv   NN>**r* 0126A&B'q)1-q!,a0q!,b11q)1a!,1a"-#s{{Q/ 	E"">	r   c                    | j                  d      }d}d}| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  |      d	       | j                  |j                  |      d       | j                  |j                  dd
      d       | j                  |j                  ddd      d       | j                  |j                  |dd
      d       | j                  |j                  |d
d      d       | j                  |j                  |dd
      d       y )Nr  r  r  r  r   r  rW   r  rS   rt   r   rt  r_   rK   r  r   )r5   r0   rfindr!   r8   rm   r  s       r   
test_rfindzBaseBytesTest.test_rfind  s#   NN>*++!12B7R(R(*A.1-q1Aq)1-Aq)1-Aq)2.r   c                    | j                  d      }d}d}| j                  |j                  d      d       | j                  t        |j                  d       | j                  t        |j                  d       | j                  |j                  |      d       | j                  t        |j                  |       | j                  |j                  dd	      d
       | j                  |j                  ddd      d       | j                  t        |j                  ddd	       | j                  |j                  |d      d       | j                  |j                  |dd	      d       | j                  t        |j                  |dd	       y )Nr  r  r  r  r_   r  r  rK   rt   r   r   rt  )r5   r0   r  rb   r   r  s       r   
test_indexzBaseBytesTest.test_index  s0   NN>*+*aggt4*agg/?@Q'*aggq1*A.1-q1*aggua;A*Aq)1-*aggq!Q7r   c                    | j                  d      }d}d}| j                  |j                  d      d       | j                  t        |j                  d       | j                  t        |j                  d       | j                  |j                  |      d       | j                  t        |j                  |       | j                  |j                  dd	      d       | j                  |j                  dd
d      d       | j                  |j                  |dd	      d       | j                  |j                  |d	d      d       | j                  t        |j                  |dd	       y )Nr  r  r  r  r   r  r  rS   rt   r   rt  r_   rK   r  r   )r5   r0   rindexrb   r   r  s       r   test_rindexzBaseBytesTest.test_rindex  s   NN>*%!,*ahh5*ahh0@A!b)*ahh2%+Q/%A.2!Q*A.!Q*A.*ahh1a8r   c                      j                  d      }|}|dz  } j                  |d        j                  |d        j                  ||u         j                  d      }|dz  } j                  |d        j                  t	        |       j                           j                  d      }|dz  } j                  |d        j                  t	        |       j                           fd	} |d
ddid        |ddddd        |d
dddd        |ddd        |ddd        |ddd        |ddd        |ddd        |dd d!        |d"d#d#       y )$N
   hello, %b!   world   hello, world!   %s / 100 = %d%%s   seventy-nineO      seventy-nine / 100 = 79%
   hello, %b!   hello, world!c                     j                  |       }||z  }j                  ||       j                  t        |      j                          y r   )r5   r0   r.   r/   )fmtvalsresultr8   r!   s       r   checkz%BaseBytesTest.test_mod.<locals>.check  s@    s#ADAQ'MM$q'4>>2r   s   ...%(foo)b...   foor  s	   ...abc...s   ...%(f(o)o)b...s   bar)s   f(o)or  {   )r  r  s   %*b)r   r  s     abc)r   r  s   abc  s   %*.*b)r   r_   r  s      ab)r   rt   r  s   %i %*.*b)rS   r   rt   r  s   10   abcs
   %i%b %*.*b)rS      3r   rt   r  s	   103   abc   %cr7  r5   r0   r   r.   r/   )r!   r8   origr@   r  s   `    r   test_modzBaseBytesTest.test_mod  sd   NN=)L,-}-d#NN-.%%78d1gt~~.NN+,L/0d1gt~~.	3 	> F6"BLQc :LIflH-fmX.h2h2k.<m6EeT4 r   c                    | j                  d      }|}|dz  }| j                  |d       | j                  |d       | j                  ||u        | j                  d      }|dz  }| j                  |d       | j                  t	        |      | j                          | j                  d      }|dz  }| j                  |d       | j                  t	        |      | j                          y )	Nr  r  r  r  r  r  r  r  r  )r!   r8   r  s      r   	test_imodzBaseBytesTest.test_imod  s    NN=)	X,-}-d#NN-.	""78d1gt~~.NN+,	X/0d1gt~~.r   c                     | j                  t              5  t               | j                  d      z   d d d        | j	                  | j                  d      j                  d      t               y # 1 sw Y   >xY w)Nr  z%r)rb   r   objectr5   r.   __rmod__NotImplementedr%   s    r   	test_rmodzBaseBytesTest.test_rmod  sZ    y) 	.Ht~~f--	.dnnV,55d;^L	. 	.s   A00A9c                     | j                  d      }| j                  |j                  dd      d       | j                  |j                  dd      d       y )Nr  r  r7  s   massassappar  r)  s	   mixixippi)r5   r0   replacer7   s     r   test_replacezBaseBytesTest.test_replace  sF    NN>*4.?5$/>r   c                 f    | j                  t        | j                  d      j                  dd       y )N   a b    r   )rb   r   r5   r  r%   s    r   test_replace_int_errorz$BaseBytesTest.test_replace_int_error  s%    )T^^F%;%C%CRMr   c                     | j                  t        | j                  d      j                  d       | j                  t        | j                  d      j                  d       y Nr  rr  rb   r   r5   splitrsplitr%   s    r   test_split_string_errorz%BaseBytesTest.test_split_string_error  sD    )T^^F%;%A%A3G)T^^F%;%B%BCHr   c                     | j                  t        | j                  d      j                  d       | j                  t        | j                  d      j                  d       y Nr  r  r  r%   s    r   test_split_int_errorz"BaseBytesTest.test_split_int_error  sD    )T^^F%;%A%A2F)T^^F%;%B%BBGr   c                     dD ]4  }| j                  |      }| j                  |j                         |g       6 | j                  d      }| j                  |j                         dg       y )N)s   abs   abs   abs   ab	   	
   )r5   r0   r  r7   s     r   test_split_unicodewhitespacez*BaseBytesTest.test_split_unicodewhitespace
  sb    = 	-Aq!AQWWY,	- NNBC%8$9:r   c                 h    | j                  d      }| j                  |j                         dg       y )Nr  r  )r5   r0   r  r7   s     r   test_rsplit_unicodewhitespacez+BaseBytesTest.test_rsplit_unicodewhitespace  s+    NNBC&9%:;r   c                     | j                  d      }| j                  |j                  d      d       | j                  |j                  d      d       y )Nr  r  )s   mir  s   issippir  )r  r   r   )r5   r0   	partitionr7   s     r   test_partitionzBaseBytesTest.test_partition  sD    NN>*U+-GHT*,FGr   c                     | j                  d      }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       y )Nr  r  )s   missir  s   ippir  )s
   mississippr  r   r  )r   r   r  )r5   r0   
rpartitionr7   s     r   test_rpartitionzBaseBytesTest.test_rpartition  s^    NN>*e,.HId+-GHd+-GHr   c                     | j                  t        | j                  d      j                  d       | j                  t        | j                  d      j                  d       y r  rb   r   r5   r  r  r%   s    r   test_partition_string_errorz)BaseBytesTest.test_partition_string_error   sD    )T^^F%;%E%EsK)T^^F%;%F%FLr   c                     | j                  t        | j                  d      j                  d       | j                  t        | j                  d      j                  d       y r  r  r%   s    r   test_partition_int_errorz&BaseBytesTest.test_partition_int_error$  sD    )T^^F%;%E%ErJ)T^^F%;%F%FKr   c                     t        t        j                  dz         D ]W  }dD ]P  }| j                  |      }t        j                  ||      }t        j
                  |      }| j                  ||       R Y y NrK   )r   r7  r  s   abs       )rx   pickleHIGHEST_PROTOCOLr5   dumpsloadsr0   )r!   protor8   psqs        r   test_picklingzBaseBytesTest.test_pickling(  sl    622Q67 	'EF 'NN1%\\!U+LL$  A&	'	'r   c                 t   t        t        j                  dz         D ]  }dD ]  }t        | j	                  |            x}}t        | j	                  |            }t        j                  ||      }t        j                  |      }| j                  t        |      t        |             | j                  t        |      |       t        j                  |      }|st        |       t        j                  ||      }t        j                  |      }| j                  t        |      |dd           y r  )rx   r  r  r|   r5   ry   r  r  r0   r/   next)r!   r  r8   ititorgrL  ds          r   test_iterator_picklingz$BaseBytesTest.test_iterator_pickling0  s    622Q67 	5EF 5!$.."344UDNN1-.LLU+\\!_  ed2h7  b40\\!_RLLU+\\!_  b4845	5r   c                 Z   | j                  | j                  d      j                  t        d            d       | j                  | j                  d      j	                  t        d            d       | j                  | j                  d      j                  t        d            d       y )Nr  r<  r8  r;  r:  )r0   r5   striprT  lstriprstripr%   s    r   test_strip_bytearrayz"BaseBytesTest.test_strip_bytearrayB  s}    /55j6GH$O/66z%7HI5Q/66z%7HI5Qr   c                 $   | j                  t        | j                  d      j                  d       | j                  t        | j                  d      j                  d       | j                  t        | j                  d      j
                  d       y )Nr  acrb   r   r5   r  r  r  r%   s    r   test_strip_string_errorz%BaseBytesTest.test_strip_string_errorG  se    )T^^F%;%A%A4H)T^^F%;%B%BDI)T^^F%;%B%BDIr   c                 $   | j                  t        | j                  d      j                  d       | j                  t        | j                  d      j                  d       | j                  t        | j                  d      j
                  d       y )Ns    abc r  r   r%   s    r   test_strip_int_errorz"BaseBytesTest.test_strip_int_errorL  se    )T^^H%=%C%CRH)T^^H%=%D%DbI)T^^H%=%D%DbIr   c           	          | j                  d      }t        t        fD ]9  }| j                  |j	                  d |d            | j                  d             ; y )Nr  r      -s   --abc--)r5   r   r   r0   centerr!   r8   	fill_types      r   test_centerzBaseBytesTest.test_centerQ  sO    NN6"+ 	9IQXXa49!^^J79	9r   c           	          | j                  d      }t        t        fD ]9  }| j                  |j	                  d |d            | j                  d             ; y )Nr  r   r  s   abc----)r5   r   r   r0   ljustr  s      r   
test_ljustzBaseBytesTest.test_ljustX  O    NN6"+ 	9IQWWQ	$8!^^J79	9r   c           	          | j                  d      }t        t        fD ]9  }| j                  |j	                  d |d            | j                  d             ; y )Nr  r   r  s   ----abc)r5   r   r   r0   rjustr  s      r   
test_rjustzBaseBytesTest.test_rjust_  r  r   c                 *   | j                  t        | j                  d      j                  dd       | j                  t        | j                  d      j                  dd       | j                  t        | j                  d      j
                  dd       y )Nr  r   r  )rb   r   r5   r  r  r  r%   s    r   test_xjust_int_errorz"BaseBytesTest.test_xjust_int_errorf  sk    )T^^F%;%B%BArJ)T^^F%;%A%A1bI)T^^F%;%A%A1bIr   c                     | j                  d      }| j                  t        t        |            D cg c]  }t	        |||dz           c}g d       y c c}w )Ns    ArK   )r   A      ro   r   )r5   r0   rx   ra   r   )r!   r8   rm   s      r   test_ordzBaseBytesTest.test_ordk  sH    NN-.s1v?A#a!A#h-?/	1?s   Ac                 l   d}| j                  | j                  j                  dd      |       d}| j                  | j                  j                  dd      |       | j                  t        | j                  j                  dd       | j                  t
        | j                  j                  dd       y )	Ns    	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`xyzdefghijklmnopqrstuvwxyz{|}~r     xyzs    	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~xyzs   s   xyzqr   r  )r0   r5   	maketransrb   r   r   )r!   
transtables     r   test_maketranszBaseBytesTest.test_maketransp  s     ~
11&&A:N u
11/6JJW*dnn&>&>P)T^^%=%=ueLr   c                 H   | j                  d      }| j                  d      }| j                  d      }| j                  d      }| j                  d      }| j                  d|j                  |d              | j                  d|j                  |dd              | j                  d|j                  |d d             | j                  d	|j                  |d d              | j                  d|j                  |d              | j                  d|j                  |dd              | j                  d|j                  |d d             | j                  d	|j                  |d d              | j                  d|j	                  |d              | j                  d|j	                  |dd              | j                  d|j	                  |d d             | j                  d	|j	                  |d d              | j                  d|j                  |d              | j                  d|j                  |dd              | j                  d|j                  |d d             | j                  d	|j                  |d d              | j                  d|j                  |d              | j                  d
|j                  |dd              | j                  d
|j                  |d d             | j                  d	|j                  |d d              | j                  d|j                  |d              | j                  d|j                  |dd              | j                  d|j                  |d d             | j                  d|j                  |d d              | j                  d|j                  |d              | j                  d|j                  |dd              | j                  d|j                  |d d             | j                  d|j                  |d d              y )Nr     lr  r)  r  r_   rt   rZ   r   rK   TF)	r5   r0   r  r  r  r  r  r  r  )r!   r8   lhr*  os         r   test_none_argumentsz!BaseBytesTest.test_none_argumentsx  se   NN8$NN4 NN4 NN4 NN4 AFF1dO,AFF1b$/0AFF1dB/0AFF1dD12AGGAt,-AGGAr401AGGAtR01AGGAtT23AGGAt,-AGGAr401AGGAtR01AGGAtT23AHHQ-.AHHQD12AHHQb12AHHQd34AGGAt,-AGGAr401AGGAtR01AGGAtT23qzz!T23qzz!R67qzz!T267

1dD 9:q||At45q||Ar489q||AtR89Qd ;<r   c                 ,   | j                  d      }|j                  |j                  |j                  |j                  |j
                  fD ]G  }| j                  t        |d       | j                  t        |d       | j                  t        |d       I y )Nr  rW   rf   i'  )r5   r  r  r  r  r  rb   r   )r!   r8   methods      r   (test_integer_arguments_out_of_byte_rangez6BaseBytesTest.test_integer_arguments_out_of_byte_range  st    NN8$ww!((C 	8Fj&"5j&#6j&$7	8r   c           	      N   | j                  d      }| j                  d      }| j                  t        d|j                  |d d d        | j                  t        d|j                  |d d d        | j                  t        d|j
                  |d d d        | j                  t        d|j                  |d d d        | j                  t        d|j                  |d d d        | j                  t        d|j                  |d d d        | j                  t        d	|j                  |d d d        y )
Nr  r)  z\bfind\bz	\brfind\bz	\bindex\bz
\brindex\bz	\bcount\bz\bstartswith\bz\bendswith\b)
r5   r  r   r  r  r  r  r  r  r  )r!   r8   r*  s      r   *test_find_etc_raise_correct_error_messagesz8BaseBytesTest.test_find_etc_raise_correct_error_messages  s   NN8$NN4 y+qvv !4t	5y, !4t	5y, !4t	5y- !4t	5y, !4t	5y*;Q\\ !4t	5y/1:: !4t	5r   c                     t         j                  j                  | t        | j                         t         j                  j                  | t
        | j                         y r   )testsupportcheck_free_after_iteratingr|   r5   r   r%   s    r   test_free_after_iteratingz'BaseBytesTest.test_free_after_iterating  s6    //dDNNK//hOr   c           	         | j                  d      }t        t        d            }t        d      |t        d      <   | j	                  t
        |j                         | j	                  t
        |j                  d d        | j	                  t        |j                  t        t        d                   |j                  |d      }| j                  |d       | j                  || j                          |j                  |      }|j                  |d      }| j                  ||       | j                  |d       |j                  |d      }| j                  |d	       |j                  d d
      }| j                  |d       |j                  |d      }| j                  |d       |j                  |d      }| j                  |d	       |j                  d d
      }| j                  |d       y )Nr  rf   er   r   r   s   heller  s   hee   es   hllo)delete)r5   r   rx   r   rb   r   	translater   r   r0   assertIsInstance)r!   r8   rosettar&  r  s        r   test_translatezBaseBytesTest.test_translate  s   NN8$E#J'HC)Q[[1)Q[[$=*akk5s3DEKK*H%a0KK KK%AH%KK&F#KKd#G$ KKK,H%KKK-F#KKTK*G$r   c                    t        j                  d      }| j                  d      }| j                  t              5  |j                  |d       d d d        | j                  t              5  |j                  |d       d d d        | j                  |j                  |d      d       y # 1 sw Y   \xY w# 1 sw Y   8xY w)N	_testcapi)rg   rZ   rK   r   rg   )r   import_moduler5   rb   rc   sequence_getitemr0   )r!   r5  objs      r   test_sq_itemzBaseBytesTest.test_sq_item  s    !//<	nnU#z* 	0&&sB/	0z* 	/&&sA.	/33C;R@		0 	0	/ 	/s   B*,B6*B36B?N)Lr(   r)   r*   r3   r9   rB   rd   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r'  r+  rA  rO  rU  rf  rm  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r!  r$  r&  r+  r3  r9  r   r   r   r,   r,   /   s   +6
/;-8--0"HBJM&
A  L#. : :(1(	]BM6,p79!S+0#EJF#sJ9B 7<..$$2/&8(9&!!F/"M
?
NIH;<H
IML'5$R
J
J
999J
1
M)=V85&P%>Ar   r,   c                   :    e Zd ZeZd Zd Zd Zd Zd Z	d Z
d Zy)		BytesTestc                    d}| j                  |j                         |       | j                  t        |j                               | j                          G d dt              } |d      }| j                  |j                         |       | j                  t        |j                               | j                         y )Ns   foo barc                       e Zd Zy)/BytesTest.test__bytes__.<locals>.bytes_subclassNr   r   r   r   bytes_subclassr>    r   r   r?  s   bar foo)r0   	__bytes__r/   r5   r   )r!   foor?  bars       r   test__bytes__zBytesTest.test__bytes__  s    #.cmmo.?	U 	 ]+#.cmmo.?r   c                 l    d}d}| j                  t        |      5  |d    d d d        y # 1 sw Y   y xY w)N   pythonz'byte indices must be integers or slicesr@   )r  r   r!   r8   msgs      r   test_getitem_errorzBytesTest.test_getitem_error  s8    7##Is3 	cF	 	 	s   *3c                     t        j                  t        t         j                        }t        |dd      5 }| j	                  t
        |j                  d       d d d        y # 1 sw Y   y xY w)Nrbr   )	bufferingr   )osopen__file__O_RDONLYrb   r   readinto)r!   fdr@  s      r   test_buffer_is_readonlyz!BytesTest.test_buffer_is_readonly   sO    WWXr{{+"da( 	:AiS9	: 	: 	:s   "A""A+c           	         | j                  t        t        d            d       | j                  t        t        d            t        d             | j                  t        t	        d            d       | j                  t        t	        d            t        d              G d d      }| j                  t        t         |              | j                  t        t        t	        d             | j                  t        t        t	        d               G d d      }| j                  t         |             d        G d d	t              }| j                  t         |d            d       | j                  t         |d      d
      d       | j                  t         |t        d                  d       | j                  t         |d            t        d             | j                  t         |d      d
      t        d             | j                  t         |t        d                  t        d             | j                  t         |t        d                  t        d             | j                  t        t	        t        d                  t        d             | j                  t        t	        t        d                  t        d             | j                  t        t	        t        d                  t        d              G d dt              }| j                  t         |d            d       | j                  t         |d            t        d             | j                  t         |t        d                  t        d             | j                  t         |t        d                  t        d             | j                  t         |t        d                  t        d             y )Nr  c                       e Zd Zy)&BytesTest.test_custom.<locals>.NoBytesNr   r   r   r   NoBytesrU    s    r   rV  r   c                       e Zd Zd Zd Zy)-BytesTest.test_custom.<locals>.IndexWithBytesc                      y)Nr7  r   r%   s    r   r@  z7BytesTest.test_custom.<locals>.IndexWithBytes.__bytes__  s    r   c                      yr   r   r%   s    r   r&   z7BytesTest.test_custom.<locals>.IndexWithBytes.__index__  s    r   N)r(   r)   r*   r@  r&   r   r   r   IndexWithBytesrX    s    r   r[  r7  c                       e Zd Zd Zd Zy)+BytesTest.test_custom.<locals>.StrWithBytesc                 @    t         j                  | d      }||_        |S )Nu   €)r   __new__r   clsr   r!   s      r   r_  z3BytesTest.test_custom.<locals>.StrWithBytes.__new__  s    {{31"
r   c                     | j                   S r   r   r%   s    r   r@  z5BytesTest.test_custom.<locals>.StrWithBytes.__bytes__      zz!r   Nr(   r)   r*   r_  r@  r   r   r   StrWithBytesr]        "r   re  z
iso8859-15   c                       e Zd Zd Zd Zy)-BytesTest.test_custom.<locals>.BytesWithBytesc                 @    t         j                  | d      }||_        |S )Nrg  )r   r_  r   r`  s      r   r_  z5BytesTest.test_custom.<locals>.BytesWithBytes.__new__0  s    }}S'2"
r   c                     | j                   S r   r   r%   s    r   r@  z7BytesTest.test_custom.<locals>.BytesWithBytes.__bytes__4  rc  r   Nrd  r   r   r   BytesWithBytesri  /  rf  r   rl  )	r0   r   BytesSubclassOtherBytesSubclass	WithBytesrb   r   r   r3   )r!   rV  r[  re  rl  s        r   test_customzBytesTest.test_custom  s   }V45v>'9&'AB&v.	0y016:y'89=;PQ)UGI6)UIe,<=)UIdO<	 	
 	~/0$7	"3 	" 	|F34f=|F3\BGL|M&,ABCVL|F';<mF>ST|F';\J&w/	1|M&4I'JK&v.	0|4Fv4N'OP&v.	0 	eImF.C$DE}U[G\]mImF6K,LM+F3	5mI6H6P,QR+F3	5	"U 	" 	eN6$:;VDmN6,BC+F3	5eN=3H$IJ+F3	5mN=;P,QR+F3	5mN;Mf;U,VW+F3	5r   c                 R	   t        j                  d      }t        j                  d      }ddlm}m} ddlm}m}m}m}m	}	m
}
m} |j                  }|f|_        ||_        | j                   |d      d       | j                   |dd      d	       | j                   |d
 |d            d       | j                   |d
 |t!        d                  d       | j                   |d
 |d            d       | j                   |d |d       |d       |	d            d       | j                   |d |d       |d       |	d            d       | j                   |d |d       |d       |	d            d       | j                   |d |d            d       | j                   |d |d             d!       | j                   |d" |d#            d$       |j#                  |      }t$        j&                  d%k(  rd&j)                  d|z        fd'}nd( }d)}| j                   |d* ||            d+ ||      z   j+                  d,             | j                   |d- |d.            d/        |	d      j,                  }d0||j.                  t0        fd0||j2                  t0        fd1||j4                  t0        fd1||j6                  t0        fd2||j8                  t0        fd3|
|j:                  t0        fd3|
|j<                  t0        fd4|	|t0        fd5|||ff	D ]<  \  }}}}| j                   || ||             ||      j+                  d,            f > | j                   |d6d7      d7       | j                   |d8d9      d:       | j                   |d;      d<       | j                   |d=      d>       | j                   |d? |t!        d@                  dA       | j                   |dB      dC       | j                   |d<      d<       | j                   |dD |d       |d            dE       | j?                  t@        |dF |d             | j?                  t@        |dF |dG             | j                   |dH      dH       | j                   |dCdH      dH       y )INctypesr5  r   )	pythonapi	py_object)c_intc_uintc_longc_ulongc_size_t	c_ssize_tc_char_ps   formats
   Hello %s !r  s   Hello world !s   c=%cs   c= @s   c=@r   s   c=s   d=%d ld=%ld zd=%zdrK   r_   rt   s   d=1 ld=2 zd=3rW   rZ   r   s   d=-1 ld=-2 zd=-3s   u=%u lu=%lu zu=%zur  i  i  s   u=123 lu=456 zu=789s   i=%is   i=123is   i=-123s   x=%xi
  s   x=abcntz0x%0{}Xc                     | z  S r   r   )ptr
ptr_formats    r   ptr_formatterz1BytesTest.test_from_format.<locals>.ptr_formattert  s    "S()r   c                     d| z  S )Nz%#xr   )r  s    r   r  z1BytesTest.test_from_format.<locals>.ptr_formatterx  s    s{"r   iͫ s   ptr=%pzptr=r   s   s=%ss   cstrs   s=cstrs   %ds   %lds   %lus   %zds   %zus   %ps   %5sr7  s   %.3sr  r  s   %%   %s   [%%]s   [%]s   %%%cru  s   %_s   %%ss   %ss   x=%i y=%s   x=2 y=%r  rf   r   )!r   r6  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  PyBytes_FromFormatargtypesrestyper0   r   sizeofrL  nameformatr   r   INT_MINr   INT_MAXLONG_MINLONG_MAX	ULONG_MAXPY_SSIZE_T_MINPY_SSIZE_T_MAXrb   r   )r!   rr  r5  rs  rt  ru  rv  rw  rx  ry  rz  r{  r  
sizeof_ptrr  r  size_max	formatstrctypes_typer   py_formatterr  s                        @r   test_from_formatzBytesTest.test_from_formatA  s   ,,X6!//<	/	 	 	 '99'/k#%." 	+I6"	$+M8D)	+ 	+GU1X> 	"+GU3s8_E	!+GU3Z@"	$+,A,1!HfQi,4QK9 *	+ 	+,A,1"Ivbz,4RL: -	. 	+,A,23K,4SM; 0	1 	+GU3Z@!	#+GU4[A"	$+GU5\B!	# ]]8,
77d?"))!j.9J*# +Ix}E =#55==gF	H+GXg5FG"	$ B<%%E9,,c2E9,,c2VY//5VY//5Wi1137Y	 8 8#>Y	 8 8#>Xx-Hh6
<
 	C7I{E< /	;u;MN)%077@B C	C 	+FD9	+GY?	! 	+E2	+G4	!+GU3s8_E	 +F3	  	+D148+Kq58L#	%
 	-,eU2Y	@-,eU3Z	A 	+C0	+E37	r   c                 ~    G d dt               }g d}| j                  t        |      d       | j                  t        t         ||              G d dt
              }| j                  t        d      d       | j                  t        t         |d              G d	 d
t              }| j                  t        d      d       | j                  t        t         |d              G d dt              }t        d       |d      }}| j                  t        |      d       | j                  t        t        |       y )Nc                       e Zd ZdZy)7BytesTest.test_bytes_blocking.<locals>.IterationBlockedNr(   r)   r*   r@  r   r   r   IterationBlockedr        Ir   r  )r   rK   r_   rt   s    c                       e Zd ZdZy)1BytesTest.test_bytes_blocking.<locals>.IntBlockedNr  r   r   r   
IntBlockedr    r  r   r  rt   s      c                       e Zd ZdZy);BytesTest.test_bytes_blocking.<locals>.BytesSubclassBlockedNr  r   r   r   BytesSubclassBlockedr    r  r   r  r:  c                       e Zd ZdZy)4BytesTest.test_bytes_blocking.<locals>.BufferBlockedNr  r   r   r   BufferBlockedr    r  r   r  )ry   r0   r   rb   r   r>  r   )r!   r  rm   r  r  r  babbs           r   test_bytes_blockingzBytesTest.test_bytes_blocking  s    	t 	q#67)U,<Q,?@
	 	q9-)UJqM:	5 	uu-)U,@,GH	I 	5!=#7BrE*)UB/r   c                    d}d}| j                  t        |      t        |             | j                  t        |      t        |             | j                  t        |      t        |dz               | j                  t        |      t        |dz               | j                  t        |      t        |dz               | j                  t        |      t        d|z               | j                  t        |      t        |dz                G d dt              } |d	      }| j                  t        |      t        |             | j                  t        |      t        |dz               | j                  t        |      t        |dz               | j                  t        |      t        |dz               | j                  t        |      t        d|z               | j                  t        |      t        |dz               y )
Ns   123abc1@s   456zyx-+r_  r   rK   r_   c                       e Zd Zy)5BytesTest.test_repeat_id_preserving.<locals>.SubBytesNr   r   r   r   SubBytesr    r   r   r  s   qwerty())r0   idassertNotEqualr   )r!   r@   r8   r  r   s        r   test_repeat_id_preservingz#BytesTest.test_repeat_id_preserving  s   A1&BqE2a5)BqE2a"f:.BqE2a!e9-A1q5	*A1q5	*BqE2a!e9-	u 	 [!A1&BqE2a"f:.BqE2a!e9-BqE2a!e9-BqE2a!e9-BqE2a!e9-r   N)r(   r)   r*   r   r5   rC  rH  rR  rp  r  r  r  r   r   r   r;  r;    s.    I
@:
95xpd0<.r   r;  c                   x   e Zd ZeZ ej                  d      Zd Zd Z	d Z
d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%e&jN                  jP                  d         Z)d! Z*e&jV                  jX                  jZ                  Z-d" Z.d# Z/d$ Z0y%)&ByteArrayTestr5  c                 ~    t        d      }d}| j                  t        |      5  |d    d d d        y # 1 sw Y   y xY w)NrE  ,bytearray indices must be integers or slicesr@   r   r  r   rF  s      r   rH  z ByteArrayTest.test_getitem_error  s=    i <##Is3 	cF	 	 	   3<c                 ~    t        d      }d}| j                  t        |      5  d|d<   d d d        y # 1 sw Y   y xY w)NrE  r  pythonr@   r  rF  s      r   test_setitem_errorz ByteArrayTest.test_setitem_error  s?    i <##Is3 	AcF	 	 	r  c                 J    | j                  t        t        t                      y r   )rb   r   hashr   r%   s    r   test_nohashzByteArrayTest.test_nohash  s    )T9;7r   c                 :   d}|ddt        |      z
  z  z   }t        j                         }	 t        |d      5 }|j	                  |       d d d        t        |d      5 }t        d      }|j                  |      }d d d        | j                  t        |             | j                  t              t        |             t        |d      5 }|j	                  |       d d d        t        |d      5 }| j                  |j                         |       d d d        	 t        j                  |       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   DxY w# t        $ r Y y w xY w# 	 t        j                  |       w # t        $ r Y w w xY wxY w)Ns   Hello world
r      wbrJ  )ra   tempfilemktemprM  writer   rP  r0   ry   readrL  removeOSError)r!   short_sampler  tfnr@  r8   ns          r   test_bytearray_apiz ByteArrayTest.test_bytearray_api  sj   'rC,='= >>oo	c4 &A%& c4 "AbMJJqM" QL 12T!Wd6l3c4 A
c4 3A  623		#!& &" " 3 3  		# s   E3 D4
E3 E ;AE3 E E3 4!EE3 E$ 4D=9E3  E	E3 EE3 E!E3 $	E0/E03F5F
F	FFFFc                 .   t        d      }| j                  |j                         d        | j                  |d       t        d      }|j                          | j                  |d       t               }|j                          | j                  |       y )Nr  s   ollehs   hello1s   1olleh)r   r0   r   r   r7   s     r   test_reversezByteArrayTest.test_reverse  ss    hd+H%i 			I&K			r   c                 z   t        d      }|j                          | j                  |d       t        d      }|j                          | j                  |d       t        d      }|j                  t	        d             |j                          |j                  t	        d             | j                  |d       y )NrE  r   rr  r  )r   r   r0   r   r   r7   s     r   
test_clearzByteArrayTest.test_clear!  s    i 		C cN		C cN	S			SD!r   c                    t        d      }|j                         }| j                  |d       t        d      }|j                         }| j                  |d       t        d      }|j                         }| j                  ||       | j                  ||       |j	                  t        d             | j                  |d       | j                  |d       y )Nr  r   r  r<   )r   r=   r0   assertIsNotr   r   )r!   r8   r  s      r   rB   zByteArrayTest.test_copy0  s    fVVXV$cNVVXS! fVVXBB
		#c(W%F#r   c                     d } |d      }| j                  t        j                  d|       |d       |d      g       y )Nc                 4    t        t        t        |             S r   )r   r   r   )r   s    r   r   z&ByteArrayTest.test_regexps.<locals>.byC  s    Sa[))r   r   s   \w+r   r   )r0   refindallr   s      r   test_regexpszByteArrayTest.test_regexpsB  s9    	*~GQ/"W+r'{1KLr   c                      d } fd} fd} j                  d      5   ||       d d d         j                  d      5   ||       d d d        y # 1 sw Y   ,xY w# 1 sw Y   y xY w)Nc                     || |<   y r   r   )r8   rm   vals      r   setitem_as_mappingz6ByteArrayTest.test_setitem.<locals>.setitem_as_mappingI  s    AaDr   c                 @    j                   j                  | ||       y r   )r5  sequence_setitem)r8   rm   r  r!   s      r   setitem_as_sequencez7ByteArrayTest.test_setitem.<locals>.setitem_as_sequenceL  s    NN++Aq#6r   c                    t        g d      } | |dd       j                  |t        g d              | |dd       j                  |t        g d              | |dt        d	             j                  |t        g d
             	  | |dd       j                  d       	  | |dd       j                  d       	  | |dd       j                  d       	  | |dt        d             j                  d       	  | |dt                      j                  d       y # t        $ r Y w xY w# t        $ r Y w xY w# t
        $ r Y sw xY w# t
        $ r Y ]w xY w# t        $ r Y y w xY w)Nrs   rK   rT   )rK   rT   rt   rW   r-  )rK   rT   r-  r   rS   )rS   rT   r-  rt   zDidn't raise IndexErrorirf   zDidn't raise ValueErrorzDidn't raise TypeError)r   r0   r   failrc   r   r  r   )setitemr8   r!   s     r   do_testsz,ByteArrayTest.test_setitem.<locals>.do_testsO  sp   )$AAq#Q	+ 67Ar3Q	- 89Aq)B-(Q	. 9:1a 		343"		341c"		341im,		341fh'		23'  
  
  
  
  sZ   D+ *D: E	 "$E #E' +	D76D7:	EE		EE	E$#E$'	E32E3tp_as_mappingtp_as_sequencesubTest)r!   r  r  r  s   `   r   test_setitemzByteArrayTest.test_setitemH  sq    		7 	D \\/* 	)'(	) \\*+ 	*()	* 	*	) 	)	* 	*   	A	A A A)c                      d } fd} fd} j                  d      5   ||       d d d         j                  d      5   ||       d d d        y # 1 sw Y   ,xY w# 1 sw Y   y xY w)Nc                 
    | |= y r   r   )r8   rm   s     r   del_as_mappingz2ByteArrayTest.test_delitem.<locals>.del_as_mappingx  s	    !r   c                 >    j                   j                  | |       y r   )r5  sequence_delitem)r8   rm   r!   s     r   del_as_sequencez3ByteArrayTest.test_delitem.<locals>.del_as_sequence{  s    NN++Aq1r   c           	      2   t        t        d            } | |d       j                  |t        t        dd                    | |d       j                  |t        t        dd                    | |d       j                  |t        g d             y )NrS   r   rK   rW   r  r   )rK   r_   rt   r   rt  r   rc  )r   rx   r0   )r/  r8   r!   s     r   r  z,ByteArrayTest.test_delitem.<locals>.do_tests~  sx    %)$A1aLQ	%2, 781bMQ	%1+ 671aLQ	*? @Ar   r  r  r  )r!   r  r  r  s   `   r   test_delitemzByteArrayTest.test_delitemw  so    		2	B \\/* 	%^$	% \\*+ 	&_%	& 	&	% 	%	& 	&r  c           	      t   t        t        d            }| j                  t        |      t        t        d                   t        g d      |dd | j                  |t        g d             |dd= | j                  |t        g d             t        g d      |dd | j                  |t        t        d                   t        d	d
g      |dd | j                  |t        g d             g d|dd | j                  |t        t        d                   g d|dd | j                  |t        g d             d|dd  | j                  |t        g d             t	        d      |d d | j                  |t        g d             g |dd | j                  |t        g d             dddt        d      ddddgddgg gf	D ]%  }| j                  t              5  ||dd d d d        ' g ddd gfD ]%  }| j                  t              5  ||dd d d d        ' y # 1 sw Y   bxY w# 1 sw Y   >xY w)!NrS   )rK   rK   rK   rK   rK   r   r   )
rK   rK   rK   rK   rK   r   rt  r   rc  r  r   )r   rt  r   rc  r  )r   rK   r_   rt   r   rT   e   r   r   )r   rK   r_   rT   r  r   rc  r  )rt   r   r   rt  rt   )rg   rg   rg   )r   rK   r_   rg   rg   rg   rt   r   r   rt  r   rc  r  r  )r   rK   r_   f   o   r  )r  r  r  r  r  r  r   )r  r  r  r  r  gPKDr   gffffff@r@   r8   r7  r8  )r   r   rf   i i(#  )	r   rx   r0   ry   rT  r>  rb   r   r   )r!   r8   elems      r   test_setslicezByteArrayTest.test_setslice  s%   eBi a$uRy/2?+!AI&DEFadGIo67?+!AIeBi01c3Z("RI&BCD!AIeBi01!AI&PQR!"I&>?@6""1I&DEF!AI&?@AAs5z5#3Z$t5 	D""9- !A 	
 %tTl3 	D"":. !A 	  s   !H"H."H+	.H7	c           	      ~   t        t        d            }| j                  t        |      t        t        d                   |d d= | j                  t        |      t        t        dd                   |j	                  t        dd             | j                  t        |      t        t        dd                   y )NrT   rS   n   )r   rx   r0   ry   extendr7   s     r   test_setslice_extendz"ByteArrayTest.test_setslice_extend  s    eCj!a$uSz"23crcFa$uR~"67	sC!a$uR~"67r   c                 b    t        d      }|j                          |d d= |t        d      z  }~y )NrS   rK   r_   )r   popr   r7   s     r   test_fifo_overrunzByteArrayTest.test_fifo_overrun  s1     bM	bqbE	U1Xr   c                     t        d      }t        j                  |      }|d d= | j                  t        j                  |      |       y )NrS   rK   )r   rN   	getsizeofassertLessEqual)r!   r8   r   s      r   test_del_expandzByteArrayTest.test_del_expand  s=    bM}}QbqbES]]1-t4r   c                    dd ddddddz  t         j                  ddd	d
f}|D ]  }|D ]  }|dd  D ]  }t        t        d            }t	        |      }||||   }|j                          |||||<   |||||<   | j                  |t	        |             ||||= ||||= | j                  |t	        |                y )Nr   rK   rt   r   r/  iM  rW   rZ   r   ir   )rN   rO   ry   rx   r   r   r0   )r!   r   r   r   r   r   r8   rL  s           r   test_extended_set_del_slicez)ByteArrayTest.test_extended_set_del_slice  s    dAq"c1c63;;C 	6E 6#ABK 6DU3Z(A!!A U4_-DLLN)-AeDo&)-AeDo&$$Q	!5%T/*%T/*$$Q	!566	6r   c                     t        t        d            }||dd  | j                  |t        t        t        d            t        t        d            z                y )Nrf   rc  )r   rx   r0   ry   r7   s     r   test_setslice_trapz ByteArrayTest.test_setslice_trap  sH     eCj!!"Id58ntE#J7G&GHIr   c                    t        d      }|}|dz  }| j                  |d       | j                  ||       | j                  ||       |dz  }| j                  |d       	 |dz  }| j                  d       y # t        $ r Y y w xY w)Nr  r  r  r  s	   abcdefxyzr   z'bytes += unicode didn't raise TypeError)r   r0   r.   r  r   r!   r8   r   s      r   test_iconcatzByteArrayTest.test_iconcat  s    f	VI&Ba	VL)	AGA II?@  		s   !A8 8	BBc                     t        d      }|}|dz  }| j                  |d       | j                  ||       | j                  ||       y )Nr  rt   r!  r   r0   r.   r  s      r   test_irepeatzByteArrayTest.test_irepeat  sH    f	QL)Bar   c                     t        d      }|}|dz  }| j                  |d       | j                  ||       | j                  ||       y )Nr)  rT   sd   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr  r  s      r   test_irepeat_1charz ByteArrayTest.test_irepeat_1char  sG    dO	SH%Bar   c                    t               }|j                         }| j                  |d       |g}t        d      D ]H  }|dz  }|j                         }| j	                  |t        |             ||vs8|j                  |       J y )Nr   rT   r)  )r   	__alloc__assertGreaterEqualrx   assertGreaterra   r   )r!   r8   allocr  rm   s        r   
test_alloczByteArrayTest.test_alloc
  sz    Kq)gs 	"AIAKKMEuc!f-C

5!	"r   c           	      <    t                fd}j                   |               j                  t              t        t	        dd                    j                  t              d       j                         } j                  |t                     y )Nc               3     K   t        dd      D ]  } |  t              }j                  |t        t        dt        |      dz                      j                  t              t        |             j	                  t              |        j                         }j                  |t                      y w)NrK   rT   )rx   ry   r0   ra   r  r  r  )rm   r@   r  r8   r!   s      r   gz(ByteArrayTest.test_init_alloc.<locals>.g  s     1c] 2G  Dq#a&();$<=  QQ0$$SVQ/""5#a&12s   B=C rK   rT   c   )r   r"   r0   ry   rx   ra   r  r  )r!   r  r  r8   s   `  @r   test_init_alloczByteArrayTest.test_init_alloc  sp    K	2 	


13a$uQ}"56Q$5#a&)r   c           	      R   d}t        |      }|j                  |       | j                  |||z          | j                  |dd  |       t        d      }|j                  t        t        |dz               |j                  d |dz  D               | j                  ||dz         | j                  |dd  |       t        d      }|j                  t        t        t        |dz                     | j                  ||dz         | j                  |dd  |       t        d      }|j                  t        t        t        |dz                     | j                  ||dz         | j                  |dd  |       t        d      }| j                  t        |j                  g d       | j                  t        |j                  g d	       | j                  t        |      d
       t        d      }|j                  t        t        d            g       | j                  |d       y )Nr  r   r      c              3   2   K   | ]  }t        |        y wr   )r>  rp  s     r   rn   z,ByteArrayTest.test_extend.<locals>.<genexpr>0  s     +AQ+s   2   r   )r   rK   r_   rf   )r   rK   r_   rW   r   r@   r7  )r   r  r0   r   r>  r|   ry   rb   r   ra   r   r   )r!   r  r@   s      r   test_extendzByteArrayTest.test_extend'  s   dO	D4K(12%cN	S$)$%	+++D2I&23&cN	c#tby)*+D2I&23&cN	c#tby)*+D2I&23&cN*ahh?*ahh>Q#cN	)CH%&'D!r   c                 \   t        d      j                  t        d             | j                  d       j                  t        d             | j                  d       | j	                  t
        fd       | j	                  t
        fd       | j	                  t        fd       j                  t        d             j                  t        d	             | j                  d
       | j	                  t        fd       j                  t        t        d                   | j                  d       t        g d      }|j                  d       | j                  |t        g d             |j                  d       | j                  |t        ddg             y )Nr  r  s   helos   heoc                  8     j                  t        d            S )Nr  )r  r   rF   s   r   rG   z+ByteArrayTest.test_remove.<locals>.<lambda>I  s    ahhs3x.@ r   c                  &     j                  d      S )Ni  r  rF   s   r   rG   z+ByteArrayTest.test_remove.<locals>.<lambda>J  s    ahhsm r   c                  &     j                  d      S )Nr-  r  rF   s   r   rG   z+ByteArrayTest.test_remove.<locals>.<lambda>K  s    QXXc] r   r   r  r.  c                  &     j                  d      S )Nr.  r  rF   s   r   rG   z+ByteArrayTest.test_remove.<locals>.<lambda>P      QXXd^ r   r-  r   )~   r  ro      r  )r"  ro   r#  r#  r"  ro   )	r   r  r   r0   rb   r   r   r   r   r%  s     @r   test_removezByteArrayTest.test_removeC  s7   h	SG$	SF#*&@A*&;<)%:;	S	SD!)%;<	3s8$%C  *+	E/23	E3*-.r   c                    t        d      | j                  j                         t        d             | j                  j                  d      t        d             | j                  j                  d      t        d             | j	                  t
        fd       | j	                  t
        d        | j                  t        d	      j                         d
       y )Nr  r  r   r  rZ   r  c                  &     j                  d      S )NrS   )r  rF   s   r   rG   z(ByteArrayTest.test_pop.<locals>.<lambda>`  s    aeeBi r   c                  2    t               j                         S r   )r   r  r   r   r   rG   z(ByteArrayTest.test_pop.<locals>.<lambda>a  s    ikoo.? r   r[  r   )r   r0   r  r   rb   rc   r7   s    @r   test_popzByteArrayTest.test_pop[  s    h#c(+q3s8,rCH-*&78*&?@7+//148r   c                 2    | j                  t        d        y )Nc                  2    t               j                         S r   )r   sortr   r   r   rG   z+ByteArrayTest.test_nosort.<locals>.<lambda>f  s    )+2B2B2D r   )rb   AttributeErrorr%   s    r   test_nosortzByteArrayTest.test_nosorte  s    .*DEr   c                    t        d      j                  t        d             | j                  d       | j                  j                  d      d        t               j                  t        d             | j                  t	              d       | j                  t        fd       t               j                  t        t        d                   | j                  d       y )	Ns   hellr   r  rT   ArK   c                  &     j                  d      S )Nr  )r   rF   s   r   rG   z+ByteArrayTest.test_append.<locals>.<lambda>p  r!  r      A)r   r   r   r0   ra   rb   r   r   r7   s    @r   test_appendzByteArrayTest.test_appendh  s    g	SH%#-K	SQ#)%;<K	3s8$%D!r   c                    t        d      j                  dt        d             j                  dt        d             j                  dt        d             j                  dt        d             | j                  d       | j	                  t
        fd       t               j                  d	t        t        d
                   | j                  d       y )Ns   msssspprK   rm   r   rZ   r   r  c                  (     j                  dd      S )Nr      1)insertrF   s   r   rG   z+ByteArrayTest.test_insert.<locals>.<lambda>|  s    QXXa-> r   r   r/  r1  )r   r6  r   r0   rb   r   r   r7   s    @r   test_insertzByteArrayTest.test_insertu  s    j!	CH	CH	SX	s3x N+)%>?K	Ic#h'(D!r   c                    t        d      }| j                  ||j                  ddd             t        t        d      D cg c]  }| c}      }t        d      }| j                  ||j	                  |             y c c}w )Nr  s   cder   rf   r   )r   r  r  rx   r0  )r!   r8   rm   tr*  s        r   test_copiedzByteArrayTest.test_copied  sj     fAIIffa89%*-Qq-.cNAKKN+ .s   	A>c                    t        d      j                  d      \  }}}| j                  |d       | j                  |d       | j                  ||       |dz  }| j                  |d       t        d      j                  d      \  }}}| j                  |d       | j                  |d       t        d      j	                  d      \  }}}| j                  |d       | j                  |d       | j                  ||       |dz  }| j                  |d       t        d      j	                  d      \  }}}| j                  |d       | j                  |d       y )Nr)     yr      !)r   r  r0   r  r  )r!   r@   r8   r&  s       r   0test_partition_bytearray_doesnt_share_nullstringz>ByteArrayTest.test_partition_bytearray_doesnt_share_nullstring  s<   D/++D11aC C A	T	C D/++D11aC C D/,,T21aC C A	T	C D/,,T21aC C r   c                    t        t        d            t              }fd} |d       d d  }| j                  t        |d       | j                  |       | j                  t        |d       | j                  |       | j                  t        |d       | j                  |       | j                  t        j                  d       | j                  |       | j                  t        j                  d          | j                  |       fd}| j                  t        |       | j                  |       fd}| j                  t        |       | j                  |       y )	NrS   c                 6    t        | dz   d| z  dz
        dd y )NrK   r_   rW   )rx   )r  r8   s    r   resizez3ByteArrayTest.test_resize_forbidden.<locals>.resize  s!    AE1Q37+AaGr      r  r   rK   c                       d= y rJ   r   rF   s   r   delitemz4ByteArrayTest.test_resize_forbidden.<locals>.delitem  s
    !r   c                      d ddd<   y )Nr   rK   rW   r_   r   rF   s   r   delslicez5ByteArrayTest.test_resize_forbidden.<locals>.delslice  s    Aa1fIr   )r   rx   rT  rb   BufferErrorr0   r  r  )r!   vrA  r  rD  rF  r8   s         @r   test_resize_forbiddenz#ByteArrayTest.test_resize_forbidden  s1   
 eBi qM	,r
t+vr2D!+vq1D!+vq1D!+quua0D!+qxx16D!	+w/D!	+x0D!r   c                     t        j                  d      }| j                  t        |j                  t                      y )Nr5  )r   r6  rb   rG  getbuffer_with_null_viewr   )r!   r5  s     r   test_obsolete_write_lockz&ByteArrayTest.test_obsolete_write_lock  s,    !//<	+y'I'I9;Wr   c                    t        d      }t        d      }t        t        j                  dz         D ]  }t        |      }t        j                  ||f|      }t        j                  |      \  }}||d d  | j                  t        |      t        |             | j                  t        |      |       t        |       t        j                  ||f|      }t        j                  |      \  }}||d d  | j                  t        |      t        |             | j                  t        |      |dd         t        dt        |            D ]  }t        |        t        j                  ||f|      }t        j                  |      \  }}||d d  | j                  t        |      t        |             | j                  t        |      |t        |      d         | j                  t        t        |       t        j                  ||f|      }t        j                  |      \  }}||d d  | j                  t        |      g         y )Nr  s   qwertyrK   )r   ry   rx   r  r  r|   r  r  r0   r/   r  ra   rb   StopIteration)	r!   r  rL  r  itorigr  r  r8   rm   s	            r   test_iterator_pickling2z%ByteArrayTest.test_iterator_pickling2  s    I622Q67 	+E$ZFfd^U3ALLOEBAaDT"XtF|4T"Xt, Lfd^U3ALLOEBAaDT"XtF|4T"XtABx0 1c$i( Vfd^U3ALLOEBAaDT"XtF|4T"XtCIJ'78 mT6:fd^U3ALLOEBAaDT"Xr*?	+r   c                     t        d      }t        |      }t        |       |j                          | j	                  t        |      g        y )Nr:  )r   r|   r  r   r0   ry   )r!   r  r  s      r   test_iterator_length_hintz'ByteArrayTest.test_iterator_length_hint  s9    u"XR

b2&r   c                     t        d      }d|d d |dz  }|dz  }| j                  |d       | j                  ||       | j                  |d       y )Nr  r)  r_   rK   rt   s   xcs   xcxcxcr   r0   )r!   r8   r   r   s       r   test_repeat_after_setslicez(ByteArrayTest.test_repeat_after_setslice  sY    f"1UUU#QY'r   c                     G fdd      }| j                  d      5  t        d      | j                  t              5   |       d<   d d d        d d d        | j                  d      5  t        d      | j                  t              5  | j                  j                  d |              d d d        d d d        y # 1 sw Y   wxY w# 1 sw Y   {xY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nc                       e Zd Z fdZy)/ByteArrayTest.test_mutating_index.<locals>.Boomc                 &    j                          yrE   r   r7   s    r   r&   z9ByteArrayTest.test_mutating_index.<locals>.Boom.__index__  s    	r   Nr   rF   s   r   BoomrX    s    r   rZ  r  s   Now you see me...r   r  )r  r   rb   rc   r5  r  )r!   rZ  r8   s     @r   test_mutating_indexz!ByteArrayTest.test_mutating_index  s    	 	
 \\/* 	./A"":. v!	
 \\*+ 	>./A"":. >//1df=>	> 	> 	 	> >	> 	>sG   !C CC,!C%#C0C%C
	CCC"	C%%C.N)1r(   r)   r*   r   r5   r   r6  r5  rH  r  r  r  r  r  rB   r  r  r  r  r  r  r  r   r  r  r  r
  r  r  r  r$  r(  r-  r2  r7  r:  r>  rI  r(  r)  cpython_onlyrL  rP  
list_tests
CommonTesttest_exhausted_iteratorrR  rU  r[  r   r   r   r  r    s   I+++K8I84	"$$M-*^&,&P856*JA 
"*""8/09F"
",!*"@ 
\\X X"+H #oo88PP'(>r   r  c                       e Zd Zed        Zed        Zd Zej                  j                  d        Z
d Zed        Zd Zd Zd	 Zd
 Z ej$                  ej(                  j*                  d      d        Zy)AssortedBytesTestc           	         t         t        fD ]  }| j                   |t                     d       | j                   |t        dg            d       | j                   |t        g d            d       | j                   |d      d       | j                   |d      d	       | j                   |d
      d        y )Nbytearray(b'')r   zbytearray(b'\x00')r   zbytearray(b'\x00\x01\xfe\xff')r  zb'abc'   'zb"'"s   '"zb'\'"')r   reprr0   r   )r!   r@  s     r   test_repr_strzAssortedBytesTest.test_repr_str  s    d 	7AQy{^-=>Qy!~.0EFQy)9:;ACQvY1QtWj1QvY6	7r   c           
      z   dt        d      fD ]  }| j                  t        |      t        |             | j                  t        |d      t        |             | j	                  t
        dt        j                  t        |      j                        z        5  t        |d       d d d         y # 1 sw Y   xY w)Nr  r   z\b%s\br   )
r   r0   r  r   r  r   r  escaper/   r(   r7   s     r   test_formatzAssortedBytesTest.test_format!  s    6** 	AVAYA/VAr]CF3''	(1BIId1g>N>N4O(OQ q# 	 s   B11B:	c                    | j                  dt        d      k(  d       | j                  dt        d      k7  d       | j                  dt        d      k  d       | j                  dt        d      k  d       | j                  dt        d      k\  d       | j                  dt        d      kD  d       | j                  dt        d      k7  d       | j                  dt        d      k(  d       | j                  dt        d      kD  d       | j                  dt        d      k\  d       | j                  dt        d      k  d       | j                  dt        d      k  d       | j                  t        d      dk(  d       | j                  t        d      dk7  d       | j                  t        d      dk  d       | j                  t        d      dk  d       | j                  t        d      dk\  d       | j                  t        d      dkD  d       | j                  t        d      dk7  d       | j                  t        d      dk(  d       | j                  t        d      dkD  d       | j                  t        d      dk\  d       | j                  t        d      dk  d       | j                  t        d      dk  d       y )Nr  Tr:  Fr   r%   s    r   test_compare_bytes_to_bytearrayz1AssortedBytesTest.test_compare_bytes_to_bytearray*  sZ   5=0$7%-/6%-/6v.55</6%,.55=0%8%-/7v.6%-/7%,.65</7v&0$7u/6u/6u.5v%/6v.5v&0%8u/7u.6u/7v.6v%/7r   c                 t   | j                  t        j                         | j                  t        j                  j	                  d      t        j                         | j                  t
        j                         | j                  t
        j                  j	                  d      t
        j                         y )Nz
bytearray(zbytes()assertIsNotNoner   __doc__r   r  r   r%   s    r   test_doczAssortedBytesTest.test_docG  sn    Y../	))44\BIDUDUVU]]+00:EMMJr   c                 |    t        d      }t        |      }t        |      }| j                  |t        |             y )Ns   Hello world
)r   rT  r   r0   )r!   r  bufr8   s       r   test_from_bytearrayz%AssortedBytesTest.test_from_bytearrayN  s5    78 cNIf-.r   c                 ~   | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        t        d            d       | j                  t        t        d            d       | j                  t        t        d            d	       y )
Nr   zb''r)  zb'x'r\  zb'\x80'rc  zbytearray(b'x')zbytearray(b'\x80'))r0   r   r   r%   s    r   test_to_strzAssortedBytesTest.test_to_strT  s    S5)TF+Wz2Ys^,.>?Yt_-/@AYw/02GHr   c           	          g d}|D ]!  \  }}| j                  |t        |d             # t        dd      D ])  }| j                  t        t
        dt        |      z         + y )N))s   Wonderful spamzWonderful spam)s   Wonderful spam toozWonderful spam too)s     u   ª  )s   \xaa\x00\000\200z\xaa\x00\000\200r   ro   rf   zb"%s")r0   r   rx   rb   SyntaxErrorevalrd  )r!   testsr8   r   r&  s        r   test_literalzAssortedBytesTest.test_literal]  sh    
  	9DAqQ	!Y 78	9sC 	0Ak4%A.0	0r   c                 \    | j                  dj                  t        d            ddg       y Nr  r{  r7  r8  )r0   r  rT  r%   s    r   test_split_bytearrayz&AssortedBytesTest.test_split_bytearrayj  s$    j&67$Fr   c                 \    | j                  dj                  t        d            ddg       y r{  )r0   r  rT  r%   s    r   test_rsplit_bytearrayz'AssortedBytesTest.test_rsplit_bytearraym  s$    z$'784,Gr   c                 \    t               }| j                  |j                  dd      |       y )Nr   )r   r  r  r7   s     r   test_return_selfz"AssortedBytesTest.test_return_selfp  s$    K3,a0r   z4BytesWarning is needed for this test: use -bb optionc                 p   d } |       5  ddk(   d d d         |       5  ddk(   d d d         |       5  ddk7   d d d         |       5  ddk7   d d d         |       5  t        d      dk(   d d d         |       5  dt        d      k(   d d d         |       5  t        d      dk7   d d d         |       5  dt        d      k7   d d d         |       5  ddk(   d d d         |       5  ddk(   d d d         |       5  ddk7   d d d         |       5  ddk7   d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                  8    t        j                  dt        f      S r
   r   r   r   r   bytes_warningz5AssortedBytesTest.test_compare.<locals>.bytes_warningx  s    "112|2DEEr   r   r   r   r   r   )r!   r  s     r   r   zAssortedBytesTest.test_compareu  s   	F_ 	2I	_ 	#I	_ 	2I	_ 	#I	_ 	!cNb 	!_ 	!)C. 	!_ 	!cNb 	!_ 	!)C. 	!_ 	QJ	_ 	J	_ 	QJ	_ 	J	 	-	 		 		 		 		! 	!	! 	!	! 	!	! 	!	 		 		 		 	s   D%D2D?
EE=E$E09E<F,FF F,%D/2D<?E	EE!$E-0E9<FFF F),F5N)r(   r)   r*   r   rf  ri  rk  r(  r)  requires_docstringsro  rr  rt  ry  r|  r~  r  unittest
skipUnlessrN   flagsr  r   r   r   r   ra  ra    s    
 7 7  8: 
\\%%K &K/ I I0GH1
 X00OQQr   ra  c                       e Zd Zd Zd Zy)BytearrayPEP3137Testc                     t        |      S r   r  )r!   r*  s     r   marshalzBytearrayPEP3137Test.marshal  s    |r   c                    | j                  d      }dD ]>  }t        ||      } |d      }| j                  ||       | j                  |||dz          @ dD ]5  }t	        |      }| j                  ||       | j                  |||dz          7 | j                  d      }|j                  |g      }| j                  ||       | j                  ||       y )Ns   1234)zfillr  r  r  rt   z" returned self on a mutable object)zval.split()[0]zval.rsplit()[0]zval.partition(b".")[0]zval.rpartition(b".")[2]zval.splitlines()[0]zval.replace(b"", b"")z! returned val on a mutable objectr   )r  getattrr0   r  rw  r}  )r!   r  methnamer#  newvalexprseps          r   test_returns_new_copyz*BytearrayPEP3137Test.test_returns_new_copy  s    ll7# > 	KHS(+FAYFS&)S&$%IIK		KE 	FD $ZFS&)S& !DDF	F ll33%f%f%r   N)r(   r)   r*   r  r  r   r   r   r  r    s    &r   r  c                   "     e Zd Z fdZdZ xZS )FixedStringTestc                     t        |t              r | j                  |j                  d            S t        |   |      S )Nr   )
isinstancer   r5   r   superfixtype)r!   r8  r6   s     r   r  zFixedStringTest.fixtype  s4    c3>>#**W"566ws##r   T)r(   r)   r*   r  contains_bytes__classcell__)r6   s   @r   r  r    s    $
 Nr   r  c                       e Zd ZeZy)ByteArrayAsStringTestN)r(   r)   r*   r   r5   r   r   r   r  r    s    Ir   r  c                       e Zd ZeZy)BytesAsStringTestN)r(   r)   r*   r   r5   r   r   r   r  r    s    Ir   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)SubclassTestc                    | j                  t        | j                  | j                               | j	                  | j                         | j                         d\  }}| j                  |      | j                  |      }}| j                  ||k(         | j                  ||k7         | j                  ||k         | j                  ||k         | j                  ||k\         | j                  ||kD         | j                  ||       | j                  ||z   ||z          | j                  ||z   ||z          | j                  ||z   ||z          | j                  |dz  |dz  k(         y )N)r<      efghr   )r   
issubclassr5   basetyper1  r  r0   )r!   r@   r8   _a_bs        r   
test_basiczSubclassTest.test_basic  s2   
4>>4==ABdnn.>1"DNN1$5B 	b!b!R b!b!R Q 	QR(QB'QQ' 	!r!t$r   c                 V   | j                  d      }| j                         j                  |g      }| j                  ||       | j	                  t        |      | j                  t        |             |j                  dg      }| j	                  t        |      | j                         y r;   )r5   r  r}  r  r.   r/   )r!   s1s2s3s       r   r  zSubclassTest.test_join  s~     ^^G$]]_!!2$'R d2htBx8 WWgYd2h.r   c                    | j                  d      }d|_        | j                  d      |_        t        t        j
                  dz         D ]%  }t	        j                  t	        j                  ||            }| j                  t        |      t        |             | j                  ||       | j                  |j                  |j                         | j                  |j                  |j                         | j                  t        |      t        |             | j                  t        |j                        t        |j                               | j                  t        |d             ( y )Nr<   rS   r  rK   y)r5   r*  zrx   r  r  r  r  r  r  r0   r/   r   hasattr)r!   r@   r  r8   s       r   test_picklezSubclassTest.test_pickle  s   NN7#nnW%622Q67 	.EV\\!U34A1r!u-Q"QSS!##&QSS!##&T!Wd1g.T!##YQSS	2WQ_-	.r   c                    | j                  d      }d|_        | j                  d      |_        t        j                  t        j                  fD ]  } ||      }| j                  t        |      t        |             | j                  ||       | j                  |j                  |j                         | j                  |j                  |j                         | j                  t        |      t        |             | j                  t        |j                        t        |j                               | j                  t        |d              y )Nr<   rS   r  r  )r5   r*  r  r=   r>   r  r  r0   r/   r   r  r?   s       r   rB   zSubclassTest.test_copy  s    NN7#nnW% IIt}}5 	.KAA1r!u-Q"QSS!##&QSS!##&T!Wd1g.T!##YQSS	2WQ_-	.r   c                 n     j                   j                  d      } j                  |d        j                  t	        |       j                           G  fdd j
                        }|j                  d      } j                  |d        j                  t	        |      |        j                  |j                  d        G  fdd j
                        }|j                  d      } j                  |d        j                  t	        |      |        j                  |j                  d       y )NrF  rR  c                       e Zd Z fdZy)%SubclassTest.test_fromhex.<locals>.B1c                 N    j                   j                  | |      }d|_        |S NrB  )r  r_  rA  )ra  r   mer!   s      r   r_  z-SubclassTest.test_fromhex.<locals>.B1.__new__  s%    ]]**36	r   N)r(   r)   r*   r_  r%   s   r   B1r    r   r   r  rB  c                       e Zd Z fdZy)%SubclassTest.test_fromhex.<locals>.B2c                 x    j                   t        ur  j                   j                  | g|i | d| _        y r  )r  r   r"   rA  )r  r   kwargsr!   s      r   r"   z.SubclassTest.test_fromhex.<locals>.B2.__init__   s4    ==-*DMM**2???r   Nr(   r)   r*   r"   r%   s   r   B2r    s    r   r  )r5   rJ  r0   r.   r/   r  rA  )r!   r8   r  r  s   `   r   rO  zSubclassTest.test_fromhex  s    NN""8,O,d1gt~~.	 	 JJx O,d1gr"&	 	 JJx O,d1gr"&r   N)r(   r)   r*   r  r  r  rB   rO  r   r   r   r  r    s    %0/..'r   r  c                       e Zd Zy)ByteArraySubclassNr   r   r   r   r  r  +      r   r  c                       e Zd ZdZy)ByteArraySubclassWithSlots)r*  r  __dict__N)r(   r)   r*   	__slots__r   r   r   r  r  .  s    &Ir   r  c                       e Zd Zy)rm  Nr   r   r   r   rm  rm  1  r  r   rm  c                       e Zd Zy)rn  Nr   r   r   r   rn  rn  4  r  r   rn  c                       e Zd Zd Zd Zy)ro  c                     || _         y r   r   r    s     r   r"   zWithBytes.__init__8  r#   r   c                     | j                   S r   r   r%   s    r   r@  zWithBytes.__bytes__:  r'   r   N)r(   r)   r*   r"   r@  r   r   r   ro  ro  7  s    r   ro  c                       e Zd ZeZeZd Zy)ByteArraySubclassTestc                      G d dt               } |dd      } |dd      }| j                  |d        |dd      }| j                  |d       y )Nc                       e Zd ZddZy):ByteArraySubclassTest.test_init_override.<locals>.subclassc                 6    t        j                  | g|i | y r   )r   r"   )r  newargr   r  s       r   r"   zCByteArraySubclassTest.test_init_override.<locals>.subclass.__init__C  s    ""2777r   N)rK   r  r   r   r   subclassr  B  s    8r   r  r   r<   )source)r  r  rT  )r!   r  r*  s      r   test_init_overridez(ByteArraySubclassTest.test_init_overrideA  sT    	8y 	8 Q Qw'G$Ag.G$r   N)r(   r)   r*   r   r  r  r5   r  r   r   r   r  r  =  s    H!I%r   r  c                       e Zd ZeZeZy)ByteArraySubclassWithSlotsTestN)r(   r)   r*   r   r  r  r5   r   r   r   r  r  K  s    H*Ir   r  c                       e Zd ZeZeZy)BytesSubclassTestN)r(   r)   r*   r   r  rm  r5   r   r   r   r  r  O  s    HIr   r  __main__)1rn  r   rL  r  rN   r=   r   r  r  r  r  test.supportr(  r   r   test.string_teststest.list_testsr   r   test.support.script_helperr   r  r  r   r   r,   TestCaser;  r  ra  r  string_testsBaseTestr  r  r  r  r   r  r  r   rm  rn  ro  r  r  r  r(   mainr   r   r   <module>r     s    	 	 
        & (   9 < 99 yA yAxz.x00 z.zf>M8#4#4 f>R@)) @b&8,, &6d''00 OX->-> ):): \' \'~		 	' '	E 		 	 %L(*;*; %+\83D3D +h&7&7 
 zHMMO r   