o
    7?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g d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.d/ Z-dS )0z 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                   @   sR  e Zd ZdZdd Zdd Zejddd Z	ejd	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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g d
|j|jdd df< W d    n1 sFw   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      dtypeindex
   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int64zerosfloat64complexpytestraises
ValueErrorarraylocr   r
   tmassert_series_equal)selfdfmsgresultexpected r7   d/home/www/facesmatcher.com/pyenv/lib/python3.10/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    d S 1 s?w   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-   )r2   r3   r4   r7   r7   r8   test_setitem_ndarray_1d_2>   s   "z#TestFancy.test_setitem_ndarray_1d_2zPignore:Series.__getitem__ treating keys as positions is deprecated:FutureWarningc                 C   s  t ||}||}tjdjddd}g }|tu r.|tjtjfv r.|	d |r.|	d |tu s7|tju rC|	d |rC|	d |tj
u sQ|tu rV|tju rV|	d	 |tu rd|tju rd|	d
 t|tjrt|tju rt|	d
 t|tjtjtjfr|	d t|dkst|tjr|	d t|tu rt|jtjs|	d |	d d|}	tttf}
tj|
|	d ||  W d    d S 1 sw   Y  d S )Nr   r   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default_rngintegersr
   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   sD   















"z!TestFancy.test_getitem_ndarray_3dzPignore:Series.__setitem__ treating keys as positions is deprecated:FutureWarningc           	      C   s   t ||}||}tjdjddd}|tju r"t}d|j }n	t}d	g d}t
j||d d	||< W d    d S 1 sBw   Y  d S )
Nr   r   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   rD   r0   rF   r-   ndimrN   r+   r,   )	r2   r   rQ   rR   rS   rT   rU   errr4   r7   r7   r8   test_setitem_ndarray_3dx   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s1J d S )Nr   r   r   r!   r"   r$   )r%   r.   r   r
   r0   r1   )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s"J |j}tddtjgtjd}t|| d S )Nr   columnsr   r   r!   r   )	r   r/   r%   infr   r   r)   r0   assert_index_equalr2   r3   r5   r6   r7   r7   r8   test_inf_upcast   s   

zTestFancy.test_inf_upcastc                 C   s   t ddidddg}tj|d< |d jtjksJ tjtdd d	|jd
< W d    n1 s1w   Y  t dtjd	dddtjdg}t	|| d S )Nar   r!   r   rd   bcitem of incompatible dtyper   r   )r   rg   rd   rf   rg   )
r   r%   nanr   r)   r0   assert_produces_warningFutureWarningr/   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g dd}| }tjtd	d
 ||j	d< W d    n1 s/w   Y  t d|dgg dgtdg dd}t
