o
    �¨Êhjœ  ã                   @   s  d Z ddlZddlmZ ddlZddlZddlZddlZddlm	Z	 ddl
mZ ddlmZmZmZ ddlZddlmZmZmZmZmZmZmZ ddlmZ ddlmZ dd	lmZ G d
d„ dƒZ G dd„ dƒZ!G dd„ dƒZ"G dd„ dƒZ#dd„ Z$dd„ Z%ej& 'dedgƒdfeg d¢e(dƒd�dfg¡dd„ ƒZ)dd „ Z*ej& 'd!ddd"ge dd"g¡e d#dd"g¡g¡d$d%„ ƒZ+ej& 'd!ddd"ge dd"g¡e d#dd"g¡g¡d&d'„ ƒZ,ej& 'd!d(d)ge d)g¡e d*d)g¡g¡d+d,„ ƒZ-ej& 'd!d(d)ge d)g¡e d*d)g¡g¡d-d.„ ƒZ.d/d0„ Z/dS )1z test fancy indexing & misc é    N)Údatetime)Úusing_pyarrow_string_dtype)ÚIndexingError)Úis_float_dtypeÚis_integer_dtypeÚis_object_dtype)Ú	DataFrameÚIndexÚNaTÚSeriesÚ
date_rangeÚoffsetsÚtimedelta_range)Ú_mklbl)Úgen_objc                   @   sd  e Zd ZdZdd„ Zdd„ Zej d¡dd„ ƒZ	ej d	¡d
d„ ƒZ
dd„ Zdd„ Zdd„ Zej dddg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zej d!g d"¢ed#ƒg¡d$d%„ ƒZd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zejjeƒ d4d5�d6d7„ ƒZ d8d9„ Z!d:d;„ Z"d<d=„ Z#d>d?„ Z$d@dA„ Z%dBdC„ Z&ej dDe'j(e'j)g¡dEdF„ ƒZ*dGS )HÚ	TestFancyz"pure get/set item & fancy indexingc                 C   sö   t tt dd¡tjd�d�}tjdtjd�|d< tjdtd�|d< d}tj	t
|d	�� t g d
¢¡|j|jdd… df< W d   ƒ n1 sFw   Y  t g d
¢¡|j|jdd… df< |j|jdd… df }tg d
¢g d¢dd�}t ||¡ d S )Né   é   ©Údtype©Úindexé
   ÚfooÚbarú@Must have equal len keys and value when setting with an iterable©Úmatch)y        ¤p=
×£@y®Gáz®ó?š™™™™™¹?gš™™™™™@ç      ð?é   é   é   )é   é   r    r!   ©r   Úname)r   r	   ÚnpÚarangeÚint64ÚzerosÚfloat64ÚcomplexÚpytestÚraisesÚ
ValueErrorÚarrayÚlocr   r   ÚtmÚassert_series_equal)ÚselfÚdfÚmsgÚresultÚexpected© r8   úU/var/www/html/env/lib/python3.10/site-packages/pandas/tests/indexing/test_indexing.pyÚtest_setitem_ndarray_1d*   s   $ÿ"ÿz!TestFancy.test_setitem_ndarray_1dc                 C   sŒ   t tt dd¡ƒd�}tjdtjd�|d< tjdtd�|d< d}tjt	|d	�� t dd
¡d |dd…< W d   ƒ d S 1 s?w   Y  d S )Nr   r   r   r   r   r   r   r   r   r#   y              ð?r   r    )
r   r	   r&   r'   r)   r*   r+   r,   r-   r.   )r3   r4   r5   r8   r8   r9   Útest_setitem_ndarray_1d_2@   s   "ÿz#TestFancy.test_setitem_ndarray_1d_2zPignore:Series.__getitem__ treating keys as positions is deprecated:FutureWarningc                 C   s¨  t ||ƒ}||ƒ}tj d¡jddd�}g }|tu r.|tjtjfv r.| 	d¡ |r.| 	d¡ |tu s7|tju rC| 	d¡ |rC| 	d¡ |tj
u sQ|tu rV|tju rV| 	d	¡ |tu rd|tju rd| 	d
¡ t|tjƒrt|tju rt| 	d
¡ t|tjtjtjfƒr„| 	d¡ t|ƒdks�t|tjƒr•| 	d¡ t|ƒtu r¬t|jtjƒs¬| 	d¡ | 	d¡ d |¡}	tttf}
tj|
|	d�� ||  W d   ƒ d S 1 sÍw   Y  d S )Nr   r    ©r   r   r   ©Úsizez8Wrong number of dimensions. values.ndim > ndim \[3 > 1\]z$Passed array should be 1-dimensionalú;Buffer has wrong number of dimensions \(expected 1, got 3\)zindexer should be 1-dimensionalz&Cannot index with multidimensional keyú Index data must be 1-dimensionalúData must be 1-dimensionalr   z%positional indexers are out-of-boundszvalues must be a 1D arrayz only handle 1-dimensional arraysú|r   )r   r&   ÚrandomÚdefault_rngÚintegersr   r1   ÚsetitemÚilocÚappendr0   r   Ú
isinstanceÚpdÚIntervalIndexÚTimedeltaIndexÚDatetimeIndexÚPeriodIndexÚlenÚ
MultiIndexÚtyper	   Ú_valuesÚndarrayÚjoinÚ
IndexErrorr.   ÚNotImplementedErrorr,   r-   )r3   r   Úframe_or_seriesÚindexer_sliÚusing_array_managerÚobjÚidxrÚnd3Úmsgsr5   Úpotential_errorsr8   r8   r9   Útest_getitem_ndarray_3dL   s>   















