
    daf                     "   d Z ddlmZ ddlmZmZmZmZ ddlZddl	Z	ddl
Z
dZdZdZe
j                  dk  rdnd	Z G d
 d      Z G d dej"                  e      Z G d dej"                  e      Z G d dej"                  e      Z G d dej"                        Z G d dej"                        Z G d dej"                        Zedk(  rF ee
j4                        dkD  r ej6                  e
j4                  d           ej8                          yy)a  Bigmem tests - tests for the 32-bit boundary in containers.

These tests try to exercise the 32-bit boundary that is sometimes, if
rarely, exceeded in practice, but almost never tested.  They are really only
meaningful on 64-bit builds on machines with a *lot* of memory, but the
tests are always run, usually with very low memory limits to make sure the
tests themselves don't suffer from bitrot.  To run them for real, pass a
high memory limit to regrtest, with the -M option.
    )support)
bigmemtest_1G_2G_4GN         l           c                   
   e Zd Zd Z eedz   d      d        Z eed      d        Z eed      d        Z eedz   d      d	        Z	 eed      d
        Z
 eed      d        Z eed      d        Z eed      d        Z eed      d        Z eed      d        Z eed      d        Z eed      d        Z eed      d        Z eed      d        Z eedz   d      d        Z eedz   d      d        Z eedz   d      d        Z eedz   d      d        Z eed      d        Z eed      d        Z eedz   d      d        Z eedz   d      d        Z eed      d        Z eedz   edz  ez         d        Z eed      d         Z  eed      d!        Z! eed      d"        Z"d# Z#d$ Z$ eed      d%        Z% eedz   d      d&        Z& eed'z   d      d(        Z' ee(dz   d)      d*        Z) ee(dz   d)      d+        Z* eed'z   d      d,        Z+ eed      d-        Z, eedz   d      d.        Z- eedz   d      d/        Z.y0)1BaseStrTestc                 "   | j                   }| j                  d      } |d      |z  |z   }|j                         }| j                  |t        |       d  |j                                | j                  |j	                   |d            |       y N abc def ghi-)from_latin1
capitalizeassertEquallenlstrip)selfsize_SUBSTRscapss         +/root/Python-3.12.4/Lib/test/test_bigmem.py_test_capitalizezBaseStrTest._test_capitalizeH   s    !!.1cFTMF"||~s6{lm,**,	.QsV,f5    
   r   r   memusec                 d   | j                  d      }|j                  |      }| j                  t        |      |       t        |      t        |      z
  dz  x}}t        |      dz  r|dz  }| j                  |||  |       | j                  |j	                         |j	                                y )Nr   r	   r   )r   centerr   r   strip)r   r   r   r   lpadsizerpadsizes         r   test_centerzBaseStrTest.test_centerQ   s    !!.1MM$Q&"1vF3998q6A:MH8XI.7FLLN3r   r	   c                    | j                   } |d      } |d      |z  |z   }| j                  |j                   |d            |       | |d      z  }| j                  |j                   |d            |dz          | j                  |j                   |d            d       | j                  |j                   |d            d       | j                  |j                   |d            d       y )	Nr   .r       ijr   )r   r   countr   r   r   r   r   s        r   
test_countzBaseStrTest.test_count\   s    >"cFTMF"3$/	QsV3$(33!,3!,3!,r   c                    | j                   } |d      } |d      |z  |z   }| j                  |j                  |             | j                  |j                  |              |d      |z   }| j                  |j                  |             | j                  |j                   |d      |z                | j                  |j                  |             y )Nr   r   ...a)r   
assertTrueendswithassertFalse)r   r   r   r   r   s2s         r   test_endswithzBaseStrTest.test_endswithh   s    >"cFTMF"

6*+

1&uX\A'AcFVO45+,r   c           	      n   | j                   } |d      |z  }d}| j                  |j                         |k(         ~t        ||      \  }} |d      |z  }|j                  |      }| j	                  t        |      ||z
         | j	                  t        |j                   |d                  d       y )Nr   r   z       	r+   r   )r   r5   
expandtabsdivmodr   r   r%   )r   r   r   r   tabsizeslen	remainders          r   test_expandtabszBaseStrTest.test_expandtabst   s    cFTM!+, w/ikNT!LL!Q	!12QWWQsV_-q1r   c           	         | j                   } |d      }t        |      } |d      j                  | |d      |z  |g      }| j                  |j	                   |d            d       | j                  |j	                  |      d       | j                  |j	                   |d      |      ||z          | j                  |j	                  |t        |            ||z          | j                  |j	                   |d            |j	                   |d                   | j                  |j	                   |d      |      ||z   |j	                   |d            z          | j                  |j	                   |d      |      ||z   |j	                   |d            z          | j                  |j	                   |d            d       y 	Nr    r   r+   r   r-   r.   )r   r   joinr   findr   r   r   r   sublenr   s         r   	test_findzBaseStrTest.test_find   sp   >"VbEJJ#v67#++#/$?F4ftmD#QsV)<=#/$QsV)<<	>#-$QsV)<<	>#,r   c           	         | j                   } |d      }t        |      } |d      j                  | |d      |z  |g      }| j                  |j	                   |d            d       | j                  |j	                  |      d       | j                  |j	                   |d      |      ||z          | j                  |j	                  ||      ||z          | j                  |j	                   |d            |j	                   |d                   | j                  |j	                   |d      |      ||z   |j	                   |d            z          | j                  |j	                   |d      |      ||z   |j	                   |d            z          | j                  t        |j                   |d             y )Nr   rC   r   r+   r   r-   r.   )r   r   rE   r   indexassertRaises
ValueErrorrG   s         r   
test_indexzBaseStrTest.test_index   sj   >"VbEJJ#v673!,!,30&4-@0&4-@3&,,qv*>?30$af)==	?3.$af)==	?*aggqv6r   c                     | j                   } |d      } |d      |z  |z   }| j                  |j                                | |d      z  }| j                  |j                                y )N123456r4   r*   )r   r5   isalnumr7   r0   s        r   test_isalnumzBaseStrTest.test_isalnum   [    8cFTMF"		$	QsV%r   c                     | j                   } |d      } |d      |z  |z   }| j                  |j                                | |d      z  }| j                  |j                                y )Nzzzzzzzr4   r*   )r   r5   isalphar7   r0   s        r   test_isalphazBaseStrTest.test_isalpha   s[    9cFTMF"		$	QsV%r   c                     | j                   } |d      } |d      |z  |z   }| j                  |j                                | |d      z  }| j                  |j                                y )NrP   9z)r   r5   isdigitr7   r0   s        r   test_isdigitzBaseStrTest.test_isdigit   rS   r   c                 (   | j                   } |dj                  d t        d      D                    }|t        |      z  dz   }||z  }| j	                  |j                                | |d      z  }| j                  |j                                y )NrC   c              3   f   K   | ])  }t        |      j                         rt        |       + y wN)chrisupper.0cs     r   	<genexpr>z+BaseStrTest.test_islower.<locals>.<genexpr>   (      @c!fnn.>CF@   11   r	   A)r   rE   ranger   r5   islowerr7   r   r   r   charsrepeatsr   s         r   test_islowerzBaseStrTest.test_islower       "'' @!#J@ @ A#e*$q(GO		$	QsV%r   c                     | j                   } |d      }|t        |      z  dz   }||z  }| j                  |j                                | |d      z  }| j	                  |j                                y )Nz 
	r	   r.   )r   r   r5   isspacer7   )r   r   r   