|| t|d sTJ t|d s\J d S )Nr    r'   r   r   r!   abr   r   bazr   r_   rh   r   rd   r   r   r!   r"   r   r   rt   )r   r%   r&   reshapelistcopyr0   rk   rl   r/   rm   r   )r2   rp   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g dd	}tjtd
d d|jd< W d    n1 s-w   Y  t g dg dgtdg dd	}t	|| t
|d sQJ t
|d sYJ d S )Nr    r'   r   r   r!   g      $@rr   rs   ru   rh   r   rq   rv   )r   rq   g?)g333333?g?g      ?r   rt   )r   r%   r&   rx   ry   r0   rk   rl   r/   rm   r   )r2   r{   r|   r7   r7   r8   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!   )rd   rd   rf   rf   rd   )rf   rd   rd   )r0   ZmakeCustomDataframer_   r   ra   rb   r7   r7   r8   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aaaaaaar^   r"   )r   ry   headstrr_   rF   r0   rm   r2   r3   r5   r7   r7   r8   &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 sYw   Y  g d}tjtdd |j|  W d    d S 1 szw   Y  d S )Nr      	   r   )      @r   r    r   abcd)testZtest1otherAr   BCr   r   r   r   r   g      @r    drg   )r   r   Enot in indexr   )FGHr   r   r   )	r   ry   r/   r0   rm   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   sd   t tjddtdd}tjtt	
dd |jdg  W d    d S 1 s+w   Y  d S )Nr   )r   r!   ZAABCDr   z;"None of [Index(['E'], dtype='object')] are in the [index]"r   r   )r   r%   rB   rC   standard_normalry   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vals)r   r   r   abcc                 C   sN   t d|i}tjtdd |jg d  W d    d S 1 s w   Y  d S )Nr   r   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   sZ   t dg dig dd}tjtdd |jg d  W d    d S 1 s&w   Y  d S )Nr   r   r   r   r   r   )r   r   r   r   r2   r3   r7   r7   r8   #test_dups_fancy_indexing_non_unique5  s   "z-TestFancy.test_dups_fancy_indexing_non_uniquec                 C   sh   t tjddg dd}tjtdd |jd d g df  W d    d S 1 s-w   Y  d S )Nr   )r   r   )r   r   r   r   r   r^   r   r   )r   r   r   )	r   r%   rB   rC   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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!   rd   rf   ru   r   r    r   )	r   r%   rB   rC   r   rF   r/   r0   rm   )r2   r3   r6   r5   r7   r7   r8   test_dups_fancy_indexing3F  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
   ranger0   r1   )r2   
indexer_slr\   r6   r5   r7   r7   r8   test_duplicate_int_indexingZ  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s<J d S )Naaabbbcccr   r   r!   o      iM  re   rd   c                 S      | dkrdS | S )Nr   _r7   xr7   r7   r8   <lambda>h      z9TestFancy.test_indexing_mixed_frame_bug.<locals>.<lambda>r   r   c                 S   r   )Nr   -----r7   r   r7   r7   r8   r   l  r   )r   r   r   )r   applyr/   rF   )r2   r3   idxtempr7   r7   r8   test_indexing_mixed_frame_buga  s   z'TestFancy.test_indexing_mixed_frame_bugc                 C   s   t tjdddgg d d}tjttdd |g d  W d    n1 s-w   Y  |d	 j	d
 |j	d
 ks@J d S )Nr   )r   r   rd   )            r^   z'[26, -8] not in index'r   )r      ir   r   )
r   r%   rB   rC   r+   r,   r   r   r   shaper   r7   r7   r8    test_multitype_list_index_accessp  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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year)r   r   r   r^   )	r   r%   rj   Zreset_indexZ	set_indexZreindexr_   r0   rm   r   r7   r7   r8   test_set_index_nanz  s   CFzTestFancy.test_set_index_nanc              
   C   s8  t g dg dttdttdddddi}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)rd   rf   rd   rf   rd   rf   )r   r   r   r   r   r   r       )FCZPFcol1col2r   r)   r   r   r   r   )r!   r!   rd   rf   )r   r   r"   r    r   r   r      r   r   )r   ry   r   astyper%   rj   rF   rz   r   Zisnar
   r/   r0   rm   values)r2   r3   df2maskcolsZdftr6   r7   r7   r8   test_multi_assign  sD   



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   rz   r/   r0   rm   )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}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   ru   r   r   r   )r   rF   r0   rm   r   r7   r7   r8   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 s*w   Y  tjt	dd |j
d  W d    d S 1 sGw   Y  d S )Nr   z
2011-01-01r   '2011'r   2011r   r   )r   r   rI   	Timestampobjectr   _is_all_datesr+   r,   r   r/   r   r7   r7   r8   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w   Y  tjtdd |jd  W d    d S 1 s<w   Y  d S )Nr   r   r   z^0$r   )r   r   r   r+   r,   r   r/   r   r7   r7   r8   test_string_slice_empty#  s   
"z!TestFancy.test_string_slice_emptyc                 C   sz  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}|d t|d< |d t|d< t	|| | }|j
d d df tj|j
d d df< t g d	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 g dgtdd}|d t|d< |d
 t|d