"ÿz!TestFancy.test_getitem_ndarray_3dzPignore:Series.__setitem__ treating keys as positions is deprecated:FutureWarningc           	      C   s’   t ||ƒ}||ƒ}tj d¡jddd�}|tju r"t}d|j› �}n	t}d 	g d¢¡}t
j||d�� d	||< W d   ƒ d S 1 sBw   Y  d S )
Nr   r    r<   r=   zCannot set values with ndim > rB   )r?   zCannot set values with ndim > 1r@   rA   z,Array conditional must be same shape as selfr   r   )r   r&   rC   rD   rE   r1   rG   r.   ÚndimrT   r,   r-   )	r3   r   rW   rX   rZ   r[   r\   Úerrr5   r8   r8   r9   Útest_setitem_ndarray_3dz   s   

ÿ

"ÿz!TestFancy.test_setitem_ndarray_3dc                 C   sf   t  d¡}tddgddggƒ}|| }tddgdd�}t ||¡ tddgƒ}|| }|dks1J ‚d S )Nr   r   r   r"   r#   ©r%   )r&   r/   r   r   r1   r2   )r3   Úkeyr4   r6   r7   Úserr8   r8   r9   Útest_getitem_ndarray_0d–   s   
z!TestFancy.test_getitem_ndarray_0dc                 C   sp   t dgd�}d|jd< d|jd< d|jtj< |jtjdf dks"J ‚|j}tddtjgtjd�}t ||¡ d S )Nr   ©Úcolumnsr   r   r"   r   )	r   r0   r&   Úinfr   r	   r*   r1   Úassert_index_equal©r3   r4   r6   r7   r8   r8   r9   Útest_inf_upcast¥   s   