whitespacern   r   s         r   test_isspacezBaseStrTest.test_isspace   sg    }%
#j/)A- 		$	QsV%r   c                 d   | j                   } |d      } |d      j                   |d       |d      |z  |g      }| j                  |j                                | |d      z  }| j                  |j                                | |d      z  }| j	                  |j                                y )NrP   rC   ri   r4   aA)r   rE   r5   istitler7   r0   s        r   test_istitlezBaseStrTest.test_istitle   s    8bEJJ##v67		$	QsV		$	QtW%r   c                 (   | j                   } |dj                  d t        d      D                    }|t        |      z  dz   }||z  }| j	                  |j                                | |d      z  }| j                  |j                                y )NrC   c              3   f   K   | ])  }t        |      j                         rt        |       + y wr_   )r`   rk   rb   s     r   re   z+BaseStrTest.test_isupper.<locals>.<genexpr>   rf   rg   rh   r	   r4   )r   rE   rj   r   r5   ra   r7   rl   s         r   test_isupperzBaseStrTest.test_isupper   rp   r   c                    | j                   } |d      |z  }|j                   |d       |d      g      }| j                  |j                   |d            d       | j                  |j                   |d            d       | j	                  |j                   |d                   | j	                  |j                   |d                   y )	Nri   aaaaabbbbbr4      baaaaaAAbbbbb)r   rE   r   r/   r5   
startswithr6   )r   r   r   r   xs        r   	test_joinzBaseStrTest.test_join   s    cFTMFFAgJ'
+,3!,3!,Qx[12

1X;/0r   c                 2   | j                   } |d      }|j                  |      }| j                  |j                  | |d      z                | j	                  t        |      |       | j	                  |j                         |j                                y Nr   z  r   ljustr5   r   r   r   r%   r0   s        r   
test_ljustzBaseStrTest.test_ljust   s    >"LLVag%567Q&FLLN3r   c                     | j                   } |d      |z  }|j                         }| j                  t        |      |       | j                  |j	                   |d            |       y )Nri   r4   )r   lowerr   r   r/   r   r   r   r   s       r   
test_lowerzBaseStrTest.test_lower   U    cFTMGGIQ&3$/r   c                    | j                   } |d      }|j                  |      }| j                  t        |      |       | j                  |j	                         |j	                                ~|j                  |      }| j                  t        |      |       t        |t        t        f      r$|j	                         }| j                  ||u        y y )Nzabc def ghi)
r   rjustr   r   r   r   
isinstancestrbytesr5   r   r   r   r   r   strippeds         r   test_lstripzBaseStrTest.test_lstrip  s    =!LLQ&V]]_5LLQ&a#u&xxzHOOHM* 'r   c                    | j                   } |d      } |d      |z  }|j                   |d      |      }| j                  t        |      |       | j                  |j	                  |      |       |j                  | |d      |dz
        }| j                  t        |      |       | j                  |j	                  |      d       | j                  |dd   |d             y )Nr4   r+   r
   z
      aaaa)r   replacer   r   r/   )r   r   r   replacementr   s        r   test_replacezBaseStrTest.test_replace  s    fcFTMIIafk*Q&-t4IIk1S64!84Q&-q134!L/2r   c           	         | j                   } |d      }t        |      } |d      j                  | |d      |z  |g      }| j                  |j	                   |d            ||z   |j	                   |d            z          | j                  |j	                  |      ||z          | j                  |j	                   |d      d|      |j	                   |d                   | j                  |j	                  |d||z         d       | j                  |j	                   |d            ||z   |j	                   |d            z          | j                  |j	                   |d      d|      |j	                   |d                   | j                  |j	                   |d      d||z         |j	                   |d                   | j                  |j	                   |d            d       y rB   )r   r   rE   r   rfindrG   s         r   
test_rfindzBaseStrTest.test_rfind   s   >"VbEJJ#v673&4-&,,qv:N*NO&4-83D16<<#3GHFTM:A>3&4-&,,qv:N*NO3F3V\\!C&5IJ3FTM:af-	/3"-r   c           	         | j                   } |d      }t        |      } |d      j                  | |d      |z  |g      }| j                  |j	                   |d            ||z   |j	                   |d            z          | j                  |j	                  |      ||z          | j                  |j	                   |d      d||z   dz
        |j	                   |d                   | j                  |j	                  |d||z         d       | j                  |j	                   |d            ||z   |j	                   |d            z          | j                  |j	                   |d      d|      |j	                   |d                   | j                  |j	                   |d      d||z         |j	                   |d                   | j                  t        |j                   |d             y )	Nr   rC   r   r+   r   r   r-   r.   )r   r   rE   r   rindexrL   rM   rG   s         r   test_rindexzBaseStrTest.test_rindex0  s   >"VbEJJ#v67!C&)$qv)>>	@&)6D=9!C&!Vd]Q->?qv.	0&!Vd];Q?!C&)$qv)>>	@!C&!V4fmmAcF6KL!C&!Vd];qv.	0*ahh#7r   c                 2   | j                   } |d      }|j                  |      }| j                  |j                  | |d      z                | j	                  t        |      |       | j	                  |j                         |j                                y r   r   r0   s        r   
