
    Owg                     l    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y)    N)CategoricalDtype)Categorical	DataFrameIndexSeriesisnac                      e Zd Zd Zd Zd Zd Zd Zej                  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                  j                  dddg      d        Zd Zej                  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                  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                  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j0                  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       c/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/categorical/test_missing.py	test_isnaz TestCategoricalMissing.test_isna   sA    hh+,3RVV,-hhj
##C-    c                    t        t        d            }t        j                  j	                  d      j                  ddd      }d|d d d<   t        ||      }t        |       t        j                  t        |      |dk(         y )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   sl     %)_
&&q)221b"=ss&*-S	
##DIv|<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                               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            }t        j                  |j                  t        j                  g dd             y )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   sN    c266*+.Sz:;
##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   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        y # 1 sw Y   y xY w)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   sa    $ /0}"w-'?CC]]3c* 	(CJJ''	( 	( 	(s   A  A)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 )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: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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6

3E"
##FE2CG}}23E"8		J
##FH5CG}}r   zvalues, expectedr9   )FFFr   r   c                    d}t        j                  t        |      5  t        j                  dd      5  t        |      }|j                         }t        j                  ||       t        |      j                         }t        |      }t        j                  ||       t        |      j                         }t        |      }t        j                  ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w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 	8""#7> 8!&)++FH=))+!(+&&vx8"3,,.$X.%%fh78	8 	88 8	8 	8s#   C8B&C,C8,C5	1C88Dc                    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        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w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 	8""#7> 
8c++FH=fSk*!(+&&vx8in-$X.%%fh7
8	8 	8
8 
8	8 	8s$   C) BCC)C&	"C))C2za1, a2, categories)r   r   r1   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   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":+
vx0 (+vb/II":+
vx0r   zna_value, dtypezdatetime64[ns])Nfloat64rt   c                 t    t        ||g      }t        j                  |j                  t	        g |             y 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   s0     h12
f//r1G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
      s   .
=VW
. [[ w/; ;< GH&!234E	
(( [[WtUm4$ 5$& [[!678BFF^XRXX&:;<BFF^XRXX&:;<BEE]HBHH%9:;		
88" [[!678BFF^XRXX&:;<BFF^XRXX&:;<BEE]HBHH%9:;		
88& [[rvvsC0/BA	2	
11 [[VV%&VVYUUI		
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      s1       6   EI EIr   