o
    HXh                     @   s:   d dl Z d dlZG dd dejZedkre  dS dS )    Nc                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )PowTestc              
   C   s~  |t krtddD ]4}| t||dd | t||d|| | t|dd|d | t|dd|d q	tddD ]}| t||d|| |  qCd}tddD ]}| td	|| |d
kro|d	 }q\ttddttdd D ] }||}t|d}tddD ]}| t||t||  qq~tt fD ]"}tddD ]}|d}||d  }	|	dkrq| tt||	 qqd\}
}d\}}d\}}| j}|t krd}
| j}n|tkrd}n|tkrd\}}t|
|d D ]G}t||d D ]=}t||d D ]3}|dkr9|t ks|dk r%| t	t|||| q|t||||t|||||  qqqd S )Nii  r      id               
   g      $@)i   )   )r	   r
   )r      )
floatrangeassertEqualpowlistZassertAlmostEqualintassertRaisesZeroDivisionError	TypeError)selftypeiZpow2iiinvZjjZ	othertypeZzeroexpZilZihZjlZjhklZkhZasseqjk r"   7/opt/python-3.10.19/usr/lib/python3.10/test/test_pow.pypowtest   sj     

zPowTest.powtestc                 C      |  t d S N)r$   r   r   r"   r"   r#   test_powint;      zPowTest.test_powintc                 C   r%   r&   )r$   r   r'   r"   r"   r#   test_powfloat>   r)   zPowTest.test_powfloatc              
   C   s   |  tddd tddd |  tddd tddd |  tddd tddd |  tddd tddd |  tddd tddd |  tddd tddd |  tddd tddd |  tddd tddd |  tddd tddd |  tddd tddd |  tddd tddd |  tddd tddd tdd	D ]D}td
dD ]<}tdd	D ]4}|d
kr|d
kr|  t||| t||| |d
kr|d
kr|  tt||| tt||| qqqd S )Nr      ir   r   r	      r      i)r   r   r   r   )r   r   r    r!   r"   r"   r#   
test_otherA   s:   
zPowTest.test_otherc                 C   s   G dd d}d |   d S )Nc                   @   s   e Zd Zdd ZdS )z(PowTest.test_bug643260.<locals>.TestRpowc                 S   s   d S r&   r"   )r   otherr"   r"   r#   __rpow__a   s   z1PowTest.test_bug643260.<locals>.TestRpow.__rpow__N)__name__
__module____qualname__r2   r"   r"   r"   r#   TestRpow`   s    r6   r"   )r   r6   r"   r"   r#   test_bug643260_   s   zPowTest.test_bug643260c                 C   s   | j }d}|t|dd |t|dd tddD ]}|t|t||d@ r)dp*d qtdd	D ]!}td
| }|d r@dpAd}|t||| |t|| | q2||d d S )Ng      gNݯbg      ?gNݯr	   r.   r   r   r   r   g       @)r   r   r   r   )r   eqabnZfivetoZexpectedr"   r"   r#   test_bug705231e   s   "zPowTest.test_bug705231c                 C   s  t ddD ]}t ddD ]}| j||d |dkrgt||dkrgt|d|}| |||  | || d | d | t|d|t|d| | t|d	|t|d
| | t|d|t|d| nQ| t t|d| W d    n1 s}w   Y  | t t|d| W d    n1 sw   Y  | t t|d| W d    n1 sw   Y  W d    n1 sw   Y  qqd S )Ni2   )r9   mr   r   r   r,   r   r-   r   ii  )r   ZsubTestmathgcdr   r   r   
ValueError)r   r9   r>   r   r"   r"   r#   test_negative_exponentz   s0   zPowTest.test_negative_exponentN)
r3   r4   r5   r$   r(   r*   r0   r7   r<   rB   r"   r"   r"   r#   r      s    5r   __main__)r?   ZunittestZTestCaser   r3   mainr"   r"   r"   r#   <module>   s     