
    Pi&                        d Z ddlmZmZ ddlZddlZddlZddlmZm	Z	m
Z
mZmZmZ ddlmZ ddZ G d d          Z G d	 d
          Zd Zd Zej                            d          d             Z G d d          ZdS )z*test scalar indexing, including at and iat    )datetime	timedeltaN)	DataFrameIndexSeries	Timedelta	Timestamp
date_rangeFc                 H    | j         }|rd |D             }t          j        | S )zf
    generate the indices
    if values is True , use the axis values
    is False, use the range
    c              3   h   K   | ]-}t          t          t          |                              V  .d S )N)listrangelen).0axs     u/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/indexing/test_scalar.py	<genexpr>z#generate_indices.<locals>.<genexpr>   s6      44U3r77^^$$444444    )axes	itertoolsproduct)fvaluesr   s      r   generate_indicesr      s4     6D 544t444d##r   c                   b   e Zd Zej                            dej        ej        g          d             Z	ej                            d e
 ed          e           edd           e
 ed	d
d          ej                  g          d             Zej                            d e
 ed          e           edd           e
 ed	d
d          ej                   e
 ed	d
d          ej                   e
 ed	d
d          ej                  g          d             ZdS )
TestScalardtypec                      |t          d          t          g d|                    }t          |d          }|D ].}d|j        |<   |j        |         }t          j        |d           /d S )N   )r         r   indexTr    )r   r   r   iatr   tmassert_almost_equal)selfr   frame_or_seriesr   indicesiexpecteds          r   test_iat_set_intszTestScalar.test_iat_set_ints%   s    OE!HHE)))5,I,I,IJJJ"1d++ 	0 	0AAE!Hx{H"8Q////	0 	0r   r$   abcdr"   20130101   periodsr      r!   c                     |t          t          |                    |          }d}t          t          |d                    }t	          j        t          |          5  d|j        |<   d d d            d S # 1 swxY w Y   d S )Nr#   z1iAt based indexing can only have integer indexersFmatchr    )r   r   nextr   pytestraises
ValueErrorr%   )r(   r$   r)   r   msgidxs         r   test_iat_set_otherzTestScalar.test_iat_set_other.   s     OE#e**--U;;;A#Au--..]:S111 	 	AE#J	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   "A::A>A>c                      |t          t          |                    |          }t          |d          }|D ].}d|j        |<   |j        |         }t          j        |d           /d S )Nr#   Fr    )r   r   r   atlocr&   r'   )r(   r$   r)   r   r*   r+   r,   s          r   test_at_set_ints_otherz!TestScalar.test_at_set_ints_other=   sz     OE#e**--U;;;"1e,, 	0 	0AADGuQxH"8Q////	0 	0r   N)__name__
__module____qualname__r8   markparametrizenpint64uint64r-   r   r   objectr
   r   float64r=   rA    r   r   r   r   $   s       [Wrx&;<<0 0 =<0 [E$$v,,f---Jz1---E%%1a..
333	
    [E$$v,,f---Jz1---E%%1a..
333E%%1a..	222E%%1a..111	
	 	0 0	 	0 0 0r   r   c                       e Zd Zd Zd Zej                            d eddgd           e	d          g edd	gd
           e
d	          gg          d             Zd Zd Zd Zd Zd Zd ZdS )TestAtAndiATc                     t          g dg d          }|                                D ]\  }}|j        |         |k    sJ t          t	          |                    D ]}|j        |         |dz   k    sJ d S )N)r    r!   r   )g?g?g333333?r#   r    )r   itemsr?   r   r   r%   )r(   serelitemr+   s        r   test_float_index_at_iatz$TestAtAndiAT.test_float_index_at_iatS   s    YYYooo666		 	& 	&HB6":%%%%%s3xx 	' 	'A71:Q&&&&&	' 	'r   c                    t          dd          }t          t          j                            d                              d          |g d          }|d         }|j        |d	                  }|j        d	         }||k    sJ d S )
Nz1/1/2000r3   r1   r!   )r3   r0   )ABCD)r$   columnsrV      )r
   r   rG   randomdefault_rngstandard_normalr?   r   )r(   datesdfsresultxps         r   test_at_iat_coercionz!TestAtAndiAT.test_at_iat_coercionZ   s    :q111I!!!$$44V<<(((
 
 

 sGeAhXa[||||||r   zser, expectedz
2014-01-01z
2014-02-02zdatetime64[ns]r"   z1 daysz2 daysztimedelta64[ns]c                 8     ||          d         }||k    sJ d S )Nr    rL   )r(   indexer_ialrQ   r,   rb   s        r   test_iloc_iat_coercion_datelikez,TestAtAndiAT.test_iloc_iat_coercion_datelikeh   s/      S!!!$!!!!!!r   c                    t          t          d          g dd          }|j        d         }|dk    sJ |j        d         }|dk    sJ d}t	          j        t          |          5  |j        d          d d d            n# 1 swxY w Y   d	}t	          j        t          |          5  |j        d
          d d d            n# 1 swxY w Y   |j        ddg         }t          ddgddgd          }t          j        ||           |	                                }|j        d         }t          ddgd          }t          j        ||           |j        d         }|dk    sJ d S )Nr[   )r    r    r!   r!   r   rH   )r$   r   r!   z0index 10 is out of bounds for axis 0 with size 5r5   
   z1index -10 is out of bounds for axis 0 with size 5ir   r"   r   r$   name)r!   r   )
r   r   ilocr%   r8   r9   
IndexErrorr&   assert_series_equalto_frame)r(   ra   rb   r;   r,   r`   s         r   test_imethods_with_dupsz$TestAtAndiAT.test_imethods_with_dups{   s    588???'BBB{{{{q{{{{@]:S111 	 	E"II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	A]:S111 	 	E#JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 A1a&1a&888
vx000ZZ\\!A3Q///
vx000{{{{{{s$   )BB
B+CC	C	c                    t           j                            d                              d                              dd          }t          |ddg          }|j        d         }|j        d                                         }t          j
        ||           |j        j        d         }t          j
        ||           d|j        d	<   t          d
d
gddgd          }t          j
        |j        d         |           d S )Nr!      r   rV   rZ   r   rV   r   )rV   r   )r    rV   g       @r    rj   )rG   r\   r]   r^   reshaper   r?   rl   copyr&   rn   Tr   )r(   arrr`   rb   r,   s        r   !test_frame_at_with_duplicate_axesz.TestAtAndiAT.test_frame_at_with_duplicate_axes   s    i##A&&66q99AA!QGGsS#J///v71:??$$
vx000
vx000 f3*S#JQ???
rwqz844444r   c                 6   t          ddgt          dddddd          t          ddd	d
dd          gd          }|d         j                            d          |d<   t          dd          }|j        d         }||k    sJ |j        d         }||k    sJ d S )NJohnAndersoni  r          8   r!         ri   )rk   dater   zAsia/Shanghaiz2017-03-13 13:32:56+0800)tz)r   r   )r   r	   dttz_localizer@   r?   )r(   r`   r,   rb   s       r   test_at_getitem_dt64tz_valuesz*TestAtAndiAT.test_at_getitem_dt64tz_values   s    ,dAr2r266dAr2r155 
 
 Z]..??6
7OLLL	"!!!!y!!!!!!!r   c                 F   t          g dg d          }|                                D ],\  }}|j        |         |j        |         cxk    r|k    sn J -t	          t          |                    D ],}|j        |         |j        |         cxk    r	|dz   k    sn J -t          j	        t          d          5  |j        d          d d d            n# 1 swxY w Y   t          j	        t          d          5  |j        d          d d d            d S # 1 swxY w Y   d S )N)r    r!   r   r0   r[   abcr    r!   r#   r    z^4$r5   r0   )r   rP   r?   r@   r   r   r%   rl   r8   r9   KeyError)r(   ra   rR   rS   r+   s        r   'test_mixed_index_at_iat_loc_iloc_seriesz4TestAtAndiAT.test_mixed_index_at_iat_loc_iloc_series   s   ???*?*?*?@@@		 	1 	1HB48quRy0000D0000000s1vv 	2 	2A58qvay1111AE1111111]85111 	 	DGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]85111 	 	E!HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   ;CCC;DDDc                    t          g dg dgg d          }|                                D ]J\  }}|                                D ]0\  }}|j        ||f         |j        ||f         cxk    r|k    sn J 1Kt          d          D ]E}t          d          D ]3}|j        ||f         |j        ||f         cxk    r|dz  |z   k    sn J 4Ft          j	        t          d          5  |j        d	          d d d            n# 1 swxY w Y   t          j	        t          d          5  |j        d	          d d d            d S # 1 swxY w Y   d S )
N)r   r    r!   r   r0   )r[   rr      r3   	   r   rs   r!   r[   z^3$r5   )r   r   )r   iterrowsrP   r?   r@   r   r%   rl   r8   r9   r   )r(   r`   rowIdxrowrR   rS   r+   s          r   *test_mixed_index_at_iat_loc_iloc_dataframez7TestAtAndiAT.test_mixed_index_at_iat_loc_iloc_dataframe   s$   __ooo.8M8M8M
 
 
 ;;== 	G 	GKFCIIKK G GDuVRZ(BF62:,>FFFF$FFFFFFFG 88 	H 	HC1XX H Hvc1f~aGGGGC!GaKGGGGGGGH ]85111 	 	E$KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]85111 	 	F4LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   )DD
