
    Mh%                         S r SSKJrJr  SSKrSSKrSSKrSSKJrJ	r	J
r
JrJr  SSKJr  SS jr " S S5      r " S S	5      rS
 rS r\R*                  R-                  S5      S 5       r " S S5      rg)z+test scalar indexing, including at and iat     )datetime	timedeltaN)	DataFrameSeries	Timedelta	Timestamp
date_rangec                 `    U R                   nU(       a	  S U 5       n[        R                  " U6 $ )zV
generate the indices
if values is True , use the axis values
is False, use the range
c              3   \   #    U  H"  n[        [        [        U5      5      5      v   M$     g 7f)N)listrangelen).0axs     S/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexing/test_scalar.py	<genexpr>#generate_indices.<locals>.<genexpr>   s      4tU3r7^$$ts   *,)axes	itertoolsproduct)fvaluesr   s      r   generate_indicesr      s+     66D4t4d##    c                      \ rS rSr\R
                  R                  SSS/5      \R
                  R                  SSS/5      S 5       5       r\R
                  R                  SSS/5      \R
                  R                  S/ S	Q5      S
 5       5       r\R
                  R                  SSS/5      \R
                  R                  S/ SQ5      S 5       5       r	Sr
g)
TestScalar"   kindseriesframecolintsuintsc                     UR                  U SU 35      n[        US5      nU H8  nSUR                  U'   UR                  U   n[        R
                  " US5        M:     g )N_T   )getfixturevaluer   iatr   tmassert_almost_equalselfr   r!   requestr   indicesiexpecteds           r   test_iat_set_intsTestScalar.test_iat_set_ints#   s^     ##tfAcUO4"1d+AAEE!Hxx{H""8Q/ r   )labelstsfloatsc                     UR                  U SU 35      nSn[        R                  " [        US9   [	        [        US5      5      nSUR                  U'   S S S 5        g ! , (       d  f       g = f)Nr%   z1iAt based indexing can only have integer indexersmatchFr&   )r'   pytestraises
ValueErrornextr   r(   )r,   r   r!   r-   r   msgidxs          r   test_iat_set_otherTestScalar.test_iat_set_other-   s\     ##tfAcUO4A]]:S1'512CAEE#J 211s   %A  
A.)r"   r#   r3   r4   r5   c                     UR                  U SU 35      n[        US5      nU H8  nSUR                  U'   UR                  U   n[        R
                  " US5        M:     g )Nr%   Fr&   )r'   r   atlocr)   r*   r+   s           r   test_at_set_ints_other!TestScalar.test_at_set_ints_other6   s^     ##tfAcUO4"1e,AADDGuuQxH""8Q/ r    N)__name__
__module____qualname____firstlineno__r9   markparametrizer1   r?   rD   __static_attributes__rF   r   r   r   r   "   s    [[Vh%89[[UVW$560 7 :0 [[Vh%89[[U$>? @ : [[Vh%89[[U$OP0 Q :0r   r   c            	           \ rS rSrS rS r\R                  R                  S\	" SS/SS9\
" S5      /\	" S	S
/SS9\" S
5      //5      S 5       rS rS rS rS rS rS rSrg)TestAtAndiATA   c                     [        / SQ/ SQS9nUR                  5        H  u  p#UR                  U   U:X  a  M   e   [        [	        U5      5       H  nUR
                  U   US-   :X  a  M   e   g )N)r&         )g?g?g333333?indexr&   )r   itemsrB   r   r   r(   )r,   serelitemr/   s        r   test_float_index_at_iat$TestAtAndiAT.test_float_index_at_iatD   sb    Yo6		HB66":%%% $s3xA771:Q&&& !r   c                     [        SSS9n[        [        R                  R	                  S5      R                  S5      U/ SQS9nUS   nUR                  US	      nUR                  S	   nXE:X  d   eg )
Nz1/1/2000   periodsrR   )r]      )ABCD)rU   columnsra      )r	   r   nprandomdefault_rngstandard_normalrB   r   )r,   datesdfsresultxps         r   test_at_iat_coercion!TestAtAndiAT.test_at_iat_coercionK   sn    :q1II!!!$44V<(

 sGeAhXXa[||r   zser, expectedz
2014-01-01z
2014-02-02zdatetime64[ns]dtypez1 daysz2 daysztimedelta64[ns]c                 (    U" U5      S   nXC:X  d   eg )Nr&   rF   )r,   indexer_ialrW   r0   rn   s        r   test_iloc_iat_coercion_datelike,TestAtAndiAT.test_iloc_iat_coercion_datelikeY   s      S!!$!!!r   c                    [        [        S5      / SQSS9nUR                  S   nUS:X  d   eUR                  S   nUS:X  d   eSn[        R
                  " [        US9   UR                  S     S S S 5        S	n[        R
                  " [        US9   UR                  S
     S S S 5        UR                  SS/   n[        SS/SS/SS9n[        R                  " X$5        UR                  5       nUR                  S   n[        SS/SS9n[        R                  " X$5        UR                  S   nUS:X  d   eg ! , (       d  f       N= f! , (       d  f       N= f)Nrf   )r&   r&   rR   rR   rS   int64)rU   rs   rR   z0index 10 is out of bounds for axis 0 with size 5r7   
   z1index -10 is out of bounds for axis 0 with size 5irS   rr   r   rU   name)rR   r   )
r   r   ilocr(   r9   r:   
IndexErrorr)   assert_series_equalto_frame)r,   rm   rn   r=   r0   rl   s         r   test_imethods_with_dups$TestAtAndiAT.test_imethods_with_dupsl   s&    58?'B{{q{{@]]:S1EE"I 2A]]:S1EE#J 2 A1a&1a&8
v0ZZ\!A3Q/
v0{{! 21 21s    D:E:
E
Ec                    [         R                  R                  S5      R                  S5      R	                  SS5      n[        USS/S9nUR                  S   nUR                  S   R                  5       n[        R                  " X45        UR                  R                  S   n[        R                  " X45        SUR                  S	'   [        S
S
/SS/SS9n[        R                  " UR                  S   U5        g )NrR      rS   ra   re   r   ra   r   )ra   r   )r&   ra   g       @r&   r{   )rg   rh   ri   rj   reshaper   rB   r}   copyr)   r   Tr   )r,   arrrl   rn   r0   s        r   !test_frame_at_with_duplicate_axes.TestAtAndiAT.test_frame_at_with_duplicate_axes   s    ii##A&66q9AA!QGsS#J/v771:??$
v0
v0 f3*S#JQ?
rwwqz84r   c                    [        SS/[        SSSSSS5      [        SSS	S
SS5      /S.5      nUS   R                  R                  S5      US'   [        SSS9nUR                  S   nX2:X  d   eUR
                  S   nX2:X  d   eg )NJohnAndersoni  rS          8   rR         rz   )r|   dater   zAsia/Shanghaiz2017-03-13 13:32:56+0800)tz)r   r   )r   r   dttz_localizerC   rB   )r,   rl   r0   rn   s       r   test_at_getitem_dt64tz_values*TestAtAndiAT.test_at_getitem_dt64tz_values   s    ,dAr2r26dAr2r15
 Z]]..?6
7OL	"!!!y!!!!r   c                 F   [        / SQ/ SQS9nUR                  5        H1  u  p#UR                  U   UR                  U   s=:X  a	  U:X  a  M.   e   e   [	        [        U5      5       H2  nUR                  U   UR                  U   s=:X  a  US-   :X  a  M/   e   e   [        R                  " [        SS9   UR                  S     S S S 5        [        R                  " [        SS9   UR                  S     S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)N)r&   rR   rS   r`   rf   abcr&   rR   rT   r&   z^4$r7   r`   )r   rV   rB   rC   r   r   r(   r}   r9   r:   KeyError)r,   rm   rX   rY   r/   s        r   'test_mixed_index_at_iat_loc_iloc_series4TestAtAndiAT.test_mixed_index_at_iat_loc_iloc_series   s    ?*?@	HB448quuRy0D00000 "s1vA558qvvay1AE11111  ]]851DDG 2]]851EE!H 21 2111s   7D(D
D
D c                    [        / SQ/ SQ// SQS9nUR                  5        HL  u  p#UR                  5        H3  u  pEUR                  X$4   UR                  X$4   s=:X  a	  U:X  a  M0   e   e   MN     [        S5       HI  n[        S5       H7  nUR                  X64   UR                  X64   s=:X  a  US-  U-   :X  a  M4   e   e   MK     [        R                  " [        SS9   UR                  S	     S S S 5        [        R                  " [        SS9   UR                  S	     S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)
N)r   r&   rR   rS   r`   )rf   r      r]   	   r   r   rR   rf   z^3$r7   )r   rS   )r   iterrowsrV   rB   rC   r   r(   r}   r9   r:   r   )r,   rl   rowIdxrowrX   rY   r/   s          r   *test_mixed_index_at_iat_loc_iloc_dataframe7TestAtAndiAT.test_mixed_index_at_iat_loc_iloc_dataframe   s   o.8M
 ;;=KFIIKuuVZ(BFF6:,>F$FFFFF ( ) 8C1Xvvcf~GC!GaKGGGGG   ]]851EE$K 2]]851FF4L 21 2111s   $D.D?.
