
    5\h>                    d   	 d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Zd dl
mZ d dl
mZ d dlZd dlZd dl
mZmZ d dlmZ ej        j        rd Znd Z G d d	          Z G d
 d          Z G d dee	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%          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     9/opt/python-3.11.14/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__)       


r   c                     | j         S r   r   r!   s    r   	__index__zIndexable.__index__+   
    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d Zed             Zd Zd Zed             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d  Z$d! Z%d" Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z;d8 Z<d9 Z=d: Z>d; Z?d< Z@d= ZAd> ZBd? ZCd@ ZDdA ZEdB ZFdC ZGdD ZHdE ZIdF ZJdG ZKdHS )IBaseBytesTestc                     |                      t          |          t          |                     |                     ||           d S r   )assertIstypeassertEqual)r!   actualexpecteds      r   assertTypedEqualzBaseBytesTest.assertTypedEqual1   s>    d6llDNN333*****r   c                     |                                  }|                     t          |          | j                    |                     |j        | j                    d S r   )	type2testr0   r/   	__class__r!   bs     r   test_basicszBaseBytesTest.test_basics5   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)r5   copydeepcopyr0   r/   r!   acopy_methodr8   s       r   	test_copyzBaseBytesTest.test_copy:   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   r8   s   r   <lambda>z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>D       ad r   c                       d         S N   r   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>E   rH   r   c                  (     t           j                 S r   sysmaxsizerF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>F   s    an r   c                  .     t           j        dz            S rJ   rM   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>G   s    aA.> r   c                       ddz           S N
   d   r   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>H   s    aCj r   c                       d         S Nr   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>I       ae r   c                       d         S )Nr   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>J   rX   r   c                  *     t           j                  S r   rM   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>K   s    ao r   c                  0     t           j         dz
           S rJ   rM   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>L       aQ.? r   c                  0     t           j         dz
           S )N   rM   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>M   r]   r   c                       ddz            S rR   r   rF   s   r   rG   z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>N   s    aSk r   )r5   r0   lenassertRaises
