o
    i                     @   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 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$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S )/z test fancy indexing & misc     N)datetime)IndexingError)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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
g d
|j|jdd df< W d    n1 sCw   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 r6   ^/var/www/edux/Edux_v2/venv/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	4 t
jtd
d	 tddd |dd< W d    n1 sFw   Y  W d    d S W d    d S 1 s^w   Y  d S )Nr   r   r   r   r   r   r   r   r   zlabel-basedr"   y              ?r   r   )r   r   r%   r&   r'   r(   r)   r*   r+   r,   r/   assert_produces_warningFutureWarning)r1   r2   r3   r6   r6   r7   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 r+|tjtjfv r+|d |r+|d |tu s4|tju r@|d |r@|d |tj	u sN|tu rS|tju rS|d |t
u ra|tju ra|d	 t|tjrq|tju rq|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   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pdIntervalIndexTimedeltaIndexDatetimeIndexPeriodIndexlen
MultiIndextyper   _valuesndarrayjoin
IndexErrorr,   NotImplementedErrorr*   r+   )r1   r   frame_or_seriesindexer_sliusing_array_managerobjidxrnd3msgsr3   potential_errorsr6   r6   r7   test_getitem_ndarray_3dK   s>   















"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    d S 1 s?w   Y  d S )	Nr   r<   r=   zCannot set values with ndim > rB   )r?   zCannot set values with ndim > 1r@   rA   z,Array conditional must be same shape as selfr   r   )r   r%   rC   rD   r/   rF   r,   ndimrS   r*   r+   )	r1   r   rV   rW   rY   rZ   r[   errr3   r6   r6   r7   test_setitem_ndarray_3du   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	   r/   r0   )r1   keyr2   r4   r5   serr6   r6   r7   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s"J |j}tddtjg}t|| d S )Nr   columnsr   r   r!   )r   r.   r%   infr   r   r/   assert_index_equalr1   r2   r4   r5   r6   r6   r7   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sJ d|jd< t dtjdd	ddtjd	g}t|| d S )
Nar   r!   r   rl   bcr   )r   ro   rl   rn   ro   )r   r%   nanr   r(   r.   r/   assert_frame_equalr1   r2   r5   r6   r6   r7   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 s=J t	|d sEJ d S )Nr    int64r   r   r!   abr   r   bazr   rg   rl   r   r   r!   r"   r   r   rz   )
r   r%   r&   reshapelistcopyr.   r/   rr   r   )r1   ru   r2   leftrightr6   r6   r7   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 s:J t|d sBJ d S )Nr    rw   r   r   r!         $@rx   ry   r{   rv   r|   )r   rv   g?)g333333?g?g      ?r   rz   )	r   r%   r&   r~   r   r.   r/   rr   r   )r1   r   r   r6   r6   r7   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!   )rl   rl   rn   rn   rl   )rn   rl   rl   )r/   makeCustomDataframerg   r   ri   rj   r6   r6   r7   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   aaaaaaarf   r"   )r   r   headstrrg   rF   r/   rr   r1   r2   r4   r6   r6   r7   &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)testtest1otherAr   BCr   r   r   r   r   g      @r    dro   )r   r   Enot in indexr   )FGHr   r   r   )	r   r   r.   r/   rr   r   r*   r+   KeyError)r1   r2   rowsr5   r4   r6   r6   r7   %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    d S 1 s)w   Y  d S )Nr   r!   AABCDr   z;"None of [Index(['E'], dtype='object')] are in the [index]"r   r   )r   r%   rC   randnr   r*   r+   r   reescaper.   )r1   dfnur6   r6   r7   +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.   )r1   r   r2   r6   r6   r7   &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   r1   r2   r6   r6   r7   #test_dups_fancy_indexing_non_unique)  s   "z-TestFancy.test_dups_fancy_indexing_non_uniquec                 C   sd   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   rf   r   r   )r   r   r   )r   r%   rC   r   r*   r+   r   r.   r   r6   r6   r7   test_dups_fancy_indexing20  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!   rl   rn   r{   r   r    r   )r   r%   rC   r   rF   r.   r/   rr   )r1   r2   r5   r4   r6   r6   r7   test_dups_fancy_indexing38  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/   r0   )r1   
indexer_slrd   r5   r4   r6   r6   r7   test_duplicate_int_indexingK  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  rm   rl   c                 S      | dkrdS | S )Nr   _r6   xr6   r6   r7   <lambda>Z      z9TestFancy.test_indexing_mixed_frame_bug.<locals>.<lambda>r   r   c                 S   r   )Nr   -----r6   r   r6   r6   r7   r   ^  r   )r   r   r   )r   applyr.   rF   )r1   r2   idxtempr6   r6   r7   test_indexing_mixed_frame_bugR  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 s*w   Y  |d jd	 |jd	 ks=J d S )
N)r   r   rl   )            rf   z'[26, -8] not in index'r   )r      ir   r   )	r   r%   rC   r*   r+   r   r   r   shaper   r6   r6   r7    test_multitype_list_index_accessb  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 )%NnonQC101112132435464748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   rf   )	r   r%   rq   reset_index	set_indexreindexrg   r/   rr   r   r6   r6   r7   test_set_index_nanj  s   C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)rl   rn   rl   rn   rl   rn   )r   r   r   r   r   r   r       )FCPFcol1col2r   r   r   r   r   )r!   r!   rl   rn   )r   r   r"   r    r   r   r      r   r   )r   r   r         @       @r   )r   r   r   r%   rq   rF   r   r   isnar	   r.   r/   rr   values)r1   r2   df2maskcolsdftr5   r6   r6   r7   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   r   r.   r/   rr   )r1   r2   r5   r   colr6   r6   r7   "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   r{   r   r   r   )r   rF   r/   rr   r   r6   r6   r7   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   r6   r6   r7   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   r6   r6   r7   test_string_slice_empty  s   
"z!TestFancy.test_string_slice_emptyc                 C   s:  t g dgtdd}| }d}tjt|d  |jd d ddf tj	|jd d ddf< W d    n1 s;w   Y  t g dgtdd}t
|| | }tjt|d! |jd d ddf jd	d	d
|jd d ddf< W d    n1 sw   Y  t g dgtdd}t
|| | }tjt|d |jd d df tj	|jd d df< W d    n1 sw   Y  t g dgtdd}t
|| | }tjt|d  |jd d ddgf tj	|jd d ddgf< W d    n	1 sw   Y  t g dgtdd}t
|| d S )N)123.4r   r   r   ABCDEFGrf   .will attempt to set the values inplace insteadr   r   r   )r   r   r  r  r   r   r   T)r   numericr   )r   r
  r  r  r   r   r   r   r   )r	  r   r!   r  r   r   r   )r   r   r   r/   r9   DeprecationWarningrF   astyper%   rw   rr   _convertr.   )r1   df_origr2   r3   r5   r6   r6   r7   test_astype_assignment   sH   24*2z TestFancy.test_astype_assignmentc                 C   s   t dg di}d}tjt|d |d tj|jd d df< W d    n1 s+w   Y  t dg di}t|| t dg di}tjt|d |d tj|j	d d df< W d    n1 sgw   Y  t dg di}t|| d S )Nr   )r   r   r   r   r  r   r   )r   r   r!   r"   )