< t	|| d S )N)123.4r         @r   ZABCDEFGr^   r   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r!   r   r   r   r   )r   ry   rz   rF   r   r%   r'   r   r0   rm   r/   )r2   Zdf_origr3   r6   r7   r7   r8   test_astype_assignment.  s4   0(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 S )Nr   )r   r   r   r   r   )r   r   r%   r'   rF   r0   rm   r/   rn   r7   r7   r8   (test_astype_assignment_full_replacementsR  s   z2TestFancy.test_astype_assignment_full_replacementsindexerc                 C   s~  t tdt tdtdddfD ]W}t|jsJ | }d||d< t|js+J ||d dks5J | }d||d< |j}d|vrPt|j dg }t	|j| | }d||d< t
|jshJ qt tdtd	dfD ]G}t|js~J | }d||d< t|jsJ ||d dksJ | }d||d< t	|j|j | }d||d< t
|jsJ qud S )
Nr   r   r    r   r   g?r   0g      @)r
   r   r   r   rz   r   r   tolistr0   ra   r   r%   r&   )r2   r   ss2expr7   r7   r8   test_index_type_coercion`  s8   &	z"TestFancy.test_index_type_coercionN))__name__
__module____qualname____doc__r9   r:   r+   markfilterwarningsrV   rY   r]   rc   ro   parametrizer}   r~   r   r   r   r   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   getitemr/   r   r7   r7   r7   r8   r   %   sP    
*

	

N0$r   c                
   @   s   e Zd Zdd Zdd Zdd Zdd Zej	d	e
d
dedd edddgdd Zdd Zdd Zdd Zej	dg ddd Zdd Zdd Zdd Zd S )!TestMiscc                 C   s`   t tjddtjddd}d|d< t |d |d dgd d}t|| d S )Nr   r   )r   r   rd   r   r   )r   r   rd   )r   r%   rB   rC   r0   rm   rn   r7   r7   r8   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   rw   re   r   r   r   r   r   r   r   )r   r   r   )r   r/   r   r0   rm   rn   r7   r7   r8   &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   rw   re   r  r   )r   rz   r/   r   r0   rm   r2   r3   r   r7   r7   r8    test_loc_setitem_fullindex_views  s   z)TestMisc.test_loc_setitem_fullindex_viewsc           	      C   sZ  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d |d< qig d|d< g d|d< t	j
tdd ||||| W d    d S 1 sw   Y  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!   )ry   slicerz   r/   r0   rm   rF   )r3   rhs	right_loc
right_ilocZlbl_oneZidx_oneZ	slice_oneZlbl_twoZidx_twoZ	slice_twor{   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   r   r   r
  r   r)   c                 S   s
   d|  S )N@r7   r   r7   r7   r8   r     s   
 z-TestMisc.test_rhs_alignment.<locals>.<lambda>)r   z@-28z@-20z@-12g      1@)z@2g      :g      2g      $z@18zincompatible dtyper   )r%   r&   rx   r   ry   rF   rz   r   mapr0   rk   rl   )	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   )rI   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   s\   |t t||d}tjtdd ||d d d  W d    d S 1 s'w   Y  d S )Nr   zslice step cannot be zeror   r   )r%   r&   rJ   r+   r,   r-   )r2   r   r   rQ   rS   r7   r7   r8    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   zrZ   )r   r   r    )r   r   r   )r   yr   r   c   r   )r   r   g       @)r   r   r   )r   r   g     X@)r   r   rz   r/   r0   rm   )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   sr   t g dg dd}|jg d d f }|jd d df jtjks#J t|jd d df |jd d df  d S )Nr   )rf   b2Zb3re   rd   r   )r   rF   r/   r   r%   r'   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   ABCru   r   rr   ZABr   r   r   r   )
