Ë
    ž…j6'  ã                   óv   — d dl Zd dlZd dlmc mZ d dlZd dlm	Z	m
Z
mZmZmZ d dlmZ d dlmZ  G d„ d«      Zy)é    N)ÚCategoricalDtypeÚ	DataFrameÚIndexÚ
MultiIndexÚSeries)ÚBooleanDtypec                   óü   — e Zd Zd„ Zej
                  j                  dddg«      d„ «       Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej
                  j                  dg d¢«      d„ «       Zd„ Zd„ Zy)ÚTestMultiIndexBasicc                 óª  — t        g d¢g d¢t        j                  j                  d«      j                  d«      dœ«      j	                  ddg«      }t        j                  |«      5  |j                  d    d d d «       |j                  g d	¢   }t        j                  |«      5  |j                  d
    d d d «       y # 1 sw Y   ŒHxY w# 1 sw Y   y xY w)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_warningÚlocÚiloc)ÚselfÚperformance_warningÚdfs      úq/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/indexing/multiindex/test_multiindex.pyÚtest_multiindex_perf_warnz-TestMultiIndexBasic.test_multiindex_perf_warn   s½   € Üâ#Ú+ÜŸ™×.Ñ.¨qÓ1×8Ñ8¸Ó;ñó
÷ ‰)�U˜E�NÓ
#ð 	ô ×'Ñ'Ð(;Ó<ñ 	Ø�F‰F�8Ò÷	ð �W‰W’\Ñ"ˆÜ×'Ñ'Ð(;Ó<ñ 	Ø�F‰F�4ŠL÷	ð 	÷		ð 	ú÷	ð 	ús   Á&B=Â$C	Â=CÃ	CÚoffsetéûÿÿÿé   c           
      ó^  — d}||z   }|j                  «       5  |j                  t        d|«       t        t	        j
                  |«      t        j                  dg|z  t	        j
                  |«      f«      «      }|d   dk(  sJ ‚|d   dk(  sJ ‚|d   d	k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)
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_cutoffz<TestMultiIndexBasic.test_indexing_over_hashtable_size_cutoff#   s¯   € àˆØ˜&Ñ ˆà× Ñ Ó"ñ 	$Ø×Ñ¤¨.¸+ÔFÜ”r—y‘y “|¤Z×%;Ñ%;¸c¸UÀQ¹YÌÏ	É	ÐRSËÐ<UÓ%VÓWˆAð �X‘; !Ò#Ð#Ð#Ø�X‘; !Ò#Ð#Ð#Ø�X‘; !Ò#Ð#Ñ#÷	$÷ 	$ñ 	$ús   ˜BB#Â#B,c           	      óŠ  — t        ddt        j                  dgg d¢ddt        j                  dgdœ«      }|j                  d	d
gd¬«      }t        ddt        j                  dgg d¢ddt        j                  dgdœt	        ddt        j                  dgd	¬«      t	        g d¢d
¬«      g¬«      }t        j                  ||«       y )NÚR1ÚR2ÚR4©ÚC1ÚC2ÚC3ÚC4é
   é   r'   ©r)   ÚbÚcr)   rB   F)Údrop©Úname©Úindex)r   r   Únanr   r   r   Úassert_frame_equal)r   r    ÚresultÚexpecteds       r!   Útest_multi_nan_indexingz+TestMultiIndexBasic.test_multi_nan_indexing1   s¹   € äà˜D¤"§&¡&¨$Ð/Ú-Ø˜"œbŸf™f bÐ)ñó
ˆð —‘˜s C˜j¨u�Ó5ˆÜà˜D¤"§&¡&¨$Ð/Ú-Ø˜"œbŸf™f bÐ)ñô �t˜T¤2§6¡6¨4Ð0°sÔ;ÜÒ.°SÔ9ðô