zTestFancy.test_inf_upcastc                 C   s¤   t ddidddœgƒ}tj|d< |d jtjksJ ‚tjtdd�� d	|jd
< W d   ƒ n1 s1w   Y  t ddgtjdgt	d	tjgt
d�dœƒ}t ||¡ d S )NÚar   r"   r   ©rm   ÚbÚcúitem of incompatible dtyper   r   )r   rp   r   ©rm   ro   rp   )r   r&   Únanr   r*   r1   Úassert_produces_warningÚFutureWarningr0   r   ÚobjectÚassert_frame_equal©r3   r4   r7   r8   r8   r9   Útest_setitem_dtype_upcast·   s   
ÿý"ÿz#TestFancy.test_setitem_dtype_upcastÚvalg…ëQ¸	@Úwxyzc                 C   s¼   t tjddd� dd¡tdƒg d¢d�}| ¡ }tjtd	d
�� ||j	d< W d   ƒ n1 s/w   Y  t d|dgg d¢gtdƒg d¢d�}t 
||¡ t|d ƒsTJ ‚t|d ƒs\J ‚d S )Nr!   r(   r   r   r"   Úab©r   r   Úbaz©r   rh   rq   r   ©rm   r   r   ©r"   r#   r    r   r~   )r   r&   r'   ÚreshapeÚlistÚcopyr1   rt   ru   r0   rw   r   )r3   rz   r4   ÚleftÚrightr8   r8   r9   Útest_setitem_dtype_upcast2Æ   s&   ýÿýýz$TestFancy.test_setitem_dtype_upcast2c                 C   s¶   t tjddd� dd¡d tdƒg d¢d	�}tjtd
d�� d|jd< W d   ƒ n1 s-w   Y  t g d¢g d¢gtdƒg d¢d	�}t 	||¡ t
|d ƒsQJ ‚t
|d ƒsYJ ‚d S )Nr!   r(   r   r   r"   g      $@r|   r}   r   rq   r   r{   r€   )r   r{   gš™™™™™É?)g333333Ó?gš™™™™™Ù?g      à?r   r~   )r   r&   r'   r‚   rƒ   r1   rt   ru   r0   rw   r   )r3   r…   r†   r8   r8   r9   Útest_setitem_dtype_upcast3Þ   s$   ýÿýýz$TestFancy.test_setitem_dtype_upcast3c                 C   s@   t t d¡g d¢d�}|ddg j}tg d¢ƒ}t ||¡ d S )Nr"   )rm   rm   ro   rg   ro   rm   )ro   rm   rm   )r   r&   Úeyerh   r	   r1   rj   rk   r8   r8   r9   Útest_dups_fancy_indexingó   s   z"TestFancy.test_dups_fancy_indexingc                 C   sb   t g d¢gtdƒd�}t g d¢gƒ}tdƒ|_|jd d …df  |jd d …df  t ||¡ d S )N)r   r   r   ç       @ç      @r   r   Úaaaaaaarg   r#   )r   rƒ   rh   rG   r1   rw   ©r3   r4   r6   r8   r8   r9   Ú&test_dups_fancy_indexing_across_dtypesû   s   
z0TestFancy.test_dups_fancy_indexing_across_dtypesc                 C   s  t g d¢g d¢tdƒdœg d¢d�}ddg}t d	d
gddgddgdœ|d�}|j| }t ||¡ |jt|ƒ }t ||¡ g d¢}tjtdd�� |j|  W d   ƒ n1 sYw   Y  g d¢}tjtdd�� |j|  W d   ƒ d S 1 szw   Y  d S )N©r    é   é	   r   )ç      @r    r!   r‘   Úabcd)ÚtestÚtest1Úother©ÚAr™   ÚBÚCr   r›   rš   r   r’   g      @r!   Údrp   )r›   rš   ÚEúnot in indexr   )ÚFÚGÚHr›   rš   r�   )	r   rƒ   r0   r1   rw   r	   r,   r-   ÚKeyError)r3   r4   Úrowsr7   r6   r8   r8   r9   Ú%test_dups_fancy_indexing_not_in_order  s(   þÿ
ÿ"ÿz/TestFancy.test_dups_fancy_indexing_not_in_orderc                 C   s®   t tj d¡ d¡tdƒd�}|r4tjtt	 
d¡d�� |jdg  W d   ƒ d S 1 s-w   Y  d S tjtt	 
d¡d�� |jdg  W d   ƒ d S 1 sPw   Y  d S )	Nr   )r    r"   ÚAABCDr   z;"None of [Index(['E'], dtype='string')] are in the [index]"r   r�   z;"None of [Index(['E'], dtype='object')] are in the [index]")r   r&   rC   rD   Ústandard_normalrƒ   r,   r-   r¢   ÚreÚescaper0   )r3   Úusing_infer_stringÚdfnur8   r8   r9   Ú+test_dups_fancy_indexing_only_missing_label   s(   ÿÿþ"úÿþ"úz5TestFancy.test_dups_fancy_indexing_only_missing_labelÚvals)r   r   r   Úabcc                 C   sN   t d|iƒ}tjtdd�� |jg d¢  W d   ƒ d S 1 s w   Y  d S )Nr™   rž   r   )r   é   r   ©r   r,   r-   r¢   r0   )r3   r¬   r4   r8   r8   r9   Ú&test_dups_fancy_indexing_missing_label6  s   "ÿz0TestFancy.test_dups_fancy_indexing_missing_labelc                 C   sZ   t dg d¢ig d¢d�}tjtdd�� |jg d¢  W d   ƒ d S 1 s&w   Y  d S )Nr•   r�   r˜   r   rž   r   )r™   r™   r�   r¯   ©r3   r4   r8   r8   r9   Ú#test_dups_fancy_indexing_non_unique=  s   "ÿz-TestFancy.test_dups_fancy_indexing_non_uniquec                 C   sh   t tj d¡ d¡g d¢d�}tjtdd�� |jd d …g d¢f  W d   ƒ d S 1 s-w   Y  d S )Nr   )r    r    )r™   rš   rš   rš   r™   rg   rž   r   )r™   rš   r›   )	r   r&   rC   rD   r¦   r,   r-   r¢   r0   r±   r8   r8   r9   Útest_dups_fancy_indexing2C  s   þ"ÿz#TestFancy.test_dups_fancy_indexing2c                 C   s®   t tj d¡ d¡g d¢ddgd�}|jdd… }|jd	dg }t ||¡ |}|jd d …ddgf }t ||¡ |jdd…d d …f }|jd	dgddgf }t ||¡ d S )
Nr   )r’   r   )	r   r   r   r   r   r   r"   r"   r"   rm   ro   r   r   r!   r   )	r   r&   rC   rD   r¦   rG   r0   r1   rw   )r3   r4   r7   r6   r8   r8   r9   Útest_dups_fancy_indexing3N  s   ýz#TestFancy.test_dups_fancy_indexing3c                 C   sF   t tdƒg d¢d�}t tdƒddgd�}||ƒdg }t ||¡ d S )Nr"   ©r   r   r"   r   r   r   )r   Úranger1   r2   )r3   Ú
indexer_slre   r7   r6   r8   r8   r9   Útest_duplicate_int_indexingb  s   z%TestFancy.test_duplicate_int_indexingc                 C   s|   t ddddœddddœdœƒ}|d	  d
d„ ¡|d< |d dk}|j|d	f  dd„ ¡}||j|df< |jd dks<J ‚d S )NÚaaaÚbbbÚccc©r   r   r"   éo   éÞ   iM  rn   rm   c                 S   ó   | dkrdS | S )Nr¹   Ú_r8   ©Úxr8   r8   r9   Ú<lambda>p  ó    z9TestFancy.test_indexing_mixed_frame_bug.<locals>.<lambda>r•   rÀ   c                 S   r¿   )Nr¹   ú-----r8   rÁ   r8   r8   r9   rÃ   t  rÄ   )r   r   rÅ   )r   Úapplyr0   rG   )r3   r4   ÚidxÚtempr8   r8   r9   Útest_indexing_mixed_frame_bugi  s   ÿz'TestFancy.test_indexing_mixed_frame_bugc                 C   s„   t tj d¡ d¡dgg d¢ d�}tjtt d¡d�� |g d¢  W d   ƒ n1 s-w   Y  |d	 j	d
 |j	d
 ks@J ‚d S )Nr   )r   r    rm   )é   é   é   é   rg   z'[26, -8] not in index'r   )rÌ   é   iøÿÿÿrË   r   )
