
    Mh                         S SK rS SKrS SKJs  Jr  S SKJ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KJr   " S S5      rg)    N)PerformanceWarning)CategoricalDtype	DataFrameIndex
MultiIndexSeries)BooleanDtypec                       \ rS rSrS 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S rS rS rS rSrg)TestMultiIndexBasic   c                    [        / SQ/ SQ[        R                  R                  S5      R                  S5      S.5      R	                  SS/5      n[
        R                  " [        5         UR                  S     S S S 5        UR                  / S	Q   n[
        R                  " [        5         UR                  S
     S S S 5        g ! , (       d  f       NR= f! , (       d  f       g = f)N)r   r      r   )xr   zy      )jimjoejolier   r   )r   r   )r   r      r   )r   )
r   nprandomdefault_rng	set_indextmassert_produces_warningr   locilocselfdfs     b/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_multiindex.pytest_multiindex_perf_warn-TestMultiIndexBasic.test_multiindex_perf_warn   s    #+..q188;
 )UEN
# 	 ''(:;FF8 < WW\"''(:;FF4L <;	 <; <;s   +C.C
C
C&offset   c           
      r   SnX2-   nUR                  5          UR                  [        SU5        [        [        R
                  " U5      [        R                  " S/U-  [        R
                  " U5      45      5      nUS   S:X  d   eUS   S:X  d   eUS   S	:X  d   e S S S 5        g ! , (       d  f       g = f)
N   _SIZE_CUTOFFa)r,   r(   r(   )r,      r-   )r,      r.   )contextsetattrlibindexr   r   aranger   from_arrays)r!   monkeypatchr&   size_cutoffnss         r#   (test_indexing_over_hashtable_size_cutoff<TestMultiIndexBasic.test_indexing_over_hashtable_size_cutoff$   s       ".+Fryy|Z%;%;cUQY		RS<U%VWA X;!###X;!###X;!### #""s   BB((
B6c           	      r   [        SS[        R                  S// SQSS[        R                  S/S.5      nUR                  S	S
/SS9n[        SS[        R                  S// SQSS[        R                  S/S.[	        SS[        R                  S/S	S9[	        / SQS
S9/S9n[
        R                  " X#5        g )NR1R2R4C1C2C3C4
      r*   r,   bcr,   rF   F)dropnameindex)r   r   nanr   r   r   assert_frame_equal)r!   r"   resultexpecteds       r#   test_multi_nan_indexing+TestMultiIndexBasic.test_multi_nan_indexing2   s    D"&&$/-"bffb)
 sCju5D"&&$/-"bffb) tT26640s;.S9

 	f/    c           	         [        [        R                  [        R                  [        R                  [        R                  // SQSS[        R                  S/S.5      nUR                  SS/5      n[        SSS[        R                  S/0[        [        R                  [        R                  [        R                  [        R                  /SS	9[        / SQSS	9/S
9n[        R                  " X5        g )Nr>   rC   rD   r*   rE   r,   rF   rG   rI   rK   )	r   pdNaTr   rM   r   r   r   rN   )r!   r"   rP   s      r#   "test_exclusive_nat_column_indexing6TestMultiIndexBasic.test_exclusive_nat_column_indexingI   s     ffbffbffbff5-"bffb)
 \\3*%b"bffb) rvvrvvrvvrvv6SA.S9	
 	b+rS   c                 &   [         R                  " / SQ5      n[        / SQ5      n[        R                  " X/SS/S9n[        / SQ[        R                  [        R                  [        R                  /S.US9n[        US	   S
S
[        R                  /S.US9nUR                  SS9nS
UR                  US   S4S4'   [        R                  " Xe5        UR                  SS9nS
UR                  US   S4/S4'   [        R                  " Xu5        g )N)20190101rZ   20190102)r,   r,   rG   index1index2namesr   r   r   )c1c2rK   ra         ?T)deepr   r,   rb   )rU   to_datetimer   r   r3   r   r   rM   copyr   r   rN   )r!   dtiidxmir"   rP   df2df3s           r#   test_nested_tuples_duplicates1TestMultiIndexBasic.test_nested_tuples_duplicates_   s     nnABO$##SJx6JKi/GHPRSBtHS#rvv4FGrRgg4g '*Qt#$
c,gg4g ),#a&#%&
c,rS   c                    [        [        S5      SS9n[        R                  " SSSSS9n[        R
                  " X/5      n[        [        R                  R                  S5      R                  S	5      US
9nUR                  S   R                  n[        R                  " XR5        UR                  UR                  :X  d   eg )Nr   ArI   z
2020-01-01r.   DB)periodsfreqrJ   )   r   rK   r   )r   rangerU   
date_ranger   from_productr   r   r   r   standard_normalr   rL   r   assert_index_equalrs   )r!   rh   rg   ri   r"   rO   s         r#   2test_multiindex_with_datatime_level_preserves_freqFTestMultiIndexBasic.test_multiindex_with_datatime_level_preserves_freqr   s    E!H3'mmL!#CH$$cZ0ryy,,Q/??HPRS
f*{{chh&&&rS   c                     / SQn/ SQn[        UUUS.5      nUR                  SS/SS9  [        SU0[        R                  " X/S	S
9S9n[        R
                  " X45        g )N)y      ?       @y      @      y      $@      )r   r   r(   )r   r   r   r   r   T)inplacer   )r   r   r^   rK   )r   r   r   r3   r   rN   )r!   complex_datanon_complex_datarO   rP   s        r#   test_multiindex_complex+TestMultiIndexBasic.test_multiindex_complex|   sx    0$!%%
 	#sT2"#((0 
 	f/rS   c                     [         R                  " / SQ5      n[        US9nUR                  SS0SS9n[         R                  " / SQ5      n[        US9n[        R
                  " X$5        g )N))ro   catrq   r   r   rK   ro   Appler   )rL   level))r   r   r   r   )r   from_tuplesr   renamer   rN   )r!   ri   r"   mi2rP   s        r#   &test_rename_multiindex_with_duplicates:TestMultiIndexBasic.test_rename_multiindex_with_duplicates   s\    ##$NOR YYc7^1Y5$$%ST3'
b+rS   c                    [         R                  " S[        R                  /[        R                  [        R                  //5      n[         R                  " [        R                  S/[        R                  [        R                  //5      n[	        SS/US9n[	        SS/US9nUR                  U5      u  pV[         R                  " SS[        R                  /[        R                  [        R                  [        R                  //5      n[	        S[        R                  S/US9n[	        [        R                  SS/US9n	[        R                  " XX5        [        R                  " Xi5        g )N     @T@g     T@r   r   rK   rc   g       @r   r3   r   rM   r   alignr   assert_series_equal
r!   mi1r   ser1ser2result1result2ri   	expected1	expected2s
             r#   2test_series_align_multiindex_with_nan_overlap_onlyFTestMultiIndexBasic.test_series_align_multiindex_with_nan_overlap_only   s   $$tRVVnrvvrvv6F%GH$$rvvtnrvvrvv6F%GHq!fC(q!fC(::d+##dD"&&%9BFFBFFBFF;S$TUC-R8	BFFC-R8	
w2
w2rS   c                    [         R                  " S[        R                  /[        R                  [        R                  //5      n[         R                  " [        R                  S/[        R                  [        R                  //5      n[	        SS/US9n[	        SS/US9nUR                  U5      u  pV[         R                  " S[        R                  /[        R                  [        R                  //5      n[	        SS/US9n[	        SS/US9n	[        R                  " XX5        [        R                  " Xi5        g )Nr   r   r   rK   r   r   s
             r#   %test_series_align_multiindex_with_nan9TestMultiIndexBasic.test_series_align_multiindex_with_nan   s    $$tRVVnrvvrvv6F%GH$$rvvtnrvvrvv6F%GHq!fC(q!fC(::d+##dBFF^bffbff5E$FGAq6,	Aq6,	
w2
w2rS   c                     [        SS/SS//5      R                  SS/5      R                  R                  5       nUS:X  d   eg )Nr   r   r   )r   r   rL   nunique)r!   r6   s     r#   test_nunique_smoke&TestMultiIndexBasic.test_nunique_smoke   sB    1v1v&'111a&9??GGIAvvrS   c           
          [         R                  " [        SS/[        R                  " SS//5      5      R
                  / SQ   [        / SQ[        R                  " / SQ/5      5      5        g )Nr   r   r,   rF   )r,   r,   rF   rF   )r   r   r   r   )r   r   r   r   r3   r   )r!   s    r#   test_multiindex_repeated_keys1TestMultiIndexBasic.test_multiindex_repeated_keys   sX    
Aq6:11C:,?@DD$ <!7!79M8N!OP		
rS   c                     [         R                  " / SQ/ SQ/ SQS.5      n[        R                  " [        SS9   US/     S S S 5        g ! , (       d  f       g = f)Nr`   )r(   r-   r.   )   	   r   ))foo)bar)Nmissing_key)match)r   )r   	from_dictpytestraisesKeyErrorr    s     r#   #test_multiindex_with_na_missing_key7TestMultiIndexBasic.test_multiindex_with_na_missing_key   sH      ##"
 ]]8=9 !" :99s   A


Ac                 b   [         R                  " S/SS/S9n[        S/US9R                  S5      nUS   n[	        US	   R
                  [        5      (       d   e[        S
S/SS
//SS/SS/SS//S9R                  [        SS/SS9S9n[	        US   R
                  [        5      (       d   eg )N)ro   rq   lvl1lvl2r^   value)columnscategoryro   rq   r   r   r   locationr   r   TFboolean)dtype)boolsr   )
r   r   r   astype
isinstancer   r   assignr   r	   )r!   r   r"   df_no_multiindexs       r#   "test_multiindex_dtype_preservation6TestMultiIndexBasic.test_multiindex_dtype_preservation   s    ((*ff=MNy'299*Ec7*3/557GHHHH VaVZ(c

 &vtUm9=&
> 	 "W+++\::::rS   c                 
   [         R                  " S[        R                  S/5      n[         R                  " S[        R                  [        R                  [        R                  4S/5      n[        R
                  " X5        g )NrE   )d r   )r   r   r   rM   r   ry   )r!   rO   rP   s      r#   $test_multiindex_from_tuples_with_nan8TestMultiIndexBasic.test_multiindex_from_tuples_with_nan   sZ    ''"&&-(PQ))rvvrvvrvv6F
 	f/rS    N)__name__
__module____qualname____firstlineno__r$   r   markparametrizer8   rQ   rW   rl   rz   r   r   r   r   r   r   r   r   r   __static_attributes__r   rS   r#   r   r      sq      [[XAw/$ 0$0.,,-&'0*,33


#;$0rS   r   )numpyr   r   pandas._libs.index_libsrL   r1   pandas.errorsr   pandasrU   r   r   r   r   r   pandas._testing_testingr   pandas.core.arrays.booleanr	   r   r   rS   r#   <module>r      s5      % % ,    3X0 X0rS   