
    z%i9                    d   	 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	j2                        Z G d dee	j2                        Z G d de	j2                        Z G d de	j2                        Z G d dej<                  j>                        Z  G d de e	j2                        Z! G d de e	j2                        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%e#e	j2                        Z* G d& d'e#e	j2                        Z+ G d( d)e#e	j2                        Z,e-d*k(  r e	j\                          yy)+    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     C/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/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__)   s	    
r   c                     | j                   S r   r   r    s    r   	__index__zIndexable.__index__+   s    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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+ 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 ZJyG)HBaseBytesTestc                     | j                         }| j                  t        |      | j                          | j                  |j                  | j                          y r   )	type2testassertEqualtype	__class__r    bs     r   test_basicszBaseBytesTest.test_basics1   s>    NNa$..1dnn5r   c                     | j                  d      }t        j                  t        j                  fD ]@  } ||      }| j                  ||       | j                  t	        |      t	        |             B y N   abcd)r+   copydeepcopyr,   r-   r    acopy_methodr0   s       r   	test_copyzBaseBytesTest.test_copy6   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   r0   s   r   <lambda>z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>@       ad r   c                       d   S N   r   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>A   r@   r   c                  *     t         j                     S r   sysmaxsizer>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>B   s    an r   c                  0     t         j                  dz      S rB   rE   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>C   s    aA.> r   c                       ddz     S N
   d   r   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>D   s    aCj r   c                       d   S Nr   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>E       ae r   c                       d   S )Nr   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>F   rP   r   c                  ,     t         j                      S r   rE   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>G   s    ao r   c                  2     t         j                   dz
     S rB   rE   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>H       aQ.? r   c                  2     t         j                   dz
     S )N   rE   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>I   rU   r   c                       ddz      S rJ   r   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>J   s    aSk r   )r+   r,   lenassertRaises
IndexErrorr/   s    @r   test_empty_sequencez!BaseBytesTest.test_empty_sequence=   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   *      *+   -   )ra   rb   )rb   ra   c              3   ,   K   | ]  }|d z  s	|  yw)rW   Nr   ).0is     r   	<genexpr>z3BaseBytesTest.test_from_iterable.<locals>.<genexpr>]   s     :AE1:s   
   rC   rW   c                       e Zd Zd Zy)+BaseBytesTest.test_from_iterable.<locals>.Sc                     d|   S )NrC   rW      r   )r    re   s     r   __getitem__z7BaseBytesTest.test_from_iterable.<locals>.S.__getitem__c   s     |#r   N)r%   r&   r'   rm   r   r   r   Sri   b   s    $r   rn      )r+   ranger,   rY   listassertIntupleiter)r    r0   rn   s      r   test_from_iterablez BaseBytesTest.test_from_iterableL   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 Nr^   rk   ro   )r+   rs   rp   r,   rY   rq   r/   s     r   test_from_tuplezBaseBytesTest.test_from_tupleh   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 rw   )r+   rq   rp   r,   rY   r/   s     r   test_from_listzBaseBytesTest.test_from_listp   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Nr_   clearr    r8   s    r   r$   z:BaseBytesTest.test_from_mutating_list.<locals>.X.__index__{   s    	r   Nr%   r&   r'   r$   r8   s   r   Xr}   z   s    r   r   r`   c                       e Zd Z fdZy)0BaseBytesTest.test_from_mutating_list.<locals>.Yc                 D    t              dk  rj                  |        y)N  r_   )rY   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  ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************r,   bytes)r    r   r   r8   s      @r   test_from_mutating_listz%BaseBytesTest.test_from_mutating_listx   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 )NrC         r   rC   r   r   rO   r^   )r+   r   r,   rq   rZ   