r   r%   r&   rx   ry   Znotnullr.   rj   r0   rm   )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 u s"J d S )Nr   r   r   r!   re   )r/   rF   atZiat)r   getattrweakrefref)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J ||ks%J d S )Nr   z{1,2}F)Zdropna)r
   Zvalue_countsr/   )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    s"    /$


r  c                	   @   s   e Zd Zg dejddgefg dejddgdfedd	d	edd	dedd	dgeedd	dedd	dgdfg d
g d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   N  r   rs   )Nr   rt   r6   c                 C   sB   |\}}}t d|i}d |jddgf< t d|i}t|| d S Nr   r   r   r/   r0   rm   r2   r6   Z
start_dataZexpected_resultwarnstart_dataframeZexpected_dataframer7   r7   r8   test_coercion_with_loc<  s
   
z0TestDataframeNoneCoercion.test_coercion_with_locc                 C   sJ   |\}}}t d|i}d ||d |d d k< t d|i}t|| d S r2  )r   r0   rm   r4  r7   r7   r8   (test_coercion_with_setitem_and_dataframeF  s
   
zBTestDataframeNoneCoercion.test_coercion_with_setitem_and_dataframec                 C   sL   |\}}}t d|i}d |j|d |d d k< t d|i}t|| d S r2  r3  r4  r7   r7   r8   $test_none_coercion_loc_and_dataframeP  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  r1  r   r   r!   ri   )rd   rf   rg   r   r   r   r   )Nrf   rg   )r   r   rF   r%   rj   r	   r0   rm   )r2   r6  r   r7   r7   r8   test_none_coercion_mixed_dtypesZ  s     


z9TestDataframeNoneCoercion.test_none_coercion_mixed_dtypes)r   r   r   r%   rj   rl   r   r	   ZEXPECTED_SINGLE_ROW_RESULTSr+   r   r  r7  r8  r9  r:  r7   r7   r7   r8   r0  -  s      
	
	
	r0  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   s   |}t dd|d}t|jdd}|j}d}|| |||d< |d u r8|j|jks-J |jj|ju s6J d S |j|u s?J d S )N
2016-01-01r!   periodstzTdeepz
2018-01-01r   )r   r
   rz   rL   _validate_setitem_valuer   _ndarray)r2   tz_naive_fixturerR   r?  dtir\   r   Znewvalr7   r7   r8   test_setitem_dt64_string_scalarq  s   
z8TestDatetimelikeCoercion.test_setitem_dt64_string_scalarboxr[   r   r   r   )TTFc           
      C   s   |}t |tr|tju rtdd}tdd|d}t|jdd}|j}|dd	g}	||	 |	|||< |d u rK|j	|j	ks@J |jj
|j
u sIJ d S |j|u sRJ d S )
Nr   r   r<  r!   r=  Tr@  z
2019-01-01z
2010-01-02)rH   r  r0   r/   r   r
   rz   rL   rB  r   rC  )
r2   rD  rR   r[   rG  r?  rE  r\   r   newvalsr7   r7   r8   test_setitem_dt64_string_values  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u s%J d S )N1 Dayr!   r>  Tr@  r   )r   r
   rz   rL   rB  rC  )r2   rR   rJ  tdir\   r   r7   r7   r8   test_setitem_td64_scalar  s   
z1TestDatetimelikeCoercion.test_setitem_td64_scalarc                 C   sx   t |tr|tju rtdd}tddd}t|jdd}|j}|dd	g}|| ||||< |jj	|j	u s:J d S )
Nr   r   rK  r!   rL  Tr@  z10 Daysz44 hours)
rH   r  r0   r/   r   r
   rz   rL   rB  rC  )r2   rR   r[   rG  rM  r\   r   rH  r7   r7   r8   test_setitem_td64_string_values  s   

z8TestDatetimelikeCoercion.test_setitem_td64_string_valuesN)r   r   r   rF  r+   r   r  ry   r%   r.   rI   ZCategoricalr   r  rI  r   ZHourrN  rO  r7   r7   r7   r8   r;  p  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   rI   r.   r
   r/   r0   r1   rF   )r3   r6   r5   r7   r7   r8   "test_extension_array_cross_section  s    