r   r/   r9   r  r  r%   rw   rF   rr   r.   )r1   r2   r3   r5   r6   r6   r7   (test_astype_assignment_full_replacementsI  s     z2TestFancy.test_astype_assignment_full_replacementsindexerc                 C   s~  t tdt tdtdddfD ]W}|j sJ | }d||d< |j s+J ||d dks5J | }d||d< |j}d|vrPt|j dg }t	|j| | }d||d< |j
 shJ qt tdtd	dfD ]G}|j s~J | }d||d< |j sJ ||d dksJ | }d||d< t	|j|j | }d||d< |j
 sJ qud S )
Nr   r   r    r   r   g?r   0g      @)r	   r   r   
is_integerr   is_floatingr   tolistr/   ri   	is_objectr%   r&   )r1   r  ss2expr6   r6   r7   test_index_type_coercionX  s8   &
z"TestFancy.test_index_type_coercionN)(__name__
__module____qualname____doc__r8   r;   r^   ra   re   rk   rt   r*   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r/   getitemr.   r  r6   r6   r6   r7   r   %   sD    *


O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   sT   t tjdtjdd}d|d< t |d |d dgd d}t|| d S )Nr   )r   r   rl   r   r   )r   r   rl   )r   r%   rC   randr/   rr   rs   r6   r6   r7   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   r}   rm   r   r   r   r   r   r   r   )r   r   r   )r   r.   r   r/   rr   rs   r6   r6   r7   &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   r}   rm   r*  r   )r   r   r.   r   r/   rr   r1   r2   r   r6   r6   r7    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< qig 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 )	Nbcdr   r   r"   joejolier   r!   )r   slicer   r.   r/   rr   rF   )r2   rhs	right_loc
right_iloclbl_oneidx_one	slice_onelbl_twoidx_two	slice_twor   r6   r6   r7   	run_tests  s   z.TestMisc.test_rhs_alignment.<locals>.run_testsr   r   r"   )jimr/  r0  jolineabcderw   )rg   r   r   r!   r   r   )r      r   r    r   r/  )r      r   r   r   r0  r   r(   z@{})r   z@-28z@-20z@-12g      1@)z@2g      :g      2g      $z@18)
r%   r&   r~   r   r   rF   r   r  mapformat)	r1   r;  xsr   r2   r2  r4  r3  framer6   r6   r7   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   rB  r   )rI   
IndexSlicer   r	   r%   r&   r/   !assert_indexing_slices_equivalent)r1   r   SLCrd   r6   r6   r7   )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&   rN   r*   r+   r,   )r1   r   r   rV   rY   r6   r6   r7    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   zrb   )r   r   r    )r   r   r   )r   yr   r   c   r   )r   r   r   )r   r   r   )r   r   g     X@)r   r   r   r.   r/   rr   )r1   r   r2   r5   r2  r6   r6   r7   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   )rn   b2b3rm   rl   r   )r   rF   r.   r   r%   rw   r/   r0   r,  r6   r6   r7   *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/   r0   )r1   r>   r  r6   r6   r7   !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   ABCr{   r   rx   ABr   r   r   r   )
r   r%   r&   r~   r   notnullr-   rq   r/   rr   )r1   r2   index_dfr4   r5   r6   r6   r7   #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!   rm   )r.   rF   atiat)r   getattrweakrefref)r1   r2   r$   wrr6   r6   r7   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)dropna)r	   value_countsr.   )r1   nulls_fixturer2   vcresult1result2r5   r6   r6   r7   test_label_indexing_on_nan  s   
z#TestMisc.test_label_indexing_on_nanN)r   r!  r"  r)  r+  r-  rG  r*   r$  r%  r   r%   r&   linspacerM  rN  rS  rV  rY  r^  re  rl  r6   r6   r6   r7   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   ry   )Nr   rz   r5   c                 C   s@   |\}}t d|i}d |jddgf< t d|i}t|| d S Nr   r   r   r.   r/   rr   r1   r5   
start_dataexpected_resultstart_dataframeexpected_dataframer6   r6   r7   test_coercion_with_loc0  s
   z0TestDataframeNoneCoercion.test_coercion_with_locc                 C   sH   |\}}t d|i}d ||d |d d k< t d|i}t|| d S rp  )r   r/   rr   rr  r6   r6   r7   (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 rp  rq  rr  r6   r6   r7   $test_none_coercion_loc_and_dataframeD  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*  ro  r   r   r!   rp   )rl   rn   ro   r   r   r   r   )Nrn   ro   )r   r   rF   r%   rq   r   r/   rr   )r1   ru  r  r6   r6   r7   test_none_coercion_mixed_dtypesN  s     