ValueErrorr/   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Brk   ro   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)r+   arrayr,   r   )r    r8   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   rC          s        rO   0ascii   0)r,   r+   rZ   r   OverflowErrorrF   rG   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)rZ   r   r+   )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 )NrO   rC   rW   rK   rL   r^   i  )rZ   r   r+   rF   rG   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   rZ   r   MemoryErrorr+   	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 NrC   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   )rZ   ZeroDivisionErrorr+   )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 )Nrk   rC   rl   )r+   r,   
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)r,   r+   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)rq   mapordr+   reversedreverser,   )r    inputr0   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   )r+   r   r   )sr    s    r   byz'BaseBytesTest.test_getslice.<locals>.by  s    >>#c1+..r   Hello, worldr   r   rC   ello   z, world   rL   i)r,   r    r   r0   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   rC   rl      rL   rO   rR   r   )rq   rp   r+   rF   rG   r,   )r    Lr0   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   )r+   r,   encoderZ   UnicodeEncodeErrorr    sampleencr0   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   ☃)r+   r,   decoderZ   UnicodeDecodeErrorr   s       r   test_decodezBaseBytesTest.test_decode4  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-crK   )textwrapdedentr+   r%   r   r,   rc)r    invalid	encodingscodeprocs        r   test_check_encoding_errorsz(BaseBytesTest.test_check_encoding_errorsB  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   rK   i'  )r+   r,   r/   s     r   test_from_intzBaseBytesTest.test_from_intz  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   r?   z+BaseBytesTest.test_concat.<locals>.<lambda>  s    R%Z r   c                      d z   S )Nr   r   )r   s   r   r?   z+BaseBytesTest.test_concat.<locals>.<lambda>  s    URZ r   )r+   r,   r   rZ   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  rl   	   abcabcabcr   r   rO   c                       dz  S NgQ	@r   r>   s   r   r?   z+BaseBytesTest.test_repeat.<locals>.<lambda>  s    T r   c                      d z  S r  r   r>   s   r   r?   z+BaseBytesTest.test_repeat.<locals>.<lambda>  s     r   )r+   r,   rZ   r   r   r   rF   rG   r    cr0   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   xrL   x)r,   r+   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  r8      c                      d v S )N,  r   r>   s   r   r?   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    cQh r   c                      d v S rN   r   r>   s   r   r?   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    bAg r   c                  .    t         j                  dz    v S rB   rE   r>   s   r   r?   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    ckk!mq.@ r   c                      d  v S r   r   r>   s   r   r?   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    TQY r   c                  0    t        t        d             v S Nr8   )floatr   r>   s   r   r?   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    U3s8_-A r   c                      d v S r,  r   r>   s   r   r?   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    SAX r   r      a   b   c   ab   bc   ac   ds   dabs   abd)
r+   rr   r   intassertNotInrZ   r   r   r   r   )r    fr0   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)NrC   r      ra   0   1a2B30z  1A 2B  30   z
 1A
2B	30z	
 u       0000s     s   1Br8   rtz1a b cd z12       34))z12 x4 56rl   )z12 3x 56r   )z12 xy 56rl   )u	   12 3ÿ 56r   zat position %s)
rZ   r   r+   fromhexr,   r   r   rr   r   	exception)r    r0   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 )NrC   r   r   r;  1a2b30   +0)rZ   r   r+   hexr,   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      ÿ      r^   r   zb9 01 efrA     zb901efrl   r   zb9:01:ef   $zb9$01$efrC   rO   rW   zb9:01ef*rR   zb901*efs    {s   worldi   s   helloi   0.   zC7b7305000000776f.726c646902000000.730500000068656c.6c6f690100000030)r+   r,   rK  rZ   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r+   rp   r,   rK  )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)rl   Nr   rd   r"  s     r   rf   z=BaseBytesTest.test_hex_separator_six_bytes.<locals>.<genexpr>
  s     "<11Q3"<s   rC   r   0306090c0f12rZ  z03.06.09.0c.0f.12 rW   z0306 090c 0f12-rl   z030609-0c0f12rQ  r   z0306:090c0f12r   z03:06090c0f12   ra  _r   030609_0c0f12rW  z0306090c:0f12   @r   z0306090c0f@12iirc  )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  r/  r3  r2  r1  )r/  r0  r1  s   .:s   cds   ab.:cdi s   .:abci     cds   ef)r,   r+   joinrq   r   rs   rt   rL  r   rZ   r   )r    lstdot_joinseqexpecteds        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      ssrW      wr   rl     prC   rl   r   	   )r+   r,   count)r    r0   re   pws        r   