test_rjustzBaseStrTest.test_rjustC  r   r   c                    | j                   } |d      }|j                  |      }| j                  t        |      |       | j                  |j	                         |j	                                ~|j                  |      }| j                  t        |      |       t        |t        t        f      r$|j	                         }| j                  ||u        y y )Nr   )
r   r   r   r   rstripr   r   r   r   r5   r   s         r   test_rstripzBaseStrTest.test_rstripL  s    >"LLQ&V]]_5LLQ&a#u&xxzHOOHM* 'r   g @c                    | j                   }t        |dz  dz         } |d       |d      |z  z   }||z  }|j                         }| j                  t	        |      |        |d      }|D ]  }| j                  ||        ~|j                   |d            }| j                  t	        |      |dz           |d      |z  }t        d |      D ]  }| j                  ||        y )N      ?r	   r4   r+   r   )r   intsplitr   r   filter	r   r   r   	chunksizer   r   lexpecteditems	            r   test_split_smallzBaseStrTest.test_split_small^  s     a(	3!C&9,,YGGIQ+S6 	-DT8,	-GGAcFOQQ/S6I%4O 	-DT8,	-r   r   c                    | j                   } |d      |z   |d      z   }|j                         }| j                  t        |      |       | j                  t	        |      t	         |d      g             ~|j                   |d            }| j                  t        |      |dz          | j                  t	        |      t	         |d      g             y )Nz ar+   r4   r   )r   r   r   r   set)r   r   r   r   r   s        r   test_split_largezBaseStrTest.test_split_largex  s    dGdNQsV#GGIQ&QafX/GGAcFOQ*QafX/r   c                 J   | j                   }t        |dz  dz         dz  } |d      |z   |d      z    |d      |z  z    |d      z   }||dz  z  }|j                         }| j                  t	        |      |dz          |d      |z  }|D ]  }| j                  ||        y )Nr   r	   r+   
z
r
   )r   r   
splitlinesr   r   r   s	            r   test_splitlineszBaseStrTest.test_splitlines  s     a(A-	3)#ag-#0BBQvYNi!m$LLNQQ/S6I% 	-DT8,	-r   c                    | j                   } |d      } |d      |z  |z   }| j                  |j                  |             | j                  |j                   |d      |z               | j                  |j                  |             y r   )r   r5   r   r7   r0   s        r   test_startswithzBaseStrTest.test_startswith  sq    >"cFTMF"Q(QsVd]34f-.r   c                    | j                   } |d      }|j                  |      }| j                  t        |      |       | j                  |j	                         |j	                                ~|j                  |      }| j                  t        |      |       | j                  |j	                         |j	                                y )Nz   abc def ghi   )r   r   r   r   r%   r   r0   s        r   
test_stripzBaseStrTest.test_strip  s    &'LLQ&FLLN3LLQ&FLLN3r   c                 ^   | j                   } |d      }t        |      }||z  dz   }||z  }|j                         }| j                  t        |      ||z         | j                  |d |dz   |j                         dz         | j                  || dz  d  |j                         dz         y )Nu   aBcDeFG12.'© r	   r,   )r   r   swapcaser   )r   r   r   r   rH   rn   r   s          r   _test_swapcasezBaseStrTest._test_swapcase  s    ()V&.1$WJJLQ'!12;FQJ):Q)>?F7Q;<&//*;a*?@r   c                 8   | j                   } |d      }||t        |      z  dz   z  }|j                         }| j                  |j	                  |dz  j                                      | j                  |j                  |j                         dz               y )NSpaaHAaaAahamr	   r,   )r   r   titler5   r   r6   r   r0   s        r   _test_titlezBaseStrTest._test_title  s|    ?#dc&k)A-.GGIfqj%7%7%9:;

6<<>A#567r   c                 n   | j                   } |d      }t        j                  dd      }t        |      }||z  dz   }||z  }|j	                  |      }| j                  t        |      ||z         | j                  |d | |j	                  |             | j                  || d  |j	                  |             | j                  |j                   |d            d       | j                  |j                   |d            |dz         | j                  |j                   |d            |d	z         y )
N
aZz.z.Aaz.s   .aZs   -!$r	   r*   r   !rZ   r,   )r   r   	maketransr   	translater   r/   r   r   r   r   transrH   rn   r   s           r   test_translatezBaseStrTest.test_translate  s   </V&.1$WKKQ6!127FV%5%5e%<=F78f&6&6u&=>3!,3'A+63'A+6r   c                     | j                   } |d      |z  }|j                         }| j                  t        |      |       | j                  |j	                   |d            |       y )Nr4   ri   )r   upperr   r   r/   r   s       r   
test_upperzBaseStrTest.test_upper  r   r      c                    | j                   } |d      }|j                  |      }| j                  |j                   |d      |dd  z                | j                  |j	                   |d                   | j                  t        |      |       | j                  |j                   |d            |t        |      z
         y )Nz-5683247235982340r   z-0)r   zfillr5   r6   r   r   r   r/   r0   s        r   
test_zfillzBaseStrTest.test_zfill  s    %&LL

