U
    ¾mœd€“  ã                   @   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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 )/z 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                   @   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¡tj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é   é   ©Údtype©Úindexé
   Ú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Úint64ÚzerosÚfloat64ÚcomplexÚpytestÚraisesÚ
ValueErrorÚarrayÚlocr   r
   ÚtmÚassert_series_equal)ÚselfÚdfÚmsgÚresultÚexpected© r7   ú\/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/indexing/test_indexing.pyÚtest_setitem_ndarray_1d(   s    0&
 
 ÿz!TestFancy.test_setitem_ndarray_1dc              	   C   sv   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 5 Q R X 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_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
   r0   ÚsetitemÚilocÚappendr/   r   Ú
isinstanceÚpdZIntervalIndexZTimedeltaIndexZDatetimeIndexZPeriodIndexÚlenZ
MultiIndexÚtyper   Ú_valuesÚndarrayÚjoinÚ
IndexErrorr-   ÚNotImplementedErrorr+   r,   )r2   r   Úframe_or_seriesÚindexer_sliZusing_array_managerÚobjÚidxrÚnd3Zmsgsr4   Zpotential_errorsr7   r7   r8   Útest_getitem_ndarray_3dJ   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 > rA   r>   zCannot set values with ndim > 1r?   r@   z,Array conditional must be same shape as selfr   r   )r   r%   rB   rC   r0   rE   r-   ÚndimrM   r+   r,   )	r2   r   rP   rQ   rR   rS   rT   Úerrr4   r7   r7   r8   Útest_setitem_ndarray_3dt   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
   r0   r1   ÚAssertionError)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sDt‚|j}tddtjgtjd�}t 	||¡ d S )Nr   ©Úcolumnsr   r   r!   r   )
r   r/   r%   ÚinfrZ   r   r   r)   r0   Úassert_index_equal©r2   r3   r5   r6   r7   r7   r8   Ú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   ©rd   ÚbÚcr   )r   rg   )rd   rf   rg   )	r   r%   Únanr   r)   rZ   r/   r0   Ú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ƒ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    r'   r   r   r!   Úabr   r   Úbaz©r   r_   ©rd   r   r   r"   r   )r   r%   r&   ÚreshapeÚlistÚcopyr/   r0   ri   r   rZ   )r2   rl   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ƒ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    r'   r   r   r!   g      $@rn   r   r   ro   rp   rm   rq   r   gš™™™™™É?g333333Ó?gš™™™™™Ù?g      à?)
r   r%   r&   rr   rs   r/   r0   ri   r   rZ   )r2   ru   rv   r7   r7   r8   Ú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!   rd   rf   )r0   ZmakeCustomDataframer_   r   ra   rb   r7   r7   r8   Ú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   rs   ÚheadÚstrr_   rE   r0   ri   ©r2   r3   r5   r7   r7   r8   Ú&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      @Údrg   ÚEúnot in indexr   ÚFÚGÚH)	r   rs   r/   r0   ri   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   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%   rB   Úrandnrs   r+   r,   r�   ÚreÚescaper/   )r2   Zdfnur7   r7   r8   Ú+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/   )r2   r–   r3   r7   r7   r8   Ú&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™   ©r2   r3   r7   r7   r8   Ú#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%   rB   r’   r+   r,   r�   r/   r›   r7   r7   r8   Útest_dups_fancy_indexing2(  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!   rd   rf   rp   r   r    )r   r%   rB   r’   rE   r/   r0   ri   )r2   r3   r6   r5   r7   r7   r8   Útest_dups_fancy_indexing30  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
   Úranger0   r1   )r2   Ú