IndexErrorr7   s    @r   test_empty_sequencez!BaseBytesTest.test_empty_sequenceA   s   NNQ###*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   *      *+   -   )ri   rj   )rj   ri   c              3   $   K   | ]}|d z  |V  dS )r_   Nr   .0is     r   	<genexpr>z3BaseBytesTest.test_from_iterable.<locals>.<genexpr>a   s+      ::AE:1::::::r      rK   r_   c                       e Zd Zd ZdS )+BaseBytesTest.test_from_iterable.<locals>.Sc                     d|         S )NrK   r_      r   )r!   rn   s     r   __getitem__z7BaseBytesTest.test_from_iterable.<locals>.S.__getitem__g   s     |#r   N)r(   r)   r*   rv   r   r   r   Srr   f   s#        $ $ $ $ $r   rw      )r5   ranger0   ra   listassertIntupleiter)r!   r8   rw   s      r   test_from_iterablez BaseBytesTest.test_from_iterableP   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 Nrf   rt   rx   )r5   r|   ry   r0   ra   rz   r7   s     r   test_from_tuplezBaseBytesTest.test_from_tuplel   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 r   )r5   rz   ry   r0   ra   r7   s     r   test_from_listzBaseBytesTest.test_from_listt   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 Nrg   clearr!   r@   s    r   r&   z:BaseBytesTest.test_from_mutating_list.<locals>.X.__index__   s    			rr   Nr(   r)   r*   r&   r@   s   r   Xr   ~   s.              r   r   rh   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  rg   )ra   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  ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************r0   bytes)r!   r   r   r@   s      @r   test_from_mutating_listz%BaseBytesTest.test_from_mutating_list|   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 )NrK         r   rK   r   r   rW   rf   )r5   r   r0   rz   rb   
ValueErrorr7   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Brt   rx   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)r5   arrayr0   r   )r!   r@   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   rK          s        rW   0ascii   0)r0   r5   rb   r   OverflowErrorrN   rO   r%   s    r   test_from_ssizezBaseBytesTest.test_from_ssize   s    **C0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)rb   r   r5   )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 )NrW   rK   r_   rS   rT   rf   i  )rb   r   r5   rN   rO   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   rb   r   MemoryErrorr5   	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 NrK   r   r   r%   s    r   r&   zCBaseBytesTest.test_constructor_exceptions.<locals>.BadInt.__index__       !r   Nr   r   r   r   BadIntr      #            r   r   c                       e Zd Zd Z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   )rb   ZeroDivisionErrorr5   )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 )Nrt   rK   ru   )r5   r0   
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)r0   r5   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)rz   mapordr5   reversedreverser0   )r!   inputr8   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   )r5   r   r   )sr!   s    r   byz'BaseBytesTest.test_getslice.<locals>.by  s    >>#c1++...r   Hello, worldr   r   rK   ello   z, world   rT   i)r0   r!   r   r8   s   `  r   test_getslicezBaseBytesTest.test_getslice  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   rK   ru      rT   rW   rZ   r   )rz   ry   r5   rN   rO   r0   )r!   Lr8   indicesstartstopsteps          r   test_extended_getslicez$BaseBytesTest.test_extended_getslice$  s    sNN1dAq"c3;BTJ 	] 	]E ] ]#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   )r5   r0   encoderb   UnicodeEncodeErrorr!   sampleencr8   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   ☃)r5   r0   decoderb   UnicodeDecodeErrorr  s       r   test_decodezBaseBytesTest.test_decode8  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-crS   )textwrapdedentr5   r(   r   r0   rc)r!   invalid	encodingscodeprocs        r   test_check_encoding_errorsz(BaseBytesTest.test_check_encoding_errorsF  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   rS   i'  )r5   r0   r7   s     r   test_from_intzBaseBytesTest.test_from_int~  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   rG   z+BaseBytesTest.test_concat.<locals>.<lambda>  s    R%Z r   c                      d z   S )Nr   r   )r   s   r   rG   z+BaseBytesTest.test_concat.<locals>.<lambda>  s    URZ r   )r5   r0   r   rb   r   )r!   r   r   s    @@r   test_concatzBaseBytesTest.test_concat  s    ^^F##^^F##b),,,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  ru   	   abcabcabcr   r   rW   c                       dz  S NgQ	@r   rF   s   r   rG   z+BaseBytesTest.test_repeat.<locals>.<lambda>  s    T r   c                      d z  S r$  r   rF   s   r   rG   z+BaseBytesTest.test_repeat.<locals>.<lambda>  s     r   )r5   r0   rb   r   r   r   rN   rO   r!   cr8   s     @r   test_repeatzBaseBytesTest.test_repeat  s   /// 
	! 
	!AQUL1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   xrT   x)r0   r5   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  r@      c                      d v S )N,  r   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    cQh r   c                      d v S rV   r   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    bAg r   c                  &    t           j        dz    v S rJ   rM   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    ck!mq.@ r   c                      d  v S r   r   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    TQY r   c                  @    t          t          d                     v S Nr@   )floatr   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    U3s88__-A r   c                      d v S r5  r   rF   s   r   rG   z-BaseBytesTest.test_contains.<locals>.<lambda>  s    SAX r   r      a   b   c   ab   bc   ac   ds   dabs   abd)
r5   r{   r   intassertNotInrb   r   r   r   r   )r!   fr8   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 )NrK   r      ri   0   1a2B30z  1A 2B  30   z
 1A
2B	30z	
 u       0000s     s   1Br@   rtz1a b cd z12       34))z12 x4 56ru   )z12 3x 56r   )z12 xy 56ru   )u	   12 3ÿ 56r   zat position %s)