D)EEEc                     t          ddgddgd          }d |j        d<   t          d dgddgd          }t          j        ||           d S )Ng        g      ?r0   r[   )r   r   r   r   r    )r   r%   r&   assert_frame_equal)r(   rb   r,   s      r   'test_iat_setter_incompatible_assignmentz4TestAtAndiAT.test_iat_setter_incompatible_assignment   sa    #s1a&99::
4D!9Aq6::;;
fh/////r   N)rB   rC   rD   rT   rd   r8   rE   rF   r   r	   r   rg   rp   ry   r   r   r   r   rL   r   r   rN   rN   P   s       ' ' '   [ l3;KLLL	,''
 (+3DEEE	(##		
 " " "  :5 5 5$" " "*    $0 0 0 0 0r   rN   c                     t          dd          } | | z
  }t          |                                 t                    }t          |                                t                    }t          ||d          }|j        t          k                                    sJ |j        d         |j	        d         |j
        d         |j        d         fD ]<}||d         u sJ t          |t                    sJ t          |t                    rJ =|j        d	         |j	        d
         |j
        d	         |j        d
         fD ]<}||d         u sJ t          |t                    sJ t          |t                     rJ =d S )Nz
2016-01-01r   r1   r"   )rV   rW   rt   r   r   )r    rW   )r    r    r    )r
   r   to_pydatetimerJ   to_pytimedeltar   dtypesallr?   r%   r@   rl   