ˆô 	×Ñ˜f hÕ/ó    c           	      ó  — t        t        j                  t        j                  t        j                  t        j                  gg d¢ddt        j                  dgdœ«      }|j                  ddg«      }t        dddt        j                  dgit        t        j                  t        j                  t        j                  t        j                  gd¬	«      t        g d¢d¬	«      g¬
«      }t        j                  ||«       y )Nr:   r?   r@   r'   rA   r)   rB   rC   rE   rG   )	r   ÚpdÚNaTr   rI   r   r   r   rJ   )r   r    rL   s      r!   Ú"test_exclusive_nat_column_indexingz6TestMultiIndexBasic.test_exclusive_nat_column_indexingH   s¾   € ô ä—f‘fœbŸf™f¤b§f¡f¬b¯f©fÐ5Ú-Ø˜"œbŸf™f bÐ)ñó
ˆð �\‰\˜3 ˜*Ó%ˆÜà�b˜"œbŸf™f bÐ)ðô ”r—v‘vœrŸv™v¤r§v¡v¬r¯v©vÐ6¸SÔAÜÒ.°SÔ9ðô	
ˆô 	×Ñ˜b (Õ+rN   c                 óB  — t        j                  g d¢«      }t        g d¢«      }t        j                  ||gddg¬«      }t        g d¢t        j                  t        j                  t        j                  gdœ|¬«      }t        |d	   d
d
t        j                  gdœ|¬«      }|j                  d¬«      }d
|j                  |d   dfdf<   t        j                  ||«       |j                  d¬«      }d
|j                  |d   dfgdf<   t        j                  ||«       y )N)Ú20190101rT   Ú20190102)r)   r)   rC   Úindex1Úindex2©Únames©r   r   r   )Úc1Úc2rG   r[   ç      ð?T)Údeepr   r)   r\   )rP   Úto_datetimer   r   r0   r   r   rI   Úcopyr   r   rJ   )r   ÚdtiÚidxÚmir    rL   Údf2Údf3s           r!   Útest_nested_tuples_duplicatesz1TestMultiIndexBasic.test_nested_tuples_duplicates^   sõ   € ô �n‰nÒAÓBˆÜ’OÓ$ˆÜ×#Ñ# S¨# J°xÀÐ6JÔKˆäši´·±¼¿¹ÄÇÁÐ/GÑHÐPRÔSˆä B t¡H°S¸#¼r¿v¹vÐ4FÑGÈrÔRˆà�g‰g˜4ˆgÓ ˆØ'*ˆ�‰��Q‘˜�˜tÐ#Ñ$Ü
×Ñ˜c 8Ô,à�g‰g˜4ˆgÓ ˆØ),ˆ�‰�#�a‘&˜#�� Ð%Ñ&Ü
×Ñ˜c 8Õ,rN   c                 ó–  — t        t        d«      d¬«      }t        j                  dddd¬«      }t	        j
                  ||g«      }t        t        j                  j                  d«      j                  d	«      |¬
«      }|j                  d   j                  }t        j                  ||«       |j                  |j                  k(  sJ ‚y )Nr   ÚArE   z
2020-01-01r+   ÚDÚB)ÚperiodsÚfreqrF   )é   r   rG   r   )r   ÚrangerP   Ú
date_ranger   Úfrom_productr   r   r   r   Ústandard_normalr   rH   r   Úassert_index_equalrl   )r   rb   ra   rc   r    rK   s         r!   Ú2test_multiindex_with_datatime_level_preserves_freqzFTestMultiIndexBasic.test_multiindex_with_datatime_level_preserves_freqq   s˜   € ä”E˜!“H 3Ô'ˆÜ�m‰m˜L°!¸#ÀCÔHˆÜ×$Ñ$ c¨3 ZÓ0ˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPRÔSˆØ—‘˜‘—‘ˆÜ
×Ñ˜f cÔ*Ø�{‰{˜cŸh™hÒ&Ð&Ñ&rN   c                 óÔ   — g d¢}g d¢}t        |||dœ«      }|j                  ddgd¬«       t        d|it        j                  ||gd	¬
«      ¬«      }t	        j
                  ||«       y )N)y      ð?       @y      @      Ày      $@      ð¿)r   r   r%   )r   r   r   r   r   T)Úinplacer   )r   r   rX   rG   )r   r   r   r0   r   rJ   )r   Úcomplex_dataÚnon_complex_datarK   rL   s        r!   Útest_multiindex_complexz+TestMultiIndexBasic.test_multiindex_complex{   s}   € â0ˆÚ$ÐÜà!Ø%Ø%ñó
