+
    Bi[                       ^ RI t ^ RIHt ^ RIt^ RIt^ RIt^ RIt]P                  P                  t	^]	,          t
]
^,
          t^Ft^t^ ^^]
]
^,	          RR.t^t]! ^]	,          4       F$  t]P%                  ]^,
          4       ]^,          tK&  	  A]] U u. uF  q ( NK  	  up ] U u. uF  q ) NK  	  up ,           ,          t]P&                  P(                  t]P&                  P,                  t]P&                  P0                  t]P&                  P4                  t^],          ^]],
          ^,
          ,          ,
          tR tR t ! R R] P>                  4      t ]!R	8X  d   ] PD                  ! 4        R# R# u up i u up i )
    N)supportl   UU*UU* l   *UU*UU
 c                   \         P                  P                  ^,           p\         P                  P                  V,
          p^V,          p. ROpV ^ 8X  d   R# V ^ 8  d   \	        V ) 4      ) # V P                  4       V,
          pV^ 8  d
   W) ,          M&W,	          \        V RV,          ( ,          4      ,          pWdV^,          ,          ,          pWVV8H  ,           V8  d   \        R4      h\        P                  ! \        V4      V4      # )z1
Correctly-rounded integer-to-float conversion.

        z%integer too large to convert to float)r   r      r   r      r   )sys
float_infomant_digmax_expint_to_float
bit_lengthboolOverflowErrormathldexpfloat)n	PRECISION	SHIFT_MAXQ_MAXROUND_HALF_TO_EVEN_CORRECTIONshiftqs   &      %/usr/lib/python3.14/test/test_long.pyr   r   '   s     ''!+I&&2INE$?! 	Av	
QaR    LLNY&EqyVqzT!en:L5M&MA q1u	--A U
i'CDD ::eAh&&    c                   W,          ^ 8  p\        V 4      \        V4      rV'       g   \        R4      hV \        V,          8  d   \        R4      hV P	                  4       VP	                  4       ,
          pV^ 8  d   V ^V,          V,          8  g   V^ 8  d    V ^V) ,          ,          V8  d
   V^,          p\        V\        4      \        ,
          pV \        V) ^ 4      ,          V\        V^ 4      ,          r\        W4      w  rV^V,          V8  g   ^V,          V8X  d   V^,          ^8X  d
   V^,          p\        P                  ! WT4      pV'       d   V) # T# )z-Correctly-rounded true division for integers.zdivision by zeroz)int/int too large to represent as a float)absZeroDivisionErrorDBL_MIN_OVERFLOWr   r   maxDBL_MIN_EXPDBL_MANT_DIGdivmodr   r   )abnegativedexpr   rresults   &&      r   truedivr-   U   s   sQwHq63q6q  233q  GHH 	
'AAv!q!tax-1q5QQBY!^	Q a

,CSD!a3sA;.q!<DA 	sQw!A#(q1uz	QZZFF7*F*r   c                   |  a  ] tR t^st o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR t]P(                  R 4       t]P(                  ]P,                  ! R>RR7      R 4       4       tR tR tR t]P(                  ]P,                  ! R>RR7      R 4       4       tR tR tR tR tR t R?R lt!]P(                  R 4       t"R t#R  t$]PJ                  R! 4       t&]PJ                  ]P,                  ! R>RR7      R" 4       4       t'R# t(]PJ                  ]P,                  ! R>RR7      R$ 4       4       t)R% t*R& t+R' t,R( t-R) t.R* t/]PJ                  R+ 4       t0]PJ                  R, 4       t1]PJ                  R- 4       t2R. t3R/ t4R0 t5R1 t6R2 t7R3 t8]PJ                  R4 4       t9R5 t:R6 t;R7 t<R8 t=R9 t>R: t?R; t@R<tAV tBR=# )@LongTestc                   V P                  V^ 4       V\        ,          pV\        ,
          ^,           p^ p^ p\        \        P                  ! 4       \        ^,          ,          4      ^,          pWS8  d   V^,	          ^,           p\	        WrV,
          4      pT P                  ^Tu;8*  ;'       d
    \        8*  Mu 4       WW,           pWG,          pV^,          '       d   V^V,          ^,
          ,          p\        \        P                  ! 4       \        ^,          ,          4      pK  T P                  Y5u;8*  ;'       d    V8*  Mu 4       \        P                  ! 4       R8  d   V) pV# r         ?)assertGreaterSHIFTintrandommin