isinstancer   r	   r   r   )dtitdirQ   ser2r`   rb   s         r   &test_iat_dont_wrap_object_datetimeliker      s    \1
-
-
-C
)C
""$$F
3
3
3C#$$&&f555D	4((	)	)BI$$&&&&&5="&,vN 1 1Q&(+++++fi0000005="&,vN 1 1a    &),,,,,fi0000001 1r   c                      t          dddgiddg          } | j        j        dk    sJ | j        d         dk    sJ | d         }|j        j        dk    sJ |j        d         dk    sJ d S )Nr   r    r!   r    r!   r   r0   r#   r   r   r   r$   nlevelsr?   r`   seriess     r   test_at_with_tuple_index_getr      s     
C!Q=(8	9	9	9B8q    5"""" WF<1$$$$9V!!!!!!r   .ignore:Setting a value on a view:FutureWarningc                      t          dddgiddg          } | j        j        dk    sJ d| j        d<   | j        d         dk    sJ | d         }|j        j        dk    sJ d|j        d<   |j        d         dk    sJ d S )	Nr   r    r!   r   r   r#   r   r   r   r   s     r   test_at_with_tuple_index_setr     s     
C!Q=(8	9	9	9B8q    BE+5"""" WF<1$$$$FIdO9T?ar   c                   `    e Zd Zd Zej                            d          d             Zd ZdS )TestMultiIndexScalarc                 ,   t          dddgiddgddgg          }|j        j        dk    sJ |j        d         dk    sJ |j        d         dk    sJ |d         }|j        j        dk    sJ |j        d         dk    sJ |j        d         dk    sJ d S )	Nr   r    r!   r   r0   r#   r    r   r   r   r   r$   r   r?   r@   r(   r`   r   s      r   test_multiindex_at_getz+TestMultiIndexScalar.test_multiindex_at_get  s     aV}aVaV,<===x1$$$$u[!Q&&&&vk"a'''' C|#q((((y!####z$1$$$$$$r   r   c                 |   t          dddgiddgddgg          }|j        j        dk    sJ d|j        d<   |j        d         dk    sJ d|j        d<   |j        d         dk    sJ |d         }|j        j        dk    sJ d|j        d	<   |j        d	         dk    sJ d
|j        d	<   |j        d	         d
k    sJ d S )Nr   r    r!   r   r0   r#   r   r[   r   rr   r   r   s      r   test_multiindex_at_setz+TestMultiIndexScalar.test_multiindex_at_set'  s     aV}aVaV,<===x1$$$$ku[!Q&&&&{vk"a'''' C|#q((((	$y!####
4z$1$$$$$$r   c                 X    t          dddgg          }|j        d         }|dk    sJ d S )N)r   r    FTr#   r   )r   r?   )r(   s2rb   s      r    test_multiindex_at_get_one_levelz5TestMultiIndexScalar.test_multiindex_at_get_one_level:  s6    FE4=/222u{{{{{{r   N)	rB   rC   rD   r   r8   rE   filterwarningsr   r   rL   r   r   r   r     s`        % % % [ PQQ% % RQ%$    r   r   )F)__doc__r   r   r   numpyrG   r8   pandasr   r   r   r   r	   r
   pandas._testing_testingr&   r   r   rN   r   r   rE   r   r   r   rL   r   r   <module>r      s   0 0                                     
$ 
$ 
$ 
$)0 )0 )0 )0 )0 )0 )0 )0XS0 S0 S0 S0 S0 S0 S0 S0l1 1 1*
" 
" 
" LMM    NM & & & & & & & & & &r   