test_countzBaseBytesTest.test_count7  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   rs   )	r+   r   
startswithr   rZ   r   r   rC  rr   r    r0   rF  excs       r   test_startswithzBaseBytesTest.test_startswithN  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   rs   )
r+   r   r   endswithr   rZ   r   r   rC  rr   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  rW   r  rO      mississippianrC   rl   r   r   rl  r^   zbyte must be in range\(0, 256\))r+   r,   findrF   rG   assertRaisesRegexr   )r    r0   re   r  indexs        r   	test_findzBaseBytesTest.test_findj  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  rO   r  rK   rl   r   rl  rW   rC   r  r   )r+   r,   rfindr    r0   re   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  rW   r  r  rC   rl   r   r   rl  )r+   r,   r  rZ   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  rK   rl   r   rl  rW   rC   r  r   )r+   r,   rindexrZ   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   )r+   r,   assertIsr-   )fmtvalsresultr0   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   rW   r  s      ab)r   rl   r  s   %i %*.*b)rK   r   rl   r  s   10   abcs
   %i%b %*.*b)rK      3r   rl   r  s	   103   abc   %cr/  r+   r,   r   r  r-   )r    r0   origr8   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    r0   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)rZ   r   objectr+   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  r/  s   massassappar  r!  s	   mixixippi)r+   r,   replacer/   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   )rZ   r   r+   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  rj  rZ   r   r+   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	   	
   )r+   r,   r  r/   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  )r+   r,   r  r/   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   )r+   r,   	partitionr/   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|  )r+   r,   
rpartitionr/   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  rZ   r   r+   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 NrC   )r   r/  r  s   abs       )rp   pickleHIGHEST_PROTOCOLr+   dumpsloadsr,   )r    protor0   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  )rp   r  r  rt   r+   rq   r  r  r,   r-   next)r    r  r0   ititorgrD  ds          r   test_iterator_picklingz$BaseBytesTest.test_iterator_pickling,  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  r4  r0  r3  r2  )r,   r+   striprL  lstriprstripr#   s    r   test_strip_bytearrayz"BaseBytesTest.test_strip_bytearray>  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rZ   r   r+   r  r  r  r#   s    r   test_strip_string_errorz%BaseBytesTest.test_strip_string_errorC  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_errorH  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--)r+   r   r   r,   centerr    r0   	fill_types      r   test_centerzBaseBytesTest.test_centerM  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----)r+   r   r   r,   ljustr  s      r   
test_ljustzBaseBytesTest.test_ljustT  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)r+   r   r   r,   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  )rZ   r   r+   r   r  r	  r#   s    r   test_xjust_int_errorz"BaseBytesTest.test_xjust_int_errorb  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rC   )r   A      rg   r   )r+   r,   rp   rY   r   )r    r0   re   s      r   test_ordzBaseBytesTest.test_ordg  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  )r,   r+   	maketransrZ   r   r   )r    
transtables     r   test_maketranszBaseBytesTest.test_maketransl  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  rW   rl   rR   r   rC   TF)	r+   r,   r  r  r  r  r  r  r  )r    r0   lhr"  os         r   test_none_argumentsz!BaseBytesTest.test_none_argumentst  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  rO   r^   i'  )r+   r  r  r  r  r  rZ   r   )r    r0   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)
r+   r  r   r  r  r  r  r  r  r  )r    r0   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_iteratingrt   r+   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  r^   er  r   r   s   heller  s   hee   es   hllo)delete)r+   r   rp   r   rZ   r   	translater   r   r,   assertIsInstance)r    r0   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)r_   rR   rC   r   r_   )r   import_moduler+   rZ   r[   sequence_getitemr,   )r    r/  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)Kr%   r&   r'   r1   r:   r\   ru   rx   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r#  r9  rG  rM  r^  re  rq  rz  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  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_subclassr8    r   r   r9  s   bar foo)r,   	__bytes__r-   r+   r   )r    foor9  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 slicesr8   )r  r   r    r0   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_RDONLYrZ   r   readinto)r    fdr8  s      r   test_buffer_is_readonlyz!BytesTest.test_buffer_is_readonly  sO    WWXr{{+"da( 	:AiS9	: 	: 	:s   "A""A+c                 @    G d d      }| j                  t         |             d        G d d      }| j                  t        t         |               G d d      }| j                  t        t         |               G d d      }| j                  t         |             d        G d dt              }| j                  t         |d	            d       | j                  t         |d	      d
      d        G d d      }| j                  t         |             d       | j                  t        t         |                   t               | j                  t         |             d       | j                  t        t         |                   t               y )Nc                       e Zd Zd Zy) BytesTest.test_custom.<locals>.Ac                      yNr  r   r#   s    r   r:  z*BytesTest.test_custom.<locals>.A.__bytes__      r   Nr%   r&   r'   r:  r   r   r   ArO        r   rT  r  c                       e Zd Zy)rO  Nr   r   r   r   rT  z BytesTest.test_custom.<locals>.A  s    r   c                       e Zd Zd Zy)rO  c                      y r   r   r#   s    r   r:  z*BytesTest.test_custom.<locals>.A.__bytes__	      r   NrS  r   r   r   rT  z BytesTest.test_custom.<locals>.A  s    r   c                       e Zd Zd Zd Zy)rO  c                      y)Nr/  r   r#   s    r   r:  z*BytesTest.test_custom.<locals>.A.__bytes__  rY  r   c                      yr   r   r#   s    r   r$   z*BytesTest.test_custom.<locals>.A.__index__  s    r   N)r%   r&   r'   r:  r$   r   r   r   rT  z BytesTest.test_custom.<locals>.A  s    r   r/  c                       e Zd Zd Zy)rO  c                      yrQ  r   r#   s    r   r:  z*BytesTest.test_custom.<locals>.A.__bytes__  rR  r   NrS  r   r   r   rT  z BytesTest.test_custom.<locals>.A  rU  r   u   €z
