
    ;e76                    J   	 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	j                  Z G d dee	j                  Z G d de	j                  Z G d de	j                  Z G d dej        j                  Z  G d de e	j                  Z! G d de e	j                  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	j                  Z* G d& d'e#e	j                  Z+ G d( d)e#e	j                  Z,e-d*k    r e	j.                     dS dS )+    N)import_helper)warnings_helper)bigaddrspacetestMAX_Py_ssize_t)assert_python_failurec                 F     t          j                    fd            }|S )Nc                  ~    t          j        dt          f          5   | i |cd d d            S # 1 swxY w Y   d S N r   check_warningsBytesWarning)argskwfuncs     &/usr/lib/python3.11/test/test_bytes.pywrapperz%check_bytes_warnings.<locals>.wrapper   s     /\0BCC ) )tT(R(() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   266)	functoolswraps)r   r   s   ` r   check_bytes_warningsr      s8    				) 	) 	) 	) 
		)     c                     | S N )r   s    r   r   r   $   s    r   c                       e Zd ZddZd ZdS )	Indexabler   c                     || _         d S r   value)selfr   s     r   __init__zIndexable.__init__)   s    


r   c                     | j         S r   r   r    s    r   	__index__zIndexable.__index__+   s
    zr   N)r   )__name__
__module____qualname__r!   r$   r   r   r   r   r   (   s7               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 ZJdGS )HBaseBytesTestc                     |                                  }|                     t          |          | j                    |                     |j        | j                    d S r   )	type2testassertEqualtype	__class__r    bs     r   test_basicszBaseBytesTest.test_basics1   sO    NNa$.111dn55555r   c                    |                      d          }t          j        t          j        fD ]S} ||          }|                     ||           |                     t	          |          t	          |                     Td S N   abcd)r+   copydeepcopyr,   r-   r    acopy_methodr0   s       r   	test_copyzBaseBytesTest.test_copy6   s}    NN7## It}5 	/ 	/KAAQ"""T!WWd1gg....	/ 	/r   c                 
   |                                  |                     t                    d           |                     t          fd           |                     t          fd           |                     t          fd           |                     t          fd           |                     t          fd           |                     t          fd           |                     t          fd           |                     t          fd	           |                     t          fd
           |                     t          fd           |                     t          fd           d S )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                  .     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                  0     t           j         dz
           S rB   rE   r>   s   r   r?   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>H       aQ.? r   c                  0     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###*llll333*llll333*&<&<&<&<===*&>&>&>&>???*&8&8&8&8999*mmmm444*mmmm444*&=&=&=&=>>>*&?&?&?&?@@@*&?&?&?&?@@@*&9&9&9&9:::::r   c                    |                      t          d                    }|                     t          |          d           |                     t	          |          t	          t          d                               |                      dh          }|                     |d           |                      ddh          }|                     t          |          ddh           |                      t          t          d                              }|                     t          |          d           |                     t	          |          t	          t          d                               |                      d t          d          D                       }|                     t          |          d	           |                     t	          |          t	          t          d                    d
d d                     G d d          }|                       |                      }|                     |d           d S )N   *      *+   -   )ra   rb   )rb   ra   c              3   $   K   | ]}|d z  |V  dS )rW   Nr   .0is     r   	<genexpr>z3BaseBytesTest.test_from_iterable.<locals>.<genexpr>]   s+      ::AE:1::::::r      rC   rW   c                       e Zd Zd ZdS )+BaseBytesTest.test_from_iterable.<locals>.Sc                     d|         S )NrC   rW      r   )r    rf   s     r   __getitem__z7BaseBytesTest.test_from_iterable.<locals>.S.__getitem__c   s     |#r   N)r%   r&   r'   rn   r   r   r   Srj   b   s#        $ $ $ $ $r   ro      )r+   ranger,   rY   listassertIntupleiter)r    r0   ro   s      r   test_from_iterablez BaseBytesTest.test_from_iterableL   s   NN5::&&Q%%%a$uSzz"2"2333 NNB4  D!!!NNB8$$eAhh8 4555 NN4c

++,,Q%%%a$uSzz"2"2333 NN::eCjj:::::Q%%%a$uSzz"2"214a4"8999	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ NN1133O,,,,,r   c                 z   |                      t          t          d                              }|                     t	          |          d           |                     t          |          t          t          d                               |                      d          }|                     |d           d S Nr^   rl   rp   )r+   rt   rq   r,   rY   rr   r/   s     r   test_from_tuplezBaseBytesTest.test_from_tupleh   s    NN5s,,--Q%%%a$uSzz"2"2333NN9%%O,,,,,r   c                 ~   |                      t          t          d                              }|                     t	          |          d           |                     t          |          t          t          d                               |                      g d          }|                     |d           d S rx   )r+   rr   rq   r,   rY   r/   s     r   test_from_listzBaseBytesTest.test_from_listp   s    NN4c

++,,Q%%%a$uSzz"2"2333NN999%%O,,,,,r   c                     G fdd          } |             |            g|                      t                    d            G fdd          } |            g|                      t                    d           d S )Nc                       e Zd Z fdZdS )0BaseBytesTest.test_from_mutating_list.<locals>.Xc                 0                                      dS Nr_   clearr    r8   s    r   r$   z:BaseBytesTest.test_from_mutating_list.<locals>.X.__index__{   s    			rr   Nr%   r&   r'   r$   r8   s   r   Xr~   z   s.              r   r   r`   c                       e Zd Z fdZdS )0BaseBytesTest.test_from_mutating_list.<locals>.Yc                 X    t                    dk     r                    |            dS )N  r_   )rY   appendr   s    r   r$   z:BaseBytesTest.test_from_mutating_list.<locals>.Y.__index__   s&    q66D==HHTNNNrr   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   s    	 	 	 	 	 	 	 	 	 	 QSS!!##Jq4(((	 	 	 	 	 	 	 	 	 	
 QSSEq;/////r   c                    |                      t                      t          d          t          d          t          d          g          }|                     t          |          g d           |                     t
          | j         t          d          g           |                     t
          | j         t          d          g           d S )NrC         r   rC   r   r   rO   r^   )r+   r   r,   rr   rZ   
ValueErrorr/   s     r   test_from_indexzBaseBytesTest.test_from_index   s    NNIKK1y~~%cNN, - -a"2"2"2333*dny}}oFFF*dny~~6FGGGGGr   c                 f   |                      t          j        dg d                    }|                     |d           |                      d          }|                     |d            G d dt                    }|                     |                       |d                    d           d S )NBrl   rp   c                       e Zd Zd ZdS ))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   s    NN5;sIII6677O,,,NN?++O,,,	  	  	  	  	  	  	  	  	)55yAAAAAr   c                 @   |                      |                     d          d           |                      |                     d          d           |                      |                     d          d           |                     t          | j        d           |                      |                     dd	          d
           |                      |                     d
          d
           |                     t          | j        t
          j        dz              d S )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00**G444**,CDDD*dnb999W55t<<<--t444-qIIIIIr   c                 0   |                      t          | j        d            G d d          }|                      t          | j        dg           |                      t          | j        dg           |                      t          | j        d g           |                      t          | j         |            g           |                      t          | j        d           |                      t          | j        d           |                      t          | j        d	d           |                      t          | j        d
d           |                      t          | j        d	d           |                      t          | j        d
d           |                      t          | j        d           |                      t          | j        dd           |                      t          | j        dd           |                      t          | j        ddd           d S )Ng        c                       e Zd ZdS )5BaseBytesTest.test_constructor_type_errors.<locals>.CNr%   r&   r'   r   r   r   Cr              Dr   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99	 	 	 	 	 	 	 	)T^cU;;;)T^cU;;;)T^dV<<<)T^aaccU;;;)T^gFFF)T^HEEE)T^Q@@@)T^S'BBB)T^QxHHH)T^SJJJ)T^R888)T^RIII)T^RBBB)T^R)LLLLLr   c                 8   |                      t          | j        dg           |                      t          | j        t          j         g           |                      t          | j        t          j         dz
  g           |                      t          | j        t          j         dz
  g           |                      t          | j        ddz   g           |                      t          | j        dg           |                      t          | j        dg           |                      t          | j        t          j        g           |                      t          | j        t          j        dz   g           |                      t          | j        ddz  g           d S )NrO   rC   rW   rK   rL   r^   i  )rZ   r   r+   rF   rG   r#   s    r   test_constructor_value_errorsz+BaseBytesTest.test_constructor_value_errors   sH   *dnrd;;;*dn|nEEE*dn|A~6FGGG*dn|A~6FGGG*dnCxjAAA*dnse<<<*dnse<<<*dns{mDDD*dns{1}oFFF*dnr3wi@@@@@r   c                     t           }|                     t          t          f| j        |           	 t          |dz
             d S # t          t          f$ r Y d S w xY w)N   )r   rZ   r   MemoryErrorr+   	bytearray)r    sizes     r   test_constructor_overflowz'BaseBytesTest.test_constructor_overflow   sl    =+6MMM	 dQh{+ 	 	 	DD	s   A AAc                 2    G d d          }|                      t          | j         |                       |                      t          | j         |            g            G d d          }|                      t          | j         |                       d S )Nc                       e Zd Zd ZdS )9BaseBytesTest.test_constructor_exceptions.<locals>.BadIntc                     ddz   d S 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dS )>BaseBytesTest.test_constructor_exceptions.<locals>.BadIterablec                     ddz   d S 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   s    	 	 	 	 	 	 	 	 	+T^VVXXFFF+T^ffhhZHHH	 	 	 	 	 	 	 	 	+T^[[]]KKKKKr   c                    |                      g d          }|                      g d          }|                      ddg          }|                     ||           |                     ||k               |                     ||k               |                     ||k               |                     ||k                |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k                |                     ||k                |                     ||k               d S )Nrl   rC   rm   )r+   r,   
assertTrueassertFalse)r    b1b2b3s       r   test_comparezBaseBytesTest.test_compare   s   ^^III&&^^III&&^^QF##R   b!!!b!!!b!!!b!!!b!!!b!!!b!!!r"""r"""r"""r"""r"""r"""r"""r"""""r   c                 N   |                      |                     d          dk    d           |                      |                     d          dk    d           |                      |                     d          dk    d           |                      |                     d          dk    d           |                      |                                 t                      k    d           |                      |                                 t                      k    d           d S )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5>FFF(@AAUJ!	# 	# 	#55>FFF(@AAUJ!	# 	# 	#))SUU2E:::))SUU2D99999r   c                     t          t          t          d                    }|                     |          }t          t	          |                    }|                                 |                     ||           d S )NHello)rr   mapordr+   reversedreverser,   )r    inputr0   outputs       r   test_reversedzBaseBytesTest.test_reversed  sf    Sg&&''NN5!!hqkk""'''''r   c                      f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	                                           |dd
          |d	                                           |dd          |d	                                           |dd          |d                     d S )Nc                 T                         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  s   	/ 	/ 	/ 	/ 	/B~2A27,,,1Q3F,,,1Q3D***1227,,,1R4""W++...1S522g;;///3B3G---3r6BBvJJ///2b522d88,,,233G---2b522g;;///2c6BBwKK00046BBwKK00000r   c                 :   t          t          d                    }|                     |          }dd ddddt          j        ddd	d
