
    9bhf5                         d dl Z d dlZd dlmZ  ej                  d      ZdZ G d de      Z G d d      Z	 G d d	      Z
 G d
 de j                        Zedk(  r e j                          yy)    N)import_helper	_testcapic                       e Zd Zy)IntSubclassN)__name__
__module____qualname__     B/opt/python-3.12.12/usr/lib/python3.12/test/test_capi/test_long.pyr   r      s    r   r   c                       e Zd Zd Zd Zy)Indexc                     || _         y Nvalue)selfr   s     r   __init__zIndex.__init__   s	    
r   c                     | j                   S r   r   r   s    r   	__index__zIndex.__index__   s    zzr   N)r   r   r	   r   r   r
   r   r   r   r      s    r   r   c                       e Zd Zd Zd Zy)MyIndexAndIntc                      y)N
   r
   r   s    r   r   zMyIndexAndInt.__index__       r   c                      y)N   r
   r   s    r   __int__zMyIndexAndInt.__int__   r   r   N)r   r   r	   r   r   r
   r   r   r   r      s    r   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	d
eddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)	LongTestsc                    h d t        d      D        d t        d      D        d t        d      D        d t        d      D        d t        d      D        d t        d      D        D ]I  }| j                  |	      5  t        j                  |      \  }}|r| j	                  ||       d d d        K y # 1 sw Y   VxY w)
Nc              3   &   K   | ]	  }d |z    yw   Nr
   .0ns     r   	<genexpr>z)LongTests.test_compact.<locals>.<genexpr>"   s     &IqadI   B   c              3   (   K   | ]
  }d |z     ywr$   r
   r&   s     r   r)   z)LongTests.test_compact.<locals>.<genexpr>#   s     'Yq!teY   c              3   ,   K   | ]  }d |z  dz
    ywr%      Nr
   r&   s     r   r)   z)LongTests.test_compact.<locals>.<genexpr>$   s     *	1adQh	s   c              3   .   K   | ]  }d |z   dz     ywr/   r
   r&   s     r   r)   z)LongTests.test_compact.<locals>.<genexpr>%   s     +Aq!teais   c              3   &   K   | ]	  }d |z    yw%   Nr
   r&   s     r   r)   z)LongTests.test_compact.<locals>.<genexpr>'   s     'Yb!eYr*      c              3   (   K   | ]
  }d |z     ywr3   r
   r&   s     r   r)   z)LongTests.test_compact.<locals>.<genexpr>(   s     (ir1ufir-   )r(   )rangesubTestr   call_long_compact_apiassertEqual)r   r(   
is_compactr   s       r   test_compactzLongTests.test_compact   s    	
&E"I&	
 (U2Y'	
 +b	*		

 ,r+	
 (U2Y'	
 )eBi(	
A "$-$C$CA$F!
E$$Q. #"	
 #"s   -B<<C	c                 H   | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  t        j                        d       y )N)Tr>   r   )Tr      )Tr?   )Fr>   )r:   r   r9   sysmaxsizer   s    r   test_compact_knownzLongTests.test_compact_known/   sw     	88<jI88;YG88={K88E$	&r   c                    t         j                  }| j                   |d             | j                   |d             | j                   |d             | j                   |d             | j                   |t        d                   | j	                   |d             | j	                   |t                            y Nr0   l   
~l!]c r>   T      ?)r   pylong_check
assertTruer   assertFalseobjectr   checks     r   test_long_checkzLongTests.test_long_check8   s    &&a!<=>b	"d$k!n-.s$vx)r   c                    t         j                  }| j                   |d             | j                   |d             | j                   |d             | j                   |d             | j                   |t	        d                   | j                   |d             | j                   |t                            y rD   )r   pylong_checkexactrG   rH   r   rI   rJ   s     r   test_long_checkexactzLongTests.test_long_checkexactD   s    ++a!<=>b	"t%{1~./s$vx)r   c           	         t         j                  }t        j                  j                  }ddddddd|| f	D ]>  }| j                  |      5  | j                   ||      t        |             d d d        @ | j                  t        |t        d	             | j                  t        |t        d
             | j                  t        |t        d             y # 1 sw Y   xY w)Ng      @gffffff@g@gffffffgg        g       r   infz-infnan)r   pylong_fromdoubler@   
