3
Ud>                 @   s   d Z ddlmZ ddlZddlZddljjZ	ddl
ZddljZddlmZmZ ejdZeejZejjdZeejjG dd dZdS )	z test feather-format compat     )LooseVersionN)read_feather
to_featherpyarrowzignore:The Sparsec               @   s   e Z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	e
jddd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! Ze
jdejd"d# ZdS )$TestFeatherc             C   s8   t j|$ tj }t|| W d Q R X W d Q R X d S )N)pytestZraisestmensure_cleanr   )selfdfexcpath r   P/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/io/test_feather.pycheck_error_on_write   s    
z TestFeather.check_error_on_writeNc          
   K   sJ   |d kr|}t j ,}t||f| t|f|}t j|| W d Q R X d S )N)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   sF   x@t jdddgddt jdtjdddggD ]}| j|t q.W d S )N         foo20130101)pdZSeries	Timestampnparrayr   
ValueError)r
   objr   r   r   
test_error+   s    zTestFeather.test_errorc             C   s"  t jtdttddtjddjdtjddd	d
dtjdgdddgdtjdgt jtdt j	tt j
dddd dt j	tt j
ddddd dt jdt jt jdgt j	tt j
ddddd dd}ttdkrt jdddd|d< t jddd|d< |jjjjdkst| j| 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
0.16.1.devZ2013M)r(   r'   r'   z1 dayZ
timedeltas)r   	DataFramelistranger   arangeZastypenanZCategoricalZDatetimeIndex
date_ranger   ZNaTpyarrow_versionr   Zperiod_rangeZtimedelta_ranger1   r&   r)   zoneAssertionErrorr   )r
   r   r   r   r   
test_basic6   s0    


 zTestFeather.test_basicc             C   s4   t jtjdjddtddj }| j|t d S )N   r#   r   Zaaa)columns)	r   r3   r   r6   reshaper4   copyr   r   )r
   r   r   r   r   test_duplicate_columns]   s    $z"TestFeather.test_duplicate_columnsc             C   s,   t jtjdjddj }| j|t d S )Nr=   r#   r   )r   r3   r   r6   r?   r@   r   r   )r
   r   r   r   r   test_stringify_columnsd   s    z"TestFeather.test_stringify_columnsc             C   sP   t j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col4rD   rE   )r   r>   )r   r3   r4   r5   r   )r
   r   r>   r   r   r   test_read_columnsi   s    zTestFeather.test_read_columnsr   z0.17.1)min_versionc             C   s4   t jddgddgddgd}| j|dd	gd
 d S )Nr   r   xyTF)ABCrK   rJ   )r>   )r   r3   r   )r
   r   r   r   r   read_columns_different_orderv   s    z(TestFeather.read_columns_different_orderc             C   s$   t jddddgi}| j|t d S )Nar   g       @)r   r3   r   	Exception)r
   r   r   r   r   test_unsupported_other|   s    z"TestFeather.test_unsupported_otherc             C   s4   t jdtjdi}| j|dd | j|dd d S )NrJ   i T)Zuse_threadsF)r   r3   r   r6   r   )r
   r   r   r   r   test_rw_use_threads   s    zTestFeather.test_rw_use_threadsc          	   C   s   t jddddgi}| j| xPdddgt jdddtddddgt jjdddggD ]}||_| j|t	 qVW dddg|_d|j_
| j|t	 dddg|_t jjdg|_| j|t	 d S )NrJ   r   r   r   r#   r   )r'   r"   rN   br   r   )rN   r   )rN   r   )rR   r   )rN   r   )r   r3   r   r8   r4   Z
MultiIndexfrom_tuplesindexr   r   namer>   )r
   r   rT   r   r   r   test_write_with_index   s     
z!TestFeather.test_write_with_indexc             C   s,   t j j }t j|jtj}t j|| d S )N)r   makeDataFramereset_indexZround_trip_pathlibr   r   r   r   )r
   r   r   r   r   r   test_path_pathlib   s    zTestFeather.test_path_pathlibc             C   s,   t j j }t j|jtj}t j|| d S )N)r   rW   rX   Zround_trip_localpathr   r   r   r   )r
   r   r   r   r   r   test_path_localpath   s    zTestFeather.test_path_localpathz
0.16.1.devc             C   s$   t j j }| j|tddd d S )Nr   )version)r   )r   rW   rX   r   dict)r
   r   r   r   r   test_passthrough_keywords   s    z%TestFeather.test_passthrough_keywordsc             C   s(   d}t j|}t j|}tj|| d S )Nzmhttps://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/io/data/feather/feather-0_3_1.feather)r   r   r   r   )r
   Zfeather_fileurlr   resr   r   r   test_http_path   s    

zTestFeather.test_http_path)__name__
__module____qualname__r   r   r!   r<   rA   rB   rF   tdZ
skip_if_norM   rP   rQ   rV   rY   rZ   r]   r   networkr`   r   r   r   r   r      s    'r   )__doc__Zdistutils.versionr   Znumpyr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsrd   Zpandasr   Zpandas._testingZ_testingr   Zpandas.io.feather_formatr   r   Zimportorskipr   __version__r9   markfilterwarningsZfilter_sparseZsingler   r   r   r   r   <module>   s   