1S6F12J#678QtW-.Q&3$V*<=r   r,   c                    | j                   } |d      |z  }| j                  t        |      |       ||z   }| j                  t        |      |dz         | j                  |j                   |d            |dz         y Nr*   r	   r   r   r   r/   r   s       r   test_concatzBaseStrTest.test_concat  o    cFTMQ&EQ*3$(3r   c                    | j                   } |d      |z  }| j                  t        |      |       |dz  }| j                  t        |      |dz         | j                  |j                   |d            |dz         y r   r   r   s       r   test_repeatzBaseStrTest.test_repeat  r   r   c           	         | j                   } |d      }t        |      }|||z  z  }t        |      dz  }|||z  z
  }t        dt        |      |z
  |      D ]  }| j                  ||   |d          | j                  ||||z    |       | j                  ||||z   d   |d d d          |dkD  sZ| j                  |||z   dz
  |dz
  d   ||d d           | j                  |t        |      dz
     |d          | j                  |d   |d          | j                  |t        |      dz
     |d          | j                  ||    |d          | j                  |t        |      d   |d	             | j                  |t        |      dz
  d  |dd         | j                  |dd  |dd         | j                  |t        |      |z
  d  |       | j                  || d  |       | j                  t        |d d        t        |             | j                  t        |d t        |      d
z
         t        |      d
z
         | j                  t        |d
d       t        |      dz
         | j	                  t
        t        j                  |t        |             | j	                  t
        t        j                  |t        |      dz          | j	                  t
        t        j                  |t        |      dz   dz         y )N
0123456789d   r   r	   r   rD   r    rC   r      )r   r   rj   r   rL   
IndexErroroperatorgetitem)r   r   r   r   rH   r   stepsizer-   s           r   test_slice_and_getitemz"BaseStrTest.test_slice_and_getitem  s   <Vdfn%q6S=x&01q#a&8+X6 	5AQqT6!9-QqV_f5QqVA~.ss<1u  1v:>!a%#:!;!'

!35	5 	3q6A:r
32r
+3q6B;3F7VAY/3q67QrU+3q6A:;523-3q6F?+,f5F78f-QqTCF+Q{A
^,c!fqj9QqWs1v{3*h&6&63q6B*h&6&63q6A:F*h&6&63q6A:r>Jr   c                 |   | j                   } |d      } |d      |dz  z  } |d      j                  |||g      }~| j                  ||v        | j                  |dz  |v        | j                   |d      |v        | j                   |d      |v        | |d      z  }| j                   |d      |v        y )Nr   r   r	   rC   r4   )r   rE   r5   r7   )r   r   r   r   edger   s         r   test_containszBaseStrTest.test_contains  s    <v#bEJJfd+,!$!q)#!$31%	QsV#!$r   c                     | j                   } |d      |z  } |d      |z  }| j                  ||k(         ~| |d      z   }| j                  ||k(         ~ |d      |z  }| j                  ||k(         y )Nr   r4   r*   )r   r5   r7   )r   r   r   s1r8   s        r   test_comparezBaseStrTest.test_compare"  s{    sVd]sVd]b!!C&[r"sVd]r"r   c                     | j                   } |d      |z  }t        |      }~ |d      |dz   z  }| j                  |t        |             y )N r   )r   hashassertNotEqual)r   r   r   r   h1s        r   	test_hashzBaseStrTest.test_hash/  sO     fI!WfI"BQ(r   N)/__name__
__module____qualname__r   r   r   r(   r1   r9   r@   rI   rN   rR   rW   r\   ro   rt   rx   r{   r   r   r   r   r   r   r   r   r   r   ascii_char_sizepointer_sizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   F   s,   6 S2Xa(4 )4 S#	- $	- S#	- $	- S2Xa(
2 )
2 S#- $-  S#7 $7  S#& $& S#& $& S#& $& S#& $& S#& $& S#& $& S#& $& S#1 $1 S2Xa(4 )4 S2Xa(0 )0 S2Xa(+ )+ S2Xa(
3 )
3 S#. $. S#8 $8$ S2Xa(4 )4 S2Xa(+ )+" S%- &-2 S1W_q%8<%GH	0 I	0 S%- &- S#/ $/ S#	4 $	4	A8 S#7 $7 S1WQ'0 (0 S2Xa(> )> S1WQ'4 (4 S1WQ'4 (4 S2Xa(K )KB S#% $% S2Xa(
# )
# S2Xa() ))r   r   c                      e Zd Zd ZddZd Zd Z eee	dz  e
dz  z         d	        Z eee	dz  e
dz  z         d
        Z eee	dz  e
dz  z         d        Z eedz   e
dz         d        Z eedz  dz   e
e	z   dz         d        Z eedz  dz   e
dz   dz         d        Z eedz  dz   e
e	z   dz         d        Z eedz
  e
dz         d        Z eedz   e
dz  e	z         d        Z eedz   e
dz        d        Z eedz   e
dz        d        Z eedz  dz   ee	z   e
dz  z         d        Z eedz  dz   e	dz  e
dz  z         d        Z eee
dz  e	z         d        Zy)StrTestc                     |S r_   r   r   r   s     r   r   zStrTest.from_latin1A  s    r   Nc                 ~    ||}	 ||z  }| j                  t        |j                  |            |       d }y # d }w xY wr_   )r   r   encode)r   r   encrd   expectedsizer   s         r   basic_encode_testzStrTest.basic_encode_testD  sC    L	DAS#/>AAs   /8 <c                     i | _         t        t              D ]S  }|j                  d      st	        t        |       |      }	 |j                  }t        |z  |_        || j                   |<   U y # t        $ r Y bw xY w)Ntest_)		_adjusteddirr   r   getattrtyper"   AttributeErrorr   )r   namemethr"   s       r   setUpzStrTest.setUpM  s|     $ 		*D??7+4:t,D *F2DK#)DNN4 		* " s   A..	A:9A:c                 |    | j                   j                         D ]  \  }}|t        t        |       |      _        ! y r_   )r  itemsr  r  r"   )r   r
  r"   s      r   tearDownzStrTest.tearDown\  s5     NN002 	6LD&/5GDJ%,	6r   r,   r	   r!   c                 &    | j                  |       y r_   r   r   r   s     r   test_capitalizezStrTest.test_capitalize`      d#r   c                 &    | j                  |       y r_   r   r  s     r   
