U
    ÎZjÖ”  ã                   @   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 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 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dddg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S )0z test fancy indexing & misc é    N)Údatetime)ÚIndexingError)Úis_float_dtypeÚis_integer_dtype)Ú	DataFrameÚIndexÚNaTÚSeriesÚ
date_rangeÚoffsetsÚtimedelta_range)ÚFloat64Index)Ú_mklbl)Úgen_objc                   @   s<  e Zd ZdZdd„ Zdd„ Zdd„ Z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d d!d"g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¡ƒd�}tjdtjd�|d< tjdtd�|d< d}tjt	|d	��, t 
d
dddg¡|j|jdd… df< W 5 Q R X t 
d
dddg¡|j|jdd… df< |j|jdd… df }td
dddgddddgdd�}t ||¡ d S )Né   é   ©Úindexé
   ©ÚdtypeÚfooÚbarú@Must have equal len keys and value when setting with an iterable©Úmatchy        ¤p=
×£@y®Gáz®ó?š™™™™™¹?gš™™™™™@ç      ð?é   é   é   é   é   ©r   Úname)r   r   ÚnpÚarangeÚzerosÚfloat64ÚcomplexÚpytestÚraisesÚ
ValueErrorÚarrayÚlocr   r	   ÚtmÚassert_series_equal)ÚselfÚdfÚmsgÚresultÚexpected© r6   úf/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/indexing/test_indexing.pyÚtest_setitem_ndarray_1d(   s    0&
 
 ÿ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	��8 t
jtd
d	�� t dd¡d |dd…< W 5 Q R X W 5 Q R X d S )Nr   r   r   r   r   r   r   r   r   zlabel-basedr"   y              ð?r   r   )r   r   r%   r&   r'   r(   r)   r*   r+   r,   r/   Úassert_produces_warningÚFutureWarning)r1   r2   r3   r6   r6   r7   Útest_setitem_ndarray_1d_2>   s    z#TestFancy.test_setitem_ndarray_1d_2c              	   C   s–  t ||ƒ}||ƒ}tjjddd�}g }|tkrV|tjtjfkrV| d¡ |rV| d¡ |tksh|tjkr€| d¡ |r€| d¡ |tj	ksœ|tkr¦|tjkr¦| d¡ |t
krÂ|tjkrÂ| d	¡ t|tjƒrâ|tjkrâ| d	¡ t|tjtjtjfƒ�r| d
¡ t|ƒdk�s t|tjƒ�r*| d¡ t|ƒtk�r\t|jtjƒ�s\| d¡ | d¡ d |¡}	tttf}
tj|
|	d�� ||  W 5 Q R X d S )Nr   ©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Úrandintr	   r/   ÚsetitemÚilocÚappendr.   r   Ú
isinstanceÚpdZIntervalIndexZTimedeltaIndexZDatetimeIndexZPeriodIndexÚlenZ
MultiIndexÚtyper   Ú_valuesÚndarrayÚjoinÚ
IndexErrorr,   ÚNotImplementedErrorr*   r+   )r1   r   Úframe_or_seriesÚindexer_sliZusing_array_managerÚobjÚidxrÚnd3Zmsgsr3   Zpotential_errorsr6   r6   r7   Útest_getitem_ndarray_3dK   sB    





ÿÿ