indexer_slr\   r6   r5   r7   r7   r8   Ú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sxt‚d S )NÚaaaÚbbbÚccc)r   r   r!   éo   éÞ   iM  re   rd   c                 S   s   | dkrdS | S )Nr¢   Ú_r7   ©Úxr7   r7   r8   Ú<lambda>P  ó    z9TestFancy.test_indexing_mixed_frame_bug.<locals>.<lambda>r„   r§   c                 S   s   | dkrdS | S )Nr¢   ú-----r7   r¨   r7   r7   r8   rª   T  r«   )r   r   r¬   )r   Úapplyr/   rE   rZ   )r2   r3   ÚidxÚtempr7   r7   r8   Útest_indexing_mixed_frame_bugI  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   rd   é   é   é   é   r^   z'[26, -8] not in index'r   é   iøÿÿÿr   )
r   r%   rB   r+   r,   r�   r“   r”   ÚshaperZ   r›   r7   r7   r8   Ú 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"œƒ ¡ }| 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%   rh   Zreset_indexZ	set_indexZreindexr_   r0   ri   r~   r7   r7   r8   Útest_set_index_nan`  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 )Nrd   rf   r   r   r    é   )ÚFCZPFÚcol1Úcol2©r   r   rË   rÌ   r   )r!   r!   r"   r˜   r   r€   é   r±   r³   )r   rs   rŸ   r%   rh   rE   rt   rÊ   Zisnar
   r/   r0   ri   Úvalues)r2   r3   Údf2ÚmaskÚcolsZdftr6   r7   r7   r8   Ú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   rt   r/   r0   ri   )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�}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   rp   r   r!   rÍ   )r   rE   r0   ri   r~   r7   r7   r8   Ú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   rH   Ú	TimestampÚobjectr   Ú_is_all_datesrZ   r+   r,   r�   r/   r›   r7   r7   r8   Ú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Þ   rZ   r+   r,   r�   r/   r›   r7   r7   r8   Ú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	�}| ¡ }|jd d …d
d…f  tj¡|jd d …d
d…f< t dddddddggtdƒd	�}|d  t¡|d< |d  t¡|d< t 	||¡ | ¡ }|j
d d …df  tj¡|j
d d …df< t dddddddggtdƒd	�}|d  t¡|d< t 	||¡ | ¡ }|j
d d …ddgf  tj¡|j
d d …ddgf< t dddddddggtdƒd	�}|d  t¡|d< |d  t¡|d< t 	||¡ d S )NÚ1Ú2Ú3z.4r   g      @r   ZABCDEFGr^   r   r   r   r†   r‡   rˆ   r!   )r   rs   rt   rE   Úastyper%   r'   rÝ   r0   ri   r/   )r2   Zdf_origr3   r6   r7   r7   r8   Útest_astype_assignment  s<     ÿ0 ÿ( ÿ0 ÿz TestFancy.test_astype_assignmentc                 C   s”   t dddddgiƒ}|d  tj¡|jd d …df< t dddddgiƒ}t ||¡ t dddddgiƒ}|d  tj¡|jd d …df< t ||¡ d S )Nr†   r   rz   r{   r‚   r   )r   rä   r%   r'   rE   r0   ri   r/   rj   r7   r7   r8   Ú(test_astype_assignment_full_replacements7  s    z2TestFancy.test_astype_assignment_full_replacementsÚindexerc                 C   s‚  t tdƒƒt tdƒtddƒd�fD ]®}t|jƒs4t‚| ¡ }d||ƒd< t|jƒsVt‚||ƒd dksjt‚| ¡ }d||ƒd< |j}d|kr t|j ¡ dg ƒ}t	 
|j|¡ | ¡ }d||ƒd< t|jƒs"t‚q"t tdƒt d	¡d�fD ]’}t|jƒsüt‚| ¡ }d||ƒd< t|jƒ�s t‚||ƒd dk�s6t‚| ¡ }d||ƒd< t	 
|j|j¡ | ¡ }d||ƒd< t|jƒsêt‚qêd S )
Nr   r   r    r   r   gš™™™™™¹?rÃ   Ú0g      @)r
   rŸ   r   r   rZ   rt   r   r   Útolistr0   ra   r   r%   r&   )r2   rç   ÚsÚs2Úexpr7   r7   r8   Útest_index_type_coercionE  s6    	&z"TestFancy.test_index_type_coercionN)(Ú__name__Ú
__module__Ú__qualname__Ú__doc__r9   r:   rU   rX   r]   rc   rk   r+   ÚmarkÚparametrizerw   rx   ry   r   r‘   r•   rs   rš   rœ   r�   rž   r¡   r°   r·   rÈ   rÓ   r×   rØ   rß   rà   rå   ræ   r0   Úgetitemr/   rí   r7   r7   r7   r8   r   %   sB   *
	
