
    Pi4                         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lmZ ej        d             Z G d d          Z G d d          ZdS )	    N)	DataFrameIndex
IndexSlice
MultiIndexSeriesconcat)BDayc                      t          j        g dg dg dg          } t          ddgddgg dg d	gg d
g dg dg dgg d          }t          | |t	          d                    S )NgEJYgr鷯g|?5^ݿg6?gK?g-?gT?g9#?g9]?g46<R?)gQg^)gxֿgI&?g=U@axbq)ı.n$@      4@g      >@)         )r   r      )r   r   r   )r   r      )r   r   r   )onetwothreefourlevelscodesnamesABCDEindexcolumns)nparrayr   r   list)arrr"   s     w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/frame/indexing/test_xs.pyfour_level_index_dataframer)      s    
(777555777	
 C c
S#J(=(=(=yyyIyy)))YYY			:---  E
 StG}}====    c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestXSc                    |j         d         }|                    |          }|                                D ]P\  }}t          j        |          r#t          j        ||         |                   sJ <|||         |         k    sJ Qd S )Nr   )r"   xsitemsr$   isnan)selffloat_frameidxr.   itemvalues         r(   test_xszTestXS.test_xs%   s    "^^C  88:: 	7 	7KD%x 7xD 1# 6777777D 1# 666666		7 	7r*   c                     dddddddd}t          |          }|                    d          }|j        t          j        k    sJ |d	         dk    sJ |d
         dk    sJ d S )Nr   r   )12r8   r9   3)r8   r9   r:   )ABr;   r<   )r   r.   dtyper$   object_)r1   	test_dataframer.   s       r(   test_xs_mixedzTestXS.test_xs_mixed.   sx     !**s31O1OPP	)$$XXc]]x2:%%%%#w!||||#w#~~~~~~r*   c                     t          j        t          t          j        d                    5  |                    |j        d         t                      z
             d d d            d S # 1 swxY w Y   d S )Nz Timestamp('1999-12-31 00:00:00')matchr   )pytestraisesKeyErrorreescaper.   r"   r	   )r1   datetime_frames     r(   test_xs_dt_errorzTestXS.test_xs_dt_error7   s    ]BI&HII
 
 
 	@ 	@ n215>???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   0A++A/2A/c                 H   |                                 }|                    dd          }|d         }t          j        ||           |                    dd          }d|d d <   t          j        |d         |d                    |dk                                    rJ d S )Nr;   r   )axisr   )copyr.   tmassert_series_equalall)r1   r2   float_frame_origseriesexpecteds        r(   test_xs_otherzTestXS.test_xs_other=   s    &++--!,,s#
vx000 !,,qqq	
{3/1A#1FGGGM&&(((((((r*   c                    t          dgt          g d                    }d|d<   d|d<   d	|d
<   d|d<   d|d<   |                    d          }t          g dt	          d          d          }t          j        ||           t          g d          }|                    d          }t          g dt          j                  }t          j        ||           d S )Nr   str)r=   r!         ?r;   foor<          @CbarD      @E)rX   rY   rZ   r\   r^   r    )r"   namer   r   cr"   r   )r`   r=   )	r   r   r.   r   r&   rO   rP   r$   float64)r1   dfr.   expresultrT   s         r(   test_xs_cornerzTestXS.test_xs_cornerK   s    aS%%*@*@*@AAA33333UU1XX222$w--aPPP
r3''' ___---s"3bj999
vx00000r*   c                     t          t          j                            d                              d          g d          }|                    d          }|j        d         }t          j        ||           d S )Nr   )r   r   )r   r   rb   r   r   rc   rb   )	r   r$   randomdefault_rngstandard_normalr.   ilocrO   rP   )r1   re   crossrf   s       r(   test_xs_duplicateszTestXS.test_xs_duplicates^   su    I!!!$$44V<<+++
 
 

 c

gaj
uc*****r*   c                 <   t          ddddddddddddd                              g d	          }|                    dd
d          }|d d         }t          j        ||           |                    ddd
gd          }t          j        ||           d S )Nsatsun)r   r   
strawberry
        )dayflavoursalesyear)rz   rx   rw   rw   F)level
drop_levelr   )rv   rq   rz   )r   	set_indexr.   rO   assert_frame_equalr1   re   rg   rT   s       r(   test_xs_keep_levelzTestXS.test_xs_keep_levelh   s     U+++==B T**	 
 
 )...
/
/ 	 uEe<<bqb6
fh///}VUONN
fh/////r*   c                    t          t          j        d                              dd          t	          d          t	          d                    }|                                }t          j                    5  d|                    d          d d <   d d d            n# 1 swxY w Y   t          j	        ||           d S )Nr   r   r   r!      r   )
r   r$   arangereshaperangerN   rO   raises_chained_assignment_errorr.   r~   )r1   dmdf_origs      r(   test_xs_viewzTestXS.test_xs_viewx   s     ry..q!44E!HHeTUhhWWW''))/11 	 	BEE!HHQQQK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
b'*****s   :B!!B%(B%N)__name__
__module____qualname__r6   rA   rK   rU   rh   ro   r   r    r*   r(   r,   r,   $   s        7 7 7  @ @ @) ) )1 1 1&+ + +0 0 0 	+ 	+ 	+ 	+ 	+r*   r,   c                      e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            ddd	gd
gfg          d             Zd Ze	j
                            dddd  eddgd          fddd  edgd          fg          d             Ze	j
                            dd d g          d             Ze	j
                            dd d g          d             Zd Zd Zd  Zd! Zd" Zd# Zd$ Zd% Zd&S )'TestXSWithMultiIndexc                 x   g dg dg}t          t          |           }t          j        |ddg          }t	          t
          j                            d                              d          g d|	          }|	                    d
dd          }|j
        d d dgf         }t          j        ||           d S )N)r\   r\   bazr   rY   rY   quxr   )r   r   r   r   r   r   r   r   firstsecondr   r   )r      )r;   r<   r[   r!   )r   r\   )r   r   r   r{   rM   r   )r&   zipr   from_tuplesr   r$   rj   rk   rl   r.   rm   rO   r~   )r1   arraystuplesr"   re   rg   rT   s          r(   test_xs_doc_examplez(TestXSWithMultiIndex.test_xs_doc_example   s     EDDDDD
 c6l##&vgx5HIIII!!!$$44V<<!//
 
 
 ~-@qII7111qc6?
fh/////r*   c                    t          dd          }t          d          }t          j        ||gddg          }t	          t
          j                            d                              t          |          df          |g d	          }|
                    dd
          }|j        dd d f         }t          j        ||           d S )Nia2ie2abcdedatesecidr   r   r   )XYZr{   )r   r&   r   from_productr   r$   rj   rk   rl   lenr.   locrO   r~   )r1   datesidsr"   re   rg   rT   s          r(   test_xs_integer_keyz(TestXSWithMultiIndex.test_xs_integer_key   s    h))7mm'VW<MNNNI!!!$$44c%jj!_EEOO
 
 xv..6(AAA+&
fh/////r*   c                     |}|                     dd          }||j                            d          dk             }t          g dd          |_        t	          j        ||           d S )Nr   r   r   r   )rY   r\   r   r   r   r`   )r.   r"   get_level_valuesr   rO   r~   r1    multiindex_dataframe_random_datare   rg   rT   s        r(   test_xs_levelz"TestXSWithMultiIndex.test_xs_level   so    -uH--bh//22e;<;;;'JJJ
fh/////r*   c                 d   t           j                            d                              d          }t	          g dg dg dgg dg dg dg          }t          ||          }t          |d	d         d
gdgg          }|                    dd          }t          j        ||           d S )Nr   )r   r   )r   pr   )r   r   y)rb   rz)r   r   r   r   r   rc   r   r   r   rb   r   	r$   rj   rk   rl   r   r   r.   rO   r~   )r1   r'   r"   re   rT   rg   s         r(   test_xs_level_eq_2z'TestXSWithMultiIndex.test_xs_level_eq_2   s    i##A&&66v>>#OO___oooF99iii3
 
 
 s%(((S1XsecU^<<<s!$$
fh/////r*   c                     |}|                                 }|                    dd          }d|d d <   t          j        ||           d S )Nr   r   r   rt   rN   r.   rO   r~   )r1   r   re   r   rg   s        r(   test_xs_setting_with_copy_errorz4TestXSWithMultiIndex.test_xs_setting_with_copy_error   sO    -''))uH--qqq	
b'*****r*   c                     |}|                                 }|                    dddg          }d|d d <   t          j        ||           d S )Nr   r   r   r   r   rt   r   )r1   r)   re   r   rg   s        r(   (test_xs_setting_with_copy_error_multiplez=TestXSWithMultiIndex.test_xs_setting_with_copy_error_multiple   sS    '''))xv77qqq	
b'*****r*   z
key, level)r   r   r   r   c                 l   |}t          |gdz            }|j        j        du sJ t          |                    dd          gdz            }t	          |t
                    r%|                    t          |          |          }n|                    ||          }t          j        ||           d S )Nr   Fr   r   r   )	r   r"   	is_uniquer.   
