
    o[we *                        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Z ddl	m
c mZ ddlZddlmZmZmZmZ ddlmZ ddlmZmZ ddlmZ ddlmZ ej        d             Zd	 Zd
 Z d Z!d Z"d Z#ej$        j%        d             Z&ej$        j%        d             Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.ej$        j%        d             Z/d Z0d Z1 ej        dd ej2        d ej3        d                     ej2        d ej3        d                    g           d!             Z4ej$        5                    d"d#d$g          d%             Z6d)d'Z7d( Z8dS )*z1
Testing that we work in the downstream packages
    N)IntCastingNaNError)	DataFrameDatetimeIndexSeriesTimedeltaIndex)DatetimeArrayTimedeltaArray)_sequence_to_dt64ns)sequence_to_td64nsc                  (    t          dg di          S )NA         )r        <lib/python3.11/site-packages/pandas/tests/test_downstream.pydfr      s    c999%&&&r   c                 L   t          j        d          }	 t          j        d           t          j        d          }|                    | d          }|j        J |                                J 	 t          j        d|           d S # t          j        d|           w xY w)Ncompute.use_numexprtoolzdask.dataframer   npartitions)pd
get_optionpytestimportorskipfrom_pandasr   compute
set_option)r   olduseddddfs       r   	test_daskr&   #   s     ]011F5G$$$ !122nnRQn//u   {{}}((((
+V44444+V4444s   AB B#c                     t          j        d          } 	 t          j        d          }t          j        d          }t	          g d          }|                    |d          }|                    |                                          }t          j        |          }t          j
        ||           t          j        d|            d S # t          j        d|            w xY w)Nr   
dask.arrayr   )g      ?gffffff@g@g      @r   r   )r   r   r   r   r   r    fixr!   nptmassert_series_equalr"   )r#   dar$   sdsresultexpecteds          r   test_dask_ufuncr2   3   s     ]011F5 .. !122'''((^^A1^--##%%6!99
vx000
+V44444+V4444s   B C C$c                     t          j        d          } t          j        g d          }|                     |          }t          |          }t          |          }t          j        ||           d}t          j        t          |          5  t          |d           d d d            n# 1 swxY w Y   d}t          j
        |d<   t          j        t          |          5  t          |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          |d           d d d            d S # 1 swxY w Y   d S )	Nr   )r   g      @r   z)Trying to coerce float values to integersmatchi8dtypez9Cannot convert non-finite values \(NA or inf\) to integerr   )r   r   r*   array
from_arrayr   r+   r,   raises
ValueErrornanr   )r$   arrdarrresr1   msgs         r   7test_construct_dask_float_array_int_dtype_match_ndarrayrB   F   s    
	-	.	.B
(;;;

C==D
,,Cc{{H3))) 6C	z	-	-	- ! !t4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! GCVCF	)	5	5	5 ! !t4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
)	5	5	5    s$                                   s6   B..B25B2%DD
D)EEEc                 Z    t          j        d           |                                 J d S )Nxarray)r   r   	to_xarray)r   s    r   test_xarrayrF   `   s-    
!!!<<>>%%%%%r   c                      t          j        d          } t          j        dd          }|                    dd          }|                     dd	d	          }|                    |gd
          }d	}||k    sJ d S )NcftimerD   z0.21.0
minversion0001r   )periodsi  r   nearest)method)r   r   cftime_rangeDatetimeGregorianget_indexer)rH   rD   timeskeyr0   r1   s         r   test_xarray_cftimeindex_nearestrT   f   s     **F h???F22E

"
"4A
.
.CuY77FHXr   c                  J    t          j        t          j        dddg           d S )N-OO-cimport pandas
subprocess
check_callsys
executabler   r   r   test_oo_optimizabler^   r   s&     3>5$HIIIIIr   c                  J    t          j        t          j        dddg           d S )NrV   rW   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))rY   r   r   r   )test_oo_optimized_datetime_index_unpickler`   x   s9     NU	

 
 
 
 
