Sindbad~EG File Manager
a
��gŀ � @ s� d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dlm Z m
Z
mZ d dlZe
d�Ze
d�ZG dd � d e j�Zed
kr�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� Zd d!� Zejd"d#� �Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zejd,d-� �Zd.d/� Zd0d1� Zd2d3� Zejd4d5� �Zejd6d7� �Zejd8d9� �Z ejd:d;� �Z!d<d=� Z"d>S )A�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 )N� )�
isinstance�complex�unittest�TestCase�assertAlmostEqual�real�imag)�self�a�b� r �-/usr/local/lib/python3.9/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�yZepsr 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 identicalNr � �?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 �assertCloseC 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_divH s
zComplexTest.check_divc s8 dd� t dd�D �� � fdd�� D �}|D ]}|D ]}| �||� q2q*| �tdd�d� | �tdd�d� t d �D ]$}| �tt� t� �tt� t� �� qr| �ttjd
d� | �ttdd� | � t�d
d
�d� | �ttjd
d� dt
ft
dft
t
ffD ]<\}}tdd�t||� }| �t|j
�� | �t|j�� q�d S )Nc S s g | ]}t |��qS r )�float)�.0�ir r r �
<listcomp>W � z,ComplexTest.test_truediv.<locals>.<listcomp>���� c s g | ]}� D ]}t ||��qqS r )r �r+ r r �Zsimple_realr r r- X r. gZb���ti� �? �N�~h�d � �? �?� yZb���ti �?� @ y �? �r )�ranger) r r �assertRaises�ZeroDivisionErrorr&