a
    GGb                     @   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 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S )z test fancy indexing & misc     )datetimeN)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g d 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	2 t
g d
|j|jdd df< W d    n1 s0    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      index
   dtypefoobar@Must have equal len keys and value when setting with an iterablematch)y        p=
ף@yGz??g@      ?         )      r   r   r   name)r   r   nparangezerosfloat64complexpytestraises
ValueErrorarraylocr   r   tmassert_series_equal)selfdfmsgresultexpected r5   Blib/python3.9/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    n1 s|0    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+   )r0   r1   r2   r5   r5   r6   test_setitem_ndarray_1d_2=   s    z#TestFancy.test_setitem_ndarray_1d_2c                 C   s  t ||}||}tjjddd}g }|tu rV|tjtjfv rV|d |rV|d |tu sh|tju r|d |r|d |tj	u s|tu r|tju r|d |t
u r|tju r|d	 t|tjr|tju r|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    n1 s0    Y  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   _valuesZndarrayjoin
IndexErrorr+   NotImplementedErrorr)   r*   )r0   r   frame_or_seriesindexer_sliZusing_array_managerobjidxrnd3Zmsgsr2   Zpotential_errorsr5   r5   r6   test_getitem_ndarray_3dI   sB    














z!TestFancy.test_getitem_ndarray_3dc           	      C   s   t ||}||}tjjddd}|tju r>t}d|j }nt}dg d}t	j
||d d||< W d    n1 s|0    Y  d S )	Nr   r9   r:   zCannot set values with ndim > r?   )r<   zCannot set values with ndim > 1r=   r>   z,Array conditional must be same shape as selfr   r   )r   r$   r@   rA   r.   rC   r+   ndimrJ   r)   r*   )	r0   r   rM   rN   rO   rP   rQ   errr2   r5   r5   r6   test_setitem_ndarray_3ds   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sbJ d S )Nr   r   r   r    r!   r#   )r$   r,   r   r   r.   r/   )r0   keyr1   r3   r4   serr5   r5   r6   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sDJ |j}tddtjg}t|| d S )Nr   columnsr   r   r    )r   r-   r$   infr   r   r.   assert_index_equalr0   r1   r3   r4   r5   r5   r6   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s4J 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   rc   r`   rb   rc   )r   r$   nanr   r'   r-   r.   assert_frame_equalr0   r1   r4   r5   r5   r6   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}| }||jd	< t d
|dgg dgtdg dd}t|| t	|d szJ t	|d sJ d S )Nr   int64r   r   r    abr   r   bazr   r[   r`   r   r   r    r!   r   r   rn   )
r   r$   r%   reshapelistcopyr-   r.   rf   r   )r0   ri   r1   leftrightr5   r5   r6   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	}d
|jd< t g dg dgtdg dd	}t|| t|d stJ t|d sJ d S )Nr   rk   r   r   r          $@rl   rm   ro   rj   rp   )r   rj   g?)g333333?g?g      ?r   rn   )	r   r$   r%   rr   rs   r-   r.   rf   r   )r0   ru   rv   r5   r5   r6   test_setitem_dtype_upcast3   s    
z$TestFancy.test_setitem_dtype_upcast3c                 C   s@   t dd}g d|_|ddg j}tg d}t || d S )Nr   r    )r`   r`   rb   rb   r`   )rb   r`   r`   )r.   ZmakeCustomDataframer[   r   r]   r^   r5   r5   r6   test_dups_fancy_indexing   s
    