D<?
Ec                     [        SS/SS/S.5      nS UR                  S'   [        S S/SS/S.5      n[        R                  " X5        g )Ng        g      ?r`   rf   )r   r   r   r   r&   )r   r(   r)   assert_frame_equal)r,   rn   r0   s      r   'test_iat_setter_incompatible_assignment4TestAtAndiAT.test_iat_setter_incompatible_assignment   sL    #s1a&9:

4D!9Aq6:;
f/r   rF   N)rG   rH   rI   rJ   rZ   rp   r9   rK   rL   r   r   r   rv   r   r   r   r   r   r   rM   rF   r   r   rO   rO   A   s    ' [[ l3;KL,'
 (+3DE(#		
"":5$"*$0r   rO   c                     [        SSS9n X -
  n[        U R                  5       [        S9n[        UR	                  5       [        S9n[        X#S.5      nUR                  [        :H  R                  5       (       d   eUR                  S   UR                  S   UR                  S   UR                  S   4 H:  nXRS   L d   e[        U[        5      (       d   e[        U[        5      (       d  M:   e   UR                  S	   UR                  S
   UR                  S	   UR                  S
   4 H:  nXSS   L d   e[        U[        5      (       d   e[        U[         5      (       d  M:   e   g )Nz
2016-01-01rS   r^   rr   )ra   rb   r   r   r   )r&   rb   )r&   r&   r&   )r	   r   to_pydatetimeobjectto_pytimedeltar   dtypesallrB   r(   rC   r}   
isinstancer   r   r   r   )dtitdirW   ser2rl   rn   s         r   &test_iat_dont_wrap_object_datetimeliker      sB    \1
-C
)C
""$F
3C#$$&f5D	(	)BII$$&&&&55="&&,vNQ&(++++fi0000 O
 55="&&,vNa   &),,,,fi0000 Or   c                      [        SSS/0SS/S9n U R                  R                  S:X  d   eU R                  S   S:X  d   eU S   nUR                  R                  S:X  d   eUR                  S   S:X  d   eg )Nr   r&   rR   r&   rR   rS   r`   rT   r   r   r   rU   nlevelsrB   rl   r   s     r   test_at_with_tuple_index_getr      s     
C!Q=(8	9B88q   55""" WF<<1$$$99V!!!r   .ignore:Setting a value on a view:FutureWarningc                  .   [        SSS/0SS/S9n U R                  R                  S:X  d   eSU R                  S'   U R                  S   S:X  d   eU S   nUR                  R                  S:X  d   eSUR                  S'   UR                  S   S:X  d   eg )	Nr   r&   rR   r   r   rT   r   rS   r   r   s     r   test_at_with_tuple_index_setr      s     
C!Q=(8	9B88q   BEE+55""" WF<<1$$$FIIdO99T?ar   c                   b    \ rS rSrS r\R                  R                  S5      S 5       rS r	Sr
g)TestMultiIndexScalari	  c                 N   [        SSS/0SS/SS//S9nUR                  R                  S:X  d   eUR                  S   S:X  d   eUR                  S   S:X  d   eUS   nUR                  R                  S:X  d   eUR                  S   S:X  d   eUR                  S   S:X  d   eg )	Nr   r&   rR   rS   r`   rT   r&   rS   r   r   r   rU   r   rB   rC   r,   rl   r   s      r   test_multiindex_at_get+TestMultiIndexScalar.test_multiindex_at_get
  s     aV}aVaV,<=xx1$$$uu[!Q&&&vvk"a''' C||##q(((yy!###zz$1$$$r   r   c                    [        SSS/0SS/SS//S9nUR                  R                  S:X  d   eSUR                  S'   UR                  S   S:X  d   eSUR                  S'   UR                  S   S:X  d   eUS   nUR                  R                  S:X  d   eSUR                  S	'   UR                  S	   S:X  d   eS
UR                  S	'   UR                  S	   S
:X  d   eg )Nr   r&   rR   rS   r`   rT   r   rf   r   r   r   r   s      r   test_multiindex_at_set+TestMultiIndexScalar.test_multiindex_at_set  s     aV}aVaV,<=xx1$$$kuu[!Q&&&{vvk"a''' C||##q(((		$yy!###

4zz$1$$$r   c                 L    [        SSS//S9nUR                  S   nUS:X  d   eg )N)r   r&   FTrT   r   )r   rB   )r,   s2rn   s      r    test_multiindex_at_get_one_level5TestMultiIndexScalar.test_multiindex_at_get_one_level+  s-    FE4=/2u{{r   rF   N)rG   rH   rI   rJ   r   r9   rK   filterwarningsr   r   rM   rF   r   r   r   r   	  s1    % [[ PQ% R%$r   r   )F)__doc__r   r   r   numpyrg   r9   pandasr   r   r   r   r	   pandas._testing_testingr)   r   r   rO   r   r   rK   r   r   r   rF   r   r   <module>r      s|    2     
$0 0>S0 S0l1*
" LM  N & &r   