
    Mh                     l    S SK r S SKrS SKrS SKJr  S SKrS SKJrJ	r	J
r
JrJr  S SKJr   " S S5      rg)    N)CategoricalDtype)Categorical	DataFrameIndexSeriesisnac                      \ rS rSrS rS rS rS rS r\	R                  R                  SSS	S
.S40 S4SS0S4S\" / SQ5      0S4/5      S 5       r\	R                  R                  SSS/5      S 5       rS r\	R                  R                  S/ SQ\R"                  " / SQ5      4SS\R$                  /\R"                  " / SQ5      4SS\R&                  /\R"                  " / SQ5      4SS\R*                  /\R"                  " / SQ5      4/5      S 5       r\	R                  R                  S/ SQ\R"                  " / SQ5      4SS\R$                  /\R"                  " / SQ5      4SS\R&                  /\R"                  " / SQ5      4SS\R*                  /\R"                  " / SQ5      4/5      S 5       r\	R                  R                  S / S!Q\R$                  S"S#// S!Q4/ SQ\R$                  SS// SQ4/5      S$ 5       r\	R                  R                  S%\R2                  S&4S'\R$                  S(4\R*                  S(4/5      S) 5       rS*rg+),TestCategoricalMissing   c                     [         R                  " / SQ5      n[        SS[         R                  /5      nUR	                  5       n[
        R                  " X15        g )NFFTab)nparrayr   nanr   tmassert_numpy_array_equal)selfexpcatress       ^/var/www/html/env/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_missing.py	test_isna TestCategoricalMissing.test_isna   s?    hh+,3RVV,-hhj
##C-    c                    [        [        S5      5      n[        R                  R	                  S5      R                  SSS5      nSUS S S2'   [        X!5      n[        U5        [        R                  " [        U5      US:H  5        g )N
      r         )listranger   randomdefault_rngintegersr   reprr   r   r   )r   
