B
    v9aÂ  ã               @   sÎ   d dl mZmZ d dlmZ d dlmZmZ dZdZ	dZ
dZG dd	„ d	eƒZd
ZdZde ZG dd„ deeƒZedƒZedƒZedƒZG dd„ deeƒZG dd„ dƒZG dd„ deeƒZG dd„ deeƒZdS )é    )ÚEnumÚIntEnum)Úisnan)ÚPyTestÚCTesté   l        l            l               @ c               @   s   e Zd ZeZeZeZe	Z
dS )ÚBigNumN)Ú__name__Ú
__module__Ú__qualname__ÚSMALLÚsmallÚBIGÚbigÚHUGEÚhugeÚREALLY_HUGEÚreally_huge© r   r   ú/usr/lib/python3.7/test_enum.pyr   
   s   r   g–´â
¿@g½Â‚û!	@é   c               @   s   e Zd ZeZeZeZdS )ÚFloatNumN)	r	   r
   r   ÚEÚeÚPIÚpiÚTAUÚtaur   r   r   r   r      s   r   Úinfz-infÚnanc               @   s   e Zd ZeZeZeZdS )ÚWierdNumN)	r	   r
   r   ÚINFr   ÚNEG_INFÚneg_infÚNANr   r   r   r   r   r       s   r    c               @   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 )ÚTestEnumc             C   sX   xRt D ]J}|  |  |¡t|jƒ¡ |  t|  |¡ƒ|¡ |  |  |  |¡¡|¡ qW d S )N)r   ÚassertEqualÚdumpsÚreprÚvalueÚfloatÚloads)ÚselfÚenumr   r   r   Útest_floats$   s    
zTestEnum.test_floatsc          	   C   s˜   x’t tdƒD ]„\}}|  |  |¡|¡ t|ƒs^|  t|  |¡ƒ|¡ |  |  |  |¡¡|¡ q|  tt|  |¡ƒƒ¡ |  t|  |  |¡¡ƒ¡ qW d S )N)ÚInfinityz	-InfinityÚNaN)Úzipr    r&   r'   r   r*   r+   Ú
assertTrue)r,   r-   Zexpectedr   r   r   Útest_weird_floats*   s    zTestEnum.test_weird_floatsc             C   sX   xRt D ]J}|  |  |¡t|jƒ¡ |  t|  |¡ƒ|¡ |  |  |  |¡¡|¡ qW d S )N)r   r&   r'   Ústrr)   Úintr+   )r,   r-   r   r   r   Ú	test_ints4   s    
zTestEnum.test_intsc          	   C   sî   |   |  ttƒ¡tttttgƒ¡ |   |  	|  ttƒ¡¡ttƒ¡ |   |  tt
ƒ¡ttttgƒ¡ |   |  	|  tt
ƒ¡¡tt
ƒ¡ |   |  ttƒ¡d¡ |   |  	|  ttƒ¡¡d d… ttƒd d… ¡ |  t|  	|  ttƒ¡¡d ƒ¡ d S )Nz[Infinity, -Infinity, NaN]r   )r&   r'   Úlistr   r4   r   r   r   r   r+   r   r   r   r   r    r2   r   )r,   r   r   r   Ú	test_list:   s    

zTestEnum.test_listc             C   s  t \}}}}t\}}}t\}}	}
|d|d|d|d|d|d|d|d|	d	|
d
i
}|  |  |¡¡}|  |ttƒ d¡ |  |ttƒ d¡ |  |tt	ƒ d¡ |  |tt
ƒ d¡ |  |ttƒ d¡ |  |ttƒ d¡ |  |ttƒ d¡ |  |d d¡ |  |d	 d	¡ |  |d
 d
¡ d S )NÚtinyÚlargeÚlargerÚlargestzEuler's numberr   r   r/   z	-Infinityr0   )r   r   r    r+   r'   r&   r4   r   r   r   r   r(   r   r   r   )r,   ÚsÚbÚhÚrr   ÚpÚtÚiÚjÚnÚdÚndr   r   r   Útest_dict_keysI   s"    

zTestEnum.test_dict_keysc             C   sæ   t tjtjtjtjtjtjtj	t
jt
jt
jd
}|  |  |¡¡}|  |d t¡ |  |d t¡ |  |d t¡ |  |d t¡ |  |d t¡ |  |d t¡ |  |d t¡ |  |d	 t¡ |  |d
 t¡ |  t|d ƒ¡ d S )N)
r9   r:   r;   r<   r   r   r   rC   rD   rE   r9   r:   r;   r<   r   r   r   rC   rD   rE   )Údictr   r   r   r   r   r   r   r   r   r    r   r#   r   r+   r'   r&   r   r   r   r   r   r   r   r!   r"   r2   r   )r,   rF   rG   r   r   r   Útest_dict_values^   s,    
zTestEnum.test_dict_valuesN)	r	   r
   r   r.   r3   r6   r8   rH   rJ   r   r   r   r   r%   "   s   
r%   c               @   s   e Zd ZdS )Ú
TestPyEnumN)r	   r
   r   r   r   r   r   rK   w   s    rK   c               @   s   e Zd ZdS )Ú	TestCEnumN)r	   r
   r   r   r   r   r   rL   x   s    rL   N)r-   r   r   Zmathr   Ztest.test_jsonr   r   r   r   r   r   r   r   r   r   r*   r   r!   r"   r$   r    r%   rK   rL   r   r   r   r   Ú<module>   s$   U