assertTrue)selfndigitsnbits_hinbits_loanswernbitsr+   bitss   &&      r   getranLongTest.getran{   s    7A&U?e#a'519-.2Fa<Dt-.DOOA.../LE^F1uuAI?3FMMOuqy12A55X56==?S WFr   c                    ^ p\        V 4       F0  pV\        ,          \        P                  ! ^ \        4      ,          pK2  	  \        P                  ! 4       R8  d   V) pV# r1   )ranger4   r6   randintMASK)r:   r=   is   &  r   getran2LongTest.getran2   sH    wAo4)@@F  ==?S WFr   c                   V P                   pV P                  WR 7      ;_uu_ 4        \        W4      w  rEW,          W,          rvW,          W!,          rV! WR4       V! WFR4       V! WWR4       V! WV,          V,           R4       V^ 8  d(   T P                  ^ Tu;8*  ;'       d    V8  Mu R4       M%T P                  Y%u;8  ;'       d    ^ 8*  Mu R4       RRR4       R#   + '       g   i     R# ; i)xyzmultiplication does not commutez(divmod returns different quotient than /z#divmod returns different mod than %zx != q*y + r after divmodzbad mod from divmodN)assertEqualsubTestr%   r8   )
r9   rK   rL   eqr   r+   q2r2pabpbas
   &&&       r   check_divisionLongTest.check_division   s    \\A\##!<DAT13sACs:;q@Aq;<qA#'671uQ


,AB


,AB $###s   A=C"%3C""C3	c                   \        \        ^\        ^,           4      4      \        \        \        \        ^,           4      4      ,           pVP	                  \        ^,          4       V FI  pV P                  V4      pV F/  pV P                  V4      ;'       g    ^pV P                  W54       K1  	  KK  	  V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  R	R
4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       R# )r   l   !Us/w3al   ZW3al   +Q@{dB]OlNl   OOlNl   teo%gqCgx<l   &ghrsGl   Q5K4+o-bkl   C4+o-bkl   .#wflD&I-Xl   ZnSu9bl   cv<Il   rdFBu'pl   PhbIi|$l   1m{Wqi8l   s~5^Fiy+l   'H
<{Cl   `<{Cl   ED_5(Nl   oybal   =2zz6 l   9tmN)listrC   	MAXDIGITSKARATSUBA_CUTOFFappendr@   rT   )r9   digitslenxrK   lenyrL   s   &     r   test_divisionLongTest.test_division   ss   eAy{+,tE:J6F6K5M 0N N&*+DD!AKK%**##A)   	8/	1@)	+@)	+A3	5 	@2	4@3	5 	NI6/;.	:.?.?,n=r   c           	        \        \        ^^4      4      \        \        \        \        ^
,           4      4      ,           pVP                  \        ^
,          \        ^d,          .4       V Uu. uF  q"\        ,          NK  	  ppV F  p^V,          ^,
          pV F  pWd8  d   K  V P                  WFR7      ;_uu_ 4        ^V,          ^,
          pWW,          p^WF,           ,          ^V,          ,
          ^V,          ,
          ^,           p	V P                  W4       RRR4       K  	  K  	  R# u upi   + '       g   i     K  ; i)r   )abitsbbitsN)rW   rC   rY   extendr4   rN   rM   )
r9   r[   digitr?   ra   r&   rb   r'   rK   rL   s
   &         r   test_karatsubaLongTest.test_karatsuba   s   eAqk"T%0@0@20E+G &H H'",.>.DEF+126%62 Eeq A=\\\;;eq(AA.u*&u*& A $$Q* <;  	 3 <;;s   ,D-?AD2	2Ec           	        V P                   pV P                  VR 7      ;_uu_ 4        V! V^ ,          ^ 4       V! V^ ,          V4       V! V^ ,          V4       V! VR,          V4       V! VR,          R4       V! VR,          V( 4       V! W( ( 4       V! W,          V4       V! W,          V4       V! W,          ^ 4       V! W( ,          ^ 4       V! W( ,          R4       V! W( ,          R4       V! V) ^V( ,           4       V! V) V^,
          ( 4       RRR4       \        ^\        ,          4       F  p^V,          pV P                  WVR7      ;_uu_ 4        V! W,          V,	          V4       V! W,          W,	          4       V! W,          W,          4       V! W) ,          W,	          V,          4       V! W) ,          W^,
          ( ,          4       RRR4       K  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)rK   N)rK   r   p2r   )rM   rN   rC   r4   )r9   rK   rO   r   ri   s   &&   r   check_bitop_identities_1!LongTest.check_bitop_identities_1   s   \\A\q1uaLq1uaLq1uaLq2vqMq2vrNq2vrNq2#JquaLquaLquaLq2vqMq2vrNq2vrNr1r6NrQqS6N   qwAaB2..16Q;"17AF#1616"1s7AFaK(1s7Aq&	M* /.  ! $ /..s   C-G#A<G6#G3	6Hc                t   V P                   pV P                  WR 7      ;_uu_ 4        V! W,          W!,          4       V! W,          W!,          4       V! W,          W!,          4       V! W,          V,          V4       V! W,          V( V( ,          ( 4       V! W,          V( V( ,          ( 4       V! W,          W,          W,          ( ,          4       V! W,          W( ,          V( V,          ,          4       V! W,          W,          V( V( ,          ,          4       RRR4       R#   + '       g   i     R# ; i)rJ   NrM   rN   )r9   rK   rL   rO   s   &&& r   check_bitop_identities_2!LongTest.check_bitop_identities_2  s    \\A\##quaequaequaequqy!quaRj!quaRj!ququ!%()quq2v1"q&)*ququ!qb)* $###s   C5D&&D7	c                   V P                   pV P                  WVR 7      ;_uu_ 4        V! W,          V,          WV,          ,          4       V! W,          V,          WV,          ,          4       V! W,          V,          WV,          ,          4       V! WV,          ,          W,          W,          ,          4       V! WV,          ,          W,          W,          ,          4       RRR4       R#   + '       g   i     R# ; i))rK   rL   zNrm   )r9   rK   rL   rq   rO   s   &&&& r   check_bitop_identities_3!LongTest.check_bitop_identities_3  s    \\Aa\(({AQK({AQK({AQK(qE{QUqu-.qE{QUqu-. )(((s   B<C..C?	c           
     x   \          F  pV P                  V4       K  	  \        ^\        ^,           4      pV F~  pV P	                  V4      pV P                  V4       V FS  pV P	                  V4      pV P                  W4       V P                  WV P	                  W4,           ^,          4      4       KU  	  K  	  R# r   N)specialrj   rC   rX   r@   rn   rr   )r9   rK   r[   r\   r]   rL   s   &     r   test_bitop_identitiesLongTest.test_bitop_identities  s    A))!, q)A+&DD!A))!,KK%--a3--aDKKq@P4QR  r   c           	     ,   . p^ pV^ 8  d   ^V) rV'       d*   \        W4      w  rVP                  \        V4      4       K1  VP                  4        T;'       g    ^ .pRRV ^R^R^
R^R/V,          ,           RP	                  R V 4       4      ,           # )r   -N0b0o 0xc              3   4   "   T F  pR V,          x  K  	  R# 5i)0123456789abcdefN ).0rF   s   & r   	<genexpr>'LongTest.slow_format.<locals>.<genexpr>1  s     =f)!,,fs   )r%   rZ   r5   reversejoin)r9   rK   baser[   signr+   s   &&&   r   slow_formatLongTest.slow_format%  s    q5!!!?DAMM#a&!A35Dz4D"b"d3D9:ww=f==> 	>r   c           	        ^\         3^\        3^
\        3^
\        3^\        33 F  w  r#V! V4      pV P                  WP                  R7      ;_uu_ 4        V P                  W4      pV P                  WE4       RRR4       V P                  VR7      ;_uu_ 4        V P                  \        V^ 4      V4       RRR4       K  	  R#   + '       g   i     LU; i  + '       g   i     K  ; i)r	   )rK   mapperN)got)
binoctstrreprhexrN   __name__r   rM   r5   )r9   rK   r   r   r   expecteds   &&    r   check_format_1LongTest.check_format_13  s    Hq#hS	B:CyPLD)C//::++A4  / ; #&&  S!a0 '& Q:: '&&s   #CCCC+c                    \          F  pV P                  V4       K  	  \        ^
4       FC  p\        ^\        ^,           4       F%  pV P	                  V4      pV P                  V4       K'  	  KE  	  R# )
   N)rv   r   rC   rX   r@   )r9   rK   rF   r\   s   &   r   test_formatLongTest.test_format<  sY    A" rAa1-KK%##A& . r   c                   RR^
^d,          3.pV FX  w  r#R FM  pR FD  pWT,           V,           pTpVR8X  d   V\         Jd   V) p V P                  \        V4      V4       KF  	  KO  	  KZ  	  V P                  \         \        R4       V P                  \         \        R4       V P                  \         \        R4       V P                  \         \        R4       V P                  \         \        R^4       V P                  \         \        R^4       V P                  \        R^4      ^+4       V P                  \        R	^ 4      ^ 4       V P                  \        R
^ 4      ^S4       V P                  \        R^ 4      R4       V P                  \        R^ 4      ^4       V P                  \        R^ 4      ^S4       V P                  \        R^ 4      R4       V P                  \        R^ 4      ^4       V P                  \        R^ 4      ^ 4       V P                  \        R^ 4      ^ 4       V P                  \        R^ 4      ^ 4       V P                  \        R^ 4      ^ 4       V P                  \         \        R^ 4       V P                  \         \        R^ 4       RRRR R!R#R"R$R%^^d,          ^^d,          ) .pV F  p	V P                  \         \        RV	4       K!  	  V P                  \         \        R4       R#   \          d     EK  i ; i)&10rz   123L123l0Lz-37L0x32L1L0000o1230x123i#  0b100z	 0O123   z 0X123  z 0B100 z+0z-00008z-01239542u   こんにちはN)100000000000000000000l      Fx:^V e10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)r}   +rz   )r}    	z  		  is        i   l                    l         l        )
ValueErrorrM   r5   assertRaises)
r9   LLsvr   prefixssvvinvalid_basesr   s
   &         r   	test_longLongTest.test_longD  s    'C(
 DA$7F*BBs{q
':R((R"5 8 %  	*c62*c62*c40*c62*c7B7*c44T2+ 	UA*Wa"-Wa#.Wa!,[!,b1Z+S1Y*A.S!a(T1q)T1q)T1q)*c43*c9a8 !5&(!5&(S&1c6'
 "Dj#tT: "
 	*c+KLO & s   K66L	L	c                Z     ! R  R4      pV P                  \        \        V! 4       4       R# )c                   &   a  ] tR tRt o R tRtV tR# )*LongTest.test_conversion.<locals>.JustLongi  c                    ^*# )*   r   r9   s   &r   __long__3LongTest.test_conversion.<locals>.JustLong.__long__  s    r   r   N)r   
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   JustLongr     s      r   r   N)r   	TypeErrorr5   )r9   r   s   & r   test_conversionLongTest.test_conversion}  s"    	 	 	)S(*5r   c                     \        V4      p \        V4      pRP                  WV4      pV P	                  W#V4       R#   \         d    R p LAi ; i  \         d    R p LHi ; i)overflowzAError in conversion of integer {} to float.  Got {}, expected {}.N)r   r   r   formatrM   )r9   r   actualr   msgs   &&   r   check_float_conversionLongTest.check_float_conversion  so    	 1XF	"#AH&&,fQ&A 	3/  	 F	 
  	"!H	"s    ? A AAA"!A"c                   . ROpV F;  pV P                  \        V4      V4       V P                  \        V) 4      V) 4       K=  	  R Fe  w  r#\        ^4       FQ  pV P                  \        \        ^V,          RV,           ,          4      4      ^V,          RV,           ,          4       KS  	  Kg  	  R Fe  w  r#\        ^4       FQ  pV P                  \        \        ^V,          RV,           ,          4      4      ^V,          RV,           ,          4       KS  	  Kg  	  \        \        4      p^\
        ,          pWV,           ^,          pV P                  \        V4      \        4       V P                  \        V^,           4      \        4       V P                  \        V^,
          4      \        4       V P                  \        \        V4       V P                  \        ^V,
          4      \        ) 4       V P                  \        \        V) 4       V P                  \        \        V^,
          4       V P                  \        \        V4       V P                  \        \        V^,           4       V P                  \        \        ^V,          ^,
          4       V P                  \        \        ^V,          4       V P                  \        \        Wf,          4       \        ^d4       F  p^V,          R,          ^,           p^V,          R,          pV P                  \        \        V4      4      V4       ^V,          R,          p^V,          R,          pV P                  \        \        V4      4      V4       K  	  V^,
          WU^,           V^,
          Ww^,           V^,
          Wf^,           ^V,          ^,
          ^V,          Wf,          .pVP                  V4       \        R	^4       F<  p\        R
^4       F)  pVP                  ^V^5,           ,          V,           4       K+  	  K>  	  V F&  p	V P                  V	4       V P                  V	) 4       K(  	  R# )r   N                             )r   r   r	   l    l    l    r   r   l   l   r   l         )r   r   )r	   r	         r   r      r   )   r         ))r   r   r   )r	   r   r   r   r   )r   r   r   )r   r   )	   r   )r   r   )      )r   r   )   r   )      )   r   l         )rM   r   rC   r5   DBL_MAXDBL_MAX_EXPr   r   rc   rZ   r   )
r9   exact_valuesrK   rL   pint_dbl_max	top_powerhalfwaytest_valuesvalues
   &         r   test_float_conversionLongTest.test_float_conversion  sB   	" AU1Xq)UA2Y+ 
 MDA2Y  U1a4q>%:!;QT57^L  M3DA 2Y  U1a4q>%:!;QT57^L 3 'l{N	*Q.{+W5{1}-w7wqy)73-8qy)G84-9-	!<-	:-	!<-)A>-)<-	0CDsA1	"Q&A1	"ASq]A.1	"A1uASq]A.  M;AAIw!aKaKiKM1Y;	(;	
 	<(r1A4%""1qt9q=1 &  !E''.''/ !r   g?)memusec                N    ^V,          pV P                  \        \        V4       R# ru   )r   r   r   r9   sizer   s   && r   "test_float_conversion_huge_integer+LongTest.test_float_conversion_huge_integer  s     I-2r   c                   R, F'  pV P                  \        \        V4      4      V4       K)  	  R-p^R,          pV) pRVRVRVR\        /p. RNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)N F  pV P	                  \
        \        We4       K   	  V P                  \        V4      \        V4      R*4       R+# ).       @i0u  hugemhugeshuger   float(huge)float(mhuge)zcomplex(huge)zcomplex(mhuge)zcomplex(huge, 1)zcomplex(mhuge, 1)zcomplex(1, huge)zcomplex(1, mhuge)z	1. + hugez	huge + 1.z
1. + mhugez
mhuge + 1.z	1. - hugez	huge - 1.z
1. - mhugez
mhuge - 1.z	1. * hugez	huge * 1.z
1. * mhugez
mhuge * 1.z
1. // hugez
huge // 1.z1. // mhugezmhuge // 1.z	1. / hugez	huge / 1.z
1. / mhugez
mhuge / 1.z
1. ** hugez
huge ** 1.z1. ** mhugezmhuge ** 1.zmath.sin(huge)zmath.sin(mhuge)zmath.sqrt(huge)zmath.sqrt(mhuge)z(float(shuge) should not equal int(shuge)N)g             r         ?r  X  123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345)rM   r   r5   r   r   r   evalassertNotEqual)r9   rK   r  r  r  	namespacetests   &      r   test_float_overflowLongTest.test_float_overflow  s   *AU3q6]A. + EzT7E7E64P	] N $&6')< ( *= !	 #.	 0<	 >J	
 !
 #.
 0<
 >J ! #. 0< >J " $0 2? AN ! #. 0< >J " $0 2? AN & (9 ' );D  mT4C!( 	E%L#e*6	8r   c                   \         P                  ! \         P                  4      p\        \	        ^
4      4      . RO,            Fb  p^
V,          p\         P                  ! V4      pV P                  WB4       W!,          p\         P                  ! V4      pV P                  We4       Kd  	  ^R,          ) R^ 3 FM  pV P                  \        \         P                  V4       V P                  \        \         P                  V4       KO  	  R# )r   '  N)d     r  r   )	r   log10erW   rC   assertAlmostEquallogr   r   )r9   LOG10Er*   r   r  r   r  bads   &       r   	test_logsLongTest.test_logs  s    DFF#b	?%777C#IEJJu%E""5. |H((5/C""31 8 %Z="a'Cj$((C8j$**c: (r   c                  a
 V P                   p ! V
3R  lR4      o
. ROpR	 F`  pVP                  VR,
          VR,
          W3R,           VR,           \        V^,
          4      \        V4      \        V^,           4      .4       Kb  	  VP                  ^ ^^\        P                  \        \        P                  4      .4       \        R4      pVP                  ^ ^^^R,          V^,
          W3^,           .4       TP                  V Uu. uF  qD) NK  	  up4       V F  pS
! V4      pV F  pS
! V4      pWW8  WW8  ,
          pV P                  WFVR7      ;_uu_ 4        WF8  WF8  ,
          p	V! W4       V! WF8H  V^ 8H  4       V! WF8g  V^ 8g  4       V! WF8  V^ 8  4       V! WF8*  V^ 8*  4       V! WF8  V^ 8  4       V! WF8  V^ 8  4       RRR4       K  	  K  	  R# u upi   + '       g   i     K  ; i)
c                   R   <a  ] tR tRt o R tV3R ltR tR tR tR t	R t
R	tV tR
# ))LongTest.test_mixed_compares.<locals>.Rati  c                   \        V\        4      '       d   Wn        ^V n        R# \        V\        4      '       d   \
        P                  ! \        V4      4      w  r#^p^ pV'       dC   \
        P                  ! W$4      p\        V4      pWT,          V,          pW&,          pW4,          pKJ  V^ 8  d   WS,          p^pMTp^V) ,          pV^ 8  d   V) pWpn        Wn        R# \        RV,          4      h)r   zcan't deal with %rN)

