o
    Û­j»œ  ã                   @   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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.d/„ Z-dS )0z test fancy indexing & misc é    N)Údatetime)ÚIndexingError)Úis_float_dtypeÚis_integer_dtypeÚis_object_dtype)Ú	DataFrameÚIndexÚNaTÚSeriesÚ
date_rangeÚoffsetsÚtimedelta_range)Ú_mklbl)Úgen_objc                   @   sR  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d4d5„ Zd6d7„ Zd8d9„ Z d:d;„ Z!d<d=„ Z"d>d?„ Z#d@dA„ Z$ej dBe%j&e%j'g¡dCdD„ ƒZ(dES )FÚ	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© r7   ú`/var/www/html/CropPilot/venv/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-   )r2   r3   r4   r7   r7   r8   Ú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
   r0   ÚsetitemÚilocÚappendr/   r   Ú
isinstanceÚpdÚIntervalIndexÚTimedeltaIndexÚDatetimeIndexÚPeriodIndexÚlenÚ
MultiIndexÚtyper   Ú_valuesÚndarrayÚjoinÚ
IndexErrorr-   ÚNotImplementedErrorr+   r,   )r2   r   Úframe_or_seriesÚindexer_sliÚusing_array_managerÚobjÚidxrÚnd3Úmsgsr4   Úpotential_errorsr7   r7   r8   Útest_getitem_ndarray_3dJ   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 > rA   )r>   zCannot set values with ndim > 1r?   r@   z,Array conditional must be same shape as selfr   r   )r   r%   rB   rC   rD   r0   rF   r-   ÚndimrS   r+   r,   )	r2   r   rV   rW   rY   rZ   r[   Úerrr4   r7   r7   r8   Útest_setitem_ndarray_3dx   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
   r0   r1   )r2   Úkeyr3   r5   r6   Úserr7   r7   r8   Ú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   r/   r%   Úinfr   r   r)   r0   Úassert_index_equal©r2   r3   r5   r6   r7   r7   r8   Ú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   ©rl   ÚbÚcúitem of incompatible dtyper   r   )r   ro   r   ©rl   rn   ro   )r   r%   Únanr   r)   r0   Úassert_produces_warningÚFutureWarningr/   r
   ÚobjectÚassert_frame_equal©r2   r3   r6   r7   r7   r8   Ú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   rg   rp   r   ©rl   r   r   ©r!   r"   r   r   r}   )r   r%   r&   ÚreshapeÚlistÚcopyr0   rs   rt   r/   rv   r   )r2   ry   r3   ÚleftÚrightr7   r7   r8   Ú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~   rp   r   rz   r   )r   rz   gš™™™™™É?)g333333Ó?gš™™™™™Ù?g      à?r   r}   )r   r%   r&   r�   r‚   r0   rs   rt   r/   rv   r   )r2   r„   r…   r7   r7   r8   Ú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!   )rl   rl   rn   rf   rn   rl   )rn   rl   rl   )r   r%   Úeyerg   r   r0   ri   rj   r7   r7   r8   Ú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   Úaaaaaaarf   r"   )r   r‚   rg   rF   r0   rv   ©r2   r3   r5   r7   r7   r8   Ú&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    Údro   )rš   r™   ÚEúnot in indexr   )ÚFÚGÚHrš   r™   rœ   )	r   r‚   r/   r0   rv   r   r+   r,   ÚKeyError)r2   r3   Úrowsr6   r5   r7   r7   r8   Ú%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   z8"None of [Index(['E'], dtype='str')] are in the [index]"r   rœ   z;"None of [Index(['E'], dtype='object')] are in the [index]")r   r%   rB   rC   Ústandard_normalr‚   r+   r,   r¡   ÚreÚescaper/   )r2   Úusing_infer_stringÚdfnur7   r7   r8   Ú+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¡   r/   )r2   r«   r3   r7   r7   r8   Ú&test_dups_fancy_indexing_missing_label4  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®   ©r2   r3   r7   r7   r8   Ú#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˜   rf   r�   r   )r˜   r™   rš   )	r   r%   rB   rC   r¥   r+   r,   r¡   r/   r°   r7   r7   r8   Útest_dups_fancy_indexing2A  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!   rl   rn   r~   r   r    r   )	r   r%   rB   rC   r¥   rF   r/   r0   rv   )r2   r3   r6   r5   r7   r7   r8   Útest_dups_fancy_indexing3L  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
   Úranger0   r1   )r2   Ú