isinstancer&   tuplerO   r~   )r1   keyr{   r   r@   re   rT   rg   s           r(   test_xs_with_duplicatesz,TestXSWithMultiIndex.test_xs_with_duplicates   s     1UGaK  x!U****588E8::;a?@@c4   	-UU5::UU33FFUU3eU,,F
fh/////r*   c           	         g d}t          |g d                              ddg          }t          dg dit          dt          j        d	d
gd                    }|                    dd          }t          j        ||           d S )N))r   r   r   )r   bbcder   )r   yzcde   )r   xbcde   )r   N   )r   zbcder   )r   ybcder   )a1a2cntr#   r   r   r   )r   r   r   r   r   r   r   r   rc   r   r   )r   r}   r   r$   nanr.   rO   r~   )r1   accre   rT   rg   s        r(   test_xs_missing_values_in_indexz4TestXSWithMultiIndex.test_xs_missing_values_in_index   s    
 
 
 s$7$7$7888BBD$<PP$$$%"&'7;$GGG
 
 

 s$''
fh/////r*   zkey, level, exp_arr, exp_indexr   lvl0c                     | d d ddf         S )Nr   r   r   r   s    r(   <lambda>zTestXSWithMultiIndex.<lambda>   s    Aaaa1fI r*   r\   rY   lvl1r   c                     | d d ddf         S )Nr   r   r   r   s    r(   r   zTestXSWithMultiIndex.<lambda>   s    a1Q3i r*   c                 Z   t           j                            d                              d          }t	          ddgg dgg dg dgdd	g
          }t          ||          }|                    ||d          }t           ||          |          }	t          j        ||	           d S )Nr   )r   r   r   r   )r\   rY   helloworld)r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   )