z!TestFancy.test_getitem_ndarray_3dc           	   	   C   s|   t ||ƒ}||ƒ}tjjddd�}|tjkr>t}d|j› �}nt}d dddd	d
g¡}t	j
||d�� d||< W 5 Q R X d S )Nr   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   r/   rF   r,   ÚndimrN   r*   r+   )	r1   r   rQ   rR   rS   rT   rU   Úerrr3   r6   r6   r7   Útest_setitem_ndarray_3du   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sbt‚d S )Nr   r   r   r!   r"   ©r$   )r%   r-   r   r	   r/   r0   ÚAssertionError)r1   Úkeyr2   r4   r5   Úserr6   r6   r7   Útest_getitem_ndarray_0d�   s    
z!TestFancy.test_getitem_ndarray_0dc                 C   sj   t dgd�}d|jd< d|jd< d|jtj< |jtjdf dksDt‚|j}tddtjgƒ}t ||¡ d S )Nr   ©Úcolumnsr   r   r!   )	r   r.   r%   Úinfr[   r   r   r/   Úassert_index_equal©r1   r2   r4   r5   r6   r6   r7   Útest_inf_upcastœ   s    

zTestFancy.test_inf_upcastc                 C   sn   t ddidddœgƒ}tj|d< |d jtjks4t‚d|jd< t dtjdd	œddtjd	œgƒ}t ||¡ d S )
NÚar   r!   r   ©re   ÚbÚcr   )r   rh   )re   rg   rh   )	r   r%   Únanr   r(   r[   r.   r/   Úassert_frame_equal©r1   r2   r5   r6   r6   r7   Ú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ƒddd	gd
�}| ¡ }||jd< t d|dgdddggtdƒddd	gd
�}t ||¡ t	|d ƒs€t
‚t	|d	 ƒs�t
‚d S )Nr    Úint64r   r   r!   Úabr   r   Úbaz©r   r`   ©re   r   r   r"   r   )r   r%   r&   ÚreshapeÚlistÚcopyr.   r/   rj   r   r[   )r1   rm   r2   ÚleftÚrightr6   r6   r7   Útest_setitem_dtype_upcast2»   s    ý
ýz$TestFancy.test_setitem_dtype_upcast2c                 C   s�   t tjddd� dd¡d tdƒdd	d
gd�}d|jd< t dddgdddggtdƒdd	d
gd�}t ||¡ t|d ƒs|t	‚t|d
 ƒsŒt	‚d S )Nr    ro   r   r   r!   ç      $@rp   r   r   rq   rr   rn   rs   r   gš™™™™™É?g333333Ó?gš™™™™™Ù?g      à?)
r   r%   r&   rt   ru   r.   r/   rj   r   r[   )r1   rw   rx   r6   r6   r7   Útest_setitem_dtype_upcast3Ñ   s    ý
ýz$TestFancy.test_setitem_dtype_upcast3c                 C   sD   t  dd¡}dddg|_|ddg j}tdddgƒ}t  ||¡ d S )Nr   r!   re   rg   )r/   ZmakeCustomDataframer`   r   rb   rc   r6   r6   r7   Útest_dups_fancy_indexingã   s
    z"TestFancy.test_dups_fancy_indexingc                 C   s†   t dddddddggtdƒd	�}| ¡  t|ƒ t dddddddggƒ}tdƒ|_|jd d …d
f  |jd d …d
f  t ||¡ d S )Nr   r   r   ç       @ç      @r   r   Zaaaaaaar_   r"   )r   ru   ÚheadÚstrr`   rF   r/   rj   ©r1   r2   r4   r6   r6   r7   Ú&test_dups_fancy_indexing_across_dtypesí   s     
z0TestFancy.test_dups_fancy_indexing_across_dtypesc              	   C   sî   t ddddgddddgtdƒdœd	d	d
dgd�}dd
g}t ddgddgddgdœ|d�}|j| }t ||¡ |jt|ƒ }t ||¡ dd
dg}tjtdd�� |j|  W 5 Q R X ddddd
dg}tjtdd�� |j|  W 5 Q R X d S )Nr   é   é	   r   ç      @r    Úabcd)ÚtestZtest1ÚotherÚAÚBÚCr   g      @Údrh   ÚEúnot in indexr   ÚFÚGÚH)	r   ru   r.   r/   rj   r   r*   r+   ÚKeyError)r1   r2   Úrowsr5   r4   r6   r6   r7   Ú%test_dups_fancy_indexing_not_in_orderü   s&    
þ ÿ