f}|D ]O}|D ]J}|dd          D ]=}|                     ||||         |                     ||||                              >KPd S )Nr   r   rC   rm      rL   rO   rR   r   )rr   rq   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 ] ]#ABBK ] ]D$$QuT$%7%PTUY/HZ9[9[\\\\]]	] 	]r   c           	         d}dD ]T}|                      ||          }|                     ||                      |                    |                               U|                     t          | j         |d           |                      |dd          }|                     ||                      |d d         d                     d S )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 	DCvs++AQv}}S/A/A B BCCCC,dnfiPPPNN69h77DNN6#2#;@@AAAAAr   c                 $   d}dD ]A}|                      ||          }|                     |                    |          |           Bd}|                      |d          }|                     t          |j        d           |                     |                    dd          d           |                     |                    dd          d           |                     |                      d	                                          d
           d S )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& 	4 	4Cvs++AQXXc]]F33330NN69--,ah@@@'844oFFFGDD(	* 	* 	* 	88??AA8LLLLLr   c                     d}d}t          j        d| j        j         d|d|d|d|d|d	|d
          }t	          ddd|          }|                     |j        d|           d S )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/  /  #/  /  /6/  /  DK/  / 2 +23/  / @ )0A/  / P @GQ/  /  /  / /` %T5$=="d+++++r   c                    |                      d          }|                     ||                                             |                      d          }|                     ||                      dgdz                       |                      d          }|                     ||                      dgdz                       d S )Nr   rK   i'  )r+   r,   r/   s     r   test_from_intzBaseBytesTest.test_from_intz  s    NN1DNN,,---NN2DNNA3r622333NN5!!DNNA3u95566666r   c                    |                      d          |                      d          |                     z   d           |                     t          d          z   d           |                     t          d          z   d           |                     t          fd           |                     t          fd           d S )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),,,eFmm+Y777v+Y777)%7%7%7%7888)%7%7%7%788888r   c                 n   d|                      d          fD ]|                     dz  d           |                     dz  d           |                     dz  d           |                     t          fd           |                     t          fd           |                     t          t
          f          5  t          j        z  }d d d            n# 1 swxY w Y   |                     t          t
          f          5  t          j        z  d d d            n# 1 swxY w Y   d S )	Nr  rm   	   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11QUC(((QVS)))i)9)9)9)9:::i)9)9)9)9:::""M;#?@@ $ $O$ $ $ $ $ $ $ $ $ $ $ $ $ $ $""M;#?@@ ! !S[ ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
	! 
	!s$   C  C$	'C$	D((D,	/D,	c                     |                      |                     d          dz  |                     t          d          gdz                       d S )N   xrL   x)r,   r+   r   r#   s    r   test_repeat_1charzBaseBytesTest.test_repeat_1char  sG    --c14>>3s88*S.3Q3QRRRRRr   c                 <   |                      d          |                     t          d                     |                     t          t          d                               |                     d           |                     t          fd           |                     t          fd           |                     t          fd           |                     t          fd           |                     t          fd           |                     t          fd	           t          t          fD ]X}|                      |d
                     |                      |d                     |                      |d                     |                      |d                     |                      |d                     |                      |d                     |                      |d                     |                      |d                     |                      |d                     |                      |d                     |                      |d                     Zd S )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    ck!mq.@ r   c                      d  v S r   r   r>   s   r   r?   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    TQY r   c                  @    t          t          d                     v S Nr8   )floatr   r>   s   r   r?   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    U3s88__-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+   rs   r   intassertNotInrZ   r   r   r   r   )r    fr0   s     @r   test_containszBaseBytesTest.test_contains  s}   NN6""c#hh"""c#c((mmQ'''a   *&6&6&6&6777*oooo666*&@&@&@&@AAA)%6%6%6%6777)%A%A%A%ABBB)%5%5%5%5666	! 	+ 	+AMM!!C&&!$$$MM!!D''1%%%MM!!D''1%%%MM!!D''1%%%MM!!E((A&&&MM!!E((A&&&MM!!F))Q'''QQuXXq)))QQtWWa(((QQvYY***QQvYY****	+ 	+r   c                 T   |                      t          | j        j                   |                      t          | j        j        d           |                     | j                            d          |                                            t          g d          }|                     | j                            d          |           |                     | j                            d          |           |                     | j                            d          |           dD ]B}|                     | j                            |          |                                            CdD ](}|                      t          | j        j        |           )|                     | j                            d	          d
           |                      t          | j        j        d           |                      t          | j        j        d           |                      t          | j        j        d           |                      t          | j        j        d           |                      t          | j        j        d           |                      t          | j        j        d           dD ]|\  }}|                      t                    5 }| j                            |           d d d            n# 1 swxY w Y   |                     d|z  t          |j	                             }d S )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 56rm   )z12 3x 56r   )z12 xy 56rm   )u	   12 3ÿ 56r   zat position %s)
rZ   r   r+   fromhexr,   r   r   rs   r   	exception)r    r0   r  dataposcms         r   test_fromhexzBaseBytesTest.test_fromhex  s   )T^%;<<<)T^%;Q???//33T^^5E5EFFF((())//991===//0@AA1EEE 	//@@!DDD+ 	J 	JAT^33A668H8HIIII= 	E 	EAj$.*@!DDDD//77AAA)T^%;UCCC*dn&<cBBB*dn&<dCCC*dn&<iHHH*dn&<fEEE*dn&<>NOOO	
 	E 	EID# "":.. -"&&t,,,- - - - - - - - - - - - - - -MM*S0#bl2C2CDDDD	E 	Es   
