
    A>i4                         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	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)	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     b/var/www/html/land-tabula/venv/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                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestXS$   c                    UR                   S   nUR                  U5      nUR                  5        HQ  u  pE[        R                  " U5      (       a$  [        R                  " X   U   5      (       d   eMD  XQU   U   :X  a  MQ   e   g )Nr   )r"   xsitemsr$   isnan)selffloat_frameidxr/   itemvalues         r(   test_xsTestXS.test_xs%   sr    "^^C 88:KDxxxx 1# 67777D 1# 6666	 &r*   c                     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g )Nr   r   )12r:   r;   3)r:   r;   r<   )ABr=   r>   )r   r/   dtyper$   object_)r2   	test_dataframer/   s       r(   test_xs_mixedTestXS.test_xs_mixed.   se     !*s31OP	)$XXc]xx2::%%%#w!||#w#~~r*   c                     [         R                  " [        [        R                  " S5      S9   UR                  UR                  S   [        5       -
  5        S S S 5        g ! , (       d  f       g = f)Nz Timestamp('1999-12-31 00:00:00')matchr   )pytestraisesKeyErrorreescaper/   r"   r	   )r2   datetime_frames     r(   test_xs_dt_errorTestXS.test_xs_dt_error7   sO    ]]BII&HI
 n2215>?
 
 
s   *A!!
A/c                    UR                  5       nUR                  SSS9nUS   n[        R                  " X45        UR                  SSS9nSUS S & [        R                  " US   US   5        US:H  R	                  5       (       a   eg )Nr=   r   )axisr   )copyr/   tmassert_series_equalall)r2   r3   float_frame_origseriesexpecteds        r(   test_xs_otherTestXS.test_xs_other=   s    &++-!,s#
v0 !,q	
{3/1A#1FGM&&(((((r*   c                 l   [        S/[        / SS9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   str)r?   r!         ?r=   foor>          @CbarD      @E)r]   r^   r_   ra   rc   r    )r"   namer   r   cr"   r   )re   r?   )	r   r   r/   r   r&   rS   rT   r$   float64)r2   dfr/   expresultrX   s         r(   test_xs_cornerTestXS.test_xs_cornerK   s    aS%%*@A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   rg   r   r   rh   rg   )	r   r$   randomdefault_rngstandard_normalr/   ilocrS   rT   )r2   rj   crossrk   s       r(   test_xs_duplicatesTestXS.test_xs_duplicates^   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   r   r~   r~   F)level
drop_levelr   )r}   rx   r   )r   	set_indexr/   rS   assert_frame_equalr2   rj   rl   rX   s       r(   test_xs_keep_levelTestXS.test_xs_keep_levelh   s     U++=B T*	
 ).