iso8859-15   c                       e Zd Zd Zy)rO  c                     t        d      S rQ  )OtherBytesSubclassr#   s    r   r:  z*BytesTest.test_custom.<locals>.A.__bytes__  s    )&11r   NrS  r   r   r   rT  z BytesTest.test_custom.<locals>.A  s    2r   )	r,   r   rZ   r   r   r  r-   rb  BytesSubclass)r    rT  s     r   test_customzBytesTest.test_custom  s.   	 	 	qsV,)UAC0	 	 	)UAC0	 	
 	qsT*	 	 	q{+V4q{L97C	2 	2 	qsV,d5:&(:;qs+V4d=-.>r   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ctypesr/  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=%zdrC   rW   rl   s   d=1 ld=2 zd=3rO   rR   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_formatterU  s    "S()r   c                     d| z  S )Nz%#xr   )rs  s    r   ru  z1BytesTest.test_from_format.<locals>.ptr_formatterY  s    s{"r   iͫ s   ptr=%pzptr=r   s   s=%ss   cstrs   s=cstrs   %ds   %lds   %lus   %zds   %zus   %ps   %5sr/  s   %.3sr  r  s   %%   %s   [%%]s   [%]s   %%%crm  s   %_s   %%ss   %ss   x=%i y=%s   x=2 y=%r  r^   r   )!r   r0  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  PyBytes_FromFormatargtypesrestyper,   r   sizeofrF  nameformatr   r   INT_MINr   INT_MAXLONG_MINLONG_MAX	ULONG_MAXPY_SSIZE_T_MINPY_SSIZE_T_MAXrZ   r   )r    rf  r/  rg  rh  ri  rj  rk  rl  rm  rn  ro  rx  
sizeof_ptrru  rs  size_max	formatstrctypes_typer   py_formatterrt  s                        @r   test_from_formatzBytesTest.test_from_format"  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>.IterationBlockedNrS  r   r   r   IterationBlockedr        Ir   r  )r   rC   rW   rl   s    c                       e Zd ZdZy)1BytesTest.test_bytes_blocking.<locals>.IntBlockedNrS  r   r   r   
IntBlockedr    r  r   r  rl   s      c                       e Zd ZdZy);BytesTest.test_bytes_blocking.<locals>.BytesSubclassBlockedNrS  r   r   r   BytesSubclassBlockedr    r  r   r  r2  c                       e Zd ZdZy)4BytesTest.test_bytes_blocking.<locals>.BufferBlockedNrS  r   r   r   BufferBlockedr    r  r   r  )rq   r,   r   rZ   r   r6  r   )r    r  re   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-+rW  r   rC   rW   c                       e Zd Zy)5BytesTest.test_repeat_id_preserving.<locals>.SubBytesNr   r   r   r   SubBytesr    r   r   r  s   qwerty())r,   idassertNotEqualr   )r    r8   r0   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   r+   r=  rB  rL  rd  r  r  r  r   r   r   r5  r5    s.    I
@:
?Bpd0<.r   r5  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%)&ByteArrayTestr/  c                 ~    t        d      }d}| j                  t        |      5  |d    d d d        y # 1 sw Y   y xY w)Nr?  ,bytearray indices must be integers or slicesr8   r   r  r   r@  s      r   rB  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)Nr?  r  pythonr8   r  r@  s      r   test_setitem_errorz ByteArrayTest.test_setitem_error  s?    i <##Is3 	AcF	 	 	r  c                 J    | j                  t        t        t                      y r   )rZ   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      wbrD  )rY   tempfilemktemprG  writer   rJ  r,   rq   readrF  removeOSError)r    short_sampler   tfnr8  r0   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   r,   r   r   r/   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 )Nr?  r   rr  r  )r   r   r,   r   r   r/   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  r4   )r   r5   r,   assertIsNotr   r   )r    r0   r  s      r   r:   zByteArrayTest.test_copy  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>.by$  s    Sa[))r   r   s   \w+r   r   )r,   refindallr   s      r   test_regexpszByteArrayTest.test_regexps#  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   )r0   re   vals      r   setitem_as_mappingz6ByteArrayTest.test_setitem.<locals>.setitem_as_mapping*  s    AaDr   c                 @    j                   j                  | ||       y r   )r/  sequence_setitem)r0   re   r  r    s      r   setitem_as_sequencez7ByteArrayTest.test_setitem.<locals>.setitem_as_sequence-  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)Nrk   rC   rL   )rC   rL   rl   rO   r%  )rC   rL   r%  r   rK   )rK   rL   r%  rl   zDidn't raise IndexErrorir^   zDidn't raise ValueErrorzDidn't raise TypeError)r   r,   r   failr[   r   r  r   )setitemr0   r    s     r   do_testsz,ByteArrayTest.test_setitem.<locals>.do_tests0  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_setitem)  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   )r0   re   s     r   del_as_mappingz2ByteArrayTest.test_delitem.<locals>.del_as_mappingY  s	    !r   c                 >    j                   j                  | |       y r   )r/  sequence_delitem)r0   re   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 )NrK   r   rC   rO   r  r   )rC   rW   rl   r   rl  r   r[  )r   rp   r,   )r)  r0   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_delitemX  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)!NrK   )rC   rC   rC   rC   rC   r   r   )
rC   rC   rC   rC   rC   r   rl  r   r[  r  r   )r   rl  r   r[  r  )r   rC   rW   rl   r   rL   e   r   r   )r   rC   rW   rL   r  r   r[  r  )rl   r   r   rl  rl   )r_   r_   r_   )r   rC   rW   r_   r_   r_   rl   r   r   rl  r   r[  r  r  )r   rC   rW   f   o   r  )r  r  r  r  r  r  r   )r  r  r  r  r  gPKDr   gffffff@r8   r0   r/  r0  )r   r   r^   i i(#  )	r   rp   r,   rq   rL  r6  rZ   r   r   )r    r0   elems      r   test_setslicezByteArrayTest.test_setslicen  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 )NrL   rK   n   )r   rp   r,   rq   extendr/   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 )NrK   rC   rW   )r   popr   r/   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 )NrK   rC   )r   rF   	getsizeofassertLessEqual)r    r0   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   rC   rl   r   r'  iM  rO   rR   r   ir   )rF   rG   rq   rp   r   r   r,   )r    r   r   r   r   r   r0   rD  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 )Nr^   r[  )r   rp   r,   rq   r/   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   r,   r  r  r   r    r0   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  rl   r  r   r,   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!  rL   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   rL   r!  )r   	__alloc__assertGreaterEqualrp   assertGreaterrY   r   )r    r0   allocrx  re   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)NrC   rL   )rp   rq   r,   rY   r  r  r  )re   r8   r  r0   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 rC   rL   c   )r   r!   r,   rq   rp   rY   r  r  )r    r  r  r0   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   )r6  rh  s     r   rf   z,ByteArrayTest.test_extend.<locals>.<genexpr>  s     +AQ+s   2   r   )r   rC   rW   r^   )r   rC   rW   rO   r   r8   r/  )r   r  r,   r   r6  rt   rq   rZ   r   rY   r   r   )r    r  r8   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   r>   s   r   r?   z+ByteArrayTest.test_remove.<locals>.<lambda>*  s    ahhs3x.@ r   c                  &     j                  d      S )Ni  r  r>   s   r   r?   z+ByteArrayTest.test_remove.<locals>.<lambda>+  s    ahhsm r   c                  &     j                  d      S )Nr'  r  r>   s   r   r?   z+ByteArrayTest.test_remove.<locals>.<lambda>,  s    QXXc] r   r  r  r(  c                  &     j                  d      S )Nr(  r  r>   s   r   r?   z+ByteArrayTest.test_remove.<locals>.<lambda>1      QXXd^ r   r'  r   )~   r  rg      r  )r  rg   r  r  r  rg   )	r   r  r   r,   rZ   r   r   r   r   r  s     @r   test_removezByteArrayTest.test_remove$  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  rR   r  c                  &     j                  d      S )NrK   )r  r>   s   r   r?   z(ByteArrayTest.test_pop.<locals>.<lambda>A  s    aeeBi r   c                  2    t               j                         S r   )r   r  r   r   r   r?   z(ByteArrayTest.test_pop.<locals>.<lambda>B  s    ikoo.? r   rS  r   )r   r,   r  r   rZ   r[   r/   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   r?   z+ByteArrayTest.test_nosort.<locals>.<lambda>G  s    )+2B2B2D r   )rZ   AttributeErrorr#   s    r   test_nosortzByteArrayTest.test_nosortF  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  rL   rT  rC   c                  &     j                  d      S )Nr  )r   r>   s   r   r?   z+ByteArrayTest.test_append.<locals>.<lambda>Q  r  r      A)r   r   r   r,   rY   rZ   r   r   r/   s    @r   test_appendzByteArrayTest.test_appendI  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   msssspprC   re   r   rR   r   r|  c                  (     j                  dd      S )Nr      1)insertr>   s   r   r?   z+ByteArrayTest.test_insert.<locals>.<lambda>]  s    QXXa-> r   r   rT  r#  )r   r(  r   r,   rZ   r   r   r/   s    @r   test_insertzByteArrayTest.test_insertV  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   r^   r   )r   r  r  rp   r*  )r    r0   re   tr"  s        r   test_copiedzByteArrayTest.test_copiedb  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  r,   r  r  )r    r8   r0   r  s       r   0test_partition_bytearray_doesnt_share_nullstringz>ByteArrayTest.test_partition_bytearray_doesnt_share_nullstringl  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 )	NrK   c                 6    t        | dz   d| z  dz
        dd y )NrC   rW   rO   )rp   )r  r0   s    r   resizez3ByteArrayTest.test_resize_forbidden.<locals>.resize  s!    AE1Q37+AaGr      r  r   rC   c                       d= y rB   r   r>   s   r   delitemz4ByteArrayTest.test_resize_forbidden.<locals>.delitem  s
    !r   c                      d ddd<   y )Nr   rC   rO   rW   r   r>   s   r   delslicez5ByteArrayTest.test_resize_forbidden.<locals>.delslice  s    Aa1fIr   )r   rp   rL  rZ   BufferErrorr,   r  r  )r    vr3  r  r6  r8  r0   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 )Nr/  )r   r0  rZ   r9  getbuffer_with_null_viewr   )r    r/  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   qwertyrC   )r   rq   rp   r  r  rt   r  r  r,   r-   r  rY   rZ   StopIteration)	r    r  rD  r  itorigr  r  r0   re   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 )Nr2  )r   rt   r  r   r,   rq   )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!  rW   rC   rl   s   xcs   xcxcxcr   r,   )r    r0   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r=   r   r/   s    r   r$   z9ByteArrayTest.test_mutating_index.<locals>.Boom.__index__  s    	r   Nr   r>   s   r   BoomrJ    s    r   rL  r  s   Now you see me...r   r  )r  r   rZ   r[   r/  r  )r    rL  r0   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   r+   r   r0  r/  rB  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,  r0  r;  r"  r#  cpython_onlyr>  rB  