r   r&   rC   rD   r,   r-   r¢   r§   r¨   Úshaper±   r8   r8   r9   Ú test_multitype_list_index_accessx  s   ÿÿ z*TestFancy.test_multitype_list_index_accessc                 C   sÎ   t ddddddddddd	d
dddœdddtjtjtjtjdtjtjtjtjtjtjdœdddddddddddddddœdddd d d d d d d d d d d!dœd"œƒ ¡ }| g d#¢¡ ¡ j|jd$�}t ||¡ d S )%NÚnonQCÚ10Ú11Ú12Ú13Ú24Ú35Ú46Ú47Ú48Ú59)é   é   é   rÊ   rË   rÌ   rÍ   é   é   rÎ   é   é   é   é   ç        r   g¨o™ÓeÑ@gm7Á7M @g,¹ŠÅo@g2¥ž�ë?gàšà@íì?gufÌn÷ê?g·µ…ç%é?gæT×Faç?g§ãÖI"ê?g+’ew7ê?gy7»ZÓé?gÌ9Ÿ•ê?g¸�Gp#¥é?g¼Cåºê?iÖ  i×  iØ  iÁ  iÂ  )ÚPRuidÚQCÚdataÚyear)ré   ræ   rç   rg   )	r   r&   rs   Úreset_indexÚ	set_indexÚreindexrh   r1   rw   rŽ   r8   r8   r9   Útest_set_index_nan‚  sŽ   òòòòÏÿC½FþÿzTestFancy.test_set_index_nanzcan't multiply arrow strings©Úreasonc              
   C   s8  t g d¢g d¢ttdƒƒttddƒƒdœƒ ddi¡}tj|jd< | ¡ }|j 	¡  }d	dg}|d
 }tj|jd< t dtjddddgg d¢t
g d¢ƒdddtjddgdœƒ}|j||f |j||f< t ||¡ t dtjddddgg d¢g d¢dddtjddgdœƒ}| ¡ }|j||f j|j||f< t ||¡ d S )N)rm   ro   rm   ro   rm   ro   )r   r   r   r   r   r   r!   é   )ÚFCÚPFÚcol1Úcol2rô   r*   ©r   r   ró   r   )r"   r"   rm   ro   )r   r   r#   r!   r®   r   r‘   é   rÊ   rÌ   )r   rƒ   r¶   Úastyper&   rs   rG   r„   rñ   Úisnar   r0   r1   rw   Úvalues)r3   r4   Údf2ÚmaskÚcolsÚdftr7   r8   r8   r9   Útest_multi_assignÐ  sD   
üÿ
ù
üÿ
üÿzTestFancy.test_multi_assignc                 C   s„   t g d¢g d¢g d¢g d¢dœƒ}| ¡ }|d dk}dD ]}|d |j||f< q|d  ¡ |j|d dkdd	gf< t ||¡ d S )
N)r   r   r   r   r   )r   r   r   r   r   )r"   r#   r    r!   r‘   )r™   rš   r›   ÚDr™   r   ©r™   rš   rÿ   rš   )r   r„   r0   r1   rw   )r3   r4   r7   rû   Úcolr8   r8   r9   Ú"test_multi_assign_broadcasting_rhs  s   üÿ	"z,TestFancy.test_multi_assign_broadcasting_rhsc                 C   s^   t ddgdgd�}g d¢|jd< ddg|jd< t ddgdgd�}ddg|jd< t ||¡ d S )Nr   r   r   r¼   rõ   r   )r   rG   r1   rw   rŽ   r8   r8   r9   Útest_setitem_list  s   zTestFancy.test_setitem_listc                 C   sœ   t dgtt d¡gtd�ƒ}|jjsJ ‚tjt	dd�� |d  W d   ƒ n1 s*w   Y  tjt	dd�� |j
d  W d   ƒ d S 1 sGw   Y  d S )Nr   z
2011-01-01r   ú'2011'r   Ú2011©r  r   )r   r	   rJ   Ú	Timestamprv   r   Ú_is_all_datesr,   r-   r¢   r0   r±   r8   r8   r9   Útest_string_slice"  s   
ÿ"ÿzTestFancy.test_string_slicec                 C   s†   t ƒ }|jjr	J ‚tjtdd�� |d  W d   ƒ n1 sw   Y  tjtdd�� |jd  W d   ƒ d S 1 s<w   Y  d S )Nr  r   r  z^0$r  )r   r   r  r,   r-   r¢   r0   r±   r8   r8   r9   Útest_string_slice_empty.  s   
ÿ"ÿz!TestFancy.test_string_slice_emptyc                 C   s†  t g d¢gtdƒd�}| ¡ }|jd d …dd…f  tj¡|jd d …dd…f< t g d¢gtdƒd�}|sF|d  t¡|d< |d  t¡|d< t 	||¡ | ¡ }|j
d d …df  tj¡|j
d d …df< t g d	¢gtdƒd�}|sz|d  t¡|d< t 	||¡ | ¡ }|j
d d …dd
gf  tj¡|j
d d …dd
gf< t g d¢gtdƒd�}|s»|d  t¡|d< |d
  t¡|d
