
    .i0                         d dl m Z  d dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ  G d d      Z G d d      Z G d	 d
      Z G d d      Z G d d      Z G d d      Z G d d      Zy)    )datetimeN)Pandas4Warning)	IndexNaT	TimedeltaTimedeltaIndex	Timestampnotnaoffsetstimedelta_rangeto_timedeltac            
           e Zd Zd Zd Zej                  j                  d ed       ed       e	ddd       ed      j                          ej                  d	      g      d
        Zy)TestGetItemc                     d}t        j                  t        |      5  t        dddd      }d d d        dd  j                  |j                  k(  sJ y # 1 sw Y   (xY w)	N:'d' is deprecated and will be removed in a future version.match1d5dh
timebucketfreqname   )tmassert_produces_warningr   r   r   )selfmsgtdis      k/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/indexes/timedeltas/test_indexing.pytest_getitem_slice_keeps_namez)TestGetItem.test_getitem_slice_keeps_name   s\    J''cB 	K!$3\JC	K12w||sxx'''	K 	Ks   AAc                    t        dddd      }|fD ]6  }|d   }|t        d      k(  sJ |dd }t        dddd      }t        j                  ||       |j                  |j                  k(  sJ |dd	d
   }t        dddd      }t        j                  ||       |j                  |j                  k(  sJ |ddd   }t        dddd      }t        j                  ||       |j                  |j                  k(  sJ |dd d   }t        g ddd      }t        j                  ||       |j                  |j                  k(  r7J  y )N1 day31 dayDidxr   r      5 day
      z9 day2Di   z12 dayz24 day3D   )r)   4 day3 day2 dayr$   z-1D)r   r   r   assert_index_equalr   r   r   idx1r'   resultexpecteds        r!   test_getitemzTestGetItem.test_getitem   sS   wsG6 	0CVFYw////1XF&wcNH!!&(3;;(--///2a[F&wdOH!!&(3;;(--///R]F&x5QH!!&(3;;(--///BZF%=EPUH !!&(3;;(--///1	0    keyz
1970-01-01z
1970-01-02i  r   z
1970-01-03r   c                     t        dd      }t        j                  t        t	        j
                  t        |                  5  |j                  |       d d d        y # 1 sw Y   y xY w)Nr   r*   periodsr   )r   pytestraisesKeyErrorreescapereprget_loc)r   r<   r    s      r!   test_timestamp_invalid_keyz&TestGetItem.test_timestamp_invalid_key<   sL     a,]]8299T#Y+?@ 	KK	 	 	s   A  A)N)__name__
__module____qualname__r"   r:   r@   markparametrizer	   r   to_datetime64np
datetime64rG    r;   r!   r   r      sr    (0: [[l#l#T1a l#113BMM% 	


r;   r   c                   $    e Zd Zd Zd Zd Zd Zy)
TestGetLocc                 v    t        g d      }|d   j                  d      }|j                  |      }|dk(  sJ y )N0 days1 days2 daysr   ms)r   as_unitrF   )r   r'   r<   locs       r!   test_get_loc_key_unit_mismatchz)TestGetLoc.test_get_loc_key_unit_mismatchO   s8    9:!fnnT"kk#axxr;   c                 ,   t        g d      j                  d      }|j                  dk(  sJ |d   j                  d      t	        d      z   }t        j                  t        d      5  |j                  |       d d d        ||vsJ y # 1 sw Y   xY w)NrT   zm8[s]r   nsr   z(Timedelta\('0 days 00:00:00.000000001'\)r   )	r   astypedtyperY   r   r@   rA   rB   rF   )r   r    r<   s      r!   +test_get_loc_key_unit_mismatch_not_castablez6TestGetLoc.test_get_loc_key_unit_mismatch_not_castableU   s    9:AA'JyyG###!fnnT"Yq\1]]8+VW 	KK	 #~~	 	s   )B

Bc                     t        g d      }|j                  |d   j                               dk(  sJ |j                  d      dk(  sJ y )NrT   r   rU   r   )r   rF   to_timedelta64)r   r'   s     r!   test_get_loczTestGetLoc.test_get_loc_   sL    9: {{3q60023q888 {{8$)))r;   c                    t        g d      }|j                  t              dk(  sJ |j                  d       dk(  sJ |j                  t        d            dk(  sJ |j                  t        j
                        dk(  sJ y )N)z1 days 01:00:00r   z2 days 01:00:00r   nan)r   rF   r   floatrN   re   )r   tidxs     r!   test_get_loc_natzTestGetLoc.test_get_loc_nath   sq    KL||C A%%%||D!Q&&&||E%L)Q...||BFF#q(((r;   N)rH   rI   rJ   r[   r`   rc   rh   rP   r;   r!   rR   rR   N   s    *)r;   rR   c                       e Zd Zd Zy)TestGetIndexerc                 >   t        g d      }t        j                  |j                  |      t	        j
                  g dt        j                               t        g d      }t        j                  |j                  |d      t	        j
                  g dt        j                               t        j                  |j                  |d      t	        j
                  g dt        j                               t        j                  |j                  |d      t	        j
                  g d	t        j                               |j                  |dt        d
            }t        j                  |t	        j
                  g dt        j                               y )NrT   r   r   r+   r_   )z-1 hourz12 hoursz1 day 1 hourpad)r1   r   r   backfillnearest)r   r   r   z1 hour)	tolerance)r   r1   r   )r   r   assert_numpy_array_equalget_indexerrN   arrayintpr   )r   r'   targetress       r!   test_get_indexerzTestGetIndexer.test_get_indexerr   s
   9:
##OOC "((9BGG"D	
 EF
##OOFE*BHHZrww,O	
 	##OOFJ/)2771S	
 	##OOFI."''0R	
 oofi9X;NoO
##C*BGG)LMr;   N)rH   rI   rJ   rx   rP   r;   r!   rj   rj   q   s    Nr;   rj   c                       e Zd Zd Zd Zd Zy)	TestWherec                     t        dddd      }g d}t        |d   |d   |d   gd d	      }|j                  ||d d d
         }t        j                  ||       y )Nr$   r.   r&   r'   r?   r   r   )TTFr   r   r   r1   )r   r   wherer   r5   )r   r    condr9   r8   s        r!   test_where_doesnt_retain_freqz'TestWhere.test_where_doesnt_retain_freq   s`    gqsG"!3q63q63q6":ER4TrT+
fh/r;   c                 @   t        dddd      }|dd  j                         }t        t        t        g|      }t	        |      }t        t        j
                  t        j
                  g|t        d      }t        |d   t              sJ |j                  ||j                        }t        j                  ||       ||z   }t        |d   |d	   g|t        d      }|j                  ||      }t        j                  ||       ||z   j                  d      }	t        |	d   |	d	   g|t        d      }|j                  ||	      }t        j                  ||       |}t        ||g|t        d      }|j                  ||      }t        j                  ||       y )
Nr$   r.   r&   r'   r|   r+   r_   r   r   r   )r   tolistr   r   r
   _valueobject
isinstanceintr}   asi8r   r5   	to_period)
r   fixed_now_tsr    taili2maskr9   r8   tspers
             r!   test_where_invalid_dtypesz#TestWhere.test_where_invalid_dtypes   ss   gqsG12w~~C$t$%Ry#**cjj848US(1+s+++4)
fh/,"Q%A..f5I4$
fh/L ++C0#a&#a&040UK4%
fh/"b4UC4$
fh/r;   c                    t        dddd      }t        j                  g d      }t        j                  dd      }t	        |d	   ||gt
        d
      }|d   |u sJ |j                  ||      }t        j                  ||       y )Nr$   r.   r&   r'   r|   )TFFr   r]   r   r   r+   )	r   rN   rt   rO   r   r   r}   r   r5   )r   r    r~   dtnatr9   r8   s         r!   test_where_mismatched_natz#TestWhere.test_where_mismatched_nat   s|    gqsGxx,-eT*#a&%/vEJ{e###4'
fh/r;   N)rH   rI   rJ   r   r   r   rP   r;   r!   rz   rz      s    0060r;   rz   c                   $    e Zd Zd Zd Zd Zd Zy)TestTakec                    t        dddd      }|fD ]  }|j                  dg      }|t        d      k(  sJ |j                  dg      }|t        d      k(  sJ |j                  g d      }t        dd	dd      }t        j                  ||       |j
                  |j
                  k(  sJ |j                  g d
      }t        dddd      }t        j                  ||       |j
                  |j
                  k(  sJ |j                  g d      }t        dddd      }t        j                  ||       |j
                  |j
                  k(  sJ |j                  g d      }t        g dd      }t        j                  ||       |j
                  J |j                  g d      }t        g dd      }t        j                  ||       |j
                  J  y )Nr$   r%   r&   r'   r   r   r1   rl   r3   )r   r+   r0   r)   r,   )   r0   r   z8 dayr4   z-3D)r.   r+   r(   )r2   r3   6 dayr   )r+   r(   )z29 dayr3   r   )r   taker   r   r5   r   r   r6   s        r!   	test_takezTestTake.test_take   s   wsG6 	'CXXqc]FYw////XXrd^FYx0000XXi(F&wcNH!!&(3;;(--///XXi(F&wdOH!!&(3;;(--///XXi(F&we%PH!!&(3;;(--///XXi(F%&ANH!!&(3;;&&&XXj)F%&BOH!!&(3;;&&&=	'r;   c                    t        dddd      }g d}d}t        j                  t        |      5  |j	                  |d	
       d d d        d}t        j                  t
        |      5  |j	                  ||       d d d        d}t        j                  t
        |      5  |j	                  |d       d d d        y # 1 sw Y   |xY w# 1 sw Y   OxY w# 1 sw Y   y xY w)Nr$   r%   r&   r'   r   )r      r(   	   r*         r.   z1take\(\) got an unexpected keyword argument 'foo'r   r+   )fooz$the 'out' parameter is not supported)outz%the 'mode' parameter is not supportedclip)mode)r   r@   rA   	TypeErrorr   
ValueError)r   r'   indicesr   s       r!   test_take_invalid_kwargsz!TestTake.test_take_invalid_kwargs   s    gxcF-B]]9C0 	%HHW!H$	% 5]]:S1 	+HHW'H*	+ 6]]:S1 	+HHW6H*	+ 	+	% 	%	+ 	+	+ 	+s#   C *C#C C	CC!c                 .   g d}t        dddd      }t        |d d      }|j                  g d      }|g d   }||fD ]S  }t        j                  ||       t        |t              sJ |j                  J |j                  |j                  k(  rSJ  y )	N)z1day 02:00:00z1 day 04:00:00z1 day 10:00:001Dr,   r   r'   )startendr   r   r   )r+   r0   r*   )r   r   r   r   r5   r   r   r   )r   tdsr'   r9   taken1taken2takens          r!   test_take_equiv_getitemz TestTake.test_take_equiv_getitem   s    CDd5I!#Du=*%Zf% 	/E!!%2e^444::%%%::...		/r;   c                    t        g dd      }|j                  t        j                  g d            }t        g dd      }t	        j
                  ||       |j                  t        j                  g d      d      }t        g dd      }t	        j
                  ||       |j                  t        j                  g d      d	d
      }t        g dd      }t	        j
                  ||       d}t        j                  t        |      5  |j                  t        j                  g d      d       d d d        t        j                  t        |      5  |j                  t        j                  g d      d       d d d        d}t        j                  t        |      5  |j                  t        j                  ddg             d d d        y # 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)N)rV   rW   3 daysxxxr   )r   r   r1   )rW   rV   r   T)
fill_value)rW   rV   r   F)
allow_fillr   zJWhen allow_fill=True and fill_value is not None, all indices must be >= -1r   )r   r   )r   r   r-   z3index -5 is out of bounds for (axis 0 with )?size 3r   r-   )
r   r   rN   rt   r   r5   r@   rA   r   
IndexError)r   r'   r8   r9   r   s        r!   test_take_fill_valuezTestTake.test_take_fill_value   s   ;%H"((:./!"@uM
fh/ "((:.4@!"=EJ
fh/ "((:.5TR!"@uM
fh/ Y 	 ]]:S1 	<HHRXXj)dH;	<]]:S1 	<HHRXXj)dH;	< D]]:S1 	(HHRXXq"g&'	( 	(	< 	<	< 	<	( 	(s$   )G)G)-'G5G&)G25G>N)rH   rI   rJ   r   r   r   r   rP   r;   r!   r   r      s    "'H+ /(r;   r   c                   r    e Zd Z ej                  g d      d        Zej                  d        Zd Zd Zy)TestMaybeCastSliceBound)
increasing
decreasingN)paramsc                     |j                   S )N)param)r   requests     r!   	monotonicz!TestMaybeCastSliceBound.monotonic  s    }}r;   c                 
   t        dd      }|dk(  r
|d d d   }|S |dt        j                  dt        j                        }t        j                  j                  d      j                  |       |j                  |      }|S )Nz1 Dayr*   r>   r   r1   rm   r+   )r   rN   arangeru   randomdefault_rngshuffler   )r   r   r    takers       r!   r    zTestMaybeCastSliceBound.tdi  su    gr2$dd)C
 
	 IIb0EII!!!$,,U3((5/C
r;   c                    d}t        j                  t        |      5  |j                  dd       d d d        t        j                  t        |      5  |j	                  dd       d d d        t        j                  t        |      5  |j                  dd d        d d d        y # 1 sw Y   xxY w# 1 sw Y   MxY w# 1 sw Y   y xY w)NRcannot do slice indexing on TimedeltaIndex with these indexers \[foo\] of type strr   r   left)side)r@   rA   r   _maybe_cast_slice_boundget_slice_bound
slice_locs)r   r    r   s      r!   'test_maybe_cast_slice_bound_invalid_strz?TestMaybeCastSliceBound.test_maybe_cast_slice_bound_invalid_str'  s    , 	 ]]9C0 	<''F';	<]]9C0 	4F3	4]]9C0 	.NN5$-	. 	.		< 	<	4 	4	. 	.s#   B)B5C)B25B>C
c                     |t        d      |      }d}t        j                  t        |      5   ||      dd   d d d        t        j                  t        |      5   ||      dd  d d d        t        j                  t        |      5   ||      d d  d d d        t        j                  t        |      5   ||      |d   d  d d d        y # 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   TxY w# 1 sw Y   y xY w)Nr*   )indexr   r   r   r1   r   )ranger@   rA   r   )r   r    frame_or_series
indexer_slobjr   s         r!   *test_slice_invalid_str_with_timedeltaindexzBTestMaybeCastSliceBound.test_slice_invalid_str_with_timedeltaindex5  s     eBis3, 	 ]]9C0 	$sOEF#	$]]9C0 	&sOE"%	&]]9C0 	$sOFU#	$]]9C0 	,sOCFU+	, 	,	$ 	$	& 	&	$ 	$	, 	,s/   C C"C.>C:C"C+.C7:DN)	rH   rI   rJ   r@   fixturer   r    r   r   rP   r;   r!   r   r     sB    V^^=> ? ^^ .,r;   r   c                       e Zd Zd Zd Zy)TestContainsc                 X    g dg dg dg dg dfD ]  }t        |      }|d   |v rJ  y )N)r   r   r   )r   r   r1   )r   r1   r1   )00:01:00r   z00:02:00)r   r   z00:00:01r   )r   )r   valsr'   s      r!   test_contains_nonuniquez$TestContains.test_contains_nonuniqueI  s@     00
 	!D !&Cq6S= =	!r;   c                    d}t        j                  t        |      5  t        t	        d      d      t        j                  d      z   }d d d        t        d t        d      t        j                  fD ]  }|vrJ  t        t        g      }t        d t        d      t        j                  fD ]  }||v rJ  y # 1 sw Y   rxY w)Nr   r   r(   d)unitr   re   )r   r   r   r   r   r   Hourr   rf   rN   re   )r   r   tdvs       r!   test_containszTestContains.test_containsU  s     K''cB 	DeAhS1GLLOCB	DtU5\2662 	AB;;	 3% tU5\2662 	A7N7		D 	Ds   -B<<CN)rH   rI   rJ   r   r   rP   r;   r!   r   r   H  s    
!r;   r   )r   rC   numpyrN   r@   pandas.errorsr   pandasr   r   r   r   r	   r
   r   r   r   pandas._testing_testingr   r   rR   rj   rz   r   r   r   rP   r;   r!   <module>r      sw     	   (
 
 
 4 4n )  )FN N,,0 ,0^^( ^(B., .,b r;   