K11K5	8K5	c                 `   |                      t          | j        j                   |                      t          | j        j        d           |                     |                     d                                          d           |                     t          g d                                          d           |                     |                     d                                          d           |                     t          d                                          d           d S )NrC   r   r   r<  1a2b30   +0)rZ   r   r+   hexr,   r   
memoryviewr#   s    r   test_hexzBaseBytesTest.test_hex  s    )T^%7888)T^%7;;;,,0022B777#5#5#566::<<hGGG88<<>>IIIO4488::HEEEEEr   c                 

   |                      d          }|                     |                                d           |                     t                    5  |                    d           d d d            n# 1 swxY w Y   |                     t                    5  |                    d           d d d            n# 1 swxY w Y   |                     |                    dd          d           |                     t
                    5  |                    d d           d d d            n# 1 swxY w Y   |                     t                    5  |                    d           d d d            n# 1 swxY w Y   |                     t                    5  |                    d           d d d            n# 1 swxY w Y   |                     t                    5  |                    d	           d d d            n# 1 swxY w Y   |                     t                    5  |                    t          d
                     d d d            n# 1 swxY w Y   |                     |                    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          d           |                     |                    dd          d           |                     |                    dd          d           d}|                     |                    dd           d!           d S )"Ns   b901efr   xx:r      ÿ      r^   r   zb9 01 efrB     zb901efrm   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,   rL  rZ   r   r   chr)r    three_bytesr   s      r   test_hex_separator_basicsz'BaseBytesTest.test_hex_separator_basics  s    nn_55**H555z** 	  	 OOB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 z** 	" 	"OOD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"a00(;;;y)) 	% 	%OOD!$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%z** 	$ 	$OOF###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$z** 	% 	%OOG$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%z** 	% 	%OOG$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%z** 	( 	(OOCJJ'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(a00(;;;113CDDD002BCCC113CDDD002BCCCa00(;;;a00(;;;b118<<<--z:::..
;;;a00*===b11:>>>a00)<<<a00*===b119===c3**,qrrrrrs~   A::A>A>CCCD33D7:D7E::E>E>GGG&HHH-#II #I c                     |                      t          dd                    }|                     |                                d           d S )NZ   _   
5a5b5c5d5er+   rq   r,   rL  )r    
five_bytess     r   test_hex_separator_five_bytesz+BaseBytesTest.test_hex_separator_five_bytes  sA    ^^E"RLL11
))<88888r   c                    |                      d t          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d          d           |                     |                    dd          d           |                     |                    dd          d           d S )Nc              3       K   | ]	}|d z  V  
dS )rm   Nr   re   r#  s     r   rg   z=BaseBytesTest.test_hex_separator_six_bytes.<locals>.<genexpr>
  s&      "<"<11Q3"<"<"<"<"<"<r   rC   r   0306090c0f12r[  z03.06.09.0c.0f.12 rW   z0306 090c 0f12-rm   z030609-0c0f12rR  r   z0306:090c0f12r   z03:06090c0f12   rb  _r   030609_0c0f12rX  z0306090c:0f12   @r   z0306090c0f@12iird  )r    	six_bytess     r   test_hex_separator_six_bytesz*BaseBytesTest.test_hex_separator_six_bytes	  s    NN"<"<a"<"<"<<<	.999sA..0CDDDsA..0@AAAsA..@@@sA..@@@sA..@@@sA..???sB//@@@sB//AAAsB//AAAtR00/BBBsB//@@@sC00.AAAAAr   c                 d   |                      |                     d                              g           d           |                      |                     d                              dg          d           dgddgddgg dfD ]}t          t	          | j        |                    }|                      |                     d                              |          d           |                      |                     d                              t          |                    d           |                      |                     d                              t          |                    d           |                     d          j        }|                       |dd	g          d
           |                       |t          d          d	g          d
           |                       |dt          d	          g          d
           |                       |t          d          d	g          d
           |                       |dt          d	          g          d
           dgdz  }dddz  z   }|                       ||          |           dgdz  }ddz  }|                      |                     d                              |          |           | 	                    t          |                     d          j        d            | 	                    t                    5   |t          d          ddg           d d d            n# 1 swxY w Y   | 	                    t                    5   |t          d          ddg           d d d            d S # 1 swxY w Y   d S )Nr   r  r0  r4  r3  r2  )r0  r1  r2  s   .:s   cds   ab.:cdi s   .:abci     cds   ef)r,   r+   joinrr   r   rt   ru   rM  r   rZ   r   )r    lstdot_joinseqexpecteds        r   	test_joinzBaseBytesTest.test_join  s   ,,11"55s;;;,,113%88#>>>HtUmeT]<N<N<NO 	J 	JCs4>3//00CT^^C0055c::FCCCT^^C0055eCjjAA6JJJT^^C0055d3ii@@&IIII>>%((-5%.119===:e#4#4e"<==yIII5*U*;*;"<==yIII9U#3#3U";<<iHHH5)E*:*:";<<iHHHhHu,,#111hF?,,11#66AAA)T^^D%9%9%>EEE y)) 	6 	6Hi&&e4555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6y)) 	7 	7Hj''u5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s$   /MMM<N%%N),N)c                 ~   |                      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          d           |                     |                    |dd          d           d S )N   mississippii   p   w      ir      ssrW      wr   rm     prC   rm   r   	   )r+   r,   count)r    r0   rf   pws        r   
test_countzBaseBytesTest.test_count7  s   NN>*****+++***Q'''Q'''q))1---q))1---q!,,a000q!,,a000A***A***Aq))1---Aq))1-----r   c                 D   |                      d          }|                     |                                                      d                     |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     t
                    5 }|                    dg           d d d            n# 1 swxY w Y   t          |j                  }|                     d|           |                     d|           d S )	N   hello   anythings   hel   hs   hellows   har   rt   )	r+   r   
startswithr   rZ   r   r   rD  rs   r    r0   rG  excs       r   test_startswithzBaseBytesTest.test_startswithN  s   NN8$$))44[AABBBX..///V,,---T**+++i00111e,,---y)) 	!RLL$   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!",gs###gs#####s   2EEEc                 8   |                      d          }|                     t                                          d                     |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     t                    5 }|                    dg           d d d            n# 1 swxY w Y   t          |j                  }| 	                    d|           | 	                    d|           d S )	Nr  r  s   llo   os   whellos   nor   rt   )
r+   r   r   endswithr   rZ   r   r   rD  rs   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Ec                 @   |                      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t          j        d	z   fD ]$}|                     t          d|j        |           %d S )Nr}  r~  r  r  rW   r  rO      mississippianrC   rm   r   r   rm  r^   zbyte must be in range\(0, 256\))r+   r,   findrF   rG   assertRaisesRegexr   )r    r0   rf   r  indexs        r   	test_findzBaseBytesTest.test_findj  s   NN>*****r*** 0112666A&&&B'''q))1---q!,,a000q!,,b1111q)))1a!,,,1a"---#s{Q/ 	 	E"">   	 	r   c                 ~   |                      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 S )Nr}  r~  r  r  r   r  rO   r  rK   rm   r   rm  rW   rC   r  r   )r+   r,   rfindr    r0   rf   r  s       r   
test_rfindzBaseBytesTest.test_rfind  s   NN>**++++++!122B777R(((R(((**A...1--q111Aq))1---Aq))1---Aq))2.....r   c                    |                      d          }d}d}|                     |                    d          d           |                     t          |j        d           |                     t          |j        d           |                     |                    |          d           |                     t          |j        |           |                     |                    dd	          d
           |                     |                    ddd          d           |                     t          |j        ddd	           |                     |                    |d          d           |                     |                    |dd	          d           |                     t          |j        |dd	           d S )Nr}  r~  r  r  rW   r  r  rC   rm   r   r   rm  )r+   r,   r  rZ   r   r  s       r   
test_indexzBaseBytesTest.test_index  s   NN>**+++*agt444*ag/?@@@Q'''*agq111**A...1--q111*agua;;;A***Aq))1---*agq!Q77777r   c                 >   |                      d          }d}d}|                     |                    d          d           |                     t          |j        d           |                     t          |j        d           |                     |                    |          d           |                     t          |j        |           |                     |                    dd	          d           |                     |                    dd
d          d           |                     |                    |dd	          d           |                     |                    |d	d          d           |                     t          |j        |dd	           d S )Nr}  r~  r  r  r   r  r  rK   rm   r   rm  rW   rC   r  r   )r+   r,   rindexrZ   r   r  s       r   test_rindexzBaseBytesTest.test_rindex  sf   NN>**%!,,,*ah555*ah0@AAA!b)))*ah222%++Q///%A..222!Q**A...!Q**A...*ah1a88888r   c                 D                          d          }|}|dz  }                     |d                                |d                                ||u                                  d          }|dz  }                     |d                                t	          |           j                                          d          }|dz  }                     |d                                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#           d S )$N
   hello, %b!   world   hello, world!   %s / 100 = %d%%s   seventy-nineO      seventy-nine / 100 = 79%
   hello, %b!   hello, world!c                                          |           }||z  }                    ||                               t          |          j                    d S r   )r+   r,   assertIsr-   )fmtvalsresultr0   r    s       r   checkz%BaseBytesTest.test_mod.<locals>.check  sU    s##ADAQ'''MM$q''4>2222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   rm   r  s   %i %*.*b)rK   r   rm   r  s   10   abcs
   %i%b %*.*b)rK      3r   rm   r  s	   103   abc   %cr0  r+   r,   r   r  r-   )r    r0   origr8   r  s   `    r   test_modzBaseBytesTest.test_mod  s   NN=))L,---}---d###NN-..%%7888d1ggt~...NN+,,L/000d1ggt~...	3 	3 	3 	3 	3 	>>> F6"B"BLQQQc : :LIIIflH---fmX...h222h222k.<<<m6EEEeT4     r   c                 $   |                      d          }|}|dz  }|                     |d           |                     |d           |                     ||u            |                      d          }|dz  }|                     |d           |                     t	          |          | j                    |                      d          }|dz  }|                     |d           |                     t	          |          | j                    d S )	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88d1ggt~...NN+,,	X/000d1ggt~.....r   c                 4   |                      t                    5  t                      |                     d          z   d d d            n# 1 swxY w Y   |                     |                     d                              d          t                     d S )Nr  z%r)rZ   r   objectr+   r  __rmod__NotImplementedr#   s    r   	test_rmodzBaseBytesTest.test_rmod  s    y)) 	. 	.HHt~~f----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.dnnV,,55d;;^LLLLLs   %AAAc                     |                      d          }|                     |                    dd          d           |                     |                    dd          d           d S )Nr}  r  r0  s   massassappar  r"  s	   mixixippi)r+   r,   replacer/   s     r   test_replacezBaseBytesTest.test_replace  sa    NN>**4..???5$//>>>>>r   c                 p    |                      t          |                     d          j        dd           d S )N   a b    r   )rZ   r   r+   r  r#   s    r   test_replace_int_errorz$BaseBytesTest.test_replace_int_error  s1    )T^^F%;%;%CRMMMMMr   c                     |                      t          |                     d          j        d           |                      t          |                     d          j        d           d S Nr  rk  rZ   r   r+   splitrsplitr#   s    r   test_split_string_errorz%BaseBytesTest.test_split_string_error  sV    )T^^F%;%;%A3GGG)T^^F%;%;%BCHHHHHr   c                     |                      t          |                     d          j        d           |                      t          |                     d          j        d           d S Nr  r  r  r#   s    r   test_split_int_errorz"BaseBytesTest.test_split_int_error  sV    )T^^F%;%;%A2FFF)T^^F%;%;%BBGGGGGr   c                    dD ]@}|                      |          }|                     |                                |g           A|                      d          }|                     |                                dg           d S )N)s   abs   abs   abs   ab	   	
   )r+   r,   r  r/   s     r   test_split_unicodewhitespacez*BaseBytesTest.test_split_unicodewhitespace  s    = 	- 	-Aq!!AQWWYY,,,,NNBCC%8$9:::::r   c                     |                      d          }|                     |                                dg           d S )Nr  r  )r+   r,   r  r/   s     r   test_rsplit_unicodewhitespacez+BaseBytesTest.test_rsplit_unicodewhitespace  s<    NNBCC&9%:;;;;;r   c                     |                      d          }|                     |                    d          d           |                     |                    d          d           d S )Nr}  r  )s   mir  s   issippir  )r}  r   r   )r+   r,   	partitionr/   s     r   test_partitionzBaseBytesTest.test_partition  s_    NN>**U++-GHHHT**,FGGGGGr   c                 &   |                      d          }|                     |                    d          d           |                     |                    d          d           |                     |                    d          d           d S )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IId++-GHHHd++-GHHHHHr   c                     |                      t          |                     d          j        d           |                      t          |                     d          j        d           d S r  rZ   r   r+   r  r  r#   s    r   test_partition_string_errorz)BaseBytesTest.test_partition_string_error  sV    )T^^F%;%;%EsKKK)T^^F%;%;%FLLLLLr   c                     |                      t          |                     d          j        d           |                      t          |                     d          j        d           d S r  r  r#   s    r   test_partition_int_errorz&BaseBytesTest.test_partition_int_error   sV    )T^^F%;%;%ErJJJ)T^^F%;%;%FKKKKKr   c                     t          t          j        dz             D ][}dD ]V}|                     |          }t          j        ||          }t          j        |          }|                     ||           W\d S NrC   )r   r0  r  s   abs       )rq   pickleHIGHEST_PROTOCOLr+   dumpsloadsr,   )r    protor0   psqs        r   test_picklingzBaseBytesTest.test_pickling$  s    62Q677 	' 	'EF ' 'NN1%%\!U++L$$  A&&&&	'	' 	'r   c                    t          t          j        dz             D ]F}dD ]?}t          |                     |                    x}}t          |                     |                    }t          j        ||          }t          j        |          }|                     t          |          t          |                     |                     t          |          |           t          j        |          }|st          |           t          j        ||          }t          j        |          }|                     t          |          |dd                     AHd S r  )rq   r  r  ru   r+   rr   r  r  r,   r-   next)r    r  r0   ititorgrE  ds          r   test_iterator_picklingz$BaseBytesTest.test_iterator_pickling,  s:   62Q677 	5 	5EF 5 5!$.."3"3444UDNN1--..LU++\!__  ed2hh777  b4000\!__ RLU++\!__  b4844445	5 	5r   c                    |                      |                     d                              t          d                    d           |                      |                     d                              t          d                    d           |                      |                     d                              t          d                    d           d S )Nr  r5  r1  r4  r3  )r,   r+   striprM  lstriprstripr#   s    r   test_strip_bytearrayz"BaseBytesTest.test_strip_bytearray>  s    //55j6G6GHH$OOO//66z%7H7HII5QQQ//66z%7H7HII5QQQQQr   c                 >   |                      t          |                     d          j        d           |                      t          |                     d          j        d           |                      t          |                     d          j        d           d S )Nr  acrZ   r   r+   r  r  r  r#   s    r   test_strip_string_errorz%BaseBytesTest.test_strip_string_errorC  s}    )T^^F%;%;%A4HHH)T^^F%;%;%BDIII)T^^F%;%;%BDIIIIIr   c                 >   |                      t          |                     d          j        d           |                      t          |                     d          j        d           |                      t          |                     d          j        d           d S )Ns    abc r  r  r#   s    r   test_strip_int_errorz"BaseBytesTest.test_strip_int_errorH  s}    )T^^H%=%=%CRHHH)T^^H%=%=%DbIII)T^^H%=%=%DbIIIIIr   c           	          |                      d          }t          t          fD ]H}|                     |                    d |d                    |                      d                     Id S )Nr  r      -s   --abc--)r+   r   r   r,   centerr    r0   	fill_types      r   test_centerzBaseBytesTest.test_centerM  su    NN6""+ 	9 	9IQXXa499!^^J779 9 9 9	9 	9r   c           	          |                      d          }t          t          fD ]H}|                     |                    d |d                    |                      d                     Id S )Nr  r   r   s   abc----)r+   r   r   r,   ljustr  s      r   