categorieslabelsr   s       r   test_na_flags_int_categories3TestCategoricalMissing.test_na_flags_int_categories   sj     %)_
&&q)221b"=ss&-S	
##DIv|<r   c                 >   [        SS[        R                  S/5      n[        R                  " UR
                  [        SS/5      5        [        R                  " UR                  [        R                  " / SQ[        R                  S95        [        R                  US'   [        R                  " UR
                  [        SS/5      5        [        R                  " UR                  [        R                  " / SQ[        R                  S95        [        SS[        R                  S/5      n[        R                  " UR
                  [        SS/5      5        [        R                  " UR                  [        R                  " / SQ[        R                  S95        g )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_handling(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                     [        SS[        R                  /5      nUR                  [	        SS/5      5      n[
        R                  " UR                  [        R                  " / SQSS95        g )Nr   r   r4   )r   r!   r!   r3   r/   )	r   r   r   
_set_dtyper   r   r   codesr   )r   r4   results      r   test_set_dtype_nans*TestCategoricalMissing.test_set_dtype_nans6   sN    c266*+.Sz:;
##FLL"((;f2UVr   c                     [        / SQ5      n[        R                  US'   [        S[        R                  S// SQS9n[        R                  " X5        g )Nr.   r      r.   r?   )r)   )r   r   r   r   assert_categorical_equal)r   r   r   s      r   test_set_item_nan(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'.rE   badz%Invalid fill method. Expecting .* badrD   )r.   r   r?      r   3Cannot setitem on a Categorical with a new categoryc                     [        / SQ5      n[        U5      S:X  a  SU;   a  [        nO[        n[        R
                  " XBS9   UR                  " S0 UD6  S S S 5        g ! , (       d  f       g = f)N)r.   r   r?   NNr.   rD   match )r   len	TypeError
ValueErrorpytestraisesfillna)r   fillna_kwargsmsgr   errs        r   test_fillna_raises)TestCategoricalMissing.test_fillna_raisesB   sT    $ /0}"w-'?CC]]3*JJ'' +**s   A  
A.namedTFc           	      P   U(       a  [         R                  " SS5      nOS n[        [        R                  " U" SS5      U" SS5      S /[
        S95      nUR                  U" SS5      5      n[        U" SS5      U" SS5      U" SS5      /5      n[        R                  " XE5        [        [        R                  " U" SS5      U" SS5      S /[
        S95      nSn[        R                  " [        US9   UR                  U" SS5      5        S S S 5        g ! , (       d  f       g = f)	NPointzx yc                      U $ )NrL   )argss    r   <lambda>FTestCategoricalMissing.test_fillna_iterable_category.<locals>.<lambda>d   s    $r   r   r.   r/   rH   rJ   )collections
namedtupler   r   r   objectrR   r   r@   rP   rQ   rN   )r   rX   rZ   r   r:   expectedrT   s          r   test_fillna_iterable_category4TestCategoricalMissing.test_fillna_iterable_category^   s     **7E:E&E"((E!QKq!d#C6RSE!QK(aU1a[%1+FG
##F5 "((E!QKq!d#C6RSC]]9C0JJuQ{# 100s   5D
D%c                    [        / SQ5      nUR                  S5      nUR                  U5      n[        R                  " X25        [	        US   5      (       d   e[
        R                  " / SQ5      nUR                  U5      n[        / SQUR                  S9n[        R                  " X45        [	        US   5      (       d   eg )N)ABCNNrh   r!   )rf   rg   rh   rg   rf   r/   )r   rR   r   r@   r   r   r   r0   )r   r   otherr:   rb   s        r   test_fillna_array(TestCategoricalMissing.test_fillna_arrayr   s    56

3E"
##F2CG}}}23E"8		J
##F5CG}}}r   zvalues, expectedr>   )FFFr   r   c                    Sn[         R                  " [        US9   [        R                  " SS5         [        U5      nUR                  5       n[         R                  " XR5        [        U5      R                  5       n[        U5      n[         R                  " XR5        [        U5      R                  5       n[        U5      n[         R                  " XR5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fNz"use_inf_as_na option is deprecatedrJ   zmode.use_inf_as_naT)r   assert_produces_warningFutureWarningpdoption_contextr   r   r   r   assert_series_equalr   assert_frame_equal)r   valuesrb   rT   r   r:   s         r   test_use_inf_as_na)TestCategoricalMissing.test_use_inf_as_na   s     3''SA""#7>!&)++F=))+!(+&&v8"3,,.$X.%%f7 ? BA>> BAs#   C<B&C+C<+
C9	5C<<
D
c                    [        U5      nSn[        R                  " [        US9   [        R
                  " SS5         [        U5      n[        R                  " XR5        [        [        U5      5      n[        U5      n[        R                  " XR5        [        [        U5      5      n[        U5      n[        R                  " XR5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = frm   )r   r   rn   ro   rp   rq   r   r   r   rr   r   rs   )r   rt   rb   r   rT   r:   s         r   "test_use_inf_as_na_outside_context9TestCategoricalMissing.test_use_inf_as_na_outside_context   s     &!2''SA""#7>c++F=fSk*!(+&&v8in-$X.%%f7 ? BA>> BAs#   C-BCC-
C*	&C--
C;za1, a2, categories)r   r   r4   r   r   c                    [        U5      n[        XS9[        X$S9:g  n[        U5      [        U5      :g  n[        R                  " XV5        [        XS9[        X$S9:H  n[        U5      [        U5      :H  n[        R                  " XV5        g Nr/   )r   r   r   rr   )r   a1a2r)   cat_typer:   rb   s          r   %test_compare_categorical_with_missing<TestCategoricalMissing.test_compare_categorical_with_missing   sz     $J/ +vb/II":+
v0 +vb/II":+
v0r   zna_value, dtypezdatetime64[ns])Nfloat64r   c                 n    [        X/5      n[        R                  " UR                  [	        / US95        g r{   )r   r   r1   r)   r   )r   na_valuer0   r:   s       r   ,test_categorical_only_missing_values_no_castCTestCategoricalMissing.test_categorical_only_missing_values_no_cast   s.     h12
f//r1GHr   rL   N)__name__
__module____qualname____firstlineno__r   r+   r5   r;   rA   rP   markparametrizer   rV   rc   rj   r   r   r   infrp   NAru   rx   r   NaTr   __static_attributes__rL   r   r   r
   r
      s   .
=VW
. [[ w/; ;< GH&!234E	
(( [[WtUm4$ 5$& [[!678BFF^RXX&:;<BFF^RXX&:;<BEE]BHH%9:;		
88" [[!678BFF^RXX&:;<BFF^RXX&:;<BEE]BHH%9:;		
88& [[rvvsC0/BA	2	
11 [[VV%&VVYUUI		
IIr   r
   )r_   numpyr   rP   pandas.core.dtypes.dtypesr   pandasrp   r   r   r   r   r   pandas._testing_testingr   r
   rL   r   r   <module>r      s1       6   EI EIr   