rb   r   r5   fromhexr0   r   r   r{   r   	exception)r!   r8   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 )NrK   r   r   rD  1a2b30   +0)rb   r   r5   hexr0   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      ÿ      rf   r   zb9 01 efrJ     zb901efru   r   zb9:01:ef   $zb9$01$efrK   rW   r_   zb9:01ef*rZ   zb901*efs    {s   worldi   s   helloi   0.   zC7b7305000000776f.726c646902000000.730500000068656c.6c6f690100000030)r5   r0   rT  rb   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r5   ry   r0   rT  )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 )ru   Nr   rm   r+  s     r   ro   z=BaseBytesTest.test_hex_separator_six_bytes.<locals>.<genexpr>  s&      "<"<11Q3"<"<"<"<"<"<r   rK   r   0306090c0f12rc  z03.06.09.0c.0f.12 r_   z0306 090c 0f12-ru   z030609-0c0f12rZ  r   z0306:090c0f12r   z03:06090c0f12   rj  _r   030609_0c0f12r`  z0306090c:0f12   @r   z0306090c0f@12iirl  )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  r8  r<  r;  r:  )r8  r9  r:  s   .:s   cds   ab.:cdi s   .:abci     cds   ef)r0   r5   joinrz   r   r|   r}   rU  r   rb   r   )r!   lstdot_joinseqr2   s        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      ssr_      wr   ru     prK   ru   r   	   )r5   r0   count)r!   r8   rn   pws        r   
test_countzBaseBytesTest.test_count;  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   r|   )	r5   r   
startswithr   rb   r   r   rL  r{   r!   r8   rO  excs       r   test_startswithzBaseBytesTest.test_startswithR  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   r|   )
r5   r   r   endswithr   rb   r   r   rL  r{   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  r_   r  rW      mississippianrK   ru   r   r   ru  rf   zbyte must be in range\(0, 256\))r5   r0   findrN   rO   assertRaisesRegexr   )r!   r8   rn   r  indexs        r   	test_findzBaseBytesTest.test_findn  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  rW   r  rS   ru   r   ru  r_   rK   r  r   )r5   r0   rfindr!   r8   rn   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  r_   r  r  rK   ru   r   r   ru  )r5   r0   r  rb   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  rS   ru   r   ru  r_   rK   r  r   )r5   r0   rindexrb   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   )r5   r0   r.   r/   )fmtvalsresultr8   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   r_   r  s      ab)r   ru   r  s   %i %*.*b)rS   r   ru   r  s   10   abcs
   %i%b %*.*b)rS      3r   ru   r  s	   103   abc   %cr8  r5   r0   r   r.   r/   )r!   r8   origr@   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!   r8   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)rb   r   objectr5   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  r8  s   massassappar  r*  s	   mixixippi)r5   r0   replacer7   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   )rb   r   r5   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  rs  rb   r   r5   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	   	
   )r5   r0   r  r7   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  )r5   r0   r  r7   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   )r5   r0   	partitionr7   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  )r5   r0   
rpartitionr7   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  rb   r   r5   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 NrK   )r   r8  r  s   abs       )ry   pickleHIGHEST_PROTOCOLr5   dumpsloadsr0   )r!   protor8   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  )ry   r  r  r}   r5   rz   r  r  r0   r/   next)r!   r  r8   ititorgrM  ds          r   test_iterator_picklingz$BaseBytesTest.test_iterator_pickling0  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  r=  r9  r<  r;  )r0   r5   striprU  lstriprstripr%   s    r   test_strip_bytearrayz"BaseBytesTest.test_strip_bytearrayB  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rb   r   r5   r  r  r  r%   s    r   test_strip_string_errorz%BaseBytesTest.test_strip_string_errorG  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_errorL  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--)r5   r   r   r0   centerr!   r8   	fill_types      r   test_centerzBaseBytesTest.test_centerQ  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----)r5   r   r   r0   ljustr  s      r   
test_ljustzBaseBytesTest.test_ljustX  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)r5   r   r   r0   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  )rb   r   r5   r  r  r  r%   s    r   test_xjust_int_errorz"BaseBytesTest.test_xjust_int_errorf  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 rK   )r   )rm   rn   r8   s     r   
<listcomp>z*BaseBytesTest.test_ord.<locals>.<listcomp>m  s+    ???A#a!A#h--???r   )r   A      rp   r   )r5   r0   ry   ra   r7   s    @r   test_ordzBaseBytesTest.test_ordk  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  )r0   r5   	maketransrb   r   r   )r!   
transtables     r   test_maketranszBaseBytesTest.test_maketransp  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  r_   ru   rZ   r   rK   TF)	r5   r0   r  r  r  r  r  r  r  )r!   r8   lhr+  os         r   test_none_argumentsz!BaseBytesTest.test_none_argumentsx  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  rW   rf   i'  )r5   r  r  r  r  r  rb   r   )r!   r8   methods      r   (test_integer_arguments_out_of_byte_rangez6BaseBytesTest.test_integer_arguments_out_of_byte_range  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)
r5   r  r   r  r  r  r  r  r  r  )r!   r8   r+  s      r   *test_find_etc_raise_correct_error_messagesz8BaseBytesTest.test_find_etc_raise_correct_error_messages  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_iteratingr}   r5   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  rf   er$  r   r   s   heller!  s   hee   es   hllo)delete)r5   r   ry   r   rb   r   	translater   r   r0   assertIsInstance)r!   r8   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)rg   rZ   rK   r   rg   )r   import_moduler5   rb   rc   sequence_getitemr0   )r!   r9  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)Lr(   r)   r*   r3   r9   rB   rd   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r   r(  r,  rB  rP  rV  rg  rn  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r%  r(  r*  r/  r7  r=  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_subclassrB    r   r   rC  s   bar foo)r0   	__bytes__r/   r5   r   )r!   foorC  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 slicesr@   )r  r   r!   r8   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_RDONLYrb   r   readinto)r!   fdrA  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           	      
   |                      t          t          d                    d           |                      t          t          d                    t          d                     |                      t          t	          d                    d           |                      t          t	          d                    t          d                      G d d          }|                     t          t           |                       |                     t          t          t	          d                     |                     t          t          t	          d                       G d d          }|                      t           |                      d            G d d	t                    }|                      t           |d                    d           |                      t           |d          d
          d           |                      t           |t          d                              d           |                      t           |d                    t          d                     |                      t           |d          d
          t          d                     |                      t           |t          d                              t          d                     |                      t           |t          d                              t          d                     |                     t          t	          t          d                              t          d                     |                     t          t	          t          d                              t          d                     |                     t          t	          t          d                              t          d                      G d dt                    }|                     t           |d                    d           |                     t           |d                    t          d                     |                     t           |t          d                              t          d                     |                     t           |t          d                              t          d                     |                     t           |t          d                              t          d                     d S )Nr  c                       e Zd ZdS )&BytesTest.test_custom.<locals>.NoBytesNr   r   r   r   NoBytesrY    s          r   rZ  r   c                       e Zd Zd Zd ZdS )-BytesTest.test_custom.<locals>.IndexWithBytesc                     dS )Nr8  r   r%   s    r   rD  z7BytesTest.test_custom.<locals>.IndexWithBytes.__bytes__  s    tr   c                     dS r   r   r%   s    r   r&   z7BytesTest.test_custom.<locals>.IndexWithBytes.__index__  s    rr   N)r(   r)   r*   rD  r&   r   r   r   IndexWithBytesr\    s2              r   r_  r8  c                       e Zd Zd Zd ZdS )+BytesTest.test_custom.<locals>.StrWithBytesc                 J    t                               | d          }||_        |S )Nu   €)r   __new__r   clsr   r!   s      r   rc  z3BytesTest.test_custom.<locals>.StrWithBytes.__new__  s!    {{311"
r   c                     | j         S r   r   r%   s    r   rD  z5BytesTest.test_custom.<locals>.StrWithBytes.__bytes__  
    z!r   Nr(   r)   r*   rc  rD  r   r   r   StrWithBytesra    2          " " " " "r   ri  z
iso8859-15   c                       e Zd Zd Zd ZdS )-BytesTest.test_custom.<locals>.BytesWithBytesc                 J    t                               | d          }||_        |S )Nrk  )r   rc  r   rd  s      r   rc  z5BytesTest.test_custom.<locals>.BytesWithBytes.__new__0  s!    }}S'22"
r   c                     | j         S r   r   r%   s    r   rD  z7BytesTest.test_custom.<locals>.BytesWithBytes.__bytes__4  rg  r   Nrh  r   r   r   BytesWithBytesrm  /  rj  r   rp  )	r0   r   BytesSubclassOtherBytesSubclass	WithBytesrb   r   r   r3   )r!   rZ  r_  ri  rp  s        r   test_customzBytesTest.test_custom  s   }V4455v>>>'9&'A'ABB&v..	0 	0 	0y00116:::y'8'899=;P;PQQQ)UGGII666)UIe,<,<===)UIdOO<<<	 	 	 	 	 	 	 	
 	~~//00$777	" 	" 	" 	" 	"3 	" 	" 	" 	||F3344f===||F33\BBGLLL||M&,A,ABBCCVLLL||F';';<<mF>S>STTT||F';';\JJ&w//	1 	1 	1||M&4I4I'J'JKK&v..	0 	0 	0||4Fv4N4N'O'OPP&v..	0 	0 	0 	eImF.C.C$D$DEE}U[G\G\]]]mImF6K6K,L,LMM+F33	5 	5 	5mI6H6P6P,Q,QRR+F33	5 	5 	5	" 	" 	" 	" 	"U 	" 	" 	" 	eNN6$:$:;;VDDDmNN6,B,BCC+F33	5 	5 	5eNN=3H3H$I$IJJ+F33	5 	5 	5mNN=;P;P,Q,QRR+F33	5 	5 	5mNN;Mf;U;U,V,VWW+F33	5 	5 	5 	5 	5r   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ctypesr9  r   )	pythonapi	py_object)c_intc_uintc_longc_ulongc_size_t	c_ssize_tc_char_ps   formats
   Hello %s !r  s   Hello world !s   c=%cs   c= @s   c=@r   s   c=s   d=%d ld=%ld zd=%zdrK   r_   ru   s   d=1 ld=2 zd=3rW   rZ   r   s   d=-1 ld=-2 zd=-3s   u=%u lu=%lu zu=%zur  i  i  s   u=123 lu=456 zu=789s   i=%is   i=123is   i=-123s   x=%xi
  s   x=abcntz0x%0{}Xc                     | z  S r   r   )ptr
ptr_formats    r   ptr_formatterz1BytesTest.test_from_format.<locals>.ptr_formattert  s    "S()r   c                     d| z  S )Nz%#xr   )r  s    r   r  z1BytesTest.test_from_format.<locals>.ptr_formatterx  s    s{"r   iͫ s   ptr=%pzptr=r   s   s=%ss   cstrs   s=cstrs   %ds   %lds   %lus   %zds   %zus   %ps   %5sr8  s   %.3sr  r  s   %%   %s   [%%]s   [%]s   %%%crv  s   %_s   %%ss   %ss   x=%i y=%s   x=2 y=%r  rf   r   )!r   r:  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  PyBytes_FromFormatargtypesrestyper0   r   sizeofrP  nameformatr  r   INT_MINr   INT_MAXLONG_MINLONG_MAX	ULONG_MAXPY_SSIZE_T_MINPY_SSIZE_T_MAXrb   r   )r!   rv  r9  rw  rx  ry  rz  r{  r|  r}  r~  r  r  
sizeof_ptrr  r  size_max	formatstrctypes_typer   py_formatterr  s                        @r   test_from_formatzBytesTest.test_from_formatA  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>.IterationBlockedNr(   r)   r*   rD  r   r   r   IterationBlockedr            IIIr   r  )r   rK   r_   ru   s    c                       e Zd ZdZdS )1BytesTest.test_bytes_blocking.<locals>.IntBlockedNr  r   r   r   
IntBlockedr    r  r   r  ru   s      c                       e Zd ZdZdS );BytesTest.test_bytes_blocking.<locals>.BytesSubclassBlockedNr  r   r   r   BytesSubclassBlockedr    r  r   r  r;  c                       e Zd ZdZdS )4BytesTest.test_bytes_blocking.<locals>.BufferBlockedNr  r   r   r   BufferBlockedr    r  r   r  )rz   r0   r   rb   r   r?  r   )r!   r  rn   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-+r`  r   rK   r_   c                       e Zd ZdS )5BytesTest.test_repeat_id_preserving.<locals>.SubBytesNr   r   r   r   SubBytesr    r   r   r  s   qwerty())r0   idassertNotEqualr   )r!   r@   r8   r  r   s        r   test_repeat_id_preservingz#BytesTest.test_repeat_id_preserving  s/   A1&&&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   r5   rG  rL  rV  rt  r  r  r  r   r   r   r?  r?    s        I
@ 
@ 
@  : : :
95 95 95xp p pd0 0 0<. . . . .r   r?  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 )NrI  ,bytearray indices must be integers or slicesr@   r   r  r   rJ  s      r   rL  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 )NrI  r  pythonr@   r  rJ  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   )rb   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      wbrN  )ra   tempfilemktemprQ  writer   rT  r0   rz   readrP  removeOSError)r!   short_sampler  tfnrA  r8   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   r0   r   r   r7   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 )NrI  r   rr  r  )r   r   r0   r   r   r7   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  r<   )r   r=   r0   assertIsNotr   r   )r!   r8   r  s      r   rB   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>.byA  s    Sa[[)))r   r   s   \w+r   r   )r0   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)Nrt   rT   rK   )rK   rT   ru   r.  rW   )rK   rT   r.  rS   r   )rS   rT   r.  ru   zDidn't raise IndexErrorirf   zDidn't raise ValueErrorzDidn't raise TypeError)r   r0   r   failrc   r   r   r7   s     r   test_setitemzByteArrayTest.test_setitemF  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 )NrS   r   rK   rW   r  r   )rK   r_   ru   r   ru  r   rd  )r   ry   r0   r7   s     r   test_delitemzByteArrayTest.test_delitemh  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 )!NrS   )rK   rK   rK   rK   rK   r   r   )
rK   rK   rK   rK   rK   r   ru  r   rd  r  r   )r   ru  r   rd  r  )r   rK   r_   ru   r   rT   e   r   r   )r   rK   r_   rT   r  r   rd  r  )ru   r   r   ru  ru   )rg   rg   rg   )r   rK   r_   rg   rg   rg   ru   r   r   ru  r   rd  r  r  )r   rK   r_   f   o   r  )r  r  r  r  r  r  r   )r  r  r  r  r  gPKDr   gffffff@r@   r8   r8  r9  )r   r   rf   i i(#  )	r   ry   r0   rz   rU  r?  rb   r   r   )r!   r8   elems      r   test_setslicezByteArrayTest.test_setsliceq  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 )NrT   rS   n   )r   ry   r0   rz   extendr7   s     r   test_setslice_extendz"ByteArrayTest.test_setslice_extend  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 )NrS   rK   r_   )r   popr   r7   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 )NrS   rK   )r   rN   	getsizeofassertLessEqual)r!   r8   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   rK   ru   r   r0  iM  rW   rZ   r   ir   )rN   rO   rz   ry   r   r   r0   )r!   r   r   r   r   r   r8   rM  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 )Nrf   rd  )r   ry   r0   rz   r7   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   r0   r.   r  r   r!   r8   r   s      r   test_iconcatzByteArrayTest.test_iconcat  s    f	VI&&&Ba	VL)))	AGA II?@@@@@  	 	 	DD	s   5B 
BBc                     t          d          }|}|dz  }|                     |d           |                     ||           |                     ||           d S )Nr  ru   r"  r   r0   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*  rT   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   rT   r*  )r   	__alloc__assertGreaterEqualry   assertGreaterra   r   )r!   r8   allocr  rn   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 )NrK   rT   )ry   rz   r0   ra   r  r  r  )rn   r@   r  r8   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   rK   rT   c   )r   r"   r0   rz   ry   ra   r  r  )r!   r  r  r8   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   )r?  rq  s     r   ro   z,ByteArrayTest.test_extend.<locals>.<genexpr>  s(      ++AQ++++++r   2   r   )r   rK   r_   rf   )r   rK   r_   rW   r   r@   r8  )r   r  r0   r   r?  r}   rz   rb   r   ra   r   r   )r!   r  r@   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   rF   s   r   rG   z+ByteArrayTest.test_remove.<locals>.<lambda>-  s    ahhs3xx.@.@ r   c                  .                          d          S )Ni  r  rF   s   r   rG   z+ByteArrayTest.test_remove.<locals>.<lambda>.  s    ahhsmm r   c                  .                          d          S )Nr1  r  rF   s   r   rG   z+ByteArrayTest.test_remove.<locals>.<lambda>/  s    QXXc]] r   r$  r#  r2  c                  .                          d          S )Nr2  r  rF   s   r   rG   z+ByteArrayTest.test_remove.<locals>.<lambda>4      QXXd^^ r   r1  r   )~   r  rp      r  )r  rp   r  r  r  rp   )	r   r  r   r0   rb   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  rZ   r  c                  .                          d          S )NrS   )r  rF   s   r   rG   z(ByteArrayTest.test_pop.<locals>.<lambda>D  s    aeeBii r   c                  B    t                                                      S r   )r   r  r   r   r   rG   z(ByteArrayTest.test_pop.<locals>.<lambda>E  s    ikkoo.?.? r   r\  r   )r   r0   r  r   rb   rc   r7   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   rG   z+ByteArrayTest.test_nosort.<locals>.<lambda>J  s    )++2B2B2D2D r   )rb   AttributeErrorr%   s    r   test_nosortzByteArrayTest.test_nosortI  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  rT   ArK   c                  .                          d          S )Nr  )r   rF   s   r   rG   z+ByteArrayTest.test_append.<locals>.<lambda>T  r  r      A)r   r   r   r0   ra   rb   r   r   r7   s    @r   test_appendzByteArrayTest.test_appendL  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   msssspprK   rn   r   rZ   r   r  c                  0                          dd          S )Nr      1)insertrF   s   r   rG   z+ByteArrayTest.test_insert.<locals>.<lambda>`  s    QXXa->-> r   r   r  r   )r   r%  r   r0   rb   r   r   r7   s    @r   test_insertzByteArrayTest.test_insertY  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   rl   s     r   r  z-ByteArrayTest.test_copied.<locals>.<listcomp>k  s    ---Qq---r   rf   r   )r   r  r  ry   r4  )r!   r8   tr+  s       r   test_copiedzByteArrayTest.test_copiede  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  r0   r  r  )r!   r@   r8   r'  s       r   0test_partition_bytearray_doesnt_share_nullstringz>ByteArrayTest.test_partition_bytearray_doesnt_share_nullstringo  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 )	NrS   c                 D    t          | dz   d| z  dz
            dd<   d S )NrK   r_   rW   )ry   )r  r8   s    r   resizez3ByteArrayTest.test_resize_forbidden.<locals>.resize  s*    AE1Q37++AadGGGr      r  r   rK   c                       d= d S rJ   r   rF   s   r   delitemz4ByteArrayTest.test_resize_forbidden.<locals>.delitem  s    !r   c                      d ddd<   d S )Nr   rK   rW   r_   r   rF   s   r   delslicez5ByteArrayTest.test_resize_forbidden.<locals>.delslice  s    Aa1fIIIr   )r   ry   rU  rb   BufferErrorr0   r  r  )r!   vr1  r  r4  r6  r8   s         @r   test_resize_forbiddenz#ByteArrayTest.test_resize_forbidden  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 )Nr9  )r   r:  rb   r7  getbuffer_with_null_viewr   )r!   r9  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   qwertyrK   )r   rz   ry   r  r  r}   r  r  r0   r/   r  ra   rb   StopIteration)	r!   r  rM  r  itorigr  r  r8   rn   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 )Nr;  )r   r}   r  r   r0   rz   )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*  r_   rK   ru   s   xcs   xcxcxcr   r0   )r!   r8   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 rE   r   r7   s    r   r&   z9ByteArrayTest.test_mutating_index.<locals>.Boom.__index__  s    			qr   Nr   rF   s   r   BoomrH    s.              r   rJ  tp_as_mappings   Now you see me...r   tp_as_sequencer9  )subTestr   rb   rc   r   r:  sequence_setitem)r!   rJ  r9  r8   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   r5   rL  r  r  r  r  r  rB   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r!  r&  r*  r.  r9  r,  r-  cpython_onlyr<  r@  
