
    Eg                     t    d dl Z d dlZd dlZd dlmZ d dlZd dlmZm	Z	m
Z
mZmZ d dlmZ  G d d          ZdS )    N)CategoricalDtype)Categorical	DataFrameIndexSeriesisnac                   ,   e Zd Zd Zd Zd Zd Zd Zej	        
                    dddd	d
fi dfddidfd eg d          idfg          d             Zej	        
                    dddg          d             Zd Zej	        
                    dg d ej        g d          fddej        g ej        g d          fddej        g ej        g d          fddej        g ej        g d          fg          d             Zej	        
                    dg d ej        g d          fddej        g ej        g d          fddej        g ej        g d          fddej        g ej        g d          fg          d             Ze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	        
                    d$ej        d%fd&ej        d'fej        d'fg          d(             Zd)S )*TestCategoricalMissingc                     t          j        g d          }t          ddt           j        g          }|                                }t          j        ||           d S )NFFTab)nparrayr   nanr   tmassert_numpy_array_equal)selfexpcatress       a/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/arrays/categorical/test_missing.py	test_isnaz TestCategoricalMissing.test_isna   sT    h+++,,3RV,--hhjj
#C-----    c                 @   t          t          d                    }t          j                            d                              ddd          }d|d d d<   t          ||          }t          |           t          j	        t          |          |dk               d S )N
      r         )listranger   randomdefault_rngintegersr   reprr   r   r   )r   
categorieslabelsr   s       r   test_na_flags_int_categoriesz3TestCategoricalMissing.test_na_flags_int_categories   s     %))__
&&q))221b"==sss&*--S			
#DIIv|<<<<<r   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
                             d S )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&   c263/00
alE3*,=,=>>>
#AHbh}}}BG.T.T.TUUUv!
alE3*,=,=>>>
#AHbh~~~RW.U.U.UVVV c263/00
alE3*,=,=>>>
#AHbh}}}BG.T.T.TUUUUUr   c                     t          ddt          j        g          }|                    t	          ddg                    }t          j        |j        t          j        g dd                     d S )Nr   r   r1   )r   r   r   r0   r,   )	r   r   r   
_set_dtyper   r   r   codesr   )r   r1   results      r   test_set_dtype_nansz*TestCategoricalMissing.test_set_dtype_nans6   sd    c26*++.Sz::;;
#FL"(;;;f2U2U2UVVVVVr   c                     t          g d          }t          j        |d<   t          dt          j        dgg d          }t          j        ||           d S )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;   sU    )))$$A1bfa.YYY???
#C-----r   zfillna_kwargs, msgr+   ffill)valuemethodz)Cannot specify both 'value' and 'method'.z(Must specify a fill 'value' or 'method'.r?   badz%Invalid fill method. Expecting .* badr>   )r+   r   r:      r   3Cannot setitem on a Categorical with a new categoryc                     t          g d          }t          |          dk    rd|v rt          }nt          }t	          j        ||          5   |j        di | d d d            d S # 1 swxY w Y   d S )N)r+   r   r:   NNr+   r>   match )r   len	TypeError
ValueErrorpytestraisesfillna)r   fillna_kwargsmsgr   errs        r   test_fillna_raisesz)TestCategoricalMissing.test_fillna_raisesB   s    $ ///00}""w-'?'?CCC]3c*** 	( 	(CJ'''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   A))A-0A-namedTFc           	         |rt          j        dd          }nd }t          t          j         |dd           |dd          d gt
                              }|                     |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  |                     |dd                     d d d            d S # 1 swxY w Y   d S )	NPointzx yc                      | S )NrF   )argss    r   <lambda>zFTestCategoricalMissing.test_fillna_iterable_category.<locals>.<lambda>d   s    $ r   r   r+   r,   rB   rD   )collections
