B
    u9aw                 @   s.   d dl Z G dd de jZedkr*e   dS )    Nc               @   s<   e Z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rXxvtddD ]h}| t||dd | t||d|| | t|dd|d | t|dd|d qW x0tddD ]"}| t||d|| |  qW d}x4tddD ]&}| td	|| |d
kr|d	 }qW xhtfD ]^}xXttddttdd D ]8}||}x(tddD ]}|| }t|| q0W qW qW x\tt fD ]P}xHtddD ]:}|d}||d  }	|	dkrqr| tt||	 qrW qbW d\}
}d\}}d\}}| j}|t krd}
| j}n"|tkrd}n|tkrd\}}xt|
|d D ]}xt||d D ]}xxt||d D ]f}|dkrD|t ksf|dk r| t	t|||| qD|t||||t|||||  qDW q0W qW d S )Nii  r      id               i
      g      $@)i   )   )ir	   )r      )
floatrangeassertEqualpowintlistZassertRaisesZeroDivisionErrorZassertAlmostEqual	TypeError)selftypeiZpow2Z	othertypeiijZjjZzeroZexpZilZihZjlZjhklZkhZasseqk r   /usr/lib/python3.7/test_pow.pypowtest   s^    
" "





zPowTest.powtestc             C   s   |  t d S )N)r    r   )r   r   r   r   test_powint;   s    zPowTest.test_powintc             C   s   |  t d S )N)r    r   )r   r   r   r   test_powfloat>   s    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 xtdd	D ]}xtd
dD ]}xtdd	D ]r}|d
kr|d
kr|  t||| t||| |d
kr|d
kr|  tt||| tt||| qW qW qtW d S )Nr      ir   r   ir
   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 )Nr   )r   otherr   r   r   __rpow__a   s    z1PowTest.test_bug643260.<locals>.TestRpow.__rpow__N)__name__
__module____qualname__r)   r   r   r   r   TestRpow`   s   r-   r   )r   r-   r   r   r   test_bug643260_   s    zPowTest.test_bug643260c             C   s   | j }d}|t|dd |t|dd x2tddD ]$}|t|t||d@ rTdpVd q6W xPtdd	D ]B}td
| }|d rdpd}|t||| |t|| | qjW ||d d S )Ng      gNݯbg      ?gNݯir
   r   r   r   r   g       @)r   r   r   r   )r   eqabnZfivetoZexpectedr   r   r   test_bug705231e   s    $zPowTest.test_bug705231N)	r*   r+   r,   r    r!   r"   r'   r.   r3   r   r   r   r   r      s   6r   __main__)ZunittestZTestCaser   r*   mainr   r   r   r   <module>   s   w