< t 	||¡ d S )N)Ú1Ú2Ú3ú.4r    ç      @r   ÚABCDEFGrg   r   r   )r   r   r  r  r    r  r   r™   rš   )r   r  r  r  r    r  r   r›   )r  r   r"   r  r    r  r   )r   rƒ   r„   rG   r÷   r&   r(   rv   r1   rw   r0   )r3   r©   Údf_origr4   r7   r8   r8   r9   Útest_astype_assignment9  s:   ÿ0ÿ(ÿ0ÿz TestFancy.test_astype_assignmentc                 C   sˆ   t dg d¢iƒ}|d  tj¡|jd d …df< t dg d¢iƒ}t ||¡ t dg d¢iƒ}|d  tj¡|jd d …df< t ||¡ d S )Nr™   )r   r‹   rŒ   r“   r   )r   r÷   r&   r(   rG   r1   rw   r0   rx   r8   r8   r9   Ú(test_astype_assignment_full_replacements`  s   z2TestFancy.test_astype_assignment_full_replacementsÚindexerc                 C   s~  t tdƒƒt tdƒtddƒd�fD ]W}t|jƒsJ ‚| ¡ }d||ƒd< t|jƒs+J ‚||ƒd dks5J ‚| ¡ }d||ƒd< |j}d|vrPt|j ¡ dg ƒ}t 	|j|¡ | ¡ }d||ƒd< t
|jƒshJ ‚qt tdƒt d	¡d�fD ]G}t|jƒs~J ‚| ¡ }d||ƒd< t|jƒs�J ‚||ƒd dks™J ‚| ¡ }d||ƒd< t 	|j|j¡ | ¡ }d||ƒd< t
|jƒs¼J ‚qud S )
Nr    r   r!   r   r   gš™™™™™¹?rå   Ú0g      @)r   r¶   r   r   r„   r   r	   Útolistr1   rj   r   r&   r'   )r3   r  ÚsÚs2Úexpr8   r8   r9   Útest_index_type_coercionn  s8   &	òz"TestFancy.test_index_type_coercionN)+Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   r;   r,   ÚmarkÚfilterwarningsr_   rb   rf   rl   ry   Úparametrizer‡   rˆ   rŠ   r�   r¤   r«   rƒ   r°   r²   r³   r´   r¸   rÉ   rÐ   rí   Úxfailr   rþ   r  r  r	  r
  r  r  r1   Úgetitemr0   r  r8   r8   r8   r9   r   '   sV    ÿ
*ÿ



Nÿ
0'r   c                
   @   s¾   e Zd Zdd„ Zdd„ Zdd„ Zejje	ƒ dd�d	d
„ ƒZ
ej deddƒe d¡d e ddd¡g¡dd„ ƒZdd„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZdd„ Zdd„ Zd d!„ Zd"S )#ÚTestMiscc                 C   s`   t tj d¡ d¡tj d¡ d¡dœƒ}d|d< t |d |d dgd dœƒ}t ||¡ d S )Nr   r   )rå   r   rm   rå   r   )rå   r   rm   )r   r&   rC   rD   r1   rw   rx   r8   r8   r9   Útest_float_index_to_mixedœ  s   þÿz"TestMisc.test_float_index_to_mixedc                 C   s^   t g d¢g d¢dœg d¢d�}d|j|jd d… < t g d¢g d	¢dœ|jd�}t ||¡ d S )
Nr¼   r�   rn   ©r   r‹   rŒ   r   r   r   rµ   )r   r   r    )r   r0   r   r1   rw   rx   r8   r8   r9   Ú&test_float_index_non_scalar_assignment¨  s   z/TestMisc.test_float_index_non_scalar_assignmentc                 C   sJ   t g d¢g d¢dœg d¢d�}| ¡ }|j|j |j|j< t ||¡ d S )Nr¼   r�   rn   r&  r   )r   r„   r0   r   r1   rw   ©r3   r4   rú   r8   r8   r9   Ú test_loc_setitem_fullindex_views®  s   z)TestMisc.test_loc_setitem_fullindex_viewszcan't set int into stringrî   c           	      C   sZ  dd„ }t  d¡ dd¡}g d¢}t||tdƒdd	�}d
|jddd…ddd…f  }| ¡ }g d¢|d< g d¢|d< |jdd…dd…f  d
9  < | ¡ }|jdd…dd…f  d
9  < |||||ƒ ||||fD ]}|d  d¡|d< |d  dd„ ¡|d< qig d¢|d< g d¢|d< t	j
tdd�� |||||ƒ W d   ƒ d S 1 s¦w   Y  d S )Nc                 S   s¦   t dƒg d¢tddƒ}}}ddgddgtddƒ}}}	|  ¡ }
||
j||f< t |
|¡ |  ¡ }
||
j||f< t |
|¡ |  ¡ }
||
j||	f< t |
|¡ d S )	NÚbcdr¼   r   r#   ÚjoeÚjolier   r"   )rƒ   Úslicer„   r0   r1   rw   rG   )r4   ÚrhsÚ	right_locÚ
right_ilocÚlbl_oneÚidx_oneÚ	slice_oneÚlbl_twoÚidx_twoÚ	slice_twor…   r8   r8   r9   Ú	run_tests¸  s   z.TestMisc.test_rhs_alignment.<locals>.run_testsrÊ   r    r#   )Újimr+  r,  ÚjolineÚabcder(   )rh   r   r   éþÿÿÿr"   r   éÿÿÿÿr   )r   é   r   r!   rÜ   r+  )r   é   r’   r    rÝ   r,  r   r*   c                 S   s
   d| › �S )Nú@r8   rÁ   r8   r8   r9   rÃ   Þ  s   
 z-TestMisc.test_rhs_alignment.<locals>.<lambda>)r   z@-28z@-20z@-12g      1@)z@2g      :Àg      2Àg      $Àz@18zincompatible dtyper   )r&   r'   r‚   r   rƒ   rG   r„   r÷   Úmapr1   rt   ru   )	r3   r7  Úxsrü   r4   r.  r0  r/  Úframer8   r8   r9   Útest_rhs_alignment´  s(   "ÿzTestMisc.test_rhs_alignmentrÇ   r™   rÊ   éd   é–   c                 C   sÂ   t j}t|ƒ}tt d¡|d�}t |||d d d… |dd d… ¡ t ||d |d d… |d dd… ¡ t |||d |d d… |ddd… ¡ t |||d |d d… |d d… ¡ d S )NrÊ   r   r’   r<  r®   r>  r   )rJ   Ú