z"TestFancy.test_dups_fancy_indexingc                 C   sr   t g dgtdd}|  t| 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   ZaaaaaaarZ   r!   )r   rs   headstrr[   rC   r.   rf   r0   r1   r3   r5   r5   r6   &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 s0    Y  g d}tjtdd |j|  W d    n1 s0    Y  d S )Nr      	   r   )      @r   r   r   Zabcd)testZtest1otherAr   BCr   r   r   r   r   g      @r   drc   )r   r   Enot in indexr   )FGHr   r   r   )	r   rs   r-   r.   rf   r   r)   r*   KeyError)r0   r1   Zrowsr4   r3   r5   r5   r6   %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}tjtt	dd |j
dg  W d    n1 sP0    Y  d S )Nr   r    ZAABCDr   z;"None of [Index(['E'], dtype='object')] are in the [index]"r   r   )r   r$   r@   randnrs   r)   r*   r   reescaper-   )r0   Zdfnur5   r5   r6   +test_dups_fancy_indexing_only_missing_label  s    z5TestFancy.test_dups_fancy_indexing_only_missing_labelvals)r   r   r   abcc                 C   sL   t d|i}tjtdd |jg d  W d    n1 s>0    Y  d S )Nr   r   r   )r      r   r   r)   r*   r   r-   )r0   r   r1   r5   r5   r6   &test_dups_fancy_indexing_missing_label  s    z0TestFancy.test_dups_fancy_indexing_missing_labelc                 C   sX   t dg dig dd}tjtdd |jg d  W d    n1 sJ0    Y  d S )Nr   r   r   r   r   r   )r   r   r   r   r0   r1   r5   r5   r6   #test_dups_fancy_indexing_non_unique'  s    z-TestFancy.test_dups_fancy_indexing_non_uniquec                 C   sb   t tjddg dd}tjtdd& |jd d g df  W d    n1 sT0    Y  d S )Nr   )r   r   r   r   r   rZ   r   r   )r   r   r   )r   r$   r@   r   r)   r*   r   r-   r   r5   r5   r6   test_dups_fancy_indexing2.  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`   rb   ro   r   r   r   )r   r$   r@   r   rC   r-   r.   rf   )r0   r1   r4   r3   r5   r5   r6   test_dups_fancy_indexing36  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   ranger.   r/   )r0   
indexer_slrX   r4   r3   r5   r5   r6   test_duplicate_int_indexingI  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sxJ d S )NaaaZbbbZcccr   r   r    o      iM  ra   r`   c                 S   s   | dkrdS | S )Nr   _r5   xr5   r5   r6   <lambda>X      z9TestFancy.test_indexing_mixed_frame_bug.<locals>.<lambda>r   r   c                 S   s   | dkrdS | S )Nr   -----r5   r   r5   r5   r6   r   \  r   )r   r   r   )r   Zapplyr-   rC   )r0   r1   idxZtempr5   r5   r6   test_indexing_mixed_frame_bugP  s    z'TestFancy.test_indexing_mixed_frame_bugc                 C   s~   t tjddgg d d}tjttdd |g d  W d    n1 sT0    Y  |d jd	 |jd	 kszJ d S )
N)r   r   r`   )            rZ   z'[26, -8] not in index'r   )r      ir   r   )	r   r$   r@   r)   r*   r   r   r   shaper   r5   r5   r6    test_multitype_list_index_access`  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 )%NZnonQCZ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year)r   r   r   rZ   )	r   r$   re   Zreset_indexZ	set_indexZreindexr[   r.   rf   r   r5   r5   r6   test_set_index_nanh  s    FzTestFancy.test_set_index_nanc              
   C   s.  t g dg d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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)r`   rb   r`   rb   r`   rb   )r   r   r   r   r   r   r      )FCZPFcol1col2r   r   r   r   r   )r    r    r`   rb   )r   r   r!   r   r   r   r      r   r   )r   r   r         @       @rx   )r   rs   r   r$   re   rC   rt   r   Zisnar   r-   r.   rf   values)r0   r1   df2maskcolsZdftr4   r5   r5   r6   test_multi_assign  s@    


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   rt   r-   r.   rf   )r0   r1   r4   r   colr5   r5   r6   "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   ro   r   r   r   )r   rC   r.   rf   r   r5   r5   r6   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 sT0    Y  tjt	dd |j
d  W d    n1 s0    Y  d S )Nr   z
2011-01-01r   '2011'r   2011r   r   )r   r   rF   Z	Timestampobjectr   _is_all_datesr)   r*   r   r-   r   r5   r5   r6   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>0    Y  tjtdd |jd  W d    n1 sv0    Y  d S )Nr   r   r   z^0$r   )r   r   r   r)   r*   r   r-   r   r5   r5   r6   test_string_slice_empty  s    &z!TestFancy.test_string_slice_emptyc                 C   s|  t g dgtdd}| }|jd d ddf tj|jd d ddf< t g dgtdd}t|| | }|jd d ddf j	ddd|jd d ddf< t g dgtdd}t|| | }|j
d d d	f tj|j
d d d	f< t g d
gtd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 S )N)123.4r   r   r   ZABCDEFGrZ   r   r   )r   r   r   r   r   r   r   T)r   Znumericr   )r   r   r   r   r   r   r   r   r   )r   r   r    r   r   r   r   )r   rs   rt   rC   astyper$   rk   r.   rf   _convertr-   )r0   Zdf_origr1   r4   r5   r5   r6   test_astype_assignment!  s6    02(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g di}t|| d S )Nr   )r   r{   r|   r   r   )r   r   r    r!   )r   r   r$   rk   rC   r.   rf   r-   rg   r5   r5   r6   (test_astype_assignment_full_replacementsE  s    z2TestFancy.test_astype_assignment_full_replacementsindexerc                 C   s  t tdt tdtdddfD ]}|j s4J | }d||d< |j sVJ ||d dksjJ | }d||d< |j}d|vrt|j dg }t	|j| | }d||d< |j
 s"J q"t tdtd	dfD ]}|j sJ | }d||d< |j s J ||d dks6J | }d||d< t	|j|j | }d||d< |j
 sJ qd S )
Nr   r   r   r   r   g?r   0g      @)r   r   r   
is_integerrt   Zis_floatingr   tolistr.   r]   Z	is_objectr$   r%   )r0   r   ss2expr5   r5   r6   test_index_type_coercionQ  s6    
&z"TestFancy.test_index_type_coercionN)*__name__
__module____qualname____doc__r7   r8   rR   rU   rY   r_   rh   r)   markparametrizerw   ry   rz   r   r   r   rs   r   r   r   r   r   r   r   r   r   r   tdZ&skip_array_manager_not_yet_implementedr   r   r   r   r   r.   getitemr-   r   r5   r5   r5   r6   r   $   sD   *


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
ejdg d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.   rf   rg   r5   r5   r6   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   rq   ra   r   r{   r|   r   r   r   r   )r   r   r   )r   r-   r   r.   rf   rg   r5   r5   r6   &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   rq   ra   r   r   )r   rt   r-   r   r.   rf   r0   r1   r   r5   r5   r6    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j	|d< qg d|d< g d|d< ||||| 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 )	NZbcdr   r   r!   joejolier   r    )rs   slicert   r-   r.   rf   rC   )r1   rhs	right_loc
right_ilocZlbl_oneZidx_oneZ	slice_oneZlbl_twoZidx_twoZ	slice_tworu   r5   r5   r6   	run_tests  s    z.TestMisc.test_rhs_alignment.<locals>.run_testsr   r   r!   )Zjimr   r   ZjolineZabcderk   )r[   r   r   r    r   r   )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%   rr   r   rs   rC   rt   r   mapformat)	r0   r  Zxsr   r1   r   r  r  framer5   r5   r6   test_rhs_alignment  s$    zTestMisc.test_rhs_alignmentc              	   C   s   t j}tddtdd tdddfD ]}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
  q*d S )Nr   r   d      r   r   r  r   r  r   )
rF   Z
IndexSlicer   r$   r%   Zlinspacer   r   r.   Z!assert_indexing_slices_equivalent)r0   ZSLCr   rX   r5   r5   r6   )test_str_label_slicing_with_negative_step  s    (&&" z2TestMisc.test_str_label_slicing_with_negative_stepc                 C   sZ   |t t||d}tjtdd" ||d d d  W d    n1 sL0    Y  d S )Nr   zslice step cannot be zeror   r   )r$   r%   rG   r)   r*   r+   )r0   r   r   rM   rO   r5   r5   r6    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   zrV   )r   r   r   )r   r   r   )r   yr   r   c   r   )r{   r{   r   )r   r   r   )r{   r{   g     X@)r   r   rt   r-   r.   rf   )r0   r   r1   r4   r   r5   r5   r6   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sFJ t|jd d df |jd d df  d S )Nr   )rb   Zb2Zb3ra   r`   r   )r   rC   r-   r   r$   rk   r.   r/   r   r5   r5   r6   *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/   )r0   r;   r   r5   r5   r6   !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   ABCro   r   rl   ZABr   r   r|   r   )
r   r$   r%   rr   rs   Znotnullr,   re   r.   rf   )r0   r1   Zindex_dfr3   r4   r5   r5   r6   #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 sDJ d S )Nr   r   r   r    ra   )r-   rC   ZatZiat)r   getattrweakrefref)r0   r1   r#   wrr5   r5   r6   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sJJ d S )Nr   z{1,2}F)Zdropna)r   Zvalue_countsr-   )r0   Znulls_fixturer1   ZvcZresult1Zresult2r4   r5   r5   r6   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   r5   r5   r5   r6   r     s   .