list_tests
CommonTesttest_exhausted_iteratorrB  rE  rO  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   reprr0   r   )r!   rA  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   r0   r  r   r  r   r  escaper/   r(   r7   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  Tr;  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   rU  r   r0   )r!   r  bufr8   s       r   test_from_bytearrayz%AssortedBytesTest.test_from_bytearray1  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'r]  zb'\x80'rW  zbytearray(b'x')zbytearray(b'\x80'))r0   r   r   r%   s    r   test_to_strzAssortedBytesTest.test_to_str7  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   rp   rf   zb"%s")r0   r   ry   rb   SyntaxErrorevalre  )r!   testsr8   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  r|  r8  r9  )r0   r  rU  r%   s    r   test_split_bytearrayz&AssortedBytesTest.test_split_bytearrayM  s6    j&6&677$FFFFFr   c                 v    |                      d                    t          d                    ddg           d S ro  )r0   r  rU  r%   s    r   test_rsplit_bytearrayz'AssortedBytesTest.test_rsplit_bytearrayP  s6    z$'7'7884,GGGGGr   c                 v    t                      }|                     |                    dd          |           d S )Nr   )r   r  r  r7   s     r   test_return_selfz"AssortedBytesTest.test_return_selfS  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!   rw  s     r   r   zAssortedBytesTest.test_compareX  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   rZ  r]  r_  r,  r-  requires_docstringsrc  rf  rh  rm  rp  rr  rt  unittest
skipUnlessrN   flagsrw  r   r   r   r   rU  rU    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   rU  c                       e Zd Zd Zd ZdS )BytearrayPEP3137Testc                      t          |          S r   rx  )r!   r+  s     r   marshalzBytearrayPEP3137Test.marshal  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  ru   z" returned self on a mutable object)zval.split()[0]zval.rsplit()[0]zval.partition(b".")[0]zval.rpartition(b".")[2]zval.splitlines()[0]zval.replace(b"", b"")z! returned val on a mutable objectr   )r  getattrr0   r  rk  r~  )r!   valmethnamer'  newvalexprseps          r   test_returns_new_copyz*BytearrayPEP3137Test.test_returns_new_copy  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*   r  r  r   r   r   r~  r~    s2          & & & & &r   r~  c                   "     e Zd Z fdZdZ xZS )FixedStringTestc                     t          |t                    r(|                     |                    d                    S t	                                          |          S )Nr   )
isinstancer   r5   r  superfixtype)r!   r<  r6   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__)r6   s   @r   r  r    s3        $ $ $ $ $
 NNNNNr   r  c                       e Zd ZeZdS )ByteArrayAsStringTestN)r(   r)   r*   r   r5   r   r   r   r  r    s        IIIr   r  c                       e Zd ZeZdS )BytesAsStringTestN)r(   r)   r*   r   r5   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)r<      efghr   )r   