isinstancer5   r   r)   r   r   frexpr   r   r   )	r9   r   fr  CHUNKtoprd   r   r)   s	   &&       r   __init__2LongTest.test_mixed_compares.<locals>.Rat.__init__  s    eS))"FDFu--::c%j1DA EC JJq0 #A"|u4

 AvH!GqyBFF $$85$@AAr   c                   < \        VS4      '       g	   S! V4      pV P                  VP                  ,          V P                  VP                  ,          r2W#8  W#8  ,
          # )N)r!  r   r)   )r9   otherrK   rL   Rats   &&  r   _cmp__0LongTest.test_mixed_compares.<locals>.Rat._cmp__D  sI    !%--JEvv'%'')91!%((r   c                *    V P                  V4      ^ 8H  # r   r+  r9   r)  s   &&r   __eq__0LongTest.test_mixed_compares.<locals>.Rat.__eq__I      {{5)Q..r   c                *    V P                  V4      ^ 8  # r.  r/  r0  s   &&r   __ge__0LongTest.test_mixed_compares.<locals>.Rat.__ge__K  r3  r   c                *    V P                  V4      ^ 8  # r.  r/  r0  s   &&r   __gt__0LongTest.test_mixed_compares.<locals>.Rat.__gt__M      {{5)A--r   c                *    V P                  V4      ^ 8*  # r.  r/  r0  s   &&r   __le__0LongTest.test_mixed_compares.<locals>.Rat.__le__O  r3  r   c                *    V P                  V4      ^ 8  # r.  r/  r0  s   &&r   __lt__0LongTest.test_mixed_compares.<locals>.Rat.__lt__Q  r:  r   )r)   r   N)r   r   r   r   r&  r+  r1  r5  r8  r<  r?  r   r   )r   r*  s   @r   r*  r    s/     &BP)
//./. .r   r*  r	  Zbtig333333?i N  )rK   rL   RcmpN)r   gMbP?gGz?r	  g      ?g@xDrA  )g      Bg      Cg      @C)rM   rc   r5   r
   maxsizer   rN   )r9   rO   casestrK   RxrL   RyrB  xycmpr*  s   &         @r   test_mixed_comparesLongTest.test_mixed_compares  s   7	. 7	.r 8 +ALL!c'1s7A3wCac(CFC!H6 7 + 	aAs{{E#++,>?@ JaAqEz1Q3Q378%(%Qb%()AQBVBG,\\A\66Uqu-EtOqvtqy)qvtqy)qudQh'qvtqy)qudQh'qvtqy) 76   ) 766s   GA*G	G,c                   ^V,          p\         P                  P                  pV P                  W28H  R4       V P                  W28g  R4       V P                  W28  R4       V P                  W28*  R4       V P                  W28  R4       V P                  W28  R4       \	        R4      pV P                  W28H  R4       V P                  W28g  R4       V P                  W28  R4       V P                  W28*  R4       V P                  W28  R4       V P                  W28  R4       \	        R4      pV P                  W28H  R4       V P                  W28g  R4       V P                  W28  R4       V P                  W28*  R4       V P                  W28  R4       V P                  W28  R4       ?RV,          p\         P                  P                  ) pV P                  W28H  R4       V P                  W28g  R4       V P                  W28  R4       V P                  W28*  R4       V P                  W28  R4       V P                  W28  R4       \	        R4      pV P                  W28H  R4       V P                  W28g  R4       V P                  W28  R4       V P                  W28*  R4       V P                  W28  R4       V P                  W28  R4       \	        R4      pV P                  W28H  R4       V P                  W28g  R4       V P                  W28  R4       V P                  W28*  R4       V P                  W28  R4       V P                  W28  R4       R# )r   FTinfnan-infNr   )r
   r   r"   assertIsr   )r9   r   r   r#  s   &&  r    test_mixed_compares_huge_integer)LongTest.test_mixed_compares_huge_integero  s    INNafe$afd#aeT"afd#aeU#afe$%Lafe$afd#aeU#afe$aeT"afd#%Lafe$afd#aeU#afe$aeU#afe$DL^^afe$afd#aeU#afe$aeT"afd#&Mafe$afd#aeT"afd#aeU#afe$%Lafe$afd#aeU#afe$aeU#afe$r   c           
        V P                  \        R R4      R4       V P                  \        R R4      R4       V P                  \        R R4      R4       V P                  \        R R4      R4       V P                  \        ^R4      R4       V P                  \        RRR4      R	4       V P                  \        ^R
