U
    `»{j¢  ã                   @   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 d dlmZ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!ddddd	g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Úis_platform_windows)	Ú	DataFrameÚDatetimeIndexÚIndexÚNaTÚPeriodIndexÚ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   ú^/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/io/json/test_ujson.pyÚ
<dictcomp>0   s      z_clean_dict.<locals>.<dictcomp>)Úitems©Údr   r   r   Ú_clean_dict#   s    r   Ú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 ks:|dks:| dkr&|d k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
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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(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>d?d@dAg¡dBdC„ ƒZdDdE„ ZdFdG„ Z ej dHd*ddg¡dIdJ„ ƒZ!dKdL„ Z"dMdN„ Z#ej dOe$ %¡ e$ %dPdQdR¡e$ %dSdTdUdV¡g¡dWdX„ ƒZ&dYdZ„ Z'd[d\„ Z(ej d]e)e* +d^¡e*j,e*j-e*j- g¡d_d`„ ƒZ.dadb„ Z/dcdd„ Z0dedf„ Z1dgdh„ Z2didj„ Z3ej dkdldmdndog¡dpdq„ ƒZ4ej drdldmg¡dsdt„ ƒZ5ej dudvdwdxdydzg¡d{d|„ ƒZ6ej d}d~dd€g¡d�d‚„ ƒZ7ej dƒd„d…d†g¡d‡dˆ„ ƒZ8ej d‰dŠd‹g¡dŒd�„ ƒZ9dŽ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�„ ƒZ>ej dždŸd d¡d¢d£g¡d¤d¥„ ƒZ?d¦d§„ Z@ej d¨d©dªd«d¬g¡d­d®„ ƒZAd¯d°„ ZBd±d²„ ZCd³d´„ ZDdµd¶„ ZEd·d¸„ ZFd*S )¹ÚTestUltraJSONTestsz$not compliant on 32-bit, xref #15865©Úreasonc                 C   sØ  t  d¡}tj|dd�}t |¡}|dks.t‚t  d¡}tj|dd�}|dksRt‚t |¡}|dksht‚t  d	¡}tj|dd�}|d
ksŒt‚t |¡}|dks¢t‚t  d¡}tj|dd�}|dksÆt‚t |¡}|dksÜt‚t  d¡}tj|dd�}|dk�st‚t |¡}|dk�st‚t  d¡}tj|dd�}|dk�s@t‚t |¡}|dk�sXt‚t  d¡}tj|dd�}|dk�s~t‚t |¡}|dk�s–t‚t  d¡}tj|dd�}|dk�s¼t‚t |¡}|dk�sÔt‚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ÚAssertionError©Ú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"t‚ˆt |¡ks4t‚ˆt  |¡ksFt‚d S )Nr?   )r5   r6   r8   Ú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   )r:   r?   Znot_html_encodedZhtml_encodedrF   r   rD   r   Útest_encode_string_conversion„   s    ÿ
z0TestUltraJSONTests.test_encode_string_conversionÚlong_numberlüÿÿÿZ:�`¡7{ g#å_œçt¦ÂgÔŸpAª‚¿Ác                 C   s0   d|i}t j|dd�}t  |¡}||ks,t‚d S )NÚar+   r,   ©r5   r6   r7   r8   )r:   rH   r;   r<   r=   r   r   r   Útest_double_long_numbersž   s    
z+TestUltraJSONTests.test_double_long_numbersc              
   C   sj   t j}dD ]Z}t ||¡r
t ||¡�4 t t d¡¡dks@t‚tjddd�dksVt‚W 5 Q R X  qfq
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   Údumpsr8   )r:   Zlc_categoryZ
new_localer   r   r   Útest_encode_non_c_locale¨   s     z+TestUltraJSONTests.test_encode_non_c_localec                 C   s0   ddi}t  |¡}t j|dd�}||ks,t‚d S )NrI   g=
×£p=@TrL   rJ   r9   r   r   r   Ú test_decimal_decode_test_precise³   s    
z3TestUltraJSONTests.test_decimal_decode_test_precisec                 C   sx   d}|t  t  |¡¡kst‚d}|t  t  |¡¡ks8t‚d}|t  t  |¡¡ksTt‚d}t |t  t  |¡¡¡stt‚d S )NgœWw'&l¡7g0Žä.ÿ++g¹j7­Ö–¶gó¡?>¬úÓ¡)r5   r7   r6   r8   r$   Zallclose)r:   Ú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 t‚d S )NZvalue1©r5   r7   r6   r8   )r:   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(t‚t|dƒtt  |¡dƒksFt‚d S ©Né   )r5   r6   Úroundr@   rA   r8   r7   )r:   rY   rC   r   r   r   Útest_encode_double_conversionÈ   s    
z0TestUltraJSONTests.test_encode_double_conversionc                 C   s   d}t  |¡}|dkst‚d S )Nr0   r/   ©r5   r6   r8   )r:   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*t‚|t  |¡ks<t‚t |¡}t 	|t j|d|j
d�¡ d S )Né   T©r#   r&   )r5   r6   r@   rA   r8   r7   r$   ÚarrayrO   Úassert_numpy_array_equalr&   )r:   Znested_inputrC   r   r   r   Ú"test_encode_array_of_nested_arraysÖ   s    

 ÿz5TestUltraJSONTests.test_encode_array_of_nested_arraysc                 C   s^   ddddgd }t  |¡}|t |¡ks,t‚|t  |¡ks>t‚t t 	|¡t j|dd�¡ d S )NgcATšÞ@é
   T©r#   ©
r5   r6   r@   rA   r8   r7   rO   rc   r$   rb   )r:   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$t‚|t  |¡ks6t‚dD ]@}t j||d�}t||ƒ}|t |¡ksht‚|t  |¡ks:t‚q:d S )Ng² )>@r+   r,   )r2   é	   )r5   r6   r@   rA   r8   r7   r\   )r:   rY   rC   r-   Zrounded_inputr   r   r   Útest_double_precisioní   s    
z(TestUltraJSONTests.test_double_precisionÚinvalid_valr`   éÿÿÿÿÚ9Nc              	   C   sF   d}t |tƒrtnt}d}tj||d�� tj||d� W 5 Q R X d S )NgöF7Ýš>@z‹Invalid value '.*' for option 'double_precision', max is '15'|an integer is required \(got type |object cannot be interpreted as an integer©Úmatchr,   )Ú
isinstanceÚintÚ
ValueErrorÚ	TypeErrorÚpytestÚraisesr5   r6   )r:   rk   rY   Zexpected_exceptionÚmsgr   r   r   Útest_invalid_double_precisionû   s    
ÿz0TestUltraJSONTests.test_invalid_double_precisionc                 C   sB   d}t  |¡}|t |¡ks t‚|t  |¡ks2t‚|dks>t‚d S )NzA string \ /   
  	z"A string \\ \/ \b \f \n \r \t"©r5   r6   r@   rA   r8   r7   )r:   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&t‚|t |¡ks8t‚d S r   ©r5   r6   r7   r@   rP   r8   rA   )r:   rz   ÚencÚdecr   r   r   Útest_encode_unicode_conversion  s    

z1TestUltraJSONTests.test_encode_unicode_conversionc                 C   s:   d}t  |¡}t  |¡}||ks$t‚|t |¡ks6t‚d S )Nú)r5   r6   r7   r8   r@   rP   )r:   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*t‚|t |¡ks<t‚d S )Nu   Ã°Â�Â�Â†r|   )r:   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*t‚|t |¡ks<t‚d S )Nu   Ã°Â‘Â€Â°TRAILINGNORMALr|   ©r:   Zfour_bytes_inputr}   r~   r   r   r   Útest_encode_unicode_4bytes_utf82  s
    

z2TestUltraJSONTests.test_encode_unicode_4bytes_utf8c                 C   s@   d}t  |¡}t  |¡}|t |¡ks*t‚|t |¡ks<t‚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&t‚|t |¡ks8t‚|t  |¡ksJt‚t t	 
|¡t j|dd�¡ d S )NTrf   )r5   r6   r@   rA   r8   rP   r7   rO   rc   r$   rb   )r:   Zarr_in_arr_inputrC   r   r   r   Útest_encode_array_in_arrayC  s    

 ÿz-TestUltraJSONTests.test_encode_array_in_arrayÚ	num_inputéiz  i—…ÿÿìûÿÿÿ         c                 C   sD   t  |¡}|t |¡kst‚|t |¡ks.t‚|t  |¡ks@t‚d S r   ©r5   r6   r@   rA   r8   rP   r7   )r:   r‡   rC   r   r   r   Útest_encode_num_conversionO  s    	
z-TestUltraJSONTests.test_encode_num_conversionc                 C   sZ   ddddg}t  |¡}|t |¡ks(t‚|t  |¡ks:t‚t t 	|¡t j|dd�¡ d S )Nr.   r1   r2   é   Trf   rg   )r:   Z
list_inputrC   r   r   r   Útest_encode_list_conversion]  s    
 ÿz.TestUltraJSONTests.test_encode_list_conversionc                 C   s@   dddddœ}t  |¡}|t |¡ks*t‚|t  |¡ks<t‚d S )Nr.   r1   r2   rŒ   )Zk1Zk2Zk3Zk4rx   )r:   Z
dict_inputrC   r   r   r   Útest_encode_dict_conversionh  s    
z.TestUltraJSONTests.test_encode_dict_conversionÚbuiltin_valuec                 C   sD   t  |¡}|t |¡kst‚|t |¡ks.t‚|t  |¡ks@t‚d S r   rŠ   )r:   r�   rC   r   r   r   Ú%test_encode_builtin_values_conversiono  s    
z8TestUltraJSONTests.test_encode_builtin_values_conversionc                 C   s\   t j  t ¡ ¡}tj|dd�}t | ¡ ¡}t|ƒt	 
|¡ksBt‚t|ƒt |¡ksXt‚d S )NÚs©Ú	date_unit)ÚdatetimeÚfromtimestampÚtimer5   r6   ÚcalendarÚtimegmÚutctimetuplerq   r@   rA   r8   r7   )r:   Zdatetime_inputrC   Úexpectedr   r   r   Útest_encode_datetime_conversionv  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sTt‚t|ƒt |¡ksjt‚d S )Nr‘   r’   r   )r”   Údater•   r–   r5   r6   ÚyearÚmonthÚdayr—   r˜   rq   r@   rA   r8   r7   )r:   Z
date_inputrC   Útuprš   r   r   r   Útest_encode_date_conversion~  s    
z.TestUltraJSONTests.test_encode_date_conversionÚtestr.   r1   r2   re   é   r+   éË< c                 C   s*   t  |¡}d| ¡ › d�}||ks&t‚d S )Nú"©r5   r6   Ú	isoformatr8   ©r:   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:t‚d S ©Nre   r£   r+   r¤   r¥   )r”   r–   ÚpytzÚutcr5   r6   r§   r8   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>t‚d S rª   )	r”   r–   ÚdateutilÚtzZtzutcr5   r6   r§   r8   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tdƒ‚d S )NÚnullzExpected nullr^   )r:   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sDt‚t tj|d
d�¡}||jd ksjt‚t tj|dd�¡}||jd ks�t‚t tj|dd�¡}||jks²t‚d}tjt	|d�� tj|dd� W 5 Q R X d S )NéÝ  é   é   é   r£   iÐI r‘   r’   i Êš;Úmsi@B Úuséè  Únsz*Invalid value 'foo' for option 'date_unit'rn   Úfoo)
r”   r   r5   r7   r6   Úvaluer8   rt   ru   rr   )r:   ÚvalZstampZ	roundtriprv   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s2t‚|t |¡ksDt‚d S )Nr{   F)r?   r|   )r:   Ú	unencodedr}   r~   r   r   r   Útest_encode_to_utf8¹  s
    
z&TestUltraJSONTests.test_encode_to_utf8c                 C   s,   d}t  |¡}t  t|ƒ¡}||ks(t‚d S )Nz{"obj": 31337}©r5   r7   r   r8   )r:   rz   Zdec1Zdec2r   r   r   Útest_decode_from_unicodeÂ  s    
z+TestUltraJSONTests.test_decode_from_unicodec              	   C   sZ   G dd„ dƒ}G dd„ dƒ}|ƒ }|ƒ |_ ||j _ tjtdd�� t |¡ W 5 Q R X 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 reachedrn   )rÈ   rt   ru   ÚOverflowErrorr5   r6   )r:   rÉ   rÊ   r±   r   r   r   Útest_encode_recursion_maxÊ  s    z,TestUltraJSONTests.test_encode_recursion_maxc              	   C   s0   d}d}t jt|d�� t |¡ W 5 Q R X d S )Nzfdsa sda v9sa fdsaz0Unexpected character found when decoding 'false'rn   ©rt   ru   rr   r5   r7   )r:   Z	jibberishrv   r   r   r   Útest_decode_jibberishÜ  s    z(TestUltraJSONTests.test_decode_jibberishÚbroken_jsonú[Ú{ú]Ú}c              	   C   s,   d}t jt|d�� t |¡ W 5 Q R X d S )NzExpected object or valuern   rÎ   )r:   rÐ   rv   r   r   r   Útest_decode_broken_jsonâ  s    
z*TestUltraJSONTests.test_decode_broken_jsonÚtoo_big_charc              	   C   s,   t jtdd�� t |d ¡ W 5 Q R X d S )Nz#Reached object decoding depth limitrn   i   rÎ   )r:   rÖ   r   r   r   Útest_decode_depth_too_bigð  s    z,TestUltraJSONTests.test_decode_depth_too_bigÚ
bad_stringz"TESTINGz
"TESTING\"ZtruÚfaÚnc              	   C   s,   d}t jt|d�� t |¡ W 5 Q R X d S )NzSUnexpected character found when decoding|Unmatched ''"' when when decoding 'string'rn   rÎ   )r:   rØ   rv   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   s<   t dƒD ].}tjtt |¡d�� t |¡ W 5 Q R X qd S )Nrº   rn   )Úrangert   ru   rr   ÚreÚescaper5   r7   )r:   rÐ   Úerr_msgÚ_r   r   r   Útest_decode_broken_json_leak  s    z/TestUltraJSONTests.test_decode_broken_json_leakÚinvalid_dictz{{{{31337}}}}z{{{{"key":}}}}z{{{{"key"}}}}c              	   C   s,   d}t jt|d�� t |¡ W 5 Q R X d S )Nz{Key name of object must be 'string' when decoding 'object'|No ':' found when decoding object value|Expected object or valuern   rÎ   )r:   râ   rv   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t‚d S r   )rq   r5   r7   r8   )r:   rä   r   r   r   Útest_decode_numeric_int(  s    z*TestUltraJSONTests.test_decode_numeric_intc                 C   sž   d}t  |¡}|t |¡ks t‚|t |¡ks2t‚|t  |¡ksDt‚d}t  |¡}|t |¡ksdt‚|t |¡ksvt‚|t  |¡ksˆt‚dt  d¡ksšt‚d S )Nz31337   1337ú z"  \u0000\r\n "z   
 rŠ   )r:   Úwrapped_inputrC   Zalone_inputr   r   r   Útest_encode_null_character.  s    

z-TestUltraJSONTests.test_encode_null_characterc                 C   s    d}t  |¡t |¡kst‚d S )Nz"31337 \u0000 31337"©r5   r7   r@   rA   r8   )r:   rç   r   r   r   Útest_decode_null_character>  s    z-TestUltraJSONTests.test_decode_null_characterc                 C   sb   ddddddg}t  |¡}|t |¡ks,t‚|t  |¡ks>t‚t t 	|¡t j|dtj
d�¡ d S )Nì   ÿÿÿÿ Tra   )r5   r6   r@   rA   r8   r7   rO   rc   r$   rb   r%   ©r:   Ú
long_inputrC   r   r   r   Ú test_encode_list_long_conversionB  s    ú
 ÿz3TestUltraJSONTests.test_encode_list_long_conversionrí   rë   l   ÿÿÿÿ c                 C   sD   t  |¡}|t |¡kst‚|t |¡ks.t‚|t  |¡ks@t‚d S r   rŠ   rì   r   r   r   Útest_encode_long_conversionT  s    
z.TestUltraJSONTests.test_encode_long_conversionÚbigNumì            ìûÿÿÿ        c              	   C   sJ   t  |¡}t|ƒ|kst‚tjtdd�� t  |¡|ks<t‚W 5 Q R X d S ©Nz#Value is too big|Value is too smallrn   )r5   r6   r   r8   rt   ru   rr   rA   )r:   rð   Úencodingr   r   r   Ú#test_dumps_ints_larger_than_maxsize\  s    
þz6TestUltraJSONTests.test_dumps_ints_larger_than_maxsizeÚint_expZ1337E40z1.337E40z1337E+9z	1.337e+40z1.337E-4c                 C   s   t  |¡t |¡kst‚d S r   ré   )r:   rö   r   r   r   Útest_decode_numeric_int_expg  s    z.TestUltraJSONTests.test_decode_numeric_int_expc              	   C   s,   d}t jt|d�� t d ¡ W 5 Q R X d S )NzExpected 'str' or 'bytes'rn   )rt   ru   rs   r5   rA   ©r:   rv   r   r   r   Útest_loads_non_str_bytes_raisesm  s    z2TestUltraJSONTests.test_loads_non_str_bytes_raisesr¾   l   £Mö+ l        l        l   ÿÿ c                 C   s&   d|› d�}t  |¡d |ks"t‚d S )Nz{"id": rÔ   Úid©r5   r7   r8   )r:   r¾   Údocr   r   r   Ú&test_decode_number_with_32bit_sign_bitr  s    z9TestUltraJSONTests.test_decode_number_with_32bit_sign_bitc                 C   s4   t dƒD ]&}d ¡ }|d d d }t |¡ qd S )Nre   õ   Ã¥é   r1   )rÜ   r6   r5   )r:   rà   ÚbaseÚescape_inputr   r   r   Útest_encode_big_escapey  s    z)TestUltraJSONTests.test_encode_big_escapec                 C   s@   t dƒD ]2}d ¡ }d}||d d d  | }t |¡ qd S )Nre   rþ   ó   "rÿ   r1   )rÜ   r6   r5   r7   )r:   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@t‚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   ©r:   r   r   r   ÚtoDict�  s    z8TestUltraJSONTests.test_to_dict.<locals>.DictTest.toDictN)rÅ   rÆ   rÇ   r  r   r   r   r   ÚDictTestŒ  s   r	  rJ   )r:   r	  ÚorC   r~   r   r   r   Útest_to_dict‰  s    

zTestUltraJSONTests.test_to_dictc              	      sX  G ‡ fdd„dƒ‰ d}t jt|d�� t ˆ dƒ¡ W 5 Q R X dtjˆ dƒtd�ksXt‚dd	„ }d
tjˆ dƒ|d�kszt‚dd„ }t jtdd�� tjˆ dƒ|d� W 5 Q R X dd„ }t tjˆ dƒ|d�¡dksÖt‚dd„ }t t t	 	ddd¡¡¡t tjˆ dƒ|d�¡k�st‚ˆ dƒˆ dƒg}t
 t
j|td�¡t tj|td�¡k�sTt‚d S )Nc                       s8   e Zd Zddœdd„Ze‡ fdd„ƒZedœdd„ZdS )	z<TestUltraJSONTests.test_default_handler.<locals>._TestObjectN©Úreturnc                 S   s
   || _ d S r   )r¾   )r:   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_attrc                 S   s
   t | jƒS r   )r   r¾   r  r   r   r   Ú__str__Ÿ  s    zDTestUltraJSONTests.test_default_handler.<locals>._TestObject.__str__)rÅ   rÆ   rÇ   r  Úpropertyr  r   r  r   r  r   r   r  —  s   r  rË   rn   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)rs   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)rt   ru   rÌ   r5   r6   r   r8   rs   r7   r”   r@   rA   rP   )r:   rv   r  r  r  r  Zobj_listr   r  r   Útest_default_handler–  s@     ÿÿýÿÿÿþ
ÿz'TestUltraJSONTests.test_default_handlerc                 C   sB   G dd„ dƒ}|ddddd�}t  t  |¡¡ddddœks>t‚d S )	Nc                   @   s"   e Zd Zddœdd„Zdd„ ZdS )z:TestUltraJSONTests.test_encode_object.<locals>._TestObjectNr  c                 S   s   || _ || _|| _|| _d S r   ©rI   ÚbÚ_cr   )r:   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.e)rÅ   rÆ   rÇ   r  r!  r   r   r   r   r  Í  s   r  r.   r1   r2   rŒ   r  )rI   r  r   rW   )r:   r  Ztest_objectr   r   r   Útest_encode_objectÌ  s    z%TestUltraJSONTests.test_encode_object)GrÅ   rÆ   rÇ   rt   ÚmarkZskipifr   r>   ÚparametrizerG   rK   rQ   rR   rT   rX   ÚmathÚpir]   r_   rd   rh   rj   rw   ry   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                   @   sb  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dddg¡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/d0œd,d1iged2d-difg	¡d3d4„ ƒZd5d6„ Zd%S )7ÚTestNumpyJSONTestsÚ
bool_inputTFc                 C   s$   t |ƒ}t t |¡¡|ks t‚d S r   )Úboolr5   r7   r6   r8   )r:   r*  r  r   r   r   Ú	test_boolÝ  s    zTestNumpyJSONTests.test_boolc              	   C   sH   t jddddddddgtd�}t jt t |¡¡td�}t ||¡ d S )NTF©r&   )r$   rb   r+  r5   r7   r6   rO   rc   )r:   Z
bool_arrayrC   r   r   r   Útest_bool_arrayâ  s     ÿz"TestNumpyJSONTests.test_bool_arrayc                 C   s4   t  |¡j}|dƒ}|t t |¡¡ƒ|ks0t‚d S )Nr.   ©r$   r&   Útyper5   r7   r6   r8   ©r:   Ú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$   Úarangerq   Úastyperb   r5   r7   r6   rO   rc   )r:   r2  ÚarrZ	arr_inputZ
arr_outputr   r   r   Útest_int_arrayï  s    
 ÿz!TestNumpyJSONTests.test_int_arrayc                 C   sd   |dkrt st d¡ t |¡j}|dkr8t d¡j}nt |¡j}|t 	t 
|¡¡ƒ|ks`t‚d S )N)r%   Úuint64z-Cannot test 64-bit integer on 32-bit platformr:  r%   )r   rt   Úskipr$   r&   r0  ZiinfoÚmaxr5   r7   r6   r8   r1  r   r   r   Útest_int_maxø  s    
zTestNumpyJSONTests.test_int_maxc                 C   s4   t  |¡j}|dƒ}|t t |¡¡ƒ|ks0t‚d S )NgõJY†8p@r/  ©r:   Ú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)r:   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 )Nre   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   Trf   ©	r$   r6  ÚreshaperO   rc   rb   r5   r7   r6   ©r:   r8  r   r   r   Útest_array_basic  s    

z#TestNumpyJSONTests.test_array_basicÚshape)re   re   ©r[   r[   rŒ   )r5  r.   c              	   C   sR   t  d¡}| |¡}t t  t t |¡¡¡|¡ t tjt |¡dd�|¡ d S )Nr5  Trf   rF  )r:   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   )r:   Zarr_listr8  Úresultr   r   r   Útest_array_list.  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  )r:   r&   r8  Zarr_outr   r   r   Útest_array_float>  s    
z#TestNumpyJSONTests.test_array_floatc              	   C   s8   t  d¡}tjt|d�� t t d¡¡ W 5 Q R X d S )Nz:array(1) (0d array) is not JSON serializable at the momentrn   r.   )	rÝ   rÞ   rt   ru   rs   r5   r6   r$   rb   rø   r   r   r   Útest_0d_arrayJ  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   s:   t j||d��" tjt |¡fddi|—Ž W 5 Q R X d S )Nrn   r#   T)rt   ru   r5   r7   rP   )r:   Z	bad_inputÚexc_typerß   Úkwargsr   r   r   Útest_array_numpy_exceptP  s    @z*TestNumpyJSONTests.test_array_numpy_exceptc                 C   sØ  dg i}t jt  |¡ddd�}t d¡|d k ¡ s8t‚t dg¡|d k ¡ sTt‚|d d ksdt‚ddig}t jt  |¡ddd�}t dg¡|d k ¡ s t‚t dg¡|d k ¡ s¼t‚|d d ksÌt‚d	}t j|ddd�}tjdd
ddddgtd� 	d¡}||d k ¡ �st‚|d d k�s(t‚t ddg¡|d k ¡ �sHt‚d}t j|ddd�}tjdd
ddddgtd� 	d¡}||d k ¡ �s’t‚t dddg¡|d k ¡ �s´t‚t ddg¡|d k ¡ �sÔt‚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}]é   é   é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Úallr8   rb   rq   rG  )r:   Zlabelled_inputrC   Zinput_dumpsZexpected_valsr   r   r   Útest_array_numpy_labelled“  s.    
  ÿ "z,TestNumpyJSONTests.test_array_numpy_labelled)rÅ   rÆ   rÇ   rt   r#  r$  r,  r.  r4  r9  r=  r@  rC  rD  rI  rL  rO  rP  rQ  rr   rs   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ddddg¡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+d,d-d.d/d0d1d2d3d4g	¡e
j d5d6d7g¡d8d9„ ƒƒZd:d;„ Zd<d=„ Zd>d?„ Ze
j d@edAdB�ed6dB�edCdDdDdE�edCdFdGdE�ed6dDdH�ed7dI�ed7d7dJ�ed7d7d7dK�edLdLdLdK�g	¡dMdN„ ƒZdOdP„ ZdQS )RÚTestPandasJSONTestsc           
      C   sR  |dkr(|r(|j  tjjd|› �d�¡ t||ƒ}tdddgddd	ggd
dgdddg|d�}|d krhi nd|i}|d kr|i nd|i}|j|k ¡ s–t	‚t
jt
j|f|Žf|Ž}|j|k ¡ sÀt	‚|dkrÜt|ƒ}	tf |	Ž}nt|ƒ}|dk�rdddg|_ddg|_n(|dk�rddg|_n|dk�r.| ¡ }|j|k ¡ �sBt	‚t ||¡ d S )Nr   zNot idiomatic pandas if orient=r)   r.   r1   r2   rŒ   r[   é   rI   r  ÚxÚyÚz©r   Úcolumnsr&   r"   r#   r   r   r   r   )ÚnodeÚ
add_markerrt   r#  Úxfailr'   r   Zdtypesra  r8   r5   r7   r6   r   ri  r   Z	transposerO   Úassert_frame_equal)
r:   r!   r"   r#   r&   ÚdfrB   Údecode_kwargsrC   r~   r   r   r   Útest_dataframeµ  s:    ÿ
ü


z"TestPandasJSONTests.test_dataframec                 C   s”   t dddgdddggddgd	d
dgd�}|| ¡ dœ}|d krBi nd|i}t tj|f|Ž¡t tj|f|Ž¡dœ}t tj|f|Ž¡|ks�t‚d S )Nr.   r1   r2   rŒ   r[   rd  rI   r  re  rf  rg  )r   ri  )Zdf1Zdf2r"   )r   Úcopyr5   r7   r6   r8   )r:   r"   rn  ÚnestedrV  Úexpr   r   r   Útest_dataframe_nestedÝ  s      ÿþz)TestPandasJSONTests.test_dataframe_nestedc                 C   s²   |dkr$|j  tjj|› d�d�¡ tdddgddd	ggd
dgdddgtd�}|d krZi nd|i}ttjtj	|f|Žddd�Ž }|d kr�|j
}n|dkr¢ddg|_t ||¡ d S )N)r   r   z incompatible for labelled=Truer)   r.   r1   r2   rŒ   r[   rd  rI   r  re  rf  rg  rh  r"   TrX  r   r   )rj  rk  rt   r#  rl  r   rq   r5   r7   r6   ÚTr   rO   rm  )r:   r"   r!   rn  rV  rC   r   r   r   Útest_dataframe_numpy_labelledë  s&    ÿüÿ
z1TestPandasJSONTests.test_dataframe_numpy_labelledc           	   	   C   s"  t ||ƒ}tddddddgddd	d
dddg|d� ¡ }|j|ksDt‚|d krPi nd|i}|d krdi nd|i}tjtj|f|Žf|Ž}|j|ks’t‚|dkr®t|ƒ}tf |Ž}nt|ƒ}|dkràd |_	| ¡ }ddddddg|_
n"|dk�rd |_	ddddddg|_
|j|k�st‚t ||¡ d S )Nre   r`   é   é(   é2   é<   Úseriesrd  é   rµ   ri   r+   )Únamer   r&   r"   r#   r   )Nr   Ú6Ú7Ú8rm   Ú10Z15)r   r   r   r.   r1   r2   rŒ   r[   )r'   r	   Úsort_valuesr&   r8   r5   r7   r6   r   r}  r   rO   Úassert_series_equal)	r:   r"   r#   r&   r‘   rB   ro  rC   r~   r   r   r   Útest_series  s2    
ü

zTestPandasJSONTests.test_seriesc              	   C   s–   t ddddddgddd	d
dddgd� ¡ }|| ¡ dœ}|d krDi nd|i}t tj|f|Ž¡t tj|f|Ž¡dœ}t tj|f|Ž¡|ks’t‚d S )Nre   r`   rw  rx  ry  rz  r{  rd  r|  rµ   ri   r+   )r}  r   )Ús1Ús2r"   )r	   r‚  rq  r5   r7   r6   r8   )r:   r"   r‘   rr  rV  rs  r   r   r   Útest_series_nested%  s      ÿ
þz&TestPandasJSONTests.test_series_nestedc                 C   sä  t ddddddg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 |Ž}t ||¡ |j|jks¢t‚ttjtj|dd�d	d
�ƒ}t f |Ž}t ||¡ |j|jksä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 ||¡ t t tj|dd�¡dd�}t ||¡ t tjtj|dd�d	d
�dd�}t ||¡ d S )NrT  é-   é   éb   é+   é   r   )r}  Trf   r   )r"   r   r   )	r   r5   r7   r6   rO   Úassert_index_equalr   r}  r8   )r:   ÚirC   r~   r   r   r   Ú
test_index2  sD    

 ÿ ÿ ÿ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ƒ  )r:   r“   Úrngr<   r=   ÚtsZ
idx_valuesr   r   r   Útest_datetime_index`  s    
z'TestPandasJSONTests.test_datetime_indexÚinvalid_arrz[31337,]z[,31337]z[]]z[,]c              	   C   s,   d}t jt|d�� t |¡ W 5 Q R X d S )Nz[Expected object or value|Trailing data|Unexpected character found when decoding array valuern   rÎ   )r:   r™  rv   r   r   r   Útest_decode_invalid_arrayq  s    ÿz-TestPandasJSONTests.test_decode_invalid_arrayr8  rˆ   c                 C   s   |t  t|ƒ¡kst‚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t‚d S r   rÂ   )r:   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 5 Q R X d S ró   rÎ   )r:   rž  r   r   r   Útest_decode_too_extreme_numbersŠ  s
    þz3TestPandasJSONTests.test_decode_too_extreme_numbersc                 C   s   i t  d¡kst‚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 5 Q R X d S )NzTrailing datarn   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 5 Q R X d S ró   )rt   ru   rr   r5   rA   )r:   r½   r   r   r   Útest_decode_array_with_big_int™  s
    þz2TestPandasJSONTests.test_decode_array_with_big_intÚfloat_numbergÞ3ˆÓ­ùñ?gªRCÊÀó?g¨B4¡æ‡õ?gŽš
LO÷?g‰	jøù?g[_$´åÜú?gŒ¹k	ù ü?g}?5^ºIþ?gÍÌÌÌÌÌô?Úsignrl   r.   c                 C   s&   ||9 }t j|t t|ƒ¡dd� d S )NgVçž¯Ò<)Zrtol)rO   rB  r5   rA   r   )r:   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   )r:   r‘   re  r   r   r   Útest_encode_big_set´  s    z'TestPandasJSONTests.test_encode_big_setc                 C   s   dt  tƒ ¡kst‚d S )Nz[])r5   r6   r¦  r8   r  r   r   r   Útest_encode_empty_set½  s    z)TestPandasJSONTests.test_encode_empty_setc              	   C   sD   ddddddddd	h	}t  |¡}t  |¡}|D ]}||ks.t‚q.d S )
Nr.   r1   r2   rŒ   r[   rd  r|  rµ   ri   rJ   )r:   r‘   r}   r~   r   r   r   r   Útest_encode_setÀ  s
    

z#TestPandasJSONTests.test_encode_setÚtdin  )Údaysé   r[   )ÚhoursÚminutesÚsecondsr`   rw  )r¬  Únanoseconds)r±  )Úmicrosecondsr±  )Zmillisecondsr²  r±  iç  c                 C   s.   t j|dd�}d| ¡ › d�}||ks*t‚d S )NT)Z	iso_datesr¥   r¦   )r:   r«  rN  rš   r   r   r   Útest_encode_timedelta_isoÈ  s    z-TestPandasJSONTests.test_encode_timedelta_isoc                 C   s.   t ddgdd�}t|d�}| ¡ dks*t‚d S )Nz
2022-04-06z
2022-04-07ÚDr�  r’  z{})r   r   Úto_jsonr8   )r:   Úprn  r   r   r   Útest_encode_periodindexÝ  s    
z+TestPandasJSONTests.test_encode_periodindexN)rÅ   rÆ   rÇ   rp  rt  rv  r„  r‡  r�  r˜  rt   r#  r$  rš  r›  r�  rŸ  r   r¡  r¢  r¥  r¨  r©  rª  r
   r³  r·  r   r   r   r   rc  ´  sv   (!.üþ	




÷þ	

÷þ
rc  )'r—   r”   r3   r@   rM   r%  rÝ   r–   r®   r#   r$   rt   r«   Zpandas._libs.jsonZ_libsr5   Zpandas.compatr   r   Zpandasr   r   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