o
    i.                     @   s  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 ddlmZ dd Zdd	 Zd
d Zdd Zejd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(ejd)d*d+ Z)d,d- Z*d.d/ Z+d0d1 Z,d2d3 Z-d4d5 Z.	 ejd6ed7d8d9d:ed;d8d<d:ed=d8d>d:gd?d@ Z/dAdB Z0dCdD Z1dEdF Z2dGdH Z3dIdJ Z4dKdL Z5dMdN Z6G dOdP dPZ7dS )Qz test get/set & misc     )	timedeltaN)IndexingError)NA	DataFrame
IndexSlice
MultiIndexSeries	Timedelta	Timestampconcat
date_rangeperiod_rangetimedelta_rangec                  C   s<  t tjdg dd} d}tjt|d | d  W d    n1 s$w   Y  tjt|d d| d< W d    n1 s?w   Y  tjtdd | d  W d    n1 sZw   Y  |  } tjt|d | d  W d    n1 syw   Y  d	}tjt|d d| d< W d    d S 1 sw   Y  d S )
N   )abr   r   r   indexz/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randnpytestraises
IndexErrorKeyError
sort_index)smsg r!   e/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/series/indexing/test_indexing.pytest_basic_indexing   s&   




"r#   c                 C   sf   | j g d }| | }| |}t|| | |d |d  }| j|d |d  }t|| d S )Nr   
      r      )r   reindextmassert_series_equalloc)datetime_seriesindicesresultexpectedr!   r!   r"   test_basic_getitem_with_labels/   s   
r0   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-01   z
US/Eastern)periodstzr   r   r   r   )r3   r   r   )r   r   r
   r+   iloc)serr/   r.   r!   r!   r"    test_basic_getitem_dt64tz_values;   s   

r7   c                  C   sJ   t tjd} t|  | d }t||  d| d< |dk s#J d S )Nr%   .r   )r   r   r   r   fixr)   r*   all)r   r.   r!   r!   r"   test_getitem_setitem_ellipsisK   s   
r:   z4ignore:.*append method is deprecated.*:FutureWarningz$result_1, duplicate_item, expected_1   )   r'   r'   r1   r<   r'   r<   i9  dtyper<   r'   r1   c                 C   s<   |  |}| |}t|d | |d | d ksJ d S Nr<   r'   )appendr)   r*   )result_1duplicate_item
expected_1r.   r/   r!   r!   r"   $test_getitem_with_duplicates_indicesW   s   

rF   c                  C   sF   t g dg d} | jd | d ksJ d| jd< t| d d d S )Nr@   r4   r   r   r   )r   r5   r)   assert_almost_equalr   r!   r!   r"   test_getitem_setitem_integerso   s   
rI   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
}t|d tsKJ t|j| d  tsWJ t|jd tsaJ t|j| d  tsmJ t|jd	 tswJ d S )N2009041520090519B)freqr   r<   r'   r1      r   )r   r   
isinstancer
   atiatr+   r5   rngr6   r!   r!   r"   test_series_box_timestampx   s   rT   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r2   rM   r   r<   r'   r1   rN   )r   r   rO   r	   rP   rQ   r+   r5   rR   r!   r!   r"   test_series_box_timedelta   s   rW   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   rangelistr   r   r   
indexer_slr6   r!   r!   r"   test_getitem_ambiguous_keyerror   s   "r]   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   rN   )foobarr^   bahz['bam'] not in indexr   )r^   r_   r`   bam)r   r   r   r   reescaper[   r!   r!   r"   test_getitem_dups_with_missing   s   "rd   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   rX   r'   r   r   r<   )r   rY   rZ   copyr   r)   r*   )r\   r   s2r/   r!   r!   r"   test_setitem_ambiguous_keyerror   s
   rg   c                 C   sp   t j| | jd < t j| g d< t j| d< t | d sJ t | d s&J d| t | < t | d r6J d S )Nr   )r<   r'         r'   )r   NaNr   isnan)r,   r!   r!   r"   test_setitem   s   
rl   c                 C   s6   | dd }t |t |jksJ |jjdu sJ d S )Nr   rX   T)lenr   	is_unique)r,   slr!   r!   r"   test_setslice   s   rp   z&ignore:Using a non-tuple:FutureWarningc                 C   s\  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  tt | td dg }W d    n1 sXw   Y  | d d }t|| d}t jt|d | dtd d g  W d    n1 sw   Y  t jt|d d| dtd d g< W d    d S 1 sw   Y  d S )Nz0key of type tuple not found and not a MultiIndexr   r'   r   zunhashable type(: 'slice')?)	r   r   r   r)   assert_produces_warningFutureWarningslicer*   	TypeError)r,   r    r.   r/   r!   r!   r"   !test_basic_getitem_setitem_corner   s&   "ru   c                 C   s  |   }| 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| dd  s`J | dd }d|d d < |rvt| | d S | dd dk sJ d S )Nr%   rX   i	   r   r<      )	re   r   rm   r)   equalContentsr   arrayr*   r9   )string_seriesobject_seriesusing_copy_on_writeoriginalnumSlicenumSliceEndobjSlicero   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<   rL   z1 daysr   r   A)r   objectr   r+   r)   r*   r	   r(   r   insertr   nan)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
< | }| |d
 | | r6|}n t g dg dg dg dd}|jg ddd}|d u sVJ t|| d S )Nc                 S   s   i | ]}|g d qS )r@   r!   ).0r   r!   r!   r"   
