File: //proc/thread-self/root/usr/local/lib/python3.7/test/__pycache__/test_complex.cpython-37.pyc
B
��g�v � @ s� d dl Z d dlmZ d dlmZmZ d dlmZ d dlmZm Z m
Z
d dlZed�Z
ed�ZG dd � d e j�Zd
d� Zedkr�e� dS )
� N)�support)�VALID_UNDERSCORE_LITERALS�INVALID_UNDERSCORE_LITERALS)�random)�atan2�isnan�copysign�inf�nanc @ s e Zd Zdd� Zd=dd�Zdd� Zd>dd �Zd
d� Zdd
� Zdd� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zejd d!� �Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zejd*d+� �Zd,d-� Zd.d/� Zd0d1� Zejd2d3� �Zejd4d5� �Zejd6d7� �Zejd8d9� �Z d:d;� Z!d<S )?�ComplexTestc C s� t |t�rdt |t�r>tj�| |j|j� tj�| |j|j� q�tj�| |j|� tj�| |jd� n@t |t�r�tj�| ||j� tj�| d|j� ntj�| ||� d S )Ng )�
isinstance�complex�unittest�TestCase�assertAlmostEqual�real�imag)�self�a�b� r �-/usr/local/lib/python3.7/test/test_complex.pyr s
zComplexTest.assertAlmostEqual��&�.>c C s` t |�t |�kr|| }}|dkr.t |�|k S |dkrBt |�|k S | �t || | �|k � dS )z+Return true iff floats x and y "are close".r N)�abs�
assertTrue)r �x�y�epsr r r �assertCloseAbs s
zComplexTest.assertCloseAbsc C st d}t |�st |�r*t |�r^t |�r^dS n4||kr^|dkr>dS td|�td|�krVdS |d7 }| �|�||�� dS )a# assert that floats x and y are identical, in the sense that:
(1) both x and y are nans, or
(2) both x and y are infinities, with the same sign, or
(3) both x and y are zeros, with the same sign, or
(4) x and y are both finite and nonzero, and x == y
z&floats {!r} and {!r} are not identicalNg g �?z: zeros have different signs)r r �fail�format)r r r �msgr r r �assertFloatsAreIdentical+ s z$ComplexTest.assertFloatsAreIdenticalc C s( | � |j|j|� | � |j|j|� dS )z.Return true iff complexes x and y "are close".N)r r r )r r r r r r r �assertCloseB s zComplexTest.assertClosec C sp || }|dkr:|| }| � ||� |�|�}| � ||� |dkrl|| }| � ||� |�|�}| � ||� dS )z8Compute complex z=x*y, and check that z/x==y and z/y==x.r N)r# �__truediv__)r r r �z�qr r r � check_divG s
zComplexTest.check_divc s8 dd� t dd�D �� � fdd�� D �}x&|D ]}x|D ]}| �||� q6W q,W | �tdd�d� | �tdd�d� x0t d �D ]$}| �tt� t� �tt� t� �� q|W | �ttjd
d� | �t�dd
�d
� | �ttjd
d� xVdtftdfttfgD ]<\}}tdd�t||� }| � t
|j�� | � t
|j�� q�W d S )Nc S s g | ]}t |��qS r )�float)�.0�ir r r �
<listcomp>V s z,ComplexTest.test_truediv.<locals>.<listcomp>���� c s g | ]}� D ]}t ||��qqS r )r
)r) r r )�simple_realr r r+ W s gZb���tiy �? g��N�~h�d y �? �?y y @ y �? �r )
�ranger'