float_infomaxr8   r:   intassertRaisesOverflowErrorfloat
ValueError)r   
fromdouble	float_maxr   s       r   test_long_fromdoublezLongTests.test_long_fromdoubleP   s    00
NN&&	3T4dI	zREE*  E!2CJ? +* S 	-U5\B-U6]C*j%,?	 +*s   "CC"	c                 $   t         j                  }t               } ||      } |t              }| j	                  |t
               | j                  |d       | j	                  |t
               | j                  |d       | j                  ||       y )Nr   )	r   pylong_fromvoidptrrI   NULLassertIsInstancerV   assertGreaterEqualr:   assertNotEqual)r   fromvoidptrobjxys        r   test_long_fromvoidptrzLongTests.test_long_fromvoidptr[   sx    22ha%1%a%AAq!r   c                 4   t         j                  }| j                   |dd      d       | j                   |dd      d       | j                   |dd      d	       | j                   |dd
      d       | j                   |dd
      d       | j                  t        |dd
       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dj                         d
       | j                  t        |dj                         d       | j                   |dd
      d       | j                   |dd
      d       | j                   |dd      d       | j                   |dd      d       y )Ns   123r   ){      s   cafe   )     s   xyz$   )  rk   r   s   0xcafe)rm      s   -123)rn   s    -123 )rr   rq   s   1_23)rj   rn   s   - 123r   r0   r>   r4      ١٢٣٤٥٦٧٨٩٠s   123 s   123 456)i#  rk   )r   pylong_fromstringr:   rW   rZ   encode)r   
fromstrings     r   test_long_fromstringzLongTests.test_long_fromstringg   s   00
FB/:GR0+>FB/<FA.9Iq1;?*j'1=GR0)<Ir2I>GR0(;*j(B?*j#r:*j&!<*j&"=*j&"=*j2H2O2O2QSTU*j2H2O2O2QSUVJ2H=M15x@J3Z@M26
Cr   c                    t         j                  }| j                   |dd      d       | j                   |dd      d       | j                   |dd      d	       | j                   |dd
      d       | j                   |dd
      d       | j                  t        |dd
       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                   |dd
      d       | j                   |dd      d       | j                  t        |dd
       | j                  t        |dd
       | j                  t        |dd       | j                  t        |dd       y )N123r   rj   caferl   rm   xyzro   rp   r   0xcafez-123rr   z -123 1_23z- 123 r0   r>   r4   rs   iIl   xhH z123 z123 456)r   pylong_fromunicodeobjectr:   rW   rZ   )r   fromunicodeobjects     r   test_long_fromunicodeobjectz%LongTests.test_long_fromunicodeobject   s   %>>*5"5s;*626?*5"5u=*5!4c:*8Q7@*&7C*626=*8R8$?*626<*&7"E*&7R@*&7B*&7C*&7C*+A1EzR*+A2FU*&7AF*&7qI*&7BG*&7rJr   TF)	use_indexmasknegative_value_errorc          	      `   ddd|f}|dk  r|d|fz  }|D ]y  }| j                  |      5  | j                   ||      |       | j                   |t        |            |       |r!| j                   |t        |            |       d d d        { |r!| j                   |t	                     d       n?| j                  t        |t        d             | j                  t        |t	                      |rm| j                   ||dz
        |       | j                   ||dz         |       | j                   |ddz        d       | j                   |ddz        d       n`| j                  |||dz
         | j                  ||ddz         | j                  t        ||dz          | j                  t        |ddz         | j                  t        |d	       | j                  t        |d
       | j                  t        |d       | j                  t        |t               y # 1 sw Y   xY w)Nr   r0     r>   r   r   *     rE      23)
r8   r:   r   r   r   rW   	TypeErrorrX   SystemErrorr`   )	r   funcmin_valmax_valr   r   r   valuesr   s	            r   check_long_asintzLongTests.check_long_asint   s   
 Qg&Q;r7m#FEE*  ee4  k%&8!95A$$T%,%7?	 +*  T-/2B7iuRy9i}?T'A+.8T'A+.8T"*-q1T!t)_a02D'A+F2D"*EmT7Q;?mT19=)T3/)T40)T3/+tT23 +*s   AH##H-	c           	      6   ||ddddfD ]}  }| j                  |      5  | j                   ||      |df       | j                   |t        |            |df       | j                   |t        |            |df       d d d         | j                   |t	                     d       | j                   ||dz
        d       | j                   ||dz         d       | j                  t        |d        | j                  t        |d	       y # 1 sw Y   xY w)
