a
    Pf                     @   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   b/var/www/ai-form-bot/venv/lib/python3.9/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:0    Y  ||sRJ 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   sH   t ddg}td  |ddg W d    n1 s:0    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    n1 sP0    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   s`   t g ddgd}|rd}nd}tjt|d  |jdg|d W d    n1 sR0    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   sD   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   s    z)TestTake.test_take_fill_with_negative_onec                 C   sD   t g d}|jg dddd}t g dg dd}t|| d S )Nr1   r   r)   r   r
   Tr8   r   r   r$   r9   r6   r   r   r   test_take_fill_valueM   s    zTestTake.test_take_fill_valuec                 C   sV   t g d}d}tjt|d$ |jg dddd W d    n1 sH0    Y  d S )Nr1   z9Cannot setitem on a Categorical with a new category \(d\)r   r;   dTr<   )r   r   r   	TypeErrorr   )r   r   Z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=   r@   r   r   r   r   r	      s   

r	   )numpyr4   r   Zpandasr   Zpandas._testingZ_testingr   Zfixturer   r	   r   r   r   r   <module>   s   