indexer_slrd   r6   r5   r7   r7   r8   Útest_duplicate_int_indexing`  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  rm   rl   c                 S   ó   | dkrdS | S )Nr¸   Ú_r7   ©Úxr7   r7   r8   Ú<lambda>n  ó    z9TestFancy.test_indexing_mixed_frame_bug.<locals>.<lambda>r”   r¿   c                 S   r¾   )Nr¸   ú-----r7   rÀ   r7   r7   r8   rÂ   r  rÃ   )r   r   rÄ   )r   Úapplyr/   rF   )r2   r3   ÚidxÚtempr7   r7   r8   Útest_indexing_mixed_frame_bugg  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   rl   )é   é   é   é   rf   z'[26, -8] not in index'r   )rË   é   iøÿÿÿrÊ   r   )
r   r%   rB   rC   r+   r,   r¡   r¦   r§   Úshaper°   r7   r7   r8   Ú test_multitype_list_index_accessv  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æ   rf   )	r   r%   rr   Úreset_indexÚ	set_indexÚreindexrg   r0   rv   r�   r7   r7   r8   Útest_set_index_nan€  sŽ   òòòòÏÿC½FþÿzTestFancy.test_set_index_nanc              
   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)rl   rn   rl   rn   rl   rn   )r   r   r   r   r   r   r    é   )ÚFCÚPFÚcol1Úcol2rñ   r)   ©r   r   rð   r   )r!   r!   rl   rn   )r   r   r"   r    r­   r   r�   é   rÉ   rË   )r   r‚   rµ   Úastyper%   rr   rF   rƒ   rî   Úisnar
   r/   r0   rv   Úvalues)r2   r3   Údf2ÚmaskÚcolsÚdftr6   r7   r7   r8   Ú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ƒ   r/   r0   rv   )r2   r3   r6   rø   Úcolr7   r7   r8   Ú"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   rF   r0   rv   r�   r7   r7   r8   Ú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   rI   Ú	Timestampru   r   Ú_is_all_datesr+   r,   r¡   r/   r°   r7   r7   r8   Ú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¡   r/   r°   r7   r7   r8   Útest_string_slice_empty)  s   
ÿ"ÿz!TestFancy.test_string_slice_emptyc                 C   s¬  t g d¢gtdƒd�}|tdƒ  t¡|tdƒ< | ¡ }|jd d …dd…f  tj¡|jd d …dd…f< t g d¢gtdƒd�}|tdƒ  t¡|tdƒ< |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�}|tdƒ  t¡|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�}|tdƒ  t¡|tdƒ< t 	||¡ d S )N)Ú1Ú2Ú3ú.4r   ç      @r   ÚABCDEFGrf   ÚABCDGr   r   )r   r   r
  r  r   r  r   ÚCDGr˜   r™   )r   r	  r
  r  r   r  r   rš   )r  r   r!   r  r   r  r   )r   r‚   rô   ru   rƒ   rF   r%   r'   r0   rv   r/   )r2   r¨   Údf_origr3   r6   r7   r7   r8   Útest_astype_assignment4  s6   ÿ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'   rF   r0   rv   r/   rw   r7   r7   r8   Ú(test_astype_assignment_full_replacementsZ  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   Útolistr0   ri   r   r%   r&   )r2   r  ÚsÚs2Úexpr7   r7   r8   Útest_index_type_coercionh  s8   &	òz"TestFancy.test_index_type_coercionN))Ú__name__Ú
__module__Ú__qualname__Ú__doc__r9   r:   r+   ÚmarkÚfilterwarningsr^   ra   re   rk   rx   Úparametrizer†   r‡   r‰   rŽ   r£   rª   r‚   r¯   r±   r²   r³   r·   rÈ   rÏ   rì   rû   rÿ   r   r  r  r  r  r0   Úgetitemr/   r  r7   r7   r7   r8   r   %   sP    ÿ
*ÿ



N0&r   c                
   @   s¬   e Zd Zdd„ Zdd„ Zdd„ Z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   rl   rä   r   )rä   r   rl   )r   r%   rB   rC   r0   rv   rw   r7   r7   r8   Ú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€   rm   ©r   rŠ   r‹   r   r   r   r´   )r   r   r   )r   r/   r   r0   rv   rw   r7   r7   r8   Ú&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€   rm   r$  r   )r   rƒ   r/   r   r0   rv   ©r2   r3   r÷   r7   r7   r8   Ú test_loc_setitem_fullindex_views¨  s   z)TestMisc.test_loc_setitem_fullindex_viewsc           
   	   C   sÞ  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< |rÎt	j
tdd��/ tjtdd�� |||||ƒ W d   ƒ n1 s¯w   Y  W d   ƒ d S W d   ƒ d S 1 sÇw   Y  d S 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ƒ   r/   r0   rv   rF   )r3   ÚrhsÚ	right_locÚ
right_ilocÚlbl_oneÚidx_oneÚ	slice_oneÚlbl_twoÚidx_twoÚ	slice_twor„   r7   r7   r8   Ú	run_tests±  s   z.TestMisc.test_rhs_alignment.<locals>.run_testsrÉ   r   r"   )Újimr)  r*  ÚjolineÚabcder'   )rg   r   r   éþÿÿÿr!   r   éÿÿÿÿr   )r   é   r   r    rÛ   r)  )r   é   r‘   r   rÜ   r*  r   r)   c                 S   s
   d| › �S )Nú@r7   rÀ   r7   r7   r8   rÂ   ×  s   
 z-TestMisc.test_rhs_alignment.<locals>.<lambda>)r   z@-28z@-20z@-12g      1@)z@2g      :Àg      2Àg      $Àz@18zInvalid valuer   zincompatible dtype)r%   r&   r�   r   r‚   rF   rƒ   rô   Úmapr+   r,   Ú	TypeErrorr0   rs   rt   )
r2   r¨   r5  Úxsrù   r3   r,  r.  r-  Úframer7   r7   r8   Ú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   )rI   Ú
IndexSlicer   r
   r%   r&   r0   Ú!assert_indexing_slices_equivalent)r2   rÆ   ÚSLCrd   r7   r7   r8   Ú)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&   rN   r+   r,   r-   )r2   r   r¶   rV   rY   r7   r7   r8   Ú 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   Úzrb   )r   r   r    )r   r   r­   )rÁ   Úyr   r‘   éc   r   )rŠ   rŠ   g       @)r   r   r‘   )rŠ   rŠ   g     ÀX@)r   r   rƒ   r/   r0   rv   )r2   r   r3   r6   r,  r7   r7   r8   Ú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»   )rn   Úb2Úb3rm   rl   r   )r   rF   r/   r   r%   r'   r0   r1   r&  r7   r7   r8   Ú*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)   r/   r0   r1   )r2   r=   r  r7   r7   r8   Ú!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.   rr   r0   rv   )r2   r3   Úindex_dfr5   r6   r7   r7   r8   Ú#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!   rm   )r/   rF   ÚatÚiat)r   ÚgetattrÚweakrefÚref)r2   r3   r$   Úwrr7   r7   r8   Ú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_countsr/   )r2   Únulls_fixturer3   ÚvcÚresult1Úresult2r6   r7   r7   r8   Útest_label_indexing_on_nan0  s   
z#TestMisc.test_label_indexing_on_nanN)r  r  r  r#  r%  r'  rB  r+   r  r   r   r%   r&   ÚlinspacerH  rI  rN  rQ  rT  rY  r`  rg  r7   r7   r7   r8   r"  •  s"    6$ÿ


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}   r6   c                 C   sB   |\}}}t d|iƒ}d |jddgf< t d|iƒ}t ||¡ d S ©Nr   r   ©r   r/   r0   rv   ©r2   r6   Ú
start_dataÚexpected_resultÚwarnÚstart_dataframeÚexpected_dataframer7   r7   r8   Ú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 rk  )r   r0   rv   rm  r7   r7   r8   Ú(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 rk  rl  rm  r7   r7   r8   Ú$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$  rj  r   r   r!   rq   )rl   rn   ro   r›   r   rŠ   r‹   )Nrn   ro   )r   r   rF   r%   rr   r	   r0   rv   )r2   rq  r  r7   r7   r8   Útest_none_coercion_mixed_dtypesi  s     üÿ