test_ljustzBaseBytesTest.test_ljustT  u    NN6""+ 	9 	9IQWWQ		$88!^^J779 9 9 9	9 	9r   c           	          |                      d          }t          t          fD ]H}|                     |                    d |d                    |                      d                     Id S )Nr  r   r   s   ----abc)r+   r   r   r,   rjustr  s      r   
test_rjustzBaseBytesTest.test_rjust[  r  r   c                 D   |                      t          |                     d          j        dd           |                      t          |                     d          j        dd           |                      t          |                     d          j        dd           d S )Nr  r   r  )rZ   r   r+   r  r  r
  r#   s    r   test_xjust_int_errorz"BaseBytesTest.test_xjust_int_errorb  s    )T^^F%;%;%BArJJJ)T^^F%;%;%A1bIII)T^^F%;%;%A1bIIIIIr   c                     |                      d          |                     fdt          t                              D             g d           d S )Ns    Ac                 D    g | ]}t          ||d z                      S rC   )r   )re   rf   r0   s     r   
<listcomp>z*BaseBytesTest.test_ord.<locals>.<listcomp>i  s+    ???A#a!A#h--???r   )r   A      rh   r   )r+   r,   rq   rY   r/   s    @r   test_ordzBaseBytesTest.test_ordg  sc    NN-..????s1vv???///	1 	1 	1 	1 	1r   c                 f   d}|                      | j                            dd          |           d}|                      | j                            dd          |           |                     t          | j        j        dd           |                     t
          | j        j        dd           d S )	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A:NNN u
11/6JJJWWW*dn&>PPP)T^%=ueLLLLLr   c                 2
   |                      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                      |                     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d                      |                     d|                    |d d                     |                     d|                    |d d                      |                     d|                    |d                      |                     d|                    |dd                      |                     d|                    |d d                     |                     d|                    |d d                      d S )Nr     lr  r"  r  rW   rm   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  su   NN8$$NN4  NN4  NN4  NN4  AFF1dOO,,,AFF1b$//000AFF1dB//000AFF1dD11222AGGAt,,---AGGAr400111AGGAtR00111AGGAtT22333AGGAt,,---AGGAr400111AGGAtR00111AGGAtT22333AHHQ--...AHHQD11222AHHQb11222AHHQd33444AGGAt,,---AGGAr400111AGGAtR00111AGGAtT22333qzz!T22333qzz!R66777qzz!T266777

1dD 9 9:::q||At44555q||Ar488999q||AtR88999Qd ; ;<<<<<r   c                    |                      d          }|j        |j        |j        |j        |j        fD ]V}|                     t          |d           |                     t          |d           |                     t          |d           Wd S )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  s    NN8$$w!(C 	8 	8Fj&"555j&#666j&$7777	8 	8r   c           	      `   |                      d          }|                      d          }|                     t          d|j        |d d d            |                     t          d|j        |d d d            |                     t          d|j        |d d d            |                     t          d|j        |d d d            |                     t          d|j        |d d d            |                     t          d|j        |d d d            |                     t          d	|j	        |d d d            d S )
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  sN   NN8$$NN4  y+qv !4t	5 	5 	5y, !4t	5 	5 	5y, !4t	5 	5 	5y- !4t	5 	5 	5y, !4t	5 	5 	5y*;Q\ !4t	5 	5 	5y/1: !4t	5 	5 	5 	5 	5r   c                     t           j                            | t          | j                   t           j                            | t
          | j                   d S r   )testsupportcheck_free_after_iteratingru   r+   r   r#   s    r   test_free_after_iteratingz'BaseBytesTest.test_free_after_iterating  s@    //dDNKKK//hOOOOOr   c           	         |                      d          }t          t          d                    }t          d          |t          d          <   |                     t
          |j                   |                     t
          |j        d d            |                     t          |j        t          t          d                               |                    |d          }| 	                    |d           | 
                    || j                    |                    |          }|                    |d          }| 	                    ||           | 	                    |d           |                    |d          }| 	                    |d	           |                    d d
          }| 	                    |d           |                    |d          }| 	                    |d           |                    |d          }| 	                    |d	           |                    d d
          }| 	                    |d           d S )Nr  r^   er  r   r   s   heller  s   hee   es   hllo)delete)r+   r   rq   r   rZ   r   	translater   r   r,   assertIsInstance)r    r0   rosettar  r  s        r   test_translatezBaseBytesTest.test_translate  s   NN8$$E#JJ''HHC)Q[111)Q[$===*ak5s3D3DEEEKK**H%%%a000KK  KK%%AH%%%KK&&F###KKd##G$$$ KKK,,H%%%KKK--F###KKTK**G$$$$$r   c                    t          j        d          }|                     d          }|                     t                    5  |                    |d           d d d            n# 1 swxY w Y   |                     t                    5  |                    |d           d d d            n# 1 swxY w Y   |                     |                    |d          d           d S )N	_testcapi)r_   rR   rC   r   r_   )r   import_moduler+   rZ   r[   sequence_getitemr,   )r    r3  objs      r   test_sq_itemzBaseBytesTest.test_sq_item  sM   !/<<	nnU##z** 	0 	0&&sB///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0z** 	/ 	/&&sA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/33C;;R@@@@@s$   A''A+.A+B//B36B3N)Kr%   r&   r'   r1   r:   r\   rv   ry   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r$  r:  rH  rN  r_  rf  rr  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)  r1  r7  r   r   r   r)   r)   /   s       6 6 6
/ / /; ; ;- - -8- - -- - -0 0 0"H H HB B BJ J JM M M&
A 
A 
A   L L L# # #. : : :( ( (1 1 1(	] 	] 	]B B BM M M6, 6, 6,p7 7 79 9 9! ! !S S S+ + +0#E #E #EJF F F#s #s #sJ9 9 9B B B 7 7 7<. . ..$ $ $$ $ $  2/ / /&8 8 8(9 9 9&!! !! !!F/ / /"M M M
? ? ?
N N NI I IH H H; ; ;< < <H H H
I I IM M ML L L' ' '5 5 5$R R R
J J J
J J J
9 9 99 9 99 9 9J J J
1 1 1
M M M)= )= )=V8 8 85 5 5&P P P% % %>A A A A Ar   r)   c                   <    e Zd ZeZd Zd Zd Zd Zd Z	d Z
d ZdS )		BytesTestc                    d}|                      |                                |           |                      t          |                                          | j                    G d dt                    } |d          }|                      |                                |           |                      t          |                                          | j                   d S )Ns   foo barc                       e Zd ZdS )/BytesTest.test__bytes__.<locals>.bytes_subclassNr   r   r   r   bytes_subclassr<    r   r   r=  s   bar foo)r,   	__bytes__r-   r+   r   )r    foor=  bars       r   test__bytes__zBytesTest.test__bytes__  s    #...cmmoo..???	 	 	 	 	U 	 	 	 n]++#...cmmoo..?????r   c                     d}d}|                      t          |          5  |d          d d d            d S # 1 swxY w Y   d S )N   pythonz'byte indices must be integers or slicesr8   )r  r   r    r0   msgs      r   test_getitem_errorzBytesTest.test_getitem_error  s    7##Is33 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	6::c                     t          j        t          t           j                  }t          |dd          5 }|                     t
          |j        d           d d d            d S # 1 swxY w Y   d S )Nrbr   )	bufferingr   )osopen__file__O_RDONLYrZ   r   readinto)r    fdr9  s      r   test_buffer_is_readonlyz!BytesTest.test_buffer_is_readonly  s    WXr{++"da((( 	:AiS999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   "A&&A*-A*c                 P    G d d          }|                      t           |                      d            G d d          }|                     t          t           |                        G d d          }|                     t          t           |                        G d d          }|                      t           |                      d            G d dt                    }|                      t           |d	                    d           |                      t           |d	          d
          d            G d d          }|                      t           |                      d           |                     t          t           |                                t                     |                      t           |                      d           |                     t          t           |                                t                     d S )Nc                       e Zd Zd ZdS ) BytesTest.test_custom.<locals>.Ac                     dS Nr  r   r#   s    r   r>  z*BytesTest.test_custom.<locals>.A.__bytes__      vr   Nr%   r&   r'   r>  r   r   r   ArS    #            r   rX  r  c                       e Zd ZdS )rS  Nr   r   r   r   rX  z BytesTest.test_custom.<locals>.A  s          r   c                       e Zd Zd ZdS )rS  c                     d S r   r   r#   s    r   r>  z*BytesTest.test_custom.<locals>.A.__bytes__	      tr   NrW  r   r   r   rX  z BytesTest.test_custom.<locals>.A  s#            r   c                       e Zd Zd Zd ZdS )rS  c                     dS )Nr0  r   r#   s    r   r>  z*BytesTest.test_custom.<locals>.A.__bytes__  r]  r   c                     dS r   r   r#   s    r   r$   z*BytesTest.test_custom.<locals>.A.__index__  s    rr   N)r%   r&   r'   r>  r$   r   r   r   rX  z BytesTest.test_custom.<locals>.A  s2              r   r0  c                       e Zd Zd ZdS )rS  c                     dS rU  r   r#   s    r   r>  z*BytesTest.test_custom.<locals>.A.__bytes__  rV  r   NrW  r   r   r   rX  z BytesTest.test_custom.<locals>.A  rY  r   u   €z
iso8859-15   c                       e Zd Zd ZdS )rS  c                      t          d          S rU  )OtherBytesSubclassr#   s    r   r>  z*BytesTest.test_custom.<locals>.A.__bytes__  s    )&111r   NrW  r   r   r   rX  z BytesTest.test_custom.<locals>.A  s#        2 2 2 2 2r   )	r,   r   rZ   r   r   r  r-   rf  BytesSubclass)r    rX  s     r   test_customzBytesTest.test_custom  sT   	 	 	 	 	 	 	 	 	qqssV,,,)UAACC000	 	 	 	 	 	 	 	 	)UAACC000	 	 	 	 	 	 	 	
 	qqssT***	 	 	 	 	 	 	 	 	qq{{++V444qq{{L997CCC	2 	2 	2 	2 	2 	2 	2 	2 	qqssV,,,d5::&&(:;;;qqss++V444d=--..>>>>>r   c                 ,   t          j        d          }t          j        d          }ddlm}m} ddlm}m}m}m}m	}	m
}
m} |j        }|f|_        ||_        |                      |d          d           |                      |dd          d	           |                      |d
 |d                    d           |                      |d
 |t!          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$           |                    |          }t$          j        d%k    rd&                    d|z            fd'}nd( }d)}|                      |d* ||                    d+ ||          z                       d,                     |                      |d- |d.                    d/            |	d          j        }d0||j        t0          fd0||j        t0          fd1||j        t0          fd1||j        t0          fd2||j        t0          fd3|