list_tests
CommonTesttest_exhausted_iteratorrD  rG  rM  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   reprr,   r   )r    r8  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   r,   r}  r   r  r   r  escaper-   r%   r/   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  Tr2  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_doc(  sn    Y../	))44\BIDUDUVU]]+00:EMMJr   c                 |    t        d      }t        |      }t        |      }| j                  |t        |             y )Ns   Hello world
)r   rL  r   r,   )r    r   bufr0   s       r   test_from_bytearrayz%AssortedBytesTest.test_from_bytearray/  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'rT  zb'\x80'rU  zbytearray(b'x')zbytearray(b'\x80'))r,   r   r   r#   s    r   test_to_strzAssortedBytesTest.test_to_str5  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   rg   r^   zb"%s")r,   r   rp   rZ   SyntaxErrorevalr\  )r    testsr0   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  rs  r/  r0  )r,   r  rL  r#   s    r   test_split_bytearrayz&AssortedBytesTest.test_split_bytearrayK  s$    j&67$Fr   c                 \    | j                  dj                  t        d            ddg       y rm  )r,   r  rL  r#   s    r   test_rsplit_bytearrayz'AssortedBytesTest.test_rsplit_bytearrayN  s$    z$'784,Gr   c                 \    t               }| j                  |j                  dd      |       y )Nr   )r   r  r  r/   s     r   test_return_selfz"AssortedBytesTest.test_return_selfQ  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_warningY  s    "112|2DEEr   r   r   r   r   r   )r    ru  s     r   r   zAssortedBytesTest.test_compareV  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   rX  r[  r]  r"  r#  requires_docstringsra  rd  rf  rk  rn  rp  rr  unittest
skipUnlessrF   flagsru  r   r   r   r   rS  rS    s    
 7 7  8: 