üÿz9TestDataframeNoneCoercion.test_none_coercion_mixed_dtypes)r  r  r  r%   rr   rt   r   r	   ÚEXPECTED_SINGLE_ROW_RESULTSr+   r  r   rs  rt  ru  rv  r7   r7   r7   r8   ri  <  s      ýõ
	
	
	ri  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ƒ   rQ   Ú_validate_setitem_valuer   Ú_ndarray)r2   Útz_naive_fixturerW   r|  Údtird   rö   Únewvalr7   r7   r8   Útest_setitem_dt64_string_scalar€  s   
z8TestDatetimelikeCoercion.test_setitem_dt64_string_scalarÚboxrc   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   ry  r!   rz  Tr}  z
2019-01-01z
2010-01-02)rH   r+  r0   r/   r   r
   rƒ   rQ   r  r   r€  )
r2   r�  rW   rc   r…  r|  r‚  rd   rö   Únewvalsr7   r7   r8   Ú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ƒ   rQ   r  r€  )r2   rW   rˆ  Útdird   rö   r7   r7   r8   Ú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)
rH   r+  r0   r/   r   r
   rƒ   rQ   r  r€  )r2   rW   rc   r…  r‹  rd   rö   r†  r7   r7   r8   Útest_setitem_td64_string_values½  s   