4      R4       V P                  \        RRR
4      R4       V P                  \        ^R4      R4       V P                  \        RRR4      R4       V P                  \        ^R4      R4       V P                  \        RRR4      R4       V P                  \        ^R4      R4       V P                  \        RRR4      R	4       V P                  \        ^R4      R4       V P                  \        ^R4      R4       V P                  \        RR4      R4       V P                  \        RSR4      R4       V P                  \        RR4      R4       V P                  \        RSR4      R4       V P                  \        RR4      R4       V P                  \        RSR4      R4       V P                  \        RTR4      R
4       V P                  \        RTR4      R
4       V P                  \        \        R^4      R4      R4       V P                  \        \        R^4      R4      R4       V P                  \        \        R^4      ) R4      R4       V P                  \        \        R^4      ) R4      R4       V P                  \        \        RR 4       V P                  \        RR!4      R"4       V P                  \        RR#4      R$4       V P                  \        ^R%4      R4       V P                  \        RTR%4      R
4       V P                  \        RR%4      R&4       V P                  \        RSR%4      R'4       V P                  \        RR(4      R&4       V P                  \        RSR(4      R'4       V P                  \        RR)4      R*4       V P                  \        RSR)4      R'4       V P                  \        RR+4      R,4       V P                  \        RSR+4      R'4       V P                  \        \        RR-4       V P                  \        RR.4      R/4       V P                  \        ^R04      R14       V P                  \        RTR04      R24       V P                  \        RR04      R34       V P                  \        RSR04      R44       V P                  \        RR54      R34       V P                  \        RSR54      R44       V P                  \        RR64      R74       V P                  \        RSR64      R44       V P                  \        RR84      R94       V P                  \        RSR84      R44       V P                  \        \        RR:4       V P                  \        R;R<4      R=4       V P                  \        \        ^R>4       V P                  \        \        ^R?4       V P                  \        \        ^R@4       V P                  \        \        ^RA4       V P                  \        RB\        ^RC4       V P                  \        RB\        ^RD4       V P                  \        RB\        ^RE4       V P                  \        RB\        ^RF4       V P                  \        RG\        ^RH4       V P                  \        RI\        ^RJ4       \        \        RK4      \        RL4      ^,           4       Uu. uF  p\        V4      NK  	  up\        \        RM4      \        RN4      ^,           4       Uu. uF  p\        V4      NK  	  up,            F  pVRO9   d   K  V P                  \        \        ^ V4       V P                  \        \        ^V4       V P                  \        \        RRV4       V P                  \        \        ^^d,          V4       V P                  \        \        ^^d,          ) V4       K  	  RP F:  pRU F1  pV P                  \        W24      \        \        V4      V4      4       K3  	  K<  	  RQ# u upi u upi )Vi[r)   	123456789,z123,456,789_123_456_789rz   r   z-1z-3z  1z -1z+3z +1z 3r   z 1rK   3Xi  4d2z-4d28xz     4d2z    -4d2beBEz-bez-BEIz,x_x	4996_02d2_X	4996_02D2o2322z-2322z-oz oz 2322z+oz+2322z,o_o111_4540_1322r'   11z-1110011010010z-10011010010z-bz bz 10011010010z+bz+10011010010z,b90  _b11_0000_0011_1001z1.3_cz,cz+czCannot specify bothz_,z,_z_,dz,_dzCannot specify ',' with 's'z,szCannot specify '_' with 's'_sr&   rq   AZzbcdoxXeEfFgGn%zeEfFgG%Nr   i.)r   r   r   r  r]  i.i)
rM   r   r5   r   r   assertRaisesRegexrC   ordchrr   )r9   rK   format_specr   s   &   r   test__format__LongTest.test__format__  s	   	3/=	3/=	3/?	3/? 	3-C$/4%0D)514%0D)514%0D)513.C$/ 	3-3-c*E2s+V4d+Z8t,j9c*E2s+V4C$/C$/D"s3T:D"s3T:T24e<T24e<*fj$?
D1;?
D1;? 	3-C$/c*F3s+W5d+V4t,g6d+W5t,g6d+W5t,g6*fj$?
D1?C 	3.C%0c*M:s+^<d+];t,n=d+^<t,n=d+^<t,n=*fj$?t,.AB 	*fa7*fa6*fa6*fa6 	z+@&!TRz+@&!TRz+@&!USz+@&!USz+H&RSUYZz+H&RSUYZ .33s8SXaZ-HI-HSV-HI-23s8SXaZ-HI-HSV-HIJ JK"22!!*faE!!*faE!!*fb+F!!*fafkJ!!*f3iMJ %KG  !;!'ek!BD H % JIs   4b;1c c                    V P                  \        \        \        R 4      4       V P                  \        \        \        R4      4       V P                  \        \        \        R4      4       R# )rL  rN  rM  N)r   r   r5   r   r   r   s   &r   test_nan_infLongTest.test_nan_inf  sD    -eEl;-eFm<*c5<8r   c                   V P                  \        4      ;_uu_ 4        ^^ ,          pRRR4       V P                  ^^4       V P                  ^^4       V P                  RR4       V P                  RR4       V P                  ^ ^ 4       V P                  ^ ^ 4       V P                  ^ ^ 4       V P                  ^ ^ 4       R#   + '       g   i     L; i)r   Nro  r   r    rM   r9   rU  s   & r   test_mod_divisionLongTest.test_mod_division  s    011AA 2 	!$1%2&B'#!$!$1% 21s   
CC	c                   ^R,          pV) pV P                  W,          R4       V P                  W",          R4       V P                  W,          R4       V P                  W!,          R4       V P                  ^V,          R4       V P                  ^V,          R4       V P                  ^V,          R4       V P                  ^V,          R4       V P                  RV,          V^,	          ,           V,          R4       V P                  RV,          V^,	          ,           V,          R4       V P                  RV,          V^,	          ,           V,          R4       V P                  RV,          V^,	          ,           V,          R4       V P                  W^,          ,          R4       V P                  RV,          V,          R4       RVR	V/pR F  pV P                  \        \        WC4       K   	  R F(  p\        WS4      pV P                  VRR
V,          4       K*  	  R F  pV P                  \        \        Ws4       K   	  R# )r   i@  r	  r   i  g     Ԅ@r2   i@B r  r  zexpected underflow to 0 from %rNr  g     Ԅ)r  r  zhuge / 1zhuge / 2z	huge / -1z	huge / -2zmhuge / 100zmhuge / 200)z1 / hugez2 / hugez	-1 / hugez	-2 / hugez100 / mhugez200 / mhuge)zhuge / 0z	mhuge / 0)rM   r   r   r  r    )r9   r  r  r  r   	underflowr,   zeros   &       r   test_true_divisionLongTest.test_true_division  s   Ezc*,t,t,T3'T3'UC(UC(#*	2d:EB#+!4=uE#*	2e;VD#+!4<fE+S1'D.D0':T7E2	7H mT8G7
7I)/FVS>JL7 .D/tG .r   c                :   V P                  \        4      ;_uu_ 4        ^^ ,          pRRR4       V P                  ^ ^ 4       V P                  RR4       V P                  RR4       V P                  ^ ^ 4       V P                  ^^4       V P                  RR4       V P                  RR4       V P                  ^^4       V P                  ^^4       V P                  RR4       V P                  RR4       V P                  ^^4       R#   + '       g   i     L; i)r   Nr   r   r|  r}  s   & r   test_floordivLongTest.test_floordiv7  s    011QA 2 	#"%"%1%A&2&2&!$A&2&2&!$! 21s   
D

D	c           
        V'       d1   \        \        V4      \        V4      4      ^\        ,          8  d   R#  \        \	        W4      4      p \        W,          4      pV P                  WERP                  WWE4      4       R#   \
         d    Rp LE\         d    Rp LSi ; i  \
         d    Rp LT\         d    Rp Lbi ; i)zVerify that the result of a/b is correctly rounded, by
comparing it with a pure Python implementation of correctly
rounded division.  b should be nonzero.Nr   zerodivisionz7Incorrectly rounded division {}/{}: expected {}, got {})	r"   r   r$   r   r-   r   r    rM   r   )r9   r&   r'   
skip_smallr   r   s   &&&&  r   check_truedivLongTest.check_truedivJ  s     #c!fc!f-<?	&GAM*H	!qu+C 	 )//5vaH/J	L  	"!H  	&%H	&
  	C  	! C	!s;   B B% B"B"B"!B"%C4C=CCc                r
   V P                  ^{^ 4       V P                  R^ 4       V P                  ^ ^4       V P                  ^ R4       V P                  ^ ^ 4       V P                  R^\        ,          ,          R4       V P                  RR^\        \        ,
          ,          ,          4       V P                  R^^d,          ,          R4       V P                  RR^^Q,          ,          4       ^ \        \        \        \        \        ,
          3pV F  p\	        V^,
          V^,           4       F  pV P                  R^\        V^ 4      ,          ,          R^\        V) ^ 4      ,          ,          4       V P                  R^\        V^ 4      ,          ,          R^\        V) ^ 4      ,          ,          4       K  	  K  	  ^^^^R^^d,          RRRRR^)^2,          ) 3 F_  p\	        R^
