
    Owg'A                     h   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 edg dd       eddi       eddie#      g eg dg dd       e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> G d< d=      Z? G d> d?      Z@y)@z 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      } d}d}t        j                  t        |      5  t        j                  t        |      5  | d    d d d        d d d        t        j                  t        |      5  t        j                  t        |      5  d| d<   d d d        d d d        t        j                  t        d	      5  | d
    d d d        | j                         } t        j                  t        |      5  t        j                  t        |      5  | d    d d d        d d d        d}t        j                  t        |      5  t        j                  t        |      5  d| d<   d d d        d d d        y # 1 sw Y   5x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   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   y xY w)N      )abr   r   r   indexz>Series.__[sg]etitem__ treating keys as positions is deprecatedz/index 5 is out of bounds for axis 0 with size 5matchr   z^'c'$cz7index 5 is out of bounds for axis (0|1) with size 5|^5$)r   nprandomdefault_rngstandard_normalpytestraises
IndexErrortmassert_produces_warningFutureWarningKeyError
sort_index)swarn_msgmsgs      a/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/series/indexing/test_indexing.pytest_basic_indexingr-      s   
		a 003;T	A PH
;C	z	- ''XF 	aD	 
z	- ''XF 	AaD	 
xx	0 	# 	
A	z	- ''XF 	aD	 EC	z	- ''XF 	AaD	 	 	 	 	  	 	 
	 	 s   F=7F0=F=(GG

G5G$.G<
G0G<=HHH0F:	5F==G
G	GG!$G-0G9	5G<<HH	HHc                     | }t        g d|      }t        t        d      |      }|d   }t        ddgt        ddg|            }t        j                  ||d	       y )
N   r   r0   dtype   r   r0   r   r   Tcheck_exactr   r   ranger$   assert_series_equal)any_numeric_dtyper2   idxserresultexpecteds         r,   6test_getitem_numeric_should_not_fallback_to_positionalr>   9   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/   r1   r3   r   
   r0   )rA   r0   rA   Tr4   r6   )r9   r2   r:   r;   r=   s        r,   6test_setitem_numeric_should_not_fallback_to_positionalrB   C   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   rA      r   r   )r   reindexr$   r8   loc)datetime_seriesindicesr<   r=   s       r,   test_basic_getitem_with_labelsrJ   M   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-01r3   z
US/Eastern)periodstzr   r   r   r   )rM   r   r   )r   r   r   rG   iloc)r;   r=   r<   s      r,    test_basic_getitem_dt64tz_valuesrP   Y   sw     <|<OC ,7HWWS\FXXXa[FXXFXr?   c                 6   t        t        j                  j                  d      j	                  d            }|d   }t        j                  ||       t        j                  |      5  d|d<   d d d        | s|dk(  j                         sJ y y # 1 sw Y   "xY w)Nr   rA   .r   )	r   r   r   r   r    r$   r8   assert_cow_warningall)using_copy_on_writewarn_copy_on_writer)   r<   s       r,   test_getitem_setitem_ellipsisrV   h   s    ryy$$Q'77;<AsVF61%			1	2 #!  """  s   (BBz$result_1, duplicate_item, expected_1   )r0   r   r   r3   r0   r   r0   i9  r1   r0   r   r3   c                     | j                  |      }|j                  |      }t        j                  |d   |       |d   | d   k(  sJ y )Nr0   r   )_appendr$   r8   )result_1duplicate_item
expected_1r<   r=   s        r,   $test_getitem_with_duplicates_indicesr_   t   sN    " n-F!!.1H6!9h/!9###r?   c                      t        g dg d      } | j                  d   | d   k(  sJ d| j                  d<   t        j                  | d   d       y )NrY   rN   r   r   r   )r   rO   r$   assert_almost_equalr)   s    r,   test_getitem_setitem_integersrc      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        | | 
      }d}t        j                  t        |      5  t        |d   t              sJ 	 d d d        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 # 1 sw Y   xY w)N2009041520090519B)freqr   r0   r   r3      r   z;Series.__getitem__ treating keys as positions is deprecatedr   )r   r   