z/TestFancy.test_dups_fancy_indexing_not_in_orderc              	   C   sJ   t tj dd¡tdƒd�}tjtt 	d¡d�� |j
dg  W 5 Q R X d S )Nr   r!   ZAABCDr   z;"None of [Index(['E'], dtype='object')] are in the [index]"r   r�   )r   r%   rC   Úrandnru   r*   r+   r’   ÚreÚescaper.   )r1   Zdfnur6   r6   r7   Ú+test_dups_fancy_indexing_only_missing_label  s    ÿþz5TestFancy.test_dups_fancy_indexing_only_missing_labelÚvalsr   r   r   Úabcc              	   C   s:   t d|iƒ}tjtdd�� |jdddg  W 5 Q R X d S )Nr‰   rŽ   r   r   é   ©r   r*   r+   r’   r.   )r1   r™   r2   r6   r6   r7   Ú&test_dups_fancy_indexing_missing_label!  s    z0TestFancy.test_dups_fancy_indexing_missing_labelc              	   C   sN   t dddddgiddddgd	�}tjtd
d�� |jdddg  W 5 Q R X d S )Nr‡   r   rƒ   r„   r   r‰   rŠ   r‹   r   rŽ   r   r�   rœ   ©r1   r2   r6   r6   r7   Ú#test_dups_fancy_indexing_non_unique)  s     z-TestFancy.test_dups_fancy_indexing_non_uniquec              	   C   sV   t tj dd¡dddddgd�}tjtdd�� |jd d …dddgf  W 5 Q R X d S )Nr   r‰   rŠ   r_   rŽ   r   r‹   )r   r%   rC   r•   r*   r+   r’   r.   rž   r6   r6   r7   Útest_dups_fancy_indexing20  s     z#TestFancy.test_dups_fancy_indexing2c                 C   s¸   t tj dd¡dddddddddg	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!   re   rg   rr   r   r    )r   r%   rC   r•   rF   r.   r/   rj   )r1   r2   r5   r4   r6   r6   r7   Útest_dups_fancy_indexing38  s      ÿz#TestFancy.test_dups_fancy_indexing3c                 C   sH   t tdƒdddgd�}t tdƒddgd�}||ƒdg }t ||¡ d S )Nr!   r   r   r   )r	   Úranger/   r0   )r1   Ú
indexer_slr]   r5   r4   r6   r6   r7   Útest_duplicate_int_indexingK  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sxt‚d S )NÚaaaÚbbbÚccc)r   r   r!   éo   éÞ   iM  rf   re   c                 S   s   | dkrdS | S )Nr¥   Ú_r6   ©Úxr6   r6   r7   Ú<lambda>Z  ó    z9TestFancy.test_indexing_mixed_frame_bug.<locals>.<lambda>r‡   rª   c                 S   s   | dkrdS | S )Nr¥   ú-----r6   r«   r6   r6   r7   r­   ^  r®   )r   r   r¯   )r   Úapplyr.   rF   r[   )r1   r2   ÚidxÚtempr6   r6   r7   Útest_indexing_mixed_frame_bugR  s    ÿz'TestFancy.test_indexing_mixed_frame_bugc              	   C   sp   t tj d¡dgddddg d�}tjtt d¡d	�� |dd
dg  W 5 Q R X |d jd |jd kslt	‚d S )N)r   r   re   é   é   é   é   r_   z'[26, -8] not in index'r   é   iøÿÿÿr   )
r   r%   rC   r*   r+   r’   r–   r—   Úshaper[   rž   r6   r6   r7   Ú test_multitype_list_index_accessb  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"œƒ ¡ }| d#d$d%g¡ ¡ j|jd&�}t ||¡ d S )'NZnonQCÚ10Z11Z12Z13Z24Z35Z46Z47Ú48Z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ÚyearrÊ   rÇ   rÈ   r_   )	r   r%   ri   Zreset_indexZ	set_indexZreindexr`   r/   rj   r�   r6   r6   r7   Útest_set_index_nanj  sˆ    òòòòÏÿFþÿzTestFancy.test_set_index_nanc              
   C   s^  t ddddddgddddddgttdƒƒttddƒƒdœƒ}tj|jd< | ¡ }|j ¡  }d	d
