U
    *if
                  	   @   s  d 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ZddlmZ ddlmZ dd Zejdd Zejdd	d
 Zejddd Zdd Ze
de
dddd Zdd Zdd Zejjejejdejdejdejdejddd Zejddd Zejjejejd d!d" Z d#d$ Z!ejjejejj"e#d%d&d'd( Z$ejd)d*d+ Z%ejd)ejd,d-d. Z&d/d0 Z'd1d2 Z(d3d4 Z)dS )5z1
Testing that we work in the downstream packages
    N	DataFramec                 C   s8   zt | W S  tk
r2   td|  d Y nX d S )Nzskipping as z not available)	importlibimport_moduleModuleNotFoundErrorpytestskip)name r
   O/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/test_downstream.pyr      s    r   c                   C   s   t ddddgiS )NA         r   r
   r
   r
   r   df   s    r   z,ignore:.*64Index is deprecated:FutureWarningc              
   C   sj   t d}zLtd}td}dd lm} |j| dd}|jd k	sDt|	 d k	sTtW 5 t d| X d S )Ncompute.use_numexprtoolzdaskr   r   Znpartitions)
pd
get_option
set_optionr   dask.dataframe	dataframefrom_pandasr   AssertionErrorcompute)r   olduser   r   ddZddfr
   r
   r   	test_dask!   s    
r   c               
   C   s   t d} zhtd}dd lm} dd lm} t ddddg}|j	|dd	}|
| }t
|}t|| W 5 t d|  X d S )
Nr   r   r   g      ?gffffff@g@g      @r   r   )r   r   r   r   Z
dask.arrayarrayr   r   Seriesr   Zfixr   nptmZassert_series_equal)r   r   dar   sZdsresultexpectedr
   r
   r   test_dask_ufunc5   s    

r(   c                 C   s   t d}|  d k	std S )Nxarray)r   Z	to_xarrayr   )r   r)   r
   r
   r   test_xarrayM   s    r*   cftimer)   z0.10.4c               	   C   sj   dd l } dd l}|jddd}| ddd}tjtddd	 |j|d
d}W 5 Q R X d}||ksftd S )Nr   Z0001r   )Zperiodsi  r   
deprecatedF)matchZcheck_stacklevelZnearest)method)	r+   r)   Zcftime_rangeZDatetimeGregorianr#   Zassert_produces_warningFutureWarningZget_locr   )r+   r)   timeskeyr&   r'   r
   r
   r   test_xarray_cftimeindex_nearestT   s      r2   c                   C   s   t tjdddg d S )N-OO-cimport pandas
subprocess
check_callsys
executabler
   r
   r
   r   test_oo_optimizablee   s    r;   c                   C   s   t tjdddg d S )Nr3   r4   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))r6   r
   r
   r
   r   )test_oo_optimized_datetime_index_unpicklej   s    r<   z(ignore:pandas.util.testing is deprecatedzignore:can't:ImportWarningzGignore:Using or importing the ABCs from 'collections:DeprecationWarningz5ignore:`np.MachAr` is deprecated.*:DeprecationWarningc                  C   sL   t d} dd lm} dd lm  m} |jddj}|jd|d	  d S )Nstatsmodelsr   ZGuerryZHistDataz$Lottery ~ Literacy + np.log(Pop1831))data)
r   Zstatsmodels.apiapiZstatsmodels.formula.apiZformuladatasetsZget_rdatasetr>   Zolsfit)r=   smZsmfr   r
   r
   r   test_statsmodelsy   s
    rC   c                 C   sf   t d}ddlm}m} | }|jddd}||jd d |jd d  |	|jdd   d S )Nsklearnr   )r@   svmgMbP?g      Y@)gammaC)
r   rD   r@   rE   Zload_digitsZSVCrA   r>   targetZpredict)r   rD   r@   rE   digitsZclfr
   r
   r   test_scikit_learn   s     rK   ignorec                  C   s&   t d} | d}| jdd|d d S )NseaborntipsdayZ
total_bill)xyr>   )r   Zload_datasetZ	stripplot)rM   rN   r
   r
   r   test_seaborn   s    
rR   c                  C   s   t jddd td} d S )N
pandas_gbqz0.10.0)Z
minversion)r   Zimportorskipr   )rS   r
   r
   r   test_pandas_gbq   s    rT   z|The Quandl API key must be provided either through the api_key variable or through the environmental variable QUANDL_API_KEY)raisesreasonc                  C   s   t d} | dddd d S )Npandas_datareaderFZquandlz
2017-01-01z
2017-02-01)r   Z
DataReader)rW   r
   r
   r   test_pandas_datareader   s    	rY   z"ignore:can't resolve:ImportWarningc                  C   s*   t d} | jd}| |d k	s&td S )N	geopandasZnaturalearth_lowres)r   r@   get_path	read_filer   )rZ   fpr
   r
   r   test_geopandas   s    r^   z4ignore:RangeIndex.* is deprecated:DeprecationWarningc                 C   s,   t d}|j| }| }t||  d S )Npyarrow)r   Tabler   Z	to_pandasr#   assert_frame_equal)r   r_   tabler&   r
   r
   r   test_pyarrow   s    rc   c                 C   sR   t d}|dd}t|}| s0t||s0tt|d }t||sNtd S )Ntorchi  @   r   )r   Zrandnr   r"   Zshares_memoryr   r   r!   )Zusing_array_managerrd   Z
val_tensorr   Zserr
   r
   r   test_torch_frame_construction   s    rf   c                 C   sN   t d}|| }|j||jd}t| | |j||jd}t| | d S )Nyaml)Loader)r   dumploadrh   r#   ra   ZUnsafeLoader)r   rg   ZdumpedZloadedZloaded2r
   r
   r   test_yaml_dump   s    
rk   c               	   C   s   t jdd} | ddg}t| }d|kr8td | dddg}d	|  d
}tjtj	|d}tj|tj
d W 5 Q R X |jj }dD ]}||kstqd S )N\/r4   z$import pandas;print(pandas.__file__)zsite-packagesz pandas installed as site packagez-sSEr5   zCommand '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.)r-   )stderr)numpyZpytzZdateutil)r9   r:   replacer7   check_outputdecoder   r   rU   CalledProcessErrorSTDOUTvaluestdoutr   )Zpyexecalloutputmsgexcr	   r
   r
   r    test_missing_required_dependency   s    


r{   )*__doc__r   r7   r9   ro   r"   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   r   Zpandas._testingZ_testingr#   r   Zfixturer   markfilterwarningsr   r(   r*   Z
skip_if_nor2   r;   r<   networkrC   rK   rR   rT   Zxfail
ValueErrorrY   r^   rc   rf   rk   r{   r
   r
   r
   r   <module>   sp   
