\\%%K &K/ I I0GH1
 X00OQQr   rS  c                       e Zd Zd Zd Zy)BytearrayPEP3137Testc                     t        |      S r   rv  )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   rl   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~  getattrr,   r  ri  ru  )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   r+   r   superfixtype)r    r2  r.   s     r   r  zFixedStringTest.fixtype  s4    c3>>#**W"566ws##r   T)r%   r&   r'   r  contains_bytes__classcell__)r.   s   @r   r  r    s    $
 Nr   r  c                       e Zd ZeZy)ByteArrayAsStringTestN)r%   r&   r'   r   r+   r   r   r   r  r    s    Ir   r  c                       e Zd ZeZy)BytesAsStringTestN)r%   r&   r'   r   r+   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)r4      efghr   )r   
issubclassr+   basetyper+  r  r,   )r    r8   r0   _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 r3   )r+   r  ru  r  r  r-   )r    s1s2s3s       r   rz  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 )Nr4   rK   r  rC   y)r+   r"  zrp   r  r  r  r  r  r  r,   r-   r   hasattr)r    r8   r  r0   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 )Nr4   rK   r  r  )r+   r"  r  r5   r6   r  r  r,   r-   r   r  r7   s       r   r:   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 )Nr>  rJ  c                       e Zd Z fdZy)%SubclassTest.test_fromhex.<locals>.B1c                 N    j                   j                  | |      }d|_        |S Nr<  )r  __new__r;  )clsr   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  r<  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!   r;  )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  )r+   rB  r,   r  r-   r  r;  )r    r0   r  r  s   `   r   rG  zSubclassTest.test_fromhex  s    NN""8,O,d1gt~~.	 	 JJx O,d1gr"&	 	 JJx O,d1gr"&r   N)r%   r&   r'   r  rz  r  r:   rG  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)rc  Nr   r   r   r   rc  rc    r  r   rc  c                       e Zd Zy)rb  Nr   r   r   r   rb  rb    r  r   rb  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__  s    ""2777r   N)rC   r  r   r   r   subclassr    s    8r   r  r   r4   )source)r  r  rF  )r    r  r"  s      r   test_init_overridez(ByteArraySubclassTest.test_init_override  sT    	8y 	8 Q Qw'G$Ag.G$r   N)r%   r&   r'   r   r  r  r+   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  r+   r   r   r   r  r  &  s    H*Ir   r  c                       e Zd ZeZeZy)BytesSubclassTestN)r%   r&   r'   r   r  rc  r+   r   r   r   r  r  *  s    HIr   r  __main__)/r   rF  r  rF   r5   r   r  r  r  rx  test.supportr"  r   r   test.string_teststest.list_testsr   r   test.support.script_helperr   rz  ru  r   r   r)   TestCaser5  r  rS  r|  string_testsBaseTestr  r  r  r  r   r  r  r   rc  rb  r  r  r  r%   mainr   r   r   <module>r     s    	 	 
        & (   9 < 99 uA uAp_.x00 _.Df>M8#4#4 f>R@)) @b&8,, &6d''00 OX->-> ):): \' \'~		 	' '	E 		 	%L(*;*; %+\83D3D +h&7&7 
 zHMMO r   