a
    nÝEb]¡  ã                   @   s(  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z
d dlZd dlZd dlm  mZ d dlmZmZmZ d dlmZmZmZmZmZmZmZmZ d dlmZ dd„ Z ej!g d¢d�dd	„ ƒZ"ej!dd
gd�dd„ ƒZ	dd„ Z#G dd„ dƒZ$G dd„ dƒZ%G dd„ dƒZ&dS )é    N)ÚIS64ÚPY310Úis_platform_windows)Ú	DataFrameÚDatetimeIndexÚIndexÚNaTÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangec                 C   s   dd„ |   ¡ D ƒS )zÉ
    Sanitize dictionary for JSON by converting all keys to strings.

    Parameters
    ----------
    d : dict
        The dictionary to convert.

    Returns
    -------
    cleaned_dict : dict
    c                 S   s   i | ]\}}t |ƒ|“qS © )Ústr)Ú.0ÚkÚvr   r   ú_/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/io/json/test_ujson.pyÚ
<dictcomp>0   ó    z_clean_dict.<locals>.<dictcomp>)Úitems©Údr   r   r   Ú_clean_dict#   s    r   )NÚsplitÚrecordsÚvaluesÚindex)Úparamsc                 C   s   | j S ©N©Úparam©Úrequestr   r   r   Úorient3   s    r#   Tc                 C   s   | j S r   r   r!   r   r   r   Únumpy:   s    r$   c                 C   s>   t j}| d u s:|dks:| du r&|d u s:tƒ r4t j}nt j}|S )Nr   T)ÚnpÚint64r   Zint32Zintp)r$   r#   Údtyper   r   r   Úget_int32_compat_dtype?   s     r(   c                   @   sœ  e Zd Zejje dd�dd„ ƒZej dddg¡dd	„ ƒZ	ej d
g d¢¡dd„ ƒZ
dd„ Zdd„ Zdd„ Zej dddg¡dd„ ƒZej dejej g¡dd„ ƒZdd„ Zdd„ Zd d!„ Zd"d#„ Zej d$d%d&ejd'ejjed(d�d)�ejd*ejjed(d�d)�g¡d+d,„ ƒZd-d.„ Zej d/d0d1g¡d2d3„ ƒZd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Zd<d=„ Z ej d>g d?¢¡d@dA„ ƒZ!dBdC„ Z"dDdE„ Z#ej dFg dG¢¡dHdI„ ƒZ$dJdK„ Z%dLdM„ Z&ej dNe' (¡ e' (dOdPdQ¡e' (dRdSdTdU¡g¡dVdW„ ƒZ)dXdY„ Z*dZd[„ Z+ej d\e,e- .d]¡e-j/e-j0e-j0 g¡d^d_„ ƒZ1d`da„ Z2dbdc„ Z3ddde„ Z4dfdg„ Z5dhdi„ Z6ej djg dk¢¡dldm„ ƒZ7ej dndodpg¡dqdr„ ƒZ8ej dsg dt¢¡dudv„ ƒZ9ej dwg dx¢¡dydz„ ƒZ:ej d{g d|¢¡d}d~„ ƒZ;ej dd€d�g¡d‚dƒ„ ƒZ<d„d…„ Z=d†d‡„ Z>dˆd‰„ Z?ej dŠd‹dŒg¡d�dŽ„ ƒZ@ej d�d�d‘g¡d’d“„ ƒZAej d”g d•¢¡d–d—„ ƒZBd˜d™„ ZCej dšg d›¢¡dœd�„ ƒZDdždŸ„ ZEd d¡„ ZFd¢d£„ ZGd¤d¥„ ZHd¦d§„ ZId*S )¨ÚTestUltraJSONTestsz$not compliant on 32-bit, xref #15865)Úreasonc                 C   sØ  t  d¡}tj|dd�}t |¡}|dks.J ‚t  d¡}tj|dd�}|dksRJ ‚t |¡}|dkshJ ‚t  d	¡}tj|dd�}|d
ksŒJ ‚t |¡}|dks¢J ‚t  d¡}tj|dd�}|dksÆJ ‚t |¡}|dksÜJ ‚t  d¡}tj|dd�}|dk�sJ ‚t |¡}|dk�sJ ‚t  d¡}tj|dd�}|dk�s@J ‚t |¡}|dk�sXJ ‚t  d¡}tj|dd�}|dk�s~J ‚t |¡}|dk�s–J ‚t  d¡}tj|dd�}|dk�s¼J ‚t |¡}|dk�sÔJ ‚d S )Nz	1337.1337é   ©Údouble_precisiongç§èˆä”@z0.95é   ú1.0ç      ð?z0.94z0.9gÍÌÌÌÌÌì?z1.95z2.0g       @z-1.95z-2.0g       Àz0.995é   z0.9995é   z0.99999999999999944)ÚdecimalÚDecimalÚujsonÚencodeÚdecode©ÚselfÚsutÚencodedÚdecodedr   r   r   Útest_encode_decimalL   sN    















z&TestUltraJSONTests.test_encode_decimalÚensure_asciiTFc                    s>   d‰d}d}‡ ‡fdd„}||ƒ ||dd� ||dd� d S )	Nz"A string \ /   
  	 </script> &z,"A string \\ \/ \b \f \n \r \t <\/script> &"z;"A string \\ \/ \b \f \n \r \t \u003c\/script\u003e \u0026"c                    sJ   t jˆfdˆ i|¤Ž}|| ks"J ‚ˆt |¡ks4J ‚ˆt  |¡ksFJ ‚d S )Nr>   ©r5   r6   ÚjsonÚloadsr7   )Zexpected_outputÚencode_kwargsÚoutput©r>   Ústring_inputr   r   ÚhelperŒ   s    ÿÿÿz@TestUltraJSONTests.test_encode_string_conversion.<locals>.helperF)Zencode_html_charsTr   )r9   r>   Znot_html_encodedZhtml_encodedrF   r   rD   r   Útest_encode_string_conversion„   s    ÿ
