
    .ij=                     >   d Z 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mZmZmZmZmZ ddlmZ d Zd Zd Zd	 Zd
 Zd Z ejB                  jE                  ddg ddddi eddie#      gg dg dddg di edg di      gg      d        Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d  Z0d! Z1d" Z2ejB                  jE                  d# ed$d%d&'       ed(d%d)'       ed*d%d+'      g      d,        Z3d- Z4d. Z5d/ Z6d0 Z7d1 Z8d2 Z9d3 Z:d4 Z;ejB                  jE                  d5i d6d7ig      ejB                  jE                  d8g d9d9g e<dd:       ejz                  g       g      d;               Z>d< Z? G d= d>      Z@ G d? d@      ZAy)Aztest get/set & misc    )	timedeltaN)IndexingError)NA	DataFrameIndex
IndexSlice
MultiIndexNaTSeries	Timedelta	Timestampconcat
date_rangeisnaperiod_rangetimedelta_rangec                     t        t        j                  j                  d      j	                  d      g d      } t        j                  t        d      5  | d    d d d        t        j                  t        d      5  | d    d d d        | j                         } t        j                  t        d      5  | d    d d d        y # 1 sw Y   lxY w# 1 sw Y   OxY w# 1 sw Y   y xY w)	N      )abr   r   r   indexz^5$matchz^'c'$c)	r   nprandomdefault_rngstandard_normalpytestraisesKeyError
sort_indexss    h/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/series/indexing/test_indexing.pytest_basic_indexingr(      s    
		a 003;T	A 
xu	- 	! 
xx	0 	# 	
A	xu	- 	!   
 s$   C C9C CC C)c                     | }t        g d|      }t        t        d      |      }|d   }t        ddgt        ddg|            }t        j                  ||d	       y )
N   r   r+   dtype   r   r+   r   r   Tcheck_exactr   r   rangetmassert_series_equal)any_numeric_dtyper-   idxserresultexpecteds         r'   6test_getitem_numeric_should_not_fallback_to_positionalr:   /   sY    E
	
'C
q
%CVFq!fE1a&$>?H68>    c                     | }t        g d|      }t        t        d      |      }d|d<   t        g d|      }t        j                  ||d	       y )
Nr*   r,   r.   r   
   r+   )r=   r+   r=   Tr/   r1   )r5   r-   r6   r7   r9   s        r'   6test_setitem_numeric_should_not_fallback_to_positionalr>   9   sJ    E
	
