
    0hh                     6   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
  \R                  R                  r\R                  R                  r " S S\5      r " S S\ R$                  5      r " S S	\ R$                  5      r\S
:X  a  \ R,                  " 5         gg)    N)Decimal)Fractionc                   V   ^  \ rS rSrU 4S jr\rS r\r\S 5       r	\S 5       r
SrU =r$ )DummyIntegral   c                 4   > [        [        TU ]	  U5      5      $ N)r   super__mul__)selfother	__class__s     @/opt/python-3.13.8/usr/lib/python3.13/test/test_numeric_tower.pyr   DummyIntegral.__mul__   s    UW_U344    c                     [         $ r	   )NotImplementedr   r   s     r   __truediv__DummyIntegral.__truediv__   s    r   c                     [        U 5      $ r	   r   r   s    r   	numeratorDummyIntegral.numerator   s    T""r   c                     [        S5      $ )N   r   r   s    r   denominatorDummyIntegral.denominator!   s    Qr    )__name__
__module____qualname____firstlineno__r   __rmul__r   __rtruediv__propertyr   r   __static_attributes____classcell__)r   s   @r   r   r      s=    5HL# #    r   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)HashTest&   c                     U R                  [        U5      [        U5      SR                  X5      5        U R                  X5        g )Nz&got different hashes for {!r} and {!r})assertEqualhashformat)r   xys      r   check_equal_hashHashTest.check_equal_hash'   s9    a$q'AHHN	Pr   c                 L    U R                  SS5        U R                  SS5        g )NFr   Tr   )r3   r   s    r   
test_boolsHashTest.test_bools-   s"    eQ'dA&r   c                 @   [        SS5       HT  nU R                  U[        U5      5        U R                  U[        U5      5        U R                  U[	        U5      5        MV     [        S5       GHy  nSU-  S-
  nU[        [        U5      5      :X  a8  U R                  U[        U5      5        U R                  U* [        U5      * 5        U R                  U[        U5      5        U R                  U[	        U5      5        U R                  U* [        U* 5      5        U R                  U* [	        U* 5      5        SU-  nU R                  U[        U5      5        U R                  U* [        U5      * 5        U R                  U[        U5      5        U R                  U[	        U5      5        U R                  U* [        U* 5      5        U R                  U* [	        U* 5      5        GM|     [        S5       H  n[        R                  " S5      n[        R                  " SU-  * SU-  5      nU R                  U[        U5      5        U R                  U[	        U5      5        U[        [        U5      5      :X  d  M  U R                  U[        U5      5        M     g )Ni  d      r   i,  
   )ranger3   floatDFintrandom	randrange)r   in_es        r   test_integersHashTest.test_integers1   s    ud#A!!!U1X.!!!QqT*!!!QqT* $ sA1qACaM!%%aq2%%qb58)4!!!QqT*!!!QqT*!!1"ae,!!1"ae,1A!!!U1X.!!1"uQxi0!!!QqT*!!!QqT*!!1"ae,!!1"ae,! & tA  %A  "a%Q/A!!!QqT*!!!QqT*CaM!%%aq2 r   c                    U R                  SS5        U R                  S[        S5      5        U R                  S[        S5      5        U R                  S[        S5      5        U R                  S[        S5      5        U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        [	        S5       H  n[
        R
                  " 5       [        R                  " [
        R
                  " 5       S-  S	-
  5      -  nU R                  U[        R                  " U5      5        U R                  U[        R                  " U5      5        M     g )
N               r   z-0.0inf-infr9   g      i@g      Y@)	r3   r?   r@   r>   r=   rB   mathexp
from_float)r   rF   r1   s      r   test_binary_floatsHashTest.test_binary_floatsW   s     	c4( 	c1Q4(dAaD)dAfI.c1Q4( 	eElAeH5eFmQvY7tA$((6==?5+@5+H"IIA!!!Q\\!_5!!!Q\\!_5 r   c           
          SSSSSS[        S5      [        S5      /nS	 H'  nU H  nU R                  U[        X25      5        M      M)     g )
NrK   rL         ?g      g      ?g    rM   rN   )rL   rK   )r>   r3   complex)r   test_valueszerovalues       r   test_complexHashTest.test_complexl   sP     D#tWgU|U6]4 D$%%eWU-AB % r   c                 6   / SQnU H'  nU R                  [        U5      [        S5      5        M)     U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        U R                  [        S	5      [        S
5      5        U R                  [        S5      [        S
5      5        U R                  [        S5      [        S
5      5        U R                  [        S5      [        S
5      5        U R                  [        S5      [        S
5      5        U R                  [        S5      [        S
5      5        g )N)0z-0z0.0z-0.0e10z000e-10r   z1.00r   z1.00000z-1.00z-1.00000123e2i0  1230e112300z12300.0z12300.00z	12300.000)r3   r?   )r   zerosrX   s      r   test_decimalsHashTest.test_decimalsw   s    9D!!!D'1Q40  	ai1.a	lAaD1aj!B%0a
mQrU3aj!E(3ak1U84aj!E(3a	lAeH5a
mQuX6anah7r   c           	      *  ^ U R                  [        [        S[        5      5      [        5        U R                  [        [        SS[        -  5      5      [        * 5        U R                  [        [        S[        -  S5      5      S5        U R                  [        [        [        * S5      5      S5        [        R
                  " [        S5      [        S5      5      mU R                  [        U4S j5        U R                  [        T5      S5        g )	Nr   r^         r   r;   c                  6   > T R                   T R                  -  $ r	   )r   r   )r1   s   r   <lambda>)HashTest.test_fractions.<locals>.<lambda>   s    Q[[-Fr   g      ?)
r.   r/   r@   _PyHASH_MODULUS_PyHASH_INF_from_coprime_intsr   assertRaises	TypeErrorr>   )r   r1   s    @r   test_fractionsHashTest.test_fractions   s     	a?34kBaAo$567+Fa/ 1156:a 0!45q9
   q!1=3CD)%FGq3'r   c                 `     " S S5      nSU" 5       1nU R                  [        U5      S5        g )Nc                        \ rS rSrS rS rSrg)6HashTest.test_hash_normalization.<locals>.HalibutProxy   c                     [        S5      $ Nhalibut)r/   r   s    r   __hash__?HashTest.test_hash_normalization.<locals>.HalibutProxy.__hash__   s    I&r   c                     US:H  $ rw   r    r   s     r   __eq__=HashTest.test_hash_normalization.<locals>.HalibutProxy.__eq__   s    	))r   r    N)r!   r"   r#   r$   ry   r|   r(   r    r   r   HalibutProxyrt      s    '*r   r~   rx   r   )r.   len)r   r~   r1   s      r   test_hash_normalization HashTest.test_hash_normalization   s.    	* 	* 'Q#r   r    N)r!   r"   r#   r$   r3   r6   rH   rR   rZ   rc   rp   r   r(   r    r   r   r+   r+   &   s,    '$3L6*	C8$($r   r+   c                        \ rS rSrS rS rSrg)ComparisonTest   c                    [        S5      [        S5      S[        SS5      SSSS	S
[        S5      [        S5      [        S5      [        SS5      [        S5      [        SS5      [        SS5      S[        S5      /n[        U5       HW  u  p#XS-   S   HG  nU R	                  X45        U R                  X45        U R                  XC5        U R                  XC5        MI     MY     g )NrN   z-1e425000000girg   gQ	rK   g      Tz1.2z1.3z1.4i_5 i z1.414213562373095048801688724iC i; i:iJ gvܼ5Jiinfinityr   )r>   r?   r@   	enumerate
assertLessassertLessEqualassertGreaterassertGreaterEqual)r   rW   rD   firstseconds        r   test_mixed_comparisons%ComparisonTest.test_mixed_comparisons   s    
 &Mnc1IeHeH%Lff-.feijM%( "+.HA%cd+.$$U3""61''6	 , /r   c                    SnSnSS[        S5      [        S5      [        S5      4 H%  nU R                  X5        U R                  X15        M'     SS[        S5      [        S5      [        S5      4 HG  nU R	                  X5        U R	                  X15        U R	                  X#5        U R	                  X25        MI     SS[        S5      [        S5      [        S5      SS[        S5      [        S5      [        S5      U4 Hv  n[
        R                  [
        R                  [
        R                  [
        R                  4 H1  nU R                  [        XAU5        U R                  [        XCU5        M3     Mx     g )Ny      ?        yQ	@r   rU   r;   g       @)r@   r?   rV   r.   assertNotEqualoperatorleltgegtrn   ro   )r   zwvops        r   rZ   ComparisonTest.test_complex   s,    C1qtWQZ/AQ"Q" 0 C1qtWQZ/A%%%%	 0 S!A$!gajS!A$!gaj!5Akk8;;X[[H!!)RA6!!)RA6 I5r   r    N)r!   r"   r#   r$   r   rZ   r(   r    r   r   r   r      s    7>7r   r   __main__)unittestrB   rO   sysr   decimalr   r?   	fractionsr   r@   	hash_infomodulusrk   rM   rl   rA   r   TestCaser+   r   r!   mainr    r   r   <module>r      s       
    # --''mm C  (E$x   E$N57X&& 57p zMMO r   