g}|d }tj|jd< t dtjddddgddddddgt	ddddddgƒdddtjddgdœƒ}|j
||f |j
||f< t ||¡ t dtjddddgddddddgddddddgdddtjddgdœƒ}| ¡ }|j
||f j|j
||f< t ||¡ d S )Nre   rg   r   r   r    é   )ÚFCZPFÚcol1Úcol2©r   r   rÎ   rÏ   r   )r!   r!   r"   r›   r   rƒ   é   r´   r¶   rÆ   r   r…   ç      @ç       @rz   )r   ru   r¢   r%   ri   rF   rv   rÍ   Zisnar	   r.   r/   rj   Úvalues)r1   r2   Údf2ÚmaskÚcolsZdftr5   r6   r6   r7   Útest_multi_assign¹  s@    
üÿüÿ
üÿzTestFancy.test_multi_assignc              	   C   s˜   t dddddgdddddgdddddgdddd	d
gdœƒ}| ¡ }|d dk}dD ]}|d |j||f< qR|d |j|d dkddgf< t ||¡ d S )Nr   r   r   r   r   r!   r"   r   r    rƒ   )r‰   rŠ   r‹   ÚDr‰   ©r‰   rŠ   rÙ   rŠ   )r   rv   r.   r/   rj   )r1   r2   r5   rÖ   Úcolr6   r6   r7   Ú"test_multi_assign_broadcasting_rhsé  s    üÿ	z,TestFancy.test_multi_assign_broadcasting_rhsc                 C   s`   t ddgdgd�}dddg|jd< ddg|jd< t ddgdgd�}ddg|jd< t ||¡ d S )Nr   r   rr   r   r!   rÐ   )r   rF   r/   rj   r�   r6   r6   r7   Útest_setitem_listü  s    zTestFancy.test_setitem_listc              	   C   sr   t dgtt d¡gtd�ƒ}|jjs(t‚tj	t
dd�� |d  W 5 Q R X tj	t
dd�� |jd  W 5 Q R X d S )Nr   z
2011-01-01r   ú'2011'r   Ú2011©rß   r   )r   r   rI   Ú	TimestampÚobjectr   Ú_is_all_datesr[   r*   r+   r’   r.   rž   r6   r6   r7   Útest_string_slice	  s    zTestFancy.test_string_slicec              	   C   s\   t ƒ }|jjrt‚tjtdd�� |d  W 5 Q R X tjtdd�� |jd  W 5 Q R X d S )NrÞ   r   rß   z^0$rà   )r   r   rã   r[   r*   r+   r’   r.   rž   r6   r6   r7   Útest_string_slice_empty  s    z!TestFancy.test_string_slice_emptyc              	   C   s  t dddddddggtdƒd	�}| ¡ }d
}tjt|d��6 |jd d …dd…f  tj	¡|jd d …dd…f< W 5 Q R X t dddddddggtdƒd	�}t 
||¡ | ¡ }tjt|d��8 |jd d …dd…f jddd�|jd d …dd…f< W 5 Q R X t dddddddggtdƒd	�}t 
||¡ | ¡ }tjt|d��. |jd d …df  tj	¡|jd d …df< W 5 Q R X t dddddddggtdƒd	�}t 
||¡ | ¡ }tjt|d��6 |jd d …ddgf  tj	¡|jd d …ddgf< W 5 Q R X t dddddddggtdƒd	�}t 
||¡ d S )NÚ1Ú2Ú3z.4r   rÒ   r   ZABCDEFGr_   ú.will attempt to set the values inplace insteadr   r   r   r   T)r   Únumericr‰   rŠ   r‹   r!   )r   ru   rv   r/   r9   r:   rF   Úastyper%   ro   rj   Ú_convertr.   )r1   Zdf_origr2   r3   r5   r6   r6   r7   Útest_astype_assignment   sJ     ÿ: ÿ< ÿ2 ÿ: ÿz TestFancy.test_astype_assignmentc              	   C   sà   t dddddgiƒ}d}tjt|d��$ |d  tj¡|jd d …df< W 5 Q R X t dd	d
ddgiƒ}t ||¡ t dddddgiƒ}tjt|d��$ |d  tj¡|j	d d …df< W 5 Q R X t dd	d
ddgiƒ}t ||¡ d S )Nr‰   r   r}   r~   r…   ré   r   r   r   r   r!   r"   )
r   r/   r9   r:   rë   r%   ro   rF   rj   r.   )r1   r2   r3   r5   r6   r6   r7   Ú(test_astype_assignment_full_replacementsI  s    ((z2TestFancy.test_astype_assignment_full_replacementsÚindexerc                 C   s‚  t tdƒƒt tdƒtddƒd�fD ]®}|j ¡ s4t‚| ¡ }d||ƒd< |j ¡ sVt‚||ƒd dksjt‚| ¡ }d||ƒd< |j}d|kr t|j ¡ dg ƒ}t	 
|j|¡ | ¡ }d||ƒd< |j ¡ s"t‚q"t tdƒt d	¡d�fD ]’}|j ¡ süt‚| ¡ }d||ƒd< |j ¡ �s t‚||ƒd dk�s6t‚| ¡ }d||ƒd< t	 
|j|j¡ | ¡ }d||ƒd< |j ¡ sêt‚qêd S )
Nr   r   r    r   r   gš™™™™™¹?rÆ   Ú0g      @)r	   r¢   r   Ú
is_integerr[   rv   Zis_floatingr   Útolistr/   rb   Z	is_objectr%   r&   )r1   rï   ÚsÚs2Úexpr6   r6   r7   Útest_index_type_coercionX  s6    
&z"TestFancy.test_index_type_coercionN)(Ú__name__Ú
__module__Ú__qualname__Ú__doc__r8   r;   rV   rY   r^   rd   rl   r*   ÚmarkÚparametrizery   r{   r|   r‚   r”   r˜   ru   r�   rŸ   r    r¡   r¤   r³   rº   rË   rØ   rÜ   rÝ   rä   rå   rí   rî   r/   Úgetitemr.   rö   r6   r6   r6   r7   r   %   sB   *


O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dddg¡dd„ ƒZdd„ Zdd„ Zd d!„ Zd"S )#ÚTestMiscc                 C   sT   t tj d¡tj d¡dœƒ}d|d< t |d |d dgd dœƒ}t ||¡ d S )Nr   )rÆ   r   re   rÆ   r   )rÆ   r   re   )r   r%   rC   Zrandr/   rj   rk   r6   r6   r7   Útest_float_index_to_mixed‰  s    z"TestMisc.test_float_index_to_mixedc                 C   sh   t dddgdddgdœddd	gd
�}d|j|jd d… < t dddgdddgdœ|jd
�}t ||¡ d S ©Nr   r   r!   r"   r   rf   r   r}   r~   r   )r   r.   r   r/   rj   rk   r6   r6   r7   Ú&test_float_index_non_scalar_assignment�  s    $ z/TestMisc.test_float_index_non_scalar_assignmentc                 C   sP   t dddgdddgdœddd	gd
�}| ¡ }|j|j |j|j< t ||¡ d S r   )r   rv   r.   r   r/   rj   ©r1   r2   rÕ   r6   r6   r7   Ú test_loc_setitem_fullindex_views–  s    $z)TestMisc.test_loc_setitem_fullindex_viewsc           	      C   sD  dd„ }t  d¡ dd¡}dddd	g}t||td
ƒdd�}d|jddd…ddd…f  }| ¡ }dddddg|d< dddddg|d< |jdd…dd…f  d9  < | ¡ }|jdd…dd…f  d9  < |||||ƒ ||||fD ]*}|d  d¡|d< |d  dj	¡|d< qâddddd g|d< d!d"d#d$d%g|d< |||||ƒ d S )&Nc                 S   s¨   t dƒdddgtddƒ  }}}ddgddgtddƒ  }}}	|  ¡ }
||
j||f< t |
|¡ |  ¡ }
||
j||f< t |
|¡ |  ¡ }
||
j||	f< t |
|¡ d S )NZbcdr   r   r!   r"   ÚjoeÚjolie)ru   Úslicerv   r.   r/   rj   rF   )r2   ÚrhsÚ	right_locÚ
right_ilocZlbl_oneZidx_oneZ	slice_oneZlbl_twoZidx_twoZ	slice_tworw   r6   r6   r7   Ú	run_testsŸ  s     z.TestMisc.test_rhs_alignment.<locals>.run_testsr´   r   r"   Zjimr  r  ZjolineZabcdero   )r`   r   r   éþÿÿÿr!   r   éÿÿÿÿr   r   é   r   r    r½   é   r„   r¾   r(   z@{}r   z@-28z@-20z@-12g      1@z@2g      :Àg      2Àg      $Àz@18)
r%   r&   rt   r   ru   rF   rv   rë   ÚmapÚformat)	r1   r
  Zxsr×   r2   r  r	  r  Úframer6   r6   r7   Ú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   Z