isinstancer   atiatrG   rO   r$   r%   r&   )rngr;   r+   s      r,   test_series_box_timestamprn      s?   
Z#
6C
+Cc!fi(((cffQi+++cggaj),,,cggaj),,,chhqk9---
C
 C
GC		#	#M	= -#a&),,,-cffSVni000cggaj),,,cggc!foy111chhqk9---- -s   E77F 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rL   rh   r   r0   r   r3   ri   )r   r   rj   r   rk   rl   rG   rO   )rm   r;   s     r,   test_series_box_timedeltarr      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)	NrA   r      r   r   z^1$r   r0   )r   r7   listr!   r"   r'   
indexer_slr;   s     r,   test_getitem_ambiguous_keyerrorrx      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)r0   r   r3   ri   )foobarrz   bahz['bam'] not in indexr   )rz   r{   r|   bam)r   r!   r"   r'   reescaperv   s     r,   test_getitem_dups_with_missingr      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 )NrA   r   rt   r   r   r   r0   )r   r7   ru   copyr   r$   r8   )rw   r)   s2r=   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   )r0   r         r   )r   nanr   rO   isnan)rH   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   rt   T)lenr   	is_unique)rH   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slicer$   r8   	TypeError)rH   r+   r<   r=   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                         }| 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 }t        j                  |      5  d|d d  d d d        |rt        j                  | |       y | dd dk(  j                         sJ y # 1 sw Y   ;xY w)NrA   rt   i	   r   r0      )
r   r   r   r$   assert_numpy_array_equalr   arrayrR   r8   rS   )	string_seriesobject_seriesrT   rU   originalnumSlicenumSliceEndobjSlicer   s	            r,   
test_slicer      sl   !!#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			1	2 1 
}h7b$)..000 s   EE'c            	         t        g t              } t        d      | j                  d<   t	        j
                  | t        t        d      dg             | j                  | j                  j                  dd            } t	        j
                  | t        t        j                  t        d      gddg             t        d      | j                  d<   t        t        d      ddg      }t	        j
                  | |       y )Nr1   r0   rg   z1 daysr   r   A)r   objectr   rG   r$   r8   r   rF   r   insertr   r   )r)   r=   s     r,   test_timedelta_assignmentr     s    r A1AEE#J1fYx%8FG			!''..C()A1fbffi.A%B3PS*UV1AEE#Ji)#s<H1h'r?   c                 ^   t        dD ci c]  }|g d	 c}      }|j                  g dd      }|J t        dgdg      }d|d	<   |j                         }| | r4t	        j
                         5  |d	   j                  |       d d d        |}nit	        j                  t        d
      5  |d	   j                  |       d d d        t        g dg dg dg dd      }|j                  g dd      }|J t	        j                  ||       y c c}w # 1 sw Y   xY w# 1 sw Y   bxY w)NrN   rY   T)inplacer0   )r   r   r   r   r   valzinplace methodr   )r   r0   r   )r   r   r   r   )
r   	set_indexr   r   r$   raises_chained_assignment_errorupdater%   r&   assert_frame_equal)rT   r   dfreturn_valuer)   df_originalr=   s          r,   test_underlying_data_conversionr     s!   	/:QAyL:	;B<<<>Ls9+&ABuI'')K//1 	 uIQ	 ''=MN 	 uIQ	 ))IN
  ))/4)H###"h') ;	  	 	  	 s   D2D-D#D #D,c                     | j                   g d   }t        j                  |j                   d<   t        j                  | j                   d         rJ y )NrD   r0   rA   )rO   r   r   r   )rH   seqs     r,   test_preserve_refsr   6  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   namerz   )r   r   r   r   r    r   r   )%lexsorted_two_level_string_multiindexrw   r   r;   r<   s        r,   test_multilevel_preserve_namer   <  s]    1E

		a 00U<EPUC _U#F;;#(("""r?   r   z
