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   N/opt/alphahud/venv/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Ad   ig@)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    