test_titlezStrTest.test_titled      r   c                 &    | j                  |       y r_   r   r  s     r   test_swapcasezStrTest.test_swapcaseh      D!r   r   c                 &    | j                  |d      S )Nutf-8r  r  s     r   test_encodezStrTest.test_encodeo  s    %%dG44r      c                 F    	 | j                  |d      S # t        $ r Y y w xY w)Nraw_unicode_escaper  MemoryErrorr  s     r   test_encode_raw_unicode_escapez&StrTest.test_encode_raw_unicode_escapes  s-    	))$0DEE 		    	  r   F   r   c                 F    	 | j                  |d      S # t        $ r Y y w xY w)Nutf7r$  r  s     r   test_encode_utf7zStrTest.test_encode_utf7z  s,    	))$77 		r'  r
   c                 V    	 | j                  |dd|z  dz         S # t        $ r Y y w xY w)Nutf32r
   )r  r$  r  s     r   test_encode_utf32zStrTest.test_encode_utf32  s:    	))$a$hQRl)SS 		s    	((c                 *    | j                  |dd      S )Nasciiri   )rd   r  r  s     r   test_encode_asciizStrTest.test_encode_ascii  s    %%dGs%;;r   r    c                 0   d|z  }|}| j                  ||k(         ~d|d}| j                  t        |      t        |      dz          | j                  |j                  d             | j                  |j	                  d             ~~|dz  }d|z  }dj                  |d|g      }~|d	z  }| j                  t        |      |dz  d
z          | j                  |j                  d      d
       | j                  |j                  d      |dz         y )Nr   z..r
   z..-z-..r	   rC   z%sr3   r,   r*   )r5   r   r   r   r6   rE   r/   )r   r   r   sfr   s        r   test_formatzStrTest.test_format  s    $JR _R#a&1*-e,-E*+r
TzGGT4&'IQA.q)tax0r   c                 H   d|z  }t        |      }| j                  t        |      |dz          | j                  |d   d       | j                  |d   d       | j                  |j                  d      |       ~|dz  dz  }d|z  }t        |      }| j                  t        |      |dz  dz          | j                  |d   d       | j                  |d   d       | j                  |j                  d	      |       | j                  |j                  d
      |dz         y )Nr   r	   r   'rD   r   r   r
   \r   reprr   r   r/   r   r   r   s      r   test_repr_smallzStrTest.test_repr_small  s   $JGQ*1s#2$t, qy1}TMGQA.1s#2$-tax0r   c                 D   d|z  }t        |      }| j                  t        |      |dz  dz          | j                  |d   d       | j                  |d   d       | j                  |j                  d      |       | j                  |j                  d      |dz         y )	Nr   r
   r	   r   r6  rD   r7  r   r8  r:  s      r   test_repr_largezStrTest.test_repr_large  s    TMGQA.1s#2$-tax0r   c           
         d}||z  }	 t         t        fD ]c  } ||      }| j                  t        |      dt         ||            dz
  |z  z          | j	                  |j                  d      |dd         d }e 	 d x}}y # d x}}w xY w)Nu   r	   z\udcba'r   r9  r0  r   r   r5   r6   r   r   charr   frs         r   test_unicode_reprzStrTest.test_unicode_repr  s    
 4K	E] aD  Qc!D'lQ.>$-F)FG

: 6#$@	 LADLA   A2B Bc           
         d}||z  }	 t         t        fD ]c  } ||      }| j                  t        |      dt         ||            dz
  |z  z          | j	                  |j                  d      |dd         d }e 	 d x}}y # d x}}w xY w)Nu   𝲺r	   z\U0001dcba'ir?  r@  s         r   test_unicode_repr_widezStrTest.test_unicode_repr_wide  s    4K	E] aD  Qc!D'lQ.>$-F)FG

> :AcdGD	 LADLArE  c           	         | j                   } |d      }t         |d             |d      t         |d             |d      t         |d             |d      i}t        |      }||z  dz   }||z  }|j                  |      }| j	                  t        |      ||z         | j	                  |d | |j                  |             | j	                  || d  |j                  |             | j	                  |j                   |d            d	       | j	                  |j                   |d            |dz         | j	                  |j                   |d
            |dz         y )Nr   r*   r   r4   r   Z$r	   r   rZ   r,   )r   ordr   r   r   r/   r   s           r   r   zStrTest.test_translate  s:   <#K3#K3#K3

 V&.1$WKKQ6!127FV%5%5e%<=F78f&6&6u&=>3!,3'A+63'A+6r   )r*   N)r   r   r   r   r  r  r  r   r   ucs4_char_sizer   r  r  r  r   r   r&  r+  r.  r1  r4  r;  r=  ucs2_char_sizerD  rG  r   r   r   r   r   r   ?  sr   *6 S!!3o6I!IJ$ K$ S!!3o6I!IJ K S!!3o6I!IJ" K" S1W_q%895 :5 SAX\/N*JQ*NO P SAX]?Q+>+BC D SAX\/N*JQ*NO P S1W_q%89< :<
 S2Xo&9N&JK1 L1( S2Xo&9:1 ;1( S2Xo&9:1 ;1 SAX\.*8+9;JQ;N+O PP SAX\.1*<QS?S*ST
 U
  S1!4~!EF7 G7r   r   c                       e Zd Zd Z eedz   dez         d        Z eed      d        Z eed      d        Z	 eed      d        Z
y	)
	BytesTestc                 $    |j                  d      S Nzlatin-1)r   r   s     r   r   zBytesTest.from_latin1  s    xx	""r   r	   r   r!   c                     | j                  d      |z  }| j                  t        |j                  d            |       y Nr*   r  r   r   r   decoder:  s      r   test_decodezBytesTest.test_decode  5    S!D(QXXg./6r   c                 &    | j                  |       y r_   r  r  s     r   r  zBytesTest.test_capitalize  r  r   c                 &    | j                  |       y r_   r  r  s     r   r  zBytesTest.test_title  r  r   c                 &    | j                  |       y r_   r  r  s     r   r  zBytesTest.test_swapcase  r  r   N)r   r   r   r   r   r   r   rV  r  r  r  r   r   r   rO  rO    s|    # S1WQ%897 :7 S#$ $$ S# $ S#" $"r   rO  c                       e Zd Zd Z eedz   dez         d        Z eed      d        Z eed      d        Z	 eed      d        Z
