a
    Pf                     @   s  d dl Z d dlZd dlmZ d dlmZ e jdddg ddfddg d	dfddg d
dfddg d
dfdgdg ddfddgdg ddfddgdg ddfddg ddfddg d
dfdgdgg ddfddgddgg ddfg d
g dg ddfddg ddfdej	g ddfddg ddfg ddg ddfge j
ddd Ze jdd d!d"d!gd#fd!d$d"d gdfd"d"d"d gdfd dd"dgd%fgd&d' Zd(d) Zd*d+ ZdS ),    N)Categoricalz)to_replace,value,expected,flip_categories      )r   r      F   )r   r   r   r   r   r         r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   )r   r   r   )r   r   r   )Nr   r   4)r   r   r
   )r   r   35)r   r   r   Tz:ignore:.*with CategoricalDtype is deprecated:FutureWarningc                 C   s~   t jg ddd}|| |}t j|dd}|j| |dd |rZ|j|jjd d d }tj||dd tj||dd d S )	Nr   categorydtypeTZinplaceFZcheck_category_order)pdSeriesreplacecatZset_categories
categoriestmassert_series_equal)
to_replacevalueexpectedZflip_categoriesserresult r   e/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/arrays/categorical/test_replace.pytest_replace_categorical_series   s     r!   z-to_replace, value, result, expected_error_msgbcaz$Categorical.categories are differentdz+Categorical.categories length are differentc           	      C   s  t ddg}t |}d}|d ur$tnd }tj||d( tj|dd| |j}W d    n1 sd0    Y  t|| | dkrt	j
t|d t|| W d    n1 s0    Y  tj|dd}tj||d  |j| |dd W d    n1 s0    Y  t|| d S )	Nr$   r"   OThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtypematchF)copyTr   )r   FutureWarningr   assert_produces_warningr   r   r   _valuesassert_categorical_equalpytestZraisesAssertionError)	r   r   r   Zexpected_error_msgr   r   msgwarnr   r   r   r    test_replace_categorical4   s    6*.r2   c                  C   s   t tjddgdd} d}tjt|d. t| ddgdtjgj	}W d    n1 s\0    Y  t tjdtjgdd}t
|| d S )Nr$   r"   stringr   r&   r'   r#   )r   r   arrayr   r+   r*   r   r   NAr,   r-   )r   r0   r   r   r   r   r    !test_replace_categorical_ea_dtypeV   s    <r6   c                  C   s   t jg ddd} t jg d| d}d}tjt|d |dd}W d    n1 sX0    Y  t jd	dgdd}t jg d
|d}tj||dd d S )N)r   r   r   T)orderedr   r&   r'   r   r   r   )r   r   r   r   )r   ZCategoricalDtyper   r   r+   r*   r   r   )r   r   r0   r   Zexpected_dtyper   r   r   r    test_replace_maintain_orderingc   s    *r8   )r.   Zpandasr   r   Zpandas._testingZ_testingr   markZparametrizer5   filterwarningsr!   r2   r6   r8   r   r   r   r    <module>   sL   