z0TestUltraJSONTests.test_encode_string_conversionÚlong_number)lüÿÿÿZ:�`¡7{ g#å_œçt¦ÂgÔŸpAª‚¿Ác                 C   s0   d|i}t j|dd�}t  |¡}||ks,J ‚d S )NÚar+   r,   ©r5   r6   r7   )r9   rH   r:   r;   r<   r   r   r   Útest_double_long_numbersž   s    
z+TestUltraJSONTests.test_double_long_numbersc              	   C   s~   t j}dD ]n}t ||¡r
t ||¡�> t t d¡¡dks@J ‚tjddd�dksVJ ‚W d   ƒ n1 sj0    Y   qzq
d S )N)zit_IT.UTF-8ZItalian_Italygòì‘ÄûË‡Lz4.78T©Zprecise_floatg…ëQ¸@)ÚlocaleÚ
LC_NUMERICÚtmZcan_set_localeZ
set_localer5   rA   Údumps)r9   Zlc_categoryZ
new_localer   r   r   Útest_encode_non_c_locale¨   s    4z+TestUltraJSONTests.test_encode_non_c_localec                 C   s0   ddi}t  |¡}t j|dd�}||ks,J ‚d S )NrI   g=
×£p=@TrL   rJ   r8   r   r   r   Ú test_decimal_decode_test_precise³   s    
z3TestUltraJSONTests.test_decimal_decode_test_precisec                 C   sx   d}|t  t  |¡¡ksJ ‚d}|t  t  |¡¡ks8J ‚d}|t  t  |¡¡ksTJ ‚d}t |t  t  |¡¡¡stJ ‚d S )NgœWw'&l¡7g0Žä.ÿ++g¹j7­Ö–¶gó¡?>¬úÓ¡)r5   r7   r6   r%   Zallclose)r9   Únumr   r   r   Ú#test_encode_double_tiny_exponential¹   s    z6TestUltraJSONTests.test_encode_double_tiny_exponentialÚunicode_keyÚkey1u   Ø¨Ù†c                 C   s$   |di}|t  t  |¡¡ks J ‚d S )NZvalue1©r5   r7   r6   )r9   rU   Zunicode_dictr   r   r   Ú"test_encode_dict_with_unicode_keysÃ   s    z5TestUltraJSONTests.test_encode_dict_with_unicode_keysÚdouble_inputc                 C   sJ   t  |¡}t|dƒtt |¡dƒks(J ‚t|dƒtt  |¡dƒksFJ ‚d S ©Né   )r5   r6   Úroundr@   rA   r7   )r9   rY   rC   r   r   r   Útest_encode_double_conversionÈ   s    
z0TestUltraJSONTests.test_encode_double_conversionc                 C   s   d}t  |¡}|dksJ ‚d S )Nr0   r/   ©r5   r6   )r9   Zdecimal_inputrC   r   r   r   Útest_encode_with_decimalÐ   s    
z+TestUltraJSONTests.test_encode_with_decimalc                 C   sd   g gggd }t  |¡}|t |¡ks*J ‚|t  |¡ks<J ‚t |¡}t |t j|d|j	d�¡ d S )Né   T©r$   r'   )
r5   r6   r@   rA   r7   r%   ÚarrayrO   Úassert_numpy_array_equalr'   )r9   Znested_inputrC   r   r   r   Ú"test_encode_array_of_nested_arraysÖ   s    

ÿz5TestUltraJSONTests.test_encode_array_of_nested_arraysc                 C   sZ   g d¢d }t  |¡}|t |¡ks(J ‚|t  |¡ks:J ‚t t |¡t j|dd�¡ d S )N)çcATšÞ@re   re   re   é
   T©r$   ©	r5   r6   r@   rA   r7   rO   rc   r%   rb   )r9   Zdoubles_inputrC   r   r   r   Útest_encode_array_of_doublesâ   s    
ÿz/TestUltraJSONTests.test_encode_array_of_doublesc                 C   s€   d}t j|dd�}|t |¡ks$J ‚|t  |¡ks6J ‚dD ]@}t j||d�}t||ƒ}|t |¡kshJ ‚|t  |¡ks:J ‚q:d S )Ng² )>@r+   r,   )r2   é	   )r5   r6   r@   rA   r7   r\   )r9   rY   rC   r-   Zrounded_inputr   r   r   Útest_double_precisioní   s    
z(TestUltraJSONTests.test_double_precisionÚinvalid_valr`   éÿÿÿÿÚ9zFailing on Python 3.10 GH41940)ZmarksNc                 C   sZ   d}t |tƒrtnt}d}tj||d�� tj||d� W d   ƒ n1 sL0    Y  d S )NgöF7Ýš>@z`Invalid value '.*' for option 'double_precision', max is '15'|an integer is required \(got type ©Úmatchr,   )Ú
isinstanceÚintÚ
ValueErrorÚ	TypeErrorÚpytestÚraisesr5   r6   )r9   rl   rY   Úexpected_exceptionÚmsgr   r   r   Útest_invalid_double_precisionû   s    ÿz0TestUltraJSONTests.test_invalid_double_precisionc                 C   sB   d}t  |¡}|t |¡ks J ‚|t  |¡ks2J ‚|dks>J ‚d S )NzA string \ /   
  	z"A string \\ \/ \b \f \n \r \t"r?   )r9   rE   rC   r   r   r   Útest_encode_string_conversion2  s
    
z1TestUltraJSONTests.test_encode_string_conversion2Úunicode_inputu@   RÃ¤ksmÃ¶rgÃ¥s Ø§Ø³Ø§Ù…Ø© Ø¨Ù† Ù…Ø­Ù…Ø¯ Ø¨Ù† Ø¹ÙˆØ¶ Ø¨Ù† Ù„Ø§Ø¯Ù†õ
   Ã¦Â—Â¥Ã‘Âˆc                 C   s<   t  |¡}t  |¡}|t |¡ks&J ‚|t |¡ks8J ‚d S r   ©r5   r6   r7   r@   rP   rA   )r9   r{   ÚencÚdecr   r   r   Útest_encode_unicode_conversion  s    

z1TestUltraJSONTests.test_encode_unicode_conversionc                 C   s:   d}t  |¡}t  |¡}||ks$J ‚|t |¡ks6J ‚d S )Nú)r5   r6   r7   r@   rP   )r9   Zescaped_inputr~   r   r   r   r   Útest_encode_control_escaping'  s
    

z/TestUltraJSONTests.test_encode_control_escapingc                 C   s@   d}t  |¡}t  |¡}|t |¡ks*J ‚|t |¡ks<J ‚d S )Nu   Ã°Â�Â�Â†r}   )r9   Zsurrogate_inputr~   r   r   r   r   Ú"test_encode_unicode_surrogate_pair/  s
    

z5TestUltraJSONTests.test_encode_unicode_surrogate_pairc                 C   s@   d}t  |¡}t  |¡}|t |¡ks*J ‚|t |¡ks<J ‚d S )Nu   Ã°Â‘Â€Â°TRAILINGNORMALr}   ©r9   Zfour_bytes_inputr~   r   r   r   r   Útest_encode_unicode_4bytes_utf87  s
    

z2TestUltraJSONTests.test_encode_unicode_4bytes_utf8c                 C   s@   d}t  |¡}t  |¡}|t |¡ks*J ‚|t |¡ks<J ‚d S )Nu   Ã³Â¿Â¿Â¿TRAILINGNORMALr}   r„   r   r   r   Ú&test_encode_unicode_4bytes_utf8highest?  s
    

z9TestUltraJSONTests.test_encode_unicode_4bytes_utf8highestc                 C   sj   g ggg}t  |¡}|t |¡ks&J ‚|t |¡ks8J ‚|t  |¡ksJJ ‚t t 	|¡t j|dd�¡ d S )NTrg   )
r5   r6   r@   rA   rP   r7   rO   rc   r%   rb   )r9   Zarr_in_arr_inputrC   r   r   r   Útest_encode_array_in_arrayH  s    

ÿz-TestUltraJSONTests.test_encode_array_in_arrayÚ	num_input)éiz  i—…ÿÿìûÿÿÿ         c                 C   sD   t  |¡}|t |¡ksJ ‚|t |¡ks.J ‚|t  |¡ks@J ‚d S r   ©r5   r6   r@   rA   rP   r7   )r9   rˆ   rC   r   r   r   Útest_encode_num_conversionT  s    	
z-TestUltraJSONTests.test_encode_num_conversionc                 C   sV   g d¢}t  |¡}|t |¡ks$J ‚|t  |¡ks6J ‚t t |¡t j|dd�¡ d S )N)r.   r1   r2   é   Trg   rh   )r9   Z
list_inputrC   r   r   r   Útest_encode_list_conversionb  s    
ÿz.TestUltraJSONTests.test_encode_list_conversionc                 C   s@   dddddœ}t  |¡}|t |¡ks*J ‚|t  |¡ks<J ‚d S )Nr.   r1   r2   r�   )Zk1Zk2Zk3Zk4r?   )r9   Z
dict_inputrC   r   r   r   Útest_encode_dict_conversionm  s    
z.TestUltraJSONTests.test_encode_dict_conversionÚbuiltin_value)NTFc                 C   sD   t  |¡}|t |¡ksJ ‚|t |¡ks.J ‚|t  |¡ks@J ‚d S r   r‹   )r9   r�   rC   r   r   r   Ú%test_encode_builtin_values_conversiont  s    
z8TestUltraJSONTests.test_encode_builtin_values_conversionc                 C   s\   t j  t ¡ ¡}tj|dd�}t | ¡ ¡}t|ƒt	 
|¡ksBJ ‚t|ƒt |¡ksXJ ‚d S )NÚs©Ú	date_unit)ÚdatetimeÚfromtimestampÚtimer5   r6   ÚcalendarÚtimegmÚutctimetuplerr   r@   rA   r7   )r9   Zdatetime_inputrC   Úexpectedr   r   r   Útest_encode_datetime_conversion{  s
    z2TestUltraJSONTests.test_encode_datetime_conversionc                 C   sn   t j t ¡ ¡}tj|dd�}|j|j|jdddf}t	 
|¡}t|ƒt |¡ksTJ ‚t|ƒt |¡ksjJ ‚d S )Nr’   r“   r   )r•   Údater–   r—   r5   r6   ÚyearÚmonthÚdayr˜   r™   rr   r@   rA   r7   )r9   Z
date_inputrC   Útupr›   r   r   r   Útest_encode_date_conversionƒ  s    
z.TestUltraJSONTests.test_encode_date_conversionÚtestr.   r1   r2   rf   é   r+   éË< c                 C   s*   t  |¡}d| ¡ › d�}||ks&J ‚d S )Nú"©r5   r6   Ú	isoformat©r9   r£   rC   r›   r   r   r   Ú!test_encode_time_conversion_basic�  s    
z4TestUltraJSONTests.test_encode_time_conversion_basicc                 C   s>   t  ddddtj¡}t |¡}d| ¡ › d�}||ks:J ‚d S ©Nrf   r¤   r+   r¥   r¦   )r•   r—   ÚpytzÚutcr5   r6   r¨   r©   r   r   r   Ú test_encode_time_conversion_pytz–  s    
z3TestUltraJSONTests.test_encode_time_conversion_pytzc                 C   sB   t  ddddtj ¡ ¡}t |¡}d| ¡ › d�}||ks>J ‚d S r«   )r•   r—   ÚdateutilÚtzZtzutcr5   r6   r¨   r©   r   r   r   Ú$test_encode_time_conversion_dateutil�  s    
z7TestUltraJSONTests.test_encode_time_conversion_dateutilÚdecoded_inputr   c                 C   s   t  |¡dksJ dƒ‚d S )NÚnullzExpected nullr^   )r9   r²   r   r   r   Útest_encode_as_null¤  s    z&TestUltraJSONTests.test_encode_as_nullc              	   C   sö   t   ddddddd¡}t|ƒ}t tj|dd�¡}||jd	 ksDJ ‚t tj|d
d�¡}||jd ksjJ ‚t tj|dd�¡}||jd ks�J ‚t tj|dd�¡}||jks²J ‚d}tjt|d�� tj|dd� W d   ƒ n1 sè0    Y  d S )NéÝ  é   é   é   r¤   iÐI r’   r“   i Êš;Úmsi@B Úuséè  Únsz*Invalid value 'foo' for option 'date_unit'ro   Úfoo)	r•   r   r5   r7   r6   Úvalueru   rv   rs   )r9   ÚvalZstampZ	roundtriprx   r   r   r   Útest_datetime_unitsª  s    z&TestUltraJSONTests.test_datetime_unitsc                 C   sH   d}t j|dd�}t  |¡}|tj|dd�ks2J ‚|t |¡ksDJ ‚d S )Nr|   F)r>   r}   )r9   Ú	unencodedr~   r   r   r   r   Útest_encode_to_utf8¾  s
    
z&TestUltraJSONTests.test_encode_to_utf8c                 C   s,   d}t  |¡}t  t|ƒ¡}||ks(J ‚d S )Nz{"obj": 31337}©r5   r7   r   )r9   r{   Zdec1Zdec2r   r   r   Útest_decode_from_unicodeÇ  s    
z+TestUltraJSONTests.test_decode_from_unicodec                 C   sn   G dd„ dƒ}G dd„ dƒ}|ƒ }|ƒ |_ ||j _ tjtdd�� t |¡ W d   ƒ n1 s`0    Y  d S )Nc                   @   s   e Zd ZdZdS )z8TestUltraJSONTests.test_encode_recursion_max.<locals>.O2r   N©Ú__name__Ú
__module__Ú__qualname__Úmemberr   r   r   r   ÚO2Ò  s   rÊ   c                   @   s   e Zd ZdZdS )z8TestUltraJSONTests.test_encode_recursion_max.<locals>.O1r   NrÅ   r   r   r   r   ÚO1Ö  s   rË   úMaximum recursion level reachedro   )rÉ   ru   rv   ÚOverflowErrorr5   r6   )r9   rÊ   rË   r²   r   r   r   Útest_encode_recursion_maxÏ  s    z,TestUltraJSONTests.test_encode_recursion_maxc                 C   sD   d}d}t jt|d�� t |¡ W d   ƒ n1 s60    Y  d S )Nzfdsa sda v9sa fdsaz0Unexpected character found when decoding 'false'ro   ©ru   rv   rs   r5   r7   )r9   Z	jibberishrx   r   r   r   Útest_decode_jibberishá  s    z(TestUltraJSONTests.test_decode_jibberishÚbroken_json)ú[Ú{ú]Ú}c                 C   s@   d}t jt|d�� t |¡ W d   ƒ n1 s20    Y  d S )NzExpected object or valuero   rÏ   )r9   rÑ   rx   r   r   r   Útest_decode_broken_jsonç  s    
z*TestUltraJSONTests.test_decode_broken_jsonÚtoo_big_charrÒ   rÓ   c                 C   s@   t jtdd�� t |d ¡ W d   ƒ n1 s20    Y  d S )Nz#Reached object decoding depth limitro   i   rÏ   )r9   r×   r   r   r   Útest_decode_depth_too_bigõ  s    z,TestUltraJSONTests.test_decode_depth_too_bigÚ
bad_string)z"TESTINGz
"TESTING\"ZtruÚfaÚnc                 C   s@   d}t jt|d�� t |¡ W d   ƒ n1 s20    Y  d S )NzSUnexpected character found when decoding|Unmatched ''"' when when decoding 'string'ro   rÏ   )r9   rÙ   rx   r   r   r   Útest_decode_bad_stringú  s    ÿz)TestUltraJSONTests.test_decode_bad_stringzbroken_json, err_msg))z{{1337:""}}z:Key name of object must be 'string' when decoding 'object')z
{{"key":"}z*Unmatched ''"' when when decoding 'string')z[[[truez8Unexpected character found when decoding array value (2)c              	   C   sP   t dƒD ]B}tjtt |¡d�� t |¡ W d   ƒ q1 s@0    Y  qd S )Nr»   ro   )Úrangeru   rv   rs   ÚreÚescaper5   r7   )r9   rÑ   Úerr_msgÚ_r   r   r   Útest_decode_broken_json_leak  s    z/TestUltraJSONTests.test_decode_broken_json_leakÚinvalid_dict)z{{{{31337}}}}z{{{{"key":}}}}z{{{{"key"}}}}c                 C   s@   d}t jt|d�� t |¡ W d   ƒ n1 s20    Y  d S )Nz{Key name of object must be 'string' when decoding 'object'|No ':' found when decoding object value|Expected object or valuero   rÏ   )r9   rã   rx   r   r   r   Útest_decode_invalid_dict  s    
ÿz+TestUltraJSONTests.test_decode_invalid_dictÚnumeric_int_as_strZ31337z-31337c                 C   s   t |ƒt |¡ksJ ‚d S r   )rr   r5   r7   )r9   rå   r   r   r   Útest_decode_numeric_int-  s    z*TestUltraJSONTests.test_decode_numeric_intc                 C   sž   d}t  |¡}|t |¡ks J ‚|t |¡ks2J ‚|t  |¡ksDJ ‚d}t  |¡}|t |¡ksdJ ‚|t |¡ksvJ ‚|t  |¡ksˆJ ‚dt  d¡ksšJ ‚d S )Nz31337   1337ú z"  \u0000\r\n "z   
 r‹   )r9   Úwrapped_inputrC   Zalone_inputr   r   r   Útest_encode_null_character3  s    