<dictcomp>   s    z3test_underlying_data_conversion.<locals>.<dictcomp>r4   T)inplacer<   )r'   r'   r'   r   r   valr@   )r   r<   r   )r   r   r   r   )r   	set_indexr   re   updater)   assert_frame_equal)r|   dfreturn_valuer   df_originalr/   r!   r!   r"   test_underlying_data_conversion   s    r   c                 C   s,   | g d }t j|d< t | d rJ d S )Nr$   r<   r%   )r   rj   rk   )r,   seqr!   r!   r"   test_preserve_refs  s   
r   c                 C   s>   | }t tjt||dd}||d }|j|jksJ d S )Nsth)r   namer^   )r   r   r   r   rm   r   )%lexsorted_two_level_string_multiindexr\   r   r6   r.   r!   r!   r"   test_multilevel_preserve_name  s   r   r   z
2014-01-01rX   MSrV   z2014-01M0Hc              
   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 )Nrv      rX      r   )strr   r   aranger   r)   !assert_indexing_slices_equivalent)r   keystr1keystr2r6   SLCkeykey2r!   r!   r"   test_slice_with_negative_step%  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   rH   r!   r!   r"   test_tuple_index=  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_indexF  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   ri      d   )r   re   r+   r)   r*   )r6   r/   rhsr!   r!   r"   "test_loc_setitem_all_false_indexerP  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   r+   r   r)   r*   )r6   r.   r/   r!   r!   r"   +test_loc_boolean_indexer_non_matching_indexY  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'   )r?   r   Unalignabler   )r   r   r   r   r   r+   )r6   indexerr!   r!   r"   ,test_loc_boolean_indexer_miss_matching_indexa  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   r+   r)   r*   )r   r6   r/   r!   r!   r"   (test_loc_setitem_nested_data_enlargementi  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   r+   )r6   r!   r!   r"   test_getitem_bool_int_keyr  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   sF   t ddg}tt |j|  W d    d S 1 sw   Y  d S rA   r   r)   rq   rr   r+   selfr   r6   r!   r!   r"   $test_getitem_dict_and_set_deprecatedz     "z;TestDeprecatedIndexers.test_getitem_dict_and_set_deprecatedr'   c                 C   sT   t ddgtddgd}tt |j|  W d    d S 1 s#w   Y  d S Nr<   r'   r=   )r1   rN   r   r   r   from_tuplesr)   rq   rr   r+   r   r!   r!   r"   /test_getitem_dict_and_set_deprecated_multiindex     "zFTestDeprecatedIndexers.test_getitem_dict_and_set_deprecated_multiindexc                 C   sF   t ddg}tt d|j|< W d    d S 1 sw   Y  d S rA   r   r   r!   r!   r"   $test_setitem_dict_and_set_deprecated  r   z;TestDeprecatedIndexers.test_setitem_dict_and_set_deprecatedc                 C   sT   t ddgtddgd}tt d|j|< W d    d S 1 s#w   Y  d S r   r   r   r!   r!   r"   /test_setitem_dict_and_set_deprecated_multiindex  r   zFTestDeprecatedIndexers.test_setitem_dict_and_set_deprecated_multiindexN)
__name__
__module____qualname__r   markparametrizer   r   r   r   r!   r!   r!   r"   r   y  s    
(

(r   )8__doc__datetimer   rb   numpyr   r   pandas.errorsr   pandasr   r   r   r   r   r	   r
   r   r   r   r   pandas._testing_testingr)   r#   r0   r7   r:   r   filterwarningsr   r   rF   rI   rT   rW   r]   rd   rg   rl   rp   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r!   r!   r"   <module>   st    4

	





	
		