z9TestDataframeNoneCoercion.test_none_coercion_mixed_dtypesN)r   r!  r"  r%   rq   r   r   EXPECTED_SINGLE_ROW_RESULTSr*   r$  r%  rw  rx  ry  rz  r6   r6   r6   r7   rn  "  s     
	
	
	rn  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   sz   |}t dd|d}t|}|j}d}|| |||d< |d u r4|j|jks)J |jj|ju s2J d S |j|u s;J d S )N
2016-01-01r!   periodstzz
2018-01-01r   )r
   r	   rQ   _validate_setitem_valuer   _data)r1   tz_naive_fixturerW   r  dtird   r   newvalr6   r6   r7   test_setitem_dt64_string_scalare  s   
z8TestDatetimelikeCoercion.test_setitem_dt64_string_scalarboxrc   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 rG|j|jks<J |jj	|j	u sEJ d S |j|u sNJ d S )Nr   r   r}  r!   r~  z
2019-01-01z
2010-01-02)
rH   r1  r/   r.   r
   r	   rQ   r  r   r  )
r1   r  rW   rc   r  r  r  rd   r   newvalsr6   r6   r7   test_setitem_dt64_string_valuesz  s   

z8TestDatetimelikeCoercion.test_setitem_dt64_string_valuesscalarz3 Daysr"   c                 C   sF   t ddd}t|}|j}|| |||d< |jj|ju s!J d S )N1 Dayr!   r  r   )r   r	   rQ   r  r  )r1   rW   r  tdird   r   r6   r6   r7   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 s6J d S )Nr   r   r  r!   r  z10 Daysz44 hours)	rH   r1  r/   r.   r   r	   rQ   r  r  )r1   rW   rc   r  r  rd   r   r  r6   r6   r7   test_setitem_td64_string_values  s   

