
    .i [              
       B   d Z ddlmZmZmZ ddlZddlZddlmZm	Z	 ddl
mZ ddlmZ ddlmZ ddl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 dd	l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&d Z'ejP                  jS                  dddg edd       eddd      g      d        Z*d Z+d Z,d  Z-d! Z.d" Z/d# Z0d$ Z1d% Z2d& Z3d' Z4d( Z5d) Z6d* Z7d+ Z8ejP                  jS                  d,d-d.g      d/        Z9 G d0 d1      Z:y)2zJ
Series.__getitem__ test classes are organized by the type of key passed.
    )datedatetimetimeN)
conversion	timezones)np_version_gt2)Pandas4Warning)	is_scalar)	Categorical	DataFrameDatetimeIndexIndexSeries	Timestamp
date_rangeperiod_rangetimedelta_range)IndexingError)BDayc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
ddg      d        Zej                  j                  dddg      d        Zd Zd Zd Zd Zd Zd Zy)TestSeriesGetitemScalarsc                 d    t        dgdz  t        g d            }|d   dk(  sJ |d   dk(  sJ y )N      )abc      ?indexr   r   )r   r   selfsers     g/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/series/indexing/test_getitem.py&test_getitem_object_index_float_stringz?TestSeriesGetitemScalars.test_getitem_object_index_float_string*   s:    aS1WE*>$?@3x1}}3x1}}    c                     t        g dg dd      }|d   }|dk(  sJ t        ddgddgd      }t        g dg dd      }|d   }t        j                  ||       y )	N)r   r      r*   )   r+   )        g?皙?foo)r    namer,   r(   r)   )r,   r,   r-   )r   tmassert_series_equalr"   r#   resultexpecteds       r$   $test_getitem_float_keys_tuple_valuesz=TestSeriesGetitemScalars.test_getitem_float_keys_tuple_values0   sk     -_5QS 66*3*5I-_5QS
vx0r&   c                     t        ddgt        j                  d      t        j                  d      g      }|j                  d   }||   }|dk(  sJ y )Nr   r*   Oi8r   )r   npdtyper    )r"   r#   keyr3   s       r$    test_getitem_unrecognized_scalarz9TestSeriesGetitemScalars.test_getitem_unrecognized_scalar?   sK     aVBHHSM288D>#BCiilS{{r&   c                     t        dgdz  dgdz        }t        j                  t        d      5  |d    d d d        y # 1 sw Y   y xY w)Nr   
   r   z^-11$matchir   pytestraisesKeyErrorr!   s     r$   #test_getitem_negative_out_of_boundsz<TestSeriesGetitemScalars.test_getitem_negative_out_of_boundsJ   sD    cURZurz2]]873 	H	 	 	s   A  A	c                     t        |      }t        j                  t        t	        |            5  ||    d d d        y # 1 sw Y   y xY w)Nr?   )lenrB   rC   rD   str)r"   datetime_seriesNs      r$   %test_getitem_out_of_bounds_indexerrorz>TestSeriesGetitemScalars.test_getitem_out_of_bounds_indexerrorP   s;     ]]83q62 	A	 	 	s	   ?Ac                     t        g t              }t        j                  t        d      5  |d    d d d        y # 1 sw Y   y xY w)Nr:   z-1r?   r   objectrB   rC   rD   r!   s     r$   4test_getitem_out_of_bounds_empty_rangeindex_keyerrorzMTestSeriesGetitemScalars.test_getitem_out_of_bounds_empty_rangeindex_keyerrorV   s:     Rv&]]840 	G	 	 	s	   <Ac                    |}t        t        j                  j                  d      j	                  d      t        g d|            }t        j                  t        d      5  |d    d d d        t        j                  t        d	      5  |d
    d d d        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        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)Nr*      )r   r   r   r   r*   r*   rM   r   ^5$r?      z^'c'$r   )r*   r*   r   r   r   r   )	r   r9   randomdefault_rngstandard_normalr   rB   rC   rD   )r"   any_int_numpy_dtyper:   r#   s       r$   (test_getitem_keyerror_with_integer_indexzATestSeriesGetitemScalars.test_getitem_keyerror_with_integer_index]   s   #II!!!$44Q7*%8

 ]]862 	F	 ]]884 	H	 II!!!$44Q7?Q
 ]]862 	F	 ]]884 	H	 		 		 		 		 	s0   $D)D51EE)D25D>E