4       FL  pV P                  V\        ,          V,           V4       V P                  V\        ,          V,           V) 4       KN  	  Ka  	  \	        ^4       F\  pV P                  ^\        ,          ^,           R,          ^^,          ,          ^V,          ,           ^\        ,          R,          4       K^  	  V P                  ^R4       V P                  RR4       \	        R	4       FQ  pV P                  ^
V^,           ,          ^
V,          4       V P                  ^
V,          ^
V^,           ,          4       KS  	  ^^^^^^^^ R^^d,          RRRRR^)^2,          ) 3 FA  p\	        R^
4       F.  pV P                  ^\        ,          V,          V,           V4       K0  	  KC  	  \	        R^4       F  pV P                  V^R
,          4       K  	  R^
^d,          ^
R	,          3 F  p\	        R	4       F  p\        P                  ! ^V4      p\        P                  ! V^V,          ^,           4      p	V P                  W4       V P                  V) V	4       V P                  W) 4       V P                  V) V	) 4       K  	  K  	  \	        R4       F  p
\        P                  ! R	4      p\        P                  ! ^R	4      p\        P                  ! ^V,          4      p\        P                  ! ^^V,          4      pV P                  W4       V P                  W) 4       V P                  V) V4       V P                  V) V) 4       K  	  R# ){   rh  iNF í i0& iC i
  l   E,J_   l     Jb   r  i4  r  Ni8ro  ige~ l       90r   r   iiil    d(	 )	r  r   r$   r#   rC   r"   r!   r6   	randrange)r9   basesr   r*   mr   rF   Mr&   r'   rU  a_bitsb_bitsrK   rL   s   &              r   $test_correctly_rounded_true_division-LongTest.test_correctly_rounded_true_divisionh  sT    	3"4#1a 1b!1a ;K7?5&1|k/I+J"JK5C</;ae4 L+kL8:DTBYr	2""5CQK#7q#sdA,9NO""5CQK#7q#sdA,9NO 3  Q2uafb"c6BF74A3^""1%5#5#91=""1%5#5#9A2> $4 sA <! 3U:1c6AAqDHl?502  	1d# 	02GHtArAaCy"a%0r1ub1Q3i0 
 Q1aRUAsFb"c6BF74A3^""1l?1#4q#8!< $4 sBAq!T'*   "c'2t8,A4[$$Q*$$Q!A.""1(""A2q)""1b)""A2r* ! - uA%%d+F%%a.F  F+A  AvI.Aq$q"%r1%rA2& r   c                8   V P                  \        4      ;_uu_ 4        ^*R,           RRR4       V P                  \        4      ;_uu_ 4        ^*^R,          ) ,           RRR4       V P                  \        4      ;_uu_ 4        ^*R,	           RRR4       V P                  \        4      ;_uu_ 4        ^*^R,          ) ,	           RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lo; i  + '       g   i     R# ; i)r   Nr  ro  )r   r   r   s   &r   test_negative_shift_count"LongTest.test_negative_shift_count  s    z**"H +z**AI, +z**"H +z**AI, +* +********s/   
CC"
C53DC	"C2	5D	D	c                   V P                  ^ ^ 4       V P                  ^ ^ 4       V P                  \        4      ;_uu_ 4        ^ R,           RRR4       V P                  ^ ^R,          ,          ^ 4       V P                  \        4      ;_uu_ 4        ^ ^R,          ) ,           RRR4       R#   + '       g   i     Li; i  + '       g   i     R# ; i)r   Nr  r   )rM   r   r   r   s   &r   test_lshift_of_zeroLongTest.test_lshift_of_zero  s    #!$z**G +qDy)1-z**19 +* +* +**s   
B-C -B=	 C	c                    V P                  ^ \        P                  ,          ^ 4       V P                  ^ \        P                  ^,           ,          ^ 4       R# )r   N)rM   r
   rC  r   s   &r   test_huge_lshift_of_zero!LongTest.test_huge_lshift_of_zero  s:    
 	ckk)1-s{{Q/3r   c                    ^V,          pV P                  VP                  4       V^,           4       V P                  VP                  4       ^4       V P                  W!,	          ^4       R# )r   NrM   r   	bit_countr   s   && r   test_huge_lshiftLongTest.test_huge_lshift  sO     I2*A&r   c                b   ^R,          pV P                  ^*V,	          ^ 4       V P                  RV,	          R4       V P                  RV,	          ^ 4       V P                  RV,	          R4       V P                  ^^,          V,	          ^ 4       V P                  ^^,          ) V,	          R4       R# )r   r  ic  Nir   irM   )r9   
huge_shifts   & r   test_huge_rshiftLongTest.test_huge_rshift  s    $Y
z)1-#*,b1+Q/%J.3C:-q1!S&J.3r   c                Z   ^R,          ^,           V,          pV P                  VP                  4       VR,           4       V P                  VP                  4       ^4       V P                  W!^,           ,	          ^R,          ^,           4       V P                  W!R,           ,	          ^ 4       R# )r   i  i  i  r  Nr  )r9   r   r  s   && r   test_huge_rshift_of_huge!LongTest.test_huge_rshift_of_huge  s~     cRD(*D3J7)1-(+a3h!^<+.2r   c                   V P                  ^^4       V P                  RR4       V P                  ^^4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  ^^,          ^,	          ^^,          4       V P                  ^^,          ) ^,	          ^^,          ) 4       V P                  ^^,          ^,           ^,	          ^^,          4       V P                  ^^,          ^,           ) ^,	          ^^,          ) ^,
          4       R# )r   i1  Niiiir  r   s   &r   test_small_rshiftLongTest.test_small_rshift  s   "%S)"%S)C(t,C(t,C1af-!S&A3w/!S&1**AsF31c6A:!+afWq[9r   c                ,   V P                  ^ ^ 4       V P                  RR4       V P                  ^^4       V P                  RR4       V P                  ^^,          ^	,	          ^^w,          4       V P                  ^^,          ) ^	,	          ^^w,          ) 4       V P                  ^\        \        ,          ,
          \        ,	          \        ) 4       V P                  \        ^,
          \        \        ,          ,
          \        ,	          \        ) 4       R# )r   Nr   ro  )rM   BASEr4   r   s   &r   test_medium_rshiftLongTest.test_medium_rshift	  s    !$R(A&r*C1af-!S&A3w/ 	!d4i-E1D59$(T$Y.584%@r   c                6   V P                  ^ ^ 4       V P                  RR4       V P                  ^ ^ 4       V P                  RR4       V P                  ^^,          ^ ,	          ^^`,          4       V P                  ^^,          ) ^ ,	          ^^`,          ) 4       R# )r   Nr   r  r   s   &r   test_big_rshiftLongTest.test_big_rshift  s~    1%b)Q'+C2q"u-!S&BB/r   c                6   V P                  ^T^T4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  ^^,          ^,          ^^,          4       V P                  ^^,          ) ^,          ^^,          ) 4       R# )r   ib  Niir  r   s   &r   test_small_lshiftLongTest.test_small_lshift  s~    "%S)4(e,C1af-!S&A3w/r   c                    V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       R# )r   i T  i  Ni i <r  r   s   &r   test_medium_lshiftLongTest.test_medium_lshift%  sB    %(V,F+w/r   c                6   V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  ^^,          ^ ,          ^^,          4       V P                  ^^,          ) ^ ,          ^^,          ) 4       R# )r   Nl        l     l       l    r  r   s   &r   test_big_lshiftLongTest.test_big_lshift+  s~    :.k2\26C2q#v.!S&BC0r   c                    ^^d,          pV) ^,           pV^,           pV P                  W,           ^4       V P                  W1,
          ^4       R# )r	   N)rO  )r9   r&   r'   cs   &   r   #test_small_ints_in_huge_calculation,LongTest.test_small_ints_in_huge_calculation3  s?    HBFEaeQaeQr   c                h   V P                  \        ^
^R4      ^4       V P                  ^^4       ^
^Rr2pV P                  W,          V,          ^4       V P                  \        ^^R4      ^4       V P                  ^^4       ^^Rr2pV P                  W,          V,          ^4       V P                  \        ^^d^^d,          ^,
          4      ^4       V P                  ^^d,          ^^d,          ^,
          ,          ^4       ^^d^^d,          ^,
          r2pV P                  W,          V,          ^4       R# )r   i  Nr   )rO  pow)r9   r&   r   r  s   &   r   test_pow_uses_cached_small_ints(LongTest.test_pow_uses_cached_small_ints;  s    c"aoq)mQ'aaafqj!$c!R-q1-q1Raafqj!$c!S!S&1*-q1a3h!s(Q,/3S!S&1*aafqj!$r   c                   ^