IndexSlicer	   r   r&   r'   r1   Ú!assert_indexing_slices_equivalent)r3   rÇ   ÚSLCre   r8   r8   r9   Ú)test_str_label_slicing_with_negative_stepä  s   &&"ÿ,z2TestMisc.test_str_label_slicing_with_negative_stepc                 C   s\   |t  t|ƒ¡|d�}tjtdd�� ||ƒd d d…  W d   ƒ d S 1 s'w   Y  d S )Nr   zslice step cannot be zeror   r   )r&   r'   rO   r,   r-   r.   )r3   r   r·   rW   rZ   r8   r8   r9   Ú test_slice_with_zero_step_raisesó  s   "ÿz)TestMisc.test_slice_with_zero_step_raisesc                 C   s®   t g d¢dd�}tg d¢g d¢dœ|d�}| ¡ }dd	dœ}||jd
< dd	g|jd
< t ||¡ tg d¢g d¢dœ|d�}||jd
< tg d¢g d¢dœ|d�}t ||¡ d S )N)éûÿÿÿr   r    Úzrc   )r   r   r!   )r   r   r®   )rÂ   Úyr   r’   éc   r    )r‹   r‹   g       @)r   r   r’   )r‹   r‹   g     ÀX@)r	   r   r„   r0   r1   rw   )r3   r   r4   r7   r.  r8   r8   r9   Ú8test_loc_setitem_indexing_assignment_dict_already_existsø  s   


zATestMisc.test_loc_setitem_indexing_assignment_dict_already_existsc                 C   sr   t g d¢g d¢dœƒ}|jg d d …f }|jd d …df jtjks#J ‚t |jd d …df |jd d …df ¡ d S )Nr¼   )ro   Úb2Úb3rn   rm   r   )r   rG   r0   r   r&   r(   r1   r2   r(  r8   r8   r9   Ú*test_iloc_getitem_indexing_dtypes_on_empty  s   ,z3TestMisc.test_iloc_getitem_indexing_dtypes_on_emptyr>   )r    i?B i@B c                 C   st   t t|ƒtjd�}d|jtdƒ< t |jtdƒ t ddgd�¡ d|jtdƒ< t |jtdƒ t d	ddgd�¡ d S )
N)r   r   é*   r   g      E@r   r   é+   r   g     €E@)r   r¶   r&   r*   r0   r1   r2   )r3   r>   r  r8   r8   r9   Ú!test_loc_range_in_series_indexing  s
    &z*TestMisc.test_loc_range_in_series_indexingc                 C   s�   t t d¡ dd¡tdƒtdƒd�}t dtdƒtdƒd�}|| ¡  }t t d	d
tjgddtjgtjgd g¡tdƒtdƒd�}t 	||¡ d S )Ng      "@r"   r­   ÚABCr   r   r|   ÚABrå   r   rŒ   r“   )
r   r&   r'   r‚   rƒ   Únotnullr/   rs   r1   rw   )r3   r4   Úindex_dfr6   r7   r8   r8   r9   Ú#test_partial_boolean_frame_indexing  s   ÿ&ýz,TestMisc.test_partial_boolean_frame_indexingc                 C   sH   t ddgddgdœƒ}dD ]}t||ƒ qt |¡}~|ƒ d u s"J ‚d S )Nr   r   r   r"   rn   )r0   rG   ÚatÚiat)r   ÚgetattrÚweakrefÚref)r3   r4   r%   Úwrr8   r8   r9   Útest_no_reference_cycle(  s   
z TestMisc.test_no_reference_cyclec                 C   sN   t ddd|gƒ}|jdd�}|j| }|| }d}||ksJ ‚||ks%J ‚d S )Nr   z{1,2}F)Údropna)r   Úvalue_countsr0   )r3   Únulls_fixturer4   ÚvcÚresult1Úresult2r7   r8   r8   r9   Útest_label_indexing_on_nan0  s   
z#TestMisc.test_label_indexing_on_nanN)r  r  r  r%  r'  r)  r,   r  r"  r   rC  r!  r   r&   r'   ÚlinspacerI  rJ  rO  rR  rU  rZ  ra  rh  r8   r8   r8   r9   r$  ›  s$    
/$ÿ