d	Zd	Zy	)
BytearrayTestc                 6    t        |j                  d            S rQ  )	bytearrayr   r   s     r   r   zBytearrayTest.from_latin1  s    ),--r   r	   r   r!   c                     | j                  d      |z  }| j                  t        |j                  d            |       y rS  rT  r:  s      r   rV  zBytearrayTest.test_decode  rW  r   c                 &    | j                  |       y r_   r  r  s     r   r  zBytearrayTest.test_capitalize  r  r   c                 &    | j                  |       y r_   r  r  s     r   r  zBytearrayTest.test_title"  r  r   c                 &    | j                  |       y r_   r  r  s     r   r  zBytearrayTest.test_swapcase&  r  r   N)r   r   r   r   r   r   r   rV  r  r  r  r   r   r   r   r   r\  r\    s    . S1WQ%897 :7 S#$ $$ S# $ S#" $" Ir   r\  c                   l   e Zd Z eedz   edz        d        Zd Z eedz  dz   edz        d        Z eedz   edz        d        Z	 eedz  d	z   edz        d
        Z
 eed	z   e      d        Z eed	z   e      d        Zd Z eedz  dz   edz        d        Z eedz   edz        d        Z eedz
  d      d        Z eedz
  edz        d        Z eedz
  edz        d        Zd Z eedz  dz   eedz  z         d        Z eedz   eedz  z         d        Zy)	TupleTestr	   r!   c                     d|z  }d|z  }| j                  ||k(         ~d|dz   z  }| j                  ||k(         ~d|z  }| j                  ||k(         y )NrC   r   )r   r5   r7   )r   r   t1t2s       r   r   zTupleTest.test_compare8  se    T\T\b!dQhr"D[r"r   c                     d|z  }| j                  t        |      |       ||z   }| j                  t        |      |dz         y )N)r   r	   r   r   r   r   ts      r   basic_concat_testzTupleTest.basic_concat_testI  @    DLQ&EQ*r   r,   c                 $    | j                  |      S r_   rn  r  s     r   test_concat_smallzTupleTest.test_concat_smallO      %%d++r   c                 $    | j                  |      S r_   rq  r  s     r   test_concat_largezTupleTest.test_concat_largeS  rs  r   r   r    c                     d|z  }| j                  t        |      |dz         | j                  d|v        | j                  d|v        | j                  d|v        y Nr   r	   r,   r
   r   r   r   r   r   r5   r7   rl  s      r   r   zTupleTest.test_containsW  sY    d"Q*QA-.a r   c                 p    d|z  }t        |      }~d|dz   z  }| j                  |t        |      k(         y )N)r   r   )r   r7   )r   r   rh  r   ri  s        r   r   zTupleTest.test_hash_  s;    D["XTAXtBx(r   c                    d|z  }| j                  t        |      |       | j                  |d   d        | j                  |d   d        | j                  ||dz
     d        | j                  t        t        j
                  ||       | j                  |d d d       | j                  |dd  d       | j                  |dd d       | j                  |d	d
 d       | j                  ||dz
  d  d       | j                  ||dz
  | d       | j                  ||dz
  |dz
   d       | j                  ||| d       | j                  |||dz    d       y )Nr_   rD   r   r   )NNNNNr   r      r!  r	   )NNNNr   )r   r   rL   r   r   r   rl  s      r   test_index_and_slicezTupleTest.test_index_and_sliceg  sU   dNQ&2%1t$4!8d+*h&6&64@2A,23-2b;/3s[14!89{34!8D);74!8D1H-{;4r*4Q,r   c                     d|z  }| j                  t        |      |       |dz  }| j                  t        |      |dz         y )Nrf  r	   rk  rl  s      r   basic_test_repeatzTupleTest.basic_test_repeatz  ro  r   c                 $    | j                  |      S r_   r  r  s     r   test_repeat_smallzTupleTest.test_repeat_small  rs  r   c                 $    | j                  |      S r_   r  r  s     r   test_repeat_largezTupleTest.test_repeat_large  rs  r   r      c                 $    | j                  |      S r_   r  r  s     r   test_repeat_large_2zTupleTest.test_repeat_large_2  rs  r   c                     	 t        t        dg|z              }| j                  t        |      |       | j                  |d d d       | j                  |dd  d       y # t        $ r Y y w xY wN*   r    )
r  r  r  r  r  r  r  r  r  r  r   tupleiterr   r   r%  rl  s      r   test_from_2G_generatorz TupleTest.test_from_2G_generator  q    	2dB49o&A SVT*QsVZ0QstWj1  		   A   	A,+A,r|  c                     	 t        t        dg|z              }| j                  t        |      |       | j                  |d d d       | j                  |dd  d       y # t        $ r Y y w xY wr  r  rl  s      r   test_from_almost_2G_generatorz'TupleTest.test_from_almost_2G_generator  r  r  c                     d|z  }t        |      }| j                  t        |      |dz         | j                  |d d d       | j                  |dd  d       y )N)F   r    z
(False, Far   z
se, False))r9  r   r   )r   r   rm  r   s       r   basic_test_reprzTupleTest.basic_test_repr  sX    tOGQ*3B.34,/r   r  c                 $    | j                  |      S r_   r  r  s     r   r;  zTupleTest.test_repr_small      ##D))r   c                 $    | j                  |      S r_   r  r  s     r   r=  zTupleTest.test_repr_large  r  r   N)r   r   r   r   r   r   r   rn  rr  ru  r   r   r  r  r  r  r   r  r  r  r  r   r;  r=  r   r   r   rd  rd  -  s    S1W\A%56	# 7	# + SAX\,*:;, <, S1W\A%56, 7, SAX]<!+;<! =! S2Xl3) 4) S2Xl3- 4-$+ SAX\,*:;, <, S1W\A%56, 7, S1WR(, ), S1W\A%562 72 S2XlQ&672 820 SAX\,19L*LM* N* S1W\Oa4G%GH* I*r   rd  c                      e Zd Z eedz   edz        d        Zd Z eedz  dz   edz        d        Z eedz   edz        d        Z	d Z
 eedz  dz   edz  d	z  d
