o
    _~#g'A                  
   @   sp  d Z ddlm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mZmZmZmZmZmZmZmZmZmZmZ ddlmZ dd Zdd	 Zd
d Zdd Zdd Zdd Z ej!"dedg ddeddieddie#dgeg dg ddedg diedg diggdd Z$dd Z%dd Z&d d! Z'd"d# Z(d$d% Z)d&d' Z*d(d) Z+d*d+ Z,d,d- Z-d.d/ Z.d0d1 Z/d2d3 Z0d4d5 Z1d6d7 Z2ej!"d8ed9d:d;d<ed=d:d>d<ed?d:d@d<gdAdB Z3dCdD Z4dEdF Z5dGdH Z6dIdJ Z7dKdL Z8dMdN Z9dOdP Z:dQdR Z;ej!"dSi dTdUigej!"dVg dWdWge<ddXe=g gdYdZ Z>G d[d\ d\Z?G d]d^ d^Z@dS )_z test get/set & misc     )	timedeltaN)IndexingError)NA	DataFrameIndex
IndexSlice
MultiIndexNaTSeries	Timedelta	Timestampconcat
date_rangeisnaperiod_rangetimedelta_rangec               	   C   s  t tjddg dd} d}d}tjt|d# tj	t
|d | d  W d    n1 s1w   Y  W d    n1 s@w   Y  tjt|d# tj	t
|d d| d< W d    n1 scw   Y  W d    n1 srw   Y  tjtd	d | d
  W d    n1 sw   Y  |  } tjt|d# tj	t
|d | d  W d    n1 sw   Y  W d    n1 sw   Y  d}tjt|d, tj	t
|d d| d< W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )N      )abr   r   r   indexz>Series.__[sg]etitem__ treating keys as positions is deprecatedz/index 5 is out of bounds for axis 0 with size 5matchr   z^'c'$cz7index 5 is out of bounds for axis (0|1) with size 5|^5$)r
   nprandomdefault_rngstandard_normalpytestraises
IndexErrortmassert_produces_warningFutureWarningKeyError
sort_index)swarn_msgmsg r*   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/series/indexing/test_indexing.pytest_basic_indexing   sF   




$r,   c                 C   s\   | }t g d|d}ttd|d}|d }tddgt ddg|dd}tj||dd	 d S )
N   r   r.   dtype   r   r.   r   r   Tcheck_exactr   r
   ranger"   assert_series_equal)any_numeric_dtyper0   idxserresultexpectedr*   r*   r+   6test_getitem_numeric_should_not_fallback_to_positional9   s   r<   c                 C   sP   | }t g d|d}ttd|d}d|d< tg d|d}tj||dd	 d S )
Nr-   r/   r1   r   
   r.   )r=   r.   r=   Tr2   r4   )r7   r0   r8   r9   r;   r*   r*   r+   6test_setitem_numeric_should_not_fallback_to_positionalC   s   r>   c                 C   sf   | j g d }| | }| |}t|| | |d |d  }| j|d |d  }t|| d S )Nr   r=      r   r   )r   reindexr"   r6   loc)datetime_seriesindicesr:   r;   r*   r*   r+   test_basic_getitem_with_labelsM   s   
rE   c                  C   sj   t tddddg dd} tddd}| jd }||ksJ | jd	 }||ks)J | d }||ks3J d S )
Nz
2011-01-01r1   z
US/Eastern)periodstzr   r   r   r   )rG   r   r   )r
   r   r   rB   iloc)r9   r;   r:   r*   r*   r+    test_basic_getitem_dt64tz_valuesY   s   

rJ   c                 C   sx   t tjdd}|d }t|| t| d|d< W d    n1 s)w   Y  | s8|dk s:J d S d S )Nr   r=   .r   )	r
   r   r   r   r   r"   r6   assert_cow_warningall)using_copy_on_writewarn_copy_on_writer'   r:   r*   r*   r+   test_getitem_setitem_ellipsish   s   
rO   z$result_1, duplicate_item, expected_1   )r.   r   r   r1   r.   r   r.   i9  r/   r.   r   r1   c                 C   s<   |  |}| |}t|d | |d | d ksJ d S )Nr.   r   )_appendr"   r6   )result_1duplicate_item
expected_1r:   r;   r*   r*   r+   $test_getitem_with_duplicates_indicest   s   