^d,          pV P                  V^,           V,          ^4       V P                  V^,           V,          ^4       V P                  W^,          ,          ^4       V P                  WR,          ,          R4       \        ^V,          ^,           V4      w  r#V P                  V^4       V P                  V^4       \        RV,          ^d,           V4      w  r#V P                  VR4       V P                  V^d4       \        ^V) ,          ^,
          V) 4      w  r#V P                  V^4       V P                  VR4       \        ^V,          ^,
          V) 4      w  r#V P                  VR4       V P                  VR4       R# )r   Nr   r   ro  )rO  r%   )r9   bigr   r+   s   &   r   "test_divmod_uses_cached_small_ints+LongTest.test_divmod_uses_cached_small_intsL  s0   CisQw#oq)sQw3&*cQh'+cRi("-a#gk3'aab3hnc*aaaC4j1nsd+aaa#gkC4(aar   c           	        \        RR4       EF$  pV P                  W^ ,           4       V P                  W^,          4       V P                  W^ ,
          4       V P                  W^,          4       V P                  WR,          4       V P                  W^ ,          4       V P                  W^ ,          4       V P                  W( ( 4       V P                  W^,          4       V P                  V\        \        V4      4      4       V P                  W^,          ^,	          \        V4      4       EK'  	  RpV P                  W,
          ^ 4       V P                  ^ V,          ^ 4       R# )r     Nr  r   l            )rC   rO  r5   r   )r9   rF   s   & r   test_small_intsLongTest.test_small_intse  s    r3AMM!U#MM!U#MM!U#MM!!V$MM!V$MM!U#MM!U#MM!bS!MM!T"MM!SQ[)MM!T1Wc!f-   aeQa!eQr   c                   R p\        RR4       EF  pVP                  4       pV P                  V\        \	        V4      P                  R4      4      4       V^ 8w  dE   T P                  ^V^,
          ,          \        V4      u;8*  ;'       d    ^V,          8  Mu 4       MV P                  V^ 4       V^ 8w  g   K  V P                  V^\        P                  ! \        P                  ! \        V4      4      \        P                  ! ^4      ,          V,           4      ,           4       EK  	  V P                  ^ P                  4       ^ 4       V P                  ^P                  4       ^4       V P                  RP                  4       ^4       V P                  ^P                  4       ^4       V P                  RP                  4       ^4       R EF  p^V,          pV P                  V^,
          P                  4       V4       V P                  ^V,
          P                  4       V4       V P                  VP                  4       V^,           4       V P                  V) P                  4       V^,           4       V P                  V^,           P                  4       V^,           4       V P                  V) ^,
          P                  4       V^,           4       EK
  	  R# )g|=i  z-0bNir   r   )r	   r   r   r             !   ?   @      )rC   r   rM   lenr   lstripr8   r   r   floorr  )r9   tinyrK   krF   r&   s   &     r   test_bit_lengthLongTest.test_bit_lengthw  s   vu%AAQCFMM%$8 9:AvAaCCF 9 9QT 9:  A&Av
   A

Q(!4t;)= %= > &$ 	!)1-!)1-"*A.!)1-"*A.<A1Aac--/3ac--/3a^^-qs3qb__.!4ac--/15qbd..0!A#6 =r   c                   \        RR 4       F;  pV P                  VP                  4       \        V4      P	                  R4      4       K=  	  R F  p^V,          pV P                  VP                  4       ^4       V P                  V^,
          P                  4       V4       V P                  V^?,          P                  4       ^4       V P                  V^,
          R,          P                  4       V^,
          4       K  	  R# )r  r   i  Ni)r   r  r  r  A   i  iZ i )rC   rM   r  r   count)r9   r&   r*   s   &  r   test_bit_countLongTest.test_bit_count  s    ud#AQ[[]CFLL,=> $ >C3AQ[[]A.a!e..0#6a"f//115q1um668#'B >r   c                L   / ^ ^ b^^ b^^ b^^ b^^ b^^ b^^
b^^
b^^
b^	^
b^
^
b^^
b^^
b^^
b^^
b^^b^^b^^^^^^/Cp\        RR^4       Ff  pVP                  4        FO  w  r4\        W2,           R4      pWB,           pV P                  WV4       V P	                  \        V4      \        4       KQ  	  Kh  	  V P                  \        RR4      R4       V P                  \        RR4      R4       V P                  \        RR4      R4       V P                  \        RR4      ^ 4       V P                  \        R R4      ^ 4       V P                  \        RR4      ^ 4       V P                  \        ^ R4      ^ 4       V P                  \        ^R4      ^ 4       V P                  \        ^1R4      ^ 4       V P                  \        ^2R4      ^ 4       V P                  \        ^3R4      ^d4       V P                  \        ^R4      ^d4       V P                  \        ^R4      ^4       V P                  \        ^R4      ^4       V P                  \        ^R4      R4       V P                  \        RR!4      R4       V P                  \        RR!4      R4       V P                  \        RR4      R4       V P                  \        RR4      R	4       V P                  \        RR!4      R
4       V P                  \        RR"4      R4       V P                  \        RR#4      R4       V P                  \        RR$4      R4       V P                  \        RR%4      R4       V P                  \        RR&4      R4       V P                  \        RR'4      R4       V P                  \        RR(4      R4       V P                  \        RR)4      ^ 4       V P                  \        RR*4      ^ 4       V P                  \        RR+4      ^ 4       \        ^
^d4       F]  p\        ^
V,          R,           R!4      p^
V,          R,           pV P                  WW4       V P	                  \        V4      \        4       K_  	  \        ^4       Fg  p\        ^d4       FU  p	\        P                  ! R,R4      p
\        W4      pV P                  WZ4       V P	                  \        V4      \        4       KW  	  Ki  	  R.R-R0R/^^d,          ^
^d,          3 F  pV P                  \        RV4      R4       K!  	  \        ^d4       FU  p	\        P                  ! R,R4      p
\        V
4      pV P                  WZ4       V P	                  \        V4      \        4       KW  	  R1pV F  pV P                  \        \        ^V4       K!  	  R# )2r   i  i,  iԡ i i i l   ! l   ! l   ~! l    ! l   ! l   `! l    ! l    '! l    z+ l    v|o l    ,Gx iF i r  i{ Nir   ijr   i8ikrp  iiiro  r   r  ir{  iir  iiiir   r   r   r   )brianr  y                )rC   itemsroundrM   rO  typer5   r6   r  r   r   )r9   	test_dictoffsetr  r   r   r   expectr   rF   rK   huge_nbad_exponentsr  s   &             r   
test_roundLongTest.test_round  s   8Qq 8!A 8q 8Aa 81 8a 8r8R8!"28'(8-/846r8;=b8BDR8IKB88r8#%b"RB8	 D#r*F!)AHb)8  /d3i-	 * + 	tR$/tR$/sB.sB+sB+r2*q"q)q"q)r2*r2*r2,sB-sB-sB-sB-vr*F3vr*F3{B/={B/={B/={B/={B/={B/={B/={B/={B/={C0+>{C0!4{C0!4{D115 r3AA+CUV^FS)MM$s)S)	   qA3Z$$VU3Ak  (d3i-	    uguafb#gEFU7F3W= F sA  /A(CS$MM$s)S)	  +Ai15 r   c                  a  R.V 3R llp/ ^ Rb^RbR/RbR0RbR1RbR2Rb^Rb^R	bR3R
bR4Rb^RbRRbRRbR5RbRRbR6RbR7RbpV! VRRR7       / ^ Rb^RbR/RbR0RbR1RbR2Rb^Rb^RbR3RbR4Rb^RbRRbRRbR5RbRRbR6R bR7R!bpV! VR"RR7       ^ R^R^R^R^RRRRRRR#RR$RR%/
pV! VRR R7       ^ R^R^R^R^RRRRRRRRR$RR&/
pV! VR"R R7       S P                  \        RP                  ^RR R7       S P                  \        RP                  ^R"R R7       S P                  \        ^P                  ^RRR7       S P                  \        ^P                  ^R"RR7       S P                  \        R2P                  ^RRR7       S P                  \        R2P                  ^R"RR7       S P                  \        R/P                  ^RR R7       S P                  \        R/P                  ^R"R R7       S P                  ^ P                  ^ R4      R'4       S P                  ^ P                  ^ RRR7      R'4       S P                  ^P                  ^R4      R(4       S P                  ^ P                  ^R4      R)4       S P                  R/P                  ^RRR7      R*4       S P                  \        ^P                  ^ R4       S P                  \        R/P                  ^ RRR7       S P                  \        R/P                  ^ R"RR7        ! R+ R,\        4      pS P                  ^ P                  ^V! R4      4      R4       S P                  ^ P                  ^ V! R"4      4      R'4       R-# )8Fc           
        < RR lpV P                  4        F  w  rE SP                  VP                  \        V4      WR7      V4       \        T4      ^8X  d1   TR8X  d*   T'       g"    SP                  TP                  4       T4        SP                  T! T\        T4      YR7      T4       K  	  R#   \         d"   p\        RP                  YAT4      4      ThRp?ii ; i  \         d!   p\        RP                  T4      4      ThRp?ii ; i  \         d"   p\        RP                  YAT4      4      ThRp?ii ; i)	Fc                    a  VR 8X  d   \        V4      pMVR8X  d   \        \        V4      4      p\        V 3R lX 4       4      # )littler  c              3   R   <"   T F  pSV^,          ,	          ^,          x  K  	  R# 5ir   Nr   )r   rF   r   s   & r   r   SLongTest.test_to_bytes.<locals>.check.<locals>.equivalent_python.<locals>.<genexpr>  s!     >1a1Q3h$..s   $')rC   reversedbytes)r   length	byteordersignedorders   f&&& r   equivalent_python@LongTest.test_to_bytes.<locals>.check.<locals>.equivalent_python  s;    (!&ME%'$U6]3E>>>>r   r  z4failed to convert {} with byteorder={} and signed={}Nr  +failed to convert {} with default argumentszmCode equivalent from docs is not equivalent for conversion of {0} with byteorder byteorder={1} and signed={2}F)r  rM   to_bytesr  	ExceptionAssertionErrorr   testsr  r  r  r  r   errr9   s   &&&    r   check%LongTest.test_to_bytes.<locals>.check  s?   ? #(++-C$$c(mYN " x=A%)u*<V4(((C
O$$) #h-K ) #0
 ! C(N8:?BCC % 4,I#VD\+0344 ! O(%%+VDV%DF LOOOsG   ,B4) C#
$D4C ?CC #D.D		DD=D88D=                                                    s                       r  Tr                               r                   r   s       s        s   c                       ] tR tRtRtR# )&LongTest.test_to_bytes.<locals>.SubStris  r   Nr   r   r   r   r   r   r   r   SubStrr-  s      r   r/  Nr  r   r         )r   r   r  rM   r   )r9   r
  tests1tests2tests3tests4r/  s   f      r   test_to_bytesLongTest.test_to_bytes  so   %	OP
w
w
 
 '	

 '
 +
 
 
 +
 +
 
 
 ;
 O
 ?
  O!
" o#
& 	feD)
w
w
 
 '	

 '
 +
 
 
 +
 +
 
 
 ;
 K
 ?
  O!
