o
    �¨Êh'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 s�w   Y  |  ¡ } tjt|d��# tj	t
|d�� | d  W d   ƒ n1 s´w   Y  W d   ƒ n1 sÃw   Y  d}tjt|d��, tj	t
|d�� d| d< W d   ƒ n1 sèw   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/html/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ƒs†J ‚t|jd	 tƒs�J ‚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 s‘w   Y  t jt|d�� d| dd d gg< W d   ƒ d S 1 s±w   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  |rŒt | |¡ d S | dd… dk 	¡ s˜J ‚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 sˆJ ‚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 sƒw   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|    @


ýýúþ
	


ýþ
	
		$