|j        t0          fd3|
|j        t0          fd4|	|t0          fd5|||ff	D ]M\  }}}}|                      || ||                     ||                              d,                    f N|                      |d6d7          d7           |                      |d8d9          d:           |                      |d;          d<           |                      |d=          d>           |                      |d? |t!          d@                              dA           |                      |dB          dC           |                      |d<          d<           |                      |dD |d           |d                    dE           |                     t@          |dF |d                     |                     t@          |dF |dG                     |                      |dH          dH           |                      |dCdH          dH           d S )INctypesr3  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   rm   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   )rw  s    r   ry  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   %5sr0  s   %.3sr  r  s   %%   %s   [%%]s   [%]s   %%%crn  s   %_s   %%ss   %ss   x=%i y=%s   x=2 y=%r  r^   r   )!r   r4  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  PyBytes_FromFormatargtypesrestyper,   r   sizeofrJ  nameformatr   r   INT_MINr   INT_MAXLONG_MINLONG_MAX	ULONG_MAXPY_SSIZE_T_MINPY_SSIZE_T_MAXrZ   r   )r    rj  r3  rk  rl  rm  rn  ro  rp  rq  rr  rs  r|  
sizeof_ptrry  rw  size_max	formatstrctypes_typer   py_formatterrx  s                        @r   test_from_formatzBytesTest.test_from_format"  sa   ,X66!/<<	////////	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 '9'/k#%." 	++I66"	$ 	$ 	$++M8DD)	+ 	+ 	+ 	++GUU1XX>> 	" 	" 	"++GUU3s88__EE	! 	! 	!++GUU3ZZ@@"	$ 	$ 	$++,A,1E!HHffQii,4HQKK9 9 *	+ 	+ 	+ 	++,A,1E"IIvvbzz,4HRLL: : -	. 	. 	. 	++,A,2F3KK,4HSMM; ; 0	1 	1 	1 	++GUU3ZZ@@!	# 	# 	#++GUU4[[AA"	$ 	$ 	$++GUU5\\BB!	# 	# 	# ]]8,,
7d??"))!j.99J* * * * * *# # # ++Ixx}}EE ==#5#55==gFF	H 	H 	H++GXXg5F5FGG"	$ 	$ 	$ 8B<<%E9,c2E9,c2VY/5VY/5Wi137Y	 8#>Y	 8#>Xx-Hh6
<
 	C 	C7I{E< //	;;u;M;MNN)\%0077@@B B C C C 	++FD99	 	 	++GY??	! 	! 	! 	++E22	 	 	++G44	! 	! 	!++GUU3s88__EE	  	  	 ++F33	  	  	  	++D114888++Kq5588LL#	% 	% 	%
 	-,eUU2YY	@ 	@ 	@-,eUU3ZZ	A 	A 	A 	++C00	 	 	++E377	 	 	 	 	r   c                 0    G d dt                     }g d}|                     t          |          d           |                     t          t           ||                      G d dt
                    }|                     t          d          d           |                     t          t           |d                      G d	 d
t                    }|                     t          d          d           |                     t          t           |d                      G d dt                    }t          d           |d          }}|                     t          |          d           |                     t          t          |           d S )Nc                       e Zd ZdZdS )7BytesTest.test_bytes_blocking.<locals>.IterationBlockedNrW  r   r   r   IterationBlockedr            IIIr   r  )r   rC   rW   rm   s    c                       e Zd ZdZdS )1BytesTest.test_bytes_blocking.<locals>.IntBlockedNrW  r   r   r   
IntBlockedr    r  r   r  rm   s      c                       e Zd ZdZdS );BytesTest.test_bytes_blocking.<locals>.BytesSubclassBlockedNrW  r   r   r   BytesSubclassBlockedr    r  r   r  r3  c                       e Zd ZdZdS )4BytesTest.test_bytes_blocking.<locals>.BufferBlockedNrW  r   r   r   BufferBlockedr    r  r   r  )rr   r,   r   rZ   r   r7  r   )r    r  rf   r  r  r  babbs           r   test_bytes_blockingzBytesTest.test_bytes_blocking  s   	 	 	 	 	t 	 	 	LLq#6777)U,<,<Q,?,?@@@
	 	 	 	 	 	 	 	q9---)UJJqMM:::	 	 	 	 	5 	 	 	uu---)U,@,@,G,GHHH	 	 	 	 	I 	 	 	5!!==#7#7BrE***)UB/////r   c                 f   d}d}|                      t          |          t          |                     |                     t          |          t          |                     |                     t          |          t          |dz                       |                     t          |          t          |dz                       |                      t          |          t          |dz                       |                      t          |          t          d|z                       |                     t          |          t          |dz                        G d dt                    } |d	          }|                      t          |          t          |                     |                     t          |          t          |dz                       |                     t          |          t          |dz                       |                     t          |          t          |dz                       |                     t          |          t          d|z                       |                     t          |          t          |dz                       d S )
Ns   123abc1@s   456zyx-+rX  r   rC   rW   c                       e Zd ZdS )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&&&BqEE2a55)))BqEE2a"f::...BqEE2a!e99---A1q5		***A1q5		***BqEE2a!e99---	 	 	 	 	u 	 	 	 H[!!A1&&&BqEE2a"f::...BqEE2a!e99---BqEE2a!e99---BqEE2a!e99---BqEE2a!e99-----r   N)r%   r&   r'   r   r+   rA  rF  rP  rh  r  r  r  r   r   r   r9  r9    s        I
@ 
@ 
@  : : :
? ? ?Bp p pd0 0 0<. . . . .r   r9  c                   *   e Zd ZeZd Zd Zd Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Z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#j$        j%        d             Z&d  Z'e#j(        j)        j*        Z*d! Z+d" Z,d# Z-d$S )%ByteArrayTestc                     t          d          }d}|                     t          |          5  |d          d d d            d S # 1 swxY w Y   d S )NrC  ,bytearray indices must be integers or slicesr8   r   r  r   rD  s      r   rF  z ByteArrayTest.test_getitem_error  s    i  <##Is33 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	AA
Ac                     t          d          }d}|                     t          |          5  d|d<   d d d            d S # 1 swxY w Y   d S )NrC  r  pythonr8   r  rD  s      r   test_setitem_errorz ByteArrayTest.test_setitem_error  s    i  <##Is33 	 	AcF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A  AAc                 `    |                      t          t          t                                 d S r   )rZ   r   hashr   r#   s    r   test_nohashzByteArrayTest.test_nohash  s$    )T9;;77777r   c                    d}|ddt          |          z
  z  z   }t          j                    }	 t          |d          5 }|                    |           d d d            n# 1 swxY w Y   t          |d          5 }t          d          }|                    |          }d d d            n# 1 swxY w Y   |                     |t          |                     |                     t          |          t          |                     t          |d          5 }|                    |           d d d            n# 1 swxY w Y   t          |d          5 }|                     |	                                |           d d d            n# 1 swxY w Y   	 t          j        |           d S # t          $ r Y d S w xY w# 	 t          j        |           w # t          $ r Y w w xY wxY w)Ns   Hello world
r      wbrH  )rY   tempfilemktemprK  writer   rN  r,   rr   readrJ  removeOSError)r    short_sampler   tfnr9  r0   ns          r   test_bytearray_apiz ByteArrayTest.test_bytearray_api  s   'rC,=,='= >>o	c4 &A%%%& & & & & & & & & & & & & & & c4 "AbMMJJqMM" " " " " " " " " " " " " " " QL 1 1222T!WWd6ll333c4 A


              c4 3A  62223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	#   	#   s   G  A!G  !A%%G  (A%)G  <%B-!G  -B11G  4B15A&G  D=1G  =EG  EG  )FG  FG  FG  F/ /
F=<F= G'GG'
G$!G'#G$$G'c                    t          d          }|                     |                                d            |                     |d           t          d          }|                                 |                     |d           t                      }|                                 |                     |           d S )Nr  s   ollehs   hello1s   1olleh)r   r,   r   r   r/   s     r   test_reversezByteArrayTest.test_reverse  s    hd+++H%%%i  			I&&&KK			r   c                    t          d          }|                                 |                     |d           t          d          }|                                 |                     |d           t          d          }|                    t	          d                     |                                 |                    t	          d                     |                     |d           d S )NrC  r   rr  r  )r   r   r,   r   r   r/   s     r   
test_clearzByteArrayTest.test_clear   s    i  				C   cNN				C   cNN	S					SD!!!!!r   c                 $   t          d          }|                                }|                     |d           t          d          }|                                }|                     |d           t          d          }|                                }|                     ||           |                     ||           |                    t          d                     |                     |d           |                     |d           d S )Nr  r   r  r4   )r   r5   r,   assertIsNotr   r   )r    r0   r  s      r   r:   zByteArrayTest.test_copy  s    fVVXXV$$$cNNVVXXS!!! fVVXXBB
		#c((W%%%F#####r   c                     d } |d          }|                      t          j        d|           |d           |d          g           d S )Nc                 F    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!  s]    	* 	* 	*B~GQ//""W++rr'{{1KLLLLLr   c                    t          g d          }d|d<   |                     |t          g d                     d|d<   |                     |t          g d                     t          d          |d	<   |                     |t          g d
                     	 d	|d<   |                     d           n# t          $ r Y nw xY w	 d	|d<   |                     d           n# t          $ r Y nw xY w	 d|d	<   |                     d           n# t
          $ r Y nw xY w	 t          d          |d	<   |                     d           n# t
          $ r Y nw xY w	 d |d	<   |                     d           d S # t          $ r Y d S w xY w)Nrl   rL   rC   )rC   rL   rm   r&  rO   )rC   rL   r&  rK   r   )rK   rL   r&  rm   zDidn't raise IndexErrorir^   zDidn't raise ValueErrorzDidn't raise TypeError)r   r,   r   failr[   r   r   r/   s     r   test_setitemzByteArrayTest.test_setitem'  s   iii  !Ikkk22333"Immm44555}}!Innn55666	AaDII/0000 	 	 	D		AcFII/0000 	 	 	D		AaDII/0000 	 	 	D		R==AaDII/0000 	 	 	D		AaDII.///// 	 	 	DD	sZ   B9 9