" o#
& 	fht, ww;;;?
 	feE* ww;;;?
 	fhu--#E%P-#HUS-#E$O-#HTR-$!U4P-$!XdS-"5O-"8ER!a/5!at<cB!a/1HI!a/1HI"q%=0	2-!q%@-"5N-"8DQ	S 	!a7A!a)9:C@r   c                  a  RAV 3R llp/ R^ bR^ bR^ bR^bR^bRRBbRRBbR	RCbR
RDbRREbR^bR^bRRFbRRGbR^bRRbRRbRRHRRRRIRRJ/CpV! VRRR7       / R^ bR^ bR^ bR^bRRBbRRBbR	RCbR
RDbRREbR^bR^bR RFbRRGbR^bRRbRRbR!RHbR"RR#RIR$RJ/CpV! VR%RR7       R^ R^ R^R^R
^R^RRRRRRRRR&R/pV! VRR R7       R^ R^ R^R^R
^R^RRRRR!RRRR'R/pV! VR%R R7        ! R( R)\         4      pS P                  \        VP                  RR4      4      V4       S P	                  VP                  RR4      ^4       S P                  \        VP                  RRR R7      4      V4       S P	                  VP                  RRR R7      ^4       S P                  \        VP                  RR%4      4      V4       S P	                  VP                  RR%4      ^4       S P                  \        VP                  RR%R R7      4      V4       S P	                  VP                  RR%R R7      ^4       S P	                  \         P                  . RKORRR7      RI4       S P	                  \         P                  RKRRR7      RI4       S P	                  \         P                  \        R4      RRR7      RI4       S P	                  \         P                  \        R4      RRR7      RI4       S P	                  \         P                  \        P                  ! R*R4      RRR7      RI4       S P	                  \         P                  \        R4      RRR7      RI4       S P                  \        \         P                  R.R4       S P                  \        \         P                  ^ .R+4       S P                  \        \         P                  ^ .R,4       S P                  \        \         P                  R-R4       S P                  \        \         P                  R.R4       S P                  \        \         P                  ^ R4       S P                  \        \         P                  ^ RR4       S P                  \        VP                  R-R4       S P                  \        VP                  R.R4       S P                  \        VP                  ^ R4       S P                  \        \         P                  ^ RR4        ! R/ R0\         4      pVP                  RR4      pS P                  \        V4      V4       S P	                  V^4        ! R1 R2\         4      p	V	P                  RR4      pS P                  \        V4      V	4       S P	                  V^4       S P	                  \        VR3R44      R54        ! R6 R74      p
 ! R8 R94      p ! R: R;4      p ! R< R=4      pS P	                  \         P                  V
! 4       4      ^4       S P                  \        \         P                  V! 4       4       S P                  \        \         P                  V! 4       4       S P                  \        \         P                  V! 4       4        ! R> R?\        4      pS P	                  \         P                  RV! R4      4      ^ 4       S P	                  \         P                  RV! R%4      4      ^ 4       R@# )LFc           	      L  < RR lpV P                  4        F}  w  rE SP                  \        P                  WAVR7      V4       TR8X  d/   T'       g'    SP                  \        P                  T4      T4        SP                  T! YATR7      T4       K  	  R#   \         d"   p\        RP                  YAT4      4      ThRp?ii ; i  \         d!   p\        RP                  T4      4      ThRp?ii ; i  \         d"   p\        RP                  YAT4      4      ThRp?ii ; i)	Fc                 $   VR 8X  d   \        V 4      pMVR8X  d   \        \        V 4      4      p\        R \        X4       4       4      pV'       d?   V'       d7   VR,          ^,          '       d!   V^^\	        V4      ,          ,          ,          pV# )r  r  c              3   D   "   T F  w  rW!^,          ,          x  K  	  R# 5ir  r   )r   rF   r'   s   &  r   r   ULongTest.test_from_bytes.<locals>.check.<locals>.equivalent_python.<locals>.<genexpr>  s     G-FTQqS-Fs    r   )rW   r  sum	enumerater  )
byte_arrayr  r  little_orderedr   s   &&&  r   r  BLongTest.test_from_bytes.<locals>.check.<locals>.equivalent_pythonz  sr    (%)*%5N%'%)(:*>%?NGY~-FGGn.2Dt2K2KaN 3333Ar   r  z6failed to convert {} with byteorder={!r} and signed={}Nr  r  zeCode equivalent from docs is not equivalent for conversion of {0} with byteorder={1!r} and signed={2}r  )r  rM   r5   
from_bytesr  r  r   r  s   &&&    r   r
  'LongTest.test_from_bytes.<locals>.checky  s-   
 #(++-C$$tvF " %f4((NN40$&	C$$)$&I - #0
 ! C(P8:?BCC % 4,I#VD\+0344 ! C(P8: @CCCsG   'B%C	:C7C%CC	C4C//C47D#DD#r   r  s     r  r#  r  r)  r  r  r  r  r  r  r  r  r  r  r  r  r(  r  r  r  r  r  r   r  Tr  r!  r"  r$  r%  r&  r'  r  r*  r+  c                       ] tR tRtRtR# )'LongTest.test_from_bytes.<locals>.myinti  r   Nr.  r   r   r   myintrK    r0  r   rL  Bzbig zlittle r}    c                   &   a  ] tR tRt o R tRtV tR# )(LongTest.test_from_bytes.<locals>.myint2i  c                :    \         P                  W^,           4      # )r   )r5   __new__)clsr   s   &&r   rR  0LongTest.test_from_bytes.<locals>.myint2.__new__  s    {{3	22r   r   Nr   r   r   r   rR  r   r   r   s   @r   myint2rP    s     3 3r   rV  c                   &   a  ] tR tRt o R tRtV tR# )(LongTest.test_from_bytes.<locals>.myint3i&  c                    R V n         R# )barNfoo)r9   r   s   &&r   r&  1LongTest.test_from_bytes.<locals>.myint3.__init__'  s	     r   r[  N)r   r   r   r   r&  r   r   r   s   @r   myint3rX  &  s     ! !r   r^  r\  nonerZ  c                   &   a  ] tR tRt o R tRtV tR# ),LongTest.test_from_bytes.<locals>.ValidBytesi/  c                    R # )r  r   r   s   &r   	__bytes__6LongTest.test_from_bytes.<locals>.ValidBytes.__bytes__0  s    r   r   Nr   r   r   r   rc  r   r   r   s   @r   
ValidBytesra  /  s      r   rf  c                   &   a  ] tR tRt o R tRtV tR# ).LongTest.test_from_bytes.<locals>.InvalidBytesi2  c                    R # )abcr   r   s   &r   rc  8LongTest.test_from_bytes.<locals>.InvalidBytes.__bytes__3  s    r   r   Nre  r   s   @r   InvalidBytesrh  2  s      r   rl  c                       ] tR tRtRtR# ).LongTest.test_from_bytes.<locals>.MissingBytesi5  r   Nr.  r   r   r   MissingBytesrn  5  s    Cr   ro  c                   &   a  ] tR tRt o R tRtV tR# ).LongTest.test_from_bytes.<locals>.RaisingBytesi6  c                    ^^ ,           R# ru   r   r   s   &r   rc  8LongTest.test_from_bytes.<locals>.RaisingBytes.__bytes__7  s    Ar   r   Nre  r   s   @r   RaisingBytesrq  6  s      r   rt  c                       ] tR tRtRtR# )(LongTest.test_from_bytes.<locals>.SubStri@  r   Nr.  r   r   r   r/  rv  @  r0  r   r/  Nr  r   r1  r   r2  r3  r4  r5  r6  r7  )   r   r   )r5   rO  r  rH  rM   	bytearrayarray
memoryviewr   r   r   getattrr    r   )r9   r
  r8  r9  r:  r;  rL  rV  rF   r^  rf  rl  ro  rt  r/  s   f              r   test_from_bytesLongTest.test_from_bytesx  sF   +	C\

