
    2hh9                        S SK r S SKrS SKrS SKrS SKrS SKJrJr  \R                  " S5      r	S SK	J
r
Jr   S SKJr  Sr " S S5      r " S S	5      r " S
 S5      r " S S\5      r " S S\5      r " S S\5      rS r " S S\5      r " S S\5      r " S S\R4                  5      r\S:X  a  \R:                  " 5         gg! \ a    Sr Nf = f)    N)cpython_onlyimport_helper	_testcapi)PY_SSIZE_T_MAXPY_SSIZE_T_MIN)ndarrayc                       \ rS rSrSS jrSrg)BadDescr   Nc                     [         eN)RuntimeError)selfobjobjtypes      C/opt/python-3.13.8/usr/lib/python3.13/test/test_capi/test_number.py__get__BadDescr.__get__   s         r   )__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r
   r
      s    r   r
   c                   N   ^  \ rS rSrS r\U 4S j5       r\U 4S j5       rSrU =r	$ )
WithDunder   c                 x    U R                   (       a  U R                   $ U R                  (       a  U R                  eg r   )valexc)r   argss     r   _methWithDunder._meth   s'    8888O88((N r   c                    > [         TU ]  U 5      nXl        S Ul        [	        X R
                  U R                  5        U$ r   super__new__r    r!   setattrmethnamer#   )clsr    r   	__class__s      r   with_valWithDunder.with_val   s4    goc"\\399-
r   c                    > [         TU ]  U 5      nS Ul        Xl        [	        X R
                  U R                  5        U$ r   r&   )r+   r!   r   r,   s      r   with_excWithDunder.with_exc%   s4    goc"\\399-
r   r   )
r   r   r   r   r#   classmethodr-   r0   r   __classcell__r,   s   @r   r   r      s0    
    r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )
