
    Owg)                        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 ej2                  d        Zd Zd Zd	 Zd
 Zd Zej@                  jB                  d        Z"ej@                  jB                  d        Z#d Z$d Z%d Z&d Z'ej@                  jQ                  d      d        Z)d Z*ej@                  jB                  d        Z+d Z,d Z- ej2                  dd ej\                  d ej^                  d             ej\                  d ej^                  d            g      d        Z0ej@                  jc                  d d!d"g      d#        Z2d&d$Z3d% Z4y)'z1
Testing that we work in the downstream packages
    N)IntCastingNaNError)	DataFrameDatetimeIndexSeriesTimedeltaIndex)DatetimeArrayTimedeltaArrayc                       t        dg di      S )NA         )r        S/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/test_downstream.pydfr      s    c9%&&r   c                 N   t        j                  d      }	 t        j                  d       t        j                  d      }|j	                  | d      }|j
                  J |j                         J 	 t        j                  d|       y # 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1F5G$  !12nnRQn/uu   {{}(((
+V4+V4s   AB B$c                     t        j                  d      } 	 t        j                  d      }t        j                  d      }t	        g d      }|j                  |d      }|j                  |      j                         }t        j                  |      }t        j                  ||       t        j                  d|        y # 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_ufuncr0   1   s     ]]01F5  .  !12'(^^A1^-##%66!9
vx0
+V4+V4s   BC Cc                  r   t        j                  d      } t        j                  g d      }| j	                  |      }t        |      }t        |      }t        j                  ||       d}t        j                  t        |      5  t        |d       d d d        d}t        j                  |d<   t        j                  t        |      5  t        |d       d d d        t        j                  t        |      5  t        |d       d d d        y # 1 sw Y   xY w# 1 sw Y   GxY w# 1 sw Y   y xY w)	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resr/   msgs         r   7test_construct_dask_float_array_int_dtype_match_ndarrayr@   D   s     
		-	.B
((;
C==D
,Cc{H3) 6C	z	- !t4 ! GCVVCF	)	5 !t4 ! 
)	5  s$   ! !
! !   s$   DD!>D-D!D*-D6c                 R    t        j                  d       | j                         J y )Nxarray)r   r   	to_xarray)r   s    r   test_xarrayrD   ^   s"    
!<<>%%%r   c                      t        j                  d      } t        j                  d      }|j                  dd      }| j                  ddd      }|j	                  |gd	      }d}||k(  sJ y )
NcftimerB   0001r   )periodsi  r   nearest)method)r   r   cftime_rangeDatetimeGregorianget_indexer)rF   rB   timeskeyr.   r/   s         r   test_xarray_cftimeindex_nearestrP   d   su      *F  *F2E

"
"4A
.CuY7FHXr   c                  R    t        j                  t        j                  dddg       y )N-OO-cimport pandas
subprocess
check_callsys
executabler   r   r   test_oo_optimizablerZ   p   s     3>>5$HIr   c                  R    t        j                  t        j                  dddg       y )NrR   rS   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))rU   r   r   r   )test_oo_optimized_datetime_index_unpickler\   v   s*     NNU	

r   c                      t        j                  d      } t        t        d      t        d      t        dd      d      }| j	                  d|      j                          y )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_statsmodelsri      sQ    


7
8C	!H%(uS#O
B GG2G<@@Br   c                     t        j                  d       ddlm} m} | j                         }|j                  dd      }|j                  |j                  d d |j                  d d        |j                  |j                  dd         y )Nsklearnr   )datasetssvmgMbP?g      Y@)gammaC)r   r   rk   rl   rm   load_digitsSVCrg   rd   targetpredict)rl   rm   digitsclfs       r   test_scikit_learnrw      sr    
	"
 !!#F