'C
q
%CCFk-H3d;r;   c                     | j                   g d   }| |   }| j                  |      }t        j                  ||       | |d   |d    }| j                  |d   |d    }t        j                  ||       y )Nr   r=      r   r   )r   reindexr3   r4   loc)datetime_seriesindicesr8   r9   s       r'   test_basic_getitem_with_labelsrF   C   sz    ##K0GW%F&&w/H68,WQZ'!*5F""71:
;H68,r;   c                      t        t        ddd      g d      } t        dd      }| j                  d   }||k(  sJ | j                  d	   }||k(  sJ | d   }||k(  sJ y )
Nz
2011-01-01r.   z
US/Eastern)periodstzr   r   r   r   )rI   r   r   )r   r   r   rC   iloc)r7   r9   r8   s      r'    test_basic_getitem_dt64tz_valuesrL   O   sw     <|<OC ,7HWWS\FXXXa[FXXFXr;   c                      t        t        j                  j                  d      j	                  d            } | d   }t        j                  ||        y )Nr   r=   .)r   r   r   r   r    r3   r4   )r&   r8   s     r'   test_getitem_setitem_ellipsisrN   ^   s?    ryy$$Q'77;<AsVF61%r;   z$result_1, duplicate_item, expected_1   )r+   r   r   r.   r+   r   r+   i9  r,   r+   r   r.   c                     t        |       } t        |      }| j                  |      }|j                  |      }t        j                  |d   |       |d   | d   k(  sJ y )Nr+   r   )r   _append_internalr3   r4   )result_1duplicate_item
expected_1r8   r9   s        r'   $test_getitem_with_duplicates_indicesrW   e   sb    " hHN+N&&~6F**>:H6!9h/!9###r;   c                      t        g dg d      } | j                  d   | d   k(  sJ d| j                  d<   t        j                  | d   d       y )NrQ   rJ   r   r   r   )r   rK   r3   assert_almost_equalr%   s    r'   test_getitem_setitem_integersrZ   ~   sI    y/*A66!9#AFF1I1S61%r;   c                     t        ddd      } t        |       }t        |d   t              sJ t        |j                  d   t              sJ t        |j
                  d   t              sJ t        |j                  d   t              sJ t        |j                  d	   t              sJ t        | | 
      }t        || d      t              sJ t        |j                  | d      t              sJ t        |j
                  d   t              sJ t        |j                  | d      t              sJ t        |j                  d	   t              sJ y )N2009041520090519B)freqr   r+   r   r.      r   )r   r   
isinstancer   atiatrC   rK   rngr7   s     r'   test_series_box_timestamprf      s   
Z#
6C
+Cc!fi(((cffQi+++cggaj),,,cggaj),,,chhqk9---
C
 Cc#a&k9---cffSVni000cggaj),,,cggc!foy111chhqk9---r;   c                  X   t        ddd      } t        |       }t        |d   t              sJ t        |j                  d   t              sJ t        |j
                  d   t              sJ t        |j                  d   t              sJ t        |j                  d	   t              sJ y )
Nz	1 day 1 sr   hrH   r_   r   r+   r   r.   r`   )r   r   ra   r   rb   rc   rC   rK   rd   s     r'   test_series_box_timedeltarj      s    
+qs
;C
+Cc!fi(((cffQi+++cggaj),,,cggaj),,,chhqk9---r;   c           
          t        t        d      t        t        ddd                  }t        j                  t
        d      5   | |      d    d d d        y # 1 sw Y   y xY w)	Nr=   r      r   r   z^1$r   r+   )r   r2   listr!   r"   r#   
indexer_slr7   s     r'   test_getitem_ambiguous_keyerrorrp      sN    
r$uQA"7
8C	xv	. 3  s   AA$c                     t        g dg d      }t        j                  t        t	        j
                  d            5   | |      g d    d d d        y # 1 sw Y   y xY w)N)r+   r   r.   r`   )foobarrr   bahz['bam'] not in indexr   )rr   rs   rt   bam)r   r!   r"   r#   reescapern   s     r'   test_getitem_dups_with_missingrx      sK     ;
<C	xryy1G'H	I 63456 6 6s   AAc           
          t        t        d      t        t        ddd                  }|j                         }d | |      d<   t	        |t        dgdg      g      }t        j                  ||       y )Nr=   r   rl   r   r   r   r+   )r   r2   rm   copyr   r3   r4   )ro   r&   s2r9   s       r'   test_setitem_ambiguous_keyerrorr|      sd    uRyU1b!_ 56A 
BJrN1q&!QC012H2x(r;   c                    t         j                  | | j                  d   <   t         j                  | j                  g d<   t         j                  | j                  d<   t        j                  | j                  d         sJ t        j                  | j                  d         sJ d| t        j                  |       <   t        j                  | j                  d         rJ y )Nr   )r+   r         r   )r   nanr   rK   isnan)rD   s    r'   test_setitemr      s    02OO))!,-')vvO$ ffO88O((+,,,88O((+,,,12OBHH_-.xx,,Q/0000r;   c                     | dd }t        |      t        |j                        k(  sJ |j                  j                  du sJ y )Nr   rl   T)lenr   	is_unique)rD   sls     r'   test_setslicer      s@    	2	Br7c"((m###88%%%r;   c                    d}t        j                  t        |      5  | d d df    d d d        t        j                  t        |      5  d| d d df<   d d d        d}t        j                  t        |      5  | t	        d d      g    d d d        | t	        d d      f   }| d d }t        j                  ||       d}t        j                  t        |      5  | dd d gg    d d d        t        j                  t        |      5  d| dd d gg<   d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   y xY w)Nz0key of type tuple not found and not a MultiIndexr   r   z Indexing with a single-item listr   zunhashable type(: 'slice')?)r!   r"   r#   
ValueErrorslicer3   r4   	TypeError)rD   msgr8   r9   s       r'   !test_basic_getitem_setitem_cornerr      sI   
<C	xs	+ 1	xs	+ " !1" -C	z	- *tQ()*
 eD!n./Fr"H68, )C	y	, +T4L)*+	y	, /-.T4L)*/ /) " "