Ec                     t         rd}nd}t        j                  d      }t        j                  t
        |      5  ||    d d d        y # 1 sw Y   y xY w)Nz^np.int64\(5\)$rT   rU   r?   )r   r9   int64rB   rC   rD   )r"   rI   msgidxs       r$   test_getitem_int64z+TestSeriesGetitemScalars.test_getitem_int64u   sG    $CChhqk]]83/ 	!C 	! 	! 	!s   AAc                     t        t        d      t        t        d                  }|t        t        d               }t        j                  ||       y )NrU   r   r   rangelistr0   r1   r"   r#   r3   s      r$   test_getitem_full_rangez0TestSeriesGetitemScalars.test_getitem_full_range~   s<    U1XT%(^4T%(^$
vs+r&   tzstrzEurope/Berlinzdateutil/Europe/Berlinc                     t        j                  |      }t        ddd|      }t        ||j                        }t        d|      }t        dd	d
dd      }t        j                  ||      }||   ||   k(  sJ y )Nz2012-12-24 16:00z2012-12-24 18:00h)startendfreqtz)r    dataz2012-12-24 17:00)rl   i           r   )	r   maybe_get_tzr   r   hourr   r   r   localize_pydatetime)r"   rf   rl   r    tstime_pandasdttime_datetimes           r$   test_getitem_pydatetime_tzz3TestSeriesGetitemScalars.test_getitem_pydatetime_tz   s    ##E*$*<35
 %ejj1 2u=dBB*"66r2>+"]"3333r&   rl   z
US/Easternzdateutil/US/Easternc                     t        dd|      }t        t        j                  j	                  d      j                  t        |            |      }|d   }t        j                  ||j                  d          y )N1/1/2000r>   periodsrl   r*   r   1/3/2000)
r   r   r9   rV   rW   rX   rG   r0   assert_almost_equaliloc)r"   rl   rngr#   r3   s        r$    test_string_index_alias_tz_awarez9TestSeriesGetitemScalars.test_string_index_alias_tz_aware   s[    RB7RYY**1-==c#hGsSZ
vsxx{3r&   c                 v   t        ddd      }t        t        j                  j	                  d      j                  t        |            |      }|j                  dk(  |j                  dk(  z  }|t        dd         }||   }|j                  j                  d       |_
        t        j                  ||       y )	Nrz   z1/5/20005minrk   r*   r   	      )r   r   r9   rV   rW   rX   rG   rr   minuter   r    
_with_freqr0   r1   )r"   r   rt   maskr3   r4   s         r$   test_getitem_time_objectz1TestSeriesGetitemScalars.test_getitem_time_object   s    Zf=BII))!,<<SXFcRA#**"23DBKd8||..t4
vx0r&   c                     t        t        d      t        d      g      }t        ddg|      }|j                  d   }||d      }||k(  sJ y )Nz
12-31-1999z
12-31-2000r   r*   r   r   )r   r   r   r   )r"   catsr#   r4   r3   s        r$   %test_getitem_scalar_categorical_indexz>TestSeriesGetitemScalars.test_getitem_scalar_categorical_index   sS    Il3Y|5LMNaV4(88A;T!W!!!r&   c                    t        g dt        j                  g d            }|d   dk(  sJ |dg   }|j                  dd  }t	        j
                  ||       |g d   }t	        j
                  ||j                  d d d          y )Nr   r   r   )r*   r   r   r   r   r   rN   r   r   r*   )r   pdCategoricalIndexr   r0   r1   )r"   r#   resr4   res2s        r$   8test_getitem_numeric_categorical_listlike_matches_scalarzQTestSeriesGetitemScalars.test_getitem_numeric_categorical_listlike_matches_scalar   s|    _B,?,?	,JK 1v}} 1#h88BC=
