a
    GGb
                  	   @   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   s6   zt | W S  ty0   td|  d Y n0 d S )Nzskipping as z not available)	importlibimport_moduleModuleNotFoundErrorpytestskip)name r
   ;lib/python3.9/site-packages/pandas/tests/test_downstream.pyr      s    r   c                   C   s   t dg diS )NA)         r   r
   r
   r
   r   df   s    r   z,ignore:.*64Index is deprecated:FutureWarningc              
   C   sv   t d}zXtd}td}dd lm} |j| dd}|jd usDJ | d usTJ W t d| nt d| 0 d S )Ncompute.use_numexprtoolzdaskr   r   Znpartitions)	pd
get_optionr   dask.dataframe	dataframefrom_pandasr   compute
set_option)r   olduser   r   ddZddfr
   r
   r   	test_dask!   s    
r   c               
   C   s   t d} zptd}dd lm} dd lm} t g d}|j|dd}|	|
 }t	|}t|| W t d|  nt d|  0 d S )Nr   r   r   )g      ?gffffff@g@g      @r   r   )r   r   r   Z
dask.arrayZarrayr   r   Seriesr   Zfixr   nptmZassert_series_equalr   )r   r   Zdar   sZdsresultexpectedr
   r
   r   test_dask_ufunc5   s    

r%   c                 C   s   t d}|  d usJ d S )Nxarray)r   Z	to_xarray)r   r&   r
   r
   r   test_xarrayM   s    r'   cftimer&   z0.10.4c                  C   s~   dd l } dd l}|jddd}| ddd}tjtddd	 |j|d
d}W d    n1 s`0    Y  d}||kszJ d S )Nr   Z0001r   )Zperiodsi  r   Z
deprecatedF)matchZcheck_stacklevelZnearest)method)r(   r&   Zcftime_rangeZDatetimeGregorianr!   Zassert_produces_warningFutureWarningZget_loc)r(   r&   timeskeyr#   r$   r
   r
   r   test_xarray_cftimeindex_nearestT   s    ,r.   c                   C   s   t tjdddg d S )N-OO-cimport pandas
subprocessZ
check_callsys
executabler
   r
   r
   r   test_oo_optimizablee   s    r6   c                   C   s   t tjdddg d S )Nr/   r0   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))r2   r
   r
   r
   r   )test_oo_optimized_datetime_index_unpicklej   s    r7   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.apiZapiZstatsmodels.formula.apiZformuladatasetsZget_rdatasetr9   Zolsfit)r8   ZsmZsmfr   r
   r
   r   test_statsmodelsy   s
    r<   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@)ZgammaC)
r   r=   r:   r>   Zload_digitsZSVCr;   r9   targetZpredict)r   r=   r:   r>   ZdigitsZclfr
   r
   r   test_scikit_learn   s     rB   ignorec                  C   s&   t d} | d}| jdd|d d S )NseaborntipsZdayZ
total_bill)xyr9   )r   Zload_datasetZ	stripplot)rD   rE   r
   r
   r   test_seaborn   s    
rH   c                  C   s   t jddd td} d S )N
pandas_gbqz0.10.0)Z
minversion)r   Zimportorskipr   )rI   r
   r
   r   test_pandas_gbq   s    rJ   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)rM   r
   r
   r   test_pandas_datareader   s    	rO   z"ignore:can't resolve:ImportWarningc                  C   s*   t d} | jd}| |d us&J d S )N	geopandasZnaturalearth_lowres)r   r:   Zget_pathZ	read_file)rP   fpr
   r
   r   test_geopandas   s    rR   z4ignore:RangeIndex.* is deprecated:DeprecationWarningc                 C   s,   t d}|j| }| }t||  d S )Npyarrow)r   ZTabler   Z	to_pandasr!   assert_frame_equal)r   rS   tabler#   r
   r
   r   test_pyarrow   s    rV   c                 C   sR   t d}|dd}t|}| s0t||s0J t|d }t||sNJ d S )Ntorchi  @   r   )r   Zrandnr   r    Zshares_memoryr   r   )Zusing_array_managerrW   Z
val_tensorr   Zserr
   r
   r   test_torch_frame_construction   s    rY   c                 C   sN   t d}|| }|j||jd}t| | |j||jd}t| | d S )Nyaml)Loader)r   dumploadr[   r!   rT   ZUnsafeLoader)r   rZ   ZdumpedZloadedZloaded2r
   r
   r   test_yaml_dump   s    
r^   c                  C   s   t jdd} | ddg}t| }d|v r8td | dddg}d	|  d
}tjtj	|d }tj|tj
d W d    n1 s0    Y  |jj }dD ]}||v sJ qd S )N\/r0   z$import pandas;print(pandas.__file__)zsite-packagesz pandas installed as site packagez-sSEr1   zCommand '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.)r)   )stderr)numpyZpytzZdateutil)r4   r5   replacer3   Zcheck_outputdecoder   r   rK   ZCalledProcessErrorZSTDOUTvaluestdout)ZpyexeZcalloutputmsgexcr	   r
   r
   r    test_missing_required_dependency   s    


.rj   )*__doc__r   r3   r4   rb   r    r   Zpandas.util._test_decoratorsutilZ_test_decoratorsZtdZpandasr   r   Zpandas._testingZ_testingr!   r   Zfixturer   Zmarkfilterwarningsr   r%   r'   Z
skip_if_nor.   r6   r7   Znetworkr<   rB   rH   rJ   Zxfail
ValueErrorrO   rR   rV   rY   r^   rj   r
   r
   r
   r   <module>   sp   
