z        d        Z eedz   edz  d	z  d
z        d        Z eedz  dz   edz        d        Z eedz   e      d        Z eedz   e      d        Zd Z eedz  dz   edz        d        Z eedz   edz        d        Zd Z eedz  dz   edz  d	z  d
z        d        Z eedz   edz  d	z  d
z        d        Zd Z eedz  dz   eedz  z         d        Z eedz   eedz  z         d        Z eeed	z  d
z        d        Z eedz  dz   edz        d        Zd Z eedz  dz   edz  d	z  d
z        d        Z eedz   edz  d	z  d
z        d         Z eedz  dz   edz        d!        Z eedz   ed	z  d
z        d"        Z  eedz  d#z   edz        d$        Z! eedz   e      d%        Z" eedz  dz   edz        d&        Z# eedz  dz   edz  d'z        d(        Z$y))*ListTestr	   r!   c                     dg|z  }dg|z  }| j                  ||k(         ~dg|dz   z  }| j                  ||k(         ~dg|z  }| j                  ||k(         y )NrC   r   r	   rg  )r   r   l1l2s       r   r   zListTest.test_compare  sm    TD[TD[b!TTAXr"S4Zr"r   c                     g g|z  }| j                  t        |      |       ||z   }| j                  t        |      |dz         y )Nr	   rk  r   r   r   s      r   basic_test_concatzListTest.basic_test_concat  sB    D4KQ&EQ*r   r,   c                 $    | j                  |      S r_   r  r  s     r   rr  zListTest.test_concat_small  rs  r   c                 $    | j                  |      S r_   r  r  s     r   ru  zListTest.test_concat_large  rs  r   c                     t         j                  g|z  }||z  }| j                  t        |      |dz         | j	                  |d   |d   u        | j	                  ||dz
     ||dz      u        y Nr	   r   rD   r   )sysstdoutr   r   r5   r  s      r   basic_test_inplace_concatz"ListTest.basic_test_inplace_concat  sl    ZZL4	QQ*!"&$(q{23r   	   r   c                 $    | j                  |      S r_   r  r  s     r   test_inplace_concat_smallz"ListTest.test_inplace_concat_small      --d33r   c                 $    | j                  |      S r_   r  r  s     r   test_inplace_concat_largez"ListTest.test_inplace_concat_large  r  r   r   r    c                     g d|z  }| j                  t        |      |dz         | j                  d|v        | j                  g d|v        | j                  d|v        y rw  ry  r  s      r   r   zListTest.test_contains  sY    d"Q*QA-.a r   c                 F    dg|z  }| j                  t        t        |       y )Nr   )rL   	TypeErrorr   r  s      r   r   zListTest.test_hash  s    C$J)T1-r   c                    d g|z  }| j                  t        |      |       | j                  |d   d        | j                  |d   d        | j                  ||dz
     d        | j                  t        t        j
                  ||       | j                  |d d d gdz         | j                  |dd  d gdz         | j                  |dd d gdz         | j                  |dd d gdz         | j                  ||dz
  d  d gdz         | j                  ||dz
  | d gdz         | j                  ||d	z
  |d
z
   d gdz         | j                  ||| g        | j                  |||dz    g        d||d
z
  <   | j                  t        |      |       | j                  |dd  g d       | j                  |j                  d      d       | j                  t        t        j                  ||d	       | j                  t        |      |       g d||dz
  d  |d
z  }| j                  t        |      |       | j                  |dd  g d       g d|d d |d
z  }| j                  t        |      |       | j                  |d d g d       ||dz
  = |dz  }| j                  t        |      |       | j                  |d   d       |dd = |d
z  }| j                  t        |      |       | j                  |d   d
       |d= |dz  }| j                  t        |      |       | j                  |d   d
       |d d
= |d
z  }| j                  t        |      |       | j                  |d   d       y )NrD   r   r   r   r   r|  r}  r~  r!  r	   r
   r   )Nr   Nrx  r  i)NNr   r	   r,   r
   r   )r   r	   r,   r
   r   NNr   )r   r   rL   r   r   r   r/   setitemr  s      r   r  zListTest.test_index_and_slice  sl   FTMQ&2%1t$4!8d+*h&6&64@2A
+23$!,2bD6A:.3sdVaZ04!89vz24!8D)D6A:64!8D1H-vz:4r*4Q,$(Q&231Q'*h&6&64CQ&&$()	Q&23!<="1	Q&2A ;<dQhK	Q&2"bcF	Q&2"aD	Q&1q!bqbE	Q&1q!r   c                     g |z  }| j                  |       dg|z  }| j                  t        |      |       |dz  }| j                  t        |      |dz         y )NrC   r	   )r7   r   r   r  s      r   r  zListTest.basic_test_repeat/  sY    ID4KQ&EQ*r   c                 $    | j                  |      S r_   r  r  s     r   r  zListTest.test_repeat_small7  rs  r   c                 $    | j                  |      S r_   r  r  s     r   r  zListTest.test_repeat_large;  rs  r   c                    dg}||z  }| j                  t        |      |       | j                  |d   |d   u        ~dg|z  }|dz  }| j                  t        |      |dz         | j                  ||dz
     |d   u        y )NrC   r   rD   r	   r   )r   r   r5   r  s      r   basic_test_inplace_repeatz"ListTest.basic_test_inplace_repeatA  s    D	T	Q&!"&D4K	QQ*$(qu,-r   c                 $    | j                  |      S r_   r  r  s     r   test_inplace_repeat_smallz"ListTest.test_inplace_repeat_smallM  r  r   c                 $    | j                  |      S r_   r  r  s     r   test_inplace_repeat_largez"ListTest.test_inplace_repeat_largeQ  r  r   c                     dg|z  }t        |      }| j                  t        |      |dz         | j                  |d d d       | j                  |dd  d       | j                  |j                  d      |       y )NFr  r    z