* *+ +/ /s;   
D
D':D3
D?
ED$'D03D<?EEc                 J   | j                         }| dd }| dd  }|dd }| j                  d   |j                  vsJ |j                  d   |j                  vsJ t        |      t        |j                        k(  sJ | |j                  d      ||j                  d      k(  sJ |j                  d   | j                  d   k(  sJ t        j                  t        j                  |      t        j                  |       dd         | dd }d|d d  t        j                  | |       y )Nr=   rl   i	   r   r+      )rz   r   r   r3   assert_numpy_array_equalr   arrayr4   )string_seriesobject_seriesoriginalnumSlicenumSliceEndobjSlicer   s          r'   
test_slicer      s'   !!#HR#H%KR#Hq!777q!777x=C////*+xq8I/JJJJ>>! 3 3B 7777 5rxx7Nst7TU 
r"	BBqE =(3r;   c                     t        g t              } t        d      | j                  d<   t        t	        d      ddg      }t        j                  | |       | j                  | j                  j                  dd            } t        t        j                  t	        d      gdddg      }t        j                  | |       t        d      | j                  d<   t        t	        d      dddg      }t        j                  | |       y )	Nr,   r+   r^   z1 daysztimedelta64[us]r-   r   r   A)r   objectr   rC   r   r3   r4   rB   r   insertr   r   )r&   r9   s     r'   test_timedelta_assignmentr      s    r A1AEE#Ji)1B3%PH1h'			!''..C()A	8$%->sCjH 1h'1AEE#Ji)1B3PS*UH1h'r;   c                  n   t        dD  ci c]  } | g d	 c}       }|j                  g dd      }|J t        dgdg      }d|d	<   |j                         }| t	        j
                         5  |d	   j                  |       d d d        |}t	        j                  ||       y c c} w # 1 sw Y   'xY w)
NrJ   rQ   T)inplacer+   )r   r   r   r   r   val)r   	set_indexr   rz   r3   raises_chained_assignment_errorupdateassert_frame_equal)r   dfreturn_valuer&   df_originalr9   s         r'   test_underlying_data_conversionr     s    	/:QAyL:	;B<<<>Ls9+&ABuI'')K		+	+	- 
5	H"h' ; s   B&0B++B4c                     | j                   g d   }t        j                  |j                   d<   t        j                  | j                   d         rJ y )Nr@   r+   r=   )rK   r   r   r   )rD   seqs     r'   test_preserve_refsr     sC    


{
+C&&CHHQKxx,,R01111r;   c                     | }t        t        j                  j                  d      j	                  t        |            |d      } ||      d   }|j                  |j                  k(  sJ y )Nr   sth)r   namerr   )r   r   r   r   r    r   r   )%lexsorted_two_level_string_multiindexro   r   r7   r8   s        r'   test_multilevel_preserve_namer   $  s]    1E

		a 00U<EPUC _U#F;;#(("""r;   r   z
2014-01-01rl   MSri   z2014-01M0rh   c           
         t        | d         }t        | d         }t        t        j                  d      |       }t        }|| d   fD ]  }t        j                  |||d d   |dd d          t        j                  ||d |d   |d dd          || d   fD ]H  }t        j                  ||||d   |ddd          t        j                  ||||d   |ddd          J  y )Nr      rl      r   )strr   r   aranger   r3   !assert_indexing_slices_equivalent)r   keystr1keystr2r7   SLCkeykey2s          r'   test_slice_with_negative_stepr   1  s    %(mG%)nG