ˆð 	×Ñ˜#˜s˜¨TÐÔ2ÜØÐ"Ð#Ü×(Ñ(ØÐ/Ð0Ø ôô
ˆô 	×Ñ˜f hÕ/rN   c                 óæ   — t        j                  g d¢«      }t        |¬«      }|j                  ddid¬«      }t        j                  g d¢«      }t        |¬«      }t	        j
                  ||«       y )N))rh   Úcat©rj   rz   r{   rG   rh   ÚAppler   )rH   Úlevel))r|   rz   r{   r{   )r   Úfrom_tuplesr   Úrenamer   rJ   )r   rc   r    Úmi2rL   s        r!   Ú&test_rename_multiindex_with_duplicatesz:TestMultiIndexBasic.test_rename_multiindex_with_duplicates�   s^   € ä×#Ñ#Ò$NÓOˆÜ˜RÔ ˆØ�Y‰Y˜c 7˜^°1ˆYÓ5ˆä×$Ñ$Ò%SÓTˆÜ 3Ô'ˆÜ
×Ñ˜b (Õ+rN   c                 óö  — t        j                  dt        j                  gt        j                  t        j                  gg«      }t        j                  t        j                  dgt        j                  t        j                  gg«      }t	        ddg|¬«      }t	        ddg|¬«      }|j                  |«      \  }}t        j                  ddt        j                  gt        j                  t        j                  t        j                  gg«      }t	        dt        j                  dg|¬«      }t	        t        j                  ddg|¬«      }	t        j                  ||«       t        j                  ||	«       y )Nç     @T@g     €T@r   r   rG   r]   g       @©r   r0   r   rI   r   Úalignr   Úassert_series_equal©
r   Úmi1r€   Úser1Úser2Úresult1Úresult2rc   Ú	expected1Ú	expected2s
             r!   Ú2test_series_align_multiindex_with_nan_overlap_onlyzFTestMultiIndexBasic.test_series_align_multiindex_with_nan_overlap_onlyš   s
  € ä×$Ñ$ t¬R¯V©V n´r·v±v¼r¿v¹vÐ6FÐ%GÓHˆÜ×$Ñ$¤r§v¡v¨t n´r·v±v¼r¿v¹vÐ6FÐ%GÓHˆÜ�q˜!�f CÔ(ˆÜ�q˜!�f CÔ(ˆØŸ:™: dÓ+Ñˆ�ä×#Ñ# d¨D´"·&±&Ð%9¼B¿F¹FÄBÇFÁFÌBÏFÉFÐ;SÐ$TÓUˆÜ˜C¤§¡¨Ð-°RÔ8ˆ	ÜœBŸF™F C¨Ð-°RÔ8ˆ	ä
×Ñ˜w¨	Ô2Ü
×Ñ˜w¨	Õ2rN   c                 óš  — t        j                  dt        j                  gt        j                  t        j                  gg«      }t        j                  t        j                  dgt        j                  t        j                  gg«      }t	        ddg|¬«      }t	        ddg|¬«      }|j                  |«      \  }}t        j                  dt        j                  gt        j                  t        j                  gg«      }t	        ddg|¬«      }t	        ddg|¬«      }	t        j                  ||«       t        j                  ||	«       y )Nrƒ   r   r   rG   r„   r‡   s
             r!   Ú%test_series_align_multiindex_with_nanz9TestMultiIndexBasic.test_series_align_multiindex_with_nan©   só   € ä×$Ñ$ t¬R¯V©V n´r·v±v¼r¿v¹vÐ6FÐ%GÓHˆÜ×$Ñ$¤r§v¡v¨t n´r·v±v¼r¿v¹vÐ6FÐ%GÓHˆÜ�q˜!�f CÔ(ˆÜ�q˜!�f CÔ(ˆØŸ:™: dÓ+Ñˆ�ä×#Ñ# d¬B¯F©F ^´b·f±f¼b¿f¹fÐ5EÐ$FÓGˆÜ˜A˜q˜6¨Ô,ˆ	Ü˜A˜q˜6¨Ô,ˆ	ä
×Ñ˜w¨	Ô2Ü
×Ñ˜w¨	Õ2rN   c                 ó†   — t        ddgddgg«      j                  ddg«      j                  j                  «       }|dk(  sJ ‚y )Nr   r   r   )r   r   rH   Únunique)r   r3   s     r!   Útest_nunique_smokez&TestMultiIndexBasic.test_nunique_smoke¸   sB   € ä˜˜1�v  1˜vÐ&Ó'×1Ñ1°1°a°&Ó9×?Ñ?×GÑGÓIˆØ�AŠvˆ‰vrN   c           
      óÖ   — t        j                  t        ddgt        j                  ddgg«      «      j
                  g d¢   t        g d¢t        j                  g d¢g«      «      «       y )Nr   r   r)   rB   )r)   r)   rB   rB   )r   r   r   r   )r   r†   r   r   r0   r   )r   s    r!   Útest_multiindex_repeated_keysz1TestMultiIndexBasic.test_multiindex_repeated_keys½   sX   € ä
