U
    f/eN                     @   s   d 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  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 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#dd Z$dS )z test fancy indexing & misc     )datetimeN)is_float_dtypeis_integer_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	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d.d/ Zd0d1 Zd2d3 Zd4d5 Zejd6d7 Z d8d9 Z!d:d; Z"d<d= Z#d>d? Z$e
jd@e%j&e%j'gdAdB Z(dCS )D	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=
ף@yGz??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 r4   G/tmp/pip-unpacked-wheel-tiezk1ph/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*   )r/   r0   r1   r4   r4   r5   test_setitem_ndarray_1d_2<   s    z#TestFancy.test_setitem_ndarray_1d_2c              	   C   sd  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 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-bounds|r   )r   r#   randomrandintr   r-   setitemilocappendr,   r   
isinstancepdIntervalIndexZTimedeltaIndexZDatetimeIndexZPeriodIndexlenZ
MultiIndexjoin
IndexErrorr*   NotImplementedErrorr(   r)   )r/   r   frame_or_seriesindexer_sliZusing_array_managerobjidxrnd3Zmsgsr1   Zpotential_errorsr4   r4   r5   test_getitem_ndarray_3dH   s<    












z!TestFancy.test_getitem_ndarray_3dc           	   	   C   s   t ||}||}tjjddd}|tjkr>t}d|j }nBt|t	j
rh|tjkrh|jdkrht}d}nt}ddd	d
ddg}tj||d d||< W 5 Q R X d S )Nr   r8   r9   zCannot set values with ndim > r   zF'pandas._libs.interval.IntervalTree' object has no attribute 'get_loc'r>   r;   zCannot set values with ndim > 1r<   r=   z,Array conditional must be same shape as selfr   r   )r   r#   r?   r@   r-   rB   r*   ndimrD   rE   rF   rA   AttributeErrorrH   r(   r)   )	r/   r   rK   rL   rM   rN   rO   errr1   r4   r4   r5   test_setitem_ndarray_3dk   s4    



z!TestFancy.test_setitem_ndarray_3dc                 C   sl   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#   infAssertionErrorr   rE   ZFloat64Indexr-   assert_index_equalr/   r0   r2   r3   r4   r4   r5   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   r\   bcr   )r   r_   )r\   r^   r_   )	r   r#   nanr   r&   rX   r,   r-   assert_frame_equalr/   r0   r3   r4   r4   r5   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 st
t	|d	 st
d S )Nr   int64r   r   r   abr   r   bazr   rV   r\   r   r   r    r   )r   r#   r$   reshapelistcopyr,   r-   ra   r   rX   )r/   rd   r0   leftrightr4   r4   r5   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
 st	d S )Nr   rf   r   r   r         $@rg   r   r   rh   ri   re   rj   r   皙?333333?g?g      ?)
