
    bMhh*                        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 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)ej"        *                    d          d             Z+d Z,ej"        j#        d             Z-d Z.d Z/ ej        dd ej0        d ej1        d                     ej0        d ej1        d                    g          d              Z2ej"        3                    d!d"d#g          d$             Z4d(d&Z5d' Z6dS ))z1
Testing that we work in the downstream packages
    N)IntCastingNaNError)	DataFrameDatetimeIndexSeriesTimedeltaIndex)DatetimeArrayTimedeltaArray)Versionc                  (    t          dg di          S )NA         )r        \/var/www/html/test/jupyter/venv/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_ufuncr1   2   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resr0   msgs         r   7test_construct_dask_float_array_int_dtype_match_ndarrayrA   E   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_xarrayrE   _   s-    
!!!<<>>%%%%%r   c                      t          j        d          } t          j        d          }|                    dd          }|                     ddd          }|                    |gd	          }d}||k    sJ d S )
NcftimerC   0001r   )periodsi  r   nearest)method)r   r   cftime_rangeDatetimeGregorianget_indexer)rG   rC   timeskeyr/   r0   s         r   test_xarray_cftimeindex_nearestrQ   e   s     **F **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[   q   s&     3>5$HIIIIIr   c                  J    t          j        t          j        dddg           d S )NrS   rT   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))rV   r   r   r   )test_oo_optimized_datetime_index_unpickler]   w   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_statsmodelsrj      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   rl   rm   rn   load_digitsSVCrh   re   targetpredict)rm   rn   digitsclfs       r   test_scikit_learnrx      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Dr_   )freqrI   )day
total_billr~   r   )xyre   )r   r   r   r   
date_rangerf   	stripplot)rz   tipss     r   test_seabornr      sg    !),,Gf3:::%PQ((SS D D99999r   c                  .    t          j        d           d S )Npandas_datareader)r   r   r   r   r   test_pandas_datareaderr      s    
+,,,,,r   z0ignore:Passing a BlockManager:DeprecationWarningc                     t          j        d          }|j                            |           }|                                }t          j        ||            d S )Npyarrow)r   r   Tabler   	to_pandasr*   assert_frame_equal)r   r   tabler/   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\/rT   z$import pandas;print(pandas.__file__)zsite-packagesz pandas installed as site packagez-sSErU   zCommand '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.r3   )stderr)numpypytzdateutil)rY   rZ   replacerW   check_outputdecoder   skipr:   CalledProcessErrorSTDOUTvaluestdout)pyexecalloutputr@   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          }t          j        d          }t	          |j                  t	          d          k    r]t	          t          j                  t	          d          k    r3|                     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   daskr'   z2025.1.0z2.1z,loc.__setitem__ incorrectly mutated column c)reasonr   r   abcr`   FT)r   r   r   )index)r   r   r   r   r
   __version__r)   applymarkermarkxfailr8   r   locr*   r   r!   )requestr"   r   r,   ddar   r/   r0   s           r   *test_frame_setitem_dask_array_into_new_colr      s   
 ]011F5"6** ..4#$$
(;(;;;NA
 A
U^^A A !!)W!XX   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   D,E E0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   rf   __add__NotImplemented)r   leftrights      r   test_pandas_priorityr      s            799D588E==.00004<4r   
memoryviewr8   r   r'   )marksrC   )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   r6   r   r8   ir   r   NrC   )r)   r8   int64paramr   
dask.arrayrC   	DataArray)r   r=   r   re   r   xrs         r   array_likesr     s     (999BH
-
-
-C=D|#	{3$$	z$$			||C  9r   r7   M8[ns]m8[ns]c                 t   |\  }}t           t          d|          }|j         d}t          j        t
          |          5   ||          }d d d            n# 1 swxY w Y   |                    ||           }t          j        ||           t          |t                    sTt          j        t          j        d|          } ||          j        } ||          j        }t          j        ||           t          t           d|          }	 |	|          } |	|          }t          j        ||           d S )N)r   r   z.__init__ is deprecatedr3   r6   )r   r	   r   r*   assert_produces_warningFutureWarning_from_sequenceassert_extension_array_equal
isinstancer   r   to_datetimeto_timedeltar8   assert_equalr   r   assert_index_equal)
r7   r   r=   re   clsdepr_msgr0   r/   funcidx_clss
             r   test_from_obscure_arrayr   1  st    IC"n
=
=e
DC,777H		#M	B	B	B  3s88              E22F#FH555dJ'' * .BODDUKc4::#
))) '.AA%HGWS\\Fwt}}H&(+++++s    AAA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   )   r_      )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   P  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 )NrC   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])r7   r}   )r   r   r   r   r   r   r*   r   )r   r=   r/   r0   s       r   test_xarray_coerce_unitr   c  s    		X	&	&B
,,yyy
!
!C^Cd+++F	
 	
 	

   H &(+++++r   )r   N)7__doc__r8   rW   rY   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.util.versionr
   fixturer   r%   r1   rA   rE   rQ   r   
single_cpur[   r]   rj   rx   r   r   filterwarningsr   r   r   r   r   r   
skip_if_nor   parametrizer   r   r   r   r   r   <module>r     sN         



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