Ë
    ômxi‘(  ã                   ód   — d dl Zd dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
mZ d dlmZ  G d„ d«      Zy)é    N)Úusing_string_dtype)Ú	DataFrameÚ
RangeIndexÚSeriesÚconcatÚ
date_rangec                   óŽ  — e Zd Zd„ Zd„ Zej                  j                  dddg«      ej                  j                  dg g d¢g«      d„ «       «       Zej                  j                  d	e	j                  e	j                  e	j                  fe	j                  e	j                  e	j                  fd
e	j                  e	j                  fd
e	j                  e	j                  fde	j                  e	j                  fde	j                  e	j                  fddg«      d„ «       Zej                  j                  dg d¢«      d„ «       Zej                  j                  dg d¢«      ej                  j                  dg d¢«      d„ «       «       Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  j/                   e«       d¬«      d„ «       Zd„ Zd„ Zd„ Zd „ Zy)!ÚTestEmptyConcatc                 ó$  — t        t        j                  j                  d«      j	                  d«      t        d«      ¬«      }|d d j                  «       }d|d<   |dd }||||dd  g}t        |d|¬	«      }|j                  g d
¢¬«      }|d   j                  |st        nd«      |d<   d|j                  dd…df<   t        j                  ||«       t        dt        d«      it        ddd¬«      ¬«      }t        «       }t        ||gd¬«      }	t        j                  |	|«       t        ||gd¬«      }	t        j                  |	|«       t        ||g«      }	t        j                  |	|«       t        ||g«      }	t        j                  |	|«       y )Né   )é
   é   Úabcd©Úcolumnsé   ÚbarÚfoor   )ÚaxisÚsort)ÚaÚbÚcÚdr   Ústrr   ÚAi'  Ú20130101Ús)ÚperiodsÚfreq©Úindexé   ©r   )r   ÚnpÚrandomÚdefault_rngÚstandard_normalÚlistÚcopyr   ÚreindexÚastypeÚobjectÚlocÚtmÚassert_frame_equalÚranger   )
Úselfr   Úusing_infer_stringÚdfÚdfcopyÚemptyÚframesÚ	concattedÚexpectedÚresults
             ú]/home/htdocs/ttos/venv/lib/python3.12/site-packages/pandas/tests/reshape/concat/test_empty.pyÚtest_handle_empty_objectsz)TestEmptyConcat.test_handle_empty_objects   sy  € ÜÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈFÃ|ô