z-TestUltraJSONTests.test_encode_null_characterc                 C   s    d}t  |¡t |¡ksJ ‚d S )Nz"31337 \u0000 31337"©r5   r7   r@   rA   )r9   rè   r   r   r   Útest_decode_null_characterC  s    z-TestUltraJSONTests.test_decode_null_characterc                 C   sZ   g d¢}t  |¡}|t |¡ks$J ‚|t  |¡ks6J ‚t t |¡t j|dtj	d�¡ d S )N)ì   ÿÿÿÿ rì   rì   rì   rì   rì   Tra   )
r5   r6   r@   rA   r7   rO   rc   r%   rb   r&   ©r9   Ú
long_inputrC   r   r   r   Ú test_encode_list_long_conversionG  s    
ÿz3TestUltraJSONTests.test_encode_list_long_conversionrî   rì   l   ÿÿÿÿ c                 C   sD   t  |¡}|t |¡ksJ ‚|t |¡ks.J ‚|t  |¡ks@J ‚d S r   r‹   rí   r   r   r   Útest_encode_long_conversionY  s    
z.TestUltraJSONTests.test_encode_long_conversionÚbigNumì            ìûÿÿÿ        c                 C   s^   t  |¡}t|ƒ|ksJ ‚tjtdd��" t  |¡|ks<J ‚W d   ƒ n1 sP0    Y  d S ©Nz#Value is too big|Value is too smallro   )r5   r6   r   ru   rv   rs   rA   )r9   rñ   Úencodingr   r   r   Ú#test_dumps_ints_larger_than_maxsizea  s    
þz6TestUltraJSONTests.test_dumps_ints_larger_than_maxsizeÚint_exp)Z1337E40z1.337E40z1337E+9z	1.337e+40z1.337E-4c                 C   s   t  |¡t |¡ksJ ‚d S r   rê   )r9   r÷   r   r   r   Útest_decode_numeric_int_expl  s    z.TestUltraJSONTests.test_decode_numeric_int_expc                 C   s@   d}t jt|d�� t d ¡ W d   ƒ n1 s20    Y  d S )NzExpected 'str' or 'bytes'ro   )ru   rv   rt   r5   rA   ©r9   rx   r   r   r   Útest_loads_non_str_bytes_raisesr  s    z2TestUltraJSONTests.test_loads_non_str_bytes_raisesr¿   )l   £Mö+ l        l        l   ÿÿ c                 C   s&   d|› d�}t  |¡d |ks"J ‚d S )Nz{"id": rÕ   Úid©r5   r7   )r9   r¿   Údocr   r   r   Ú&test_decode_number_with_32bit_sign_bitw  s    z9TestUltraJSONTests.test_decode_number_with_32bit_sign_bitc                 C   s4   t dƒD ]&}d ¡ }|d d d }t |¡ qd S )Nrf   õ   Ã¥é   r1   )rÝ   r6   r5   )r9   rá   ÚbaseÚescape_inputr   r   r   Útest_encode_big_escape~  s    z)TestUltraJSONTests.test_encode_big_escapec                 C   s@   t dƒD ]2}d ¡ }d}||d d d  | }t |¡ qd S )Nrf   rÿ   ó   "r   r1   )rÝ   r6   r5   r7   )r9   rá   r  Úquoter  r   r   r   Útest_decode_big_escape…  s
    z)TestUltraJSONTests.test_decode_big_escapec                    sD   ddi‰ G ‡ fdd„dƒ}|ƒ }t  |¡}t  |¡}|ˆ ks@J ‚d S )NÚkeyr‰   c                       s   e Zd Z‡ fdd„ZdS )z1TestUltraJSONTests.test_to_dict.<locals>.DictTestc                    s   ˆ S r   r   ©r9   r   r   r   ÚtoDict’  s    z8TestUltraJSONTests.test_to_dict.<locals>.DictTest.toDictN)rÆ   rÇ   rÈ   r	  r   r   r   r   ÚDictTest‘  s   r
  rJ   )r9   r
  ÚorC   r   r   r   r   Útest_to_dictŽ  s    