rQ  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   rP  r   r'   r   rd   rf   r   r   r   )r   r   r$   r   )
r   rI   r.   r%   r/   r
   r0   r1   rF   r   )r3   r5   r6   r7   r7   r8   +test_extension_array_cross_section_converts  s(   

 

rR  z	ser, keysr   )r   r   r   r   r   )r   r   c                 C   s   t d}}tj||d || |  W d    n1 sw   Y  |tjkr,td}}tj||d d|| |< W d    d S 1 sEw   Y  d S )NzToo many indexersr   ztoo many indices for arrayr   )r   r+   r,   r0   rF   rO   )r\   keys
indexer_liZexp_errZexp_msgr7   r7   r8   'test_ser_tup_indexer_exceeds_dimensions  s   


"rU  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   )rT  r\   resr   r7   r7   r8   (test_ser_list_indexer_exceeds_dimensions  s   
rW  valuer   rf   c                 C   s   t dg di}dddg}tjt|d | |jd< W d    n1 s&w   Y  t g dtjg dtd	d
}tjtdd | |jd< W d    d S 1 sSw   Y  d S )Nr   r   rA   z"Must have equal len keys and value(setting an array element with a sequencer   r   r   r   rd   rf   r   r   )	r   rN   r+   r,   r-   r/   r%   r.   r   )rX  r3   r4   r7   r7   r8   %test_scalar_setitem_with_nested_value  s    "r\  c                 C   s   t g d}tjtdd | ||d< W d    n1 sw   Y  t g dtd}| ||d< t| tjrD|jd | k	 sBJ d S |jd | ksMJ d S )Nr   rY  r   r   r[  r   )
r
   r+   r,   r-   r   rH   r%   rM   r/   all)rX  rR   r\   r7   r7   r8   ,test_scalar_setitem_series_with_nested_value'  s   r^  )r   r   r   c                 C   s   t dg di}| |jd< t g ddtjtjgd}t|| t g dtjg dtdd}| |jd< t| tj	rI|jd | k
 sGJ d S |jd | ksRJ d S )Nr   r   rZ  r   r   r[  r   )r   r/   r%   rj   r0   rm   r.   r   rH   rM   r]  )rX  r3   r6   r7   r7   r8   -test_scalar_setitem_with_nested_value_length19  s   
 
r_  c                 C   s   t g d}t| tjr| ||d< t g d}t|| ntjtdd | ||d< W d    n1 s7w   Y  t g dt	d}| ||d< t| tjr]|j
d | k s[J d S |j
d | ksfJ d S )Nr  r   )r   r   r   rY  r   r[  r   )r
   rH   r%   rM   r0   r1   r+   r,   r-   r   r/   r]  )rX  rR   r\   r6   r7   r7   r8   4test_scalar_setitem_series_with_nested_value_length1N  s   r`  c                  C   s   t dddgd} t  | d< t  | jd< t| jd t   t| jd t   t dddgd}t  |jd< t|jd t   d S )NOrd   rf   )r   r   r   )r
   r/   r0   r1   rF   )s1r   r7   r7   r8   +test_object_dtype_series_set_series_elementi  s   
rc  ).r   r.   r   r   r*  numpyr%   r+   Zpandas.errorsr   Zpandas.core.dtypes.commonr   r   r   ZpandasrI   r   r   r	   r
   r   r   r   Zpandas._testingZ_testingr0   Zpandas.tests.indexing.commonr   Z!pandas.tests.indexing.test_floatsr   r   r  r0  r;  rQ  rR  r   r  ry   rU  rW  r\  r^  r_  r`  rc  r7   r7   r7   r8   <module>   s`    $	    l !CS$

&
&
 
 
