
    /hh7                    "   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
Jr  S SKJrJr  S SKJrJrJrJr  S SKr S SKr\" S5      r\" S5      r\R2                  R5                  \5      =(       d    \R8                  r\R2                  R=                  \SS	5      r " S
 S\5      r  " S S\5      r! " S S\RD                  5      r#\RH                  " \%" \S5      S5       " S S\RD                  5      5       r&Sr'\(" \)" \'5      5      r*Sr+\(" \)" \+5      5      r,Sr-\(" \)" \-5      5      r.Sr/\(" \)" \/5      5      r0 " S S\RD                  5      r1 " S S\RD                  5      r2 " S S\RD                  5      r3\	Rh                   " S S\RD                  \5      5       r5 " S  S!\RD                  5      r6\Rn                  r8\Rr                  r: " S" S#\\RD                  5      r;\<S$:X  a  \Rz                  " 5         gg! \ a    Sr GNf = f)%    N)support)FloatsAreIdenticalMixin)VALID_UNDERSCORE_LITERALSINVALID_UNDERSCORE_LITERALS)isinfisnancopysignldexpinfnanmathdatazformatfloat_testcases.txtc                       \ rS rSrSrg)FloatSubclass     N__name__
__module____qualname____firstlineno____static_attributes__r       8/opt/python-3.13.8/usr/lib/python3.13/test/test_float.pyr   r           r   r   c                       \ rS rSrSrg)OtherFloatSubclass#   r   Nr   r   r   r   r   r   #   r   r   r   c                       \ rS rSrS rS rS rS rS rS r	\
R                  " SS	S
S5      S 5       rS rS rS rS rS rS rS rS rS r\
R,                  S 5       r\
R,                  S 5       rS rS rSrg)GeneralFloatCases&   c                    U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S	5        U R                  [        [        S
5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        0 5        U R                  [        S[        0 5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        S5      S5        U R                  [        S5      S5        [        S5        [        S5        U R                  [        [        S5        g )NQ	@i:  g     s@  3.14  	  0x3.1    -0x3.p-1    +0x3.p-1  z++3.14z+-3.14z-+3.14z--3.14z.nanz+.inf.z-.z
not 'dict'u   z-1.7d29z3D-14u     ٣.١٤  u
    3.14 s  .1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111a  .1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111u   こんにちは)assertEqualfloatassertRaises
ValueError	TypeErrorassertRaisesRegexselfs    r   
test_floatGeneralFloatCases.test_float(   s   td+sU+z*D1*e[9*e^<*e^<*eX6*eX6*eX6*eX6*eV4*eW5*eS1*eT2)UB/y,rB*eX6*eY7*eW5894@=>En 	*e-MNr   c                 8    U R                  [        5       S5        g )N        )r(   r)   r.   s    r   test_noargsGeneralFloatCases.test_noargsG   s    #&r   c           
        ^ [          Hw  m[        U4S jS 5       5      (       a  M  U R                  [        T5      [	        T5      5        U R                  [        T5      [        TR                  SS5      5      5        My     [         HB  mTS;   a  M  [        U4S jS 5       5      (       a  M'  U R                  [        [        T5        MD     U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S	5        U R                  [        [        S
5        U R                  [        [        S5        U R                  [        [        S5        g )Nc              3   ,   >#    U  H	  oT;   v   M     g 7fNr   .0chlits     r   	<genexpr>5GeneralFloatCases.test_underscores.<locals>.<genexpr>L        6:RSy:   jJxXoObB_ )0_709_99c              3   ,   >#    U  H	  oT;   v   M     g 7fr8   r   r9   s     r   r=   r>   R   r?   r@   _NaNNa_NIN_Fz-_INFz-INF_s   0_.9)	r   anyr(   r)   evalreplacer   r*   r+   )r/   r<   s    @r   test_underscores"GeneralFloatCases.test_underscoresJ   s   ,C6:666  sT#Y7  sU3;;sB3G-HI - /C&&6:666!!*eS9	 / 	*eV4*eV4*eV4*eW5*eW5*e[9r   c                 .  ^^  " S S[         5      m " S S[        5      n " S S[        5      n[        [        U4S jUU[        /n SS	KJm  UR                  U4S
 j5        U Hy  nU" S5      nU R                  [        U5      5         U R                  [        U5      S5        U R                  [        S5         [        U" S5      5        S S S 5        S S S 5        M{     g ! [         a     Nf = f! , (       d  f       N+= f! , (       d  f       M  = f)Nc                       \ rS rSrSrg)AGeneralFloatCases.test_non_numeric_input_types.<locals>.CustomStrb   r   Nr   r   r   r   	CustomStrrQ   b   s    dr   rS   c                       \ rS rSrSrg)CGeneralFloatCases.test_non_numeric_input_types.<locals>.CustomBytesc   r   Nr   r   r   r   CustomBytesrU   c   s    $r   rW   c                       \ rS rSrSrg)GGeneralFloatCases.test_non_numeric_input_types.<locals>.CustomByteArrayd   r   Nr   r   r   r   CustomByteArrayrY   d   s    $r   r[   c                 0   > T" U R                  5       5      $ r8   )decode)brS   s    r   <lambda>@GeneralFloatCases.test_non_numeric_input_types.<locals>.<lambda>i   s    i
+r   r   )arrayc                    > T" SU 5      $ )NBr   )r^   ra   s    r   r_   r`   s   s    uS!}r   s    3.14  r"   zcould not converts   AAAAAAAAAAAAAAAA)strbytes	bytearray
memoryviewra   appendImportErrorsubTesttyper(   r)   r-   r+   )r/   rW   r[   	factoriesfxrS   ra   s         @@r   test_non_numeric_input_types.GeneralFloatCases.test_non_numeric_input_types_   s     	#"&%&.i. +
		6# 45A*Ad1g&  q40++J8KL!K.) M '&   		 ML '&s6   	C$ 2D=C4D$
C10C14
D>D
D	c                    U R                  [        [        S5      SS 5      S5        U R                  [        [        S5      SS 5      S5        U R                  [        [        S5      SS 5      S5        U R                  [        [        S5      SS 5      S5        U R                  [        [        S5      SS 5      S5        g )	Ns   12.3      gffffff@s   12.3 s   12.3 s   12.3As   12.34)r(   r)   rg   r.   s    r   test_float_memoryview'GeneralFloatCases.test_float_memoryview|   s    z'21Q78#>z+6q;<cBz(3Aa893?z(3Aa893?z(3Aa893?r   c                    ^  U 4S jnU" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S	5        U" S
5        U" S5        U" S5        U" S5        U" S5        g )Nc                    > TR                  [        SU < S3S9 n[        U 5        S S S 5        TR                  [	        WR
                  5      SU < 35        g ! , (       d  f       N8= f)Nzfloat())msgz#could not convert string to float: )r*   r+   r)   r(   rd   	exception)scmr/   s     r   check3GeneralFloatCases.test_error_message.<locals>.check   sR    "":!3E"F"a GS.;<>@ GFs   A
A'   ½u   123½z  123 456  s     123 456  rC    z	 
u   ٣١٤!z123 z123  245z123 245s   123 s   123r   )r/   r}   s   ` r   test_error_message$GeneralFloatCases.test_error_message   sr    	@ 	fimnb	c
g 	#$imljjr   
LC_NUMERICfr_FRde_DErC   c                    SS K nUR                  5       S   S:X  d  U R                  S5        U R                  [	        S5      S5        U R                  [	        S5      S5        U R                  [	        S5      S	5        U R                  [	        S
5      S5        U R                  [	        S5      S5        U R                  [	        S5      S5        U R                  [	        S5      S5        U R                  [	        S5      S5        U R                  [	        S5      S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [	        S5      S5        U R                  [	        S5      S5        g ) Nr   decimal_point,zdecimal_point is not ","r#   r"   z+3.14  z-3.14  gQ	z.14  gQ?z3.        @z3.e3  g     p@z3.2e3  g      @z2.5e-1        ?z5e-1      ?z  3,14  z	  +3,14  z	  -3,14  r$   r%   r&   z
  25.e-1        @z
  .25e-1  g?)locale
localeconvskipTestr(   r)   r*   r+   assertAlmostEqual)r/   r   s     r   test_float_with_comma'GeneralFloatCases.test_float_with_comma   sy   
 	  "?3s:MM45z*D1y)40y)51w-v,x&1y)62z*D1v,*eZ8*e[9*e[9*e[9*e^<*e^<|,c2u\2D9r   c           	      `    " S S[         5      n " S S[        5      n " S S[        5      n " S S[        5      n " S	 S
[        5      nU R                  [        U" 5       5      S5        U R                  [        U" 5       5      S5        U R	                  [
        5         U R                  [        U" S5      5      S5        S S S 5        U R                  [        [        U" S5      5        U R                  [        U" S5      5      S5         " S S5      nU R                  [        [        R                  U" 5       5         " S S5      nU R	                  [
        5         U R                  [        U" 5       5      S5        S S S 5        U R	                  [
        5         U R                  [        [        U" 5       5      5      [        5        S S S 5        U R	                  [
        5         U R                  [        U" 5       5      S5        S S S 5        U R	                  [
        5         U R                  [        [        U" 5       5      5      [        5        S S S 5         " S S5      nU R                  [        U" S5      5      S5        U R                  [        [        U" SS-  5      5         " S S5      n	U R                  [        [        U	" 5       5        g ! , (       d  f       GN= f! , (       d  f       GNo= f! , (       d  f       GN6= f! , (       d  f       GN
= f! , (       d  f       N= f)Nc                       \ rS rSrS rSrg)4GeneralFloatCases.test_floatconversion.<locals>.Foo1   c                     gN      E@r   r.   s    r   	__float__>GeneralFloatCases.test_floatconversion.<locals>.Foo1.__float__       r   r   Nr   r   r   r   r   r   r   r   r   Foo1r          r   r   c                       \ rS rSrS rSrg)4GeneralFloatCases.test_floatconversion.<locals>.Foo2   c                     gr   r   r.   s    r   r   >GeneralFloatCases.test_floatconversion.<locals>.Foo2.__float__   r   r   r   Nr   r   r   r   Foo2r      r   r   r   c                   $    \ rS rSrSS jrS rSrg)4GeneralFloatCases.test_floatconversion.<locals>.Foo3   c                 4    [         R                  U SU-  5      $ )N   r)   __new__clsvalues     r   r   <GeneralFloatCases.test_floatconversion.<locals>.Foo3.__new__   s    }}S!E'22r   c                     U $ r8   r   r.   s    r   r   >GeneralFloatCases.test_floatconversion.<locals>.Foo3.__float__   s    r   r   N)r3   )r   r   r   r   r   r   r   r   r   r   Foo3r      s    3r   r   c                       \ rS rSrS rSrg)4GeneralFloatCases.test_floatconversion.<locals>.Foo4   c                     gN*   r   r.   s    r   r   >GeneralFloatCases.test_floatconversion.<locals>.Foo4.__float__       r   r   Nr   r   r   r   Foo4r          r   r   c                       \ rS rSrS rSrg)6GeneralFloatCases.test_floatconversion.<locals>.FooStr   c                 0    [        [        U 5      5      S-   $ Nrr   )r)   rd   r.   s    r   r   @GeneralFloatCases.test_floatconversion.<locals>.FooStr.__float__   s    SY'!++r   r   Nr   r   r   r   FooStrr      s    ,r   r   r      r   8g      "@c                       \ rS rSrS rSrg)4GeneralFloatCases.test_floatconversion.<locals>.Foo5   c                     g)NrC   r   r.   s    r   r   >GeneralFloatCases.test_floatconversion.<locals>.Foo5.__float__   r   r   r   Nr   r   r   r   Foo5r      r   r   r   c                       \ rS rSrS rSrg)1GeneralFloatCases.test_floatconversion.<locals>.F   c                     [        S5      $ r   )r   r.   s    r   r   ;GeneralFloatCases.test_floatconversion.<locals>.F.__float__   s    )#..r   r   Nr   r   r   r   Fr      s    /r   r   c                        \ rS rSrS rS rSrg)7GeneralFloatCases.test_floatconversion.<locals>.MyIndex   c                     Xl         g r8   r   r/   r   s     r   __init__@GeneralFloatCases.test_floatconversion.<locals>.MyIndex.__init__   s    "
r   c                     U R                   $ r8   r   r.   s    r   	__index__AGeneralFloatCases.test_floatconversion.<locals>.MyIndex.__index__   s    zz!r   r   N)r   r   r   r   r   r   r   r   r   r   MyIndexr      s    #"r   r   r   i  c                       \ rS rSrS rSrg)5GeneralFloatCases.test_floatconversion.<locals>.MyInt   c                     gr   r   r.   s    r   __int__=GeneralFloatCases.test_floatconversion.<locals>.MyInt.__int__   r   r   r   N)r   r   r   r   r   r   r   r   r   MyIntr      r   r   r   )objectr)   rd   r(   assertWarnsDeprecationWarningr*   r,   timesleepassertIsrk   r   OverflowError)
r/   r   r   r   r   r   r   r   r   r   s
             r   test_floatconversion&GeneralFloatCases.test_floatconversion   s/   	6 		5 		5 		5 		,S 	, 	tv,tv,01U48_c2 2)UDH5vc{+R0	 	 	)TZZ8	/ 	/ 01U13Z- 201MM$uQSz*E2 201]13/5 201MM$}QS12MB 2	" 	" 	wr{+T2-40@A	 	 	)UEG4I 21 21111111s<   !"K !K).K;)!L'.L
K&)
K8;
L

L
L-c                 v    U R                  [        S5         [        SS9  S S S 5        g ! , (       d  f       g = f)Nzkeyword argumentz3.14rn   )r-   r,   r)   r.   s    r   test_keyword_args#GeneralFloatCases.test_keyword_args   s'    ##I/ABFO CBBs   
*
8c                     " S S[         5      nU" S5      nU R                  [        U5      U5        U R                  [        U5      S5        U R	                  [
        5         U" SS9  S S S 5         " S S[         5      nU" SSS	9nU R                  [        U5      U5        U R                  [        U5      S5        U R                  UR                  S5         " S
 S[         5      nU" SSS	9nU R                  [        U5      U5        U R                  [        U5      S5        U R                  UR                  S5        g ! , (       d  f       N= f)Nc                       \ rS rSrSrg)=GeneralFloatCases.test_keywords_in_subclass.<locals>.subclassi  r   Nr   r   r   r   subclassr         r   r   r   r   r   c                       \ rS rSrSS jrSrg)GGeneralFloatCases.test_keywords_in_subclass.<locals>.subclass_with_initi	  Nc                     X l         g r8   newarg)r/   argr   s      r   r   PGeneralFloatCases.test_keywords_in_subclass.<locals>.subclass_with_init.__init__
  s    $r   r   r8   r   r   r   r   r   r   r   r   r   subclass_with_initr   	  s    %r   r      r   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )FGeneralFloatCases.test_keywords_in_subclass.<locals>.subclass_with_newi  c                 2   > [         TU ]  X5      nX#l        U$ r8   )superr   r   )r   r   r   r/   	__class__s       r   r   NGeneralFloatCases.test_keywords_in_subclass.<locals>.subclass_with_new.__new__  s    ws0$r   r   r8   )r   r   r   r   r   r   __classcell__)r  s   @r   subclass_with_newr    s     r   r	  )r)   r   rk   r(   r*   r,   r   )r/   r   ur   r	  s        r   test_keywords_in_subclass+GeneralFloatCases.test_keywords_in_subclass   s
   	u 	SMd1gx(q3'y)qM *	% 	% s1-d1g12q3'1%	 	
 c!,d1g01q3'1%' *)s   #E
Ec                     U R                  SR                  5       5        U R                  SR                  5       5        U R                  [        S5      R                  5       5        U R                  [        S5      R                  5       5        g )Ng?      ?r   r   )assertFalse
is_integer
assertTruer)   r.   s    r   test_is_integer!GeneralFloatCases.test_is_integer  sb    #))+,)*u0023u0023r   c                    S H%  u  pU R                  UR                  5       U5        M'     [        S5       Hq  n[        R                  " 5       nUS[        R                  " SS5      -  -  nUR                  5       u  pEU R                  [        U5      R                  U5      U5        Ms     [        R                  nU R                  U" SS5      U" [        S5      R                  5       6 5        U R                  U" S	S
5      U" [        S5      R                  5       6 5        U R                  U" SS
5      U" [        S5      R                  5       6 5        U R                  U" SS5      U" [        S5      R                  5       6 5        U R                  U" SS5      U" [        S5      R                  5       6 5        U R                  U" SS5      U" [        S5      R                  5       6 5        U R                  [        [        S5      R                  5        U R                  [        [        S5      R                  5        U R                  [        [        S5      R                  5        g )N))g      ?)      )g      )ir  )r3   )r   rr   )g      '@)   r   '  
   irZ   r   rr   r3      r   r   r   l   L33 l         @ g @lL33 g ig     hr   -infr   )r(   as_integer_ratiorangerandomrandintr)   __truediv__	fractionsFractionr*   r   r+   )r/   rm   ratioindRs          r   test_floatasratio#GeneralFloatCases.test_floatasratio!  s   HA Q//159 uAAv~~dC000A%%'DAU1X11!4a8	  1aE#J779:	<1aE#J779:	<1aE#J779:	<+-=>E#J779:	<,.>?E$K88:;	=5!E'N;;=>	@ 	-u)F)FG-v)G)GH*eEl&C&CDr   c           	      (   [         [         * SS[        4nU H  nU R                  X"/5        U R                  X"45        U R                  X"15        U R                  X"S 05        U R                  U/R	                  U5      SSU-  5        U R                  X!5        M     U H  nU R                  U/U/:H  SU< SU< S35        U R                  U4U4:H  SU< S	U< S
35        U R                  U1U1:H  SU< SU< S35        U R                  US 0US 0:H  SU< SU< S35        U/U4U1US 04u  p4pVU R                  X3:H  SU-  5        U R                  XD:H  SU-  5        U R                  XU:H  SU-  5        U R                  Xf:H  SU-  5        M     g )Nr3   r  rr   z[].count('%r') != 1[z] != [](z,) != (z,){z} != {}z : None} != {z : None}z[%r] not equal to itselfz(%r,) not equal to itselfz{%r} not equal to itselfz{%r : None} not equal to itself)INFNANassertInr(   countr  )r/   floatsrm   ltr{   r&  s          r   test_float_containment(GeneralFloatCases.test_float_containmentB  s   tS#s+AMM!S!MM!T"MM!S!MM!Y'aSYYq\1.Ca.GHMM!$  AOOQCA3J!Q(?@OOQDQDLa*CDOOQCA3J!Q(?@OOQJ1d)3DEq6J K qdQC!T2JA!OOAF$>$BCOOAF$?!$CDOOAF$>$BCOOAF$E$IJ r   c                 X    U R                  U[        SU5      4U[        SU5      45        g )Nr  )r(   r	   )r/   ar^   s      r   assertEqualAndEqualSign)GeneralFloatCases.assertEqualAndEqualSign[  s,     	!Xc1-.HS!4D0EFr   c                    U R                  [        S5      R                  5       [        5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S5        U R	                  [        S	5      R                  5       S
5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S5        U R                  [        [        S5      R                  5        U R                  [        [        S5      R                  5        U R                  [        [        S5      R                  5        g )Nr   r   r  rr         ?                  NݯbNݯr   r   r  )assertIsInstancer)   	__floor__intr(   r*   r+   r   r.   s    r   test_float_floor"GeneralFloatCases.test_float_floora  sV   eCj224c:s--/3s--/3s--/3t..0"5t..0"5t..0"5x224h?y)335yA*eEl&<&<=-u)?)?@-v)@)@Ar   c                    U R                  [        S5      R                  5       [        5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S	5        U R	                  [        S
5      R                  5       S	5        U R	                  [        S5      R                  5       S5        U R	                  [        S5      R                  5       S5        U R                  [        [        S5      R                  5        U R                  [        [        S5      R                  5        U R                  [        [        S5      R                  5        g )Nr   rr   r  r>  r   r?  r   rA  r@  rB  rD  rE  r   r   r  )rF  r)   __ceil__rH  r(   r*   r+   r   r.   s    r   test_float_ceil!GeneralFloatCases.test_float_ceilo  sV   eCj113S9s,,.2s,,.2s,,.2t--/3t--/4t--/4x113X>y)224i@*eEl&;&;<-u)>)>?-v)?)?@r   c                 |   [         R                  nU R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        g )NrA  r  r3   0.+       0.++)operatormodr;  )r/   rT  s     r   test_float_mod GeneralFloatCases.test_float_mod}  s    ll$$Ss^S9$$S#%6<$$Ss^S9$$Sc]C8$$S%5v>$$Sc]C8$$St_d;$$S$%7A$$St_d;$$Sd^T:$$S%6=$$Sd^T:r   c           	         [         [        R                   4 GHJ  nU R                  [        U" [        * [
        5      5      5        U R                  [        U" S[
        5      5      5        U R                  [        U" S[
        5      5      5        U R                  [        U" S[
        5      5      5        U R                  [        U" S[
        5      5      5        U R                  [        U" S[
        5      5      5        U R                  [        U" S[
        5      5      5        U R                  [        U" S[
        5      5      5        U R                  [        U" [        [
        5      5      5        U R                  [        U" [
        [
        5      5      5        U R                  [        U" [
        [        * 5      5      5        U R                  [        U" [
        S5      5      5        U R                  [        U" [
        S5      5      5        U R                  [        U" [
        S5      5      5        U R                  [        U" [
        S5      5      5        U R                  [        U" [
        S5      5      5        U R                  [        U" [
        S5      5      5        U R                  [        U" [
        [        5      5      5        U R                  [        USS5        U R                  [        USS5        U R                  [        USS5        U R                  [        USS5        U R                  [        USS5        U R                  [        USS5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" S[        * 5      S5        U R                  U" S[        5      S5        U R                  U" S[        * 5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" S[        5      S5        U R                  U" S[
        5      S5        U R                  U" [        * S5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" [        S5      S5        U R                  U" [
        S5      S5        U R                  U" [        * S5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" [        S5      S5        U R                  U" [
        S5      S5        U R                  [        U" SS5      5      [        5        U R                  [        U" SS5      5      [        5        U R                  [        U" SS5      5      [        5        U R                  [        U" SS5      5      [        5        U R                  [        U" SS5      5      [        5        U R                  [        U" SS5      5      [        5        U R                  U" S[        * 5      [        5        U R                  U" S[        * 5      [        5        U R                  U" S[        * 5      [        5        U R                  U" S[        * 5      [        5        U R                  U" [        * [        * 5      S5        U R                  U" S[        * 5      S5        U R                  U" S[        * 5      S5        U R                  U" [        [        * 5      S5        U R                  U" S[        5      S5        U R                  U" S[        5      S5        U R                  U" S[        5      S5        U R                  U" S[        5      S5        U R                  U" [        * [        5      [        5        U R                  U" S[        5      [        5        U R                  U" S[        5      [        5        U R                  U" [        [        5      [        5        U R                  U" [        * S5      S5        U R                  U" [        * S5      S5        U R                  U" [        * S5      S5        U R                  U" [        * S5      [        * 5        U R                  U" [        * S5      [        5        U R                  U" [        * S5      [        5        U R                  U" [        S5      [        5        U R                  U" [        S5      [        5        U R                  U" [        S5      [        5        U R                  U" [        S5      S5        U R                  U" [        S5      S5        U R                  U" [        S5      S5        U R                  U" SS5      S	5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S
5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S	5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S
5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  [        U" SS5      5      [        5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  [        U" SS5      5      [        5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S5        GMM     g )Ng       rA  r?  rQ  r3   r          @r  r   g      @}Ô%I}Ô%ITg     @g     Bg     Dg     @@g     B@g     D@)powrS  r  r   r0  r1  r*   ZeroDivisionErrorr;  r(   rk   complex)r/   pow_ops     r   test_float_pow GeneralFloatCases.test_float_pow  s   
 8<<'FOOE&#s"345OOE&s"345OOE&s"345OOE&s"345OOE&s"345OOE&c"234OOE&c"234OOE&c"234OOE&c"234OOE&c"234 OOE&sd"345OOE&d"345OOE&d"345OOE&d"345OOE&c"234OOE&c"234OOE&c"234OOE&c"234 /tD/dC /tD/tD/dC/dC ((c):DA((S)93? ((c):C@((c):C@((S)93?((S)93? ((sd);SA((c):C@ ((cT):C@((T):C@((T):C@((T):C@((T):C@((S)93?((S)93?((S)93?((S)93?((S)93?((S)93? ((c):C@((c):C@((c):C@((c):C@((c):C@((S)93?((S)93?((S)93?((S)93?((S)93?((S)93?((d);SA((d);SA((d);SA((d);SA((d);SA((T):C@((T):C@((T):C@((T):C@((T):C@((T):C@ T&t"45w?T&s"34g>T&t"45w?T&s"34g>T&t"45w?T&s"34g> ((sd);SA((sd);SA((cT):C@((cT):C@ ((sd);SA((sd);SA((cT):C@((cT):C@ ((c):C@((c):C@((S)93?((S)93? ((c):C@((c):C@((S)93?((S)93? ((d);TB ((d);SA((d);SA ((c):SDA ((c):C@((c):C@ ((S)93?((S)93?((S)93? ((T):C@((T):C@((T):C@ ((d);TB((d);TB((d);SA((c):C@((c):DA((c):C@((d);SA((d);TB((d);SA((c):C@((c):DA((c):C@((T):DA((T):C@((T):C@((S)93?((S)93?((S)93? ((V)<cB((U);SA((f)=sC((e)<cB ((g)>DT&w"78'B((g)>E((W)=sC((W)=sC((W)=sC((f)=sCT&v"67A((f)=tD((V)<cB((V)<cB((V)<cBk (r   c                 B   [        SS5       H0  nU R                  [        [        U5      5      [        U5      5        M2     U R                  [        [        [        R
                  R                  5      5      [        [        [        R
                  R                  5      5      5        U R                  [        [        S5      5      [        R                  R                  5        U R                  [        [        S5      5      [        R                  R                  * 5        g )Ni   r   r  )
r  r(   hashr)   sys
float_infomaxrH  	hash_infor   r/   rn   s     r   	test_hashGeneralFloatCases.test_hashZ  s    sBAT%(^T!W5  eCNN$6$678c#.."4"456	8eEl+S]]->->?eFm,s}}/@/@.@Ar   c                    [        S5      nU R                  [        U5      [        R	                  U5      5         " S S5      n " S S[         U5      nU" S5      nU R                  [        U5      [        R	                  U5      5        g )Nr   c                       \ rS rSrS rSrg)*GeneralFloatCases.test_hash_nan.<locals>.Hie  c                     gr   r   r.   s    r   __hash__3GeneralFloatCases.test_hash_nan.<locals>.H.__hash__f  r   r   r   N)r   r   r   r   ro  r   r   r   r   Hrm  e  r   r   rq  c                       \ rS rSrSrg)*GeneralFloatCases.test_hash_nan.<locals>.Fih  r   Nr   r   r   r   r   rs  h  r   r   r   )r)   r(   rc  r   ro  )r/   r   rq  r   s       r   test_hash_nanGeneralFloatCases.test_hash_nanb  sf    eefooe&<=	 		q 	%efooe&<=r   r   N)r   r   r   r   r0   r4   rM   ro   rt   r   r   run_with_localer   r   r   r  r  r(  r7  r;  rI  rM  requires_IEEE_754rU  r_  ri  rt  r   r   r   r   r   r   &   s    O>':**:@6 \7GR@: A:4A5F&64EBK2GBA ; ;& yC yCPB	>r   r   __getformat__zrequires __getformat__c                       \ rS rSrS rSrg)FormatFunctionsTestCasein  c                 4   U R                  [        R                  S5      / SQ5        U R                  [        R                  S5      / SQ5        U R                  [        [        R                  S5        U R                  [
        [        R                  S5        g )Ndouble)unknownzIEEE, big-endianzIEEE, little-endianr)   chickenrr   )r2  r)   rx  r*   r+   r,   r.   s    r   test_getformat&FormatFunctionsTestCase.test_getformatp  sl    e))(3L	Ne))'2L	N*e&9&99E)U%8%8!<r   r   N)r   r   r   r   r  r   r   r   r   rz  rz  n  s    =r   rz  s         s         s     s     c                       \ rS rSr\R
                  S 5       r\R
                  S 5       r\R
                  \R                  " \
SL S5      S 5       5       rSrg)IEEEFormatTestCasei  c                 ~    S[         4S[        4S[        4S[        44 H  u  p[        R
                  " X5        M     g )Nz>dz<d)BE_DOUBLE_INFBE_DOUBLE_NANLE_DOUBLE_INFLE_DOUBLE_NANstructunpackr/   fmtdatas      r   test_double_specials_do_unpack1IEEEFormatTestCase.test_double_specials_do_unpack  s>    ////1IC MM#$	1r   c                 ~    S[         4S[        4S[        4S[        44 H  u  p[        R
                  " X5        M     g )Nz>f<f)BE_FLOAT_INFBE_FLOAT_NANLE_FLOAT_INFLE_FLOAT_NANr  r  r  s      r   test_float_specials_do_unpack0IEEEFormatTestCase.test_float_specials_do_unpack  s>    ....0IC MM#$	0r   Nzneeds _testcapic                    [         R                  nU R                  [        R                  " SS5      [        R                  " SU5      5        U R                  [        R                  " SS5      [        R                  " SU* 5      5        g )Nr  gnGgn)	_testcapiFLT_MAXr(   r  pack)r/   r  s     r   test_serialized_float_rounding1IEEEFormatTestCase.test_serialized_float_rounding  s]     ##T=96;;tW;UVT>:FKKwh<WXr   r   )r   r   r   r   r   rw  r  r  unittestskipIfr  r  r   r   r   r   r  r    si    % % % % __Y$&(9:Y ; Yr   r  c                       \ rS rSrS r\R                  \R                  " \	R                  S:H  S5      S 5       5       rS rS rSrg	)
FormatTestCasei  c                 j   U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        S	nU R                  [        US5      [        U5      5        U R                  [        US
5      [        U5      5        U R                  [        US5      [        U5      5        U R                  [        US5      [        U5      5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        [        SS5        S H  nU R                  [        [        SU5        U R                  [        [        SU5        U R                  [        [        SU5        U R                  [        [        SU5        U R                  [        [        SU5        U R                  [        [        SU5        U R                  [        [        SU5        M     U R                  [        [
        S5      S5        U R                  [        [
        S5      S 5        U R                  [        [        S5      S!5        U R                  [        [        S5      S"5        g )#Nr3   rm   z0.000000rC   0.0g{Gz?0.01gg%I$I,@->2r  z1.000000rA  z	-1.000000z fz	 1.000000z+fz	+1.000000%z-100.000000%r   r{   sbcdoxXrZ  rY  rR  rP  r   r   r1  r   r0  )r(   formatrd   r*   r+   r1  r0  )r/   rn   format_specs      r   test_formatFormatTestCase.test_format  s    	S):6 	R%0b)62c*F3 2A/3Q03Q03Q0S):6c*K8d+[9d+[9d+[9d+[9 	c*N; 	*fc37 %Kj&#{Cj&#{Cj&$Dj&%Ej&&+Fj&&+Fj&';G % 	S)51S)51S)51S)51r   short.applies only when using short float repr stylec                 @   [        [        SS9 nU H  nUR                  S5      (       a  M  UR                  5       nU(       d  M4  [	        [
        R                  UR                  S5      5      u  p4UR                  5       u  pV[        U5      nU R                  XW-  U5        U R                  XW* -  SU-   5        US:w  d  M  USS  nU R                  [        Xx5      U5        U R                  [        U* U5      SU-   5        M     S S S 5        g ! , (       d  f       g = f)Nutf-8encodingz--z->r  z%rrr   )
openformat_testfile
startswithstripmaprd   splitr)   r(   r  )	r/   testfilelinelhsrhsr  r   rm   fmt2s	            r   test_format_testfile#FormatTestCase.test_format_testfile  s     /G4 ??4((zz|syy$**T*:;99;#J  #.  r395$;qr7D$$VA_c:$$VQB%5sSyA ! 544s   B/DAD
Dc                     U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        g )Nw/^@z.4z123.5g
ףp=J@z	1.235e+03g@z	1.235e+04r(   r  r.   s    r   test_issue5864FormatTestCase.test_issue5864  sG    .8.<.<r   c                    U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS	5      S
5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S
5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS	5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        g )Ng     ^@00z123.0g(\^@00fz
123.34000000ez1.233400e+0200gz123.34z00.10fz123.3400000000z00.10ez1.2334000000e+02z00.10g01fg     ^z-123.0g(\^z-123.340000z-1.233400e+02z-123.34z-123.3400000000z-1.2334000000e+02r  r.   s    r   test_issue35560FormatTestCase.test_issue35560  sw   t,g6.=.?.913CD13EF18<.=-x8/?/A/;24EF24EF24GH2I>r   r   N)r   r   r   r   r  r   rw  r  
skipUnlessrd  float_repr_styler  r  r  r   r   r   r   r  r    sS    12f --8IKBK B&=
?r   r  c                   b    \ rS rSrS r\R                  " \" \SS5      S:H  S5      S 5       r	Sr
g	)
ReprTestCasei  c           
         [        [        R                  R                  [        R                  R	                  [
        5      S   SS5      SS9 nU Ha  nUR                  5       nU(       a  UR                  S5      (       a  M2  [        U5      nU R                  U[        [        U5      5      5        Mc     S S S 5        g ! , (       d  f       g = f)Nr   r   zfloating_points.txtr  r  #)r  ospathjoinr  __file__r  r  rK   r(   repr)r/   floats_filer  vs       r   	test_reprReprTestCase.test_repr  s    "'',,rww}}X6q9')3:<?J#zz|ts33J  DaM2 $< < <s   A(B??
Cr  rC   r  r  c           	         / SQnU H  nSU-   nU R                  U[        [        U5      5      5        U R                  U[        [        U5      5      5        U R                  [        [        U5      5      [        [        U5      5      5        U R                  [        [        U5      5      [        [        U5      5      5        M     g )N)r  1.0r  z0.02z0.03z0.04z0.05z
1.23456789z10.0z100.0z1000000000000000.0z9999999999999990.0z1e+16z1e+17z0.001z0.001001z0.00010000000000001z0.0001z9.999999999999e-05z1e-05z8.72293771110361e+25z7.47005307342313e+26z2.86438000439698e+28z8.89142905246179e+28z3.08578087079232e+35r  )r(   r  r)   rd   )r/   test_stringsr{   negss       r   test_short_reprReprTestCase.test_short_repr  s     D Aq5DQU1X/T4d#45T%(^Sq];T%+.E$K0@A r   r   N)r   r   r   r   r  r  r  getattrrd  r  r   r   r   r   r  r    s>    	3 &8"=HIK0BK0Br   r  c                       \ rS rSrS rS rS rS rS r\	R                  " \" \SS5      S	:H  S
5      S 5       r\	R                  " \" \SS5      S	:H  S
5      S 5       rS rS rSrg)RoundTestCaseiD  c                    U R                  [        [        [        5        U R                  [        [        [        * 5        U R                  [        [        [
        5        U R                  [        [        [        S5        U R                  [        [        [        * S5        U R                  [        [        [
        S5        U R                  [        [        SS5        g )Nr3   r  zceci n'est pas un integerrQ  y              ?)r*   r   roundr0  r+   r1  r,   r.   s    r   test_inf_nanRoundTestCase.test_inf_nanG  s    -4-5*eS1)UC5)USD#6)UC1LM)UD"5r   c                     U R                  [        [        S5      [        5        U R                  [        [        * S5      [        * 5        U R                  [        R
                  " [        [        S5      5      5        g )Nr   )r(   r  r0  r  mathr   r1  r.   s    r   test_inf_nan_ndigits"RoundTestCase.test_inf_nan_ndigitsP  sM    sA,tQ#.

5a=12r   c                 "   SSSSSSSS-  4 Hs  nU R                  [        S	U5      S	5        U R                  [        S
U5      S
5        U R                  [        SU5      S5        U R                  [        SU5      S5        Mu     U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        g )NiD  iE  i  il        l        r   rZ   r  w/^u <7~      gP.5_i,  i3  go!	i4  i5  gS    i;  gi    r(   r  r/   r%  s     r   test_large_nRoundTestCase.test_large_nU  s    sC%3?AU7A.8U8Q/:U5!_e4U61-v6	 @
 	uc*E2uc*E2w,g6uc*E2x-v6r   c                    SSSSSSSS-  * 4 Hs  nU R                  [        S	U5      S
5        U R                  [        SU5      S5        U R                  [        SU5      S
5        U R                  [        SU5      S
5        Mu     g )Niipi  i   l    r   rZ   r  r3   r  rQ  r  r  )assertFloatsAreIdenticalr  r  s     r   test_small_nRoundTestCase.test_small_na  s}    dGVX3wGA))%*;SA))%!*<dC))%q/3?))%*:C@	 Hr   c                 t    U R                  [        [        SS5        U R                  [        [        SS5        g )Ng3t<{r  gv;w0B)r*   r   r  r.   s    r   test_overflowRoundTestCase.test_overflowh  s*    ->-$?r   r  rC   r  r  c                 4   U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S	5        U R                  [        S
S5      S	5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        g )Ng      Crr   gBr  g      9@r@  g      4@g     A@g      D@g     F@g     K@g      N@g     @P@g     R@g      T@g     @U@g     W@g      Y@r  r.   s    r   test_previous_round_bugs&RoundTestCase.test_previous_round_bugsl  s     	0!4+	-/3)	+ 	tR$/tR$/tR$/tR$/tR$/tR$/tR$/tR%0r   c           	         [        S5       H  nUS-  nU R                  [        [        US5      5      [	        US5      5        U R                  [        [        US5      5      [	        US5      5        U R                  [        [        US5      5      [	        US5      5        U R                  [        [        US	5      5      [	        US
5      5        M     [        SSS5       H  nUS-  nU R                  [        [        US5      5      [	        US5      5        U R                  [        [        US5      5      [	        US5      5        U R                  [        [        US5      5      [	        US5      5        U R                  [        [        US	5      5      [	        US
5      5        M     [        S5       H  n[
        R
                  " 5       nU R                  [        [        US5      5      [	        US5      5        U R                  [        [        US5      5      [	        US5      5        U R                  [        [        US5      5      [	        US5      5        U R                  [        [        US	5      5      [	        US
5      5        M     g )Ni  g     @@z.0fr   z.1frr   z.2fr   z.3fr  r  i  r  )r  r(   r)   r  r  r  )r/   r$  rn   s      r   test_matches_float_format'RoundTestCase.test_matches_float_format~  s    sA%AU6!U#34eAqkBU6!U#34eAqkBU6!U#34eAqkBU6!U#34eAqkB  q$#A%AU6!U#34eAqkBU6!U#34eAqkBU6!U#34eAqkBU6!U#34eAqkB $ sAAU6!U#34eAqkBU6!U#34eAqkBU6!U#34eAqkBU6!U#34eAqkB r   c                   ^  U 4S jnS H  nSUSS  -   nSUSS  -   nU" U[         S5        U" U[         * S5        U" U[        S5        U" U[        * S5        U" U[         S	5        U" U[         * S5        U" U[        S
5        U" U[        * S
5        U" U[         S5        U" U[         * S5        U" U[        S5        U" U[        * S5        M     g )Nc                 n   > TR                  X-  X 5        U SS  n TR                  [        X5      X 5        g r   r  )r  r   expectedr/   s      r   test0RoundTestCase.test_format_specials.<locals>.test  s5    S[(8ab'CVE/?r   )z%ez%fz%gz%.0ez%.6fz%.20gz%#ez%#fz%#gz%#.20ez%#.15fz%#.3gz%+rr   z% r   r  r   +inf+nanz infz nan)r0  r1  )r/   r  r  pfmtsfmts   `    r   test_format_specials"RoundTestCase.test_format_specials  s    	@FC#ab'>D#ab'>Dc5!sdF#c5!sdE" sF#tV$sF#tV$ sF#tV$sF#tV$'Fr   c                 @   [        S5      [        SS 5      [        SS S94 H+  nU R                  US5        U R                  U[        5        M-     [        S5      [        SS 5      [        SS S94 H+  nU R                  US5        U R                  U[        5        M-     g )NgGz?)ndigitsrr   g{Gz?r   )r  r(   rF  rH  rh  s     r   test_None_ndigitsRoundTestCase.test_None_ndigits  s    teD$/tT1JJAQ"!!!S) K teD$/tT1JJAQ"!!!S) Kr   r   N)r   r   r   r   r  r  r  r  r  r  r  r  rd  r  r  r  r  r   r   r   r   r  r  D  s    63

7A@ &8"=HIK1K1  &8"=HIKCKC.%<*r   r  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)

InfNanTesti  c                 	   U R                  [        [        S5      5      5        U R                  [        [        S5      5      5        U R                  [        [        S5      5      5        U R                  [        [        S5      5      5        U R                  [        [        S5      5      5        U R                  [        [        S5      5      5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S	5      5      S5        U R                  [	        [        S
5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        g )Nr   r	  r  infinityz	+infinity	-infinityr0  +Infz-iNFInfinityz	+iNfInItYz	-INFINITYinfoz+infoz-infoinz+inz-ininfinitz+Infinz-INFI	infinitysz++Infz-+infz
+-infinityz
--Infinity)r  r   r)   r(   r  rd   r*   r+   r.   s    r   test_inf_from_strInfNanTest.test_inf_from_str  sJ   eEl+,eFm,-eFm,-eJ/01eK012eK012eEl+U3eFm,e4eFm,f5eJ/0%8eK0159eK016:eEl+U3eFm,e4eFm,f5eJ/0%8eK0159eK016:U5\*E2U6]+U3U6]+V4U:./7U;/0%8U;/0&9*eV4*eW5*eW5*eT2*eU3*eU3*eY7*eX6*eW5*e[9*eW5*eW5*e\:*e\:r   c                     U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        g )Ng      r   g      r  r(   r  rd   r.   s    r   test_inf_as_strInfNanTest.test_inf_as_str  sV    m,e4n-v6]+U3^,f5r   c                 z   U R                  [        [        S5      5      5        U R                  [        [        S5      5      5        U R                  [        [        S5      5      5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [	        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S	5        U R                  [        [        S
5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        g )Nr   r
  -nanr1  z+NAn-NaNnanaz+nanaz-nananaz+naz-naz++nanz-+NAN+-NaNz--nAn)r  r   r)   r(   r  rd   r*   r+   r.   s    r   test_nan_from_strInfNanTest.test_nan_from_str  s   eEl+,eFm,-eFm,-eEl+U3eFm,e4eFm,e4eEl+U3eFm,e4eFm,e4U5\*E2U6]+U3U6]+U3*eV4*eW5*eW5*eT2*eU3*eU3*eW5*eW5*eW5*eW5r   c                     U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        g )Ng      r   g      g      g      r!  r.   s    r   test_nan_as_strInfNanTest.test_nan_as_str  sZ    /0%80159./7/0%8r   c                     U R                  [        S[        S5      5      S5        U R                  [        S[        S5      5      S5        g )Nr  r   r  rA  r(   r	   r)   r.   s    r   test_inf_signsInfNanTest.test_inf_signs  s8    #uU|4c:#uV}5t<r   c                     U R                  [        S[        S5      5      S5        U R                  [        S[        S5      5      S5        g )Nr  r   r%  rA  r0  r.   s    r   test_nan_signsInfNanTest.test_nan_signs  s8    #uU|4c:#uV}5t<r   r   N)r   r   r   r   r  r"  r*  r-  r1  r4  r   r   r   r   r  r    s!    +;Z66:9==r   r  c                   ~    \ rS rSr\" S5      r\" S5      r\" S5      r\" S5      rS r	S r
S rS	 rS
 rS rS rSrg)HexFloatTestCasei%  z0x.fffffffffffff8p+1024z	0x1p-1022z0x0.0000000000001p-1022z0x0.0000000000001p0c                 &    U R                  X5        g r8   )r  )r/   rn   ys      r   	identicalHexFloatTestCase.identical+  s    %%a+r   c           	      T   U R                  U R                  [        SS5      5        U R                  U R                  [        SS5      5        U R                  U R                  [        SS5      5        U R                  U R
                  S[        SS5      [        SS5      -
  -  5        g )Nr  iiirX  i  i  )r:  MINr
   TINYEPSMAXr.   s    r   	test_endsHexFloatTestCase.test_ends.  su    txxsE!23tyy%U"34txxsC1txxU3%5c3%G!HIr   c                     / SQnU H)  n [        U5      nU R                  SU< SU< S35        M+     g ! [         a     M;  f = f)N)3infiz-Infinitz++infz-+Infz--nanr)  snanNaNsnnaannfnfinityinityiinity0xnanrC   r   zx1.0p0z0xX1.0p0z	+ 0x1.0p0z	- 0x1.0p0z0 x1.0p0z0x 1.0p0z	0x1 2.0p0z	+0x1 .0p0z0x1. 0p0z
-0x1.0 1p0z	-0x1.0 p0z
+0x1.0p +0z	0x1.0p -0z0x1.0p 0z
+0x1.0p+ 0z
-0x1.0p- 0z
++0x1.0p-0z	--0x1.0p0z
+-0x1.0p+0z	-+0x1.0p0z	0x1.0p++0z
+0x1.0p+-0z
-0x1.0p-+0z	0x1.0p--0z0x1.0.p0z0x.p0z0x1,p00x1pau   0x1p０u   ０x1p0u   0x１p0u	   0x1.０p0z0x1p0 
 0x2p0z0x1p0  0x1p0zExpected float.fromhex(z) to raise ValueError; got z instead)fromHexfailr+   )r/   invalid_inputsrn   results       r   test_invalid_inputs$HexFloatTestCase.test_invalid_inputs4  sP    4j  A:  		./9 :    s   5
AAc                     S[         4S[         * 4S[        4SSS/n/ SQnU H8  u  p4U H-  nU H$  n[        XS-   U-   5      nU R                  Xt5        M&     M/     M:     g )Nr   z	-Infinityr   )r  r  )z-0x.2g      )z-0.0rQ  )rC   r   	
z
 	)r0  r1  rO  r:  )r/   value_pairs
whitespaceinpr  leadtrailgots           r   test_whitespace HexFloatTestCase.test_whitespacet  sp    CL3$CL	
 )MC"'E!$*u"45CNN31 ( # )r   c                 :   U R                   nU R                  nU R                  nU R                  nU R	                  [        S5      [        5        U R	                  [        S5      [        5        U R	                  [        S5      [        * 5        U R	                  [        S5      [        5        U R	                  [        S5      [        5        U R	                  [        S5      [        5        U R	                  [        S5      [        * 5        U R	                  [        S5      [        * 5        U R	                  [        S	5      [        5        U R	                  [        S
5      [        5        U R	                  [        S5      [        5        U R	                  [        S5      [        5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S 5      S5        U R	                  [        S!5      S5        U R	                  [        S"5      S5        U R	                  [        S#5      S5        U R	                  [        S$5      S5        U R	                  [        S%5      S5        U R	                  [        S&5      S5        U R	                  [        S'5      S5        U R	                  [        S(5      S5        U R	                  [        S)5      S5        U R	                  [        S*5      S+5        U R	                  [        S,5      S+5        U R	                  [        S-5      S+5        U R	                  [        S.5      S+5        U R	                  [        S/5      S05        U R	                  [        S15      S05        U R	                  [        S25      S05        U R	                  [        S35      S05        U R	                  [        S45      S05        U R	                  [        S55      S05        U R	                  [        S65      S05        U R	                  [        S75      S05        [        S85      nU R	                  [        S95      U5        U R	                  [        S:5      U5        U R	                  [        S;5      U5        U R	                  [        S<5      U5        U R	                  [        S=5      U5        U R	                  [        S>5      U5        U R	                  [        S?5      U5        U R	                  [        S@5      U5        U R	                  [        SA5      U5        U R	                  [        SB5      U5        U R	                  [        S85      U5        U R	                  [        SC5      U5        U R	                  [        SD5      U5        U R	                  [        SE5      U5        U R	                  [        SF5      U5        U R	                  [        SG5      U5        U R	                  [        SH5      U5        U R	                  [        SI5      U5        U R	                  [        SJ5      U5        U R	                  [        SK5      U5        U R	                  [        SL5      U5        U R	                  [        SM5      U5        U R	                  [        SN5      U5        U R	                  [        SO5      U5        U R	                  [        SP5      U5        U R	                  [        SQ5      U5        U R	                  [        SR5      U5        U R	                  [        SS5      U5        U R	                  [        ST5      U5        U R	                  [        SU5      U5        U R	                  [        SV5      U5        U R	                  [        SW5      U5        U R                  [        [
        SX5        U R                  [        [
        SY5        U R                  [        [
        SZ5        U R                  [        [
        S[5        U R                  [        [
        S\5        U R                  [        [
        S]5        U R                  [        [
        S^5        U R                  [        [
        S_5        U R                  [        [
        S`5        U R                  [        [
        Sa5        U R                  [        [
        Sb5        U R                  [        [
        Sc5        U R                  [        [
        Sd5        U R                  [        [
        Se5        U R                  [        [
        Sf5        U R                  [        [
        Sg5        U R                  [        [
        Sh5        U R                  [        [
        Si5        U R                  [        [
        Sj5        U R	                  [        Sk5      U5        U R	                  [        Sl5      U* 5        U R	                  [        Sm5      U5        U R	                  [        Sn5      So5        U R	                  [        Sp5      So5        U R	                  [        Sq5      Sr5        U R	                  [        Ss5      So5        U R	                  [        St5      Sr5        U R	                  [        Su5      So5        U R	                  [        Sv5      So5        U R	                  [        Sw5      Sr5        U R	                  [        Sx5      Sr5        U R	                  [        Sy5      So5        U R	                  [        Sz5      Sr5        U R	                  [        S{5      Sr5        U R	                  [        S|5      Sr5        U R	                  [        S}5      So5        U R	                  [        S~5      Sr5        U R	                  [        S5      So5        U R	                  [        S5      So5        U R	                  [        S5      Sr5        U R	                  [        S5      Sr5        U R	                  [        S5      So5        U R	                  [        S5      Sr5        U R	                  [        S5      Sr5        U R	                  [        S5      U5        U R	                  [        S5      U* 5        U R	                  [        S5      U5        U R	                  [        S5      So5        U R	                  [        S5      So5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      Sr5        U R	                  [        S5      Sr5        U R	                  [        S5      U* 5        U R	                  [        S5      U* 5        U R	                  [        S5      U* 5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      SU-  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      USU-  -
  5        U R	                  [        S5      X-
  5        U R	                  [        S5      X-
  5        U R	                  [        S5      X-
  5        U R	                  [        S5      X-
  5        U R	                  [        S5      X-
  5        U R	                  [        S5      X-
  5        U R	                  [        S5      X-
  5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      U5        U R	                  [        S5      X-   5        U R	                  [        S5      X-   5        U R	                  [        S5      X-   5        U R	                  [        S5      X-   5        U R	                  [        S5      X-   5        U R	                  [        S5      X-   5        U R	                  [        S5      X-   5        U R	                  [        S5      USU-  -   5        U R	                  [        S5      SU-
  5        U R	                  [        S5      SU-
  5        U R	                  [        S5      SU-
  5        U R	                  [        S5      SU-
  5        U R	                  [        S5      SU-
  5        U R	                  [        S5      SUS-  -
  5        U R	                  [        S5      SUS-  -
  5        U R	                  [        S5      SUS-  -
  5        U R	                  [        S5      SUS-  -
  5        U R	                  [        S5      SUS-  -
  5        U R	                  [        S5      SUS-  -
  5        U R	                  [        S5      SUS-  -
  5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      S5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SU-   5        U R	                  [        S5      SSU-  -   5        U R	                  [        S5      SSU-  -   5        U R	                  [        S5      SSU-  -   5        U R	                  [        GS 5      SSU-  -   5        U R	                  [        GS5      SSU-  -   5        U R	                  [        GS5      SSU-  -   5        U R	                  [        GS5      SSU-  -   5        U R	                  [        GS5      SSU-  -   5        U R	                  [        GS5      SSU-  -   5        U R	                  [        GS5      SSU-  -   5        U R	                  [        GS5      So5        U R	                  [        GS5      So5        U R	                  [        GS	5      U5        U R	                  [        GS
5      So5        U R	                  [        GS5      So5        U R	                  [        GS5      U5        U R	                  [        GS5      So5        U R	                  [        GS5      U5        U R	                  [        GS5      So5        U R	                  [        GS5      So5        U R	                  [        GS5      Sr5        U R	                  [        GS5      So5        g (  Nr   r  z-INFiNfr  z	+INFINITYr  z	-iNFiNitYr   z+NaNr&  z-nAN1r  z+1z1.r  z1.0p001z01.0x1z0x1.z0x1.0z+0x1.00x1p00X1p00X1P00x1P0z0x1.p0z0x1.0p0z0x.1p4z0x.1p04z0x.1p004z0x1p+0z0x1P-0z+0x1p00x01p00x1p00z 0x1p0 z
 0x1p0z0x1p0 	0xap0g      $@0xAp00xaP00xAP00xbep0g     g@0xBep00xbEp0z0XBE0P-40xBEp0z0xB.Ep4z0x.BEp8z	0x.0BEp12z0x1.921fb54442d18p1z0x.006487ed5110b46p11z0x.00c90fdaa22168cp10z0x.01921fb54442d18p9z0x.03243f6a8885a3p8z0x.06487ed5110b46p7z0x.0c90fdaa22168cp6z0x.1921fb54442d18p5z0x.3243f6a8885a3p4z0x.6487ed5110b46p3z0x.c90fdaa22168cp2z0x3.243f6a8885a3p0z0x6.487ed5110b46p-1z0xc.90fdaa22168cp-2z0x19.21fb54442d18p-3z0x32.43f6a8885a3p-4z0x64.87ed5110b46p-5z0xc9.0fdaa22168cp-6z0x192.1fb54442d18p-7z0x324.3f6a8885a3p-8z0x648.7ed5110b46p-9z0xc90.fdaa22168cp-10z0x1921.fb54442d18p-11z0x1921fb54442d1.8p-47z0x3243f6a8885a3p-48z0x6487ed5110b46p-49z0xc90fdaa22168cp-50z0x1921fb54442d18p-51z0x3243f6a8885a30p-52z0x6487ed5110b460p-53z0xc90fdaa22168c0p-54z0x1921fb54442d180p-55z	-0x1p1024z	0x1p+1025z	+0X1p1030z
-0x1p+11000X1p123456789123456789z+0X.8p+1025z+0x0.8p1025z-0x0.4p1026z	0X2p+1023z	0x2.p1023z-0x2.0p+1023z
+0X4p+1022z0x1.ffffffffffffffp+1023z-0X1.fffffffffffff9p1023z0X1.fffffffffffff8p1023z+0x3.fffffffffffffp1022z0x3fffffffffffffp+9700x10000000000000000p960z-0Xffffffffffffffffp960z+0x1.fffffffffffffp+1023z-0X1.fffffffffffff7p1023z$0X1.fffffffffffff7fffffffffffffp10230x0p0r3   0x0p1000z	-0x0p1023rQ  0X0p1024z	-0x0p10250X0p20000x0p123456789123456789z-0X0p-0z
-0X0p-1000z	0x0p-1023z
-0X0p-1024z
-0x0p-1025z
-0x0p-1072z	0X0p-1073z
-0x0p-1074z	0x0p-1075z	0X0p-1076z
-0X0p-2000z-0x0p-123456789123456789z	0X1p-1075z
-0X1p-1075z-0x1p-123456789123456789z0x1.00000000000000001p-1075z-0x1.1p-1075z0x1.fffffffffffffffffp-1075z	0x1p-1076z	0X2p-1076z	0X3p-1076z	0x4p-1076z	0X5p-1076z	0X6p-1076r   z	0x7p-1076z	0X8p-1076z	0X9p-1076z	0xap-1076z	0Xbp-1076r  z	0xcp-1076z	0Xdp-1076z	0Xep-1076rs   z	0xfp-1076z
0x10p-1076z
-0x1p-1076z
-0X2p-1076z
-0x3p-1076z
-0X4p-1076z
-0x5p-1076z
-0x6p-1076rC  z
-0X7p-1076z
-0X8p-1076z
-0X9p-1076z
-0Xap-1076z
-0xbp-1076z
-0xcp-1076z
-0Xdp-1076z
-0xep-1076z
-0Xfp-1076z-0X10p-1076z0x0.ffffffffffffd6p-1022z0x0.ffffffffffffd8p-1022z0x0.ffffffffffffdap-1022z0x0.ffffffffffffdcp-1022z0x0.ffffffffffffdep-1022z0x0.ffffffffffffe0p-1022z0x0.ffffffffffffe2p-1022z0x0.ffffffffffffe4p-1022z0x0.ffffffffffffe6p-1022z0x0.ffffffffffffe8p-1022z0x0.ffffffffffffeap-1022z0x0.ffffffffffffecp-1022z0x0.ffffffffffffeep-1022z0x0.fffffffffffff0p-1022z0x0.fffffffffffff2p-1022z0x0.fffffffffffff4p-1022z0x0.fffffffffffff6p-1022z0x0.fffffffffffff8p-1022z0x0.fffffffffffffap-1022z0x0.fffffffffffffcp-1022z0x0.fffffffffffffep-1022z0x1.00000000000000p-1022z0x1.00000000000002p-1022z0x1.00000000000004p-1022z0x1.00000000000006p-1022z0x1.00000000000008p-1022z0x1.0000000000000ap-1022z0x1.0000000000000cp-1022z0x1.0000000000000ep-1022z0x1.00000000000010p-1022z0x1.00000000000012p-1022z0x1.00000000000014p-1022z0x1.00000000000016p-1022z0x1.00000000000018p-1022z0x0.fffffffffffff0p0z0x0.fffffffffffff1p0z0X0.fffffffffffff2p0z0x0.fffffffffffff3p0z0X0.fffffffffffff4p0z0X0.fffffffffffff5p0z0X0.fffffffffffff6p0z0x0.fffffffffffff7p0z0x0.fffffffffffff8p0z0X0.fffffffffffff9p0z0X0.fffffffffffffap0z0x0.fffffffffffffbp0z0X0.fffffffffffffcp0z0x0.fffffffffffffdp0z0X0.fffffffffffffep0z0x0.ffffffffffffffp0z0X1.00000000000000p0z0X1.00000000000001p0z0x1.00000000000002p0z0X1.00000000000003p0z0x1.00000000000004p0z0X1.00000000000005p0z0X1.00000000000006p0z0X1.00000000000007p0z(0x1.00000000000007ffffffffffffffffffffp0z0x1.00000000000008p0z&0x1.00000000000008000000000000000001p0rr   z0X1.00000000000009p0z0x1.0000000000000ap0z0x1.0000000000000bp0z0X1.0000000000000cp0z0x1.0000000000000dp0z0x1.0000000000000ep0z0X1.0000000000000fp0z0x1.00000000000010p0z0X1.00000000000011p0z0x1.00000000000012p0z0X1.00000000000013p0z0X1.00000000000014p0z0x1.00000000000015p0z0x1.00000000000016p0z0X1.00000000000017p0z(0x1.00000000000017ffffffffffffffffffffp0z0x1.00000000000018p0z&0X1.00000000000018000000000000000001p0z0x1.00000000000019p0z0X1.0000000000001ap0z0X1.0000000000001bp0z0x1.0000000000001cp0z0x1.0000000000001dp0z0x1.0000000000001ep0z0X1.0000000000001fp0z0x1.00000000000020p0z
0x.8p-1074z0x.80p-1074z0x.81p-1074z	0x8p-1078z0x8.0p-1078z0x8.1p-1078z
0x80p-1082z
0x81p-1082z.8p-1074z8p-1078z	-.8p-1074z+8p-1078)
r=  r@  r>  r?  r:  rO  r0  r1  r*   r   )r/   r=  r@  r>  r?  pis         r   test_from_hexHexFloatTestCase.test_from_hex  s   hhhhyyhh 	wu~s+wv,wv-wu~s+wz*C0w{+S1w{+cT2w{+cT2 	wu~s+wv,wv,wv, 	ws|S)wt}c*wt}c*wu~s+ww'-wt}c*wu~s+wu~s+wv,ww'-wx(#.ww'-ww'-ww'-ww'-wx(#.wy)3/wx(#.wy)3/wz*C0wx(#.wx(#.wx(#.wx(#.wx(#.wy)3/wz*C0wz*C0ww'.ww'.ww'.ww'.wx(%0wx(%0wx(%0wz*E2wx(%0wy)51wy)51w{+U3 *+w67<w67<w56;w45r:w45r:w45r:w45r:w34b9w34b9w34b9w45r:w34b9w45r:w45r:w56;w45r:w45r:w45r:w56;w45r:w45r:w56;w67<w67<w45r:w45r:w45r:w56;w56;w56;w56;w67< 	-+>-+>-+>-,?-2JK--@--@--@-+>-+>-.A-,?-2LM-2LM-2KL-2KL-2IJ-2KL-2KL 	w9:C@w9:SDAwEFL 	ww'-wz*C0w{+T2wz*C0w{+T2wz*C0w78#>wy)40w|,d3w{+S1w|,d3w|,d3w|,d3w{+S1w|,d3w{+S1w{+S1w|,d3w9:DA 	w{+S1w|,d3w9:DAw<=tDw~.6w<=tD 	w{+S1w{+S1w{+T2w{+T2w{+T2w{+QtV4w{+QtV4w{+QtV4w{+QtV4w{+QtV4w{+QtV4w{+QtV4w{+QtV4w{+QtV4w{+QtV4w|,af5w|,d3w|,d3w|,te4w|,te4w|,te4w|,bg6w|,bg6w|,bg6w|,bg6w|,bg6w|,bg6w|,bg6w|,bg6w|,bg6w|,bg6w}-r$w7 	w9:C$JGw9:C$JGw9:C$JGw9:C$JGw9:C$JGw9:C$JGw9:C$JGw9:C$JGw9:C$JGw9:C$JGw9:CHEw9:CHEw9:CHEw9:CHEw9:CHEw9:CHEw9:CHEw9:C@w9:C@w9:C@w9:C@w9:C@w9:C@w9:C@w9:C@w9:C@w9:CHEw9:CHEw9:CHEw9:CHEw9:CHEw9:CHEw9:CHEw9:C$JG 	w56C@w56C@w56C@w56C@w56C@w56CE	Bw56CE	Bw56CE	Bw56CE	Bw56CE	Bw56CE	Bw56CE	Bw56<w56<w56<w56<w56<w56<w56<w56<w56<w56<w56<w56<wIJ	w56<wGHu	w56C@w56C@w56C@w56C@w56C@w56C@w56C@w56C@w56C@w56C@w56C@w56C@w56C@w56C@w56C@wIJ3w	 w56AcE	BwGH1S5y	"w56AcE	Bw56AcE	Bw56AcE	Bw56AcE	Bw56AcE	Bw56AcE	Bw56AcE	Bw56AcE	B 	w|,c2w}-s3w}-t4w{+S1w}-s3w}-t4w|,c2w|,d3wz*C0wy)3/w{+T2wz*C0r   c           	      *   S n[         [        U R                  U R                  U R                  U R                  -
  U R                  S4 H4  nU R                  X!" U5      5        U R                  U* U" U* 5      5        M6     SS Kn[        S5       Hn  nUR                  " SS5      nUR                  " 5       nUR                  " SS/5      n U[        Xe5      -  nU R                  U[        [        U5      5      5        Mp     g ! [         a     M  f = f)	Nc                 *    [        [        U 5      5      $ r8   )rO  toHexr   s    r   	roundtrip2HexFloatTestCase.test_roundtrip.<locals>.roundtrip  s    58$$r   r3   r   r  iPi  r  rA  )r1  r0  r@  r=  r>  r:  r  r  	randrangechoicer
   rO  r  r   )r/   r  rn   r  r$  emr{   s           r   test_roundtripHexFloatTestCase.test_roundtrip  s    	% sDHHdhh0BDIIsSANN1il+NNA2y!}- T
 	uA  -AAsDk*A5eAkM q'%("34  ! s   D
DDc                     " S S[         5      nUR                  SR                  5       5      nU R                  [	        U5      U5        U R                  US5         " S S[         5      nUR                  SR                  5       5      nU R                  [	        U5      U5        U R                  US5        U R                  [        USS5      S	5        g )
Nc                       \ rS rSrS rSrg))HexFloatTestCase.test_subclass.<locals>.Fi  c                 2    [         R                  XS-   5      $ r   r   r   s     r   r   1HexFloatTestCase.test_subclass.<locals>.F.__new__  s    }}S!)44r   r   N)r   r   r   r   r   r   r   r   r   r   r    s    5r   r   r>  r   c                       \ rS rSrS rSrg)*HexFloatTestCase.test_subclass.<locals>.F2i  c                     SU l         g )Nbarfoor   s     r   r   3HexFloatTestCase.test_subclass.<locals>.F2.__init__  s	     r   r  Nr   r   r   r   F2r    s    !r   r  r  noner  )r)   fromhexhexr   rk   r(   r  )r/   r   rm   r  s       r   test_subclassHexFloatTestCase.test_subclass  s    	5 	5 IIsiik"d1gq!C 	! 	! JJyy{#d1gr"C E62E:r   r   N)r   r   r   r   rO  r@  r=  r>  r?  r:  rA  rS  ra  r  r  r  r   r   r   r   r7  r7  %  sT    
+
,C
+
C,-D
'
(C,J=:@24i1V	5*;r   r7  __main__)>r!  rS  r  r  rd  r  r   r  r  r   test.support.testcaser   test.support.numbersr   r   r  r   r   r	   r
   r  ri   r)   r0  r1  r  dirnamer  curdirtest_dirr  r  r   r   TestCaser   r  hasattrrz  r  re   reversedr  r  r  r  r  r  r  r  r  r  rw  r  r  r  rO  r  r  r7  r   mainr   r   r   <module>r     s     	  
     9 / .  ElEl 77??8$1		'',,x5PQ	E 		 	E	>)) E	>P 
WUO46NO=h// = P= 4h}-.3h}-."Xl+,"Xl+,Y** Y2a?X&& a?F>B8$$ >B@ 	v*H%%'> v* v*v`="" `=F --		y;.0A0A y;x zMMO Y.  Is   H HH