o
    ¯©i¿  ã                   @   s\   d dl Z d dlZd dlmZ d dlmZmZ d dlZd dl	m
Z
mZmZ G dd„ deƒZdS )é    N)ÚTestCase)Ú	long_typeÚ	text_type)ÚNaNÚPosInfÚNegInfc                   @   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 )Ú	TestFloatc                 C   s\   t tfD ]}|  tjtj|dddd|¡ qtjtjtdddd}|  d| |k¡ d S )NT©Ú	allow_nanr   )r   r   ÚassertEqualÚjsonÚloadsÚdumpsr   Ú
assertTrue)ÚselfÚinfÚnan© r   úO/home/ubuntu/.local/lib/python3.10/site-packages/simplejson/tests/test_float.pyÚtest_degenerates_allow	   s   "z TestFloat.test_degenerates_allowc              	   C   s0   t ttfD ]}|  t tj|dd¡d ¡ qd S )NT)Ú
ignore_nan)r   r   r   r   r   r   r   )r   Úfr   r   r   Útest_degenerates_ignore   s   ÿz!TestFloat.test_degenerates_ignorec                 C   sV   t ttfD ]}| jttj|dd qdD ]}| jttj|dd |  ttj|¡ qd S )NFr	   )ÚInfinityz	-Infinityr   )r   r   r   ÚassertRaisesÚ
ValueErrorr   r   r   )r   r   Úsr   r   r   Útest_degenerates_deny   s   þzTestFloat.test_degenerates_denyc              	   C   sp   dt jt jd t jd dfD ]'}|  tt |¡ƒ|¡ |  t t |¡¡|¡ |  t tt |¡ƒ¡|¡ qd S )NgÃõðŠûØAéd   iœÿÿÿgÍÌÌÌÌÌ@)ÚmathÚpir   Úfloatr   r   r   r   ©r   Únumr   r   r   Útest_floats   s   
ÿüzTestFloat.test_floatsc              	   C   sz   dt dƒddfD ]2}|  t |¡t|ƒ¡ |  tt |¡ƒ|¡ |  t t |¡¡|¡ |  t tt |¡ƒ¡|¡ qd S )Né   l        l            )r   r   r   r   ÚstrÚintr   r   r"   r   r   r   Ú	test_ints"   s   üzTestFloat.test_intsc                 C   sL   z
t jjt jjg}W n ty   ddg}Y nw |  t t |¡¡|¡ d S )Ng       gÿÿÿÿÿÿï)	ÚsysÚ
float_infoÚminÚmaxÚAttributeErrorr   r   r   r   )r   Úfloat_ranger   r   r   Útest_float_range)   s   ÿzTestFloat.test_float_rangeN)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r$   r(   r/   r   r   r   r   r      s    r   )r)   r   Úunittestr   Úsimplejson.compatr   r   Ú
simplejsonr   Úsimplejson.decoderr   r   r   r   r   r   r   r   Ú<module>   s    