/ 	 uEe<bq6
f/}VUON
f/r*   c                 X   [        [        R                  " S5      R                  SS5      [	        S5      [	        S5      S9nUR                  5       n[        R                  " 5          SUR                  S5      S S & S S S 5        [        R                  " X5        g ! , (       d  f       N%= f)Nr   r   r   r!      r   )
r   r$   arangereshaperangerR   rS   raises_chained_assignment_errorr/   r   )r2   dmdf_origs      r(   test_xs_viewTestXS.test_xs_viewx   st     ryy..q!4E!HeTUhW'')//1BEE!HQK 2
b* 21s   'B
B) N)__name__
__module____qualname____firstlineno__r7   rC   rN   rY   rm   ru   r   r   __static_attributes__r   r*   r(   r,   r,   $   s+    7@)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)ra   ra   bazr   r^   r^   quxr   )r   r   r   r   r   r   r   r   firstsecondr   r   )r      )r=   r>   r`   r!   )r   ra   )r   r   r   r   rQ   r   )r&   zipr   from_tuplesr   r$   rp   rq   rr   r/   rs   rS   r   )r2   arraystuplesr"   rj   rl   rX   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$   rp   rq   rr   lenr/   locrS   r   )r2   datesidsr"   rj   rl   rX   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   )r^   ra   r   r   r   re   )r/   r"   get_level_valuesr   rS   r   r2    multiindex_dataframe_random_datarj   rl   rX   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)rg   rz)r   r   r   r   r   rh   r   r   r   rg   r   	r$   rp   rq   rr   r   r   r/   rS   r   )r2   r'   r"   rj   rX   rl   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SUS S & [        R                  " X#5        g )Nr   r   r   r{   rR   r/   rS   r   )r2   r   rj   r   rl   s        r(   test_xs_setting_with_copy_error4TestXSWithMultiIndex.test_xs_setting_with_copy_error   s;    -'')uH-q	
b*r*   c                     UnUR                  5       nUR                  SSS/S9nSUS S & [        R                  " X#5        g )Nr   r   r   r   r   r{   r   )r2   r)   rj   r   rl   s        r(   (test_xs_setting_with_copy_error_multiple=TestXSWithMultiIndex.test_xs_setting_with_copy_error_multiple   s?    ''')xv7q	
b*r*   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_uniquer/   
isinstancer&   tuplerS   r   )r2   keyr   r   rB   rj   rX   rl   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   rh   r   r   )r   r   r   r$   nanr/   rS   r   )r2   accrj   rX   rl   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*   ra   r^   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   )ra   r^   helloworld)r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   )
r2   r   r   exp_arr	exp_indexr'   r"   rj   rl   rX   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   r/   rj   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     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&   rS   r   r2   r   r)   rj   expected_valuesexpected_indexrX   rl   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ra   r   r   )r/   valuesrS   assert_almost_equalr   s        r(   test_xs_values#TestXSWithMultiIndex.test_xs_values,  s6    -~&--99Q<
v0r*   c                 t    UnUR                  S5      nUR                  S   n[        R                  " X45        g )Nr	  )r/   r   rS   rT   r   s        r(   test_xs_loc_equality)TestXSWithMultiIndex.test_xs_loc_equality2  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))r^   ra   r   )r^   r   r   r^   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )   r   rh   r  )r   r   r$   rp   rq   rr   r   rs   	droplevelr/   r   rS   assert_equalr   )r2   frame_or_seriesr"   objrX   rl   s         r(   +test_xs_IndexSlice_argument_not_implemented@TestXSWithMultiIndex.test_xs_IndexSlice_argument_not_implemented8  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)Nr=   r   r   r   zIndex must be a MultiIndexrF   r   asr   )r   r   rH   rI   	TypeErrorr/   )r2   r  r  msgs       r(   test_xs_levels_raises*TestXSWithMultiIndex.test_xs_levels_raisesL  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rQ   r   r   r#  r$  )r   r   r   r/   rS   r   )r2   mirj   rl   rX   s        r(   "test_xs_multiindex_droplevel_false7TestXSWithMultiIndex.test_xs_multiindex_droplevel_falseU  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  rf   r   r   r   Fr'  )r   r   r/   rS   r   r   s       r(   test_xs_droplevel_false,TestXSWithMultiIndex.test_xs_droplevel_falsed  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S	UR
                  S
'   [        SS/05      n[        R                  " X#5        [        / SQ/[        / SQ5      S9nUR                  SSSS9nS	UR
                  S
'   [        SS/05      n[        R                  " X#5        g )Nr  rf   r   r   r   Fr'  r   r   )r   r   )r   g      @r   )	r   r   r/   r$   shares_memoryrs   _valuesrS   r   r   s       r(   test_xs_droplevel_false_view1TestXSWithMultiIndex.test_xs_droplevel_false_viewk  s    	{E/,BCsu5AqD 1 9 92771a4=;P;PQQQQcA3Z(
f/o0FGsu5cA3Z(
f/r*   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   org   r  )r   r   r  r   r   rF   )r   r   Fr   )r   rQ   )r   r   r   rH   rI   rJ   r/   )r2   r(  rj   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   rH   markparametrizer   r   r   r   r  r  r  r  r  r   r)  r,  r1  r7  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0&8r*   r   )rK   numpyr$   rH   pandasr   r   r   r   r   r   pandas._testing_testingrS   pandas.tseries.offsetsr	   fixturer)   r,   r   r   r*   r(   <module>rA     sQ    	     ' > > ]+ ]+@8 8r*   