a
    é´«jš:  ã                   @   sÈ   d dl Z d dlZd dl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lmZ G dd„ dƒZG dd„ dƒZG dd	„ d	ƒZG d
d„ dƒZG dd„ dƒZG dd„ dƒZdS )é    N)ÚCategoricalÚCategoricalDtypeÚCategoricalIndexÚ	DataFrameÚ
DateOffsetÚDatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚconcatÚ
date_rangeÚget_dummiesÚperiod_range)ÚSparseArrayc                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestGetitemc                 C   sp   t g d¢ddggddgddggd�}tdtdƒ|d	�}tjtd
d�� |d
  W d   ƒ n1 sb0    Y  d S )N)Za_lotZonlyoneÚ
notevenonei²  Ú é   r   )ÚlevelsÚcodeséÿÿÿÿé   )ÚindexÚcolumnsr   ©Úmatch)r	   r   ÚrangeÚpytestÚraisesÚKeyError)ÚselfÚmiÚdf© r$   úg/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/indexing/test_getitem.pyÚ test_getitem_unused_level_raises   s    þz,TestGetitem.test_getitem_unused_level_raisesc                 C   sr   t ddd�}ttj d¡ d¡|d�}||d  }t ||jd d …df ¡ |d }t ||jd d …df ¡ d S )Nz1/1/2000é   )Úperiodsé   )é
   r'   ©r   r   )	r   r   ÚnpÚrandomÚdefault_rngÚstandard_normalÚtmÚassert_series_equalÚiloc)r!   Úrngr#   Útsr$   r$   r%   Útest_getitem_periodindex&   s    z$TestGetitem.test_getitem_periodindexc                 C   sZ   t tdƒtdƒgƒ}tddgddggdddg|d�}t|ƒ}|t|jƒ }t ||¡ d S )Nz
12-31-1999z
12-31-2000r   r   Úbool)Údtyper   r   )r   r   r   r   Úlistr   r0   Úassert_frame_equal)r!   ZcatsÚexpectedZdummiesÚresultr$   r$   r%   Ú1test_getitem_list_of_labels_categoricalindex_cols0   s
     z=TestGetitem.test_getitem_list_of_labels_categoricalindex_colsc                 C   sx   t ddgƒ}td|iƒ}t|dd�}|d }t ||¡ |jd d …df }t ||¡ |jd d …df }t ||¡ d S )Nr   r   ÚA©Úname)r   r   r
   r0   r1   r2   Úloc)r!   Údatar#   r:   r;   r$   r$   r%   Ú0test_getitem_sparse_column_return_type_and_dtype9   s    z<TestGetitem.test_getitem_sparse_column_return_type_and_dtypec                 C   s<   t ddggtddgdd�d�}|j}|d }t ||¡ d S )Nr   r)   r=   ÚBÚstring©r7   r+   )r   r   r=   r0   r1   ©r!   r#   r;   r:   r$   r$   r%   Útest_getitem_string_columnsH   s    z'TestGetitem.test_getitem_string_columnsN)Ú__name__Ú
__module__Ú__qualname__r&   r5   r<   rB   rG   r$   r$   r$   r%   r      s
   
	r   c                	   @   s€   e Zd Zdd„ Zdd„ Zdd„ Zejjde	e
eedd	„ d
d	„ gg d¢d�ej dddg¡dd„ ƒƒZdd„ Zdd„ Zdd„ ZdS )ÚTestGetitemListLikec                 C   s^   t dgdgdgdœƒ}g d¢|_tjtdd�� |g d¢  W d   ƒ n1 sP0    Y  d S )Ng      ð?g       @ç      @)ÚxÚyÚz)rM   rM   rO   z\['y'\] not in indexr   )r   r   r   r   r    ©r!   r#   r$   r$   r%   Útest_getitem_list_missing_keyQ   s    
z1TestGetitemListLike.test_getitem_list_missing_keyc                 C   sh   t tj d¡ d¡tdƒd�}d|j_|ddg }|jjdksBJ ‚|jd d …dd …f }t	 
||¡ d S )Nr)   )é   rR   ZAABCr+   ÚfoorC   ÚC)r   r,   r-   r.   r/   r8   r   r?   r2   r0   r9   rF   r$   r$   r%   Útest_getitem_list_duplicates[   s    ÿz0TestGetitemListLike.test_getitem_list_duplicatesc                 C   sb   t g d¢g d¢gg d¢d�}d}tjtt |¡d�� |dg  W d   ƒ n1 sT0    Y  d S )N©r   r)   r   ©rR   r'   é   ©ÚarZ   Úbr+   z"None of [Index(['baf'], dtype=r   Zbaf)r   r   r   r    ÚreÚescape)r!   r#   Úmsgr$   r$   r%   Útest_getitem_dupe_colsh   s    z*TestGetitemListLike.test_getitem_dupe_colsÚidx_typec                 C   s   t t| tt| ƒƒƒƒS ©N)ÚdictÚzipr   Úlen©Úkeysr$   r$   r%   Ú<lambda>u   ó    zTestGetitemListLike.<lambda>c                 C   s   t t| tt| ƒƒƒƒ ¡ S ra   )rb   rc   r   rd   rf   re   r$   r$   r%   rg   v   rh   )r8   Úiterr   Úsetrb   Ú	dict_keys)Úidsr   r   r)   c                 C   s*  |dkr|d }}n*t tj d¡ d¡tg d¢dd�d�}d	}|jd |jd
 g}||ƒ}t||ƒƒ}t|t	t