ˆð �B�Q�—‘“ˆØˆˆu‰Ø�1�Q�ˆà˜% ¨¨1¨2¨Ð/ˆÜ˜6¨°Ô5ˆ	à—:‘:Ò&A�:ÓBˆØ" 5™/×0Ñ0Ù,�F°%ó
ˆ�‰ð $)ˆ�‰�Q�q�S˜%�ZÑ ä
×Ñ˜i¨Ô2ô Ø”%˜“,Ð¤z°*ÀeÐRUÔ'Vô
ˆô “ˆÜ˜˜U˜¨!Ô,ˆÜ
×Ñ˜f bÔ)Ü˜ ˜¨!Ô,ˆÜ
×Ñ˜f bÔ)ä˜˜U˜Ó$ˆÜ
×Ñ˜f bÔ)Ü˜ ˜Ó$ˆÜ
×Ñ˜f bÕ)ó    c                 ó.  — t        g d¢d¬«      }t        dd¬«      }t        ||gd¬«      }t        g d¢t        j                  t        j                  t        j                  gd	œt        d
«      ¬«      }t        j                  ||«       t        g d¢d¬«      }t        dd¬«      }d}t        j                  t        |¬«      5  t        ||gd¬«      }d d d «       t        g d¢«      }t        j                  ||«       t        g d¢d¬«      }t        d d¬«      }t        ||gd¬«      }t        g d¢t        j                  t        j                  t        j                  gdœddgt        d
«      ¬«      }t        j                  ||«       y # 1 sw Y   Œ¹xY w)N©r#   r   é   Úx)ÚnameÚyÚfloat64)rB   Údtyper#   r$   )rA   rC   r@   r!   zDThe behavior of array concatenation with empty entries is deprecated)Úmatchr   )rA   r   )r   r"   )r   r   r   r%   Únanr   r/   r0   Úassert_produces_warningÚFutureWarningÚassert_series_equal)r2   Ús1Ús2ÚresÚexpÚmsgs         r;   Útest_concat_empty_seriesz(TestEmptyConcat.test_concat_empty_series6   sE  € ä’I CÔ(ˆÜ˜ IÔ.ˆÜ�b˜"�X AÔ&ˆÜÚ¤2§6¡6¬2¯6©6´2·6±6Ð":Ñ;Ü˜Q“-ô
ˆô 	×Ñ˜c 3Ô'ä’I CÔ(ˆÜ˜ IÔ.ˆØTˆÜ×'Ñ'¬¸SÔAñ 	+Ü˜"˜b˜¨Ô*ˆC÷	+ô ’YÓˆÜ
×Ñ˜s CÔ(ô ’I CÔ(ˆÜ˜ YÔ/ˆÜ�b˜"�X AÔ&ˆÜÚ¤§¡¬¯©´·±Ð 8Ñ9Ø˜!�HÜ˜Q“-ô
ˆô
 	×Ñ˜c 3Õ'÷	+ð 	+ús   ÃFÆFÚtzNÚUTCÚvaluesr?   c                 óv  — t        g d¬«      j                  j                  |«      }|rd nt        j                  }t        ||¬«      }t        t        t        j                  gt        |«      z  d¬«      j                  j                  |«      |dœ«      }t        ||gd¬«      }t        j                  ||«       y )NúM8[ns]©rE   )r   r#   r#   r$   )r   ÚdtÚtz_localizer%   rD   r   ÚpdÚNaTÚlenr   r/   r0   )r2   rQ   rS   ÚfirstrE   Úsecondr9   r:   s           r;   Ú!test_concat_empty_series_timelikez1TestEmptyConcat.test_concat_empty_series_timelikeU   s™   € ô
 �r Ô*×-Ñ-×9Ñ9¸"Ó=ˆÙ‘¤B§J¡JˆÜ˜ eÔ,ˆääœ2Ÿ6™6˜(¤S¨£[Ñ0¸ÔA×DÑD×PÑPÐQSÓTØñó
ˆô ˜ ˜¨aÔ0ˆÜ
×Ñ˜f hÕ/r=   zleft,right,expectedúm8[ns]rU   )Úcategoryr`   r`   )r`   r-   r-   c                 óh   — t        t        |¬«      t        |¬«      g«      }|j                  |k(  sJ ‚y ©NrV   )r   r   rE   )r2   ÚleftÚrightr9   r:   s        r;   Útest_concat_empty_series_dtypesz/TestEmptyConcat.test_concat_empty_series_dtypesg   s/   € ô$ œ dÔ+¬V¸%Ô-@ÐAÓBˆØ�|‰|˜xÒ'Ð'Ñ'r=   rE   )rD   Úint8Úuint8Úboolr_   rU   c                 óà   — t        j                  |«      }t        t        |¬«      g«      }|j                  |k(  sJ ‚t        t        |¬«      t        |¬«      g«      }|j                  |k(  sJ ‚y rb   )r%   rE   r   r   )r2   rE   r:   s      r;   Ú0test_concat_empty_series_dtypes_match_roundtripsz@TestEmptyConcat.test_concat_empty_series_dtypes_match_roundtrips|   s`   € ô —‘˜“ˆäœ eÔ,Ð-Ó.ˆØ�|‰|˜uÒ$Ð$Ð$äœ eÔ,¬f¸5Ô.AÐBÓCˆØ�|‰|˜uÒ$Ð$Ñ$r=   )rD   rf   rg   r_   rU   Údtype2c                 ó2  ‡‡— ||k(  rt        j                  d«       d„ Šd„ Šˆˆfd„}t        j                  |«      }t        j                  |«      } |||«      }t	        t        |¬«      t        |¬«      g«      j                  }|j                  |k(  sJ ‚y )Nz%same dtype is not applicable for testc                 óð   — | j                   |j                   h}t        |h d£z
  «      s| j                   dk(  s|j                   dk(  ryt        |ddhz
  «      s| j                   dk(  s|j                   dk(  ryy )N>   r   ÚiÚurn   ro   r   ©Úkindr[   ©rE   rk   Útypss      r;   Úint_result_typezSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.int_result_type’   si   € Ø—J‘J §¡Ð,ˆDÜ�tšoÑ-Ô.Ø—
‘
˜cÒ! V§[¡[°CÒ%7àÜ˜  c 
Ñ*Ô+Ø—
‘
˜cÒ! V§[¡[°CÒ%7àØr=   c                 ó’   — | j                   |j                   h}t        |h d£z
  «      s| j                   dk(  s|j                   dk(  ryy )N>   Úfrn   ro   rv   rp   rr   s      r;   Úfloat_result_typezUTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.float_result_typež   s>   € Ø—J‘J §¡Ð,ˆDÜ�tšoÑ-Ô.Ø—
‘
˜cÒ! V§[¡[°CÒ%7àØr=   c                 ó:   •—  ‰| |«      }|�|S  ‰| |«      }|�|S y)NÚO© )rE   rk   r:   rw   rt   s      €€r;   Úget_result_typezSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.get_result_type¦   s4   ø€ Ù& u¨fÓ5ˆFØÐ!Ø�Ù$ U¨FÓ3ˆFØÐ!Ø�Ør=   rV   )ÚpytestÚskipr%   rE   r   r   rq   )r2   rE   rk   r{   r9   r:   rw   rt   s         @@r;   Ú*test_concat_empty_series_dtypes_roundtripsz:TestEmptyConcat.test_concat_empty_series_dtypes_roundtripsˆ   s‚   ù€ ð �FŠ?Ü�K‰KÐ?Ô@ò
	ò	õ	ô —‘˜“ˆÜ—‘˜&Ó!ˆÙ" 5¨&Ó1ˆÜœ eÔ,¬f¸6Ô.BÐCÓD×JÑJˆØ�{‰{˜hÒ&Ð&Ñ&r=   c                 óÎ   — t        t        d¬«      t        t        j                  ¬«      t        t        j                  ¬«      g«      j
                  t        j                  k(  sJ ‚y )NrU   rV   )r   r   r%   Úbool_Úint64rE   Úobject_©r2   s    r;   Ú&test_concat_empty_series_dtypes_triplez6TestEmptyConcat.test_concat_empty_series_dtypes_tripleµ   sF   € äÜ˜hÔ'¬´b·h±hÔ)?ÄÌbÏhÉhÔAWÐXóç‰eÜ�z‰zòð	
ñr=   c                 óŒ   — t        t        t        j                  g «      d¬«      t        d¬«      g«      j                  dk(  sJ ‚y )Nr`   rV   rD   )r   r   r%   ÚarrayrE   rƒ   s    r;   Ú2test_concat_empty_series_dtype_category_with_arrayzBTestEmptyConcat.test_concat_empty_series_dtype_category_with_array½   s?   € ô ÜœŸ™ ›¨JÔ7¼ÀiÔ9PÐQóç‰eØòð	
ñr=   c                 ó  — t        t        d¬«      j                  d«      t        d¬«      j                  d«      g«      }|j                  dk(  sJ ‚t        t        d¬«      j                  d«      t        d¬«      g«      }t	        j
                  t        j                  «      }|j                  |k(  sJ ‚t        t        d¬«      j                  d«      t        d¬«      g«      }t	        j
                  d«      }|j                  |k(  sJ ‚y )NrD   rV   ÚSparsezSparse[float64]r-   )r   r   r,   rE   rY   ÚSparseDtyper%   rD   )r2   r:   r9   s      r;   Ú&test_concat_empty_series_dtypes_sparsez6TestEmptyConcat.test_concat_empty_series_dtypes_sparseÆ   sâ   € Üä˜YÔ'×.Ñ.¨xÓ8Ü˜YÔ'×.Ñ.¨xÓ8ðó
ˆð �|‰|Ð0Ò0Ð0Ð0äÜ˜)Ô$×+Ñ+¨HÓ5´vÀIÔ7NÐOó
ˆô —>‘>¤"§*¡*Ó-ˆØ�|‰|˜xÒ'Ð'Ð'äÜ˜)Ô$×+Ñ+¨HÓ5´vÀHÔ7MÐNó
ˆô —>‘> (Ó+ˆØ�|‰|˜xÒ'Ð'Ñ'r=   c                 óæ   — t        g d¢t        j                  g d¢dœ«      }t        |j                  ¬«      }t	        ||gd¬«      }|j                  t        «      }t        j                  ||«       y )N)r   r#   r#   r?   )ÚRowÚEmptyColÚ	NumberColr   r   r$   )	r   r%   rG   r   r   r,   r-   r/   r0   )r2   Údf_1Údf_2r:   r9   s        r;   Ú!test_concat_empty_df_object_dtypez1TestEmptyConcat.test_concat_empty_df_object_dtypeÛ   sS   € ä¢¼¿¹ÊYÑWÓXˆÜ §¡Ô.ˆÜ˜˜t˜¨1Ô-ˆØ—;‘;œvÓ&ˆÜ
×Ñ˜f hÕ/r=   c                 ó  — t        t        d«      ¬«      }|d   j                  t        j                  «      |d<   |d   j                  t        j
                  «      |d<   |d   j                  t        j                  «      |d<   t        ||g«      }|d   j                  t        j                  k(  sJ ‚|d   j                  t        j
                  k(  sJ ‚|d   j                  t        j                  k(  sJ ‚t        ||j                  t        j                  «      g«      }|d   j                  t        j                  k(  sJ ‚|d   j                  t        j                  k(  sJ ‚|d   j                  t        j                  k(  sJ ‚y )NÚabcr   r   r   r   )
r   r)   r,   r%   r€   Úint32rD   r   rE   r‚   )r2   r4   r:   s      r;   Ú"test_concat_empty_dataframe_dtypesz2TestEmptyConcat.test_concat_empty_dataframe_dtypesã   s0  € Üœt E›{Ô+ˆØ�S‘'—.‘.¤§¡Ó*ˆˆ3‰Ø�S‘'—.‘.¤§¡Ó*ˆˆ3‰Ø�S‘'—.‘.¤§¡Ó,ˆˆ3‰ä˜˜R˜Ó!ˆØ�c‰{× Ñ ¤B§H¡HÒ,Ð,Ð,Ø�c‰{× Ñ ¤B§H¡HÒ,Ð,Ð,Ø�c‰{× Ñ ¤B§J¡JÒ.Ð.Ð.ä˜˜RŸY™Y¤r§z¡zÓ2Ð3Ó4ˆØ�c‰{× Ñ ¤B§J¡JÒ.Ð.Ð.Ø�c‰{× Ñ ¤B§J¡JÒ.Ð.Ð.Ø�c‰{× Ñ ¤B§J¡JÒ.Ð.Ñ.r=   zTODO(infer_string))Úreasonc                 ó
  — t        «       }t        dddgiddgd¬«      }t        dg it        d«      d¬«      }t        ||gdd¬«      }t        j                  ||«       t        ||gdd	¬«      }t        j                  ||«       y )
Nr   r#   r   r   r�   )r"   rE   Úinner)r   ÚjoinÚouter)r   r   r   r/   r0   )r2   Údf_emptyÚdf_aÚdf_expectedr:   s        r;   Útest_concat_inner_join_emptyz,TestEmptyConcat.test_concat_inner_join_emptyô   s�   € ô “;ˆÜ˜#  1˜v˜¨q°!¨f¸GÔDˆÜ  b 	´¸A³ÀgÔNˆä˜˜xÐ(¨q°wÔ?ˆÜ
×Ñ˜f kÔ2ä˜˜xÐ(¨q°wÔ?ˆÜ
×Ñ˜f dÕ+r=   c                 óÊ   — t        dd gdd ggddg¬«      }t        dd gdd ggddg¬«      }t        ||g«      }|j                  }t        j                  |j                  |«       y )Nr#   r   r   r   )Údatar   r@   r   )r   r   Údtypesr/   rJ   )r2   Údf1Údf2r:   r9   s        r;   Útest_empty_dtype_coercez'TestEmptyConcat.test_empty_dtype_coerce  si   € ô ˜q $˜i¨!¨T¨Ð3¸cÀ3¸ZÔHˆÜ˜q $˜i¨!¨T¨Ð3¸cÀ3¸ZÔHˆÜ˜˜c˜
Ó#ˆØ—:‘:ˆÜ
×Ñ˜vŸ}™}¨hÕ7r=   c                 ó8  — t        ddg¬«      }t        ddg¬«      }t        |||g«      }t        g d¢¬«      }t        j                  ||«       t        ddg¬«      }t        dg¬«      }t        ||g«      }t        ddg¬«      }t        j                  ||«       y )Nr   r   r   r   ©r   r   r   )r   r   r/   r0   )r2   r£   r¤   r:   r9   Údf3Údf4s          r;   Útest_concat_empty_dataframez+TestEmptyConcat.test_concat_empty_dataframe  sŽ   € ä  c 
Ô+ˆÜ  c 
Ô+ˆÜ˜˜c 3˜Ó(ˆÜ¢_Ô5ˆÜ
×Ñ˜f hÔ/ä  c 
Ô+ˆÜ  Ô&ˆÜ˜˜c˜
Ó#ˆÜ c¨3 ZÔ0ˆÜ
×Ñ˜f hÕ/r=   c                 óú   — t        g d¢g d¢dœ«      }t        dg d¢i«      }t        |d d |d d g«      }|d   j                  t        j                  k(  sJ ‚|s"|d   j                  t        j
                  k(  sJ ‚y y )Nr?   r§   )r   r   r   r   r   )r   r   rE   r%   r�   r‚   )r2   r3   r£   r¤   r:   s        r;   Ú,test_concat_empty_dataframe_different_dtypesz<TestEmptyConcat.test_concat_empty_dataframe_different_dtypes  sz   € äšiªoÑ>Ó?ˆÜ˜šiÐ(Ó)ˆä˜˜R˜a˜ # b q 'Ð*Ó+ˆØ�c‰{× Ñ ¤B§H¡HÒ,Ð,Ð,Ù6Hˆv�c‰{× Ñ ¤B§J¡JÒ.ÐSÐSÈeÐ.r=   c                 ó>  — t        dt        j                  g t        j                  «       ¬«      i«      }t        dt        j                  g d¢t        j                  «       ¬«      i«      }|j	                  «       }t        ||g«      }t        j                  ||«       y)z<48510 `concat` to an empty EA should maintain type EA dtype.r   rV   r?   N)r   rY   r†   Ú
Int64Dtyper*   r   r/   r0   )r2   rœ   Údf_newr9   r:   s        r;   Útest_concat_to_empty_eaz'TestEmptyConcat.test_concat_to_empty_ea%  sl   € ä˜c¤2§8¡8¨B´b·m±m³oÔ#FÐGÓHˆÜ˜C¤§¡ª)¼2¿=¹=»?Ô!KÐLÓMˆØ—;‘;“=ˆÜ˜ 6Ð*Ó+ˆÜ
×Ñ˜f hÕ/r=   )Ú__name__Ú
__module__Ú__qualname__r<   rP   r|   ÚmarkÚparametrizer^   r%   r€   r•   r‚   Úfloat32r�   re   rj   r~   r„   r‡   r‹   r’   r–   Úxfailr   rŸ   r¥   rª   r¬   r°   rz   r=   r;   r
   r
      sÄ  „ ò"*òH(ð> ‡[�[×Ñ˜T D¨% =Ó1Ø‡[�[×Ñ˜X¨ªI Ó7ñ0ó 8ó 2ð0ð  ‡[�[×ÑØð �X‰X�r—x‘x §¡Ð,Ø�X‰X�r—z‘z 2§:¡:Ð.à�r—x‘x §¡Ð,Ø�r—x‘x §¡Ð,Ø�r—x‘x §¡Ð,Ø�r—x‘x §¡Ð,à0Ø,ð	
óñ (ó!ð (ð
 ‡[�[×ÑØÒIóñ%óð%ð ‡[�[×Ñ˜WÒ&VÓWØ‡[�[×ÑØÚ8óñ&'ó	ó Xð
&'òP
ò
ò(ò*0ò/ð" ‡[�[×ÑÑ)Ó+Ð4HÐÓIñ
,ó Jð
,ò8ò0òTó0r=   r
   )Únumpyr%   r|   Úpandas._configr   ÚpandasrY   r   r   r   r   r   Úpandas._testingÚ_testingr/   r
   rz   r=   r;   ú<module>r½      s,   ðÛ Û å -ã ÷õ õ ÷Z0ò Z0r=   