×ÑÜ�A�q�6œ:×1Ñ1°C¸°:°,Ó?Ó@×DÑDÚ$ñô ’<¤×!7Ñ!7Ò9MÐ8NÓ!OÓPõ		
rN   c                 ó®   — t        j                  g d¢g d¢g d¢dœ«      }t        j                  t        d¬«      5  |dg    d d d «       y # 1 sw Y   y xY w)NrZ   )r%   r*   r+   )é   é	   r   ))Úfoo)Úbar)NÚmissing_key)Úmatch)rœ   )r   Ú	from_dictÚpytestÚraisesÚKeyError)r   r    s     r!   Ú#test_multiindex_with_na_missing_keyz7TestMultiIndexBasic.test_multiindex_with_na_missing_keyÆ   sQ   € ä× Ñ â#Ú#Ú"ñó
ˆô �]‰]œ8¨=Ô9ñ 	#ØÐ Ð!Ò"÷	#÷ 	#ñ 	#ús   »AÁAc                 ój  — t        j                  dgddg¬«      }t        dg|¬«      j                  d«      }|d   }t	        |d	   j
                  t        «      sJ ‚t        d
dgdd
ggddgddgddgg¬«      j                  t        ddgd¬«      ¬«      }t	        |d   j
                  t        «      sJ ‚y )N©rh   rj   Úlvl1Úlvl2rX   Úvalue©ÚcolumnsÚcategoryrh   rj   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_preservationz6TestMultiIndexBasic.test_multiindex_dtype_preservationÒ   sÊ   € ä×(Ñ(¨*¨¸fÀfÐ=MÔNˆÜ˜�y¨'Ô2×9Ñ9¸*ÓEˆØ˜c™7ÐÜÐ*¨3Ñ/×5Ñ5Ô7GÔHÐHÐHô Ø�ˆV�a˜�VÐà˜�Ø˜ZÐ(Ø�c�
ðô
÷ ‰&”v˜t U˜m°9Ô=ˆ&Ó
>ð 	ô ˜"˜W™+×+Ñ+¬\Ô:Ð:Ñ:rN   c                 ó  — t        j                  dt        j                  dg«      }t        j                  dt        j                  t        j                  t        j                  fdg«      }t	        j
                  ||«       y )NrA   )ÚdÚ r·   )r   r~   r   rI   r   rr   )r   rK   rL   s      r!   Ú$test_multiindex_from_tuples_with_nanz8TestMultiIndexBasic.test_multiindex_from_tuples_with_nanä   s\   € ä×'Ñ'¨¼"¿&¹&À-Ð(PÓQˆÜ×)Ñ)ØœrŸv™v¤r§v¡v¬r¯v©vÐ6¸ÐFó