2
&C
Cq" U
,,S#cg2g,AErE
K
,,S#gs2g,EQrE
KeBi( 	UD00c$s2+6FBqQSGU00c#d2+6FAaPRFT	U	Ur;   c                  l    t        ddgddg      } | d   dk(  sJ | d   dk(  sJ d| d<   | d   dk(  sJ y )Nr+   r   )r   )r   r   r.   )r   r%   s    r'   test_tuple_indexr   I  sP    1vff-.AV9>>V9>>AfIV9>>r;   c                      t        d      t        d      }} t        ddg| |g      }||    dk(  sJ ||   dk(  sJ d||<   ||   dk(  sJ y )Nr   r   r+   r   r   r.   )	frozensetr   )idx0idx1r&   s      r'   test_frozenset_indexr   R  s`    33$D1vdD\*AT7a<<T7a<<AdGT7a<<r;   c                      t        ddgddg      } | j                         }t        ddgddg      }|| j                  | dkD  <   t        j                  | |       y )	Nr+   r   r   r   r   r      d   )r   rz   rC   r3   r4   )r7   r9   rhss      r'   "test_loc_setitem_all_false_indexerr   \  sW    
!QSz
*CxxzH
!QSz
*CCGGC#I3)r;   c                      t        dg      } | j                  t        t        dgd         }t        g d      }t        j                  ||       y )Nr+   Fbooleanr,   int64)r   rC   r   r3   r4   r7   r8   r9   s      r'   +test_loc_boolean_indexer_non_matching_indexr   e  sB    
!+CWWVRKy9:Fb(H68,r;   c                      t        dg      } t        t        dgdddg      }t        j                  t        d      5  | j
                  |    d d d        y # 1 sw Y   y xY w)Nr+   Fr   r   r   Unalignabler   )r   r   r!   r"   r   rC   )r7   indexers     r'   ,test_loc_boolean_indexer_miss_matching_indexr   m  sR    
!+Cb%[	!Q@G	}M	:   s   AA c                      t        ddgi      } t        d| i      }| |j                  d<   t        | | d      }t        j                  ||       y )Nr   r+   label	new_label)r   r   )r   r   rC   r3   r4   )r   r7   r9   s      r'   (test_loc_setitem_nested_data_enlargementr   u  sM    	C!:	B
'2
CCGGK45H3)r;   c                      t        dt        g dd            } | j                  dd }t        dt        dgd            }t        j                  ||       y )Nr+   )r   r+   r   Int64r,   r   r   r.   )r   r   rC   r3   r4   r   s      r'   'test_loc_ea_numeric_index_oob_slice_endr   ~  sI    
%	9
:CWWQq\FauaS89H68,r;   c                      t        ddd      } t        j                  t        d      5  | j                  d    d d d        y # 1 sw Y   y xY w)Nr+   r   )TFr   r   r   r!   r"   r#   rC   )r7   s    r'   test_getitem_bool_int_keyr     s?    
!$
%C	xs	+ 
  s   AAr   r   xr   Fr   c                     t        dddgi|      }|j                         }d|j                  | <   t        j                  ||       y )Nr   r+   r         ?)r   rz   rC   r3   r   )r   r   r   r9   s       r'   test_setitem_empty_indexerr     sD     
C!Q'3'	(BwwyHBFF7O"h'r;   c                      d} t        g dg d      }t        j                  t        |       5  |j                  dd  d d d        y # 1 sw Y   y xY w)NzJCannot get left slice bound for non-monotonic index with a missing label 4)r.   r   r   r   )r.   r   r   r   r   r   r`   r   r   )r   r7   s     r'   1test_loc_non_monotonic_index_with_a_missing_labelr     sC    
VC
\
2C	xs	+ !  s   AAc                   h   e Zd Zej                  j                  ddhddig      d        Zej                  j                  ddhddidhdfddidfg      d        Zej                  j                  ddhddig      d        Zej                  j                  ddhddidhdfddidfg      d        Z	y)	TestDeprecatedIndexersr   r+   c                     t        ddg      }t        j                  t        d      5  |j                  |    d d d        y # 1 sw Y   y xY wNr+   r   as an indexer is not supportedr   r   r!   r"   r   rC   selfr   r7   s      r'   $test_getitem_dict_and_set_deprecatedz;TestDeprecatedIndexers.test_getitem_dict_and_set_deprecated  s@     aVn]]9,LM 	GGCL	 	 	   AAr   c                     t        ddgt        j                  ddg            }t        j                  t
        d      5  |j                  |    d d d        y # 1 sw Y   y xY wNr+   r   rP   )r.   r`   r   r   r   r   r	   from_tuplesr!   r"   r   rC   r   s      r'   /test_getitem_dict_and_set_deprecated_multiindexzFTestDeprecatedIndexers.test_getitem_dict_and_set_deprecated_multiindex  sS     aV:#9#966:J#KL]]9,LM 	GGCL	 	 	    AA"c                     t        ddg      }t        j                  t        d      5  d|j                  |<   d d d        y # 1 sw Y   y xY wr   r   r   s      r'   $test_setitem_dict_and_set_disallowedz;TestDeprecatedIndexers.test_setitem_dict_and_set_disallowed  sB     aVn]]9,LM 	CGGCL	 	 	r   c                     t        ddgt        j                  ddg            }t        j                  t
        d      5  d|j                  |<   d d d        y # 1 sw Y   y xY wr   r   r   s      r'   /test_setitem_dict_and_set_disallowed_multiindexzFTestDeprecatedIndexers.test_setitem_dict_and_set_disallowed_multiindex  sU     aV:#9#966:J#KL]]9,LM 	CGGCL	 	 	r   N)