Q
 
 Q	

 
 R
 
 T
 T
 
 S
 
 
 
 
  !
" #
$ UVX+
. 	feD)

Q
 
 Q	

 R
 
 T
 T
 
 S
 
 
 
 
 
  !
" #
$ UVX)
, 	fht, QQSSSU
 	feE* QQSSSU
 	fhu-	C 	 	d5++GU;<eD))'591=!!'5!?@%	I))'5)GKd5++GX>?G))'8<a@d5++Xe , - ./4	6))'8E)JANNN;dN;V	ENN;dN;V	Eo&d ( <=C	Eo&d ( <=C	EKK_-uT ( CDJ	L't ( =>D	F*cnnseUC*cnnqc9E*cnnqc<H)S^^R?)S^^VUC)S^^Q>)S^^QtD)U%5%5r5A)U%5%5vuE)U%5%5q%@)S^^QtD	3S 	3 gu-d1gv&A	!S 	! gu-d1gv&AE62E:	 		 	 	 	 	 	
5q9)S^^\^D)S^^\^D+S^^\^L	S 	VE];Q?1ABAFr   c                    \        RR4       F=  pVP                  ^RR7      pV P                  \        P	                  VRR7      V4       K?  	  R# )r   r  Tr  Nr  )rC   r  rO  r5   rH  )r9   rF   r'   s   &  r   test_from_bytes_smallLongTest.test_from_bytes_smallE  sA     r3A

1T
*AMM#..4.8!<  r   c                    V P                  RP                  4       4       V P                  ^ P                  4       4       V P                  ^P                  4       4       R# )r   Nr   )r8   
is_integerr   s   &r   test_is_integerLongTest.test_is_integerL  s;    )*()()r   c                     ! R  R\         4      p\        R4       Uu. uF
  q!! ^ 4      NK  	  pp\        \         V4       F  pV P                  V^ 4       K  	  R# u upi )c                   *   a  ] tR tRt o RR ltRtV tR# )<LongTest.test_access_to_nonexistent_digit_0.<locals>.IntegeriU  c                >    \         P                  W4      pR Vn        V# r[  )r5   rR  r\  )rS  r   r9   s   && r   rR  DLongTest.test_access_to_nonexistent_digit_0.<locals>.Integer.__new__V  s    {{3. r   r[  Nr.  rU  r   s   @r   Integerr  U  s      r   r  r  N)r5   rC   maprM   )r9   r  rF   integersr   s   &    r   "test_access_to_nonexistent_digit_0+LongTest.test_access_to_nonexistent_digit_0Q  sR    	c 	 ).d41GAJ4S(#AQ" $ 5s   Ac                    R FV  pR FM  pV P                  \        W,          4      \        4       V P                  \        W,	          4      \        4       KO  	  KX  	  R# )TN)TF)r   r	   )rM   r  r5   )r9   r   r   s   &  r   test_shift_boolLongTest.test_shift_bool_  sD    "E  en!5s;  en!5s;   #r   c           
     \    ! R  R\         4      p^
^ R^\        P                  ^,           RRV! ^*4      .pV Fq  pVP                  4       w  rEV P	                  WE3\        V4      ^34       V P	                  \        V4      \         4       V P	                  \        V4      \         4       Ks  	  R# )c                       ] tR tRtRtR# )-LongTest.test_as_integer_ratio.<locals>.myintig  r   Nr.  r   r   r   rL  r  g  r0  r   rL  TFNr  )r5   r
   rC  as_integer_ratiorM   r  )r9   rL  r  r   	numeratordenominators   &     r   test_as_integer_ratioLongTest.test_as_integer_ratiof  s    	C 	QQaueBiHE%*%;%;%="Ii5E
AGT)_c2T+.4	 r   c           
     @   \        ^R4       Fy  p^V,          ^,
          pV P                  WR7      ;_uu_ 4        V P                  V^,          ^^V,          ,          ^V^,           ,          ,
          ^,           4       RRR4       K{  	  R#   + '       g   i     K  ; i)r   i  )bitlenr   N)rC   rN   rM   )r9   r  r   s   &  r   test_squareLongTest.test_squarep  sy    
 AsmFf!AV11  A1v:&1!+<=AC 21 $111s   ABBc           
        V P                  \        P                  \        P                  P
                  4       RRR\        ^,
          ^3^\        ,
          ^3\        ^3\        ) ^3\        \        ,          ^,
          ^3\        \        ,          ^3.	pV Fq  w  r#V P                  V4      ;_uu_ 4        V P                  VP                  4       \        P                  \        P                  V,          ,           4       RRR4       Ks  	   ! R R\        4      pV P                  VP                  \        P                  P
                  4       V Fo  w  r#V P                  V4      ;_uu_ 4        V P                  V! V4      P                  4       VP                  VP                  V,          ,           4       RRR4       Kq  	  \        P                  ^4       R#   + '       g   i     EKV  ; i  + '       g   i     K  ; i)r   Nc                       ] tR tRtRtR# )'LongTest.test___sizeof__.<locals>.MyInti  r   Nr.  r   r   r   MyIntr    r0  r   r  )r   r   )r   r   )r   r   )rM   r5   __itemsize__r
   int_infosizeof_digitr  rN   
__sizeof____basicsize__object)r9   r   r   r:   r  s   &    r   test___sizeof__LongTest.test___sizeof__|  s}   ))3<<+D+DE !VQKtVQK1IUAJ$Y]A$YN
 *NEe$$  $$&%%(8(87(BB %$ *	C 	 	++S\\-F-FG)NEe$$  %L++-''%*<*<w*FF %$ * 	!) %$$ %$$s   4AG.A	G/G,/H c                   V P                  \        R4      R4       V P                  \        ^ 4      ^ 4       V P                  \        ^
4      ^
4       V P                  \        \        P                  P                  ^,
          4      \        P                  P                  ^,
          4       V P                  \        \        P                  P                  ^,
          4      \        P                  P                  ^,
          4       V P                  \        \        P                  P                  4      ^ 4       V P                  \        \        P                  P                  ^,           4      ^4       V P                  \        \        P                  P                  ) ^,
          4      R4       V P                  \        \        P                  P                  ) ^,
          4      R4       V P                  \        \        P                  P                  ) 4      ^ 4       V P                  \        \        P                  P                  ) ^,           4      \        P                  P                  ) ^,           4       R# )r   Nr   r   )rM   hashr
   	hash_infomodulusr   s   &r   	test_hashLongTest.test_hash  s   b2&a!$b2&cmm33a78#--:O:ORS:STcmm33a78#--:O:ORS:STcmm334a8cmm33a78!<s}}444q892>s}}444q892>s}}4445q9s}}444q89CMM<Q<Q;QTU;UVr   r   Nl        )T)Cr   r   r   r   r@   rG   rT   r^   re   rj   rn   rr   rw   r   r   r   r   r   r   r   requires_IEEE_754r   
bigmemtestr   r  r  rI  rP  ru  rx  r~  r  r  r  r  r  r  cpython_onlyr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r<  r|  r  r  r  r  r  r  r  r  r   r   r   s   @r   r/   r/   s   s    0C#>N+.+6+/
S>1'6Mr60" C0 C0J c*3 + 38>;$Z*x c*.% + .%`_DB9
& HD%&L< Y' Y'v 4 4 c*' + '4 c*3 + 3: 
A0001     % %   0 $ 7D	CH6THATKGZ = =*
#<5
C'RW Wr   r/   __main__)#unittestr  r   r
   r6   r   ry  r  bits_per_digitr4   r  rE   rY   rX   rv   ri   rC   rF   rZ   r   r"   r   r   r   min_expr#   r   r$   r!   r   r-   TestCaser/   r   mainrh   s   0r   <module>r     sb     
    	##Ezax  	 aD$!)%79K
L	qwANN26	qB 
   1B #81B#88 8
..

nn$$nn$$~~&&k>Al(BQ(F$GG *'\+<@Wx   @WD2 zMMO q4 !#8s   E5'E: