U
    ÎZj  ã                   @   s|   d Z ddlZddlZddlZddlmZ ddl	m
Z
mZ ejddd�Zej d¡Zeejjej d¡G d	d
„ d
ƒƒƒƒZdS )z test feather-format compat é    N)Úread_featherÚ
to_featherÚpyarrowz1.0.1)Z
minversionzignore:The Sparsez8ignore:CategoricalBlock is deprecated:DeprecationWarningc                   @   s¨   e Zd Zdd„ Zdd„ Zdi f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dd„ Zdd„ Zdd„ Zdd„ Zejjejd d!d"�d#d$„ ƒƒZdS )%ÚTestFeatherc              
   C   s<   t j||d��$ t ¡ �}t||ƒ W 5 Q R X W 5 Q R X d S )N)Úmatch)ÚpytestZraisesÚtmÚensure_cleanr   )ÚselfÚdfÚexcÚerr_msgÚpath© r   ú_/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/io/test_feather.pyÚcheck_error_on_write   s    
z TestFeather.check_error_on_writec              
   C   s8   t  t¡�$ t  ¡ �}t||ƒ W 5 Q R X W 5 Q R X d S ©N)r   Zexternal_error_raisedÚ	Exceptionr	   r   )r
   r   r   r   r   r   Úcheck_external_error_on_write   s    
z)TestFeather.check_external_error_on_writeNc              	   K   sJ   |d kr|}t  ¡ �,}t||f|Ž t|f|Ž}t  ||¡ W 5 Q R X d S r   )r   r	   r   r   Úassert_frame_equal)r
   r   ÚexpectedÚwrite_kwargsZread_kwargsr   Úresultr   r   r   Úcheck_round_trip$   s    
zTestFeather.check_round_tripc              	   C   sH   d}t  dddg¡ddt  d¡t dddg¡fD ]}|  |t|¡ q0d S )Nz'feather only support IO with DataFramesé   é   é   ÚfooÚ20130101)ÚpdZSeriesÚ	TimestampÚnpÚarrayr   Ú
ValueError)r
   ÚmsgÚobjr   r   r   Ú
test_error/   s    ûzTestFeather.test_errorc                 C   s(  t  tdƒttddƒƒt dd¡ d¡tjddd	d
�dtjdgdddgdtjdgt  tdƒ¡t j	tt j
ddd�ƒd d�t j	tt j
dddd�ƒd d�t  d¡t jt  d¡gt j	tt j
dddd�ƒd d�dœ¡}t jdddd�|d< t jddd�|d< t  ddd¡|d< |jjjjdk�st‚|  |¡ d S )NÚabcr   é   r   é   Úu1g      @g      @Zfloat64)Údtypeg      ð?TFr   ©Úperiods)Úfreqz
US/Eastern)r-   ÚtzZ20130103Úns)r-   r.   )ÚstringÚintZuintÚfloatZfloat_with_nullÚboolZbool_with_nullÚcatÚdtÚdttzZdt_with_nullZdtnsZ2013ÚM)r.   r-   r-   z1 dayZ
timedeltasr   Z	intervals)r   Ú	DataFrameÚlistÚranger!   ÚarangeZastypeÚnanZCategoricalZDatetimeIndexÚ
date_ranger    ZNaTZperiod_rangeZtimedelta_rangeZinterval_ranger7   r+   r/   ÚzoneÚAssertionErrorr   ©r
   r   r   r   r   Ú
test_basic;   s@    

 ÿþý ÿëÿzTestFeather.test_basicc                 C   s2   t jt d¡ dd¡tdƒd� ¡ }|  |¡ d S )Né   r(   r   Zaaa©Úcolumns)r   r9   r!   r<   Úreshaper:   Úcopyr   rA   r   r   r   Útest_duplicate_columns_   s    $z"TestFeather.test_duplicate_columnsc                 C   s2   t  t d¡ dd¡¡ ¡ }d}|  |t|¡ d S )NrC   r(   r   ú%feather must have string column names)r   r9   r!   r<   rF   rG   r   r#   )r
   r   r$   r   r   r   Útest_stringify_columnsf   s    z"TestFeather.test_stringify_columnsc              	   C   sP   t  tdƒttddƒƒtdƒttddƒƒdœ¡}ddg}| j||| |d	� d S )
Nr'   r   r(   Zxyzé   )Úcol1Zcol2Úcol3Zcol4rL   rM   )r   rE   )r   r9   r:   r;   r   )r
   r   rE   r   r   r   Útest_read_columnsl   s    üÿzTestFeather.test_read_columnsc                 C   s4   t  ddgddgddgdœ¡}| j|dd	gd
� d S )Nr   r   ÚxÚyTF)ÚAÚBÚCrR   rQ   rD   )r   r9   r   rA   r   r   r   Úread_columns_different_ordery   s    z(TestFeather.read_columns_different_orderc                 C   s"   t  ddddgi¡}|  |¡ d S )NÚar   g       @)r   r9   r   rA   r   r   r   Útest_unsupported_other~   s    z"TestFeather.test_unsupported_otherc                 C   s4   t  dt d¡i¡}| j|dd� | j|dd� d S )NrQ   i † T)Zuse_threadsF)r   r9   r!   r<   r   rA   r   r   r   Útest_rw_use_threads„   s    zTestFeather.test_rw_use_threadsc              	   C   sÊ   t  ddddgi¡}|  |¡ d}dddgt jddd�td	ƒdddgt j d
ddg¡fD ]}||_|  |t	|¡ qXdddg|_d|j_
d}|  |t	|¡ dddg|_t j d
g¡|_d}|  |t	|¡ d S )NrQ   r   r   r   zsfeather does not support serializing .* for the index; you can \.reset_index\(\) to make the index into column\(s\)r(   r   r,   r'   )rU   r   )rU   r   )Úbr   r   r   z=feather does not serialize index meta-data on a default indexrI   )r   r9   r   r>   r:   Z
MultiIndexÚfrom_tuplesÚindexr   r#   ÚnamerE   )r
   r   r$   rZ   r   r   r   Útest_write_with_index‰   s(    
ÿûz!TestFeather.test_write_with_indexc                 C   s*   t  ¡  ¡ }t  |jt¡}t  ||¡ d S r   )r   ÚmakeDataFrameÚreset_indexZround_trip_pathlibr   r   r   ©r
   r   r   r   r   r   Útest_path_pathlibª   s    zTestFeather.test_path_pathlibc                 C   s*   t  ¡  ¡ }t  |jt¡}t  ||¡ d S r   )r   r]   r^   Zround_trip_localpathr   r   r   r_   r   r   r   Útest_path_localpath¯   s    zTestFeather.test_path_localpathc                 C   s"   t  ¡  ¡ }| j|ddid� d S )NÚversionr   )r   )r   r]   r^   r   rA   r   r   r   Útest_passthrough_keywords´   s    z%TestFeather.test_passthrough_keywordsúkhttps://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/feather/feather-0_3_1.featherT)ÚurlZcheck_before_testc                 C   s$   d}t |ƒ}t |ƒ}t ||¡ d S )Nrd   )r   r   r   )r
   Zfeather_filere   r   Úresr   r   r   Útest_http_path¸   s
    ÿzTestFeather.test_http_path)Ú__name__Ú
__module__Ú__qualname__r   r   r   r&   rB   rH   rJ   rN   rT   rV   rW   r\   r`   ra   rc   r   ÚmarkÚnetworkr   rg   r   r   r   r   r      s*   $!ûr   )Ú__doc__Únumpyr!   r   Zpandasr   Zpandas._testingZ_testingr   Zpandas.io.feather_formatr   r   Zimportorskipr   rk   ÚfilterwarningsZfilter_sparseZ
single_cpur   r   r   r   r   Ú<module>   s   