CC
C% %
C21C26D 
DD"'E
 

EEE7 7
FFc           	      ^   t          t          d                    }|d= |                     |t          t          dd                               |d= |                     |t          t          dd                               |d= |                     |t          g d                     d S )NrK   r   rC   rO   r  r   )rC   rW   rm   r   rm  r   r\  )r   rq   r,   r/   s     r   test_delitemzByteArrayTest.test_delitemI  s    eBii  aDIeArll33444bEIeAqkk22333aDI&;&;&;<<=====r   c           	         t          t          d                    }|                     t          |          t          t          d                               t          g d          |dd<   |                     |t          g d                     |dd= |                     |t          g d                     t          g d          |dd<   |                     |t          t          d                               t          d	d
g          |dd<   |                     |t          g d                     g d|dd<   |                     |t          t          d                               g d|dd<   |                     |t          g d                     d|dd <   |                     |t          g d                     t	          d          |d d<   |                     |t          g d                     g |dd<   |                     |t          g d                     dddt          d          ddddgddgg gf	D ];}|                     t                    5  ||dd<   d d d            n# 1 swxY w Y   <g ddd gfD ];}|                     t                    5  ||dd<   d d d            n# 1 swxY w Y   <d S )!NrK   )rC   rC   rC   rC   rC   r   r   )
rC   rC   rC   rC   rC   r   rm  r   r\  r  r   )r   rm  r   r\  r  )r   rC   rW   rm   r   rL   e   r   r   )r   rC   rW   rL   r  r   r\  r  )rm   r   r   rm  rm   )r_   r_   r_   )r   rC   rW   r_   r_   r_   rm   r   r   rm  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   r0  r1  )r   r   r^   i i(#  )	r   rq   r,   rr   rM  r7  rZ   r   r   )r    r0   elems      r   test_setslicezByteArrayTest.test_setsliceR  sw   eBii  a$uRyy//222???++!A#I&D&D&DEEFFFadGIooo66777???++!A#IeBii00111c3Z(("R%I&B&B&BCCDDD!A#IeBii00111!A#I&P&P&PQQRRR!""I&>&>&>??@@@6"""1"I&D&D&DEEFFF!A#I&?&?&?@@AAAAs5zz5#3Z$t5 	 	D""9--  !A#               %__tTl3 	 	D"":..  !A#              	 	s$   1JJ		J		5K		K	K	c           	          t          t          d                    }|                     t          |          t          t          d                               |d d= |                     t          |          t          t          dd                               |                    t          dd                     |                     t          |          t          t          dd                               d S )NrL   rK   n   )r   rq   r,   rr   extendr/   s     r   test_setslice_extendz"ByteArrayTest.test_setslice_extendz  s    eCjj!!a$uSzz"2"2333crcFa$uR~~"6"6777	sC!!!a$uR~~"6"677777r   c                 |    t          d          }|                                 |d d= |t          d          z  }~d S )NrK   rC   rW   )r   popr   r/   s     r   test_fifo_overrunzByteArrayTest.test_fifo_overrun  s=     bMM	bqbE	U1XXAAr   c                     t          d          }t          j        |          }|d d= |                     t          j        |          |           d S )NrK   rC   )r   rF   	getsizeofassertLessEqual)r    r0   r   s      r   test_del_expandzByteArrayTest.test_del_expand  sM    bMM}QbqbES]1--t4444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	          |          }||||         }|                                 |||||<   |||||<   |                     |t	          |                     ||||= ||||= |                     |t	          |                     d S )Nr   rC   rm   r   r(  iM  rO   rR   r   ir   )rF   rG   rr   rq   r   r   r,   )r    r   r   r   r   r   r0   rE  s           r   test_extended_set_del_slicez)ByteArrayTest.test_extended_set_del_slice  s&   dAq"c1c63;C 	6 	6E 6 6#ABBK 6 6DU3ZZ((A!!A U4_-DLLNNN)-AeDo&)-AeDo&$$Q	!555%T/*%T/*$$Q	!555566	6 	6r   c                     t          t          d                    }||dd <   |                     |t          t          t          d                    t          t          d                    z                        d S )Nr^   r\  )r   rq   r,   rr   r/   s     r   test_setslice_trapz ByteArrayTest.test_setslice_trap  sg     eCjj!!!""Id588nntE#JJ7G7G&GHHIIIIIr   c                 D   t          d          }|}|dz  }|                     |d           |                     ||           |                     ||           |dz  }|                     |d           	 |dz  }|                     d           d S # t          $ r Y d S 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?@@@@@  	 	 	DD	s   5B 
BBc                     t          d          }|}|dz  }|                     |d           |                     ||           |                     ||           d S )Nr  rm   r  r   r,   r  r  s      r   test_irepeatzByteArrayTest.test_irepeat  sc    f	QL)))Bar   c                     t          d          }|}|dz  }|                     |d           |                     ||           |                     ||           d S )Nr"  rL   sd   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr  r  s      r   test_irepeat_1charz ByteArrayTest.test_irepeat_1char  sa    dOO	SH%%%Bar   c                 J   t                      }|                                }|                     |d           |g}t          d          D ]W}|dz  }|                                }|                     |t          |                     ||vr|                    |           Xd S )Nr   rL   r"  )r   	__alloc__assertGreaterEqualrq   assertGreaterrY   r   )r    r0   allocry  rf   s        r   
test_alloczByteArrayTest.test_alloc  s    KKq)))gs 	" 	"AIAKKMMEuc!ff---C

5!!!	" 	"r   c           	          t                       fd}                     |                                            t                    t          t	          dd                                                    t                    d                                           }                     |t                               d S )Nc               3     K   t          dd          D ]} | V  t                    }                    |t          t          dt          |          dz                                                      t                    t          |                                         t                    |                                            }                    |t                               d S )NrC   rL   )rq   rr   r,   rY   r  r  r  )rf   r8   r  r0   r    s      r   gz(ByteArrayTest.test_init_alloc.<locals>.g  s      1c]] 2 2GG  Dq#a&&(););$<$<===  QQ000$$SVVQ///""5#a&&11112 2r   rC   rL   c   )r   r!   r,   rr   rq   rY   r  r  )r    r  r  r0   s   `  @r   test_init_alloczByteArrayTest.test_init_alloc  s    KK	2 	2 	2 	2 	2 	2 	


1133a$uQ}}"5"5666Q$$$5#a&&)))))r   c           	      x   d}t          |          }|                    |           |                     |||z              |                     |dd          |           t          d          }|                    t          t          |dz                       |                    d |dz  D                        |                     ||dz             |                     |dd          |           t          d          }|                    t          t          t          |dz                                 |                     ||dz             |                     |dd          |           t          d          }|                    t          t          t          |dz                                 |                     ||dz             |                     |dd          |           t          d          }|                     t          |j        g d           |                     t          |j        g d	           |                     t          |          d
           t          d          }|                    t          t          d                    g           |                     |d           d S )Nr  r   r      c              3   4   K   | ]}t          |          V  d S r   )r7  ri  s     r   rg   z,ByteArrayTest.test_extend.<locals>.<genexpr>  s(      ++AQ++++++r   2   r   )r   rC   rW   r^   )r   rC   rW   rO   r   r8   r0  )r   r  r,   r   r7  ru   rr   rZ   r   rY   r   r   )r    r  r8   s      r   test_extendzByteArrayTest.test_extend  sd   dOO	D4K(((122%%%cNN	S$)$$%%%	++++++++D2I&&&233&&&cNN	c#tby))**+++D2I&&&233&&&cNN	c#tby))**+++D2I&&&233&&&cNN*ah???*ah>>>Q###cNN	)CHH%%&'''D!!!!!r   c                 >   t          d                              t          d                     |                     d                               t          d                     |                     d           |                     t
          fd           |                     t
          fd           |                     t          fd                               t          d                                         t          d	                     |                     d
           |                     t          fd                               t          t          d                               |                     d           t          g d          }|                    d           |                     |t          g d                     |                    d           |                     |t          ddg                     d S )Nr  r  s   helos   heoc                  H                          t          d                    S )Nr  )r  r   r>   s   r   r?   z+ByteArrayTest.test_remove.<locals>.<lambda>  s    ahhs3xx.@.@ r   c                  .                          d          S )Ni  r  r>   s   r   r?   z+ByteArrayTest.test_remove.<locals>.<lambda>  s    ahhsmm r   c                  .                          d          S )Nr+  r   r>   s   r   r?   z+ByteArrayTest.test_remove.<locals>.<lambda>  s    QXXc]] r   r  r  r,  c                  .                          d          S )Nr,  r   r>   s   r   r?   z+ByteArrayTest.test_remove.<locals>.<lambda>      QXXd^^ r   r+  r   )~   r  rh      r  )r  rh   r  r  r  rh   )	r   r  r   r,   rZ   r   r   r   r   r  s     @r   test_removezByteArrayTest.test_remove  s   h	SG$$$	SF###*&@&@&@&@AAA*&;&;&;&;<<<)%:%:%:%:;;;	S	SD!!!)%;%;%;%;<<<	3s88$$%%%C    ***++	E///22333	E3*--.....r   c                 F   t          d          |                                                     t          d                     |                                         d          t          d                     |                                         d          t          d                     |                     t
          fd           |                     t
          d            |                     t          d	                                          d
           d S )Nr  r  r   r  rR   r  c                  .                          d          S )NrK   )r  r>   s   r   r?   z(ByteArrayTest.test_pop.<locals>.<lambda>%  s    aeeBii r   c                  B    t                                                      S r   )r   r  r   r   r   r?   z(ByteArrayTest.test_pop.<locals>.<lambda>&  s    ikkoo.?.? r   rT  r   )r   r,   r  r   rZ   r[   r/   s    @r   test_popzByteArrayTest.test_pop   s    h#c((+++q3s88,,,rCHH---*&7&7&7&7888*&?&?@@@7++//11488888r   c                 >    |                      t          d            d S )Nc                  B    t                                                      S r   )r   sortr   r   r   r?   z+ByteArrayTest.test_nosort.<locals>.<lambda>+  s    )++2B2B2D2D r   )rZ   AttributeErrorr#   s    r   test_nosortzByteArrayTest.test_nosort*  s"    .*D*DEEEEEr   c                 p   t          d                              t          d                     |                     d           |                                         d          d            t                                          t          d                     |                     t	                    d           |                     t          fd           t                                          t          t          d                               |                     d           d S )	Ns   hellr  r  rL   rX  rC   c                  .                          d          S )Nr  )r   r>   s   r   r?   z+ByteArrayTest.test_append.<locals>.<lambda>5  r  r      A)r   r   r   r,   rY   rZ   r   r   r/   s    @r   test_appendzByteArrayTest.test_append-  s    g	SH%%%#---KK	SQ###)%;%;%;%;<<<KK	3s88$$%%%D!!!!!r   c                 N   t          d                              dt          d                                         dt          d                                         dt          d                                         dt          d                     |                     d           |                     t
          fd           t                                          d	t          t          d
                               |                     d           d S )Ns   msssspprC   rf   r   rR   r   r}  c                  0                          dd          S )Nr      1)insertr>   s   r   r?   z+ByteArrayTest.test_insert.<locals>.<lambda>A  s    QXXa->-> r   r   rX  r  )r   r  r   r,   rZ   r   r   r/   s    @r   test_insertzByteArrayTest.test_insert:  s    j!!	CHH	CHH	SXX	s3xx   N+++)%>%>%>%>???KK	Ic#hh''(((D!!!!!r   c                 6   t          d          }|                     ||                    ddd                     t          d t          d          D                       }t          d          }|                     ||                    |                     d S )Nr  s   cder   c                     g | ]}|S r   r   rd   s     r   r  z-ByteArrayTest.test_copied.<locals>.<listcomp>L  s    ---Qq---r   r^   r   )r   r  r  rq   r.  )r    r0   tr#  s       r   test_copiedzByteArrayTest.test_copiedF  s     fAIIffa88999--%**---..cNNAKKNN+++++r   c                 Z   t          d                              d          \  }}}|                     |d           |                     |d           |                     ||           |dz  }|                     |d           t          d                              d          \  }}}|                     |d           |                     |d           t          d                              d          \  }}}|                     |d           |                     |d           |                     ||           |dz  }|                     |d           t          d                              d          \  }}}|                     |d           |                     |d           d S )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_nullstringP  s   D//++D111aC   C   A	T	C   D//++D111aC   C   D//,,T221aC   C   A	T	C   D//,,T221aC   C     r   c                 ~   t          t          d                    t                    }fd} |d           d d          }|                     t          |d           |                     |           |                     t          |d           |                     |           |                     t          |d           |                     |           |                     t          j        d           |                     |           |                     t          j        d                    |                     |           fd}|                     t          |           |                     |           fd}|                     t          |           |                     |           d S )	NrK   c                 D    t          | dz   d| z  dz
            dd<   d S )NrC   rW   rO   )rq   )r  r0   s    r   resizez3ByteArrayTest.test_resize_forbidden.<locals>.resizel  s*    AE1Q37++AadGGGr      r  r   rC   c                       d= d S rB   r   r>   s   r   delitemz4ByteArrayTest.test_resize_forbidden.<locals>.delitem{  s    !r   c                      d ddd<   d S )Nr   rC   rO   rW   r   r>   s   r   delslicez5ByteArrayTest.test_resize_forbidden.<locals>.delslice  s    Aa1fIIIr   )r   rq   rM  rZ   BufferErrorr,   r  r  )r    vr#  r  r&  r(  r0   s         @r   test_resize_forbiddenz#ByteArrayTest.test_resize_forbiddene  s   
 eBii  qMM	, 	, 	, 	, 	,r