N/$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   rd   rÃ   r   )rÃ   r   rd   )r   r%   rB   Zrandr0   ri   rj   r7   r7   r8   Útest_float_index_to_mixeds  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   re   r   rz   r{   r   )r   r/   r   r0   ri   rj   r7   r7   r8   Ú&test_float_index_non_scalar_assignmentz  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   rt   r/   r   r0   ri   ©r2   r3   rÐ   r7   r7   r8   Ú test_loc_setitem_fullindex_views€  s    $z)TestMisc.test_loc_setitem_fullindex_viewsc           	      C   sF  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d„ ¡|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)rs   Úslicert   r/   r0   ri   rE   )r3   ÚrhsÚ	right_locÚ
right_ilocZlbl_oneZidx_oneZ	slice_oneZlbl_twoZidx_twoZ	slice_tworu   r7   r7   r8   Ú	run_tests‰  s     z.TestMisc.test_rhs_alignment.<locals>.run_testsr±   r   r"   Zjimrû   rü   ZjolineZabcder'   )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ª   ¯  r«   z-TestMisc.test_rhs_alignment.<locals>.<lambda>r   z@-28z@-20z@-12g      1@z@2g      :Àg      2Àg      $Àz@18)	r%   r&   rr   r   rs   rE   rt   rä   Úmap)	r2   r  Z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   )rH   Z
IndexSlicer   r
   r%   r&   r0   Z!assert_indexing_slices_equivalent)r2   r®   ZSLCr\   r7   r7   r8   Ú)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&   rI   r+   r,   r-   )r2   r   r    rP   rR   r7   r7   r8   Ú 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   ÚzrY   r   r   r    r˜   )r©   Úyr   r�   éc   rz   g       @g     ÀX@)r   r   rt   r/   r0   ri   )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   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!   rf   Úb2Zb3re   rd   r   )	r   rE   r/   r   r%   r'   rZ   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—   ÚABCrp   r   rn   ZABrÃ   r   r{   r‚   )
r   r%   r&   rr   rs   Znotnullr.   rh   r0   ri   )r2   r3   Z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 ksDt‚d S )Nr   r   r   r!   re   )r/   rE   ÚatZiat)r   ÚgetattrÚweakrefÚrefrZ   )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>t‚||ksJt‚d S )Nr   z{1,2}F)Zdropna)r
   Zvalue_countsr/   rZ   )r2   Znulls_fixturer3   ÚvcZresult1Zresult2r6   r7   r7   r8   Ú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!  r7   r7   r7   r8   rõ   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   rz   r{   éÐ  r   r   ro   Nr6   c                 C   s@   |\}}t d|iƒ}d |jddgf< t d|iƒ}t ||¡ d S ©Nr   r   ©r   r/   r0   ri   ©r2   r6   Z
start_dataZexpected_resultÚstart_dataframeZexpected_dataframer7   r7   r8   Útest_coercion_with_loc  s
    z0TestDataframeNoneCoercion.test_coercion_with_locc                 C   sH   |\}}t d|iƒ}d ||d |d d k< t d|iƒ}t ||¡ d S r$  )r   r0   ri   r&  r7   r7   r8   Ú(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&  r7   r7   r8   Ú$test_none_coercion_loc_and_dataframe.  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   rz   r{   r#  rd   rf   rg   )rd   rf   rg   r‰   r   )r   r   rE   r%   rh   r	   r0   ri   )r2   r'  rì   r7   r7   r8   Útest_none_coercion_mixed_dtypes8  s      üÿ


üÿz9TestDataframeNoneCoercion.test_none_coercion_mixed_dtypes)rî   rï   rð   r%   rh   r   r	   ZEXPECTED_SINGLE_ROW_RESULTSr+   rò   ró   r(  r)  r*  r+  r7   r7   r7   r8   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   s€   |}t dd|d�}t|jdd�ƒ}|j}d}| |¡ |||ƒd< |d krn|j|jksZt‚|jj|jks|t‚n|j|ks|t‚d S )Nú
2016-01-01r!   ©ÚperiodsÚtzT©Údeepz
2018-01-01r   )r   r
   rt   rK   Ú_validate_setitem_valuer   rZ   Ú_ndarray)r2   Útz_naive_fixturerQ   r0  Údtir\   rÏ   Znewvalr7   r7   r8   Útest_setitem_dt64_string_scalarO  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�ƒ}|j}|dd	gƒ}	| |	¡ |	||ƒ|< |d kr”|j	|j	ks€t
