
    dafb                     L   d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZ  ej                  d      ZdZd ZdZdddd	Zej-                  d
      j/                  d      Z ed      Z ed      Z G d dej6                        Zedk(  r ej<                          yy)    N)FloatFloatSubclassFloatSubclass2	BadIndex2	BadFloat2IndexBadIndexBadFloat)import_helper	_testcapi   g      @?g      p>g      <         doubleIEEEinfnanc                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)CAPIFloatTestc                 <   t         j                  }| j                   |d             | j                   |t        d                   | j	                   |t                            | j	                   |d             | j	                   |t                            y N      @   )r   float_check
assertTruer   assertFalser   object)selfchecks     4/root/Python-3.12.4/Lib/test/test_capi/test_float.py
test_checkzCAPIFloatTest.test_check   sm    %%d$mD123uw(q"vx)    c                 <   t         j                  }| j                   |d             | j                   |t	        d                   | j                   |t                            | j                   |d             | j                   |t                            y r   )r   float_checkexactr   r   r   r   r   )r    
checkexacts     r"   test_checkexactzCAPIFloatTest.test_checkexact*   sr    //

4()M$$789EG,-A'FH-.r$   c                 &   t         j                  }| j                   |d      d       | j                   |d      d       | j                  t        |d       | j                  t        |d       | j                   |t        d            d       | j                   |t        d            d       | j                   |t        d      d d       d       | j                  t        |t        d      d d d          | j                  t        |d       y )	Nz4.25r   s   4.25z4.25 s   4.25 s   4.255r   )r   float_fromstringassertEqualassertRaises
ValueError	bytearray
memoryview	TypeError)r    
fromstrings     r"   test_fromstringzCAPIFloatTest.test_fromstring6   s    //
F+T2G,d3*j(;*j)<Ig$67>Jw$78$?Jx$8"$=>E)ZG1DSqS1IJ)Z6r$   c                 T    t         j                  }| j                   |d      d       y )Nr   )r   float_fromdoubler,   )r    
fromdoubles     r"   test_fromdoublezCAPIFloatTest.test_fromdoubleI   s"    //
D)40r$   c                    t         j                  } G d d      }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |dd	z        t        dd	z               | j                   |t	        d            d       | j                   |t        d            d       | j                   |t                     d
       | j                  t        |t                      | j                  t        |t                      | j                  t        | |              | j                  t              5  | j                   |t                     d       d d d        | j                  t              5  | j                   |t                     d       d d d        t!        j"                         5  t!        j$                  dt               | j                  t        |t                      d d d        | j                  t        |t'                      | j                  t        |t(               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   \xY w)Nc                       e Zd Zd Zy).CAPIFloatTest.test_asdouble.<locals>.BadFloat3c                     t         N)RuntimeError)r    s    r"   	__float__z8CAPIFloatTest.test_asdouble.<locals>.BadFloat3.__float__T   s    ""r$   N)__name__
__module____qualname__r>    r$   r"   	BadFloat3r:   S   s    #r$   rC   r   g      *   g      E@r*   r   i  g     X@      ?error)r   float_asdoubler,   floatr   r   r   r-   r1   r	   r
   r=   assertWarnsDeprecationWarningr   r   warningscatch_warningssimplefilterr   NULL)r    asdoublerC   s      r"   test_asdoublezCAPIFloatTest.test_asdoubleO   s   ++	# 	# 	$.$."t,"t,!T'*E!T'N;-"56=."67>%'*C0)Xxz:)Xxz:,)+>01 	8Xik2B7	801 	:Xik2D9	:$$& 	I!!'+=>0(IKH	I 	)Xvx8)Xt4	8 	8	: 	:	I 	Is$   3!I+1!I7.:J+I47J Jc                 n    t         j                  }| j                   |       t        j                         y r<   )r   float_getinfor,   sys
float_info)r    getinfos     r"   test_getinfozCAPIFloatTest.test_getinfon   s#    ))CNN3r$   c                     t         j                  }| j                   |       t        j                  j
                         y r<   )r   float_getmaxr,   rS   rT   max)r    getmaxs     r"   test_getmaxzCAPIFloatTest.test_getmaxt   )    ''3>>#5#56r$   c                     t         j                  }| j                   |       t        j                  j
                         y r<   )r   float_getminr,   rS   rT   min)r    getmins     r"   test_getminzCAPIFloatTest.test_getminz   r\   r$   c                    t         j                  }| j                   |ddt              d       | j                   |ddt              d       | j                   |ddt              d       | j                   |ddt              d       | j                   |ddt              d	       | j                   |ddt              d
       y )Nr         ?   > r      ?  r      ?          >     ?         ?)r   
float_packr,   
BIG_ENDIANLITTLE_ENDIAN)r    packs     r"   	test_packzCAPIFloatTest.test_pack   s    ##aj18<aj13CDaj19	;am4h?am46FGam49	;r$   c                    t         j                  }| j                   |dt              d       | j                   |dt              d       | j                   |dt              d       | j                   |dt              d       | j                   |dt              d       | j                   |dt              d       y )Nrd   rc   re   rf   rg   rh   ri   )r   float_unpackr,   rk   rl   )r    unpacks     r"   test_unpackzCAPIFloatTest.test_unpack   s    ''*5s; 0*=sC @*M	-8#> 0-@#F @-P	r$   c                    t         j                  }t         j                  }d}dd|dt        j                  g}t
        r|j                  t        t        f       |D ]  }dD ]  }|dk(  r||k(  rt        |   }t        t        fD ]  }| j                  |||      5   ||||      }	 ||	|      }
t        j                  |      r(| j                  t        j                  |
      ||
f       nB|dk  r+| j                  t        j                  |
||	      ||
f       n| j!                  |
|       d d d           y # 1 sw Y   xY w)
Ng      0FrE   rc   g$I$I?r   r   )valuesizeendianr   )rel_tol)r   rj   rp   mathpiHAVE_IEEE_754extendINFNANEPSILONrk   rl   subTestisnanr   iscloser,   )r    rm   rq   largevaluesrt   ru   rw   rv   datavalue2s              r"   test_pack_unpack_roundtripz(CAPIFloatTest.test_pack_unpack_roundtrip   s8   ##''sE5$''2MM3*% 	<E" <19%!$-)=9 
<FEVL 	<#D%8!'f!5::e, OODJJv,>P!AX OODLLPW,X-2FO= !,,VU;	< 	<
<<	<	< 	<s   BD<	<EN)r?   r@   rA   r#   r(   r3   r7   rP   rV   r[   ra   rn   rr   r   rB   r$   r"   r   r      s9    */7&15>477;<r$   r   __main__)rx   rS   unittestrK   test.test_capi.test_getargsr   r   r   r   r   r   r	   r
   test.supportr   import_moduler   rN   rk   rl   r~   rH   __getformat__
startswithrz   r|   r}   TestCaser   r?   mainrB   r$   r"   <module>r      s     
  3 3 3 ''M''4	 
 ##H-88@ElElU<H%% U<p zHMMO r$   