zTestUltraJSONTests.test_to_dictc              	      s€  G ‡ fdd„dƒ‰ d}t jt|d�� t ˆ dƒ¡ W d   ƒ n1 sH0    Y  dtjˆ dƒtd�kslJ ‚dd	„ }d
tjˆ dƒ|d�ksŽJ ‚dd„ }t jtdd��" tjˆ dƒ|d� W d   ƒ n1 sÌ0    Y  dd„ }t tjˆ dƒ|d�¡dksþJ ‚dd„ }t t t ddd¡¡¡t tjˆ dƒ|d�¡k�s>J ‚ˆ dƒˆ dƒg}t	 
t	j|td�¡t tj|td�¡k�s|J ‚d S )Nc                       s2   e Zd Zdd„ Ze‡ fdd„ƒZedœdd„ZdS )	z<TestUltraJSONTests.test_default_handler.<locals>._TestObjectc                 S   s
   || _ d S r   )r¿   )r9   r¿   r   r   r   Ú__init__�  s    zETestUltraJSONTests.test_default_handler.<locals>._TestObject.__init__c                    s   ˆ dƒS )NÚrecursive_attrr   r  ©Ú_TestObjectr   r   r     s    zKTestUltraJSONTests.test_default_handler.<locals>._TestObject.recursive_attr)Úreturnc                 S   s
   t | jƒS r   )r   r¿   r  r   r   r   Ú__str__¤  s    zDTestUltraJSONTests.test_default_handler.<locals>._TestObject.__str__N)rÆ   rÇ   rÈ   r  Úpropertyr  r   r  r   r  r   r   r  œ  s   r  rÌ   ro   r½   z"foo")Zdefault_handlerc                 S   s   dS )NZfoobarr   ©rá   r   r   r   Ú