__name__
__module____qualname__r!   markparametrizer   r   r   r    r;   r'   r   r     s    [[UaS1a&M2 3 [[UaS1a&A3(aVQK$HI J [[UaS1a&M2 3 [[UaS1a&A3(aVQK$HI Jr;   r   c            	          e Zd Zd Zd Zdddde ej                  d       ej                  d      gZ	ddg e
dd	      g d
 e
ddd      gZej                  j                  dg e	d	d ej                  d	       ej                   d	            ej                  j                  de      d               Zej                  j                  dg e	dd ej                   d            ej                  j                  de      d               Zej                  j                  dg e	d      ej                  j                  de      d               Zy)TestSetitemValidationc                 T   |j                         }t        j                  t        d      5  |||<   |j                         }d d d        t        j                  t        d      5  ||j                  |<   |j                         }d d d        t        j                  t        d      5  ||j
                  |<   |j                         }d d d        t        j                  t        d      5  ||d d  d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   KxY w# 1 sw Y   y xY w)NzInvalid valuer   )rz   r!   r"   r   rK   rC   )r   r7   invalidr   orig_sers        r'   _check_setitem_invalidz,TestSetitemValidation._check_setitem_invalid  s    88:]]9O< 	""CL--/C	" ]]9O< 	" 'CHHW--/C	" ]]9O< 	"&CGGG--/C	" ]]9O< 	CF	 		" 	"	" 	"	" 	"	 	s/   C:% D( D+D:DDDD'c                     |j                         }|||<   |j                         }||j                  |<   |j                         }||j                  |<   |j                         }||d d  y )N)rz   rK   rC   )r   r7   valuer   r  s        r'   _check_setitem_validz*TestSetitemValidation._check_setitem_valid  s\    88:Gmmo!mmo mmoAr;   y      ?       @True1z1.0r
   r   r+   TFFNr  g      ?r   c                 H    t        g dd      }| j                  |||       y )Nr  boolr,   r   r  )r   r  r   r7   s       r'   #test_setitem_validation_scalar_boolz9TestSetitemValidation.test_setitem_validation_scalar_bool  s#    
 )8##C':r;   Tr   c                     t        g d|      }t        |      r1|t        ur)t        j                  |      s| j                  |||       y | j                  |||       y )NrQ   r,   )r   r   r
   r   isnatr
  r  )r   r  any_int_numpy_dtyper   r7   s        r'   "test_setitem_validation_scalar_intz8TestSetitemValidation.test_setitem_validation_scalar_int  sN     Y&9:=WC/8I%%c7G<''Wg>r;   c                 H    t        g d|      }| j                  |||       y )N)r+   r   Nr,   r  )r   r  float_numpy_dtyper   r7   s        r'   $test_setitem_validation_scalar_floatz:TestSetitemValidation.test_setitem_validation_scalar_float  s#     \):;##C':r;   )r   r   r   r  r
  r
   r   
datetime64timedelta64_invalid_scalarsr   	_indexersr!   r   r   r   float64r  r  r  r  r;   r'   r  r    s   $ 	eu QCq!&:E$d<STI[[J%JqJ#Jxrxx{JJBJJqMJ [[Y	2; 3; [[Y(W*:(WD(W#(WzrzzRU(WX[[Y	2? 3 Y? [[Y(A*:(AD(AB[[Y	2; 3 C;r;   r  )B__doc__datetimer   rv   numpyr   r!   pandas.errorsr   pandasr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   pandas._testing_testingr3   r(   r:   r>   rF   rL   rN   r   r   r   rW   rZ   rf   rj   rp   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r;   r'   <module>r%     s     	   '     "?<	-& * |$HAr7&)	
 l+	NAy>"	
$$&.".6)1&/64.($( 2# <$7Y5Rc2UU *-*- c3Z 01R%q"xrxxPR|$TU( V 2( <B; B;r;   