r$  c                	   @   sÎ   e Zd Zg d¢ejddgefg d¢ejddgdfedd	d	ƒedd	dƒedd	dƒgeedd	dƒedd	dƒgdfg d
¢g d¢dfgZe	j
 de¡dd„ ƒZe	j
 de¡dd„ ƒZe	j
 de¡dd„ ƒZdd„ ZdS )ÚTestDataframeNoneCoercionr¼   r   r"   r&  r‹   rŒ   NéÐ  r   r}   )Nr   r~   r7   c                 C   sB   |\}}}t d|iƒ}d |jddgf< t d|iƒ}t ||¡ d S ©Nr   r   ©r   r0   r1   rw   ©r3   r7   Ú
start_dataÚexpected_resultÚwarnÚstart_dataframeÚexpected_dataframer8   r8   r9   Útest_coercion_with_locK  s
   
z0TestDataframeNoneCoercion.test_coercion_with_locc                 C   sJ   |\}}}t d|iƒ}d ||d |d d k< t d|iƒ}t ||¡ d S rl  )r   r1   rw   rn  r8   r8   r9   Ú(test_coercion_with_setitem_and_dataframeU  s
   
zBTestDataframeNoneCoercion.test_coercion_with_setitem_and_dataframec                 C   sL   |\}}}t d|iƒ}d |j|d |d d k< t d|iƒ}t ||¡ d S rl  rm  rn  r8   r8   r9   Ú$test_none_coercion_loc_and_dataframe_  s
   
z>TestDataframeNoneCoercion.test_none_coercion_loc_and_dataframec              	   C   s’   t g d¢g d¢tdddƒtdddƒtdddƒgg d¢dœƒ}d |jd	< t tjddgtjd
dgttdddƒtdddƒgg d¢dœƒ}t ||¡ d S )Nr¼   r&  rk  r   r   r"   rr   )rm   ro   rp   rœ   r   r‹   rŒ   )Nro   rp   )r   r   rG   r&   rs   r
   r1   rw   )r3   rr  r  r8   r8   r9   Útest_none_coercion_mixed_dtypesi  s     üÿ


üÿz9TestDataframeNoneCoercion.test_none_coercion_mixed_dtypes)r  r  r  r&   rs   ru   r   r
   ÚEXPECTED_SINGLE_ROW_RESULTSr,   r  r!  rt  ru  rv  rw  r8   r8   r8   r9   rj  <  s      ýõ
	
	
	rj  c                
   @   sÐ   e Zd Zdd„ Zej deej	e
j	e
jeg¡ej dddgeddƒe 	g d¢¡g¡d	d
„ ƒƒZej dde d¡g¡dd„ ƒZej deej	e
j	e
jeg¡ej dddgeddƒe 	g d¢¡g¡dd„ ƒƒZdS )ÚTestDatetimelikeCoercionc                 C   s‚   |}t dd|d�}t|jdd�ƒ}|j}d}| |¡ |||ƒd< |d u r8|j|jks-J ‚|jj|ju s6J ‚d S |j|u s?J ‚d S )Nú
2016-01-01r"   ©ÚperiodsÚtzT©Údeepz
2018-01-01r   )r   r   r„   rR   Ú_validate_setitem_valuer   Ú_ndarray)r3   Útz_naive_fixturerX   r}  Údtire   rù   Únewvalr8   r8   r9   Útest_setitem_dt64_string_scalar€  s   
z8TestDatetimelikeCoercion.test_setitem_dt64_string_scalarÚboxrd   r   r   r   )TTFc           
      C   s¨   |}t |tƒr|tju rtddƒ}tdd|d�}t|jdd�ƒ}|j}|dd	gƒ}	| |	¡ |	||ƒ|< |d u rK|j	|j	ks@J ‚|jj
|j
u sIJ ‚d S |j|u sRJ ‚d S )
Nr   r   rz  r"   r{  Tr~  z
2019-01-01z
2010-01-02)rI   r-  r1   r0   r   r   r„   rR   r€  r   r�  )
r3   r‚  rX   rd   r†  r}  rƒ  re   rù   Únewvalsr8   r8   r9   Útest_setitem_dt64_string_values•  s   

z8TestDatetimelikeCoercion.test_setitem_dt64_string_valuesÚscalarz3 Daysr#   c                 C   sN   t ddd�}t|jdd�ƒ}|j}| |¡ |||ƒd< |jj|ju s%J ‚d S )Nú1 Dayr"   ©r|  Tr~  r   )r   r   r„   rR   r€  r�  )r3   rX   r‰  Útdire   rù   r8   r8   r9   Útest_setitem_td64_scalar±  s   
z1TestDatetimelikeCoercion.test_setitem_td64_scalarc                 C   sx   t |tƒr|tju rtddƒ}tddd�}t|jdd�ƒ}|j}|dd	gƒ}| |¡ |||ƒ|< |jj	|j	u s:J ‚d S )
Nr   r   rŠ  r"   r‹  Tr~  z10 Daysz44 hours)
rI   r-  r1   r0   r   r   r„   rR   r€  r�  )r3   rX   rd   r†  rŒ  re   rù   r‡  r8   r8   r9   Útest_setitem_td64_string_values½  s   

z8TestDatetimelikeCoercion.test_setitem_td64_string_valuesN)r  r  r  r…  r,   r  r!  rƒ   r&   r/   rJ   ÚCategoricalr	   r-  rˆ  r   ÚHourr�  rŽ  r8   r8   r8   r9   ry    s    ÿ
ÿry  c                  C   s‚   t tjddgdd�tjddgdd�dœdd	gd
�} ttjddgdd�ddgdd�}| jd }t ||¡ | jd }t ||¡ d S )Nr   r   ÚInt64r   r"   r#   r   rm   ro   r   r™   rš   r$   r   )r   rJ   r/   r   r0   r1   r2   rG   )r4   r7   r6   r8   r8   r9   Ú"test_extension_array_cross_sectionÒ  s   þû 