my_handler¬  s    z;TestUltraJSONTests.test_default_handler.<locals>.my_handlerz"foobar"c                 S   s   t dƒ‚d S )NúI raise for anything)rt   r  r   r   r   Úmy_handler_raises³  s    zBTestUltraJSONTests.test_default_handler.<locals>.my_handler_raisesr  c                 S   s   dS )Né*   r   r  r   r   r   Úmy_int_handler¹  s    z?TestUltraJSONTests.test_default_handler.<locals>.my_int_handlerr  c                 S   s   t   ddd¡S )Nrµ   r1   r2   )r•   r  r   r   r   Úmy_obj_handlerÃ  s    z?TestUltraJSONTests.test_default_handler.<locals>.my_obj_handlerrµ   r1   r2   Úbar)Údefault)ru   rv   rÍ   r5   r6   r   rt   r7   r•   r@   rA   rP   )r9   rx   r  r  r  r  Zobj_listr   r  r   Útest_default_handler›  s>    ,ÿ0ÿýÿÿÿþ
ÿz'TestUltraJSONTests.test_default_handlerc                 C   sB   G dd„ dƒ}|ddddd�}t  t  |¡¡ddddœks>J ‚d S )	Nc                   @   s   e Zd Zdd„ Zdd„ ZdS )z:TestUltraJSONTests.test_encode_object.<locals>._TestObjectc                 S   s   || _ || _|| _|| _d S r   ©rI   ÚbÚ_cr   )r9   rI   r  r   r   r   r   r   r  Ó  s    zCTestUltraJSONTests.test_encode_object.<locals>._TestObject.__init__c                 S   s   dS rZ   r   r  r   r   r   ÚeÙ  s    z<TestUltraJSONTests.test_encode_object.<locals>._TestObject.eN)rÆ   rÇ   rÈ   r  r!  r   r   r   r   r  Ò  s   r  r.   r1   r2   r�   r  )rI   r  r   rW   )r9   r  Ztest_objectr   r   r   Útest_encode_objectÑ  s    z%TestUltraJSONTests.test_encode_object)JrÆ   rÇ   rÈ   ru   ÚmarkZskipifr   r=   ÚparametrizerG   rK   rQ   rR   rT   rX   ÚmathÚpir]   r_   rd   ri   rk   r    Zxfailr   ry   rz   r€   r‚   rƒ   r…   r†   r‡   rŒ   rŽ   r�   r‘   rœ   r¢   r•   r—   rª   r®   r±   r   r%   Z
datetime64ÚnanÚinfr´   rÀ   rÂ   rÄ   rÎ   rÐ   rÖ   rØ   rÜ   râ   rä   ræ   ré   rë   rï   rð   rö   rø   rú   rþ   r  r  r  r  r"  r   r   r   r   r)   K   sî   
7
ÿ