issubclassr5   basetyper5  r  r0   )r!   r@   r8   _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 r;   )r5   r  r~  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 )Nr<   rS   r  rK   y)r5   r+  zry   r  r  r  r  r  r  r0   r/   r   hasattr)r!   r@   r  r8   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 )Nr<   rS   r  r  )r5   r+  r  r=   r>   r  r  r0   r/   r   r  r?   s       r   rB   zSubclassTest.test_copy  s/   NN7##nnW%% 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 )NrG  rS  c                       e Zd Z fdZdS )%SubclassTest.test_fromhex.<locals>.B1c                 L    j                             | |          }d|_        |S NrF  )r  rc  rE  )re  r   mer!   s      r   rc  z-SubclassTest.test_fromhex.<locals>.B1.__new__  s&    ]**366	r   N)r(   r)   r*   rc  r%   s   r   B1r    r   r   r  rF  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"   rE  )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  )r5   rK  r0   r.   r/   r  rE  )r!   r8   r  r  s   `   r   rP  zSubclassTest.test_fromhex  sr   N""8,,O,,,d1ggt~...	 	 	 	 	 	 	 	 	 	 JJx  O,,,d1ggr"""&&&	 	 	 	 	 	 	 	 	 	 JJx  O,,,d1ggr"""&&&&&r   N)r(   r)   r*   r  r  r  rB   rP  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 )rq  Nr   r   r   r   rq  rq    r  r   rq  c                       e Zd ZdS )rr  Nr   r   r   r   rr  rr    r  r   rr  c                       e Zd Zd Zd ZdS )rs  c                     || _         d S r   r   r    s     r   r"   zWithBytes.__init__  r#   r   c                     | j         S r   r   r%   s    r   rD  zWithBytes.__bytes__  r'   r   N)r(   r)   r*   r"   rD  r   r   r   rs  rs    s2              r   rs  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>.subclassrK   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   r<   )source)r  r  rD  )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  r5   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  r5   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  rq  r5   r   r   r   r  r  2  s        HIIIr   r  __main__)0r   rP  r  rN   r=   r   r  r  r  rz  test.supportr,  r   r   test.string_teststest.list_testsr   r   test.support.script_helperr   r|  rw  r   r   r,   TestCaser?  r  rU  r~  string_testsBaseTestr  r  r  r  r   r  r  r   rq  rr  rs  r  r  r  r(   mainr   r   r   <module>r     s    				 				 



              & & & & & & ( ( ( ( ( (         9 9 9 9 9 9 9 9 < < < < < < 9 
            yA yA yA yA yA yA yA yAxz. z. z. z. z.x0 z. z. z.z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   