fƒr®tjtdd�� ||  W d   ƒ n1 s 0    Y  d S || }	|jd d …|f }
|jj|
j_t |	|
¡ |||g ƒ}tjtdd�� ||  W d   ƒ n1 �s0    Y  d S )Nr   Úfoodr)   )é   r   ))rS   Úbar)ZbazZqux)ÚpeekZaboo)ZsthZsth2r>   r+   )Zgoodrm   r   úas an indexer is not supportedr   znot in index)r   r,   r-   r.   r/   r   r   r8   Ú
isinstancerj   rb   r   r   Ú	TypeErrorr@   Únamesr0   r9   r    )r!   r`   r   Úfloat_frameÚframeÚmissingrf   ÚidxZ	idx_checkr;   r:   r$   r$   r%   Útest_getitem_listliken   s0    þþ&z)TestGetitemListLike.test_getitem_listlikec                 C   s\   t g d¢g d¢dœƒ}dd„ dD ƒ}|j| }t ddgd	d
gdœddgd�}t ||¡ d S )NrV   rW   ©rZ   r[   c                 s   s   | ]
}|V  qd S ra   r$   ©Ú.0rM   r$   r$   r%   Ú	<genexpr>£   rh   zBTestGetitemListLike.test_getitem_iloc_generator.<locals>.<genexpr>©r   r)   r)   r   r'   rX   r   ©r   )r   r2   r0   r9   ©r!   r#   Zindexerr;   r:   r$   r$   r%   Útest_getitem_iloc_generator    s
    
z/TestGetitemListLike.test_getitem_iloc_generatorc                 C   sX   t g d¢g d¢dœƒ}dd„ dD ƒ}|j|df }tdd	gd
ddgd�}t ||¡ d S )NrV   rW   rz   c                 s   s   | ]
}|V  qd S ra   r$   r{   r$   r$   r%   r}   ª   rh   zRTestGetitemListLike.test_getitem_iloc_two_dimensional_generator.<locals>.<genexpr>r~   r   r'   rX   r[   r)   )r?   r   )r   r2   r
   r0   r1   r€   r$   r$   r%   Ú+test_getitem_iloc_two_dimensional_generator¨   s
    z?TestGetitemListLike.test_getitem_iloc_two_dimensional_generatorc              	   C   s
  t ttdƒƒtddtdd�d�d�}|jdd… }t g d	¢tg d
¢dtdd�d�d�}t ||¡ t ttdƒƒtddtddd�d�d�}|jdd… }t g d	¢tg d¢dtddd�d�d�}t ||¡ t ttdƒƒtddtdd�d�d�}|jdd… }t ||¡ d S )Nr*   z
01-01-2022r   )Údays)r(   Úfreqr   ú
2022-01-01ú
2022-01-03)r   r   r)   )r…   z
2022-01-02r†   zdatetime64[ns])r7   r„   r)   )rƒ   Úhours)z2022-01-01 00:00:00z2022-01-02 02:00:00z2022-01-03 04:00:00r   )Úminutes)	r   r8   r   r   r   r@   r   r0   r9   rF   r$   r$   r%   Ú!test_getitem_iloc_dateoffset_days¯   sH    
þýþ
ÿþ
ýþ
þz5TestGetitemListLike.test_getitem_iloc_dateoffset_daysN)rH   rI   rJ   rQ   rU   r_   r   ÚmarkÚparametrizer8   ri   r   rj   ry   r�   r‚   r‰   r$   r$   r$   r%   rK   P   s&   
úö%rK   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestGetitemCallablec                 C   s¨   |dd„  }|j d d …df }t ||¡ |dd„  }|j d d …ddgf }t ||j d d …ddgf ¡ |d d… }|dd„  }|jdd	gd d …f }t ||¡ d S )
Nc                 S   s   dS )Nr=   r$   ©rM   r$   r$   r%   rg   Ü   rh   z;TestGetitemCallable.test_getitem_callable.<locals>.<lambda>r=   c                 S   s   ddgS )Nr=   rC   r$   r�   r$   r$   r%   rg   à   rh   rC   r   c                 S   s   g d¢S )N)TFTr$   r�   r$   r$   r%   rg   å   rh   r   r)   )r@   r0   r1   r9   r2   )r!   ru   r;   r:   r#   r$   r$   r%   Útest_getitem_callableÚ   s    z)TestGetitemCallable.test_getitem_callablec                 C   s`   t ddggddggd�}t dgdggd�}|d }t ||¡ |jd d …df }t ||¡ d S )Nr   r)   rZ   r[   r+   )r   r0   r9   r@   )r!   r#   r:   r;   r$   r$   r%   Ú%test_loc_multiindex_columns_one_levelé   s    z9TestGetitemCallable.test_loc_multiindex_columns_one_levelN)rH   rI   rJ   rŽ   r�   r$   r$   r$   r%   rŒ   Ù   s   rŒ   c                   @   sâ   e Zd Zdd„ Zej dddgddggdd	gd
dggejdgejdgejdgddggfddgddggdd	gd
dggejdgejdgdd
gd	dggff¡dd„ ƒZ	ej
dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"S )#ÚTestGetitemBooleanMaskc                 C   sÎ  t dtjddd�itg d¢tg d¢dd�d	d
�d�}t dtjddd�itg d¢tg d¢dd�d	d
�d�}||jdk }|jg  }t ||¡ ||jdk }|jg  }t ||¡ ||jdk }|jg d¢ }t ||¡ ||jdk }|jg d¢ }t ||¡ ||jdk  }|jdg }t ||¡ ||jdk }|jg  }t ||¡ d}t	j
t|d�� ||jdk   W d   ƒ n1 �s‚0    Y  t	j
t|d�� ||jdk  W d   ƒ n1 �sÀ0    Y  d S )Nr=   rX   Zint64rE   )r   r   r)   r   r   r)   )r   r)   r   T)ZorderedrC   )r7   r?   r   FrZ   r   )r   r   r   r)   rR   z7Unordered Categoricals can only compare equality or notr   )r   r,   Úaranger   r   r   r2   r0   r9   r   r   rs   )r!   Zdf3Zdf4r;   r:   r^   r$   r$   r%   Ú(test_getitem_bool_mask_categorical_indexö   sR    ÿýü
ÿýü


	.z?TestGetitemBooleanMask.test_getitem_bool_mask_categorical_indexzdata1,data2,expected_datar   r)   r   rR   g      à?rX   é   rn   rL   g      @g      @g      @g       @r'   c           
      C   sp   t t |¡ƒ}t t |¡ƒ}t||gdd�}||dk }dd„ t|ƒD ƒ}t |ƒjdddœd�}	t ||	¡ d S )	Nr   )Zaxisr)   c                 S   s   i | ]\}}|t  |¡“qS r$   )r,   Úarray)r|   ÚiÚcolr$   r$   r%   Ú