r   r#   r$   rk   rl   r,   r-   ra   r   rX   )r/   rn   ro   r4   r4   r5   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   r\   r^   )r-   ZmakeCustomDataframerV   r   rY   rZ   r4   r4   r5   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aaaaaaarU   r    )r   rl   headstrrV   rB   r-   ra   )r/   r0   r2   Zdf_vZres_vr4   r4   r5   &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   Zabcd)testZtest1otherABCr   g      @dr_   Enot in indexr   FGH)	r   rl   r,   r-   ra   r   r(   r)   KeyError)r/   r0   Zrowsr3   r2   r4   r4   r5   %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#   r?   randnrl   r(   r)   r   reescaper,   )r/   Zdfnur4   r4   r5   +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,   )r/   r   r0   r4   r4   r5   &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   r/   r0   r4   r4   r5   #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   rU   r   r   r   )r   r#   r?   r   r(   r)   r   r,   r   r4   r4   r5   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   r\   r^   ri   r   r   )r   r#   r?   r   rB   r,   r-   ra   )r/   r0   r3   r2   r4   r4   r5   test_dups_fancy_indexing3*  s      z#TestFancy.test_dups_fancy_indexing3c                 C   s<   t tddddgd}|d }||dg }t|| d S )Nr   r   r   )r   ranger-   r.   )r/   
indexer_slsr3   r2   r4   r4   r5   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sxtd S )Naaabbbccc)r   r   r   o      iM  r]   r\   c                 S   s   | dkrdS | S )Nr   _r4   xr4   r4   r5   <lambda>L      z9TestFancy.test_indexing_mixed_frame_bug.<locals>.<lambda>r~   r   c                 S   s   | dkrdS | S )Nr   -----r4   r   r4   r4   r5   r   P  r   )r   r   r   )r   applyr,   rB   rX   )r/   r0   idxtempr4   r4   r5   test_indexing_mixed_frame_bugD  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   r\               rU   z'[26, -8] not in index'r      ir   )
r   r#   r?   r(   r)   r   r   r   shaperX   r   r4   r4   r5    test_multitype_list_index_accessT  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47Z48Z59)         r   r   r   r         r                       r   goe@gm77M @g,o@g2?g@?gufn?g%?gTFa?gI"?g+ew7?gy7Z?g9?gGp#?gC?i  i  i  i  i  )PRuidQCdatayearr   r   r   rU   )	r   r#   r`   Zreset_indexZ	set_indexZreindexrV   r-   ra   r/   r0   r2   r4   r4   r5   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 )Nr\   r^   r   r   r      )FCZPFcol1col2r   r   r   r   r   )r   r   r    r   r   r{      r   r   r   r   r}         @       @rq   )r   rl   r   r#   r`   rB   rm   r   Zisnar   r,   r-   ra   values)r/   r0   df2maskcolsZdftr3   r4   r4   r5   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   rm   r,   r-   ra   )r/   r0   r3   r   colr4   r4   r5   "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   ri   r   r   r   )r   rB   r-   ra   r   r4   r4   r5   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   rE   Z	Timestampobjectr   _is_all_datesrX   r(   r)   r   r,   r   r4   r4   r5   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   r   )r   r   r   rX   r(   r)   r   r,   r   r4   r4   r5   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	}t|| | }|jd d d
df j	ddd|jd d d
df< t dddddddggtd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	}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	}t|| d S )N123z.4r   r   r   ZABCDEFGrU   r   r   r   T)r   numericr   r   r   r   )r   rl   rm   rB   astyper#   rf   r-   ra   _convertr,   )r/   Zdf_origr0   r3   r4   r4   r5   test_astype_assignment  s@     0 2 ( 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ddd	d
gi}t|| d S )Nr   r   rv   rw   r}   r   r   r   r   r    )r   r   r#   rf   rB   r-   ra   r,   rb   r4   r4   r5   (test_astype_assignment_full_replacements9  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rt|j dg }t	
|j| | }d||d< |j s"tq"t tdtd	dfD ]}|j st| }d||d< |j s t||d dks6t| }d||d< t	
|j|j | }d||d< |j stqd S )
Nr   r   r   r   r   皙?r   0g      @)r   r   r   
is_integerrX   rm   Zis_floatingr   tolistr-   rY   Z	is_objectr#   r$   )r/   r   r   s2expr4   r4   r5   test_index_type_coercionE  s6    
&z"TestFancy.test_index_type_coercionN))__name__
__module____qualname____doc__r6   r7   rP   rT   r[   rc   r(   markparametrizerp   rt   ru   rz   r   r   rl   r   r   r   r   r   r   r   r   r   r   tdZ&skip_array_manager_not_yet_implementedr   r   r   r   r   r-   getitemr,   r   r4   r4   r4   r5   r   #   sB   #!


O0
$r   c                   @   s   e Zd Zdd Zd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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   r\   r   r   )r   r   r\   )r   r#   r?   Zrandr-   ra   rb   r4   r4   r5   test_float_index_to_mixedv  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   r]   r   rv   rw   r   )r   r,   r   r-   ra   rb   r4   r4   r5   &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   rm   r,   r   r-   ra   r/   r0   r   r4   r4   r5    test_loc_setitem_fullindex_views  s    $z)TestMisc.test_loc_setitem_fullindex_viewsc                 C   sh   t dddgdddgd}| D ]\}}|j| |ks tq tt|D ]}|j| |d ksHtqHd S )Nr   r   r   r   rr   rs   r   )r   itemsatrX   r   rG   iat)r/   r   elitemir4   r4   r5   test_float_index_at_iat  s
    z TestMisc.test_float_index_at_iatc           	      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< qd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)rl   slicerm   r,   r-   ra   rB   )r0   rhs	right_loc