‚|jj|jks¢t
‚n|j|ks¢t
‚d S )
Nr   r   r-  r!   r.  Tr1  z
2019-01-01z
2010-01-02)rG   rý   r0   r/   r   r
   rt   rK   r3  r   rZ   r4  )
r2   r5  rQ   r[   r8  r0  r6  r\   rÏ   Únewvalsr7   r7   r8   Útest_setitem_dt64_string_valuesd  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ksJt‚d S )Nú1 Dayr!   ©r/  Tr1  r   )r   r
   rt   rK   r3  r4  rZ   )r2   rQ   r;  Útdir\   rÏ   r7   r7   r8   Útest_setitem_td64_scalar€  s    
z1TestDatetimelikeCoercion.test_setitem_td64_scalarc                 C   sx   t |tƒr|tjkrtddƒ}tddd�}t|jdd�ƒ}|j}|dd	gƒ}| |¡ |||ƒ|< |jj	|j	kstt
‚d S )
Nr   r   r<  r!   r=  Tr1  z10 Daysz44 hours)rG   rý   r0   r/   r   r
   rt   rK   r3  r4  rZ   )r2   rQ   r[   r8  r>  r\   rÏ   r9  r7   r7   r8   Útest_setitem_td64_string_valuesŒ  s    

z8TestDatetimelikeCoercion.test_setitem_td64_string_valuesN)rî   rï   rð   r7  r+   rò   ró   rs   r%   r.   rH   ZCategoricalr   rý   r:  r   ZHourr?  r@  r7   r7   r7   r8   r,  N  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
�} 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Õ   rd   rf   r   r†   r‡   r#   r   )r   rH   r.   r
   r/   r0   r1   rE   )r3   r6   r5   r7   r7   r8   Ú"test_extension_array_cross_section¡  s    þû 

rB  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   rA  r   r'   rÕ   rd   rf   r   r†   r‡   )r   r   r$   r   )
r   rH   r.   r%   r/   r
   r0   r1   rE   rÝ   )r3   r5   r6   r7   r7   r8   Ú+test_extension_array_cross_section_converts²  s(    þû

 þ

rC  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,   r0   rE   rN   )r\   ÚkeysÚ
indexer_liZexp_errZexp_msgr7   r7   r8   Ú'test_ser_tup_indexer_exceeds_dimensionsÏ  s    


rF  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   )rE  r\   Úresrì   r7   r7   r8   Ú(test_ser_list_indexer_exceeds_dimensionsá  s    
rH  Úvaluerf   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!   rA   z"Must have equal len keys and valueú(setting an array element with a sequencer   ©r   r‡   rd   rf   r   rÕ   )	r   rM   r+   r,   r-   r/   r%   r.   rÝ   )rI  r3   r4   r7   r7   r8   Ú%test_scalar_setitem_with_nested_valueë  s    þÿ$rL  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!   rJ  r   r   rd   rf   r   )r
   r+   r,   r-   rÝ   rG   r%   rL   r/   ÚallrZ   )rI  rQ   r\   r7   r7   r8   Ú,test_scalar_setitem_series_with_nested_value  s    rN  )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!   rK  rÃ   rÕ   rd   rf   r   )r   r/   r%   rh   r0   ri   r.   rÝ   rG   rL   rM  rZ   )rI  r3   r6   r7   r7   r8   Ú-test_scalar_setitem_with_nested_value_length1  s    
$
rO  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   rz   r{   r   rÃ   rJ  r   r   rd   rf   r   )r
   rG   r%   rL   r0   r1   r+   r,   r-   rÝ   r/   rM  rZ   )rI  rQ   r\   r6   r7   r7   r8   Ú4test_scalar_setitem_series_with_nested_value_length1,  s     ÿrP  )-rñ   r.   r   r“   r  Únumpyr%   r+   Zpandas.errorsr   Zpandas.core.dtypes.commonr   r   r   ZpandasrH   r   r   r	   r
   r   r   r   Zpandas._testingZ_testingr0   Zpandas.tests.indexing.commonr   Z!pandas.tests.indexing.test_floatsr   r   rõ   r"  r,  rB  rC  rò   ró   rs   rF  rH  rL  rN  rO  rP  r7   r7   r7   r8   Ú<module>   sd   $	    Q BS&þ

 $ÿ
 $ÿ
 ÿ
 ÿ