namedtupler   r   r   objectrL   r   r;   rJ   rK   rH   )r   rQ   rS   r   r6   expectedrN   s          r   test_fillna_iterable_categoryz4TestCategoricalMissing.test_fillna_iterable_category^   s     	'*7E::EE&&E"(EE!QKKq!d#C6RRRSSEE!QKK((aUU1a[[%%1++FGG
#FH555 "(EE!QKKq!d#C6RRRSSC]9C000 	$ 	$JJuuQ{{###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s    EEEc                    t          g d          }|                    d          }|                    |          }t          j        ||           t	          |d                   sJ t          j        g d          }|                    |          }t          g d|j                  }t          j        ||           t	          |d                   sJ d S )N)ABCNNr_   r   )r]   r^   r_   r^   r]   r,   )r   rL   r   r;   r   r   r   r-   )r   r   otherr6   rZ   s        r   test_fillna_arrayz(TestCategoricalMissing.test_fillna_arrayr   s    55566

3E""
#FE222CG}}22233E""888	JJJ
#FH555CG}}r   zvalues, expectedr9   )FFFr   r   c                 P   d}t          j        t          |          5  t          j        dd          5  t          |          }|                                }t          j        ||           t          |                                          }t          |          }t          j	        ||           t          |                                          }t          |          }t          j        ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S Nz"use_inf_as_na option is deprecatedrD   zmode.use_inf_as_naT)r   assert_produces_warningFutureWarningpdoption_contextr   r   r   r   assert_series_equalr   assert_frame_equal)r   valuesrZ   rN   r   r6   s         r   test_use_inf_as_naz)TestCategoricalMissing.test_use_inf_as_na   s    3'SAAA 	8 	8"#7>> 8 8!&))+FH===))++!(++&vx888"3,,..$X..%fh7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s5   DCD7DD	D
D	DD"Dc                 2   t          |          }d}t          j        t          |          5  t	          j        dd          5  t          |          }t          j        ||           t          t          |                    }t          |          }t          j	        ||           t          t          |                    }t          |          }t          j        ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S rc   )r   r   rd   re   rf   rg   r   r   r   rh   r   ri   )r   rj   rZ   r   rN   r6   s         r   "test_use_inf_as_na_outside_contextz9TestCategoricalMissing.test_use_inf_as_na_outside_context   s}    &!!2'SAAA 	8 	8"#7>> 
8 
8c+FH===fSkk**!(++&vx888inn--$X..%fh777
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s6   DB%C4(D4C8	8D;C8	<DDDza1, a2, categories)r   r   r1   r   r   c                    t          |          }t          ||          t          ||          k    }t          |          t          |          k    }t          j        ||           t          ||          t          ||          k    }t          |          t          |          k    }t          j        ||           d S Nr,   )r   r   r   rh   )r   a1a2r'   cat_typer6   rZ   s          r   %test_compare_categorical_with_missingz<TestCategoricalMissing.test_compare_categorical_with_missing   s     $J// (+++vb/I/I/II"::+
vx000 (+++vb/I/I/II"::+
vx00000r   zna_value, dtypezdatetime64[ns])Nfloat64rt   c                 z    t          ||g          }t          j        |j        t	          g |                     d S ro   )r   r   r.   r'   r   )r   na_valuer-   r6   s       r   ,test_categorical_only_missing_values_no_castzCTestCategoricalMissing.test_categorical_only_missing_values_no_cast   s?     h122
f/r1G1G1GHHHHHr   N)__name__
__module____qualname__r   r)   r2   r7   r<   rJ   markparametrizer   rP   r[   ra   r   r   r   infrf   NArk   rm   rs   NaTrw   rF   r   r   r
   r
      sy       . . .
= 
= 
=V V VW W W
. . . [ w//; ;< GH&&!2!2!2334E	
 ( ( ( [WtUm44$ $ 54$&   [YY!6!6!6778BF^XRX&:&:&:;;<BF^XRX&:&:&:;;<BE]HBH%9%9%9::;		
 8 8 8" [YY!6!6!6778BF^XRX&:&:&:;;<BF^XRX&:&:&:;;<BE]HBH%9%9%9::;		
 8 8 8& [__rvsC0///BYYA			2	
 1 1 1 [V%&VYUI		
 I I I I Ir   r
   )rW   numpyr   rJ   pandas.core.dtypes.dtypesr   pandasrf   r   r   r   r   r   pandas._testing_testingr   r
   rF   r   r   <module>r      s             6 6 6 6 6 6                       EI EI EI EI EI EI EI EI EI EIr   