IndexSlicer   r	   r%   r&   r/   Z!assert_indexing_slices_equivalent)r1   r±   ZSLCr]   r6   r6   r7   Ú)test_str_label_slicing_with_negative_stepÊ  s    &&  ÿz2TestMisc.test_str_label_slicing_with_negative_stepc              	   C   sF   |t  t|ƒ¡|d�}tjtdd�� ||ƒd d d…  W 5 Q R X d S )Nr   zslice step cannot be zeror   r   )r%   r&   rJ   r*   r+   r,   )r1   r   r£   rQ   rS   r6   r6   r7   Ú test_slice_with_zero_step_raisesÙ  s    z)TestMisc.test_slice_with_zero_step_raisesc                 C   s¼   t dddgdd�}tdddgddd	gd
œ|d�}| ¡ }ddd
œ}||jd< ddg|jd< t ||¡ tdddgdddgd
œ|d�}||jd< tdddgdddgd
œ|d�}t ||¡ d S )Néûÿÿÿr   r   ÚzrZ   r   r   r    r›   )r¬   Úyr   r„   éc   r}   rÓ   g     ÀX@)r   r   rv   r.   r/   rj   )r1   r   r2   r5   r  r6   r6   r7   Ú8test_loc_setitem_indexing_assignment_dict_already_existsÞ  s    


