
    2hh"                        S SK r S SKrS SKJr  S SKJr  \R                  " S5      r\R                  " S5      rSr	\R                  r
\R                  r " S S\5      r " S S	\ R                  5      r\S
:X  a  \ R"                  " 5         gg)    N)
namedtuple)import_helper	_testcapi_testlimitedcapic                       \ rS rSrSrg)TupleSubclass    N)__name__
__module____qualname____firstlineno____static_attributes__r
       B/opt/python-3.13.8/usr/lib/python3.13/test/test_capi/test_tuple.pyr   r      s    r   r   c                   \    \ 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)CAPITest   c                    [         R                  nU R                  U" S5      5        U R                  U" S5      5        U R                  U" [        S5      5      5        U R	                  U" SS05      5        U R	                  U" SS/5      5        U R	                  U" S5      5        U R	                  U" [        5       5      5        g N      r
   r   r   *   )r   tuple_check
assertTruer   assertFalseobjectselfchecks     r   
test_checkCAPITest.test_check   s     ,,f&b	"mF3451v'1v'r#vx)r   c                    [         R                  nU R                  U" S5      5        U R                  U" S5      5        U R                  U" [	        S5      5      5        U R                  U" SS05      5        U R                  U" SS/5      5        U R                  U" S5      5        U R                  U" [        5       5      5        g r   )r   tuple_checkexactr   r   r   r   r   s     r   test_tuple_checkexactCAPITest.test_tuple_checkexact    s     11f&b	"}V4561v'1v'r#vx)r   c                 p   [         R                  n[         R                  n[        R                  nU" S5      nU R                  US5        U R                  U" U5      S5        U R                  [        U5      [        5        U" S5      nU R                  [        U5      [        5        U R                  U" U5      S5        U R                  XT5        U R                  U" US5      5        U R                  [        US5        U R                  [        U[        5        U R                  [        U[        5        g )Nr   r
   r   )r   	tuple_new
tuple_sizer   _check_tuple_item_is_NULLassertEqualassertIstypetupleassertIsNotr   assertRaisesSystemErrorPY_SSIZE_T_MINMemoryErrorPY_SSIZE_T_MAX)r    r*   size	checknulltup1tup2s         r   test_tuple_newCAPITest.test_tuple_new.   s    $..	**77	|r"dQ'd4j%(|d4j%(dQ'$	$*++y"5+y.A+y.Ar   c                 f   [         R                  nU R                  U" S5      S5        U R                  U" SS/5      S/45        U R                  U" SS/S/5      S/S/45        U R                  [        U[
        5        U R                  [        US5        U R                  [        U[        5        g )Nr   r
   r   r   r)   )r   
tuple_packr-   r2   r3   r4   r5   r6   )r    packs     r   test_tuple_packCAPITest.test_tuple_packB   s    **a"%a!v.a!qc*aS1#J7+t^<+tR0+t^<r   c                 `   [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" [        S5      5      S5        U R	                  [
        U/ 5        U R	                  [
        US5        U R	                  [
        U[        5       5        g )Nr
   r   r   r   r   )r   r+   r-   r   r2   r3   r   r    r7   s     r   test_tuple_sizeCAPITest.test_tuple_sizeQ   s    **b1%fq)mF34a8+tR0+tR0+tVX6r   c                     [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" [        S5      5      S5        g )Nr
   r   r   r   )r   tuple_get_sizer-   r   rC   s     r   test_tuple_get_sizeCAPITest.test_tuple_get_size_   sO    ''b1%fq)mF34a8r   c                 d   [         R                  nS/S/S/4nU R                  U" US5      S/5        U R                  U" US5      S/5        [        S/S/S/45      nU R                  U" US5      S/5        U R                  U" US5      S/5        U R	                  [
        X[        5        U R	                  [
        XS5        U R	                  [
        X[        U5      5        U R	                  [
        X[        5        U R	                  [        U/ SQS5        U R	                  [        USS5        g )Nr   r      r   r)   r   r   rK   r   )
r   tuple_getitemr-   r   r2   
IndexErrorr4   lenr6   r3   )r    getitemtupr:   s       r   test_tuple_getitemCAPITest.test_tuple_getitemg   s
   "00sQC!oa1#.a1#.qcA3_-q)A3/q)A3/*gNC*gB7*gCH=*gNC+w	1=+wA6r   c                 &   [         R                  nS/S/S/4nU R                  U" US5      S/5        U R                  U" US5      S/5        [        S/S/S/45      nU R                  U" US5      S/5        U R                  U" US5      S/5        g )Nr   r   rK   r   )r   tuple_get_itemr-   r   )r    get_itemrQ   r:   s       r   test_tuple_get_itemCAPITest.test_tuple_get_item|   s    ++sQC!o#q)A3/#q)A3/qcA3_-$*QC0$*QC0r   c                 
   [         R                  nS/S/S/4nU R                  U" U[        S5      S5        U R                  U" USS5      S5        U R                  U" US[        5      S5        U R                  U" USS5      S5        U R                  U" USS5      S5        [        S/S/S/45      nU R                  U" U[        S5      S5        U R                  U" USS5      S5        U R                  U" US[        5      S5        U R                  U" USS5      S5        U R                  U" USS5      S5        S/S/S/S/4nU R                  U" USS5      S/S/45        [        S/S/S/S/45      nU R                  U" USS5      S/S/45        S/S/S/4nU R                  U" USS5      U5        U R                  U" USS5      U5        U R                  U" US	S5      U5        [        S/S/S/45      nU R                  U" USS5      U5        U R                  U" USS5      U5        U R                  U" US	S5      U5        U R                  [        US/S/S//SS5        U R                  [        US
SS5        g )Nr   r   rK   r   r
   r)      d   ir   )r   tuple_getslicer-   r4   r6   r   r2   r3   )r    getslicerQ   s      r   test_tuple_getsliceCAPITest.test_tuple_getslice   s   #22 sQC!o#~q92>#r1-r2#q.92>#q!,b1#q!,b1aS1#sO,#~q92>#r1-r2#q.92>#q!,b1#q!,b1 sQC!qc"#q!,sQCj9aS1#sQC01#q!,sQCj9 sQC!o#q!,c2#q#.4#tS137aS1#sO,#q!,c2#q#.4#tS137+x1#sQC!QG+xQ:r   c                    [         R                  n[        R                  nS/S/4nU R	                  U" US/ 5      / S/45        U R	                  U" US/ 5      S// 45        U" US[
        5      nU R                  U" US5      5        [        S/S/45      nU R                  [        XS/ 5        U R                  [        X[        / 5        U R                  [        XS/ 5        U R                  [        X[        U5      / 5        U R                  [        X[        / 5        U R                  [        US/S/ 5        U R                  [        USS/ 5        g )Nr   r   r   r)   r   )r   tuple_setitemr   r,   r-   NULLr   r   r2   r3   rN   r4   rO   r6   )r    setitemr8   rQ   r:   s        r   test_tuple_setitemCAPITest.test_tuple_setitem   s,   "0077	sQCja,rA3i8a,sBi8sAt$	$*+qcA3Z(+wa<*gNBG*gB;*gCHbA*gNBG+wQ;+wAr:r   c                    [         R                  n[         R                  nS/S/4nU R                  U" US/ 5      / S/45        U R                  U" US/ 5      S// 45        U" US[        5      nU R                  U" US5      5        [        S/S/45      nU R                  U" US/ 5      U5        U R                  U/ S/45        g )Nr   r   r   )r   tuple_set_itemr,   r-   rb   r   r   r.   )r    set_itemr8   rQ   r:   s        r   test_tuple_set_itemCAPITest.test_tuple_set_item   s    ++77	sQCj#q"-QCy9#q"-Ry9Q%	$*+qcA3Z(htQ+T2QCy)r   c                 j   [         R                  n[         R                  nSnU" USS5      nU R                  [	        U5      S5        U R                  [	        U5      S5        U" USS5      nU R                  [	        U5      S5        U R                  [	        U5      S5        U R                  U" US5      5        U R                  U" US5      5        S/S/S/4nU" US5      nU R                  XC5        U" US5      nU R                  XCS S 5        U" US5      nU R                  [	        U5      S5        U R                  US S U5        U R                  U" US5      5        U R                  U" US5      5        SnU R                  [        X[        5        U R                  [        XS	5        U R                  [        X[        5        S
nU R                  [        XSS5        U R                  [        XSS5        U R                  [        U/ S
QSS5        U R                  [        U[        SS5        g )Nr
   r   Fr   r   rK      rZ   r)   rL   )r   _tuple_resizer,   r-   rO   r   r2   r5   r6   r3   r4   rb   )r    resizer8   abs        r   test__tuple_resizeCAPITest.test__tuple_resize   s   ((77	1aQ#Q#1aQ#Q#	!Q(	!Q(S1#sO1aL1aLbqE"1aLQ#2A"	!Q(	!Q(+v.A+v"5+v.A+v!U;+v!U;+vy!UC+vtQ>r   r
   N)r   r   r   r   r"   r&   r;   r@   rD   rH   rR   rW   r^   rd   ri   rq   r   r
   r   r   r   r      s@    
*
*B(
=
797*
1#;N;0**$?r   r   __main__)unittestsyscollectionsr   test.supportr   import_moduler   r   rb   r4   r6   r0   r   TestCaser   r   mainr
   r   r   <module>r{      s     
 " &''4	 ../AB ))))	E 	q?x   q?f zMMO r   