rW   c                  C   sF   t g dg d} | jd | d ksJ d| jd< t| d d d S )NrR   rH   r   r   r   )r
   rI   r"   assert_almost_equalr'   r*   r*   r+   test_getitem_setitem_integers   s   
rZ   c                  C   s$  t dddd} t| }t|d tsJ t|jd tsJ t|jd ts(J t|jd ts2J t|jd	 ts<J t| | d
}d}tj	t
|d t|d tsUJ W d    n1 s_w   Y  t|j| d  tspJ t|jd tszJ t|j| d  tsJ t|jd	 tsJ d S )N2009041520090519B)freqr   r.   r   r1      r   z;Series.__getitem__ treating keys as positions is deprecatedr   )r   r
   
isinstancer   atiatrB   rI   r"   r#   r$   )rngr9   r)   r*   r*   r+   test_series_box_timestamp   s    rd   c                  C   s|   t dddd} t| }t|d tsJ t|jd tsJ t|jd ts(J t|jd ts2J t|jd	 ts<J d S )
Nz	1 day 1 sr   hrF   r^   r   r.   r   r1   r_   )r   r
   r`   r   ra   rb   rB   rI   )rc   r9   r*   r*   r+   test_series_box_timedelta   s   rg   c                 C   s\   t tdttdddd}tjtdd | |d  W d    d S 1 s'w   Y  d S )	Nr=   r      r   r   z^1$r   r.   )r
   r5   listr   r    r%   
indexer_slr9   r*   r*   r+   test_getitem_ambiguous_keyerror   s   "rl   c                 C   s\   t g dg d}tjttdd | |g d  W d    d S 1 s'w   Y  d S )N)r.   r   r1   r_   )foobarrm   bahz['bam'] not in indexr   )rm   rn   ro   bam)r
   r   r    r%   reescaperj   r*   r*   r+   test_getitem_dups_with_missing   s   "rs   c                 C   sX   t tdttdddd}| }d| |d< t|t dgdgdg}t|| d S )Nr=   r   rh   r   r   r   r.   )r
   r5   ri   copyr   r"   r6   )rk   r'   s2r;   r*   r*   r+   test_setitem_ambiguous_keyerror   s
   rv   c                 C   sz   t j| | jd < t j| jg d< t j| jd< t | jd s J t | jd s*J d| t | < t | jd r;J d S )Nr   )r.   r         r   )r   nanr   rI   isnan)rC   r*   r*   r+   test_setitem   s   r{   c                 C   s6   | dd }t |t |jksJ |jjdu sJ d S )Nr   rh   T)lenr   	is_unique)rC   slr*   r*   r+   test_setslice   s   r   c                 C   sp  d}t jt|d | d d df  W d    n1 sw   Y  t jt|d d| d d df< W d    n1 s;w   Y  d}t jt|d | td dg  W d    n1 s\w   Y  | td df }| d d }t|| d}t jt|d | dd d gg  W d    n1 sw   Y  t jt|d d| dd d gg< W d    d S 1 sw   Y  d S )Nz0key of type tuple not found and not a MultiIndexr   r   z Indexing with a single-item listr   zunhashable type(: 'slice')?)r   r    r%   
ValueErrorslicer"   r6   	TypeError)rC   r)   r:   r;   r*   r*   r+   !test_basic_getitem_setitem_corner   s*   "r   c           	      C   s4  |   }| dd }| dd  }|dd }| jd |jvs J |jd |jvs*J t|t|jks5J | |jd  ||jd  ksEJ |jd | jd ksQJ tt|t| dd   | dd }t| d|d d < W d    n1 s}w   Y  |rt| | d S | dd dk	 sJ d S )Nr=   rh   i	   r   r.      )
rt   r   r|   r"   assert_numpy_array_equalr   arrayrK   r6   rL   )	string_seriesobject_seriesrM   rN   originalnumSlicenumSliceEndobjSlicer~   r*   r*   r+   
test_slice   s"     r   c                  C   s   t g td} td| jd< t| t tddgd | | j	dd} t| t t
jtdgddgd td| jd< t tdddgd}t| | d S )Nr/   r.   r]   z1 daysr   r   A)r
   objectr   rB   r"   r6   r   rA   r   insertr   ry   )r'   r;   r*   r*   r+   test_timedelta_assignment  s   "r   c                 C   s   t dd dD }|jg ddd}|d u sJ tdgdgd}d	|d
< | }| | rJt  |d
 | W d    n1 sBw   Y  |}n>tjtdd |d
 | W d    n1 scw   Y  t g dg dg dg dd}|jg ddd}|d u sJ t	|| d S )Nc                 S   s   i | ]}|g d qS )rR   r*   ).0r   r*   r*   r+   
<dictcomp>  s    z3test_underlying_data_conversion.<locals>.<dictcomp>rH   T)inplacer.   )r   r   r   r   r   valzinplace methodr   rR   )r   r.   r   )r   r   r   r   )
r   	set_indexr
   rt   r"   raises_chained_assignment_errorupdater#   r$   assert_frame_equal)rM   dfreturn_valuer'   df_originalr;   r*   r*   r+   test_underlying_data_conversion  s*   
r   c                 C   s2   | j g d }tj|j d< t| j d rJ d S )Nr?   r.   r=   )rI   r   ry   rz   )rC   seqr*   r*   r+   test_preserve_refs6  s   r   c                 C   sD   | }t tjdt||dd}||d }|j|jks J d S )Nr   sth)r   namerm   )r
   r   r   r   r   r|   r   )%lexsorted_two_level_string_multiindexrk   r   r9   r:   r*   r*   r+   test_multilevel_preserve_name<  s   r   r   z
2014-01-01rh   MSrf   z2014-01M0re   c              
   C   s   t | d }t | d }ttd| }t}|| d fD ]O}t|||d d |dd d  t||d |d |d dd  || d fD ]$}t||||d |ddd  t||||d |ddd  qFqd S )Nr      rh      r   )strr
   r   aranger   r"   !assert_indexing_slices_equivalent)r   keystr1keystr2r9   SLCkeykey2r*   r*   r+   test_slice_with_negative_stepI  s   	"""$r   c                  C   sP   t ddgddgd} | d dksJ | d dksJ d| d< | d dks&J d S )Nr.   r   )r   )r   r   r1   )r
   rY   r*   r*   r+   test_tuple_indexa  s
   r   c                  C   sb   t dt d} }tddg| |gd}||  dksJ || dks#J d||< || dks/J d S )Nr   r   r.   r   r   r1   )	frozensetr
   )idx0idx1r'   r*   r*   r+   test_frozenset_indexj  s   r   c                  C   sN   t ddgddgd} |  }t ddgddgd}|| j| dk< t| | d S )	Nr.   r   r   r   r   rx      d   )r
   rt   rB   r"   r6   )r9   r;   rhsr*   r*   r+   "test_loc_setitem_all_false_indexert  s
   r   c                  C   s<   t dg} | jt tdgdd }t g dd}t|| d S )Nr.   Fbooleanr/   int64)r
   rB   r   r"   r6   r9   r:   r;   r*   r*   r+   +test_loc_boolean_indexer_non_matching_index}  s   
r   c                  C   s^   t dg} t tdgdddgd}tjtdd | j|  W d    d S 1 s(w   Y  d S )Nr.   Fr   r   )r0   r   Unalignabler   )r
   r   r   r    r   rB   )r9   indexerr*   r*   r+   ,test_loc_boolean_indexer_miss_matching_index  s
   
"r   c                  C   sB   t ddgi} td| i}| |jd< t| | d}t|| d S )Nr   r.   label	new_label)r   r   )r   r
   rB   r"   r6   )r   r9   r;   r*   r*   r+   (test_loc_setitem_nested_data_enlargement  s
   
r   c                  C   sL   t dtg dddd} | jdd }t dtdgddd}t|| d S )Nr.   )r   r.   r   Int64r/   r   r   r1   )r
   r   rB   r"   r6   r   r*   r*   r+   'test_loc_ea_numeric_index_oob_slice_end  s   r   c                  C   sL   t ddd} tjtdd | jd  W d    d S 1 sw   Y  d S )Nr.   r   )TFr   r   )r
   r   r    r%   rB   )r9   r*   r*   r+   test_getitem_bool_int_key  s   "r   r   r   xr   Fr   c                 C   s6   t dddgi|}| }d|j| < t|| d S )Nr   r.   r         ?)r   rt   rB   r"   r   )r   r   r   r;   r*   r*   r+   test_setitem_empty_indexer  s   
r   c                   @   s   e Zd Zejddhddigdd Zejddhddidhdfddidfgdd Zejddhddigdd	 Zejddhddidhdfddidfgd
d Z	dS )TestDeprecatedIndexersr   r.   c                 C   sJ   t ddg}tjtdd |j|  W d    d S 1 sw   Y  d S Nr.   r   as an indexer is not supportedr   r
   r   r    r   rB   selfr   r9   r*   r*   r+   $test_getitem_dict_and_set_deprecated     "z;TestDeprecatedIndexers.test_getitem_dict_and_set_deprecatedr   c                 C   sX   t ddgtddgd}tjtdd |j|  W d    d S 1 s%w   Y  d S Nr.   r   rQ   )r1   r_   r   r   r   r
   r   from_tuplesr   r    r   rB   r   r*   r*   r+   /test_getitem_dict_and_set_deprecated_multiindex     "zFTestDeprecatedIndexers.test_getitem_dict_and_set_deprecated_multiindexc                 C   sJ   t ddg}tjtdd d|j|< W d    d S 1 sw   Y  d S r   r   r   r*   r*   r+   $test_setitem_dict_and_set_disallowed  r   z;TestDeprecatedIndexers.test_setitem_dict_and_set_disallowedc                 C   sX   t ddgtddgd}tjtdd d|j|< W d    d S 1 s%w   Y  d S r   r   r   r*   r*   r+   /test_setitem_dict_and_set_disallowed_multiindex  r   zFTestDeprecatedIndexers.test_setitem_dict_and_set_disallowed_multiindexN)
__name__
__module____qualname__r   markparametrizer   r   r   r   r*   r*   r*   r+   r     s    
(

(r   c                
   @   s   e Zd Zdd ZddddeededgZddge	dd	g d
e	dddgZ
ejded	ded	ed	g ejde
dd Zejdeddedg ejde
dd Zejdedg ejde
dd ZdS )TestSetitemValidationc                 C   s  d}t |}| }tj||d |||< | }W d    n1 s%w   Y  tj||d ||j|< | }W d    n1 sEw   Y  tj||d ||j|< | }W d    n1 sew   Y  tj||d ||d d < W d    d S 1 sw   Y  d S )Nz3Setting an item of incompatible dtype is deprecatedr   )rq   rr   rt   r"   r#   rI   rB   )r   r9   invalidr   warnr)   orig_serr*   r*   r+   _check_setitem_invalid  s$   





"z,TestSetitemValidation._check_setitem_invalidy      ?       @True1z1.0r	   r   r.   TFFNr   g      ?r   c                 C   s$   t g ddd}| |||t d S )Nr   boolr/   r
   r   r$   )r   r   r   r9   r*   r*   r+   #test_setitem_validation_scalar_bool  s   z9TestSetitemValidation.test_setitem_validation_scalar_boolTr   c                 C   sH   t g d|d}t|r|turt|sd }nt}| |||| d S )NrR   r/   )r
   r   r	   r   isnatr$   r   )r   r   any_int_numpy_dtyper   r9   r   r*   r*   r+   "test_setitem_validation_scalar_int  s
   z8TestSetitemValidation.test_setitem_validation_scalar_intc                 C   s$   t g d|d}| |||t d S )N)r.   r   Nr/   r   )r   r   float_numpy_dtyper   r9   r*   r*   r+   $test_setitem_validation_scalar_float  s   z:TestSetitemValidation.test_setitem_validation_scalar_float)r   r   r   r   r	   r   
datetime64timedelta64_invalid_scalarsr   	_indexersr   r   r   r   float64r   r   r   r*   r*   r*   r+   r     s,    "	r   )A__doc__datetimer   rq   numpyr   r   pandas.errorsr   pandasr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   pandas._testing_testingr"   r,   r<   r>   rE   rJ   rO   r   r   r   rW   rZ   rd   rg   rl   rs   rv   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+   <module>   s|    @



	



	
		$