r1   r   r{   exp_arr	exp_indexr'   r"   re   rg   rT   s
             r(   test_xs_named_levels_axis_eq_1z3TestXSWithMultiIndex.test_xs_named_levels_axis_eq_1   s     i##A&&66v>>#J @ @ @A<<.6"
 
 

 sE***s%a00WWS\\9===
fh/////r*   indexerc                 4    |                      dddg          S )Nr   r   r   r   r.   re   s    r(   r   zTestXSWithMultiIndex.<lambda>  s    ruuXeV_u== r*   c                 V    |                      d                               dd          S )Nr   r   r   r   r   r   s    r(   r   zTestXSWithMultiIndex.<lambda>  s     ruuSzz}}Qf}55 r*   c                     |}g dg}t          dgdggdgdggddg          }t          ||t          d          	          } ||          }t          j        ||           d S )
Nr   r   r   r   r   r   r   r    r!   r   r   r&   rO   r~   r1   r   r)   re   expected_valuesexpected_indexrT   rg   s           r(   test_xs_level_multiplez+TestXSWithMultiIndex.test_xs_level_multiple  s     (DDDE#ED6?A3*UG<L
 
 
 >4==
 
 
 
fh/////r*   c                 0    |                      dd          S )Nr   r   r   r   r   s    r(   r   zTestXSWithMultiIndex.<lambda>  s    ruuSu22 r*   c                 ,    |                      d          S )Nr   r   r   s    r(   r   zTestXSWithMultiIndex.<lambda>  s    ruuSzz r*   c                     |}g dg dg}t          ddgddgddggd	d
gd	d
gd
d	ggg d          }t          ||t          d                    } ||          }t          j        ||           d S )Nr   r   r   r   r   r   r   r   r   r   )r   r   r   r   r    r!   r   r   s           r(   test_xs_level0z#TestXSWithMultiIndex.test_xs_level0  s     (777555
 $#J$!Q8q6Aq6Aq6****
 
 

 >4==
 
 
 
fh/////r*   c                     |}|                     d          j        }|j        d         }t          j        ||           d S )Nr\   r   r   )r.   valuesrO   assert_almost_equalr   s        r(   test_xs_valuesz#TestXSWithMultiIndex.test_xs_values,  s?    -~&&-9Q<
vx00000r*   c                 x    |}|                     d          }|j        d         }t          j        ||           d S )Nr   )r.   r   rO   rP   r   s        r(   test_xs_loc_equalityz)TestXSWithMultiIndex.test_xs_loc_equality2  s=    -~&&6.)
vx00000r*   c                    t          g dddggg dg dg          }t          t          j                            d                              d          |	          }|t          u r|d         }|j        d
d                              d          }|	                    t          dd d f                   }t          j        ||           |j        t          dd d f                  }t          j        ||           d S )N))rY   r\   r   )rY   r   r   rY   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )   r   rc   r   )r   r   r$   rj   rk   rl   r   rm   	droplevelr.   r   rO   assert_equalr   )r1   frame_or_seriesr"   objrT   rg   s         r(   +test_xs_IndexSlice_argument_not_implementedz@TestXSWithMultiIndex.test_xs_IndexSlice_argument_not_implemented8  s
    MMMPQSTvV%%%'9'9'9:
 
 

 	--a00@@HHPUVVVf$$a&C8BCC=**1--