right_ilocZlbl_oneZidx_oneZ	slice_oneZlbl_twoZidx_twoZ	slice_tworn   r4   r4   r5   	run_tests  s     z.TestMisc.test_rhs_alignment.<locals>.run_testsr   r   r    Zjimr  r  ZjolineZabcderf   )rV   r   r   r   r   r   r      r   r   r      r|   r   r&   z@{}r   z@-28z@-20z@-12g      1@z@2g      :g      2g      $z@18)
r#   r$   rk   r   rl   rB   rm   r   mapformat)	r/   r  xsr   r0   r  r  r  framer4   r4   r5   test_rhs_alignment  s$    zTestMisc.test_rhs_alignmentc                    s   t j} fdd}tddtdd tdddfD ] t  tt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  q8d S )Nc                    sP   t j|  j|   jsLt |  j|  t j|  j|  d S )N)r-   r.   r,   rB   r   )Zl_slcZi_slcr   r   r4   r5   assert_slices_equivalent  s    zTTestMisc.test_str_label_slicing_with_negative_step.<locals>.assert_slices_equivalentr   r   d      r   r|   r	  r   r  r   )rE   Z
IndexSlicer   r#   r$   Zlinspacer   r   )r/   ZSLCr  r4   r  r5   )test_str_label_slicing_with_negative_step  s    (""&z2TestMisc.test_str_label_slicing_with_negative_stepc              	   C   sH   t tdtddd}tjtdd ||d d d  W 5 Q R X d S )Nr   r   r   zslice step cannot be zeror   r   )r   r#   r$   r   r(   r)   r*   )r/   r   serr4   r4   r5    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 )Nr   r   z)r"   r   r   r   r   )r   yr   r|   c   rv   r   g     X@)r   r   rm   r,   r-   ra   )r/   r   r0   r3   r  r4   r4   r5   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   r^   Zb2Zb3r]   r\   r   )	r   rB   r,   r   r#   rf   rX   r-   r.   r   r4   r4   r5   *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-   r.   )r/   r:   r   r4   r4   r5   !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   ABCri   r   rg   ZABr   r   rw   r}   )
r   r#   r$   rk   rl   Znotnullr+   r`   r-   ra   )r/   r0   Zindex_dfr2   r3   r4   r4   r5   #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   r]   )r,   rB   r   r   )r   getattrweakrefrefrX   )r/   r0   r"   wrr4   r4   r5   test_no_reference_cycle  s    
z TestMisc.test_no_reference_cyclec                 C   sR   t dddd g}|jdd}|jtj }|tj }d}||ksBt||ksNtd S )Nr   z{1,2}F)Zdropna)r   Zvalue_countsr,   r#   r`   rX   )r/   r0   ZvcZresult1Zresult2r3   r4   r4   r5   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(   r   r   r   r"  r'  r(  r4   r4   r4   r5   r   u  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   rv   rw     r   r   rh   Nr3   c                 C   s@   |\}}t d|i}d |jddgf< t d|i}t|| d S Nr   r   r   r,   r-   ra   r/   r3   Z
start_dataZexpected_resultstart_dataframeZexpected_dataframer4   r4   r5   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   r-   ra   r-  r4   r4   r5   (test_coercion_with_setitem_and_dataframe2  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-  r4   r4   r5   $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   rv   rw   r*  r\   r^   r_   )r\   r^   r_   r   r   )r   r   rB   r#   r`   r   r-   ra   )r/   r.  r   r4   r4   r5   test_none_coercion_mixed_dtypesF  s      


z9TestDataframeNoneCoercion.test_none_coercion_mixed_dtypes)r   r   r   r#   r`   r   r   ZEXPECTED_SINGLE_ROW_RESULTSr(   r   r   r/  r0  r1  r2  r4   r4   r4   r5   r)    s    
	
	
	r)  c                   @   s   e Zd Zdd Zejdeej	e
j	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	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   _values_validate_setitem_valuer   rX   _data)r/   tz_naive_fixturerL   r7  dtir  r   Znewvalr4   r4   r5   test_setitem_dt64_string_scalar]  s    
z8TestDatetimelikeCoercion.test_setitem_dt64_string_scalarboxkeyr   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st	n|j|kst	d S )Nr   r   r4  r   r5  z
2019-01-01z
2010-01-02)rD   r  r-   r,   r	   r   r8  r9  r   rX   r:  )
r/   r;  rL   r?  r>  r7  r<  r  r   newvalsr4   r4   r5   test_setitem_dt64_string_valuesr  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   r6  r   )r   r   r8  r9  r:  rX   )r/   rL   rB  tdir  r   r4   r4   r5   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)
rD   r  r-   r,   r   r   r8  r9  r:  rX   )r/   rL   r?  r>  rE  r  r   r@  r4   r4   r5   test_setitem_td64_string_values  s    

z8TestDatetimelikeCoercion.test_setitem_td64_string_valuesN)r   r   r   r=  r(   r   r   rl   r#   r+   rE   r  rA  r
   ZHourrF  rG  r4   r4   r4   r5   r3  \  s    
 r3  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   r\   r^   r   r   r   r!   r   )r   rE   r+   r   r,   r-   r.   rB   )r0   r3   r2   r4   r4   r5   "test_extension_array_cross_section  s     

rI  c                  C   s   t tjddgddtddg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   r   r\   r^   r   r   r   )r   r   r"   r   )
r   rE   r+   r#   r,   r   r-   r.   rB   r   )r0   r2   r3   r4   r4   r5   +test_extension_array_cross_section_converts  s$      

 

rJ  c                  C   sB   t dgd tddddgd} | d dks.t| d dks>td S )Nr   r    r\   r^   r_   r   r   )r   r   rX   )r   r4   r4   r5   &test_getitem_object_index_float_string  s    rK  )%r   r   r   r$  Znumpyr#   r(   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandas.core.dtypes.commonr   r   ZpandasrE   r   r   r   r   r	   r
   r   Zpandas._testingZ_testingr-   Zpandas.tests.indexing.commonr   Z!pandas.tests.indexing.test_floatsr   r   r   r)  r3  rI  rJ  rK  r4   r4   r4   r5   <module>   s0   $	    V &BS