U
    -e                     @   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=
ף@yGz??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   d/var/www/html/Darija-Ai-Train/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 st
t	|d	 st
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
 st	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      ir   )
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   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   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rt|j dg }t	
|j| | }d||d< t|js"tq"t tdtd	dfD ]}t|jst| }d||d< t|js t||d dks6t| }d||d< t	
|j|j | }d||d< t|jstqd 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< 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)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      2g      $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 )Nr   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st
|jj|jkst
n|j|kst
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	 st
n|jd | kst
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
 stn|jd | kst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 stn|j
d | kst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&

 $
 $
 
 