o
    ŀg                     @   sR   d dl Zd dlZd dlmZ d dlmZ ejddgddd Z	G dd	 d	Z
dS )
    N)CategoricalTF)paramsc                 C   s   | j S )z3Boolean 'allow_fill' parameter for Categorical.take)param)request r   ]/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/arrays/categorical/test_take.py
allow_fill   s   r   c                   @   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resultr   r   r   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      r   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_take1   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_unobserved9   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-   r6   r   r   r    test_take_fill_with_negative_oneF      z)TestTake.test_take_fill_with_negative_onec                 C   r8   )Nr1   r   r)   r   r
   Tr9   r   r   r$   r:   r6   r   r   r   test_take_fill_valueM   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 )Nr1   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_raisesT   s
   "z(TestTake.test_take_fill_value_new_raisesN)__name__
__module____qualname__r   r   r#   r&   r0   r3   r7   r;   r?   rC   r   r   r   r   r	      s    

r	   )numpyr4   r   pandasr   pandas._testing_testingr   fixturer   r	   r   r   r   r   <module>   s    