r   c                      t          j        d          } t          t          d          t          d          t          dd          d          }|                     d|                                           d S )Nzstatsmodels.formula.api   d   i   )LotteryLiteracyPop1831z$Lottery ~ Literacy + np.log(Pop1831))data)r   r   r   rangeolsfit)smfr   s     r   test_statsmodelsrm      sn    

7
8
8C	!HH%((uS#OO
 
B GG2G<<@@BBBBBr   c                  8   t          j        d           ddlm} m} |                                 }|                    dd          }|                    |j        d d         |j	        d d                    |
                    |j        dd                     d S )Nsklearnr   )datasetssvmgMbP?g      Y@)gammaC)r   r   ro   rp   rq   load_digitsSVCrk   rh   targetpredict)rp   rq   digitsclfs       r   test_scikit_learnr{      s    
	"""       
 !!##F
'''
'
'CGGFKfmCRC0111KKBCC !!!!!r   c                      t          j        d          } t          t          j        ddd          t          d          d          }|                     dd|	           d S )
Nseaborn2023Drb   )freqrL   )day
total_billr   r   )xyrh   )r   r   r   r   
date_rangeri   	stripplot)r}   tipss     r   test_seabornr      sg    !),,Gf3:::%PQ((SS D D99999r   c                  2    t          j        dd           d S )N
pandas_gbqz0.10.0rI   r   r   r   r   r   test_pandas_gbqr      s    
::::::r   c                  .    t          j        d           d S )Npandas_datareaderr   r   r   r   test_pandas_datareaderr      s    
+,,,,,r   c                     t          j        d          }|j                            |           }|                                }t          j        ||            d S )Npyarrow)r   r   Tabler    	to_pandasr+   assert_frame_equal)r   r   tabler0   s       r   test_pyarrowr      sO    !),,GM%%b))E__F&"%%%%%r   c                    t          j        d          }|                    |           }|                    ||j                  }t          j        | |           |                    ||j                  }t          j        | |           d S )Nyaml)Loader)r   r   dumploadr   r+   r   UnsafeLoader)r   r   dumpedloadedloaded2s        r   test_yaml_dumpr      s|    v&&DYYr]]FYYvdkY22F"f%%%iit'8i99G"g&&&&&r   c                     t           j                            dd          } | ddg}t          j        |                                          }d|v rt          j        d           | dddg}d	|  d
}t          j        t          j	        |          5 }t          j        |t          j
                   d d d            n# 1 swxY w Y   |j        j                                        }dD ]}||v sJ 	d S )N\/rW   z$import pandas;print(pandas.__file__)zsite-packagesz pandas installed as site packagez-sSErX   zCommand '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.r4   )stderr)numpypytzdateutil)r\   r]   replacerZ   check_outputdecoder   skipr;   CalledProcessErrorSTDOUTvaluestdout)pyexecalloutputrA   excnames         r    test_missing_required_dependencyr      sb    N""4--E
 4?@D$T**1133F&  6777
 641D	+ 	+ 	+ 	+ 
 
z4C	@	@	@ @CZ->????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ Y$$&&F-  v~~~~~ s   !B==CCc                     t          j        d          } 	 t          j        d          }|                    ddg          }t          dddgi          }||d<   ||d<   d|j        d	d
gdf<   |j        dgd d f         }t          dgdgdgddg          }t          j        ||           t          j	        d|            d S # t          j	        d|            w xY w)Nr   r(   r   r   abcrc   FT)r   r   r   )index)
r   r   r   r   r9   r   locr+   r   r"   )r#   r-   ddar   r0   r1   s         r   *test_frame_setitem_dask_array_into_new_colr      s    
 ]011F5 ..hh1vc3Z())33%(t}c!"QQQC5uA3??sKKK
fh///
+V44444+V4444s   BC Cc                       G d d          }  |             }t          t          d                    }|                    |          t          u sJ ||z   |u sJ d S )Nc                       e Zd ZdZd ZdS )%test_pandas_priority.<locals>.MyClassi  c                     | S )Nr   )selfothers     r   __radd__z.test_pandas_priority.<locals>.MyClass.__radd__  s    Kr   N)__name__
__module____qualname____pandas_priority__r   r   r   r   MyClassr     s)        "	 	 	 	 	r   r   r   )r   ri   __add__NotImplemented)r   leftrights      r   test_pandas_priorityr      s            799D588E==.00004<4r   
memoryviewr9   daskr(   )marksrD   )paramsc                 H   t          j        g dt           j                  }| j        }|dk    rt	          |          }n`|dk    rt          j        d|          }nD|dk    rddl}|j                            |          }n|d	k    rddl}|                    |          }||fS )
z
    Fixture giving a numpy array and a parametrized 'data' object, which can
    be a memoryview, array, dask or xarray object created from the numpy array.
    r   r7   r   r9   ir   r   NrD   )r*   r9   int64paramr   
dask.arrayrD   	DataArray)requestr>   r   rh   r   xrs         r   array_likesr     s     (999BH
-
-
-C=D|#	{3$$	z$$			||C  9r   r8   M8[ns]m8[ns]c                    |\  }}t           t          d|          } ||          }|                    |          }t          j        ||           t
          t          d|          } ||          d         } ||          d         }t          j        ||           t          |t                    sTt          j        t          j        d|          } ||          j        } ||          j        }t          j        ||           t          t          d|          } ||          } ||          }t          j        ||           d S )N)r   r   r   )r   r	   _from_sequencer+   assert_extension_array_equalr
   r   assert_equal
isinstancer   r   to_datetimeto_timedeltar9   r   r   assert_index_equal)	r8   r   r>   rh   clsr1   r0   funcidx_clss	            r   test_from_obscure_arrayr   /  s;    IC"n
=
=e
DCs3xxH%%F#FH555)5GHHODT#YYq\FtDzz!}HOFH%%%dJ'' * .BODDUKc4::#
))) '.AA%HGWS\\Fwt}}H&(+++++r   returnc                  *   t          j        d           t          g dg dd          } |                                 }|                                }ddg}||k    sJ t          g dd          }|                                }|j        dk    sJ dS )	z
    Test some basic methods of the dataframe consortium standard.

    Full testing is done at https://github.com/data-apis/dataframe-api-compat,
    this is just to check that the entry point works as expected.
    dataframe_api_compatr   )   rb      )r   r   r   r   )r   N)r   r   r   !__dataframe_consortium_standard__get_column_namesr   __column_consortium_standard__r   )df_pdr   result_1
expected_1sercols         r   test_dataframe_consortiumr   Q  s     .///IIIIII6677E		0	0	2	2B""$$HsJz!!!!

%
%
%C

,
,
.
.C8s??????r   c                      t          j        d          } |                     g d          }t          j        |d          }t          g ddd           }t          j        ||           d S )NrD   r   ns)unit)z1970-01-01 00:00:00.000000001z1970-01-01 00:00:00.000000002z1970-01-01 00:00:00.000000003zdatetime64[ns])r8   r   )r   r   r   r   r   r   r+   r   )r   r>   r0   r1   s       r   test_xarray_coerce_unitr   d  s    		X	&	&B
,,yyy
!
!C^Cd+++F	
 	
 	

   H &(+++++r   )r   N)9__doc__r9   rZ   r\   r   r*   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r   pandas._testing_testingr+   pandas.core.arraysr   r	   pandas.core.arrays.datetimesr
   pandas.core.arrays.timedeltasr   fixturer   r&   r2   rB   rF   rT   mark
single_cpur^   r`   rm   r{   r   r   r   r   r   r   r   r   r   
skip_if_nor   parametrizer   r   r   r   r   r   <module>r     sQ         



      , , , , , , ) ) ) ) ) ) ) ) )                             = < < < < < < < < < < < ' ' '5 5 5 5 5 5&     4& & &	 	 	 J J J
   C C C
" 
" 
": : :; ; ;
- - -& & &
' 
' 
' ! ! !H5 5 5,       V=2=#>#>???X]R]8%<%<===	    2 8X"677, , 87,B   &, , , , ,r   