o
    ŀg                     @   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 |r-|j|jjd d d }tj||dd tj||dd d S )	Nr   categorydtypeTinplaceFcheck_category_order)pdSeriesreplacecatset_categories
categoriestmassert_series_equal)
to_replacevalueexpectedflip_categoriesserresult r#   `/var/www/html/myenv/lib/python3.10/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 s2w   Y  t|| | dkr^t	j
t|d t|| W d    n1 sYw   Y  tj|dd}tj||d |j| |dd W d    n1 sw   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pytestraisesAssertionError)	r   r   r"   expected_error_msgr   r   msgwarnr!   r#   r#   r$   test_replace_categorical4   s$   r8   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.w   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   NAr0   r1   )r   r6   r"   r   r#   r#   r$   !test_replace_categorical_ea_dtypeV   s    r<   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 s,w   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   CategoricalDtyper   r   r/   r.   r   r   )r   r!   r6   r"   expected_dtyper   r#   r#   r$   test_replace_maintain_orderingc   s   r@   )r2   pandasr   r   pandas._testing_testingr   markparametrizer;   filterwarningsr%   r8   r<   r@   r#   r#   r#   r$   <module>   sN    