t+vr222D!!!+vq111D!!!+vq111D!!!+qua000D!!!+qx1666D!!!	 	 	 	 	+w///D!!!	 	 	 	 	+x000D!!!!!r   c                     t          j        d          }|                     t          |j        t                                 d S )Nr3  )r   r4  rZ   r)  getbuffer_with_null_viewr   )r    r3  s     r   test_obsolete_write_lockz&ByteArrayTest.test_obsolete_write_lock  s7    !/<<	+y'I9;;WWWWWr   c                 z   t          d          }t          d          }t          t          j        dz             D ]~}t          |          }t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          t          |                     |                     t          |          |           t          |           t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          t          |                     |                     t          |          |dd                     t          dt          |                    D ]}t          |           t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          t          |                     |                     t          |          |t          |          d                     |                     t          t          |           t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          g            d S )Nr  s   qwertyrC   )r   rr   rq   r  r  ru   r  r  r,   r-   r  rY   rZ   StopIteration)	r    r  rE  r  itorigr  r  r0   rf   s	            r   test_iterator_pickling2z%ByteArrayTest.test_iterator_pickling2  s_     I62Q677 	+ 	+E$ZZFfd^U33ALOOEBAaaaDT"XXtF||444T"XXt,,, LLLfd^U33ALOOEBAaaaDT"XXtF||444T"XXtABBx000 1c$ii((  Vfd^U33ALOOEBAaaaDT"XXtF||444T"XXtCIIJJ'7888 mT6:::fd^U33ALOOEBAaaaDT"XXr****?	+ 	+r   c                     t          d          }t          |          }t          |           |                                 |                     t          |          g            d S )Nr3  )r   ru   r  r   r,   rr   )r    r  r  s      r   test_iterator_length_hintz'ByteArrayTest.test_iterator_length_hint  sT    u"XXR



