o
    5cD                     @   s>   d dl Zd dlZd dlmZmZ d dlmZ G dd dZ	dS )    N)CategoricalIndexc                   @   sd   e Z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dd ZdS )TestTakec                 C   sV   t ddg}td  |ddg}W d    n1 sw   Y  ||s)J d S )Nabr   )r   tmassert_produces_warningtakeequals)selfcatresult r   _/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/arrays/categorical/test_take.pytest_take_default_allow_fill   s
   z%TestTake.test_take_default_allow_fillc                 C   sJ   t ddg}td  |ddg W d    d S 1 sw   Y  d S )Nr   r   r   )r   r   r	   r
   )r   r   r   r   r   test_take_positive_no_warning   s   "z&TestTake.test_take_positive_no_warningc                 C   s`   t g d}|rd}nd}tjt|d |jddg|d W d    d S 1 s)w   Y  d S )Nr   r   r   indices are out-of-boundsz2index 4 is out of bounds for( axis 0 with)? size 3match      
allow_fillr   pytestraises
IndexErrorr
   r   r   r   msgr   r   r   test_take_bounds   s   "zTestTake.test_take_boundsc                 C   sb   t g ddgd}|rd}nd}tjt|d |jdg|d W d    d S 1 s*w   Y  d S )	Nr   r   
categoriesr   z-cannot do a non-empty take from an empty axesr   r   r   r   r   r   r   r   test_take_empty$   s   "zTestTake.test_take_emptyc                 C   sL   t g dddg|d}|jg ddd}t g d|j|d}t|| d S )	N)r   r   r   r   r   r   r#   ordered)r         Fr   r   r   r   r   r
   r#   r   assert_categorical_equalr   r&   r   r   expectedr   r   r   test_positional_take.   s   zTestTake.test_positional_takec                 C   sL   t ddgg d|d}|jddgdd}t ddg|j|d}t|| d S )	Nr   r   r   r   cr%   r'   r   Fr   r*   r,   r   r   r   test_positional_take_unobserved6   s   z(TestTake.test_positional_take_unobservedc                 C   sH   t g d}|jg ddd}t dtjtjgddgd}t|| d S )Nr)   )r   r   r   Tr   r   r   r"   )r   r
   npnanr   r+   r   r   r   r-   r   r   r   test_take_allow_fill<   s   zTestTake.test_take_allow_fillc                 C   D   t g d}|jg dddd}t g dg dd}t|| d S )N)r   r   r'   )r   r   r'   Tr   )r   
fill_value)r   r   r   r"   r   r
   r   r+   r4   r   r   r    test_take_fill_with_negative_oneC      z)TestTake.test_take_fill_with_negative_onec                 C   r6   )Nr/   r   r'   r   r   Tr7   r   r   r"   r8   r4   r   r   r   test_take_fill_valueJ   r:   zTestTake.test_take_fill_valuec                 C   sX   t g d}d}tjt|d |jg dddd W d    d S 1 s%w   Y  d S )Nr/   z9Cannot setitem on a Categorical with a new category \(d\)r   r;   dTr<   )r   r   r   	TypeErrorr
   )r   r   xprr   r   r   test_take_fill_value_new_raisesQ   s
   "z(TestTake.test_take_fill_value_new_raisesc                 C   s   t g d}tt |ddg W d    n1 sw   Y  t|}tt |ddg W d    d S 1 s>w   Y  d S )Nr/   r   r'   )r   r   r	   FutureWarningtake_ndr   )r   r   cir   r   r   test_take_nd_deprecatedX   s   "z TestTake.test_take_nd_deprecatedN)__name__
__module____qualname__r   r   r!   r$   r.   r1   r5   r9   r=   rA   rE   r   r   r   r   r      s    

r   )
numpyr2   r   pandasr   r   pandas._testing_testingr   r   r   r   r   r   <module>   s
    