Nr>   r   r0   r   r   )r   r   )r>   r>   )r>   r0   rE   )r8   r:   r   r   r   rW   r   r   )r   r   r   r   r   s        r   check_long_asintandoverflowz%LongTests.check_long_asintandoverflow   s    wAq$7EE*  euaj9  k%&8!9E1:F  eEl!3eQZ@ +* 8 	mo.8gk*H5gk*H5+tT2)T3/ +*s   A!DD	c                 Z    t         j                  }ddl m}m} | j	                  |||       y Nr   )LONG_MINLONG_MAX)r   pylong_aslongr   r   r   )r   aslongr   r   s       r   test_long_aslongzLongTests.test_long_aslong   s"    ((0fh9r   c                 Z    t         j                  }ddl m}m} | j	                  |||       y r   )r   pylong_aslongandoverflowr   r   r   )r   aslongandoverflowr   r   s       r   test_long_aslongandoverflowz%LongTests.test_long_aslongandoverflow   s$    %>>0(():HhOr   c                 Z    t         j                  }ddl m} | j                  |d|d       y )Nr   	ULONG_MAXFr   )r   pylong_asunsignedlongr   r   )r   asunsignedlongr   s      r   test_long_asunsignedlongz"LongTests.test_long_asunsignedlong   s,    "88'na05 	 	7r   c                 Z    t         j                  }ddl m} | j                  |d|d       y )Nr   r   Tr   )r   pylong_asunsignedlongmaskr   r   )r   asunsignedlongmaskr   s      r   test_long_asunsignedlongmaskz&LongTests.test_long_asunsignedlongmask   s)    &@@'0!YTJr   c                 Z    t         j                  }ddl m}m} | j	                  |||       y Nr   )	LLONG_MIN	LLONG_MAX)r   pylong_aslonglongr   r   r   )r   
aslonglongr   r   s       r   test_long_aslonglongzLongTests.test_long_aslonglong   s"    00
2j)Y?r   c                 Z    t         j                  }ddl m}m} | j	                  |||       y r   )r   pylong_aslonglongandoverflowr   r   r   )r   aslonglongandoverflowr   r   s       r   test_long_aslonglongandoverflowz)LongTests.test_long_aslonglongandoverflow   s$     ) F F2(()>	9Ur   c                 Z    t         j                  }ddl m} | j                  |d|d       y )Nr   
ULLONG_MAXFr   )r   pylong_asunsignedlonglongr   r   )r   asunsignedlonglongr   s      r   test_long_asunsignedlonglongz&LongTests.test_long_asunsignedlonglong   s)    &@@(0!Z5Qr   c                 Z    t         j                  }ddl m} | j                  |d|d       y )Nr   r   Tr   )r   pylong_asunsignedlonglongmaskr   r   )r   asunsignedlonglongmaskr   s      r    test_long_asunsignedlonglongmaskz*LongTests.test_long_asunsignedlonglongmask  s)    !*!H!H(4a$Or   c                 ^    t         j                  }ddl m}m} | j	                  |||d       y )Nr   )PY_SSIZE_T_MINPY_SSIZE_T_MAXFr   )r   pylong_as_ssize_tr   r   r   )r   
as_ssize_tr   r   s       r   test_long_as_ssize_tzLongTests.test_long_as_ssize_t  s,    00
<j..(- 	 	/r   c                 Z    t         j                  }ddl m} | j                  |d|d       y )Nr   )SIZE_MAXFr   )r   pylong_as_size_tr   r   )r   	as_size_tr   s      r   test_long_as_size_tzLongTests.test_long_as_size_t  s'    ..	&iHFr   c                 8   t         j                  }t        t        j                  j
                        }| |ddddfD ]Z  }| j                  |      5  | j                   ||      t        |             | j                   ||      t               d d d        \ | j                   |t        d            d       | j                  t        |t        d             | j                  t        |t                      | j                  t        |d|z         | j                  t        |d	|z         | j                  t        |d
       | j                  t        |d       | j                  t        |d       | j                  t         |t"               y # 1 sw Y   \xY w)Nr>   r   r0   r   r   r   g      E@r%   rE   r   r   )r   pylong_asdoublerV   r@   rT   rU   r8   r:   rY   ra   r   rW   r   r   r   rX   r   r`   )r   asdoubleMAXr   s       r   test_long_asdoublezLongTests.test_long_asdouble  s>   ,,#..$$%dCQ40EE*  %%,?%%huou= +* 1
 	+b/2D9)XuRy9)X}?-1s7;-28<)Xs3)Xt4)Xs3+x6 +*s   >FF	c                    t         j                  }t         j                  }t               } ||      } |t              }| j                   ||      |       | j                   ||      t               | j                   |t        |            |       dt         j                  dz  z  }||dz  k\  r| j                   |||z
        |       ||dz  k\  r| j                   |||z
        t               | j                  t        |t        |             | j                  t        |t                      | j                  t        |ddz         | j                  t        |ddz          y )Nr0      r%   r   )r   r_   pylong_asvoidptrrI   r`   assertIsr   SIZEOF_VOID_PrW   r   r   rX   )r   rd   	asvoidptrre   rf   rg   Ms          r   test_long_asvoidptrzLongTests.test_long_asvoidptr(  s!   22..	hilC(ilD)iA/5 )))A--19MM)AE*C019MM)AE*D1)Ya9)Y9-AtG<-QWH=r   c                     t         j                  }ddl m} d|z  }d|dz
  z   }d|dz
  z  dz
  }| j                  |||       y )Nr   )SIZEOF_PID_Tr   r%   r0   )r   pylong_aspidr   r   )r   aspidr   bits	PID_T_MIN	PID_T_MAXs         r   test_long_aspidzLongTests.test_long_aspid@  sL    &&*<a[L	QK!O	eY	:r   N)r   r   r	   r<   rB   rL   rO   r]   rh   rw   r   rX   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   r!   r!      s    / &	*	*	@
"D<K> $(#.;"3H0:P7K@VRP/G7(>0;r   r!   __main__)unittestr@   test.supportr   import_moduler   r`   rV   r   r   r   TestCaser!   r   mainr
   r   r   <module>r      sv     
 & (M''4		# 	  j;!! j;Z	 zHMMO r   