r   c                	   @   s   e Zd Zg dejddgfg d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g d	g 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|     r   rm   )Nr   rn   r4   c                 C   s@   |\}}t d|i}d |jddgf< t d|i}t|| d S Nr   r   r   r-   r.   rf   r0   r4   Z
start_dataZexpected_resultstart_dataframeZexpected_dataframer5   r5   r6   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.   rf   r%  r5   r5   r6   (test_coercion_with_setitem_and_dataframe3  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%  r5   r5   r6   $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   r"  r   r   r    rd   )r`   rb   rc   r   r   r{   r|   )Nrb   rc   )r   r   rC   r$   re   r   r.   rf   )r0   r&  r   r5   r5   r6   test_none_coercion_mixed_dtypesG  s      


z9TestDataframeNoneCoercion.test_none_coercion_mixed_dtypesN)r   r   r   r$   re   r   r   ZEXPECTED_SINGLE_ROW_RESULTSr)   r   r   r'  r(  r)  r*  r5   r5   r5   r6   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	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   sx   |}t dd|d}t|}|j}d}|| |||d< |d u rf|j|jksRJ |jj|ju stJ n|j|u stJ d S )N
2016-01-01r    periodstzz
2018-01-01r   )r	   r   rI   _validate_setitem_valuer   _data)r0   tz_naive_fixturerN   r/  dtirX   r   Znewvalr5   r5   r6   test_setitem_dt64_string_scalar^  s    
z8TestDatetimelikeCoercion.test_setitem_dt64_string_scalarboxrW   r   r   r   )TTFc           
      C   s   |}t |tr"|tju r"tdd}tdd|d}t|}|j}|ddg}	||	 |	|||< |d u r|j|jksxJ |jj	|j	u sJ n|j|u sJ d S )Nr   r   r,  r    r-  z