sH-9~
tSXXdd^4r&   c                 |    t        g dt        g dd            }|j                  d      dk(  sJ |d   dk(  sJ y )Nr   r   r*   r+   categoryrM   r   r+   r   )r   r   getr!   s     r$   /test_getitem_integer_categorical_not_positionalzHTestSeriesGetitemScalars.test_getitem_integer_categorical_not_positional   s;    _E):,NOwwqzS   1v}}r&   c                    t        ddd      }t        t        j                  t	        |            |      }d}|j                  |      }|dk(  sJ ||   }||j                  d   k(  sJ d}t        j                  t        |	      5  |j                  d
       d d d        t        j                  t        |	      5  |d
    d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)N1 day 10:11:12rh     rk   r|   r   z6 days, 23:11:12   z!^Timedelta\('50 days 00:00:00'\)$r?   z50 days)
r   r   r9   arangerG   get_locr   rB   rC   rD   )r"   r   r#   r;   indexerr3   r]   s          r$   $test_getitem_str_with_timedeltaindexz=TestSeriesGetitemScalars.test_getitem_str_with_timedeltaindex   s    .S#FRYYs3x(4 ++c"#~~S#&&&2]]83/ 	#KK	"	#]]83/ 		N	 		# 	#	 	s   C=CCC!c                     t        ddd      }t        j                  t        d      5  |d    d d d        y # 1 sw Y   y xY w)Nr   r   )TFz^0$r?   rA   r!   s     r$   "test_getitem_bool_index_positionalz;TestSeriesGetitemScalars.test_getitem_bool_index_positional   s;    Aa()]]851 	F	 	 	s	   9AN)__name__
__module____qualname__r%   r5   r<   rE   rK   rQ   rZ   r_   re   rB   markparametrizerx   r   r   r   r   r   r   r    r&   r$   r   r   )   s    1	0!, [[W8P&QR4 S4 [[TL2G#HI4 J41"5"r&   r   c                   F   e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  d e edd	d	      d
      g dg e edd	d      d
      dgg e edd	d	      d
      g g ed
 edd	d	            g dg ed
 edd	d	            dggg      d        Zd Zd Zd Zy
)TestSeriesGetitemSlicesc                     t        dd      }|j                         }|d   }t        dd      }t        ||      }t        j                  ||       y )Nz1/1/2008z1/1/20092008z
2008-01-01z
2008-12-31)ri   rj   r   )r   	to_seriesr   r0   r1   )r"   arrr#   r3   r   r4   s         r$   1test_getitem_partial_str_slice_with_datetimeindexzITestSeriesGetitemSlices.test_getitem_partial_str_slice_with_datetimeindex   sJ    Z0mmoV|>#S)
vx0r&   c                 "   t        g d      }t        t        j                  j	                  d      j                  t        |            |      }|dd  }|dd  }t        j                  ||       |dd }|dd }t        j                  ||       y )N)rz   1/2/2000r   r}   z1/4/2000r*   r   r   r   r}   r   )	r   r   r9   rV   rW   rX   rG   r0   r1   )r"   r^   rt   r3   r4   s        r$   -test_getitem_slice_strings_with_datetimeindexzETestSeriesGetitemSlices.test_getitem_slice_strings_with_datetimeindex   s    H
 BII))!,<<SXFcRJKab6
vx0Jz*a7
vx0r&   c                 n   t        ddd      }t        t        j                  t	        |            |      }|dd }|j
                  dd	 }t        j                  ||       |dd  }|j
                  dd  }t        j                  ||       |d d }|j
                  d d	 }t        j                  ||       y )