z8TestDatetimelikeCoercion.test_setitem_td64_string_valuesN)r   r!  r"  r  r*   r$  r%  r   r%   r-   rI   Categoricalr   r1  r  r   Hourr  r  r6   r6   r6   r7   r|  d  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   rl   rn   r   r   r   r#   r   )r   rI   r-   r	   r.   r/   r0   rF   )r2   r5   r4   r6   r6   r7   "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   rw   r   rl   rn   r   r   r   )r   r   r$   r   )
r   rI   r-   r%   r.   r	   r/   r0   rF   r  )r2   r4   r5   r6   r6   r7   +test_extension_array_cross_section_converts  s(   

 

r  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+   r/   rF   rT   )rd   keys
indexer_liexp_errexp_msgr6   r6   r7   'test_ser_tup_indexer_exceeds_dimensions  s   


"r  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   r/   r0   )r  rd   resr  r6   r6   r7   (test_ser_list_indexer_exceeds_dimensions  s   
r  valuer   rn   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   rB   z"Must have equal len keys and value(setting an array element with a sequencer   r   r   r   rl   rn   r   r   )	r   rS   r*   r+   r,   r.   r%   r-   r  )r  r2   r3   r6   r6   r7   %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   r  r   r   r  r   )
r	   r*   r+   r,   r  rH   r%   rR   r.   all)r  rW   rd   r6   r6   r7   ,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   r  r   r   r  r   )r   r.   r%   rq   r/   rr   r-   r  rH   rR   r  )r  r2   r5   r6   r6   r7   -test_scalar_setitem_with_nested_value_length1-  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   r  r   r  r   )r	   rH   r%   rR   r/   r0   r*   r+   r,   r  r.   r  )r  rW   rd   r5   r6   r6   r7   4test_scalar_setitem_series_with_nested_value_length1B  s   r  ).r#  r-   r   r   rb  numpyr%   r*   pandas.errorsr   pandas.core.dtypes.commonr   r   pandasrI   r   r   r   r	   r
   r   r   pandas._testing_testingr/   pandas.core.apir   pandas.tests.indexing.commonr   !pandas.tests.indexing.test_floatsr   r   r'  rn  r|  r  r  r$  r%  r   r  r  r  r  r  r  r6   r6   r6   r7   <module>   s`    $	    g BS$

&
&
 
 