2014-01-01rt   MSrq   z2014-01M0rp   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      rt      r   )strr   r   aranger   r$   !assert_indexing_slices_equivalent)r   keystr1keystr2r;   SLCkeykey2s          r,   test_slice_with_negative_stepr   I  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 )Nr0   r   )r   )r   r   r3   )r   rb   s    r,   test_tuple_indexr   a  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   r0   r   r   r3   )	frozensetr   )idx0idx1r)   s      r,   test_frozenset_indexr   j  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 )	Nr0   r   r   r   r   r      d   )r   r   rG   r$   r8   )r;   r=   rhss      r,   "test_loc_setitem_all_false_indexerr   t  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 )Nr0   Fbooleanr1   int64)r   rG   r   r$   r8   r;   r<   r=   s      r,   +test_loc_boolean_indexer_non_matching_indexr   }  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)Nr0   Fr   r   )r2   r   Unalignabler   )r   r   r!   r"   r   rG   )r;   indexers     r,   ,test_loc_boolean_indexer_miss_matching_indexr     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   r0   label	new_label)r   r   )r   r   rG   r$   r8   )r   r;   r=   s      r,   (test_loc_setitem_nested_data_enlargementr     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 )Nr0   )r   r0   r   Int64r1   r   r   r3   )r   r   rG   r$   r8   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)Nr0   r   )TFr   r   )r   r!   r"   r'   rG   )r;   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   r0   r         ?)r   r   rG   r$   r   )r   r   r   r=   s       r,   test_setitem_empty_indexerr     sD     
C!Q'3'	(BwwyHBFF7O"h'r?   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   r0   c                     t        ddg      }t        j                  t        d      5  |j                  |    d d d        y # 1 sw Y   y xY wNr0   r   as an indexer is not supportedr   r   r!   r"   r   rG   selfr   r;   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Nr0   r   rX   )r3   ri   r   r   r   r   r	   from_tuplesr!   r"   r   rG   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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edd ej                  d       ej                  d      gz         ej                  j                  de
      d               Zej                  j                  dedd ej                  d      gz         ej                  j                  de
      d               Zej                  j                  dedgz         ej                  j                  de
      d               Zy
)TestSetitemValidationc                 b   d}t        j                  |      }|j                         }t        j                  ||      5  |||<   |j                         }d d d        t        j                  ||      5  ||j
                  |<   |j                         }d d d        t        j                  ||      5  ||j                  |<   |j                         }d d d        t        j                  ||      5  ||d d  d d d        y # 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   GxY w# 1 sw Y   y xY w)Nz3Setting an item of incompatible dtype is deprecatedr   )r~   r   r   r$   r%   rO   rG   )r   r;   invalidr   warnr+   orig_sers          r,   _check_setitem_invalidz,TestSetitemValidation._check_setitem_invalid  s   Ciin88:''C8 	""CL--/C	" ''C8 	" 'CHHW--/C	" ''C8 	"&CGGG--/C	" ''C8 	CF	 		" 	"	" 	"	" 	"	 	s/   D4 D3 D2D%D
DD"%D.y      ?       @True1z1.0r
   r   r0   TFFNr  g      ?r   c                 R    t        g dd      }| j                  |||t               y )Nr  boolr1   r   r  r&   )r   r  r   r;   s       r,   #test_setitem_validation_scalar_boolz9TestSetitemValidation.test_setitem_validation_scalar_bool  s%    
 )8##C'=Ir?   Tr   c                     t        g d|      }t        |      r |t        urt        j                  |      sd }nt
        }| j                  ||||       y )NrY   r1   )r   r   r
   r   isnatr&   r  )r   r  any_int_numpy_dtyper   r;   r	  s         r,   "test_setitem_validation_scalar_intz8TestSetitemValidation.test_setitem_validation_scalar_int  sH     Y&9:=WC/8ID D##C'4@r?   c                 R    t        g d|      }| j                  |||t               y )N)r0   r   Nr1   r  )r   r  float_numpy_dtyper   r;   s        r,   $test_setitem_validation_scalar_floatz:TestSetitemValidation.test_setitem_validation_scalar_float  s%     \):;##C'=Ir?   )r   r   r  r  r
   r   
datetime64timedelta64_invalid_scalarsr   	_indexersr!   r  r  r   float64r  r  r  r  r?   r,   r  r    sh   , 	eu QCq!&:E$d<STI[[#q#xrxx{JBJJqM&JJ [[Y	2J 3J [[Y(8D#zrzzRU;W(WX[[Y	2A 3 YA [[Y(8D6(AB[[Y	2J 3 CJr?   r  )A__doc__datetimer   r~   numpyr   r!   pandas.errorsr   pandasr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   pandas._testing_testingr$   r-   r>   rB   rJ   rP   rV   r  r  r   r_   rc   rn   rr   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     	   '     8?<	-	# * rl+,As8Ar7&)	
 y\23Ay>"Ay>"	
$$&.&.6)1&/616((22# <$7Y5Rc2UU *-*- c3Z 01R%q"xrxxPR|$TU( V 2( <9J 9Jr?   