#4aaa#7899
)))$5qqq$89:
)))))r*   c                     t          dg di          }|t          u r|d         }d}t          j        t          |          5  |                    dd           d d d            d S # 1 swxY w Y   d S )Nr;   r   r   r   zIndex must be a MultiIndexrC   r   asr   )r   r   rE   rF   	TypeErrorr.   )r1   r   r   msgs       r(   test_xs_levels_raisesz*TestXSWithMultiIndex.test_xs_levels_raisesL  s    iii())f$$c(C*]9C000 	" 	"FF1DF!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   A''A+.A+c                    t          j        g dddg          }t          g dg|          }|                    ddd	
          }t          ddggt          j        ddgddg                    }t	          j        ||           d S )N)r   r   r   r   )r   r   level1level2r   r  r   r   r   FrM   r|   r   r  r  )r   r   r   r.   rO   r~   )r1   mire   rg   rT   s        r(   "test_xs_multiindex_droplevel_falsez7TestXSWithMultiIndex.test_xs_multiindex_droplevel_falseU  s    #00088L
 
 
 			{B///su55VH*Z(80D  
 
 
 	fh/////r*   c                     t          g dgt          g d                    }|                    ddd          }t          ddgi          }t          j        ||           d S )Nr  ra   r   r   r   Fr  )r   r   r.   rO   r~   r   s       r(   test_xs_droplevel_falsez,TestXSWithMultiIndex.test_xs_droplevel_falsed  si    			{E///,B,BCCCsu55cA3Z((
fh/////r*   c                 4   t          g dgt          g d                    }|                    ddd          }t          j        |j        d d df         j        |j        d d df         j                  sJ d	|j        d
<   t          ddgi          }t          j        ||           t          g dgt          g d                    }|                    ddd          }d	|j        d
<   t          ddgi          }t          j        ||           d S )Nr  ra   r   r   r   Fr  r   r   )r   r   )r   g      @r   )	r   r   r.   r$   shares_memoryrm   _valuesrO   r~   r   s       r(   test_xs_droplevel_false_viewz1TestXSWithMultiIndex.test_xs_droplevel_false_viewk  s   			{E///,B,BCCCsu55AAAqD 1 927111a4=;PQQQQQcA3Z((
fh///ooo0F0FGGGsu55cA3Z((
fh/////r*   c                     t          j        g d          }t          g dg dg|          }t          j        t
          d          5  |                    ddd	
           d d d            d S # 1 swxY w Y   d S )N))r   mr   )r   nr   )r   orb   r  )r   r   r   r   r   rC   )r   r   Fr   )r|   rM   )r   r   r   rE   rF   rG   r.   )r1   r  re   s      r(   $test_xs_list_indexer_droplevel_falsez9TestXSWithMultiIndex.test_xs_list_indexer_droplevel_false~  s    #$W$W$WXX			999-r:::]83/// 	8 	8EE*QE777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   	A//A36A3N)r   r   r   r   r   r   r   r   r   rE   markparametrizer   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r*   r(   r   r      s5       0 0 0*0 0 00 0 0	0 	0 	0+ + ++ + + [\,=(?T+UVV0 0 WV00 0 0* [(&--uueU^&/Q/Q/QRF//u61J1J1JK	
 0 0 0 [==55	
 
0 
0 
0 [224I4IJ 0 0 0$1 1 11 1 1* * *(" " "0 0 00 0 00 0 0&8 8 8 8 8r*   r   )rH   numpyr$   rE   pandasr   r   r   r   r   r   pandas._testing_testingrO   pandas.tseries.offsetsr	   fixturer)   r,   r   r   r*   r(   <module>r!     s#   				                           ' ' ' ' ' ' > > > ]+ ]+ ]+ ]+ ]+ ]+ ]+ ]+@8 8 8 8 8 8 8 8 8 8r*   