[False, Far   z
se, False]Fr8  )r   r   r   r   s       r   r  zListTest.basic_test_reprU  sr    GdNGQ*3B.34,/t,r   r  c                 $    | j                  |      S r_   r  r  s     r   r;  zListTest.test_repr_small^  r  r   c                 $    | j                  |      S r_   r  r  s     r   r=  zListTest.test_repr_largeb  r  r   c                     t               g|z  }|j                  t                      | j                  t        |      |dz          | j	                  |d   |d   u        | j                  |d   |d   u        y )Nr   r   r  rD   )objectappendr   r   r5   r7   r  s      r   test_appendzListTest.test_appendh  sh    XJ	Qa("2'2!B%(r   c                     g d|z  }| j                  |j                  d      |       | j                  |j                  d      d       y )Nrx  r   1r   )r   r/   r  s      r   r1   zListTest.test_countp  s<    d"T*q)r   c                     t         g|z  }|j                  |       | j                  t        |      |dz         | j	                  |d   |d   u        | j	                  ||dz
     ||dz      u        y r  )r  extendr   r   r5   r  s      r   basic_test_extendzListTest.basic_test_extendx  si    HtO	Q*!"&$(q{23r   c                 $    | j                  |      S r_   r  r  s     r   test_extend_smallzListTest.test_extend_small  rs  r   c                 $    | j                  |      S r_   r  r  s     r   test_extend_largezListTest.test_extend_large  rs  r   c                    g d|z  }|dz  }| j                  |j                  d      d       | j                  |j                  d|dz
        |dz
         | j                  |j                  d|dz
  |      |dz
         | j                  t        |j                  d|dz
  |       | j                  t        |j                  d       y )Nrx  r   r   r   r
   r!  )r   rK   rL   rM   r  s      r   rN   zListTest.test_index  s    d"	Q'D1H-tax8D1Hd3TAX>*aggq$(DA*aggq1r   c                    dg|z  }|j                  |dz
  d       |dz  }| j                  t        |      |       | j                  |dd  g d       |j                  |dz   d       |dz  }| j                  t        |      |       | j                  |dd  g d       |j                  dd       |dz  }| j                  t        |      |       | j                  |d d	 g d
       | j                  ||d	z
  d  g d       y )N      ?r   ri   r   )r  ri   r  B)ri   r  r  Cr,   )r  r  r  )insertr   r   r  s      r   test_insertzListTest.test_insert  s    EDL	3	Q&231	3	Q&231	C	Q&2A04!897r   r
   c                 r   g d|z  }|dz  }| j                  t        |      |       |j                         }|dz  }| j                  t        |      |       | j                  |d       | j                  |dd  ddg       |j                  d      }|dz  }| j                  t        |      |       | j                  |d	       | j                  |d d
 ddg       |j                  |d
z
        }|dz  }| j                  t        |      |       | j                  |d       | j                  |dd  ddg       y )N)r4   r   rd   der   r   r  r  rd   r  r   r4   r	   r   )r   r   pop)r   r   r   r   s       r   test_popzListTest.test_pop  s'   %,	Q&uuw	Q&s#23#s,uuQx	Q&s#2Ac
+uuTAX	Q&s#23#s,r   c                    dg|z  }| j                  t        |      |       |j                  d       |dz  }| j                  t        |      |       |j                  d       |dz  }| j                  t        |      |       | j                  |dd  ddg       |j                  d       |dz  }| j                  t        |      |       | j                  |dd  ddg       y )Nr    r   r   r  )r   r   remover  r  s      r   test_removezListTest.test_remove  s    D4KQ&		Q& 	
	Q&23"a)		Q&23"b*r   c                     g d|z  }|j                          | j                  t        |      |dz         | j                  |dd  g d       | j                  |d d g d       y )Nrx  r   r   )r   r
   r,   r	   r   )reverser   r   r  s      r   test_reversezListTest.test_reverse  sY    d"			Q*2312A0r   g      ?c                    g d|z  }|j                          | j                  t        |      |dz         | j                  |j                  d      |       | j                  |d d dgdz         | j                  |dd  dgdz         y )Nrx  r   r   r    r   )sortr   r   r/   r  s      r   	test_sortzListTest.test_sort  s}    d"	Q*T*3B!r*341#(+r   N)%r   r   r   r   r   r   r   r  rr  ru  r  r  r  r   r   r  r  r  r  r  r  r  r  r   r;  r=  r  r1   r  r  r  rN   r  r  r  r  r  r   r   r   r  r    s    S1W\A%56	# 7	# + SAX\,*:;, <, S1W\A%56, 7,
4 SAX\,*:Q*>q*@A4 B4 S1W\A%5%9!%;<4 =4 SAX]<!+;<! =! S2Xl3. 4. S2Xl34" 44"n+ SAX\,*:;, <, S1W\A%56, 7,

. SAX\,*:Q*>q*@A4 B4 S1W\A%5%9!%;<4 =4- SAX\,19L*LM* N* S1W\Oa4G%GH* I*
 S!1!!34) 5) SAX\,*:;* <*4 SAX\,*:Q*>q*@A, B, S1W\A%5%9!%;<, =, SAX\,*:;2 <2 S2XlQ&6q&898 :8$ SAX\,*:;- <-. S2Xl3+ 4+& SAX\,*:;1 <1 SAX\,*:S*@A, B,r   r  c                   ,    e Zd Z edd      d        Zy)DictTestiUUU   r!   c                 J    t         j                  t        |            }d||<   y )Nr   )dictfromkeysrj   )r   r   r  s      r   	test_dictzDictTest.test_dict  s     MM%+&$r   N)r   r   r   r   r  r   r   r   r  r    s    Ys+ ,r   r  __main__)__doc__testr   test.supportr   r   r   r   unittestr   r  r   rM  rL  maxsizer   r   TestCaser   rO  r\  rd  r  r  r   r   argvset_memlimitmainr   r   r   <module>r     s    2 2   
` KK%'qQv) v)r{7h {7|"!!; ".H%%{ 2D*!! D*Lm,x   m,`	x    z
388}qSXXa[)HMMO r   