ÿ
þþùþ

þ
	þ


"þ
ÿ
	þ	

þ

þ
þ
	ÿ



ÿ

	6r)   c                   @   s`  e Zd Zej dddg¡dd„ ƒZdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZdd„ Zdd„ Zdd„ Zej d i g ged!i fd"d#ged$i fd%gd"ged&i fd"i d%ged'i fd"d%gd"ged(i fd%d)g d*ged!i fd%d)iged&d+difd%d)d*d"iiied,d+difd"d-d.œd*d/iged0d+difg	¡d1d2„ ƒZd3d4„ Zd#S )5ÚTestNumpyJSONTestsÚ
bool_inputTFc                 C   s$   t |ƒ}t t |¡¡|ks J ‚d S r   )Úboolr5   r7   r6   )r9   r*  r  r   r   r   Ú	test_boolâ  s    zTestNumpyJSONTests.test_boolc                 C   s<   t jg d¢td�}t jt t |¡¡td�}t ||¡ d S )N)TFTTFTFF©r'   )r%   rb   r+  r5   r7   r6   rO   rc   )r9   Z
bool_arrayrC   r   r   r   Útest_bool_arrayç  s
    ÿz"TestNumpyJSONTests.test_bool_arrayc                 C   s4   t  |¡j}|dƒ}|t t |¡¡ƒ|ks0J ‚d S )Nr.   ©r%   r'   Útyper5   r7   r6   ©r9   Úany_int_numpy_dtypeÚklassrS   r   r   r   Útest_intî  s    zTestNumpyJSONTests.test_intc                 C   sB   t jdtd�}| |¡}t jt t |¡¡|d�}t 	||¡ d S )Néd   r-  )
r%   Úarangerr   Úastyperb   r5   r7   r6   rO   rc   )r9   r2  ÚarrZ	arr_inputZ
arr_outputr   r   r   Útest_int_arrayô  s    
ÿz!TestNumpyJSONTests.test_int_arrayc                 C   sd   |dv rt st d¡ t |¡j}|dkr8t d¡j}nt |¡j}|t 	t 
|¡¡ƒ|ks`J ‚d S )N)r&   Úuint64z-Cannot test 64-bit integer on 32-bit platformr:  r&   )r   ru   Úskipr%   r'   r0  ZiinfoÚmaxr5   r7   r6   r1  r   r   r   Útest_int_maxý  s    
zTestNumpyJSONTests.test_int_maxc                 C   s4   t  |¡j}|dƒ}|t t |¡¡ƒ|ks0J ‚d S )NgõJY†8p@r/  ©r9   Úfloat_numpy_dtyper3  rS   r   r   r   Ú
test_float  s    zTestNumpyJSONTests.test_floatc                 C   sJ   t jdddtd�}| |¡}t jt tj|dd�¡|d�}t 	||¡ d S )Ng      )@g×£p=
7g@geâX·û?r-  r+   r,   )
r%   r6  Úfloatr7  rb   r5   r7   r6   rO   Úassert_almost_equal)r9   r?  r8  Zfloat_inputZfloat_outputr   r   r   Útest_float_array  s    
þz#TestNumpyJSONTests.test_float_arrayc              	   C   sD   t  |¡j}|t  |¡jd ƒ}t |t tj	|dd�¡ƒ|¡ d S )Nrf   r+   r,   )
r%   r'   r0  Zfinfor<  rO   rB  r5   r7   r6   r>  r   r   r   Útest_float_max  s
    ÿz!TestNumpyJSONTests.test_float_maxc              	   C   sR   t  d¡}| d¡}t t  t t |¡¡¡|¡ t tjt |¡dd�|¡ d S )Né`   )r1   r1   r1   r1   r2   r1   Trg   ©	r%   r6  ÚreshaperO   rc   rb   r5   r7   r6   ©r9   r8  r   r   r   Útest_array_basic$  s    

z#TestNumpyJSONTests.test_array_basicÚshape))rf   rf   ©r[   r[   r�   )r5  r.   c              	   C   sR   t  d¡}| |¡}t t  t t |¡¡¡|¡ t tjt |¡dd�|¡ d S )Nr5  Trg   rF  )r9   rJ  r8  r   r   r   Útest_array_reshaped+  s    

z&TestNumpyJSONTests.test_array_reshapedc              
   C   sV   dg i i g ddddgddig	}t j|td�}t jt t |¡¡td�}t ||¡ d S )NrI   r  g33333sX@r  r  r¿   r-  )r%   rb   Úobjectr5   r7   r6   rO   rc   )r9   Zarr_listr8  Úresultr   r   r   Útest_array_list3  s    ÷z"TestNumpyJSONTests.test_array_listc                 C   sn   t j}t jddd|d�}| d¡}t jt t |¡¡|d�}t 	||¡ tjt |¡d|d�}t 	||¡ d S )Ng°rh‘íY@gX9´Èvi@r.   r-  rK  Tra   )
r%   Zfloat32r6  rG  rb   r5   r7   r6   rO   rB  )r9   r'   r8  Zarr_outr   r   r   Útest_array_floatC  s    
z#TestNumpyJSONTests.test_array_floatc                 C   sL   t  d¡}tjt|d��  t t d¡¡ W d   ƒ n1 s>0    Y  d S )Nz:array(1) (0d array) is not JSON serializable at the momentro   r.   )	rÞ   rß   ru   rv   rt   r5   r6   r%   rb   rù   r   r   r   Útest_0d_arrayO  s    
z TestNumpyJSONTests.test_0d_arrayz!bad_input,exc_type,err_msg,kwargsz:nesting not supported for object or variable length dtypesr  NzZint\(\) argument must be a string, a bytes-like object or a( real)? number, not 'NoneType'rI   zLCannot decode multidimensional arrays with variable length elements to numpyzVint\(\) argument must be a string, a bytes-like object or a( real)? number, not 'dict'z-invalid literal for int\(\) with base 10: 'a'r  ÚcÚlabelledz(labels only supported up to 2 dimensionsé   )rI   r  r·   z1cannot reshape array of size 3 into shape \(2,1\)c                 C   sN   t j||d��, tjt |¡fddi|¤Ž W d   ƒ n1 s@0    Y  d S )Nro   r$   T)ru   rv   r5   r7   rP   )r9   Z	bad_inputÚexc_typerà   Úkwargsr   r   r   Útest_array_numpy_exceptU  s    @z*TestNumpyJSONTests.test_array_numpy_exceptc                 C   sÆ  dg i}t jt  |¡ddd�}t d¡|d k ¡ s8J ‚t dg¡|d k ¡ sTJ ‚|d d u sdJ ‚ddig}t jt  |¡ddd�}t dg¡|d k ¡ s J ‚t dg¡|d k ¡ s¼J ‚|d d u sÌJ ‚d	}t j|ddd�}tjg d
¢td� d¡}||d k ¡ �sJ ‚|d d u �s J ‚t ddg¡|d k ¡ �s@J ‚d}t j|ddd�}tjg d
¢td� d¡}||d k ¡ �s‚J ‚t g d¢¡|d k ¡ �s¢J ‚t ddg¡|d k ¡ �sÂJ ‚d S )NrI   T©r$   rS  )r.   r   r   r.   r1   r  z<[{"a": 42, "b":31}, {"a": 24, "c": 99}, {"a": 2.4, "b": 78}])r  é   é   éc   g333333@éN   r-  )r2   r1   r  zK{"1": {"a": 42, "b":31}, "2": {"a": 24, "c": 99}, "3": {"a": 2.4, "b": 78}})Ú1Ú2Ú3)	r5   rA   rP   r%   ÚemptyÚallrb   rr   rG  )r9   Zlabelled_inputrC   Zinput_dumpsZexpected_valsr   r   r   Útest_array_numpy_labelled˜  s.    
 ÿ z,TestNumpyJSONTests.test_array_numpy_labelled)rÆ   rÇ   rÈ   ru   r#  r$  r,  r.  r4  r9  r=  r@  rC  rD  rI  rL  rO  rP  rQ  rs   rt   rW  rb  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d„ Z	e
j dg d¢¡dd„ ƒZe
j dg dgg¡dd„ ƒZe
j dddg¡dd„ ƒZe
j dd› d› g¡dd „ ƒZd!d"„ Zd#d$„ Ze
j d%d› d› g¡d&d'„ ƒZe
j d(g d)¢¡e
j d*d+d,g¡d-d.„ ƒƒZd/d0„ Zd1d2„ Zd3d4„ Ze
j d5ed6d7�ed+d7�ed8d9d9d:�ed8d;d<d:�ed+d9d=�ed,d>�ed,d,d?�ed,d,d,d@�edAdAdAd@�g	¡dBdC„ ƒZdDS )EÚTestPandasJSONTestsc           	      C   sB  |dkr|rt  d¡ t||ƒ}tg d¢g d¢gddgg d¢|d�}|d u rPi nd	|i}|d u rdi nd
|i}|j|k ¡ s~J ‚tjtj|fi |¤Žfi |¤Ž}|j|k ¡ s°J ‚|dkrÐt	|ƒ}tf i |¤Ž}nt|ƒ}|dkrög d¢|_
ddg|_n(|dk�rddg|_n|dk�r| ¡ }|j|k ¡ �s2J ‚t ||¡ d S )Nr   zNot idiomatic pandas©r.   r1   r2   ©r�   r[   é   rI   r  ©ÚxÚyÚz©r   Úcolumnsr'   r#   r$   r   r   )r   r.   r1   r   r.   r   )ru   r;  r(   r   Zdtypesra  r5   r7   r6   r   rl  r   Z	transposerO   Úassert_frame_equal)	r9   r#   r$   r'   ÚdfrB   Údecode_kwargsrC   r   r   r   r   Útest_dataframeº  s6    

ü 


z"TestPandasJSONTests.test_dataframec                 C   sš   t g d¢g d¢gddgg d¢d�}|| ¡ dœ}|d u r<i nd|i}t tj|fi |¤Ž¡t tj|fi |¤Ž¡dœ}t tj|fi |¤Ž¡|ks–J ‚d S )	Nrd  re  rI   r  rg  )r   rl  )Zdf1Zdf2r#   )r   Úcopyr5   r7   r6   )r9   r#   rn  ÚnestedrV  Úexpr   r   r   Útest_dataframe_nestedà  s    ÿþz)TestPandasJSONTests.test_dataframe_nestedc                 C   sž   |dv rt  d¡ tg d¢g d¢gddgg d¢td�}|d u rBi nd	|i}ttjtj|fi |¤Žd
d
d�Ž }|d u r||j}n|dkrŽddg|_t	 
||¡ d S )N)r   r   zIncompatible with labelled=Truerd  re  rI   r  rg  rk  r#   TrX  r   r   r.   )ru   r;  r   rr   r5   r7   r6   ÚTr   rO   rm  )r9   r#   rn  rV  rC   r   r   r   Útest_dataframe_numpy_labelledî  s"    
üÿ
z1TestPandasJSONTests.test_dataframe_numpy_labelledc           	      C   s
  t ||ƒ}tg d¢dg d¢|d� ¡ }|j|ks4J ‚|d u r@i nd|i}|d u rTi nd|i}tjtj|fi |¤Žfi |¤Ž}|j|ksŠJ ‚|dkrªt|ƒ}tf i |¤Ž}nt|ƒ}|dv rÔd |_| ¡ }g d	¢|_	n|d
v rìd |_g d¢|_	|j|ksúJ ‚t
 ||¡ d S )N©rf   r`   é   é(   é2   é<   Úseries©rf  é   r¶   rj   rf   r+   )Únamer   r'   r#   r$   r   )Nr   )Ú6Ú7Ú8rn   Ú10Z15)r   r   )r   r.   r1   r2   r�   r[   )r(   r	   Úsort_valuesr'   r5   r7   r6   r   r  r   rO   Úassert_series_equal)	r9   r#   r$   r'   r’   rB   ro  rC   r   r   r   r   Útest_series  s2    