2019-01-01z
2010-01-02)
rE   r   r.   r-   r	   r   rI   r0  r   r1  )
r0   r2  rN   rW   r5  r/  r3  rX   r   newvalsr5   r5   r6   test_setitem_dt64_string_valuess  s    

z8TestDatetimelikeCoercion.test_setitem_dt64_string_valuesscalarz3 Daysr!   c                 C   sF   t ddd}t|}|j}|| |||d< |jj|ju sBJ d S )N1 Dayr    r.  r   )r   r   rI   r0  r1  )r0   rN   r8  tdirX   r   r5   r5   r6   test_setitem_td64_scalar  s    
z1TestDatetimelikeCoercion.test_setitem_td64_scalarc                 C   sp   t |tr|tju rtdd}tddd}t|}|j}|ddg}|| ||||< |jj|ju slJ d S )Nr   r   r9  r    r:  z10 Daysz44 hours)	rE   r   r.   r-   r   r   rI   r0  r1  )r0   rN   rW   r5  r;  rX   r   r6  r5   r5   r6   test_setitem_td64_string_values  s    

z8TestDatetimelikeCoercion.test_setitem_td64_string_valuesN)r   r   r   r4  r)   r   r   rs   r$   r,   rF   ZCategoricalr   r   r7  r
   ZHourr<  r=  r5   r5   r5   r6   r+  ]  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   r`   rb   r   r   r   r"   r   )r   rF   r,   r   r-   r.   r/   rC   )r1   r4   r3   r5   r5   r6   "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   rk   r   r`   rb   r   r   r   )r   r   r#   r   )
r   rF   r,   r$   r-   r   r.   r/   rC   r   )r1   r3   r4   r5   r5   r6   +test_extension_array_cross_section_converts  s(    

 

r@  )&r   r   r   r  Znumpyr$   r)   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandas.core.dtypes.commonr   r   ZpandasrF   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!  r+  r?  r@  r5   r5   r5   r6   <module>   s0   $	    a BS