
    0hh	a                        S SK Jr  S SKJrJrJr  S SKJr  S SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKrS SKr S SKr " S S5      r " S S\R&                  \5      r " S	 S
\R&                  \5      r " S S\R&                  \5      r " S S\R&                  5      r " S S\R&                  5      r " S S\R&                  \5      r " S S\R&                  \5      r " S S\R&                  5      rSr\R:                  S:  a  SOSr " S S5      r\R@                  " \\R:                  :  S5       " S S\R&                  5      5       r!S  r" " S! S"\R&                  \5      r# " S# S$\R&                  5      r$ " S% S&\R&                  \5      r%\RL                  \RN                  " \S'5       " S( S)\R&                  \5      5       5       r(\)S*:X  a  \RT                  " 5         gg! \ a    Sr GNf = f)+    )support)is_apple_mobile	os_helperrequires_debug_ranges)assert_python_okNc                       \ rS rSrS rSrg)HelperMixin   c                 d   [         R                  " [         R                  " U/UQ76 5      nU R                  X5         [	        [
        R                  S5       n[         R                  " X/UQ76   S S S 5        [	        [
        R                  S5       n[         R                  " U5      nS S S 5        U R                  X5        [
        R                  " [
        R                  5        g ! , (       d  f       N}= f! , (       d  f       NU= f! [
        R                  " [
        R                  5        f = f)Nwbrb)
marshalloadsdumpsassertEqualopenr   TESTFNdumploadunlink)selfsampleextranewfs        :/opt/python-3.13.8/usr/lib/python3.13/test/test_marshal.pyhelperHelperMixin.helper   s    mmGMM&959:%	/i&&-V// .i&&-ll1o .V)Y--. .--- Y--.s;   D	 C'0"D	 C8)D	 '
C51D	 8
DD	 	&D/ N)__name__
__module____qualname____firstlineno__r   __static_attributes__r       r   r	   r	      s    
/r%   r	   c                   &    \ rS rSrS rS rS rSrg)IntTestCase   c                     [         R                  S-  nU(       a,  U* U4 H  nU R                  U5        M     US-	  nU(       a  M+  g g )N      )sysmaxsizer   )r   nexpecteds      r   	test_intsIntTestCase.test_ints    s?    KK1RGH% $QA ar%   c           	      6   SnU* S-
  nXU* US-	  * 4 Hc  nU(       d  M  S[         R                  USSSS9-   n[        R                  " U5      nU R	                  X55        US:X  a  S	nOUS-  nU(       a  MW  Me     [        R                  " S
5      nU R	                  US5        [        R                  " S5      nU R	                  US5        [        R                  " S5      nU R	                  US5        [        R                  " S5      nU R	                  US5        g )Nl    r+      I   littleT)signedr   s	   IܺvT2l   \u1Q s	   I#Egl\u1Q s	   I*;L]nl   Tv0ur{ s	   Iĳl	Tv0ur{ )intto_bytesr   r   r   )r   maxint64minint64basesgots         r   
test_int64IntTestCase.test_int64(   s    9Q;	X]3CCD$3<<a$<GGmmA&  +2:DQJD $ D mm@A01mm@A12mm@A01mm@A12r%   c                 8    S H  nU R                  U5        M     g )N)TFr   )r   bs     r   	test_boolIntTestCase.test_bool?   s    AKKN r%   r   N)r    r!   r"   r#   r0   r?   rD   r$   r   r%   r   r'   r'      s    3.r%   r'   c                       \ rS rSrS rSrg)FloatTestCaseC   c                 V   Sn[         R                  S-  nX!:  a2  U* U4 H  nU R                  [        U5      5        M     US-  nX!:  a  M2  Sn[        R
                  " US5      n[        R                  " U5      nU R                  XF5        [        R
                  " US5      n[        R                  " U5      nU R                  XF5        [         R                  S-  nX!:  aG  U* U4 H1  n[        U5      nU R                  U5        U R                  US5        M3     US-  nX!:  a  MF  g g )Ng}:g6ҫsgS:^@g        r*   r+   gZ1%)r,   r-   r   floatr   r   r   r   )r   smallr.   r/   r   r=   r>   s          r   test_floatsFloatTestCase.test_floatsD   s    KK'!iRGE(O, $MA i
 MM!QmmA MM!QmmA KK("iRG(OAAq! $ MA ir%   r   N)r    r!   r"   r#   rL   r$   r   r%   r   rG   rG   C   s    r%   rG   c                   &    \ rS rSrS rS rS rSrg)StringTestCase^   c                     SSSSS-  4 H<  nU R                  [        R                  " [        R                  " U5      5      5        M>     g N    Andrè Previnabc '  )r   r   r   r   r   r=   s     r   test_unicodeStringTestCase.test_unicode_   s8    'E	:AKKgmmA&678 ;r%   c                 F    SSSSS-  4 H  nU R                  U5        M     g rR   rB   rX   s     r   test_stringStringTestCase.test_stringc   s%    'E	:AKKN ;r%   c                 F    SSSSS-  4 H  nU R                  U5        M     g )Nr%   s   Andr Previn   abc    rW   rB   rX   s     r   
test_bytesStringTestCase.test_bytesg   s%    )64:>AKKN ?r%   r   N)r    r!   r"   r#   rY   r\   ra   r$   r   r%   r   rO   rO   ^   s    9r%   rO   c                       \ rS rSrS rSrg)ExceptionTestCasek   c                     [         R                  " [         R                  " [        5      5      nU R	                  [        U5        g N)r   r   r   StopIterationr   )r   r   s     r   test_exceptions!ExceptionTestCase.test_exceptionsl   s)    mmGMM-89,r%   r   N)r    r!   r"   r#   ri   r$   r   r%   r   rd   rd   k   s    -r%   rd   c                   j    \ rS rSrS rS rS rS r\" 5       S 5       r	\
R                  S 5       rSrg	)
CodeTestCasep   c                     [         R                  R                  n[        R                  " [        R
                  " U5      5      nU R                  X5        g rg   )rd   ri   __code__r   r   r   r   )r   cor   s      r   	test_codeCodeTestCase.test_codeq   s8    ..77mmGMM"-.!r%   c                     [         R                  " 5       n[        R                  R                  4U-  n[
        R                  " [
        R                  " U5      5        g rg   )r   exceeds_recursion_limitrd   ri   ro   r   r   r   )r   countcodess      r   test_many_codeobjects"CodeTestCase.test_many_codeobjectsv   s@     //1"22;;=EgmmE*+r%   c                    [        SSS5      n[        SSS5      n[        R                  " [        R                  " X45      5      u  pU R	                  UR
                  S5        U R	                  UR
                  S5        g )Nxf1execyf2)compiler   r   r   r   co_filename)r   co1co2s      r   test_different_filenames%CodeTestCase.test_different_filenames}   sa    c4(c4(==z!:;$/$/r%   c                 6   SS14/0n[         R                  " USS9nU R                  [         R                  " USS9U5        [        R
                  " 5       n[         R                  " XSS9  UR                  S5        U R                  [         R                  " USS9U5        [        R                  R                  nSUS14/0n[         R                  " USS9nU R                  [         R                  " USS9U5        U R                  [        5         [         R                  " USS9  S S S 5        U R                  [        5         [         R                  " USS9  S S S 5        [         R                  " U[        R
                  " 5       SS9  U R                  [         R                  " [        R
                  " U5      SS9U5        U R                  [        5         [         R                  " U[        R
                  " 5       SS9  S S S 5        U R                  [        5         [         R                  " [        R
                  " U5      SS9  S S S 5        g ! , (       d  f       GN3= f! , (       d  f       GN= f! , (       d  f       Nz= f! , (       d  f       g = f)Nar   F)
allow_codeT)r   r   r   r   ioBytesIOr   seekr   rd   ri   ro   assertRaises
ValueError)r   datar   r   rp   s        r   test_no_allow_codeCodeTestCase.test_no_allow_code   s   sfX}}Te4t>EJJLT/	q	aE:DA..77Awj\"}}Td3t=tDz*MM$51 +z*MM$51 + 	T2::<D9bjj&64H$Oz*LLrzz|> +z*LLD)e< +* +***
 +***s0   II'*I9"*J

I$'
I69
J

Jc                    [         R                  R                  n[        R                  " S5      n [        [        R                  S5       n[        R                  " X5        S S S 5        [        SSSU[        R                  5        [        R                  " [        R                  5        g ! , (       d  f       NP= f! [        R                  " [        R                  5        f = f)Na  
        import sys
        import marshal
        with open(sys.argv[1], 'rb') as f:
            co = marshal.load(f)
            positions = list(co.co_positions())
            assert positions[0][2] is None
            assert positions[0][3] is None
        r   z-Xno_debug_ranges-c)rd   ri   ro   textwrapdedentr   r   r   r   r   r   r   )r   rp   coder   s       r   +test_minimal_linetable_with_no_debug_ranges8CodeTestCase.test_minimal_linetable_with_no_debug_ranges   s     ..77   	/i&&-R# . T#4!4)9)9; Y--. .- Y--.s#   B> B-#%B> -
B;7B> >&C$c                 *   Sn[        USS5      n[        R                  " [        R                  " U5      5      nUR                   HJ  n[        U[        R                  5      (       d  M$  U R                  UR                  UR                  5        ML     g )Nzdef f(): pass
def g(): passmyfiler|   )
r   r   r   r   	co_consts
isinstancetypesCodeTypeassertIsr   )r   r=   rp   objs       r   test_same_filename_used$CodeTestCase.test_same_filename_used   sa    .Q&)]]7==,-<<C#u~~..bnncoo>  r%   r   N)r    r!   r"   r#   rq   rw   r   r   r   r   r   cpython_onlyr   r$   r   r%   r   rl   rl   p   sG    "
,0=4 / /. ? ?r%   rl   c            	       D    \ rS rSrSSSSS/SSS	S
.rS rS rS rS rSr	g)ContainerTestCase   zfoo@bar.baz.spamgHzns@   r*   .zyx.41)
r   r   r   r   r   r   r   r   r   r   FrT   )astringafloatanint
ashortlongalistatupleabooleanaunicodec                 :    U R                  U R                  5        g rg   )r   dr   s    r   	test_dictContainerTestCase.test_dict   s    DFFr%   c                 h    U R                  [        U R                  R                  5       5      5        g rg   )r   listr   itemsr   s    r   	test_listContainerTestCase.test_list   s    D()r%   c                 h    U R                  [        U R                  R                  5       5      5        g rg   )r   tupler   keysr   s    r   
test_tupleContainerTestCase.test_tuple   s    E$&&++-()r%   c                     [         [        4 H2  nU R                  U" U R                  R	                  5       5      5        M4     g rg   )set	frozensetr   r   r   )r   constructors     r   	test_setsContainerTestCase.test_sets   s,    +KKKDFFKKM23 ,r%   r   N)
r    r!   r"   r#   r   r   r   r   r   r$   r   r%   r   r   r      s7    &+"&	A**4r%   r   c                   &    \ rS rSrS rS rS rSrg)BufferTestCase   c                     [        S5      nU R                  U5        [        R                  " [        R                  " U5      5      nU R                  [        U5      [        5        g Nr_   )	bytearrayr   r   r   r   r   typebytesr   rC   r   s      r   test_bytearrayBufferTestCase.test_bytearray   sB    fAmmGMM!,-cE*r%   c                     [        S5      nU R                  U5        [        R                  " [        R                  " U5      5      nU R                  [        U5      [        5        g r   )
memoryviewr   r   r   r   r   r   r   r   s      r   test_memoryviewBufferTestCase.test_memoryview   sB    vAmmGMM!,-cE*r%   c                     [         R                   " SS5      n[        R                  " [        R                  " U5      5      nU R	                  US5        g )NBr_   )arrayr   r   r   r   )r   r   r   s      r   
test_arrayBufferTestCase.test_array   s9    KKV$mmGMM!,-f%r%   r   N)r    r!   r"   r#   r   r   r   r$   r   r%   r   r   r      s    ++&r%   r   c                   h    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)BugsTestCase   c                 8    [         R                  " S/S-  5        g )N     )r   r   r   s    r   test_bug_5888452BugsTestCase.test_bug_5888452   s    sedl#r%   c                    U R                  [        [        R                  S5        U R                  [        [        R                  S5        U R                  [        [        R                  [        R                  " SS-  5      S S 5        g )N   0   fr*   A   r7   )r   	Exceptionr   r   r   r   s    r   test_patch_873224BugsTestCase.test_patch_873224   sX    )W]]D9)W]]D9)W]]GMM!R%4H"4MNr%   c                     U R                  [        R                  " [        R                  " SS5      5      S5        U R                  [        R                  " [        R                  " SS5      5      S5        g )N   r   r+   )r   r   r   r   r   s    r   test_version_argument"BugsTestCase.test_version_argument   sJ    w}}Q':;Q?w}}Q':;Q?r%   c                     [        S5       H&  n[        U/5      n [        R                  " U5        M(     g ! [         a     M8  f = f)N   )ranger   r   r   r   )r   ics      r   	test_fuzzBugsTestCase.test_fuzz   sB     sAqc
Aa    s   7
AAc                 X   ^  S nU" S[         R                  5        U 4S jnU" SU5        g )Nc                     U" SU -  S-   5        U" SU -  S-   5        U" SU -  S-   5        U" SU -  S-   SU -  -   5        U" SU -  S-   5        g )Ns   )   Ns   (   s   [   s   {Nr   s   >   r   )Nchecks     r   	run_tests4BugsTestCase.test_loads_recursion.<locals>.run_tests  sf    (Q,%&&*T12&*T12%!)d"TAX-.&*T12r%   d   c                 P   > TR                  [        [        R                  U 5        g rg   r   r   r   r   )r=   r   s    r   r   0BugsTestCase.test_loads_recursion.<locals>.check  s    j'--;r%   r   )r   r   )r   r   r   s   `  r   test_loads_recursion!BugsTestCase.test_loads_recursion  s'    		3 	#w}}%	<%r%   c                    / =p[         R                  S:X  a  SnO$[        R                  S:X  d  [        (       a  SnOSn[        US-
  5       H  nUR                  S/5        US   nM     [        R                  " U5      n[        R                  " U5      nU R                  [        U5      [        U5      5        U R                  [        US   5      [        US   5      5        U R                  [        US   5      [        US   5      5        UR                  S/5        U R                  [        [        R                  U5        g )	Nntr   wasii  i  r*   r   r7   )osnamer,   platformr   r   appendr   r   r   r   lenr   r   )r   headlastMAX_MARSHAL_STACK_DEPTHr   r   new_heads          r   test_recursion_limit!BugsTestCase.test_recursion_limit  s   
 77d?&*#\\V#&*#&*#.23AKK8D 4
 }}T"==&XD	2Xa[)3tAw<8Xb\*CRM:QC*gmmT:r%   c                     [         [        [        [        [        [
        [        [        4 H;  n[        SU40 5      nU R                  [        [        R                  U" 5       5        M=     g )Nsubtyp)r8   rJ   complexr   r   dictr   r   r   r   r   r   r   )r   typr  s      r   test_exact_type_match"BugsTestCase.test_exact_type_match4  sJ    
 dCKC (SFB/Fj'--B	 Lr%   c                 P    [        S5      nSU-  n[        R                  " U5        g )Ng    .ArU   )r8   r   r   )r   size
testStrings      r   test_large_marshalBugsTestCase.test_large_marshalA  s     3xT\
j!r%   c                 R    SnU R                  [        [        R                  U5        g )Ns	   l       r   )r   invalid_strings     r   test_invalid_longsBugsTestCase.test_invalid_longsF  s    =*gmm^Dr%   c           	      L   SSSSSSSS/44nS	 GHF  n[        U5      n/ n [        [        R                  S
5       nU HP  n[        R
                  " Xe5        U(       a  UR                  U5        UR                  UR                  5       5        MR     S S S 5        [        [        R                  S5       n[        U5       He  u  pvU R                  U[        R                  " U5      5        U(       a  UR                  U5        U R                  XG   UR                  5       5        Mg     S S S 5        [        R                  " [        R                  5        GMI     g ! , (       d  f       N= f! , (       d  f       NI= f! [        R                  " [        R                  5        f = f)Nr+   rU   s   def      ?r*   r   rC      c)r%   s   0123r   r   )r  r   r   r   r   r   writer  tell	enumerater   r   readr   )r   r   interleavedilen	positionsr   r   r   s           r   test_multiple_dumps_and_loads*BugsTestCase.test_multiple_dumps_and_loadsK  s3    5&#3d'<=)K{#DI3)**D1Q!Q*GGK0!((2	 " 2 )**D1Q )$((GLLO<FF4L((qvvx@	 !0 2   !1!12# * 21 21   !1!12s<   E=AE"E=4A5E,)E=
E)	%E=,
E:	6E==&F#c                 R    SnU R                  [        [        R                  U5        g )NT)r   	TypeErrorr   r   )r   unicode_strings     r   !test_loads_reject_unicode_strings.BugsTestCase.test_loads_reject_unicode_stringsc  s    )W]]NCr%   c           
           " S S[         R                  5      nS HB  nU R                  [        [        R
                  U" [        R                  " U5      5      5        MD     g )Nc                   (   ^  \ rS rSrU 4S jrSrU =r$ )/BugsTestCase.test_bad_reader.<locals>.BadReaderii  c                 B   > [         TU ]  U5      nUb  US:  a  US-  nU$ )N   i@B )superreadinto)r   bufr.   	__class__s      r   r6  8BugsTestCase.test_bad_reader.<locals>.BadReader.readintoj  s+    G$S)=QUJAr%   r   )r    r!   r"   r#   r6  r$   __classcell__)r8  s   @r   	BadReaderr2  i  s     r%   r;  )r  y              ?s
   0123456789
0123456789)r   r   r   r   r   r   r   )r   r;  values      r   test_bad_readerBugsTestCase.test_bad_readerh  sE    	

 	 <Ej',,'e(<=? <r%   c                     [         R                  " S5      n[        [        U5      5       H+  nU R	                  [
        [         R                  USU 5        M-     g )N)hellodollyNr   )r   r   r   r  r   EOFErrorr   )r   r   r   s      r   test_eofBugsTestCase.test_eofs  s@    }}56s4y!AhtAqzB "r%   c                    S H  nS H  nU SU S3nU R                  U5         [        R                  R                  S;   a5  SSU S3/n[	        US	S
06u  pVn[	        US	S06u  pWnU R                  Xg5        SSU S3/n[	        US	S
06u  pXn[	        US	S06u  pYnU R                  X5        S S S 5        M     M     g ! , (       d  f       M  = f)N)r   r   )z-float('nan'), b'a', b'b', b'c', 'x', 'y', 'z'zL('Spam', 0), ('Spam', 1), ('Spam', 2), ('Spam', 3), ('Spam', 4), ('Spam', 5)z([z])>   fnv	siphash24r   zprint()PYTHONHASHSEED01z$import marshal; print(marshal.dumps(z)))subTestr,   	hash_info	algorithmr   assertNotEqualr   )
r   kindelementsr=   args_repr_0repr_1dump_0dump_1s
             r   test_deterministic_sets$BugsTestCase.test_deterministic_setsx  s     )D
 fBxj+\\!_ }}..2FF $qcm4'7'Rc'R1'7'Rc'R1++F; $H2"NOD#3T#N##NLAq#3T#N##NLAq$$V4 %_ ) %_s   B	B>>
Cr   N)r    r!   r"   r#   r   r   r   r   r   r  r  r  r  r(  r.  r>  rD  rY  r$   r   r%   r   r   r      sN    $O
@
 &;8	C"
E
30D
	?C
5r%   r   l        l    r4   r4  c                       \ rS rSrS rSrg)
NullWriteri  c                     g rg   r   rX   s     r   r!  NullWriter.write  s    r%   r   N)r    r!   r"   r#   r!  r$   r   r%   r   r\  r\    s    r%   r\  z!test cannot run on 32-bit systemsc                      \ rS rSrS r\R                  " \SSS9S 5       r\R                  " \SSS9S 5       r	\R                  " \\
S-   SS9S	 5       r\R                  " \\
S-   SS9S
 5       r\R                  " \\
S-  \R                  " \S-
  5      -   SS9S 5       r\R                  " \\
S-  \R                  " \S-
  5      -   SS9S 5       r\R                  " \SSS9S 5       rSrg)LargeValuesTestCasei  c                 `    U R                  [        [        R                  U[	        5       5        g rg   )r   r   r   r   r\  )r   r   s     r   check_unmarshallable(LargeValuesTestCase.check_unmarshallable  s    *gllD*,Gr%   r*   F)r  memusedry_runc                 ,    U R                  SU-  5        g )N   xrb  r   r  s     r   ra   LargeValuesTestCase.test_bytes  s    !!$+.r%   c                 ,    U R                  SU-  5        g )Nrz   rh  ri  s     r   test_strLargeValuesTestCase.test_str  s    !!#*-r%   r+   c                 ,    U R                  SU-  5        g )Nrg   rh  ri  s     r   r   LargeValuesTestCase.test_tuple  s    !!'D.1r%   c                 .    U R                  S /U-  5        g rg   rh  ri  s     r   r   LargeValuesTestCase.test_list  s    !!4&4-0r%      c                 J    U R                  [        [        U5      5      5        g rg   )rb  r   r   ri  s     r   test_setLargeValuesTestCase.test_set  s     	!!#eDk"23r%   c                 J    U R                  [        [        U5      5      5        g rg   )rb  r   r   ri  s     r   test_frozenset"LargeValuesTestCase.test_frozenset  s     	!!)E$K"89r%   c                 8    U R                  [        U5      5        g rg   )rb  r   ri  s     r   r   "LargeValuesTestCase.test_bytearray  s    !!)D/2r%   r   N)r    r!   r"   r#   rb  r   
bigmemtest
LARGE_SIZEra   rl  pointer_sizer   r   r,   	getsizeofrt  rw  r   r$   r   r%   r   r`  r`    s@   H Z5A/ B/ Z5A. B. Zq0@%P2 Q2 Zq0@%P1 Q1 Z?S]]:a<%@@44 Z?S]]:a<%@@:: Z5A3 B3r%   r`  c                 h   [        U5      U ;   a  gU R                  [        U5      5        [        U[        [        [
        [        45      (       a  U H  n[        X5        M     OD[        U[        5      (       a/  UR                  5        H  u  p4[        X5        [        X5        M     [        U 5      $ )z&Collect object ids seen in a structureN)idaddr   r   r   r   r   CollectObjectIDsr  r   r  )idsr   ekvs        r   r  r    s    	#w#~GGBsG#eS)455AS$ 	C		IIKDAS$S$   s8Or%   c                   ~    \ rS rSrSSSS\" SS15      4rSS jrS rS rS	 r	S
 r
S rS rS rS rS rS rS rSrg)InstancingTestCasei  {   獗n?rU   )r  rU   c                 h   X4n[        [        5       U5      n[        S[        R                  S-   5       HR  n[        R
                  " XF5      n[        [        5       [        R                  " U5      5      nU R                  X5        MT     U(       d  [        R
                  " US5      n	[        [        5       [        R                  " U	5      5      n
U R                  X5        U(       d%  U R                  [        U	5      [        W5      5        g U R                  [        U	5      [        W5      5        g g )N   r+   r*   )r  r   r   r   versionr   r   r   assertGreaterr  assertGreaterEqual)r   rsample	recursivesimpler   n0r  s3n3s2n2s              r   helper3InstancingTestCase.helper3  s    #ceV,q'//A-.Av)B!#%r):;B R$ / vq)B!#%r):;Br& ""3r7CG4''BR9 r%   c                 J    SnU R                  U5        U R                  USS9  g )Ni T)r  r   r  )r   intobjs     r   testIntInstancingTestCase.testInt  s#    FVD)r%   c                 L    SnU R                  U5        U R                  U5        g )Nr  r  )r   floatobjs     r   	testFloatInstancingTestCase.testFloat  s    HXr%   c                 L    SnU R                  U5        U R                  U5        g )Nabcdeabcdeabcder  )r   strobjs     r   testStrInstancingTestCase.testStr  s    FVr%   c                 L    SnU R                  U5        U R                  U5        g )Ns   abcdeabcdeabcder  )r   bytesobjs     r   	testBytesInstancingTestCase.testBytes  s    HXr%   c                 t    U R                    H(  nX/nU R                  U5        U R                  U5        M*     g rg   r   r   r  )r   r   listobjs      r   testListInstancingTestCase.testList  s/    99CjGKK LL! r%   c                 t    U R                    H(  nX4nU R                  U5        U R                  U5        M*     g rg   r  )r   r   tupleobjs      r   	testTupleInstancingTestCase.testTuple  s/    99CzHKK!LL" r%   c                 ~    U R                    H-  nUS4US41nU R                  U5        U R                  U5        M/     g Nr+   r*   r  )r   r   setobjs      r   testSetInstancingTestCase.testSet  s:    99CAha)FKKLL  r%   c                     U R                    H6  n[        US4US415      nU R                  U5        U R                  U5        M8     g r  )r   r   r   r  )r   r   frozensetobjs      r   testFrozenSet InstancingTestCase.testFrozenSet  s?    99C$sAha%9:LKK%LL& r%   c                 |    U R                    H,  nSUSXS0nU R                  U5        U R                  U5        M.     g )NrA  goodbyer  )r   r   dictobjs      r   testDictInstancingTestCase.testDict  s8    99CY'BGKK LL! r%   c                    [        [        S5       nUR                  5       nS S S 5        [        R                  S5      (       a  [	        W[        S5      nU R                  W5        U R                  U5        g ! , (       d  f       N\= fNr   z.pyr|   )r   __file__r$  endswithr   r   r  )r   r   r   s      r   
testModuleInstancingTestCase.testModule  s^    (D!Q668D "U##462DDT "!s   A88
Bc                     SnSUSXS0nX"S'   U R                  USS9  X/nUR                  U5        U R                  USS9  g )Nr  rA  r  r   T)r  )r  r  )r   r   r   ls       r   testRecursion InstancingTestCase.testRecursion%  sP    c9c8&	Q$'J	Q$'r%   r   N)FF)r    r!   r"   r#   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r$   r   r%   r   r  r    sW    ie.EFD:4*



"#!'"(r%   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	CompatibilityTestCasei.  c                 (   [        [        S5       nUR                  5       nS S S 5        [        R                  S5      (       a  [	        W[        S5      n[
        R                  " WU5      n[
        R                  " U5        g ! , (       d  f       Ng= fr  )r   r  r$  r  r   r   r   r   )r   r  r   r   r   s        r   _testCompatibilityTestCase._test/  sb    (D!Q668D "U##462D}}T7+d "!s   B
Bc                 &    U R                  S5        g )Nr   r  r   s    r   test0To3CompatibilityTestCase.test0To37      

1r%   c                 &    U R                  S5        g )Nr+   r  r   s    r   test1To3CompatibilityTestCase.test1To3:  r  r%   c                 &    U R                  S5        g Nr*   r  r   s    r   test2To3CompatibilityTestCase.test2To3=  r  r%   c                 &    U R                  S5        g )Nr  r  r   s    r   test3To3CompatibilityTestCase.test3To3@  r  r%   r   N)
r    r!   r"   r#   r  r  r  r  r  r$   r   r%   r   r  r  .  s    r%   r  c                   H    \ rS rSrSr\R                  " \5      rS rS rSr	g)InterningTestCaseiC  zthis is an interned stringc                 r   [         R                  " [         R                  " U R                  5      5      nU R	                  XR                  5        U R	                  [        U5      [        U R                  5      5        [        R                  " U5      nU R	                  [        U5      [        U5      5        g rg   )r   r   r   r  r   r  r,   internr   r=   r  s      r   
testInternInterningTestCase.testInternG  sp    MM'--45KK(A4;;0ZZ]BA'r%   c                 t   [         R                  " [         R                  " U R                  S5      5      nU R	                  XR                  5        U R                  [        U5      [        U R                  5      5        [        R                  " U5      nU R                  [        U5      [        U5      5        g r  )	r   r   r   r  r   rP  r  r,   r  r  s      r   testNoInternInterningTestCase.testNoInternN  sr    MM'--Q78KK(BqE2dkk?3ZZ]BrFBqE*r%   r   N)
r    r!   r"   r#   r  r,   r  r  r  r$   r   r%   r   r  r  C  s    )FZZF(+r%   r  zrequires _testcapic                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
CAPI_TestCaseiU  c                    [        [        R                  S-   5       H  n[        R                  " S[
        R                  U5        [        [
        R                  S5       nUR                  5       nS S S 5        [
        R                  " [
        R                  5        U R                  WS5        M     g ! , (       d  f       NI= f)Nr+   xV4r   s   xV4)r   r   r  	_testcapipymarshal_write_long_to_filer   r   r   r$  r   r   )r   r  r   r   s       r   test_write_long_to_file%CAPI_TestCase.test_write_long_to_fileY  s    w*+A22:y?O?OQRSi&&-vvx .Y--.T#67 ,--s    B44
C	c                    SSSSSSS-  4n[        [        R                  S-   5       H  n[        R                  " U[
        R                  U5        [        [
        R                  S	5       nUR                  5       nS S S 5        [
        R                  " [
        R                  5        U R                  [        R                  " W5      U5        M     g ! , (       d  f       N]= f)
N   €r_   r  F@      @       @z
long line r   r+   r   )r   r   r  r  pymarshal_write_object_to_filer   r   r   r$  r   r   r   )r   r   r  r   r   s        r   test_write_object_to_file'CAPI_TestCase.test_write_object_to_filea  s    dD,t2CDw*+A44S):J:JANi&&-vvx .Y--.W]]40#6 ,--s   +C
C!	c                    [        [        R                  S5       nUR                  S5        S S S 5        [        R
                  " [        R                  5      u  p#[        R                  " [        R                  5        U R                  US5        U R                  US5        [        [        R                  S5       nUR                  S5        S S S 5        U R                  [        5         [        R
                  " [        R                  5        S S S 5        [        R                  " [        R                  5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       NV= f)Nr   s   4xxxxi4  r*      )
r   r   r   r!  r  pymarshal_read_short_from_filer   r   r   rC  r   r   rps       r   test_read_short_from_file'CAPI_TestCase.test_read_short_from_filej  s    )""D)QGGO$ *77	8H8HI))*F#A)""D)QGGG *x(44Y5E5EF )))* *) *)((#   D>=E,%E!>
E
E!
E/c                    [        [        R                  S5       nUR                  S5        S S S 5        [        R
                  " [        R                  5      u  p#[        R                  " [        R                  5        U R                  US5        U R                  US5        [        [        R                  S5       nUR                  S5        S S S 5        U R                  [        5         [        R
                  " [        R                  5        S S S 5        [        R                  " [        R                  5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       NV= f)Nr   s   xV4xxxxr  r4  s   V4)
r   r   r   r!  r  pymarshal_read_long_from_filer   r   r   rC  r  s       r   test_read_long_from_file&CAPI_TestCase.test_read_long_from_filex  s    )""D)QGG+, *66y7G7GH))*J'A)""D)QGGO$ *x(33I4D4DE )))* *) *)((r  c                 D   Sn[        [        R                  S-   5       GHI  n[        R                  " X5      n[	        [
        R                  S5       nUR                  US-   5        S S S 5        [        R                  " [
        R                  5      u  pV[
        R                  " [
        R                  5        U R                  XQ5        [	        [
        R                  S5       nUR                  US S 5        S S S 5        U R                  [        5         [        R                  " [
        R                  5        S S S 5        [
        R                  " [
        R                  5        GML     g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N[= fN)r  r_   r  r  r  r+   r   s   xxxx)r   r   r  r   r   r   r   r!  r  $pymarshal_read_last_object_from_filer   r   r   rC  r   r   r  r   r   r  r  s          r   test_read_last_object_from_file-CAPI_TestCase.test_read_last_object_from_file  s	   1w*+A==(Di&&-w' .AA)BRBRSDAY--.Q$i&&-Ra! .""8,>>y?O?OP -Y--. ,-- .-,,s$   E.%F %F.
E=	 
F	
F	c                 z   Sn[        [        R                  S-   5       GHd  n[        R                  " X5      n[	        [
        R                  S5       nUR                  US-   5        S S S 5        [        R                  " [
        R                  5      u  pV[
        R                  " [
        R                  5        U R                  XQ5        U R                  U[        U5      5        [	        [
        R                  S5       nUR                  US S 5        S S S 5        U R                  [        5         [        R                  " [
        R                  5        S S S 5        [
        R                  " [
        R                  5        GMg     g ! , (       d  f       GN(= f! , (       d  f       N= f! , (       d  f       N[= fr  )r   r   r  r   r   r   r   r!  r  pymarshal_read_object_from_filer   r   r  r   rC  r
  s          r   test_read_object_from_file(CAPI_TestCase.test_read_object_from_file  s   1w*+A==(Di&&-w' .<<Y=M=MNDAY--.Q$QD	*i&&-Ra! .""8,99):J:JK -Y--. ,-- .-,,s$   F	 F2%F,	
F	
F)	,
F:	r   N)r    r!   r"   r#   r  r  r   r  r  r  r$   r   r%   r   r  r  U  s     87++/ /r%   r  __main__)+testr   test.supportr   r   r   test.support.script_helperr   r   r   r   r,   unittestr  r   r   r  ImportErrorr	   TestCaser'   rG   rO   rd   rl   r   r   r   r|  r-   r}  r\  skipIfr`  r  r  r  r  r   
skipUnlessr  r    mainr   r%   r   <module>r     s    J J 7  	  
  	  / /"(##[ "HH%%{ 6X&& -)) -
M?8$$ M?^4)); 42&X&& &(f58$$ f5P 
KK*,q!  
ckk)+NO"3(++ "3 P"3H^(**K ^(@H-- *+)); +$ 		Y 45N/H%%{ N/ 6 N/b zMMO s  Is   G# #G/.G/