ü
 
zTestPandasJSONTests.test_seriesc                 C   s’   t g d¢dg d¢d� ¡ }|| ¡ dœ}|d u r4i nd|i}t tj|fi |¤Ž¡t tj|fi |¤Ž¡dœ}t tj|fi |¤Ž¡|ksŽJ ‚d S )Nrw  r|  r}  )r  r   )Ús1Ús2r#   )r	   r„  rq  r5   r7   r6   )r9   r#   r’   rr  rV  rs  r   r   r   Útest_series_nested&  s    ÿ
þz&TestPandasJSONTests.test_series_nestedc                 C   sä  t g d¢dd�}t t t |¡¡dd�}t ||¡ t tjt |¡dd�dd�}t ||¡ tt tj|dd�¡ƒ}t f i |¤Ž}t ||¡ |j|jksžJ ‚ttjtj|dd�dd�ƒ}t f i |¤Ž}t ||¡ |j|jksäJ ‚t t tj|dd�¡dd�}t ||¡ t tjtj|dd�dd�dd�}t ||¡ t t tj|d	d�¡dd�}t ||¡ t tjtj|d	d�dd�dd�}t ||¡ t t tj|dd�¡dd�}t ||¡ t tjtj|dd�dd�dd�}t ||¡ d S )
N)rT  é-   é   éb   é+   é   r   )r  Trg   r   )r#   r   r   )r   r5   r7   r6   rO   Úassert_index_equalr   r  )r9   ÚirC   r   r   r   r   Ú
test_index3  s>    ÿÿÿzTestPandasJSONTests.test_indexc                 C   s¤   d}t ttddd�ƒd d�}tj||d�}t t t |¡¡ƒ}t 	||¡ t
tj t|ƒ¡|d�}t
t tj||d�¡ƒ}|jj tj¡}t |ƒ|_t ||¡ d S )Nr¼   z1/1/2000r`   )Zperiods)Úfreqr“   )r   )r   Úlistr   r5   r6   r%   rb   r7   rO   r�  r	   ÚrandomZrandnÚlenr   r   r7  r&   r…  )r9   r”   Úrngr;   r<   ÚtsZ
idx_valuesr   r   r   Útest_datetime_indexa  s    
z'TestPandasJSONTests.test_datetime_indexÚinvalid_arr)z[31337,]z[,31337]z[]]z[,]c                 C   s@   d}t jt|d�� t |¡ W d   ƒ n1 s20    Y  d S )Nz[Expected object or value|Trailing data|Unexpected character found when decoding array valuero   rÏ   )r9   r™  rx   r   r   r   Útest_decode_invalid_arrayr  s    ÿz-TestPandasJSONTests.test_decode_invalid_arrayr8  r‰   c                 C   s   |t  t|ƒ¡ksJ ‚d S r   rÃ   rH  r   r   r   Útest_decode_arrayƒ  s    z%TestPandasJSONTests.test_decode_arrayÚextreme_numrì   rŠ   c                 C   s   |t  t|ƒ¡ksJ ‚d S r   rÃ   )r9   rœ  r   r   r   Útest_decode_extreme_numbers‡  s    z/TestPandasJSONTests.test_decode_extreme_numbersÚtoo_extreme_numrò   ró   c                 C   s<   t jtdd�� t |¡ W d   ƒ n1 s.0    Y  d S rô   rÏ   )r9   rž  r   r   r   Útest_decode_too_extreme_numbers‹  s
    þz3TestPandasJSONTests.test_decode_too_extreme_numbersc                 C   s   i t  d¡ksJ ‚d S )Nz{}
	 rü   r  r   r   r   Ú%test_decode_with_trailing_whitespaces“  s    z9TestPandasJSONTests.test_decode_with_trailing_whitespacesc                 C   s<   t jtdd�� t d¡ W d   ƒ n1 s.0    Y  d S )NzTrailing dataro   z{}
	 arÏ   r  r   r   r   Ú)test_decode_with_trailing_non_whitespaces–  s    z=TestPandasJSONTests.test_decode_with_trailing_non_whitespacesr¾   c                 C   s<   t jtdd�� t |¡ W d   ƒ n1 s.0    Y  d S rô   )ru   rv   rs   r5   rA   )r9   r¾   r   r   r   Útest_decode_array_with_big_intš  s
    þz2TestPandasJSONTests.test_decode_array_with_big_intÚfloat_number)	gÞ3ˆÓ­ùñ?gªRCÊÀó?g¨B4¡æ‡õ?gŽš
LO÷?g‰	jøù?g[_$´åÜú?gŒ¹k	ù ü?g}?5^ºIþ?gÍÌÌÌÌÌô?Úsignrm   r.   c                 C   s&   ||9 }t j|t t|ƒ¡dd� d S )NgVçž¯Ò<)Zrtol)rO   rB  r5   rA   r   )r9   r¤  r£  r   r   r   Útest_decode_floating_point¢  s    z.TestPandasJSONTests.test_decode_floating_pointc                 C   s.   t ƒ }tddƒD ]}| |¡ qt |¡ d S )Nr   i † )ÚsetrÝ   Úaddr5   r6   )r9   r’   rh  r   r   r   Útest_encode_big_setµ  s    z'TestPandasJSONTests.test_encode_big_setc                 C   s   dt  tƒ ¡ksJ ‚d S )Nz[])r5   r6   r¦  r  r   r   r   Útest_encode_empty_set¾  s    z)TestPandasJSONTests.test_encode_empty_setc                 C   s6   h d£}t  |¡}t  |¡}|D ]}||v s J ‚q d S )N>	   r.   r1   r2   r�   r[   rf  r~  r¶   rj   rJ   )r9   r’   r~   r   r   r   r   r   Útest_encode_setÁ  s
    

z#TestPandasJSONTests.test_encode_setÚtdin  )Údaysé   r[   )ÚhoursÚminutesÚsecondsr`   rx  )r¬  Únanoseconds)r±  )Úmicrosecondsr±  )Zmillisecondsr²  r±  iç  c                 C   s.   t j|dd�}d| ¡ › d�}||ks*J ‚d S )NT)Z	iso_datesr¦   r§   )r9   r«  rN  r›   r   r   r   Útest_encode_timedelta_isoÉ  s    z-TestPandasJSONTests.test_encode_timedelta_isoN)rÆ   rÇ   rÈ   rp  rt  rv  r†  r‰  r‘  r˜  ru   r#  r$  rš  r›  r�  rŸ  r   r¡  r¢  r¥  r¨  r©  rª  r
   r³  r   r   r   r   rc  ¹  sZ   &!.þ	




þ	

÷þrc  )'r˜   r•   r3   r@   rM   r%  rÞ   r—   r¯   r$   r%   ru   r¬   Zpandas._libs.jsonZ_libsr5   Zpandas.compatr   r   r   Zpandasr   r   r   r   r	   r
   r   r   Zpandas._testingZ_testingrO   r   Zfixturer#   r(   r)   r)  rc  r   r   r   r   Ú<module>   s@   (
ÿ

      Y