z8TestDatetimelikeCoercion.test_setitem_td64_string_valuesN)r  r  r  r„  r+   r  r   r‚   r%   r.   rI   ÚCategoricalr   r+  r‡  r   ÚHourrŒ  r�  r7   r7   r7   r8   rx    s    ÿ
ÿrx  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ý   rl   rn   r   r˜   r™   r#   r   )r   rI   r.   r
   r/   r0   r1   rF   )r3   r6   r5   r7   r7   r8   Ú"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ý   rl   rn   r   r˜   r™   )r   r   r$   r   )
r   rI   r.   r%   r/   r
   r0   r1   rF   ru   )r3   r5   r6   r7   r7   r8   Ú+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,   r0   rF   rT   )rd   ÚkeysÚ
indexer_liÚexp_errÚexp_msgr7   r7   r8   Ú'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   r0   r1   )r”  rd   Úresr  r7   r7   r8   Ú(test_ser_list_indexer_exceeds_dimensions  s   
r™  Úvaluer   rn   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»   rA   z"Must have equal len keys and valueú(setting an array element with a sequencer   ©r   r™   ©r   rl   rn   r   rý   )	r   rS   r+   r,   r-   r/   r%   r.   ru   )rš  r3   r4   r7   r7   r8   Ú%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-   ru   rH   r%   rR   r/   Úall)rš  rW   rd   r7   r7   r8   Ú,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   r/   r%   rr   r0   rv   r.   ru   rH   rR   rŸ  )rš  r3   r6   r7   r7   r8   Ú-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
   rH   r%   rR   r0   r1   r+   r,   r-   ru   r/   rŸ  )rš  rW   rd   r6   r7   r7   r8   Ú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ÚOrl   rn   )r   r   r   )r
   r/   r0   r1   rF   )Ús1r  r7   r7   r8   Ú+test_object_dtype_series_set_series_elementx  s   
r¥  ).r  r.   r   r¦   r]  Únumpyr%   r+   Úpandas.errorsr   Úpandas.core.dtypes.commonr   r   r   ÚpandasrI   r   r   r	   r
   r   r   r   Úpandas._testingÚ_testingr0   Úpandas.tests.indexing.commonr   Ú!pandas.tests.indexing.test_floatsr   r   r"  ri  rx  r‘  r’  r  r   r‚   r—  r™  rž  r   r¡  r¢  r¥  r7   r7   r7   r8   Ú<module>   s`    $	    t (CS$þ

&ÿ
&ÿ
 ÿ
 ÿ
