
    i                     t    d dl Z d dlZd dlZd dlmZ d dlmZ d dlZ	d dlm
Z
mZmZmZ d dlmZ  G d d      Zy)    N)Pandas4Warning)CategoricalDtype)CategoricalIndexSeriesisnac                      e Zd Zd Zd Zd Zd Zd Zej                  j                  dddg      d	        Zd
 Zej                  j                  dg dej                  ddgg dfg dej                  ddgg dfg      d        Zej                  j                  dej"                  dfdej                  dfej$                  dfg      d        Zy)TestCategoricalMissingc                     t        j                  g d      }t        ddt         j                  g      }|j	                         }t        j                  ||       y )N)FFTab)nparrayr   nanr   tmassert_numpy_array_equal)selfexpcatress       i/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/arrays/categorical/test_missing.py	test_isnaz TestCategoricalMissing.test_isna   sA    hh+,3RVV,-hhj
##C-    c                 r   t        t        d            }t        j                  j	                  d      j                  ddd      }d|d d d<   d}t        j                  t        |      5  t        ||      }d d d        t               t        j                  t        |      |dk(         y # 1 sw Y   7xY w)	N
      r         z=Constructing a Categorical with a dtype and values containingmatch)listranger   randomdefault_rngintegersr   assert_produces_warningr   r   reprr   r   )r   
categorieslabelsmsgr   s        r   test_na_flags_int_categoriesz3TestCategoricalMissing.test_na_flags_int_categories   s     %)_
&&q)221b"=ssM''cB 	2fj1C	2S	
##DIv|<		2 	2s   *B--B6c                 >   t        ddt        j                  dg      }t        j                  |j
                  t        ddg             t        j                  |j                  t        j                  g dt        j                               t        j                  |d<   t        j                  |j
                  t        ddg             t        j                  |j                  t        j                  g dt        j                               t        ddt        j                  dg      }t        j                  |j
                  t        ddg             t        j                  |j                  t        j                  g dt        j                               y )Nr   r   )r      r   r   dtyper.   )r   r   r   r   )r   r   r   r   assert_index_equalr)   r   r   _codesr   int8)r   cs     r   test_nan_handlingz(TestCategoricalMissing.test_nan_handling)   s    c2663/0
allE3*,=>
##AHHbhh}BGG.TUvv!
allE3*,=>
##AHHbhh~RWW.UV c2663/0
allE3*,=>
##AHHbhh}BGG.TUr   c                     t        ddt        j                  g      }|j                  t	        ddg      d      }t        j                  |j                  t        j                  g dd             y )	Nr   r   r4   T)copy)r   r   r   r3   r/   )	r   r   r   
_set_dtyper   r   r   codesr   )r   r4   results      r   test_set_dtype_nansz*TestCategoricalMissing.test_set_dtype_nans8   sR    c266*+.Sz:F
##FLL"((;f2UVr   c                     t        g d      }t        j                  |d<   t        dt        j                  dgg d      }t        j                  ||       y )Nr.   r      r.   r>   )r)   )r   r   r   r   assert_categorical_equal)r   r   r   s      r   test_set_item_nanz(TestCategoricalMissing.test_set_item_nan=   s?    )$A1bffa.Y?
##C-r   namedTFc           	      F   |rt        j                  dd      }nd }t        t        j                   |dd       |dd      d gt
                    }|j                   |dd            }t         |dd       |dd       |dd      g      }t        j                  ||       t        t        j                   |dd       |dd      d gt
                    }d}t        j                  t        |      5  |j                   |dd             d d d        y # 1 sw Y   y xY w)	NPointzx yc                      | S )N )argss    r   <lambda>zFTestCategoricalMissing.test_fillna_iterable_category.<locals>.<lambda>J   s    $ r   r   r.   r/   z3Cannot setitem on a Categorical with a new categoryr    )collections
namedtupler   r   r   objectfillnar   r?   pytestraises	TypeError)r   rA   rC   r   r:   expectedr+   s          r   test_fillna_iterable_categoryz4TestCategoricalMissing.test_fillna_iterable_categoryD   s     **7E:E&E"((E!QKq!d#C6RSE!QK(aU1a[%1+FG
##FH5 "((E!QKq!d#C6RSC]]9C0 	$JJuQ{#	$ 	$ 	$s   5DD c                 |   t        g d      }|j                  d      }|j                  |      }t        j                  ||       t	        |d         sJ t        j                  g d      }|j                  |      }t        g d|j                        }t        j                  ||       t	        |d         sJ y )N)ABCNNrT   r   )rR   rS   rT   rS   rR   r/   )r   rK   r   r?   r   r   r   r0   )r   r   otherr:   rO   s        r   test_fillna_arrayz(TestCategoricalMissing.test_fillna_arrayX   s    56

3E"
##FE2CG}}23E"8		J
##FH5CG}}r   za1, a2, categories)r   r   r4   r   r   r=   r.   r   c                 :   t        |      }t        ||      t        ||      k7  }t        |      t        |      k7  }t        j                  ||       t        ||      t        ||      k(  }t        |      t        |      k(  }t        j                  ||       y Nr/   )r   r   r   assert_series_equal)r   a1a2r)   cat_typer:   rO   s          r   %test_compare_categorical_with_missingz<TestCategoricalMissing.test_compare_categorical_with_missingg   s     $J/ (+vb/II":+
vx0 (+vb/II":+
vx0r   zna_value, dtypezdatetime64[s])Nfloat64r^   c                 t    t        ||g      }t        j                  |j                  t	        g |             y rX   )r   r   r1   r)   r   )r   na_valuer0   r:   s       r   ,test_categorical_only_missing_values_no_castzCTestCategoricalMissing.test_categorical_only_missing_values_no_cast|   s0     h12
f//r1GHr   N)__name__
__module____qualname__r   r,   r5   r;   r@   rL   markparametrizerP   rV   r   r   r]   pdNaTNAra   rE   r   r   r
   r
      s    .=VW
. [[WtUm4$ 5$& [[rvvsC0/BA	2	
11 [[VV_%VVYUUI		
IIr   r
   )rH   numpyr   rL   pandas.errorsr   pandas.core.dtypes.dtypesr   pandasrg   r   r   r   r   pandas._testing_testingr   r
   rE   r   r   <module>rp      s4       ( 6   tI tIr   