Nr   rh   r   r   r   z5 dayz6 dayV      r   r   r9   r   rG   r   r0   r1   r"   r   r#   r3   r4   s        r$   2test_getitem_partial_str_slice_with_timedeltaindexzJTestSeriesGetitemSlices.test_getitem_partial_str_slice_with_timedeltaindex   s    .S#FRYYs3x(4WW%88Bs#
vx0WX88BC=
vx0Xg88DS>
vx0r&   c                 L   t        ddd      }t        t        j                  t	        |            |      }|dd  }|j
                  dd  }t        j                  ||       |dd  }|j
                  dd  }t        j                  ||       |d	   }||j
                  d
   k(  sJ y )Nr   us  r   r   r   z1 day 10:11:12.001i  z1 days, 10:11:12.001001i  r   r   s        r$   <test_getitem_partial_str_slice_high_reso_with_timedeltaindexzTTestSeriesGetitemSlices.test_getitem_partial_str_slice_high_reso_with_timedeltaindex  s    .T4HRYYs3x(4%&'88AB<
vx0)*+88DE?
vx0./$'''r&   c                     t        j                  t        d      5  |d d t        j                  f    d d d        y # 1 sw Y   y xY wNzMulti-dimensional indexingr?   )rB   rC   
ValueErrorr9   newaxis)r"   rI   s     r$   test_getitem_slice_2dz-TestSeriesGetitemSlices.test_getitem_slice_2d  s6    ]]:-IJ 	+ArzzM*	+ 	+ 	+s	   =Ac                 j   t        ddd      }t        t        j                  j	                  d      j                  d      |      }t        dd	d       g}d
}t        j                  t        |      5  ||    d d d        ||d   f   }||d      }t        j                  ||       y # 1 sw Y   1xY w)N20090415200905192Br   r*      r   rS      z Indexing with a single-item listr?   r   )r   r   r9   rV   rW   rX   slicerB   rC   r   r0   r1   )r"   r    r#   r   r]   r3   r4   s          r$   test_getitem_median_slice_bugz5TestSeriesGetitemSlices.test_getitem_median_slice_bug   s    :z=RYY**1-==bAOAt$%0]]:S1 	L	 gaj]#wqz?
vx0	 	s   3B))B2zslc, positionsi  r   Nr   i  r*   i  r   c                     t        g dt        g d            }d}t        j                  t        |      5  ||   }d d d        |j                  |      }t        j                  |       y # 1 sw Y   1xY w)Nr   )z
2019-01-01z2019-01-01T06:00:00z
2019-01-02z1Slicing with a datetime.date object is deprecatedr?   )r   r   r0   assert_produces_warningr	   taker1   )r"   slc	positionsr#   r]   r3   r4   s          r$   test_getitem_slice_datez/TestSeriesGetitemSlices.test_getitem_slice_date.  sn     MN
 B''cB 	XF	88I&
vx0	 	s   A--A6c                    d}t        j                  t        |j                  d            5  |dd  d d d        t        j                  t        |j                  d            5  |dd  d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)	NzUcannot do slice indexing on DatetimeIndex with these indexers \[{key}\] of type floatz4\.0)r;   r?         @g      $@z4\.5g      @)rB   rC   	TypeErrorformat)r"   rI   r]   s      r$   test_getitem_slice_float_raisesz7TestSeriesGetitemSlices.test_getitem_slice_float_raisesD  s    ' 	 ]]9CJJ7J,CD 	&C%	& ]]9CJJ7J,CD 	&C%	& 	&	& 	&	& 	&s   A6'B6A?Bc                    t        t        d      t        t        d                  }|dd  }t        j                  ||       |dd  }t        j                  ||dd         |d d }t        j                  ||d d        y )Nr>   r   iir+   r   ra   rd   s      r$   test_getitem_slice_bugz.TestSeriesGetitemSlices.test_getitem_slice_bugO  sw    U2Yd59o6ST
vs+RS
vs12w/Tc
vs2Aw/r&   c                     t        t        j                  j                  d      j	                  d      g d      }|d d }t        |j
                  d d g d      }t        j                  ||       y )Nr*      )r*   r   rS   r   r>   rn         r   r   )r*   r   rS   r   )r   r9   rV   rW   rX   valuesr0   r1   r2   s       r$   test_getitem_slice_integersz3TestSeriesGetitemSlices.test_getitem_slice_integersZ  s_    II!!!$44Q7.

 Ra#**Ra.=
vx0r&   )r   r   r   r   r   r   r   r   r   rB   r   r   r   r   r   r   r   r   r   r&   r$   r   r      s    	111 ( +
1 [[4a#T*I64a#T*QC04a#T*B/4dAq)*I64dAq)*QC0	
	
1	
1	&	01r&   r   c                      e Zd Zej                  j                  deej                  e	e
g      d        Zd Zej                  j                  deej                  e	g      d        Zej                  j                  deej                  e	g      ej                  j                  dej                  ej                  ej                   g      d               Zd Zy)	TestSeriesGetitemListLikeboxc                     t        ddg      }t        dgt              } ||      }d}t        j                  t        |      5  ||    d d d        y # 1 sw Y   y xY w)NABCrM   zENone of \[Index\(\['C'\], dtype='object|str'\)\] are in the \[index\]r?   rO   )r"   r   r#   r;   r]   s        r$   test_getitem_no_matchesz1TestSeriesGetitemListLike.test_getitem_no_matchesf  sX     c3Z cU&)#hV]]83/ 	H	 	 	s   AAc                    t        t        ddd            }|ddg   }t        t        j                  dd      t        j                  d	d      gddgd
      }t	        j
                  ||       |j                  d
k(  sJ y )Nz
2000-01-01r>   D)r|   rk   r*   r   
2000-01-03r   z
2000-01-05z	Period[D]r    r:   )r   r   r   Periodr0   r1   r:   )r"   r#   r3   exps       r$   *test_getitem_intlist_intindex_periodvalueszDTestSeriesGetitemListLike.test_getitem_intlist_intindex_periodvaluesr  sx    \,EFaVYY|#.		,S0QRa&

 	vs+||{***r&   c                 8   t        dd      j                  d       }t        j                  j	                  |      }t        t        t        |            |      } |dg      }d}t        j                  t        |      5  ||    d d d        y # 1 sw Y   y xY w)Nr   r+   r|   r   r   zCNone of \[Index\(\[0\], dtype='int(32|64)'\)\] are in the \[index\]r?   )r   r   r   IntervalIndexfrom_breaksr   rb   rG   rB   rC   rD   )r"   r   dtiiir#   r;   r]   s          r$   *test_getitem_intlist_intervalindex_non_intzDTestSeriesGetitemListLike.test_getitem_intlist_intervalindex_non_int~  s     q1<<TB))#.U3r7^2.1#hT]]83/ 	H	 	 	s   BBr:   c                 l   t        t        d            j                  |      }t        dd      }t        j
                  j                  ||g      }t        t        t        |            d d d   |      } |dg      }t        j                  t        d	      5  ||    d d d        y # 1 sw Y   y xY w)
Nr   r   r+   r   rN   r   rU   5r?   )r   rb   astyper   r   
MultiIndexfrom_productr   rG   rB   rC   rD   )r"   r:   r   r^   r   mir#   r;   s           r$   -test_getitem_intlist_multiindex_numeric_levelzGTestSeriesGetitemListLike.test_getitem_intlist_multiindex_numeric_level  s     E!Ho$$U+q1]]''c
3U3r7^DbD)41#h]]83/ 	H	 	 	s   B**B3c                 6   t        g d      }t        j                  dg|      }t        j                  t
        d      5  ||    d d d        t        j                  t
        d      5  |j                  |    d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)Nr   r   rM   4r?   )r   r9   arrayrB   rC   rD   loc)r"   any_unsigned_int_numpy_dtyper#   r;   s       r$   test_getitem_uint_array_keyz5TestSeriesGetitemListLike.test_getitem_uint_array_key  s|    Yhhs">?]]83/ 	H	]]83/ 	GGCL	 		 		 	s   B*BBBN)r   r   r   rB   r   r   rc   r9   r   r   r   r   r   r   r\   float64uint64r   r  r   r&   r$   r   r   e  s    [[UT288UF$CD	 E	
+ [[UT288U$;<
 =
 [[UT288U$;<[[WrxxRYY&GH	 I =	r&   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestGetitemBooleanMaskc                     |}||j                         kD  }|t        |         }||   }t        j                  ||       t        j                  |j
                  |j
                  |          y )N)medianrc   r0   r1   assert_index_equalr    )r"   string_seriesr#   r   r3   r4   s         r$   test_getitem_booleanz+TestGetitemBooleanMask.test_getitem_boolean  s[    SZZ\! T$Zt9
vx0
fllCIIdO<r&   c                    t        g t        j                        }d|j                  _        ||j                            }|j                  j                  dk(  sJ |j                  t        j                  k(  sJ t        ddgt              }t        t        t        g d            }|t        g t                 }t        j                  ||       d}t        j                  t        |      5  |t        g t                  d d d        t        j                  t        |      5  |t        d	gt                  d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)
NrM   
index_namer   r   r\   )r:   r    sUnalignable boolean Series provided as indexer \(index of the boolean Series and of the indexed object do not matchr?   T)r   r9   r\   r    r/   isnar:   rP   r   r0   r1   rB   rC   r   bool)r"   r#   r4   r3   r]   s        r$   test_getitem_boolean_emptyz1TestGetitemBooleanMask.test_getitem_boolean_empty  s   Rrxx(%		#((*oyy~~---yyBHH$$$ c3Zv.eBg.FGVBf-.
vx0
I 	 ]]=4 	(r&'	( ]]=4 	,vT*+	, 	,	( 	(	, 	,s   0E(EEEc                    |}||j                         kD  }|j                  t              }||   }||   }t        j                  ||       |j                         }|j                         }d||<   d||<   t        j                  ||       t        j                  |dd d}	t        j                  t        |	      5  ||    d d d        t        j                  t        |	      5  d||<   d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)NrU   r>   z=Cannot mask with non-boolean array containing NA / NaN valuesr?   )r  r   rP   r0   r1   copyr9   nanrB   rC   r   )
r"   r
  r#   r   omaskr3   r4   s2copr]   s
             r$   test_getitem_boolean_objectz2TestGetitemBooleanMask.test_getitem_boolean_object  s     SZZ\!F# Ut9
vx0 XXZhhjE
4
sB' ffaM]]:S1 	J	]]:S1 	CJ	 		 		 	s   ;C3$C?3C<?Dc                 (   t        ddd      }t        j                  g d      }t        |j                        }||   }|j
                  j                  j                  J t        t        d            }||   }|j
                  j                  J y )Nz
2016-01-01r   z
US/Pacificr{   )TTFF)	r   r9   r   r   _data_values_ndarraybaserb   )r"   r   r;   r#   r   ser2r   s          r$    test_getitem_boolean_dt64_copiesz7TestGetitemBooleanMask.test_getitem_boolean_dt64_copies  s    q\Bhh12SYY#h{{##((000 eAhCy||  (((r&   c                 L   |}|j                  dt                     |j                         kD  }d}t        j                  t
        |      5  ||    d d d        t        j                  t
        |      5  |j                  |    d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)Nr   r   r  r?   )shiftr   r  rB   rC   r   r   )r"   rI   rt   mask_shiftedr]   s        r$   test_getitem_boolean_cornerz2TestGetitemBooleanMask.test_getitem_boolean_corner  s    xxx/"))+=I 	 ]]=4 	|	 ]]=4 	!FF< 	! 	!	 		! 	!s   B5BBB#c                 p    |j                         }||dkD     }||dkD     }t        j                  ||       y )Nr   )sort_valuesr0   r1   )r"   r
  orderedselr   s        r$   $test_getitem_boolean_different_orderz;TestGetitemBooleanMask.test_getitem_boolean_different_order   s=    ++-GaK(MA-.
sC(r&   c                    t        ddd      }t        j                  t        |      t              }d|dd ||   }|dd }|j
                  |j
                  k(  sJ t        j                  ||       d|d	<   ||   }|j
                  J y )
Nrz   z3/1/2000r   r   rM   Tr>         )r   r9   zerosrG   r  rk   r0   r	  )r"   r   r   maskedr4   s        r$   -test_getitem_boolean_contiguous_preserve_freqzDTestGetitemBooleanMask.test_getitem_boolean_contiguous_preserve_freq  s    Zc:xxC-RTr":}}(((
fh/RT{{"""r&   N)
r   r   r   r  r  r  r  r#  r(  r.  r   r&   r$   r  r    s%    =,46)!)#r&   r  c                       e Zd Zd Zy)TestGetitemCallablec                    t        dt        d            }|d    }||j                  d   k(  sJ |d    }|j                  ddg   }t        j                  ||       |d    }|j
                  g d	   }t        j                  ||       y )
Nr   ABCDr   c                      y)Nr   r   xs    r$   <lambda>z;TestGetitemCallable.test_getitem_callable.<locals>.<lambda>  s    r&   r   c                 
    ddgS )Nr   r   r   r4  s    r$   r6  z;TestGetitemCallable.test_getitem_callable.<locals>.<lambda>  s
    Sz r&   r   c                 
    g dS )N)TFTTr   r4  s    r$   r6  z;TestGetitemCallable.test_getitem_callable.<locals>.<lambda>"  s    8 r&   )r   r*   r+   )r   rc   r   r0   r1   r   r2   s       r$   test_getitem_callablez)TestGetitemCallable.test_getitem_callable  s    Qd6l+]#%%%)*77C:&
vx08988I&
vx0r&   N)r   r   r   r9  r   r&   r$   r0  r0    s    1r&   r0  c                     d | D        }| |   }| t        | dkD           }| | dkD     }t        j                  ||       t        j                  ||       y )Nc              3   &   K   | ]	  }|d kD    yw)r   Nr   ).0r5  s     r$   	<genexpr>z)test_getitem_generator.<locals>.<genexpr>(  s     
(Q1q5
(s   r   )iterr0   r1   )r
  genr3   result2r4   s        r$   test_getitem_generatorrA  '  sY    
(-
(C3FD!234G]Q./H68,7H-r&   rm   r   z
2012-01-01r*   r   CETr{   c                     t        |       }t        j                  t        d      5  |d d d f    d d d        y # 1 sw Y   y xY wr   )r   rB   rC   r   )rm   seriess     r$   test_getitem_ndim_deprecatedrE  0  s<     D\F	z)E	F q$w  s	   
:Ac                     | }|d   }d}t        j                  t        |      5  |dddf    d d d        y # 1 sw Y   y xY w)Nr   z\(2000, slice\(3, 4, None\)\)r?   r   r+   r   )rB   rC   r   )/multiindex_year_month_day_dataframe_random_datadfr#   r]   s       r$   4test_getitem_multilevel_scalar_slice_not_implementedrI  >  sI     
9B
S'C
*C	y	, D!A#I  s	   
8Ac                      t        t        d            } t        d|       }t        | |       }d}t	        j
                  t        |      5  ||dkD      d d d        y # 1 sw Y   y xY w)Nr>   r   zWIndexing a Series with DataFrame is not supported, use the appropriate DataFrame columnr?   rU   )rc   rb   r   r   rB   rC   r   )r   r#   rH  r]   s       r$   test_getitem_dataframe_raisesrK  J  sa    
uRy/C
3
C	3c	"B	/  
y	, BF  s   	AA'c                      t        t        d            } t        j                  g d      }t        g d      | |<   t        g d      }t	        j
                  | |       y )Nr>   )r*   r   r   )r>      rn   )
r   r   r>   r+   rM  rU   rS   r   r   rn   )r   rb   r9   r   r0   r1   )r#   r^   r4   s      r$   (test_getitem_assignment_series_alignmentrN  V  sI     r
C
((9
Cl#CH78H3)r&   c                     t        g dg d      } t        j                  t        d      5  | d     d d d        t        j                  t        d      5  | j                  j                  d        d d d        t        j                  t        d      5  | j                  j                  j                  d        d d d        y # 1 sw Y   xY w# 1 sw Y   _xY w# 1 sw Y   y xY w)N)r*   rU   rS   r   )g       @r   r   g      @r   Noner?   )r   rB   rC   rD   r    r   _enginer#   s    r$   9test_getitem_duplicate_index_mistyped_key_raises_keyerrorrS  `  s    
%9
:C	xv	. D	 
xv	.  		$  
xv	. (		!!$'( (    ( (s#   CC&CCCC%c                      t        t        d            } t        d      f}| |   }| |d      }t        j                  ||       y )NrU   r+   r   )r   rb   r   r0   r1   )r#   r;   r3   r4   s       r$   ,test_getitem_1tuple_slice_without_multiindexrU  m  sA    
q
C8+CXF3q6{H68,r&   c                     | | dkD     }|j                   | j                   k(  sJ | dd }|j                   | j                   k(  sJ y )Nr   rU   r>   )r/   )rI   r3   s     r$   test_getitem_preserve_namerW  v  sM    _q01F;;/.....Qr"F;;/.....r&   c            
         t        t        j                  j                  d      j	                  d      t        t        ddd                  } g d}t        j                  g d      }t        j                  t        d      5  | |    d d d        t        j                  t        d      5  | |    d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)	Nr*   r>   r   r*  r   )r   r*   rU   r   r   znot in indexr?   )r   r9   rV   rW   rX   rc   rb   r   rB   rC   rD   )r#   indsarr_indss      r$    test_getitem_with_integer_labelsr[  ~  s    

		a 004Dq"a<QC Dxx(H	x~	6 D	 
x~	6 H   s   B<-C<CCc                     | j                   d   t               z
  }d}t        j                  t        |      5  | |    d d d        y # 1 sw Y   y xY w)Nr   z"Timestamp\('1999-12-31 00:00:00'\)r?   )r    r   rB   rC   rD   )rI   dr]   s      r$   test_getitem_missingr^    sI    a 46)A
/C	xs	+   s   AAc                     d}t        j                  t        |      5  | g d    d d d        t        j                  t        |      5  |g d    d d d        y # 1 sw Y   5xY w# 1 sw Y   y xY w)NzINone of \[Index\(\[1, 2, 3\], dtype='int(32|64)'\)\] are in the \[index\]r?   r   rB   rC   rD   )r
  object_seriesr]   s      r$   test_getitem_fancyrb    sb    
VC	xs	+ !i !	xs	+ !i ! !! !! !s   A	A&A#&A/c                 n    t        j                  t        d      5  | d    d d d        y # 1 sw Y   y xY w)NrT   r?   rU   r`  )rI   s    r$   test_getitem_box_float64rd    s-    	xu	-   s   +4c                  h    t        t        d      g d      } t        | d         sJ | d   dk(  sJ y )NrU   )r   r   r   r   r   r   r   r   )r   rb   r
   )objs    r$   test_getitem_unordered_duprg    s5    
q!:
;CSXs8q==r&   c                      t        t        d      g dt        j                        } t        ddgddgt        j                        }| d   }t	        j
                  ||       y )NrU   )r   r   r   r   r   r   r+   r   r   )r   rb   r9   r\   r0   r1   )r#   r4   r3   s      r$   test_getitem_dupsri    sL    
q!:"((
KCq!fS#Jbhh?HXF68,r&   c                      t        t        d      t        g d            } | d   }| j                  ddg   }t	        j
                  ||       y )NrU   )r   r   r   r   r   r   r   r   r+   )r   rb   r   r   r0   r1   )r#   r3   r4   s      r$   test_getitem_categorical_strrk    sC    
q-F!G
HCXFxxAH68,r&   c                  2    t        dg d      } | d d d    y )Nr   )r   r   r   r   r   r   rN   )r   rR  s    r$   +test_slice_can_reorder_not_uniquely_indexedrm    s    
3
4C"Ir&   
index_valsaabcdaadcbc                     t        t        d      t        |             }t        j                  t
        d      5  |d    d d d        y # 1 sw Y   y xY w)NrU   r   z^3$r?   r+   )r   rb   rc   rB   rC   rD   )rn  ss     r$   0test_duplicated_index_getitem_positional_indexerrs    sC     	uQxtJ/0A	xu	- 	!  s   A

Ac                       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g      d        Zy)TestGetitemDeprecatedIndexersr;   r   c                     t        g d      }t        j                  t        d      5  ||    d d d        y # 1 sw Y   y xY w)Nr   as an indexer is not supportedr?   r   rB   rC   r   r"   r;   r#   s      r$   $test_getitem_dict_and_set_deprecatedzBTestGetitemDeprecatedIndexers.test_getitem_dict_and_set_deprecated  s9     Y]]9,LM 	H	 	 		   8Ac                     t        g d      }t        j                  t        d      5  d||<   d d d        y # 1 sw Y   y xY w)Nr   rw  r?   r   rx  ry  s      r$   $test_setitem_dict_and_set_disallowedzBTestGetitemDeprecatedIndexers.test_setitem_dict_and_set_disallowed  s;     Y]]9,LM 	CH	 	 	r{  N)r   r   r   rB   r   r   rz  r}  r   r&   r$   ru  ru    s^    [[UaS1a&M2 3 [[UaS1a&M2 3r&   ru  );__doc__r   r   r   numpyr9   rB   pandas._libs.tslibsr   r   pandas.compat.numpyr   pandas.errorsr	   pandas.core.dtypes.commonr
   pandasr   r   r   r   r   r   r   r   r   r   pandas._testing_testingr0   pandas.core.indexingr   pandas.tseries.offsetsr   r   r   r   r  r0  rA  r   r   rE  rI  rK  rN  rS  rU  rW  r[  r^  rb  rd  rg  ri  rk  rm  rs  ru  r   r&   r$   <module>r     sL      / ( / 
 
 
  . 't tnB1 B1J; ;|q# q#h1 1 . 
	
A<+<u5		*
(-/!
--
 '9: ; r&   