
    0hh9P                     <   S SK r S SKrS SKrS SKrS SKr\" \SS5      S:w  a  \R                  " S5      e\R                  " S\R                  \R                  -  5      R                  rSS jrSr " S	 S
\R                  5      r\S:X  a  \R$                  " 5         gg)    Nfloat_repr_style shortzHcorrectly-rounded string->float conversions not available on this systemam      # A numeric string consists of:
    (?P<sign>[-+])?          # an optional sign, followed by
    (?=\d|\.\d)              # a number with at least one digit
    (?P<int>\d*)             # having a (possibly empty) integer part
    (?:\.(?P<frac>\d*))?     # followed by an optional fractional part
    (?:E(?P<exp>[-+]?\d+))?  # and an optional exponent
    \Z
c           	         [        U 5      nUc  [        S5      eUR                  S5      =(       d    Sn[        UR                  S5      U-   5      n[        UR                  S5      =(       d    S5      [	        U5      -
  nUR                  S5      S:H  nUS	[        US
5      -  -  S	[        S
U* 5      -  pU	(       d  U(       a  S$ S$ U	R                  5       U
R                  5       -
  nXS
:  a  X-	  OX* -  U
:  -  n[        X5      U-
  nU	[        U* S
5      -  U
[        US
5      -  p[        X5      u  pSU-  U
:  d  SU-  U
:X  a0  US-  (       a&  US-  nUR                  5       US-   :X  a
  US-  nUS-  nXR                  5       -   U:  a  U(       a  S$ S$ U(       d  U(       a  S$ S$ SUS-
  S-  -   nSUS-
  S-  -
  nUU-  UU-
  pSR                  U(       a  SOSUSU-  -  USU-  -  UUSU-  -   5      $ )Nzinvalid numeric stringfracr   intexp0sign-
   r   z	-0x0.0p+0z0x0.0p+0      -infinf      z{}0x{:x}.{:0{}x}p{:+d}   )	strtod_parser
ValueErrorgroupr   lenmax
bit_lengthdivmodformat)smant_digmin_expmax_expmfractionintpartr	   negativeabdeqrhexdigsshifts                    9/opt/python-3.13.8/usr/lib/python3.13/test/test_strtod.pystrtodr.      s    	aAy122wwv$"H!''%.8+,G
aggen#
$s8}
4Cwwv#%H2s3{?"BAt$4q &{6J6 	
'AF!&RA	--AA("A QB
?AQNq!<DAsQw!A#(q1u	Q<<>XaZ'!GAFA 	<<>G#!v,u,&{6J6 8A:/!G!QE:q5yq#**R	R[	BK	AgI     r   c                       \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  \R                  R                  S	-   S
SS9S 5       rS rS rSrg)StrtodTestsV   c           	           [        U5      nUR                  5       n[	        U5      nU R                  XCSR                  XU5      5        g ! [         a    US   S:X  a  SOSn NG[         a    Sn NTf = f)Nr   r   r   r   zmemory errorzEIncorrectly rounded str->float conversion for {}: expected {}, got {})floathexOverflowErrorMemoryErrorr.   assertEqualr   )selfr   fsgotexpecteds        r-   check_strtodStrtodTests.check_strtodW   sw    	qB &&(C!9//5va3/G	I  	3aDCK&UC 	! C	!s   A A2$A21A2c                    S GH>  nSSU-  -  * nSSU-  -  * nUS-  S:X  a  US-  n[        [        5       GH  n[        R                  " X2S5      UpeUS-  S:X  a  US-  US-   peUS-  S:X  a  M  XVpUS:  a[  S	R	                  Xx5      n	U R                  U	5        S	R	                  US
S-  -  US-
  5      n	U R                  U	5        US-  nUS:  a  M[  XVpUS:  d  M  S	R	                  Xx5      n	U R                  U	5        S	R	                  US
S-  -  US-
  5      n	U R                  U	5        US-  nUS-  nUS:  a  M`  GM	     GMA     g )N)r      r         l       r@   l       r   r   r   l      Fx:^V {}e{}r   (   range	TEST_SIZErandom	randranger   r=   )
r9   kupperlowerinr(   digitsexponentr   s
             r-   test_short_halfway_cases$StrtodTests.test_short_halfway_casesj   sc   !AadlOEadlOEqyA~
9% ''a8!1 !eqj61q5q !eqj $%vov8A%%a(vB2FA%%a(aKF vo $%vov8A%%a(vB2FA%%a(aKFMH voo3 & "r/   c                 4   [        S[        -  5       H  n[        R                  " S5      n[	        US5      u  p4U(       a	  US-   US-
  p4US-  nSU-  S-   US-
  p4US:  a  XC-  nSnOUSU* -  -  nUnS	R                  XV5      nU R                  U5        M     g )
Nd   l          l          r   i2  r   r   r@   rC   )rF   rG   rH   rI   r   r   r=   )r9   rM   bitsr(   r!   rO   rP   r   s           r-   test_halfway_casesStrtodTests.test_halfway_cases   s    sY'A##J/D $&DA5y!a%1IA Q37AEq Av QUv0Aa - (r/   c                     / SQnU Hk  u  p#n[        S5       HV  nU[        R                  " SU-  SU-  5      -   nUnSR                  Xg5      nU R	                  U5        US-  nUS-  nUS-  nMX     Mm     g )N))l     9V iiV  )l   %o$CK i!  i  )l   jT& M  )r   rY   rZ     r   rC   r   r   )rF   rH   rI   r   r=   )	r9   
boundariesrN   r(   ujrO   rP   r   s	            r-   test_boundariesStrtodTests.test_boundaries   s    
 "GA!4[V--bdAaC88NN64!!!$RRQ ! "r/   c                     [        SS5       Ha  nSU* -  SS-  -  n[        [        5       H?  nU[        R                  " SS5      -   nSR	                  XA5      nU R                  U5        MA     Mc     g )	Npir   r   i3  ir[   rC   rE   )r9   rP   baser_   rO   r   s         r-   test_underflow_boundary#StrtodTests.test_underflow_boundary   sk     dD)Hy=AtG+D9% 0 0 ==NN64!!!$ & *r/   c                     S Hp  nSU-  n[        S[        -  5       HR  n[        R                  " U5      n[        R                  " SS5      nSR	                  XE5      nU R                  U5        MT     Mr     g )N)r@   r      rA   r            rB   rD   )   2   r   rc   i  rC   rE   )r9   ndigsdig10rM   rO   rP   r   s          r-   test_bigcompStrtodTests.test_bigcomp   sg    BEIE2	>*))%0!++D#6NN64!!!$	 + Cr/   c           	      d  ^ SmSn[        S5       GH  n[        [        5       GHq  n[        R                  " U5      n[        R                  " S5      nUSR                  U4S j[        U5       5       5      -  n[        R                  " SS/5      (       aC  US	-  n[        R                  " S5      nUSR                  U4S
 j[        U5       5       5      -  nOSn[        R                  " SS/5      (       ar  U[        R                  " SS/5      -  nU[        R                  " U5      -  n[        R                  " SS5      nUSR                  U4S j[        U5       5       5      -  nXV-   (       a  U R                  U5        GMe   [        U5        GMt     GM     g ! [         a     GM  f = f)N000000123456789)+r   r   r[   r@   r   c              3   P   >#    U  H  n[         R                  " T5      v   M     g 7fNrH   choice.0_rO   s     r-   	<genexpr>+StrtodTests.test_parsing.<locals>.<genexpr>   s     O<NqV]]622<N   #&TF.c              3   P   >#    U  H  n[         R                  " T5      v   M     g 7frv   rw   ry   s     r-   r|   r}      $      !?*=Q "(v!6!6*=r~   r   r(   Er   r   c              3   P   >#    U  H  n[         R                  " T5      v   M     g 7frv   rw   ry   s     r-   r|   r}      r   r~   )	rF   rG   rH   rx   rI   joinr=   r4   r   )	r9   signsrM   r_   r   intpart_lenfracpart_lenexponent_lenrO   s	           @r-   test_parsingStrtodTests.test_parsing   sn   " tA9%MM%($..q1RWWOE+<NOOO==$//HA#)#3#3A#6L !?*/*=!? ? ?A $%L==$//Sz22Au--A#)#3#3Aq#9L !?*/*=!? ? ?A -%%a(<a- & 0 & s   
F  
F/.F/r   r   F)sizememusedry_runc                    SSU-  -   nU R                  [        5         [        U5        S S S 5        ASSU-  -   S-   nU R                  [        5         [        U5        S S S 5        Ag ! , (       d  f       NE= f! , (       d  f       Ag = f)Nz1.1z0.r
   )assertRaisesr   r4   )r9   maxsizer   s      r-   test_oversized_digit_strings(StrtodTests.test_oversized_digit_strings   st     3= z*!H +3= 3&z*!H + +*
 +*s   A)A:)
A7:
B	c                    S nS nU R                  [        U" S5      5      S5        U R                  [        U" S5      5      S5        U R                  [        U" S5      5      S5        U R                  [        U" S5      5      S5        U R                  [        U" S5      5      S5        U R                  [        U" S5      5      S5        g )Nc                 2    SR                  SU S-
  -  U 5      $ )Nz	0.{}1e+{}r
   r   r   rN   s    r-   positive_exp6StrtodTests.test_large_exponents.<locals>.positive_exp  s    %%c1Q3i33r/   c                 ,    SR                  SU -  U 5      $ )Nz1{}e-{}r
   r   r   s    r-   negative_exp6StrtodTests.test_large_exponents.<locals>.negative_exp  s    ##CE1--r/   i'  g      ?i N  i0u  )r8   r4   )r9   r   r   s      r-   test_large_exponents StrtodTests.test_large_exponents  s    	4	. 	|E23S9|E23S9|E23S9|E23S9|E23S9|E23S9r/   c                 @    / SQnU H  nU R                  U5        M     g )N),z02183167012312112312312.23538020374420446192e-370z712579816049008305546974391768996369464963024663104e-357z717489628565202117263145367596028389348922981857013e-357z718487398785991994634182916638542680759613590482273e-357z732002864200581033134358724675198044527469366773928e-358z794393431193180696942841837085033647913224148539854e-358z773608278998966969345824653500136787876436005957953e-358z764774478836417299491718435234611299336288082136054e-358z713704940134126574534878641876947980878824688451169e-357z746697445774047060960624497964425416610480524760471e-358z728639097178261763178489759107321392745108491825303e-311z1.00000000000000001e44z-1.0000000000000000100000000000000000000001e44z399999999999999994487665465554760717039532578546e-47o9654371763336549317990355136719971183455700459144696213413350821416312194420007991306908470147322020121018368e0a  104308485241983990666713401708072175773165034278685682646111762292409330928739751702404658197872319129036519947435319418387839758990478549477777586673075945844895981012024387992135617064532141489278815239849108105951619997829153633535314849999674266169258928940692239684771590065027025835804863585454872499320500023126142553932654370362024104462255244034053203998964360882487378334860197725139151265590832887433736189468858614521708567646743455601905935595381852723723645799866672558576993978025033590728687206296379801363024094048327273913079612469982585674824156000783167963081616214710691759864332339239688734656548790656486646106983450809073750535624894296242072010195710276073042036425579852459556183541199012652571123898996574563824424330960027873516082763671875e-1075z247032822920623295e-341z799037485700245683102805043437346965248029601286431e-373z799617639833743863161109961162881027406769510558457e-373z798852915025769345295749278351563179840130565591462e-372z799059944827693569659153042769690930905148015876788e-373z798914979205069368270421829889078356254059760327101e-372z,1000000000000000000000000000000000000000e-16z-10000000000000000000000000000000000000000e-17z=991633793189150720000000000000000000000000000000000000000e-33z;4106250198039490000000000000000000000000000000000000000e-38z*10.900000000000000012345678912345678912345a  11651287494059419563861790709256988151903479322938522856916519154189084656466977171489691608488398792047332126810029685763620092606534076968286334920536334924763766067178320990794927368304039797998410780646182269333271282839761794603623958163297658510063352026077076106072540390412314438457161207373275477458821194440646557259102208197382844892733860255628785183174541939743301249188486945446244053689504749943655197464973191717009938776287102040358299419343976193341216682148401588363162253931420379903449798213003874174172790742957567330246138038659650118748200625752770984217933648838167281879845022933912352785884444833681591202045229462491699354638895656152216187535257259042082360747878839946016222830869374205287663441403533948204085390898399055004119873046875e-1075a^  5254406533529552661096610603582028195612589849649138922565278497589560452182570597137658742514361936194432482059988700016338656575174473559922258529459120166686600002102838072098506622244175047522649953606315120077538558010753730576321577387528008403025962370502479105305382500086822727836607781816280407336531214924364088126680234780012085291903592543223403975751852488447885154107229587846409265285440430901153525136408849880173424692750069991045196209464308187671479664954854065777039726878381767789934729895619590000470366389383963331466851379030183764964083197053338684769252973171365139701890736933147103189912528110505014483268752328506004517760913030437151571912928276140468769502257147431182910347804663250851413437345649151934269945872064326973371182115272789687312946393533547747886024677951678751174816604738791256853675690543663283782215866825e-118032602129298404963083833853479113577253105939995688e25260212929840496308383385347911357725310593999568896e0z826021292984049630838338534791135772531059399956889601e-25260212929840496308383385347911357725310593999568895e05260212929840496308383385347911357725310593999568897e05260212929840496308383385347911357725310593999568996e05260212929840496308383385347911357725310593999568866e0z9007199254740992.005  179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792a9  179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497791.999a9  179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792.001z:999999999999999944488848768742172978818416595458984375e-54zA9999999999999999444888487687421729788184165954589843749999999e-54zA9999999999999999444888487687421729788184165954589843750000001e-54z0.000000000000000000000000000000000000000010000000000000000057612911342378542997169042119121403423543508714776317814976295686899169228986994124665807319451982237978882039897143840789794921875)r=   )r9   test_stringsr   s      r-   test_particularStrtodTests.test_particular  s%    O` Aa  r/    N)__name__
__module____qualname____firstlineno__r=   rQ   rV   r`   re   rp   r   testsupport
bigmemtest_2Gr   r   r   __static_attributes__r   r/   r-   r1   r1   V   sm    I&)"V!4(	%%"<H 
\\$,,"2"22"5aO
 P
:$T!r/   r1   __main__)5   ii   )rH   unittestresystest.supportr   getattrSkipTestcompileVERBOSE
IGNORECASEmatchr   r.   rG   TestCaser1   r   mainr   r/   r-   <module>r      s      	 
 
3"B'72


 ; < <
 

  ZZ"--! "' 7r 	X!(## X!t
 zMMO r/   