zATestMisc.test_loc_setitem_indexing_assignment_dict_already_existsc                 C   sv   t dddgdddgdœƒ}|jg d d …f }|jd d …df jtjksJt‚t |jd d …df |jd d …d	f ¡ d S )
Nr   r   r!   rg   Úb2Zb3rf   re   r   )	r   rF   r.   r   r%   ro   r[   r/   r0   r  r6   r6   r7   Ú*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.   r/   r0   )r1   r>   ró   r6   r6   r7   Ú!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š   ÚABCrr   r   rp   ZABrÆ   r   r~   r…   )
r   r%   r&   rt   ru   Znotnullr-   ri   r/   rj   )r1   r2   Zindex_dfr4   r5   r6   r6   r7   Ú#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 ksDt‚d S )Nr   r   r   r!   rf   )r.   rF   ÚatZiat)r   ÚgetattrÚweakrefÚrefr[   )r1   r2   r$   Úwrr6   r6   r7   Ú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>t‚||ksJt‚d S )Nr   z{1,2}F)Zdropna)r	   Zvalue_countsr.   r[   )r1   Znulls_fixturer2   ÚvcZresult1Zresult2r5   r6   r6   r7   Útest_label_indexing_on_nan  s    
z#TestMisc.test_label_indexing_on_nanN)r÷   rø   rù   rÿ   r  r  r  r*   rû   rü   r   r%   r&   Zlinspacer  r  r  r  r   r"  r(  r*  r6   r6   r6   r7   rþ   ˆ  s"   . "ÿ


rþ   c                	   @   sÎ   e Zd Zdddgejddgfdddgejddgfedddƒedddƒedddƒgeedddƒedddƒgfdd	d
gdd	d
g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~   éÐ  r   r   rq   Nr5   c                 C   s@   |\}}t d|iƒ}d |jddgf< t d|iƒ}t ||¡ d S ©Nr   r   ©r   r.   r/   rj   ©r1   r5   Z
start_dataZexpected_resultÚstart_dataframeZexpected_dataframer6   r6   r7   Útest_coercion_with_loc0  s
    z0TestDataframeNoneCoercion.test_coercion_with_locc                 C   sH   |\}}t d|iƒ}d ||d |d d k< t d|iƒ}t ||¡ d S r-  )r   r/   rj   r/  r6   r6   r7   Ú(test_coercion_with_setitem_and_dataframe:  s
    zBTestDataframeNoneCoercion.test_coercion_with_setitem_and_dataframec                 C   sJ   |\}}t d|iƒ}d |j|d |d d k< t d|iƒ}t ||¡ d S r-  r.  r/  r6   r6   r7   Ú$test_none_coercion_loc_and_dataframeD  s
    z>TestDataframeNoneCoercion.test_none_coercion_loc_and_dataframec              	   C   sš   t dddgdddgtdddƒtdddƒtdddƒgdd	d
