
    .i!              	           d Z ddlZddlm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ZddlmZmZmZmZ ddlmZ ddlmZ e	j.                  d        Zd Ze	j4                  j7                  d	
      d        Zd Zd Zd Ze	j4                  j@                  d        Z!e	j4                  j@                  d        Z"d Z#d Z$d Z%e	j4                  jM                  d
      d        Z'e	j4                  jQ                  d      d        Z)d Z*e	j4                  jW                  dddg      d        Z,d Z-d Z.e	j4                  jW                  dd d!g      e	j4                  jW                  d"e/ eej                  d#      d$d%g      d&               Z0d' Z1y)(z1
Testing that we work in the downstream packages
    N)partial)IntCastingNaNError)	DataFrameDatetimeIndexSeriesTimedeltaIndex)Versionc                       t        dg di      S )NA         )r        Z/var/www/app/trading-bot/venv/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$znot implemented with CoWreasonc                     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   logr   nptmassert_series_equalr    )r!   dar"   sdsresultexpecteds          r   test_dask_ufuncr2   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resr1   msgs         r   7test_construct_dask_float_array_int_dtype_match_ndarrayrB   E   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_xarrayrF   _   s"    
!<<>%%%r   c                      t        j                  d      } t        j                  d      }|j                  ddd      }| j                  ddd      }|j	                  |gd	
      }d}||k(  sJ y )NcftimerD   0001r   T)periods
use_cftimei  r   nearest)method)r   r   
date_rangeDatetimeGregorianget_indexer)rH   rD   timeskeyr0   r1   s         r   test_xarray_cftimeindex_nearestrS   e   sw      *F  *FfaDAE

"
"4A
.CuY7FHXr   c                  R    t        j                  t        j                  dddg       y )N-OO-czimport pandas
subprocess
check_callsys
executabler   r   r   test_oo_optimizabler\   q   s     3>>5$HIr   c                  R    t        j                  t        j                  dddg       y )NrU   rV   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))rW   r   r   r   )test_oo_optimized_datetime_index_unpickler^   w   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_statsmodelsrk      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   rm   rn   ro   load_digitsSVCri   rf   targetpredict)rn   ro   digitsclfs       r   test_scikit_learnry      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`   )freqrJ   )day
total_billr   r   )xyrf   )r   r   r   r   rN   rg   	stripplot)mpl_cleanupr{   tipss      r   test_seabornr      sM    !!),Gf3:%PQ(SD D9r   z5pandas_datareader uses old variant of deprecate_kwargc                  .    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   tabler0   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   
dependencynumpydateutilc                    t         t        d       fd}| j                  d|       t        j                  t              5  t        j                  t        j                  d             d d d        y # 1 sw Y   y xY w)NzMock error for c                 *    | k(  r | g|i |S Nr   )nameargskwargsr   
mock_errororiginal_imports      r   mock_importz5test_missing_required_dependency.<locals>.mock_import   s&    :t5d5f55r   zbuiltins.__import__r4   pandas)
__import__ImportErrorsetattrr   r;   	importlibreloadimport_module)monkeypatchr   r   r   r   s    ` @@r    test_missing_required_dependencyr      so     !Ozl;<J6
 -{;	{*	5 <00:;< < <s   )A>>Bc                    t        j                  d      }	 t        j                  d      }t        j                  d      }t	        |j
                        t	        d      k  rTt	        t        j
                        t	        d      k\  r/| j                  t        j                  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   daskr(   z2025.1.0z2.1z,loc.__setitem__ incorrectly mutated column cr%   r   r   abcra   FT)r   r   r   )index)r   r   r   r   r	   __version__r*   applymarkermarkxfailr9   r   locr+   r   r    )requestr!   r   r-   ddar   r0   r1   s           r   *test_frame_setitem_dask_array_into_new_colr      s?   
 ]]01F5""6*  .4##$
(;;NNA
U^A !!)W!X hh1vc3Z()33%(t}c!"QC5uA3?sK
fh/
+V4+V4s   DE E#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 r   r   )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   rg   __add__NotImplemented)r   leftrights      r   test_pandas_priorityr      sL      9D58E==.0004<4r   r8   M8[ns]m8[ns]boxir   rD   c                 :   t        j                  g dt         j                        }|dk(  r't        j                  d      }|j                  |      }n4|dk(  r't        j                  d      }|j                  |      }n ||      }t        j                  t        j                  d|    } ||      j                  } ||      j                  }t        j                  ||       t        t        d|    }	 |	|      } |	|      }t        j                  ||       y )Nr   r7   r   r(   rD   )r   r   )r*   r9   int64r   r   	DataArrayr   to_datetimeto_timedeltar+   assert_equalr   r   assert_index_equal)
r8   r   r>   r-   rf   xrfuncr0   r1   idx_clss
             r   test_from_obscure_arrayr      s     ((9BHH
-C
f}  .xx}	  *||C 3xnn@GD#Y__FDzHOOFH% '.A%HGS\Ft}H&(+r   c                      t        j                  d      } | j                  g d      }t        j                  |d      }t        g ddd       }t        j                  ||       y )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     sY    			X	&B
,,y
!C^^Cd+F	

 H &(+r   )2__doc__r9   	functoolsr   r   rX   rZ   r   r*   r   pandas.errorsr   r   r   r   r   r   r   pandas._testing_testingr+   pandas.util.versionr	   fixturer   r$   r   skipr2   rB   rF   rS   
single_cpur\   r^   rk   ry   r   r   r   filterwarningsr   r   parametrizer   r   r   
memoryviewr   r   r   r   r   <module>r      s       
   ,    ' ' '5" 345 55& 4&	 J J
  C
": QR- S- NO& P&
' '<=< >< 5:   8X"67	JS168D, 8,8,r   