o
    g                     @   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   sz  |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fD ])}ttddttdd D ]}||}tddD ]}|| }t|| qqqst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r7|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intlistassertRaisesZeroDivisionErrorZassertAlmostEqual	TypeError)selftypeiZpow2Z	othertypeZiijZjjZzeroexpZilZihZjlZjhZklZkhZasseqk r   C/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/test_pow.pypowtest   sn    
 

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   r      i)r   r   r   r   )r   r   r   r   r   r   r    
test_otherB   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__b   s   z1PowTest.test_bug643260.<locals>.TestRpow.__rpow__N)__name__
__module____qualname__r.   r   r   r   r    TestRpowa   s    r2   r   )r   r2   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_bug705231f   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    q1 sw   Y  qqd S )Ni2   )r5   mr   r   r)   r   r*   r   ii  )r   ZsubTestmathgcdr   r   r   
ValueError)r   r5   r:   invr   r   r    test_negative_exponent{   s.   zPowTest.test_negative_exponentN)
r/   r0   r1   r!   r%   r'   r,   r3   r8   r@   r   r   r   r    r      s    6r   __main__)r<   ZunittestZTestCaser   r/   mainr   r   r   r    <module>   s     