g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d d	d
gdœƒ}t ||¡ d S )Nr   r   r!   r   r}   r~   r,  re   rg   rh   )re   rg   rh   rŒ   r   )r   r   rF   r%   ri   r   r/   rj   )r1   r0  rõ   r6   r6   r7   Útest_none_coercion_mixed_dtypesN  s      üÿ


üÿz9TestDataframeNoneCoercion.test_none_coercion_mixed_dtypes)r÷   rø   rù   r%   ri   r   r   ZEXPECTED_SINGLE_ROW_RESULTSr*   rû   rü   r1  r2  r3  r4  r6   r6   r6   r7   r+  "  s    þö
	
	
	r+  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 	ddd	g¡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 	ddd	g¡g¡dd„ ƒƒZdS )ÚTestDatetimelikeCoercionc                 C   sx   |}t dd|d�}t|ƒ}|j}d}| |¡ |||ƒd< |d krf|j|jksRt‚|jj|jkstt‚n|j|kstt‚d S )Nú
2016-01-01r!   ©ÚperiodsÚtzz
2018-01-01r   )r
   r	   rL   Ú_validate_setitem_valuer   r[   Ú_data)r1   Útz_naive_fixturerR   r9  Údtir]   rÔ   Znewvalr6   r6   r7   Útest_setitem_dt64_string_scalare  s    
z8TestDatetimelikeCoercion.test_setitem_dt64_string_scalarÚboxr\   r   r   r   TFc           
      C   sž   |}t |tƒr"|tjkr"tddƒ}tdd|d�}t|ƒ}|j}|ddgƒ}	| |	¡ |	||ƒ|< |d krŒ|j|jksxt	‚|jj
|j
ksšt	‚n|j|ksšt	‚d S )Nr   r   r6  r!   r7  z
2019-01-01z
2010-01-02)rH   r  r/   r.   r
   r	   rL   r:  r   r[   r;  )
r1   r<  rR   r\   r?  r9  r=  r]   rÔ   Únewvalsr6   r6   r7   Útest_setitem_dt64_string_valuesz  s    

z8TestDatetimelikeCoercion.test_setitem_dt64_string_valuesÚscalarz3 Daysr"   c                 C   sF   t ddd�}t|ƒ}|j}| |¡ |||ƒd< |jj|jksBt‚d S )Nú1 Dayr!   ©r8  r   )r   r	   rL   r:  r;  r[   )r1   rR   rB  Útdir]   rÔ   r6   r6   r7   Útest_setitem_td64_scalar–  s    
z1TestDatetimelikeCoercion.test_setitem_td64_scalarc                 C   sp   t |tƒr|tjkrtddƒ}tddd�}t|ƒ}|j}|ddgƒ}| |¡ |||ƒ|< |jj|jkslt	‚d S )Nr   r   rC  r!   rD  z10 Daysz44 hours)
rH   r  r/   r.   r   r	   rL   r:  r;  r[   )r1   rR   r\   r?  rE  r]   rÔ   r@  r6   r6   r7   Útest_setitem_td64_string_values¢  s    

z8TestDatetimelikeCoercion.test_setitem_td64_string_valuesN)r÷   rø   rù   r>  r*   rû   rü   ru   r%   r-   rI   ZCategoricalr   r  rA  r   ZHourrF  rG  r6   r6   r6   r7   r5  d  s    ÿ
 ÿr5  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Ú   re   rg   r   r‰   rŠ   r#   r   )r   rI   r-   r	   r.   r/   r0   rF   )r2   r5   r4   r6   r6   r7   Ú"test_extension_array_cross_section·  s    þû 