r’  c                  C   sì   t tjddgdd�tjddgdd�dœddgd	�} | jd }tddgdd
dgdd�}t ||¡ | jd }t ||¡ t tjddgdd�t ddg¡dœddgd	�} | jd }tddgt	d
dgdd�}t ||¡ | jd }t ||¡ d S )Nr   r   r‘  r   r(   r   rm   ro   r   r™   rš   )r   r   r%   r   )
r   rJ   r/   r&   r0   r   r1   r2   rG   rv   )r4   r6   r7   r8   r8   r9   Ú+test_extension_array_cross_section_convertsã  s(   þû

 þ

r“  z	ser, keysr   )r   r   r¼   r­   r   )r   r   c                 C   s˜   t d}}tj||d�� || ƒ|  W d   ƒ n1 sw   Y  |tjkr,td}}tj||d�� d|| ƒ|< W d   ƒ d S 1 sEw   Y  d S )NzToo many indexersr   ztoo many indices for arrayr   )r   r,   r-   r1   rG   rU   )re   ÚkeysÚ
indexer_liÚexp_errÚexp_msgr8   r8   r9   Ú'test_ser_tup_indexer_exceeds_dimensions   s   
ÿ

"ÿr˜  c                 C   sB   t dgƒ}| |ƒddg }t ddgtddgƒd�}t ||¡ d S )Nr   r   r   )r   r	   r1   r2   )r•  re   Úresr  r8   r8   r9   Ú(test_ser_list_indexer_exceeds_dimensions  s   
rš  Úvaluer   ro   c                 C   s´   t dg d¢iƒ}d ddg¡}tjt|d�� | |jd< W d   ƒ n1 s&w   Y  t g d¢tjg d¢td	�d
œƒ}tjtdd�� | |jd< W d   ƒ d S 1 sSw   Y  d S )Nr™   r¼   rB   z"Must have equal len keys and valueú(setting an array element with a sequencer   ©r   rš   ©r   rm   ro   r   r   )	r   rT   r,   r-   r.   r0   r&   r/   rv   )r›  r4   r5   r8   r8   r9   Ú%test_scalar_setitem_with_nested_value  s   þÿÿ "ÿrŸ  c                 C   sž   t g d¢ƒ}tjtdd�� | ||ƒd< W d   ƒ n1 sw   Y  t g d¢td�}| ||ƒd< t| tjƒrD|jd | k 	¡ sBJ ‚d S |jd | ksMJ ‚d S )Nr¼   rœ  r   r   rž  r   )
r   r,   r-   r.   rv   rI   r&   rS   r0   Úall)r›  rX   re   r8   r8   r9   Ú,test_scalar_setitem_series_with_nested_value6  s   ÿr¡  )rå   rå   rœ   c                 C   s¨   t dg d¢iƒ}| |jd< t g d¢dtjtjgdœƒ}t ||¡ t g d¢tjg d¢td�dœƒ}| |jd< t| tj	ƒrI|jd | k 
¡ sGJ ‚d S |jd | ksRJ ‚d S )Nr™   r¼   r�  rå   r   rž  r   )r   r0   r&   rs   r1   rw   r/   rv   rI   rS   r   )r›  r4   r7   r8   r8   r9   Ú-test_scalar_setitem_with_nested_value_length1H  s   
 
r¢  c                 C   sÐ   t g d¢ƒ}t| tjƒr| ||ƒd< t g d¢ƒ}t ||¡ ntjtdd�� | ||ƒd< W d   ƒ n1 s7w   Y  t g d¢t	d�}| ||ƒd< t| tjƒr]|j
d | k ¡ s[J ‚d S |j
d | ksfJ ‚d S )Nr&  r   )rå   r‹   rŒ   rœ  r   rž  r   )r   rI   r&   rS   r1   r2   r,   r-   r.   rv   r0   r   )r›  rX   re   r7   r8   r8   r9   Ú4test_scalar_setitem_series_with_nested_value_length1]  s   ÿýr£  c                  C   s‚   t dddgd�} t ƒ | d< t ƒ | jd< t | jd t ƒ ¡ t | jd t ƒ ¡ t dddgd�}t ƒ |jd< t |jd t ƒ ¡ d S )NÚOrm   ro   )r   r   r   )r   r0   r1   r2   rG   )Ús1r  r8   r8   r9   Ú+test_object_dtype_series_set_series_elementx  s   
r¦  )0r  r/   r   r§   r^  Únumpyr&   r,   Úpandas._configr   Úpandas.errorsr   Úpandas.core.dtypes.commonr   r   r   ÚpandasrJ   r   r	   r
   r   r   r   r   Úpandas._testingÚ_testingr1   Úpandas.tests.indexing.commonr   Ú!pandas.tests.indexing.test_floatsr   r   r$  rj  ry  r’  r“  r  r!  rƒ   r˜  rš  rŸ  r¡  r¢  r£  r¦  r8   r8   r8   r9   Ú<module>   sb    $	    x "CS$þ

&ÿ
&ÿ
 ÿ
 ÿ