<dictcomp>T  rh   z`TestGetitemBooleanMask.test_getitem_bool_mask_duplicate_columns_mixed_dtypes.<locals>.<dictcomp>r   )r)   r   r+   )r   r,   r”   r   Ú	enumerateÚrenamer0   r9   )
r!   Zdata1Zdata2Zexpected_dataZdf1Údf2r#   r;   Zexdictr:   r$   r$   r%   Ú5test_getitem_bool_mask_duplicate_columns_mixed_dtypes7  s    zLTestGetitemBooleanMask.test_getitem_bool_mask_duplicate_columns_mixed_dtypesc                 C   s(   g d¢}t t d¡ dd¡|dd�}|S )N)r=   r=   rT   ÚDé   r   rR   Úfloat64©r   r7   )r   r,   r‘   Úreshape)r!   Zdupsr#   r$   r$   r%   Údf_dup_colsX  s    z"TestGetitemBooleanMask.df_dup_colsc                 C   sH   |}d}t jt|d�� ||jdk  W d   ƒ n1 s:0    Y  d S )Nz/cannot reindex on an axis with duplicate labelsr   rX   )r   r   Ú
ValueErrorr=   )r!   r¡   r#   r^   r$   r$   r%   Ú;test_getitem_boolean_frame_unaligned_with_duplicate_columns^  s    zRTestGetitemBooleanMask.test_getitem_boolean_frame_unaligned_with_duplicate_columnsc                 C   sX   t t d¡ dd¡g d¢dd�}||jdk }|j|_|}||jdk }t ||¡ d S ©Nr�   r   rR   )r=   rC   rT   rœ   rž   rŸ   rX   )r   r,   r‘   r    rT   r   r0   r9   ©r!   r¡   r#   r:   r;   r$   r$   r%   Ú2test_getitem_boolean_series_with_duplicate_columnsg  s    ÿzITestGetitemBooleanMask.test_getitem_boolean_series_with_duplicate_columnsc                 C   sT   t t d¡ dd¡g d¢dd�}||dk }|j|_|}||dk }t ||¡ d S r¤   )r   r,   r‘   r    r   r0   r9   r¥   r$   r$   r%   Ú1test_getitem_boolean_frame_with_duplicate_columnsu  s    ÿzHTestGetitemBooleanMask.test_getitem_boolean_frame_with_duplicate_columnsc                 C   s"   t ƒ }||dk }t ||¡ d S )Nr   )r   r0   r9   )r!   r#   rš   r$   r$   r%   Ú%test_getitem_empty_frame_with_booleanƒ  s    z<TestGetitemBooleanMask.test_getitem_empty_frame_with_booleanc                 C   sš   t g d¢g d¢gg d¢d�}| ¡ }|d }t |¡� d|jd d …< W d   ƒ n1 sZ0    Y  |rn|}nt g d¢g d¢gg d¢d�}t ||¡ d S )	NrV   rW   rY   r+   r[   éd   )r   r)   r©   )rR   r'   r©   )r   Úcopyr0   Zassert_cow_warningr@   r9   )r!   Zusing_copy_on_writeZwarn_copy_on_writer#   Zdf_origÚviewr:   r$   r$   r%   Ú5test_getitem_returns_view_when_column_is_unique_in_dfŠ  s    ,zLTestGetitemBooleanMask.test_getitem_returns_view_when_column_is_unique_in_dfc                 C   sR   t g d¢gtdgƒdddgd�}|tdgƒ }tdgtdgƒd�}t ||¡ d S )N)r   r)   r   rR   ZKEYrC   rT   r+   r   r>   )r   Ú	frozensetr
   r0   r1   rF   r$   r$   r%   Ú'test_getitem_frozenset_unique_in_column™  s     z>TestGetitemBooleanMask.test_getitem_frozenset_unique_in_columnN)rH   rI   rJ   r’   r   rŠ   r‹   r,   Únanr›   Zfixturer¡   r£   r¦   r§   r¨   r¬   r®   r$   r$   r$   r%   r�   õ   s,   A ýýúþ

	r�   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestGetitemSlicec           
      C   s    t  ddd¡}t|ƒ}|ddg \}}t j d¡ d¡}|turP|d d …df }|||d�}|||… }|jdd	… }	t 	||	¡ |j
||… }t 	||	¡ d S )
Ng      $@g      I@r)   r'   é   )é   r   r   r   é   )r,   r‘   r   r-   r.   r/   r   r2   r0   Zassert_equalr@   )
r!   Zframe_or_seriesÚvaluesr   ÚstartÚendrA   Úobjr;   r:   r$   r$   r%   Útest_getitem_slice_float64¢  s    z+TestGetitemSlice.test_getitem_slice_float64c                 C   sV   t dditg d¢ƒd�}tjtdd�� |dd…  W d   ƒ n1 sH0    Y  d S )	NrZ   r   )z11.01.2011 22:00z11.01.2011 23:00z12.01.2011 00:00z2011-01-13 00:00r   z,Value based partial slicing on non-monotonicr   z
2011-01-01z
2011-11-01)r   r   r   r   r    rP   r$   r$   r%   Útest_getitem_datetime_sliceµ  s    ÿþÿz,TestGetitemSlice.test_getitem_datetime_slicec                 C   sb   t tj d¡ d¡ƒ}|jtd d dƒf }|jdks8J ‚|jtd d dƒtd ƒf }t 	||¡ d S )Nr)   )r*   rn   )r'   rn   )
r   r,   r-   r.   r/   r2   ÚsliceÚshaper0   r9   rF   r$   r$   r%   Ú)test_getitem_slice_same_dim_only_one_axisÇ  s
    z:TestGetitemSlice.test_getitem_slice_same_dim_only_one_axisN)rH   rI   rJ   r¸   r¹   r¼   r$   r$   r$   r%   r°   ¡  s   r°   c                   @   s.   e Zd Zej dddhddig¡dd„ ƒZdS )ÚTestGetitemDeprecatedIndexersÚkeyrZ   r[   c                 C   s\   t ddgddggt ddg¡d�}tjtdd	�� ||  W d   ƒ n1 sN0    Y  d S )
Nr   r)   r   rR   )rZ   r   )r[   r)   r+   rq   r   )r   r	   Úfrom_tuplesr   r   rs   )r!   r¾   r#   r$   r$   r%   Ú$test_getitem_dict_and_set_deprecatedÑ  s
    ÿzBTestGetitemDeprecatedIndexers.test_getitem_dict_and_set_deprecatedN)rH   rI   rJ   r   rŠ   r‹   rÀ   r$   r$   r$   r%   r½   Ð  s   r½   )r\   Únumpyr,   r   Zpandasr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingr0   Zpandas.core.arraysr   r   rK   rŒ   r�   r°   r½   r$   r$   r$   r%   Ú<module>   s   @6 
 -/