
    Mhl>                         S SK r S SKrS SKrS SKJr  S SKJrJrJ	r	J
r
JrJr  S SKJr  S SKJr  \R$                  S 5       r " S S5      r " S S	5      rg)
    N)SettingWithCopyError)	DataFrameIndex
IndexSlice
MultiIndexSeriesconcat)BDayc                      [         R                  " / SQ/ SQ/ SQ/5      n [        SS/SS// SQ/ S	Q// S
Q/ SQ/ SQ/ SQ// SQS9n[        X[	        S5      S9$ )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     U/var/www/html/env/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_xs.pyfour_level_index_dataframer*      sa    
((757	
C c
S#J(=yI)Y	:-E
 StG}==    c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestXS&   c                 \   UR                  5       nUR                  S   nUR                  U5      nUR                  5        HQ  u  p[        R
                  " U	5      (       a$  [        R
                  " X   U   5      (       d   eMD  XU   U   :X  a  MQ   e   SSS.SSSS.S	.n
[        U
5      nUR                  S5      nUR                  [        R                  :X  d   eUS
   S:X  d   eUS   S:X  d   e[        R                  " [        [        R                  " S5      S9   UR                  UR                  S   [        5       -
  5        S S S 5        UR                  S
SS9nUS
   n[        R                   " X5        UR                  S
SS9n[        R"                  " U5         SUS S & S S S 5        U(       a8  [        R                   " US
   US
   5        US:H  R%                  5       (       a   eg US:H  R%                  5       (       d   eg ! , (       d  f       N= f! , (       d  f       Ny= f)Nr   r   r   )12r0   r1   3)r0   r1   r2   )ABr3   r4   z Timestamp('1999-12-31 00:00:00')matchr   )axis)copyr#   xsitemsr%   isnanr   dtypeobject_pytestraisesKeyErrorreescaper
   tmassert_series_equalassert_cow_warningall)selffloat_framedatetime_frameusing_copy_on_writewarn_copy_on_writefloat_frame_origidxr9   itemvalue	test_dataframeseriesexpecteds                 r)   test_xsTestXS.test_xs'   s    '++-"^^C 88:KDxxxx 1# 67777D 1# 6666	 & !"*s31OP	)$XXc]xx2::%%%#w!||#w#~~]]BII&HI
 n2215>?
 !,s#
v0 !,""#56F1I 7"";s#35Ec5JK A**,,,,,M&&(((('
 
 76s   !*H$H
H
H+c                 Z   [        S/S9nSUS'   SUS'   SUS'   S	US
'   SUS'   UR                  S5      n[        / SQ[        S5      SS9n[        R
                  " X#5        [        / SQS9nUR                  S5      n[        / S[        R                  S9n[        R
                  " XE5        g )Nr   r#         ?r3   foor4          @CbarD      @E)rX   rY   rZ   r\   r^   r!   )r#   namer   r   cr   )r`   r<   )r   r9   r   r'   rC   rD   r%   float64)rG   dfr9   expresultrS   s         r)   test_xs_cornerTestXS.test_xs_cornerP   s    aS!33333UU1X2$w-aP
r' _-s"3bjj9
v0r+   c                     [        [        R                  R                  S5      R	                  S5      / SQS9nUR                  S5      nUR                  S   n[        R                  " X#5        g )Nr   )r   r   )r   r   rb   r   r   rW   rb   )	r   r%   randomdefault_rngstandard_normalr9   ilocrC   rD   )rG   rd   crossre   s       r)   test_xs_duplicatesTestXS.test_xs_duplicatesc   sV    II!!!$44V<+

 c
ggaj
u*r+   c                    [        SSS.SSS.SSS.SSS.S.5      R                  / S	Q5      nUR                  SS
SS9nUS S n[        R                  " X#5        UR                  SSS
/SS9n[        R                  " X#5        g )Nsatsun)r   r   
strawberry
        )dayflavoursalesyear)r{   ry   rx   rx   F)level
drop_levelr   )rw   rr   r{   )r   	set_indexr9   rC   assert_frame_equalrG   rd   rf   rS   s       r)   test_xs_keep_levelTestXS.test_xs_keep_levelm   s     U++=B T*	
 ).
/ 	 uEe<bq6
f/}VUON
f/r+   c                 4   [        [        R                  " S5      R                  SS5      [	        S5      [	        S5      S9nUR                  5       nU(       aI  [        R                  " 5          SUR                  S5      S S & S S S 5        [        R                  " XE5        g U(       ab  Sn[        R                  " [        US9   SUR                  S5      S S & S S S 5        UR                  S5      S:H  R                  5       (       a   eg [        R                  " 5          SUR                  S5      S S & S S S 5        UR                  S5      S:H  R                  5       (       d   eg ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NZ= f)	Nr   r   r   r"      r   zC\nA value is trying to be set on a copy of a slice from a DataFramer5   )r   r%   arangereshaperanger8   rC   raises_chained_assignment_errorr9   r   r>   r?   r   anyrF   )rG   using_array_managerrJ   rK   dmdf_origmsgs          r)   test_xs_viewTestXS.test_xs_view}   s"    ryy..q!4E!HeTUhW'')335 a 6!!".  YC33? a @aB++-----335 a 6EE!HN'')))) 65 @? 65s$   .E'E8 F	'
E58
F	
F N)
__name__
__module____qualname____firstlineno__rT   rg   ro   r   r   __static_attributes__r   r+   r)   r-   r-   &   s    ')R1&+0 *r+   r-   c                      \ rS rSrS rS rS rS rS rS r	\
R                  R                  SS	S
/S/4/5      S 5       rS r\
R                  R                  SSSS \" SS/SS94SSS \" S/SS94/5      S 5       r\
R                  R                  SS S /5      S 5       r\
R                  R                  SS S /5      S 5       rS rS  rS! rS" rS# rS$ rS% rS& rS'rg())TestXSWithMultiIndex   c                 L   / SQ/ SQ/n[        [        U6 5      n[        R                  " USS/S9n[	        [
        R                  R                  S5      R                  S5      / SQUS	9nUR                  S
SSS9nUR                  S S 2S/4   n[        R                  " XV5        g )N)r\   r\   bazr   rY   rY   quxr   )r   r   r   r   r   r   r   r   firstsecondr    r   )r      )r3   r4   r[   r"   )r   r\   )r   r   r   r|   r7   r   )r'   zipr   from_tuplesr   r%   rj   rk   rl   r9   rm   rC   r   )rG   arraystuplesr#   rd   rf   rS   s          r)   test_xs_doc_example(TestXSWithMultiIndex.test_xs_doc_example   s     ED
 c6l#&&vgx5HIII!!!$44V<!
 ~-@qI771qc6?
f/r+   c                 `   [        SS5      n[        S5      n[        R                  " X/SS/S9n[	        [
        R                  R                  S5      R                  [        U5      S45      U/ S	Q5      nUR                  SSS
9nUR                  SS S 24   n[        R                  " XV5        g )Nia2ie2abcdedatesecidr   r   r   )XYZr|   )r   r'   r   from_productr   r%   rj   rk   rl   lenr9   locrC   r   )rG   datesidsr#   rd   rf   rS   s          r)   test_xs_integer_key(TestXSWithMultiIndex.test_xs_integer_key   s    h)7m''VW<MNII!!!$44c%j!_E
 xv.66(A+&
f/r+   c                     UnUR                  SSS9nX"R                  R                  S5      S:H     n[        / SQSS9Ul        [        R
                  " X45        g )Nr   r   r   r   )rY   r\   r   r   r   r`   )r9   r#   get_level_valuesr   rC   r   rG    multiindex_dataframe_random_datard   rf   rS   s        r)   test_xs_level"TestXSWithMultiIndex.test_xs_level   sR    -uH-hh//2e;<;'J
f/r+   c                    [         R                  R                  S5      R                  S5      n[	        / SQ/ SQ/ SQ// SQ/ SQ/ SQ/S9n[        XS9n[        US	S S
/S//S9nUR                  SSS9n[        R                  " XT5        g )Nr   )r   r   )r   pr   )r   r   y)rb   rz)r   r   r   r   r   rW   r   r   r   rb   r   	r%   rj   rk   rl   r   r   r9   rC   r   )rG   r(   r#   rd   rS   rf   s         r)   test_xs_level_eq_2'TestXSWithMultiIndex.test_xs_level_eq_2   s    ii##A&66v>#_oFi3
 s(S1XsecU^<s!$
f/r+   c                    UnUR                  5       nUR                  SSS9nU(       d  U(       a  SUS S & O)Sn[        R                  " [        US9   SUS S & S S S 5        [
        R                  " XE5        g ! , (       d  f       N%= f)Nr   r   r   ru   AA value is trying to be set on a copy of a slice from a DataFramer5   r8   r9   r>   r?   r   rC   r   )rG   r   rJ   rK   rd   r   rf   r   s           r)   test_xs_setting_with_copy_error4TestXSWithMultiIndex.test_xs_setting_with_copy_error   ss     .'')uH-"4F1I VC33?q	 @
b* @?s   A77
Bc                    UnUR                  5       nUR                  SSS/S9nU(       d  U(       a  SUS S & O)Sn[        R                  " [        US9   SUS S & S S S 5        [
        R                  " XE5        g ! , (       d  f       N%= f)Nr   r   r   r   r   ru   r   r5   r   )rG   r*   rJ   rK   rd   r   rf   r   s           r)   (test_xs_setting_with_copy_error_multiple=TestXSWithMultiIndex.test_xs_setting_with_copy_error_multiple   sw     ('')xv7"4F1I VC33?q	 @
b* @?s   A99
Bz
key, level)r   r   r   r   c                 >   Un[        U/S-  5      nUR                  R                  SL d   e[        UR                  SSS9/S-  5      n[	        U[
        5      (       a  UR                  [        U5      US9nOUR                  XS9n[        R                  " Xv5        g )Nr   Fr   r   r   )	r	   r#   	is_uniquer9   
isinstancer'   tuplerC   r   )rG   keyr|   r   rQ   rd   rS   rf   s           r)   test_xs_with_duplicates,TestXSWithMultiIndex.test_xs_with_duplicates   s     1UGaK xx!!U***588E8:;a?@c4  UU5:UU3FUU3U,F
f/r+   c           	          / SQn[        U/ SQS9R                  SS/5      n[        S/ SQ0[        S[        R                  S	S
/SS9S9nUR                  SSS9n[        R                  " XC5        g )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   rW   r   r   )r   r~   r   r%   nanr9   rC   r   )rG   accrd   rS   rf   s        r)   test_xs_missing_values_in_index4TestXSWithMultiIndex.test_xs_missing_values_in_index  ss    
 s$78BBD$<P$%"&&'7;$G

 s$'
f/r+   zkey, level, exp_arr, exp_indexr   lvl0c                     U S S 2SS24   $ )Nr   r   r   r   s    r)   <lambda>TestXSWithMultiIndex.<lambda>  s    Aa1fIr+   r\   rY   lvl1r   c                     U S S 2SS24   $ )Nr   r   r   r   s    r)   r   r     s    a1Q3ir+   c                    [         R                  R                  S5      R                  S5      n[	        SS// SQ// SQ/ SQ/SS	/S
9n[        XVS9nUR                  XSS9n[        U" U5      US9n	[        R                  " X5        g )Nr   )r   r   r   r   )r\   rY   helloworld)r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   )
rG   r   r|   exp_arr	exp_indexr(   r#   rd   rf   rS   s
             r)   test_xs_named_levels_axis_eq_13TestXSWithMultiIndex.test_xs_named_levels_axis_eq_1  s     ii##A&66v>#J @A.6"

 s*sa0WS\9=
f/r+   indexerc                 &    U R                  SSS/S9$ )Nr   r   r   r   r9   rd   s    r)   r   r   /  s    ruuXeV_u=r+   c                 @    U R                  S5      R                  SSS9$ )Nr   r   r   r   r   r   s    r)   r   r   0  s    ruuSz}}Qf}5r+   c                     Un/ SQ/n[        S/S//S/S//SS/S9n[        XE[        S5      S	9nU" U5      n[        R                  " Xv5        g )
Nr   r   r   r   r   r   r   r!   r"   r   r   r'   rC   r   rG   r   r*   rd   expected_valuesexpected_indexrS   rf   s           r)   test_xs_level_multiple+TestXSWithMultiIndex.test_xs_level_multiple,  se     (DE#ED6?A3*UG<L
 4=
 
f/r+   c                 "    U R                  SSS9$ )Nr   r   r   r   r   s    r)   r   r   @  s    ruuSu2r+   c                 $    U R                  S5      $ )Nr   r   r   s    r)   r   r   @  s    ruuSzr+   c                     Un/ SQ/ SQ/n[        SS/SS/SS//S	S
/S	S
/S
S	/// SQS9n[        XE[        S5      S9nU" U5      n[        R                  " Xv5        g )Nr   r   r   r   r   r   r   r   r   r   )r   r   r   r   r!   r"   r   r   s           r)   test_xs_level0#TestXSWithMultiIndex.test_xs_level0?  s     (75
 $#J$!Q8q6Aq6Aq6**

 4=
 
f/r+   c                     UnUR                  S5      R                  nUR                  S   n[        R                  " X45        g )Nr\   r   r   )r9   valuesrC   assert_almost_equalr   s        r)   test_xs_values#TestXSWithMultiIndex.test_xs_valuesT  s6    -~&--99Q<
v0r+   c                 t    UnUR                  S5      nUR                  S   n[        R                  " X45        g )Nr  )r9   r   rC   rD   r   s        r)   test_xs_loc_equality)TestXSWithMultiIndex.test_xs_loc_equalityZ  s1    -~&66.)
v0r+   c                    [        / SQSS/// SQ/ SQ/S9n[        [        R                  R	                  S5      R                  S5      US	9nU[        L a  US   nUR                  S
S  R                  S5      nUR                  [        SS S 24   5      n[        R                  " XT5        UR                  [        SS S 24      n[        R                  " XT5        g )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   rW   r  )r   r   r%   rj   rk   rl   r   rm   	droplevelr9   r   rC   assert_equalr   )rG   frame_or_seriesr#   objrS   rf   s         r)   +test_xs_IndexSlice_argument_not_implemented@TestXSWithMultiIndex.test_xs_IndexSlice_argument_not_implemented`  s     MPQSTvV%'9:

 		--a0@@HPUVf$a&C88BC=**1-
#4a#789
)$5q$89:
)r+   c                     [        S/ SQ05      nU[        L a  US   nSn[        R                  " [        US9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)Nr3   r   r   r   zIndex must be a MultiIndexr5   r   asr   )r   r   r>   r?   	TypeErrorr9   )rG   r  r  r   s       r)   test_xs_levels_raises*TestXSWithMultiIndex.test_xs_levels_raisest  sQ    i()f$c(C*]]9C0FF1DF! 100s   A
A!c                     [         R                  " / SQSS/S9n[        / SQ/US9nUR                  SSS	S
9n[        SS//[         R                  " SS/SS/S9S9n[        R
                  " X45        g )N)r   r   r   r   )r   r   level1level2r   r  r   r   r   Fr7   r}   r   r   r!  )r   r   r   r9   rC   r   )rG   mird   rf   rS   s        r)   "test_xs_multiindex_droplevel_false7TestXSWithMultiIndex.test_xs_multiindex_droplevel_false}  s    ##088L
 	{B/su5VH**Z(80D
 	f/r+   c                     [        / SQ/[        / SQ5      S9nUR                  SSSS9n[        SS/05      n[        R                  " X#5        g )Nr  ra   r   r   r   Fr$  )r   r   r9   rC   r   r   s       r)   test_xs_droplevel_false,TestXSWithMultiIndex.test_xs_droplevel_false  sG    	{E/,BCsu5cA3Z(
f/r+   c                     [        / SQ/[        / SQ5      S9nUR                  SSSS9n[        R                  " UR
                  S S 2S4   R                  UR
                  S S 2S4   R                  5      (       d   e[        R                  " U5         S	UR
                  S
'   S S S 5        U(       a  [        SS/05      nO[        SS	/05      n[        R                  " XV5        [        / SQ/[        / SQ5      S9nUR                  SSSS9nS	UR
                  S
'   U(       a  [        SS/05      nO$U(       a  [        SS	/05      nO[        SS/05      n[        R                  " XV5        g ! , (       d  f       N= f)Nr  ra   r   r   r   Fr$  r   r   )r   r   )r   g      @r   )
r   r   r9   r%   shares_memoryrm   _valuesrC   rE   r   )rG   r   rJ   rK   rd   rf   rS   s          r)   test_xs_droplevel_false_view1TestXSWithMultiIndex.test_xs_droplevel_false_view  sB    	{E/,BCsu5AqD 1 9 92771a4=;P;PQQQQ""#56BGGDM 7 #s,H !#s,H
f/ o0FGsu5 #s,H  #s,H !#s,H
f/3 76s   E//
E=c                     [         R                  " / SQ5      n[        / SQ/ SQ/US9n[        R                  " [
        SS9   UR                  SSS	S
9  S S S 5        g ! , (       d  f       g = f)N))r   mr   )r   nr   )r   orb   r  )r   r   r  r   r   r5   )r   r   Fr   )r}   r7   )r   r   r   r>   r?   r@   r9   )rG   r%  rd   s      r)   $test_xs_list_indexer_droplevel_false9TestXSWithMultiIndex.test_xs_list_indexer_droplevel_false  sP    ##$WX	9-r:]]83/EE*QE7 0//s   A
A+r   N)r   r   r   r   r   r   r   r   r   r   r>   markparametrizer   r   r   r   r   r  r
  r  r  r  r&  r)  r.  r4  r   r   r+   r)   r   r      s<   0*00	0+*+$ [[\,=(?T+UV0 W00* [[(&-ueU^&/QRF/u61JK	
00 [[=5	

0
0 [[24IJ00$11*("00"0H8r+   r   )rA   numpyr%   r>   pandas.errorsr   pandasr   r   r   r   r   r	   pandas._testing_testingrC   pandas.tseries.offsetsr
   fixturer*   r-   r   r   r+   r)   <module>r?     sT    	   .   ' > > n* n*be8 e8r+   