HasBadAttr-   c                 b   > [         TU ]  U 5      n[        X R                  [	        5       5        U$ r   )r'   r(   r)   r*   r
   )r+   r   r,   s     r   r(   HasBadAttr.__new__.   s&    goc"\\8:.
r   r   )r   r   r   r   r(   r   r3   r4   s   @r   r6   r6   -   s     r   r6   c                       \ rS rSrSrSrg)	IndexLike4   	__index__r   Nr   r   r   r   r*   r   r   r   r   r;   r;   4       Hr   r;   c                       \ rS rSrSrSrg)IntLike7   __int__r   Nr>   r   r   r   rA   rA   7   s    Hr   rA   c                       \ rS rSrSrSrg)	FloatLike:   	__float__r   Nr>   r   r   r   rE   rE   :   r?   r   rE   c                 8    [        U R                  S-   U 40 5      $ )NSubclass)typer   )bases    r   
subclassofrL   >   s    
*TGR88r   c                       \ rS rSrSrg)	SomeErrorB   r   Nr   r   r   r   r   r   r   r   rN   rN   B       r   rN   c                       \ rS rSrSrg)
OtherErrorE   r   NrP   r   r   r   rS   rS   E   rQ   r   rS   c                       \ rS rSrS rS rS r\R                  " \	SL S5      S 5       r
\R                  " \	SL S5      S 5       rS	 r\S
 5       rS rS rS rS rS rSrg)CAPITestI   c                 z   [         R                  nU R                  U" S5      5        U R                  U" [        R	                  S5      5      5        U R                  U" [
        R	                  S5      5      5        U R                  U" S5      5        U R                  U" [        R	                  S5      5      5        U R                  U" S5      5        U R                  U" / 5      5        U R                  U" S5      5        U R                  U" [        5       5      5        U R                  U" [        5      5        g )N   c         ?      @      ?       @abc)
r   number_check
assertTruer;   r-   rA   rE   assertFalseobjectNULL)r   checks     r   
test_checkCAPITest.test_checkJ   s    &&a!i00345g..r234c
#i00678d$r#u&vx)t%r   c                    [         R                  [         R                  [         R                  [         R                  S.nUR                  5        H  u  p#U R                  [        U[        5       5        U R                  [        U[        5        [        [        U5      nS H*  n U" U5        U R                  U" U5      U" U5      5        M,     M     g ! [         a    U R                  [        X55         MV  f = f)N)__neg____pos____abs__
__invert__)r   *   Q	@r]   )r   number_negativenumber_positivenumber_absolutenumber_invertitemsassertRaises	TypeErrorrb   SystemErrorrc   getattroperatorassertEqual)r   methmapnamefuncopxs         r   test_unary_opsCAPITest.test_unary_opsZ   s    '77'77'77!*!8!8:
 "--/JDivx8 k46 4(B,5qE $$T!Wbe4 - * ! :%%i9:s   %C C87C8c                 ~   0 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"                  _[         R$                  [         R&                  [         R(                  [         R*                  [         R,                  [         R.                  [         R0                  [         R2                  [         R4                  [         R6                  S.
EnUR9                  5        H  u  p#/ SQnU HB  nU R;                  [<        U[?        5       U5        U R;                  [<        X5[?        5       5        MD     [A        [B        U[D        5      n[F        RH                  " US5       H,  u  pW U" XW5        U RK                  U" XW5      U" XW5      5        M.     M     g ! [<        [L        [N        4 a(  nU R;                  URP                  X5U5         S nAMm  S nAff = f)N__add____sub____mul__
__matmul____floordiv____truediv____mod__
__divmod__
__lshift__
__rshift____and____xor____or____pow____iadd____isub____imul__)
__imatmul____ifloordiv____itruediv____imod____ilshift____irshift____iand____ixor____ior____ipow__)r   rl   rn   rm   {   r]      ))r   
number_addnumber_subtractnumber_multiplynumber_matrixmultiplynumber_floordividenumber_truedividenumber_remaindernumber_divmodnumber_lshiftnumber_rshift
number_and
number_xor	number_ornumber_powernumber_inplaceaddnumber_inplacesubtractnumber_inplacemultiplynumber_inplacematrixmultiplynumber_inplacefloordividenumber_inplacetruedividenumber_inplaceremaindernumber_inplacelshiftnumber_inplacershiftnumber_inplaceandnumber_inplacexornumber_inplaceornumber_inplacepowerrs   rt   ru   rb   rw   rx   divmod	itertoolscombinationsry   
ValueErrorZeroDivisionErrorr,   )	r   rz   r{   r|   casesr~   r}   yr!   s	            r   test_binary_opsCAPITest.test_binary_opsq   sh   9i22 i77i77  !@!@ "9#?#?	
 !)"="= i88  !8!8  !8!8  !8!8 i22 i22 Y00 i44 y:: y??  y??!" #,"H"H$-$G$G#,#E#E(@@"+"@"@"+"@"@(::(::'88(<<5: "--/JD0E !!)T68Q?!!)Tfh? 
 40B!..ua8;qH $$T!ZA: 9 * ":/@A A%%cmmTa@@As   I??J<J77J<Nzneeds _testbufferc                    [         R                  n[         R                  nSS/SS// SQpTnU R                  U" X45      U5        U R                  USS/5        U R	                  [
        U[        S/S5      S5        SS/SS// SQpTnU R                  U" X45      U5        U R                  X55        U R	                  [
        U[        S/S5      S5        g )NrY   r         )rY   r   r   r   rY   )r   r   r   ry   rt   ru   r   )r   add
inplaceaddabrs         r   test_misc_addCAPITest.test_misc_add   s     ""00
 a&1a&,aQA&QF#)S'1#t*<a@a&1a&,aA)1-)Z!d1CQGr   c                    [         R                  n[         R                  nS/SSS/pTnU R                  U" X45      U5        U R                  X44S/S45        U R                  U" XC5      U5        U R                  X44S/S45        U R                  U" S/S5      / 5        U R	                  [
        U[        S/S5      S5        U R	                  [
        US/S5        U R	                  [        US/[        S-   5        U R	                  [        USS/[        S-  S-   5        S/SSS/pTnU R                  U" X45      U5        U R                  X44US45        S/nU R                  U" XC5      U5        U R                  X44S/S45        U R	                  [
        U[        S/S5      S5        U R	                  [        US/[        S-   5        U R	                  [        USS/[        S-  S-   5        g )NrY   r   rm   r   r[   )
r   r   r   ry   rt   ru   r   OverflowErrorr   MemoryError)r   multiplyinplacemultiplyr   r   r   s         r   test_misc_multiplyCAPITest.test_misc_multiply   s    ,,#:: #q1a&a!+!1#q*!+!1#q*1#r*B/)XwsD/A1E)XsC8-A38JK+x!Q9JQ9NO#q1a&a.2!!Q(C.2!1#q*)_gqc46H!L-1#~PQ?QR+APQ@QTU@UVr   c           	         [         R                  n[         R                  n " S S[        5      nU R	                  U" SSS5      [        SSS5      5        U R                  [        USSS5        U R                  [        USSUR                  [        5      5        U R                  [        USS[        5       5        U R	                  U" SSS5      [        SSS5      5        U R                  [        USSS5        U R                  [        USS[        5       5         " S S5      nU" 5       nU R	                  U" US5      US45        U R	                  U" US5      US45        U R	                  U" USS5      USS45        U R	                  U" USS5      USS45         " S	 S5      nU" 5       nU R	                  U" SU5      US45        U R	                  U" SU5      US45        U R                  [        USUS5        U R                  [        USUS5         " S
 S5      nU" 5       nU R	                  U" US5      US45        U R	                  U" USS5      US45        g )Nc                       \ rS rSrSrSrg)(CAPITest.test_misc_power.<locals>.HasPow   r   r   Nr>   r   r   r   HasPowr      s     Hr   r   r               ?c                       \ rS rSrS rSrg)#CAPITest.test_misc_power.<locals>.X   c                      U $ r   r   r"   s    r   r   +CAPITest.test_misc_power.<locals>.X.__pow__       r   r   N)r   r   r   r   r   r   r   r   r   Xr          r   r   c                       \ rS rSrS rSrg)r      c                      U $ r   r   r   s    r   __rpow__,CAPITest.test_misc_power.<locals>.X.__rpow__   r   r   r   N)r   r   r   r   r   r   r   r   r   r   r      r   r   c                       \ rS rSrS rSrg)r      c                      U $ r   r   r   s    r   r   ,CAPITest.test_misc_power.<locals>.X.__ipow__   r   r   r   N)r   r   r   r   r   r   r   r   r   r   r      r   r   )r   r   r   r   ry   powrt   ru   r-   NotImplementedrb   )r   powerinplacepowerr   r   r~   s         r   test_misc_powerCAPITest.test_misc_power   s&   && 44	!Z 	! 	q"a#aQ-8)UAr48)UAr6??>3RS)UAr68<aQ/QA?)\1b$?)\1b&(C	 	 Cq"2w/a,q"g6q"a1b!*5aQ/!R<	 	 Cq!q!f-a+aV4)UAq!4)\1a;	 	 Ca,q"g6aQ/!R9r   c                 4   [         R                  nU R                  [        5       nU" [        S5        S S S 5        U R                  S[        WR                  5      5        U R                  [        5       nU" [        [        R                  5        S S S 5        U R                  S[        UR                  5      5        U R                  [        5       nU" SS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       g = f)Nrl   z6Did you mean "print(<message>, file=<output_stream>)"?zDid you mean rY   spam)r   r   rt   ru   printassertInstr	exceptionmaxsysstderrassertNotIn)r   rshiftcontexts      r   test_rshift_printCAPITest.test_rshift_print   s     ((y)W5" * 014W5F5F1G	Iy)W3

# *#g.?.?*@Ay)W1f *) *) *) *)s#   C'6C8
D	'
C58
D	
Dc                    [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        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" [	        S5      5      S5        U R                  U" [
        R                  S5      5      S5        U R                  U" [        R                  S5      5      S5        U R                  [        U[        R                  S5      5        [        R                  " 5          [        R                  " S[        5        U R                  [        U[        R                  S	5      5        S S S 5        U R                  [        5         U R                  U" [        R                  S	5      5      S5        S S S 5        U R                  [        U[        R!                  [        5      5        U R                  [        US
5        U R                  [        U[#        5       5        U R                  [$        U[&        5        g ! , (       d  f       N= f! , (       d  f       N= f)Nrl   r   rY   42s   42rZ         ?errorT              ?)r   number_longry   	bytearray
memoryviewr;   r-   rA   rt   ru   warningscatch_warningssimplefilterDeprecationWarningassertWarnsr   r0   rb   rv   rc   )r   longs     r   	test_longCAPITest.test_long  s   $$b2&dQ'dR(eb)i./4j/0"5i0045r:g..r23R8)T7+;+;C+@A$$&!!'+=>0$8H8H8NO ' 01T'"2"24"891= 2,g.>.>|.LM)T2.)T684+tT2 '& 21s   AI+,I0
I-0
I>c           
         [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" [        R	                  S5      5      S5        U R                  U" [
        R	                  S5      5      S5        U R                  U" [
        R	                  S5      5      S	5        U R                  [        U[        R	                  S
5      5        [        R                  " 5          [        R                  " S[        5        U R                  [        U[        R	                  [        [        5      " S5      5      5        S S S 5        U R                  [        5         U R                  U" [        R	                  [        [        5      " S5      5      5      S5        S S S 5        U R                  [        U[        R!                  [        5      5        U R                  [        U[
        R	                  S5      5        U R                  ["        U[
        R	                  SS-  5      5        U R                  [        US5        U R                  [        U[%        5       5        U R                  [&        U[(        5        g ! , (       d  f       GNB= f! , (       d  f       N= f)Nr   r   g     ^@z1.25r\   rZ   g     X@rm   g      i  r  r   i  r  )r   number_floatry   rE   r-   r;   rt   ru   r  r  r  r  rL   floatr  r   r0   r   rb   rv   rc   )r   float_s     r   
test_floatCAPITest.test_float&  s   ''t,d+.	 2 24 894@	 2 22 67>	 2 22 67>)VY-?-?-DE$$&!!'+=>0&):L:LZX]M^_cMd:ef ' 01VI$6$6z%7H7N$OPRVW 2,	0B0B<0PQ)VY-?-?-EF-1C1CAtG1LM)VR0)VVX6+vt4 '& 21s   AJ-?J?-
J<?
Kc                 r   [         R                  nU R                  U" S5      S5        [        R                  " 5          [        R
                  " S[        5        U R                  [        U[        R                  S5      5        S S S 5        U R                  [        5         U R                  U" [        R                  S5      5      S5        S S S 5        U R                  [        U[        R                  S5      5        U R                  [        U[        R                  [        5      5        U R                  [        US5        U R                  [        US5        U R                  [        U[        5       5        U R                  [        U[         5        g ! , (       d  f       GN= f! , (       d  f       N= f)Nr   r  TrY   r  r   r  )r   number_indexry   r  r  r  r  rt   r;   r-   r  ru   r   r0   rb   rv   rc   )r   indexs     r   
test_indexCAPITest.test_indexA  s-   &&rB'$$&!!'+=>0%9K9KD9QR ' 01U9#5#5d#;<a@ 2)UI,>,>s,CD,y/A/A,/OP)UD1)UD1)UFH5+ud3 '& 21s   AF!,F(
F%(
F6c                    [         R                  nU R                  U" SS5      [        S5      5        U R                  U" SS5      [	        S5      5        U R                  U" SS5      [        S5      5        U R                  U" SS5      [        S5      5        U R                  [        U[        S5        U R                  [        USS5        U R                  [        USS5        U R                  [        US	S5        g )
N
   r   r            r   r   r  )r   number_tobasery   binoctr   hexrt   rv   rc   ru   )r   tobases     r   test_tobaseCAPITest.test_tobaseT  s    ((AB0AB0BR1BR1+vtQ7+vq!4)VT15)VT15r   c                    [         R                  n/ [        SS5      Q[        P[        P H   nU R                  U" U[        5      U5        M"     U R                  U" [        S-   [        5      [        5        U R                  U" [        S-
  [        5      [        5        U R                  [        U[        S-   [        5        U R                  [        U[        S-   [        5        U R                  [        U[        [        5        g )Ni   r  )r   number_asssizetranger   r   ry   r   rc   rt   r   rv   ru   )r   asssizetns      r   test_asssizetCAPITest.test_asssizetb  s    ,,@5Q<@@@AXa7; A."3T:NK."3T:NK->B3FV,.22E|T+xyAr   r   )r   r   r   r   re   r   r   unittestskipIfr   r   r   r   r   r  r  r  r  r(  r0  r   r   r   r   rV   rV   I   s    & 5..;f __W_&9:H ;H __W_&9:W ;W4-:^  32564&6Br   rV   __main__)r   rx   r   r2  r  test.supportr   r   import_moduler   r   r   _testbufferr   ImportErrorrc   r
   r   r6   r;   rA   rE   rL   	ExceptionrN   rS   TestCaserV   r   mainr   r   r   <module>r<     s      
   4''4	 4#   , 
 j 
 9		 		 	dBx   dBN	 zMMO E  Gs   C CC