rI  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   rH  r   ro   rÚ   re   rg   r   r‰   rŠ   )r   r   r$   r   )
r   rI   r-   r%   r.   r	   r/   r0   rF   râ   )r2   r4   r5   r6   r6   r7   Ú+test_extension_array_cross_section_convertsÈ  s(    þû

 þ

rJ  z	ser, keysr   )r   r   r   r   r!   rš   r   )r   r   c              	   C   sn   t d }}tj||d�� || ƒ|  W 5 Q R X |tjkrDtd }}tj||d�� d|| ƒ|< W 5 Q R X d S )NzToo many indexersr   ztoo many indices for arrayr   )r   r*   r+   r/   rF   rO   )r]   ÚkeysÚ
indexer_liZexp_errZexp_msgr6   r6   r7   Ú'test_ser_tup_indexer_exceeds_dimensionså  s    


rM  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   r/   r0   )rL  r]   Úresrõ   r6   r6   r7   Ú(test_ser_list_indexer_exceeds_dimensions÷  s    
rO  Úvaluerg   c              	   C   s�   t ddddgiƒ}d ddg¡}tjt|d�� | |jd	< W 5 Q R X t dddgtjdd
dgtd�dœƒ}tjtdd�� | |jd	< W 5 Q R X d S )Nr‰   r   r   r!   rB   z"Must have equal len keys and valueú(setting an array element with a sequencer   ©r   rŠ   re   rg   r   rÚ   )	r   rN   r*   r+   r,   r.   r%   r-   râ   )rP  r2   r3   r6   r6   r7   Ú%test_scalar_setitem_with_nested_value  s    þÿ$rS  c              	   C   sŒ   t dddgƒ}tjtdd�� | ||ƒd< W 5 Q R X t dddgtd	�}| ||ƒd< t| tjƒrv|jd | k 	¡ sˆt
‚n|jd | ksˆt
‚d S )
Nr   r   r!   rQ  r   r   re   rg   r   )r	   r*   r+   r,   râ   rH   r%   rM   r.   Úallr[   )rP  rR   r]   r6   r6   r7   Ú,test_scalar_setitem_series_with_nested_value  s    rU  )rÆ   rÆ   rŒ   c                 C   s®   t ddddgiƒ}| |jd< t dddgdtjtjgdœƒ}t ||¡ t dddgtjddd	gtd
�dœƒ}| |jd< t| tj	ƒr˜|jd | k 
¡ sªt‚n|jd | ksªt‚d S )Nr‰   r   r   r!   rR  rÆ   rÚ   re   rg   r   )r   r.   r%   ri   r/   rj   r-   râ   rH   rM   rT  r[   )rP  r2   r5   r6   r6   r7   Ú-test_scalar_setitem_with_nested_value_length1-  s    
$
rV  c              	   C   sÀ   t dddgƒ}t| tjƒrB| ||ƒd< t dddgƒ}t ||¡ n&tjtdd�� | ||ƒd< W 5 Q R X t dd	d
gt	d�}| ||ƒd< t| tjƒrª|j
d | k ¡ s¼t‚n|j
d | ks¼t‚d S )Nr   r}   r~   r   rÆ   rQ  r   r   re   rg   r   )r	   rH   r%   rM   r/   r0   r*   r+   r,   râ   r.   rT  r[   )rP  rR   r]   r5   r6   r6   r7   Ú4test_scalar_setitem_series_with_nested_value_length1B  s     ÿrW  ).rú   r-   r   r–   r%  Únumpyr%   r*   Zpandas.errorsr   Zpandas.core.dtypes.commonr   r   ZpandasrI   r   r   r   r	   r
   r   r   Zpandas._testingZ_testingr/   Zpandas.core.apir   Zpandas.tests.indexing.commonr   Z!pandas.tests.indexing.test_floatsr   r   rþ   r+  r5  rI  rJ  rû   rü   ru   rM  rO  rS  rU  rV  rW  r6   r6   r6   r7   Ú<module>   sf   $	    g BS&þ

 $ÿ
 $ÿ
 ÿ
 ÿ