'''
'CGGFKKfmmCR01KKBC !r   c                      t        j                  d      } t        t        j                  ddd      t        d      d      }| j                  dd|	       y )
Nseaborn2023Dr^   )freqrH   )day
total_billr}   r~   )xyrd   )r   r   r   r   
date_rangere   	stripplot)ry   tipss     r   test_seabornr      sM    !!),Gf3:%PQ(SD D9r   c                  .    t        j                  d       y )Npandas_datareader)r   r   r   r   r   test_pandas_datareaderr      s    
+,r   z0ignore:Passing a BlockManager:DeprecationWarningc                     t        j                  d      }|j                  j                  |       }|j	                         }t        j                  ||        y )Npyarrow)r   r   Tabler   	to_pandasr)   assert_frame_equal)r   r   tabler.   s       r   test_pyarrowr      sB    !!),GMM%%b)E__F&"%r   c                    t        j                  d      }|j                  |       }|j                  ||j                        }t        j                  | |       |j                  ||j                        }t        j                  | |       y )Nyaml)Loader)r   r   dumploadr   r)   r   UnsafeLoader)r   r   dumpedloadedloaded2s        r   test_yaml_dumpr      sm    v&DYYr]FYYvdkkY2F"f%iit'8'8i9G"g&r   c                     t         j                  j                  dd      } | ddg}t        j                  |      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        j                  j                  j                         }dD ]  }||v rJ  y # 1 sw Y   ;xY w)N\/rS   z$import pandas;print(pandas.__file__)zsite-packagesz pandas installed as site packagez-sSErT   zCommand '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.r2   )stderr)numpypytzdateutil)rX   rY   replacerV   check_outputdecoder   skipr9   CalledProcessErrorSTDOUTvaluestdout)pyexecalloutputr?   excnames         r    test_missing_required_dependencyr      s     NN""4-E
 4?@D$$T*113F& 67
 641D w + 	+ 
 
z44C	@ @CZ->->?@ YY$$&F- v~~	@ @s   &C33C<c                     t        j                  d      } 	 t        j                  d      }|j	                  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|        y # t        j                  d|        w xY w)Nr   r&   r   r   abcr_   FT)r   r   r   )index)
r   r   r   r   r7   r   locr)   r   r    )r!   r+   ddar   r.   r/   s         r   *test_frame_setitem_dask_array_into_new_colr      s    
 ]]01F5  .hh1vc3Z()33%(t}c!"QC5uA3?sK
fh/
+V4+V4s   BC Cc                       G d d      }  |        }t        t        d            }|j                  |      t        u sJ ||z   |u sJ y )Nc                       e Zd ZdZd Zy)%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   re   __add__NotImplemented)r   leftrights      r   test_pandas_priorityr      sL      9D58E==.0004<4r   
memoryviewr7   daskr&   )marksrB   )paramsc                 Z   t        j                  g dt         j                        }| j                  }|dk(  rt	        |      }||fS |dk(  rt        j                  d|      }||fS |dk(  r#ddl}|j                  j                  |      }||fS |d	k(  rddl}|j                  |      }|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   r5   r   r7   ir   r   NrB   )r(   r7   int64paramr   
dask.arrayrB   	DataArray)requestr<   r   rd   r   xrs         r   array_likesr     s     ((9BHH
-C==D|# 9 
{{3$ 9 
zz$ 9 
	||C 9r   r6   M8[ns]m8[ns]c                 V   |\  }}t         t        d|    }|j                   d}t        j                  t
        |      5   ||      }d d d        |j                  ||       }t        j                  |       t        |t              s^t        j                  t        j                  d|    } ||      j                  } ||      j                  }t        j                  ||       t        t         d|    }	 |	|      } |	|      }t        j"                  ||       y # 1 sw Y   xY w)N)r   r   z.__init__ is deprecatedr2   r5   )r   r	   r   r)   assert_produces_warningFutureWarning_from_sequenceassert_extension_array_equal
isinstancer   r   to_datetimeto_timedeltar7   assert_equalr   r   assert_index_equal)
r6   r   r<   rd   clsdepr_msgr/   r.   funcidx_clss
             r   test_from_obscure_arrayr   )  s     IC"n
=e
DC,,67H		#	#M	B s8E2F##FH5dJ' ..BOODUKc:##
) '.A%HGS\Ft}H&(+# s    	DD(c                     t        j                  d       t        g dg dd      } | j                         }|j	                         }ddg}||k(  sJ t        g dd      }|j                         }|j                  dk(  sJ y)	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   H  s     ./II67E		0	0	2B""$HsJz!!!

%C

,
,
.C88s??r   c                      t        j                  d      } | j                  g d      }t        j                  |d      }t        g ddd       }t        j                  ||       y )NrB   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])r6   r|   )r   r   r   r   r   r   r)   r   )r   r<   r.   r/   s       r   test_xarray_coerce_unitr   [  sY    			X	&B
,,y
!C^^Cd+F	

 H &(+r   )returnN)5__doc__r7   rV   rX   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	   fixturer   r$   r0   r@   rD   rP   mark
single_cpurZ   r\   ri   rw   r   r   filterwarningsr   r   r   r   r   r   
skip_if_nor   parametrizer   r   r   r   r   r   <module>r     s     
   , ) )    ' '5 5& 4&	 J J
  C
":- NO& P&
' ! !H5,   V=2==#>?X]R]]8%<=	2 8X"67, 8,<&,r   