ˆô 	×Ñ˜f hÕ/rN   Ú	operation)ÚdivÚmulÚaddÚsubc                 óÌ  — t        g d¢g d¢g d¢gg d¢¬«      }|d   j                  d«      |d<   |d   j                  j                  dd	d
œ«      |d<   |j	                  ddg¬«      d   j                  «       }|j	                  ddg¬«      j                  «       } t        ||«      |«      } t        ||«      |j                  d¬«      «      }t        j                  ||«       y )N)ÚCrj   rj   )rj   rh   rh   )rj   rh   rj   )Ú0Ú1Ú2r¨   rÀ   rª   rj   r¿   )r¿   rj   rÁ   )ÚbyrÂ   F)Ú	ascending)r   r°   rz   Úrename_categoriesÚgroupbyÚvalue_countsÚsizeÚgetattrÚ
sort_indexr   r†   )r   r¹   Údatar)   rB   rK   rL   s          r!   Ú9test_groupyby_rename_categories_operation_with_multiindexzMTestMultiIndexBasic.test_groupyby_rename_categories_operation_with_multiindexì   sÕ   € ô ÚšoªÐ?Êô
ˆð ˜‘I×$Ñ$ ZÓ0ˆˆS‰	Ø˜‘I—M‘M×3Ñ3¸#ÀCÑ4HÓIˆˆS‰	à�L‰L˜S #˜JˆLÓ'¨Ñ,×9Ñ9Ó;ˆØ�L‰L˜S #˜JˆLÓ'×,Ñ,Ó.ˆà&”˜˜IÓ& qÓ)ˆØ(”7˜1˜iÓ(¨¯©À¨Ó)FÓGˆä
×Ñ˜v xÕ0rN   c                 óL  — t        j                  dg«      }t        t        d«      D �cg c]  }|g‘Œ c}|¬«      }|j	                  «       }|j	                  «       }|d   j                  d«      j                  «       }|j	                  «       }|j	                  «       }||d<   ||d<   t        j                  ||«       ||d<   t        j                  ||«       t        j                  ||«       ||d<   t        j                  ||«       t        j                  ||«       y c c}w )Nr¤   r   r¨   rh   r   r¿   )r¿   r·   )	r   r~   r   rn   r`   ÚrollingÚmeanr   rJ   )	r   ÚcolsÚiÚdf1rd   re   Ús1Ús2Ús3s	            r!   Ú/test_multiindex_assign_aligns_as_implicit_tuplezCTestMultiIndexBasic.test_multiindex_assign_aligns_as_implicit_tupleý   só   € ä×%Ñ% z lÓ3ˆÜ¤e¨A£hÖ/ ˜!šÒ/¸Ô>ˆØ�h‰h‹jˆØ�h‰h‹jˆØ�‰X×Ñ˜aÓ ×%Ñ%Ó'ˆØ�W‰W‹YˆØ�W‰W‹YˆàˆˆC‰ØˆˆI‰Ü
×Ñ˜c 3Ô'àˆˆC‰Ü
×Ñ˜c 3Ô'Ü
×Ñ˜c 3Ô'àˆˆC‰Ü
×Ñ˜c 3Ô'Ü
×Ñ˜c 3Õ'ùò# 0s   ©
D!c           	      óh  — t        j                  g d¢t        j                  g d¢«      g«      }t	        |t
        ¬«      }|d   j                  d«      |d<   t	        t        g t
        ¬«      t        g t
        ¬«      t        g d¬«      t        g d¬«      dœ|¬«      }t        j                  ||«       y )	N)r)   r)   r   r   )r   r   r   r   )r©   r®   r   Úint64r­   ))r)   r   )r)   r   )r   r   )r   r   )rË   r©   )
r   r0   rP   ÚCategoricalr   Úobjectr°   r   r   rJ   )r   r©   ÚmetarK   s       r!   Ú6test_multiindex_assign_alignment_with_non_string_dtypezJTestMultiIndexBasic.test_multiindex_assign_alignment_with_non_string_dtype  s—   € ä×(Ñ(Ú!¤2§>¡>²,Ó#?Ð@ó
ˆô  ´Ô7ˆØ˜‘I×$Ñ$ WÓ-ˆˆS‰	ää  ¬6Ô2Ü  ¬6Ô2Ü  ¨7Ô3Ü  ¨7Ô3ñ	ð ô
ˆô 	×Ñ˜d FÕ+rN   N)Ú__name__Ú
__module__Ú__qualname__r"   rŸ   ÚmarkÚparametrizer5   rM   rR   rf   rs   rx   r�   r�   r‘   r”   r–   r¢   r´   r¸   rÌ   rÖ   rÜ   © rN   r!   r
   r
      s¢   „ òð  ‡[�[×Ñ˜X¨¨A wÓ/ñ$ó 0ð$ò0ò.,ò,-ò&'ò0ò*,ò3ò3òò

ò
#ò;ò$0ð ‡[�[×Ñ˜[Ò*FÓGñ1ó Hð1ò (ó,,rN   r
   )Únumpyr   rŸ   Úpandas._libs.indexÚ_libsrH   r.   ÚpandasrP   r   r   r   r   r   Úpandas._testingÚ_testingr   Úpandas.core.arrays.booleanr   r
   râ   rN   r!   ú<module>rê      s2   ðÛ Û ç %Ð %ã ÷õ õ Ý 3÷T,ò T,rN   