b2&&&&&r   c                     t          d          }d|d d<   |dz  }|dz  }|                     |d           |                     ||           |                     |d           d S )Nr  r"  rW   rC   rm   s   xcs   xcxcxcr   r,   )r    r0   r   r   s       r   test_repeat_after_setslicez(ByteArrayTest.test_repeat_after_setslice  sv    f"1"UUU###QY'''''r   c                 `    G fdd          }|                      d          5  t          d          |                     t                    5   |            d<   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                      d          5  t	          j        d          }t          d          |                     t                    5  |                    d |                       d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Z fdZdS )/ByteArrayTest.test_mutating_index.<locals>.Boomc                 0                                      dS r=   r   r/   s    r   r$   z9ByteArrayTest.test_mutating_index.<locals>.Boom.__index__  s    			qr   Nr   r>   s   r   Boomr:    s.              r   r<  tp_as_mappings   Now you see me...r   tp_as_sequencer3  )subTestr   rZ   r[   r   r4  sequence_setitem)r    r<  r3  r0   s      @r   test_mutating_indexz!ByteArrayTest.test_mutating_index  sB   	 	 	 	 	 	 	 	 	 	
 \\/** 	 	.//A"":..  tvv!              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 \\*++ 	9 	9%3K@@I.//A"":.. 9 9**1a8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9sk   *BA*B*A.	.B1A.	2BBB!>D# D?D#D	D#D	D##D'*D'N).r%   r&   r'   r   r+   rF  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'  cpython_onlyr.  r2  
list_tests
CommonTesttest_exhausted_iteratorr4  r7  rA  r   r   r   r  r    s[       I    8 8 8  4	 	 	" " "$ $ $$M M M     D> > >& & &P8 8 8  5 5 56 6 6*J J JA A A     
" 
" 
"* * *"" " "8/ / /09 9 9F F F" " "
" 
" 
", , ,! ! !*" " "@ 
\X X X"+ "+ "+H #o8P' ' '( ( (9 9 9 9 9r   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dS )AssortedBytesTestc           	         t           t          fD ]}|                      |t                                d           |                      |t          dg                    d           |                      |t          g d                    d           |                      |d          d           |                      |d          d	           |                      |d
          d           d S )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    r9  s     r   test_repr_strzAssortedBytesTest.test_repr_str  s   d 	7 	7AQQy{{^^-=>>>QQy!~~..0EFFFQQy)9)9)9::;;AC C CQQvYY111QQtWWj111QQvYY6666	7 	7r   c           
         dt          d          fD ]}|                     t          |          t          |                     |                     t          |d          t          |                     |                     t
          dt          j        t          |          j	                  z            5  t          |d           d d d            n# 1 swxY w Y   d S )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VAYYA///VAr]]CFF333''	(1BId1gg>N4O4O(OQ Q  q#              	 	s   7CC	C	c                 V   |                      dt          d          k    d           |                      dt          d          k    d           |                      dt          d          k    d           |                      dt          d          k     d           |                      dt          d          k    d           |                      dt          d          k    d           |                      dt          d          k    d           |                      dt          d          k    d           |                      dt          d          k    d           |                      dt          d          k    d           |                      dt          d          k     d           |                      dt          d          k    d           |                      t          d          dk    d           |                      t          d          dk    d           |                      t          d          dk    d           |                      t          d          dk     d           |                      t          d          dk    d           |                      t          d          dk    d           |                      t          d          dk    d           |                      t          d          dk    d           |                      t          d          dk    d           |                      t          d          dk    d           |                      t          d          dk     d           |                      t          d          dk    d           d S )Nr  Tr3  Fr   r#   s    r   test_compare_bytes_to_bytearrayz1AssortedBytesTest.test_compare_bytes_to_bytearray  s    5==0$777%--/666%--/666v.5555<</666%,,.5555==0%888%--/777v.666%--/777%,,.6665<</777v&0$777u/666u/666u.555v%/666v.555v&0%888u/777u.666u/777v.666v%/77777r   c                 v   |                      t          j                   |                     t          j                            d          t          j                   |                      t
          j                   |                     t
          j                            d          t
          j                   d S )Nz
bytearray(zbytes()assertIsNotNoner   __doc__r   r  r   r#   s    r   test_doczAssortedBytesTest.test_doc  s    Y.///	)44\BBIDUVVVU]+++00::EMJJJJJr   c                     t          d          }t          |          }t          |          }|                     |t          |                     d S )Ns   Hello world
)r   rM  r   r,   )r    r   bufr0   s       r   test_from_bytearrayz%AssortedBytesTest.test_from_bytearray  sL    788  cNNIf--.....r   c                    |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          t          d                    d           |                      t          t          d                    d           |                      t          t          d                    d	           d S )
Nr   zb''r"  zb'x'rU  zb'\x80'rI  zbytearray(b'x')zbytearray(b'\x80'))r,   r   r   r#   s    r   test_to_strzAssortedBytesTest.test_to_str  s    S5)))TF+++Wz222Ys^^,,.>???Yt__--/@AAAYw//002GHHHHHr   c           	          g d}|D ])\  }}|                      |t          |d                     *t          dd          D ]3}|                     t          t
          dt          |          z             4d S )N))s   Wonderful spamzWonderful spam)s   Wonderful spam toozWonderful spam too)s     u   ª  )s   \xaa\x00\000\200z\xaa\x00\000\200r   rh   r^   zb"%s")r,   r   rq   rZ   SyntaxErrorevalr]  )r    testsr0   r   r  s        r   test_literalzAssortedBytesTest.test_literal!  s    
 
 
  	9 	9DAqQ	!Y 7 78888sC 	0 	0Ak4%A.0 0 0 0	0 	0r   c                 v    |                      d                    t          d                    ddg           d S Nr  rt  r0  r1  )r,   r  rM  r#   s    r   test_split_bytearrayz&AssortedBytesTest.test_split_bytearray.  s6    j&6&677$FFFFFr   c                 v    |                      d                    t          d                    ddg           d S ra  )r,   r  rM  r#   s    r   test_rsplit_bytearrayz'AssortedBytesTest.test_rsplit_bytearray1  s6    z$'7'7884,GGGGGr   c                 v    t                      }|                     |                    dd          |           d S )Nr   )r   r  r  r/   s     r   test_return_selfz"AssortedBytesTest.test_return_self4  s5    KK3,,a00000r   z4BytesWarning is needed for this test: use -bb optionc                 6   d } |            5  ddk     d d d            n# 1 swxY w Y    |            5  ddk     d d d            n# 1 swxY w Y    |            5  ddk     d d d            n# 1 swxY w Y    |            5  ddk     d d d            n# 1 swxY w Y    |            5  t          d          dk     d d d            n# 1 swxY w Y    |            5  dt          d          k     d d d            n# 1 swxY w Y    |            5  t          d          dk     d d d            n# 1 swxY w Y    |            5  dt          d          k     d d d            n# 1 swxY w Y    |            5  ddk     d d d            n# 1 swxY w Y    |            5  ddk     d d d            n# 1 swxY w Y    |            5  ddk     d d d            n# 1 swxY w Y    |            5  ddk     d d d            d S # 1 swxY w Y   d S )Nc                  8    t          j        dt          f          S r
   r   r   r   r   bytes_warningz5AssortedBytesTest.test_compare.<locals>.bytes_warning<  s    "12|2DEEEr   r   r   r   r   r   )r    ri  s     r   r   zAssortedBytesTest.test_compare9  s;   	F 	F 	F]__ 	 	2II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]__ 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]__ 	 	2II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]__ 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]__ 	! 	!cNNb  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]__ 	! 	!)C..  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]__ 	! 	!cNNb  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]__ 	! 	!)C..  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]__ 	 	QJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]__ 	 	JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]__ 	 	QJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]__ 	 	JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   !%%A		AAA11A58A5BB B.CCC#DD
DD88D<?D<E--E14E1FFF*F==GGG%%G),G):HHHN)r%   r&   r'   r   rL  rO  rQ  r&  r'  requires_docstringsrU  rX  rZ  r_  rb  rd  rf  unittest
skipUnlessrF   flagsri  r   r   r   r   rG  rG    s*       
 7 7 7   8 8 8: 
\%K K &%K/ / / I I I0 0 0G G GH H H1 1 1
 X0OQ Q Q Q  r   rG  c                       e Zd Zd Zd ZdS )BytearrayPEP3137Testc                      t          |          S r   rj  )r    r#  s     r   marshalzBytearrayPEP3137Test.marshalg  s    ||r   c                    |                      d          }dD ]M}t          ||          } |d          }|                     ||           |                     |||dz              NdD ]A}t	          |          }|                     ||           |                     |||dz              B|                      d          }|                    |g          }|                     ||           |                     ||           d S )Ns   1234)zfillr
  r  r  rm   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   )rr  getattrr,   r  r]  rv  )r    valmethnamer!  newvalexprseps          r   test_returns_new_copyz*BytearrayPEP3137Test.test_returns_new_copyj  s?   ll7## > 	K 	KHS(++FVAYYFS&)))S&$%IIK K K KE 	F 	FD $ZZFS&)))S& !DDF F F Fll33%f%%%f%%%%%r   N)r%   r&   r'   rr  r{  r   r   r   rp  rp  f  s2          & & & & &r   rp  c                   "     e Zd Z fdZdZ xZS )FixedStringTestc                     t          |t                    r(|                     |                    d                    S t	                                          |          S )Nr   )
isinstancer   r+   r   superfixtype)r    r6  r.   s     r   r  zFixedStringTest.fixtype  sI    c3 	7>>#**W"5"5666wws###r   T)r%   r&   r'   r  contains_bytes__classcell__)r.   s   @r   r}  r}    s3        $ $ $ $ $
 NNNNNr   r}  c                       e Zd ZeZdS )ByteArrayAsStringTestN)r%   r&   r'   r   r+   r   r   r   r  r    s        IIIr   r  c                       e Zd ZeZdS )BytesAsStringTestN)r%   r&   r'   r   r+   r   r   r   r  r    s        IIIr   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )SubclassTestc                 V   |                      t          | j        | j                             |                     |                                 | j                   d\  }}|                     |          |                     |          }}|                      ||k               |                      ||k               |                      ||k                |                      ||k               |                      ||k               |                      ||k               |                     ||           |                     ||z   ||z              |                     ||z   ||z              |                     ||z   ||z              |                      |dz  |dz  k               d S )N)r4      efghr   )r   
issubclassr+   basetyper/  r  r,   )r    r8   r0   _a_bs        r   
test_basiczSubclassTest.test_basic  s   
4>4=AABBBdnn..>>>1""DNN1$5$5B 	b!!!b!!!R   b!!!b!!!R   Q 	QR(((QB'''QQ''' 	!r!t$$$$$r   c                    |                      d          }|                                                     |g          }|                     ||           |                     t          |          | j        t          |                     |                    dg          }|                     t          |          | j                   d S r3   )r+   r  rv  r  r  r-   )r    s1s2s3s       r   r{  zSubclassTest.test_join  s     ^^G$$]]__!!2$''R   d2hhtBxx888 WWgYd2hh.....r   c                 (   |                      d          }d|_        |                      d          |_        t          t          j        dz             D ]=}t	          j        t	          j        ||                    }|                     t          |          t          |                     | 
                    ||           | 
                    |j        |j                   | 
                    |j        |j                   | 
                    t          |          t          |                     | 
                    t          |j                  t          |j                             |                     t          |d                     ?d S )Nr4   rK   r  rC   y)r+   r#  zrq   r  r  r  r  r  r  r,   r-   r   hasattr)r    r8   r  r0   s       r   test_picklezSubclassTest.test_pickle  sD   NN7##nnW%%62Q677 	. 	.EV\!U3344A1r!uu---Q"""QS!#&&&QS!#&&&T!WWd1gg...T!#YYQS		222WQ__----	. 	.r   c                    |                      d          }d|_        |                      d          |_        t          j        t          j        fD ]!} ||          }|                     t          |          t          |                     |                     ||           |                     |j        |j                   |                     |j        |j                   |                     t          |          t          |                     |                     t          |j                  t          |j                             | 	                    t          |d                     #d S )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%% It}5 	. 	.KAA1r!uu---Q"""QS!#&&&QS!#&&&T!WWd1gg...T!#YYQS		222WQ__----	. 	.r   c                      j                             d          }                     |d                                t	          |           j                     G  fdd j                  }|                    d          }                     |d                                t	          |          |                                |j        d            G  fdd j                  }|                    d          }                     |d                                t	          |          |                                |j        d           d S )Nr?  rK  c                       e Zd Z fdZdS )%SubclassTest.test_fromhex.<locals>.B1c                 L    j                             | |          }d|_        |S Nr@  )r  __new__r?  )clsr   mer    s      r   r  z-SubclassTest.test_fromhex.<locals>.B1.__new__  s&    ]**366	r   N)r%   r&   r'   r  r#   s   r   B1r    r   r   r  r@  c                       e Zd Z fdZdS )%SubclassTest.test_fromhex.<locals>.B2c                 ^    j         t          ur j         j        | g|R i | d| _        d S r  )r  r   r!   r?  )r  r   kwargsr    s      r   r!   z.SubclassTest.test_fromhex.<locals>.B2.__init__  s@    =--*DM*2???????r   Nr%   r&   r'   r!   r#   s   r   B2r    s.              r   r  )r+   rC  r,   r  r-   r  r?  )r    r0   r  r  s   `   r   rH  zSubclassTest.test_fromhex  sr   N""8,,O,,,d1ggt~...	 	 	 	 	 	 	 	 	 	 JJx  O,,,d1ggr"""&&&	 	 	 	 	 	 	 	 	 	 JJx  O,,,d1ggr"""&&&&&r   N)r%   r&   r'   r  r{  r  r:   rH  r   r   r   r  r    s_        % % %0/ / /. . .. . .' ' ' ' 'r   r  c                       e Zd ZdS )ByteArraySubclassNr   r   r   r   r  r            Dr   r  c                       e Zd ZdZdS )ByteArraySubclassWithSlots)r#  r  __dict__N)r%   r&   r'   	__slots__r   r   r   r  r    s        &IIIr   r  c                       e Zd ZdS )rg  Nr   r   r   r   rg  rg    r  r   rg  c                       e Zd ZdS )rf  Nr   r   r   r   rf  rf    r  r   rf  c                       e Zd ZeZeZd ZdS )ByteArraySubclassTestc                      G d dt                     } |dd          } |dd          }|                     |d            |dd          }|                     |d           d S )Nc                       e Zd ZddZdS ):ByteArraySubclassTest.test_init_override.<locals>.subclassrC   c                 0    t          j        | g|R i | d S r   )r   r!   )r  newargr   r  s       r   r!   zCByteArraySubclassTest.test_init_override.<locals>.subclass.__init__  s)    "2777777777r   Nr  r  r   r   r   subclassr     s(        8 8 8 8 8 8r   r  r   r4   )source)r  r  r6  )r    r  r#  s      r   test_init_overridez(ByteArraySubclassTest.test_init_override  s    	8 	8 	8 	8 	8y 	8 	8 	8 HQ  HQw'''G$$$HAg...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dS )ByteArraySubclassWithSlotsTestN)r%   r&   r'   r   r  r  r+   r   r   r   r  r  	  s        H*IIIr   r  c                       e Zd ZeZeZdS )BytesSubclassTestN)r%   r&   r'   r   r  rg  r+   r   r   r   r  r    s        HIIIr   r  __main__)/r   rJ  r  rF   r5   r   r  r  r  rl  test.supportr&  r   r   test.string_teststest.list_testsr   r   test.support.script_helperr   rn  ri  r   r   r)   TestCaser9  r  rG  rp  string_testsBaseTestr}  r  r  r  r   r  r  r   rg  rf  r  r  r  r%   mainr   r   r   <module>r     s[    				 				 



              & & & & & & ( ( ( ( ( (         9 9 9 9 9 9 9 9 < < < < < < 9 
            uA uA uA uA uA uA uA uAp_. _. _. _. _.x0 _. _. _.DI9 I9 I9 I9 I9M8#4 I9 I9 I9X@ @ @ @ @) @ @ @b& & & & &8, & & &6    d'0       OX->       ):   \' \' \' \' \' \' \' \'~	 	 	 	 		 	 	 	' ' ' ' ' ' ' '	 	 	 	 	E 	 	 		 	 	 	 	 	 	 	% % % % %L(*; % % %+ + + + +\83D + + +    h&7   
 zHMOOOOO r   