�
���e�
� �� � d dl mZ d dlmZ d dlmZmZmZ d dlm Z d dl
mZ d dlm
Z
dZdZd Zeeef Zd
edefd�Z G d
� de e � Zed
edede
e fd�� Zed
edede
e fd�� Zd� Zy)� )�Decimal)�fabs)�Any�Union�overload)�BaseMatcher)�Description)�MatcherzJon ReidzCopyright 2011 hamcrest.orgzBSD, see License.txt�value�returnc � � t | t t t f� ry t | � dz dz
dz }y# t
$ r Y yt $ r Y yw xY w)zFConfirm that 'value' can be treated numerically; duck-test accordinglyTr � F)�
isinstance�float�complex�intr �ArithmeticError� Exception)r �_s �C/usr/lib/python3/dist-packages/hamcrest/library/number/iscloseto.py� isnumericr sR � ��%�%��#�.�/���
�%�[�1�_�q�
�A�%����� ��� ���s �3 � A �A �A c �p � � e Zd Zdededdfd�Zdedefd�Zdedefd�Zded e ddf� fd
�Z
de ddfd�Z� xZS )
� IsCloseTor �deltar Nc �x � t |� st d� �t |� st d� �|| _ || _ y )NzIsCloseTo value must be numericzIsCloseTo delta must be numeric)r � TypeErrorr r )�selfr r s r �__init__zIsCloseTo.__init__ s8 � �����=�>�>�����=�>�>���
���
� �itemc �V � t |� sy| j |� | j k S )NF)r �_diffr �r r s r �_matcheszIsCloseTo._matches( s$ � ������z�z�$��4�:�:�-�-r c �2 � t || j z
� S �N)r r r# s r r" |