o
    ҷh                     @   s:   d dl Zd dlZd dlmZ d dlmZ G dd dZdS )    N)Categoricalc                   @   s\   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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/venv/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_unobserved3   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_fill9   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*   r3   r   r   r    test_take_fill_with_negative_one@      z)TestTake.test_take_fill_with_negative_onec                 C   r5   )Nr.   r   r&   r   r   Tr6   r   r   r!   r7   r3   r   r   r   test_take_fill_valueG   r9   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_raisesN   s
   "z(TestTake.test_take_fill_value_new_raisesN)__name__
__module____qualname__r   r   r    r#   r-   r0   r4   r8   r<   r@   r   r   r   r   r      s    

r   )	numpyr1   r   pandasr   pandas._testing_testingr   r   r   r   r   r   <module>   s
    