
    <e                     j    d dl Z d dlZ G d dej                  Zedk    r ej                     dS dS )    Nc                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
PowTestc                 .   |t           k    rt          dd          D ]}|                     t           ||          d          d           |                     t           ||          d           ||                     |                     t           |d          d           |d                     |                     t           |d          d           |d                     t          dd          D ]5}|                     t           ||          d          ||z  |z             6d}t          dd          D ]1}|                     t          d	|          |           |d
k    r|d	z  }2t	          t          dd                    t	          t          dd                    z   D ]c} ||          }t          |d          }t          dd          D ]5}|                     t          ||          t          ||                      6dt          t           fD ]X}t          dd          D ]E} |d          } ||dz             }	|	dk    r#|                     t          t          ||	           FYd\  }
}d\  }}d\  }}| j        }|t           k    r
d}
| j        }n|t          k    rd}n|t          k    rd\  }}t          |
|dz             D ]}t          ||dz             D ]}t          ||dz             D ]}|dk    r|t           k    s|dk     r-|                     t          t           ||          ||           F |t           ||          ||          t           ||          |           ||          z             d S )Ni  r      id               
   g      $@)i   )   )r   r   )r      )
floatrangeassertEqualpowlistassertAlmostEqualintassertRaisesZeroDivisionError	TypeError)selftypeipow2iiinvjj	othertypezeroexpilihjljhklkhasseqjks                      $/usr/lib/python3.11/test/test_pow.pypowtestzPowTest.powtest   s   5==5$'' ; ;  TT!WWa!444  TT!WWa$$q'':::  TT!WWa$$q'':::  TT!WWa$$q''::::4%% 9 9  TT!WWa!A#a%8888D1b\\ + +  QD11177DFT%Q--((4a+=+== G GT!WW"bkkQ-- G GB**3r2;;C"FFFFG e 	E 	EI1c]] E EtAww y4(((!88!!"3S$DDDDE BBB 5==B*EES[[BBS[[FBr2a4 
	 
	A2r!t__ 	 	r2a4  AAvv5==AEE --idd1ggq!LLL$Q!,,QNNDDGG3  	
	 
	    c                 :    |                      t                     d S N)r2   r   r   s    r1   test_powintzPowTest.test_powint;   s    Sr3   c                 :    |                      t                     d S r5   )r2   r   r6   s    r1   test_powfloatzPowTest.test_powfloat>   s    Ur3   c                    |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     |                      t          dd          dz  t          ddd                     t          dd	          D ]}t          d
d          D ]}t          dd	          D ]}|d
k    r<|d
k    r6|                      t          ||          |z  t          |||                     |d
k    rV|d
k    rP|                      t          t          |          |          |z  t          t          |          ||                     d S )Nr	      ir   r   r      r      i)r   r   r   r   )r   r    r/   r0   s       r1   
test_otherzPowTest.test_otherA   s   QqAs1Qqzz222QqBAa444QqBAa444RQBq444RRR"666QqBAa444QqAs1Qqzz222QqBAa444QqBAa444RQBq444RRR"666QqBAa444sB 	 	A1a[[  r2 
 
AAvv!q&&((!HHqL!AJJ   Avv!q&&((AqMMA-AqOO  
	 	r3   c                    dd l }|                     t          dd          ddz             d}t          d          D ]2}|                    dd          }|                    dd          }|                    d|dz
  z  d|z            }|                    d|          }||z
  }t          |||          }	t          |||          t          |||          z  |z  }
|	|
k    r)|                     d	|d
d|d
d|d
d|	d
d|
d

           t          |||z  |          }t          t          |||          ||          }||k    r)|                     d	|d
d|d
d|d
d|d
d|d

           4d S )Nr   r   iP  r   l   'J)r   r   i@B za=xz b1=z b2=z got1=z got2=z got3=z got4=)randomr   r   r   	randrangefail)r   rC   primer    abpowerbb1b2got1got2got3got4s                r1   test_big_expzPowTest.test_big_exp_   s   QU
333 r 	I 	IA  w//A%%dE22F  vz!2AK@@A!!!Q''BRBq!U##Dq"e$$s1b%'8'885@Dt||		GQGGGBGGGBGGGDGGGdGGGHHHq"r'5))Ds1b%(("e44Dt||		GQGGGBGGGBGGGDGGGdGGGHHH	I 	Ir3   c                 :     G d d          }d  |            z   d S )Nc                       e Zd Zd ZdS )(PowTest.test_bug643260.<locals>.TestRpowc                     d S r5    )r   others     r1   __rpow__z1PowTest.test_bug643260.<locals>.TestRpow.__rpow__w   s    tr3   N)__name__
__module____qualname__rW   rU   r3   r1   TestRpowrS   v   s#            r3   r[   rU   )r   r[   s     r1   test_bug643260zPowTest.test_bug643260u   sC    	 	 	 	 	 	 	 	 	

r3   c           	         | j         }d} |t          |d          d            |t          |d          d           t          dd          D ]0} |t          |t          |                    |dz  rdpd           1t          dd	          D ]R}t          d
|z            }|dz  rdpd} |t          ||          |            |t          ||           |           S ||d           d S )Ng      gNݯbg      ?gNݯr   r>   r   r   r   r   g       @)r   r   r   r   )r   eqrG   rI   nfivetoexpecteds          r1   test_bug705231zPowTest.test_bug705231{   s      	3q(S!!!
3q)c"""sB 	8 	8ABs1eAhhQ4!637777q# 	* 	*A16]]F |,3HBs1f~~x(((Bs1vg))))
8Sr3   c                 T   t          dd          D ]}t          dd          D ] }|                     ||          5  |dk    rt          j        ||          dk    rt	          |d|          }|                     |||z             |                     ||z  dz
  |z  d           |                     t	          |d|          t	          |d|                     |                     t	          |d	|          t	          |d
|                     |                     t	          |d|          t	          |d|                     n|                     t                    5  t	          |d|           d d d            n# 1 swxY w Y   |                     t                    5  t	          |d|           d d d            n# 1 swxY w Y   |                     t                    5  t	          |d|           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Ni2   )rG   mr   r   r   r<   r   r=   r	   ii  )r   subTestmathgcdr   r   r   
ValueError)r   rG   re   r#   s       r1   test_negative_exponentzPowTest.test_negative_exponent   s
   sB 	- 	-A3^^ - -\\A\++ - -Avv$(1a..A"5"5 "!Rmm((cAg666((#'A+):A>>> ((QACAGGG((QACAGGG((Qq)9)93sD!;L;LMMMM "..z:: * *2qMMM* * * * * * * * * * * * * * *!..z:: * *2qMMM* * * * * * * * * * * * * * *!..z:: - -5!,,,- - - - - - - - - - - - - - -%- - - - - - - - - - - - - - --	- 	-s~   D HE<	0H<F  HF H!F?	3H?GHGH$H	6HHH	H
HH HN)rX   rY   rZ   r2   r7   r9   r@   rP   r\   rb   rj   rU   r3   r1   r   r      s        3 3 3j      <I I I,    *- - - - -r3   r   __main__)rg   unittestTestCaser   rX   mainrU   r3   r1   <module>ro      ss     b- b- b- b- b-h b- b- b-J zHMOOOOO r3   