+
    yȇiBM                         ^ RI t ^ RIt^ RIt^ RIHt ^ RIHtHtH	t	H
t
HtHt ^ RIHt ^ RIHt  ! R R4      t ! R R4      t ! R	 R
4      tR# )    N)Pandas4Warning)CategoricalCategoricalIndex	DataFrameIndexSeriesStringDtype)recode_for_categoriesc                     a  ] tR t^t o R tR tR t]P                  P                  R. RO^^..4      R 4       t
R tR tR t]P                  P                  RR	.. RO. RO.4      R 4       tR tR tR tR t]P                  P                  R. R OR	R
.R	R
.3. R OR	R
.R
R	.3. R!OR	R
.R	R
.3. R!OR	R
.R
R	.3. R"OR	R
.R	R
.3. R"OR	R
.R
R	.3. R#OR	R
.R	R
.3. R#OR	R
.R
R	.3. R"OR	R
.R	.3. R"OR	R
.R
.3. R#OR	R
.R	.3. R#OR	R
.R
.3. R"OR	R
.RR.3.4      R 4       tR tR tR t]P                  P                  RR.R]P0                  .RRR..4      R 4       tR tRtV tR# )$TestCategoricalAPIc                   \        \        R 4      RR7      p\        P                  ! VP                  \        . RO4      4       VP                  '       d   Q h\        \        R 4      \        R4      RR7      p\        P                  ! VP                  \        . RO4      4       VP                  '       d   Q h\        \        R 4      RR7      p\        P                  ! VP                  \        . RO4      4       VP                  '       g   Q h\        \        R 4      \        R4      RR7      p\        P                  ! VP                  \        . RO4      4       VP                  '       g   Q hR# )	acbForderedbca
categoriesr   TNabc)r   r   r   )r   listtmassert_index_equalr   r   r   )selfcat1cat2cat3cat4s   &    x/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/arrays/categorical/test_api.pytest_ordered_api#TestCategoricalAPI.test_ordered_api   s    4;6
doou_/EF<<<4;4;N
doou_/EF<<<4;5
doou_/EF||||4;4;M
doou_/EF||||    c                b   \        . RORR7      pVP                  4       pVP                  '       d   Q hVP                  4       pVP                  '       g   Q hVP	                  R4      P                  '       g   Q hVP	                  R4      P                  '       d   Q hRp\
        P                  ! \        VR7      ;_uu_ 4        RVn        RRR4       \
        P                  ! \        VR7      ;_uu_ 4        RVn        RRR4       R#   + '       g   i     LF; i  + '       g   i     R# ; i)r   Tr   Fz8property 'ordered' of 'Categorical' object has no settermatchNr   r   r   r   )r   as_unorderedr   
as_orderedset_orderedpytestraisesAttributeError)r   catr   msgs   &   r    test_set_ordered#TestCategoricalAPI.test_set_ordered'   s    .=!<<<~~||||%-----##E*22222 I]]>55CK 6]]>55CK 65 65555s   D
8D
D	D.	c                   \        . RO4      pVP                  . RO4      p\        P                  ! VP	                  4       \
        P                  ! . RO\
        P                  R7      4       \        P                  ! VP                  \        . RO4      4       \
        P                  ! . RO\
        P                  R7      p\        P                  ! VP	                  4       V4       \        . RO4      p\        P                  ! VP                  V4       VP                  R 4      p\        . RO4      p\        P                  ! WE4       R# )	r   dtypec                 "    V P                  4       # )N)upper)xs   &r    <lambda>;TestCategoricalAPI.test_rename_categories.<locals>.<lambda>I   s
    r#   Nr'            )r;   r<   r=   r;   r   )ABCr>   )r   rename_categoriesr   assert_numpy_array_equal	__array__nparrayint64r   r   r   object_assert_categorical_equal)r   r.   resexp_catresultexpecteds   &     r    test_rename_categories)TestCategoricalAPI.test_rename_categories8   s    ./ ##I.
##MMORXXl"((C	
 	cnneI.>?((/rzzB
##CMMOW=(
cnng6 &&':;34
##F5r#   new_categoriesc                    \        . RO4      pRp\        P                  ! \        VR7      ;_uu_ 4        VP	                  V4       RRR4       R#   + '       g   i     R# ; i)r   zKnew categories need to have the same number of items as the old categories!r%   Nr'   )r   r+   r,   
ValueErrorrA   r   rO   r.   r/   s   &&  r    *test_rename_categories_wrong_length_raises=TestCategoricalAPI.test_rename_categories_wrong_length_raisesM   sG    ./ 	 ]]:S11!!.1 2111s   AA!	c                    \        R R.4      pVP                  \        ^ ^.R R.R7      4      p\        ^ ^.4      p\        P                  ! W#4       R# )r   r   indexN)r   rA   r   r   rH   )r   r   rK   rL   s   &   r    test_rename_categories_series0TestCategoricalAPI.test_rename_categories_seriesW   sK    c
#$$VQF3*%EF1v&
##F5r#   c                   \        . RO4      pVP                  R ^R^R^R^/4      p\        . R	O4      p\        P                  ! VP
                  V4       \        . RO4      pVP                  R ^R^/4      p\        . R
O4      p\        P                  ! VP
                  V4       \        . RO4      pVP                  R ^R^R^R^R^R^/4      p\        . RO4      p\        P                  ! VP
                  V4       \        . RO4      pVP                  R^R^/4      p\        . RO4      p\        P                  ! VP
                  V4       R# )r   r   r   defgNr   r   r   r[      r=   r<   r;   )r;   r   r=   r[   r;   r<   r=   ra   )r   rA   r   r   r   r   )r   r.   rI   rL   s   &   r    test_rename_categories_dict.TestCategoricalAPI.test_rename_categories_dict^   s+   ./##S!S!S!S!$DE&
cnnh7 ./##S!S!$45)*
cnnh7 ./##S!S!S!S!S!SRS$TU&
cnnh7 ./##S!S!$45-.
cnnh7r#   c                    \        . RORR7      pVP                  4       p\        . RO. RORR7      pVP                  . RO4      p\        P                  ! W4       \        P                  ! WC4       R# )r   Tr   r   Nr'   r   r   r   )r   copyreorder_categoriesr   rH   r   r.   oldnewrI   s   &    r    test_reorder_categories*TestCategoricalAPI.test_reorder_categoriesy   sY    .=hhj _d
 $$_5
##C-
##C-r#   r   r   r[   r   c                    \        . RORR7      pRp\        P                  ! \        VR7      ;_uu_ 4        VP	                  V4       RRR4       R#   + '       g   i     R# ; i)r   Tr   z=items in new_categories are not the same as in old categoriesr%   Nr'   )r   r+   r,   rQ   rh   rR   s   &&  r    test_reorder_categories_raises1TestCategoricalAPI.test_reorder_categories_raises   sD     .=M]]:S11"">2 2111s   AA#	c                ^   \        . R	ORR7      pVP                  4       p\        . R	O. R
ORR7      pVP                  R4      p\        P                  ! W4       \        P                  ! WC4       VP                  R.4      p\        P                  ! W4       \        P                  ! WC4       \        \        R4      RR7      p\        \        R4      \        R4      RR7      pVP                  \        RR.4      4      p\        P                  ! WE4       VP                  \        P                  ! RR.4      4      p\        P                  ! WE4       VP                  \        RR.4      4      p\        P                  ! WE4       VP                  RR.4      p\        P                  ! WE4       R# )r   Tr   r[   r   abcabcder\   Nr'   r_   )
r   rg   add_categoriesr   rH   r   r   rD   rE   r   )r   r.   rj   rk   rI   rL   s   &     r    test_add_categories&TestCategoricalAPI.test_add_categories   sK   .=hhj -A4
   %
##C-
##C-  #'
##C-
##C- $u+t4tE{tG}dS  c
!34
##C2  3*!56
##C2  Sz!23
##C2  #s,
##C2r#   c                    \        . RORR7      p\        P                  ! R4      p\        P                  ! \
        VR7      ;_uu_ 4        VP                  R.4       RRR4       R#   + '       g   i     R# ; i)r   r[   Tr   z5new categories must not include old categories: {'d'}r%   Nr_   )r   reescaper+   r,   rQ   rt   )r   r.   r/   s   &  r    #test_add_categories_existing_raises6TestCategoricalAPI.test_add_categories_existing_raises   sN    .=iiOP]]:S11u% 2111s   
A''A8	c                   \        \        ^^.RR7      4      p\        ^.RR7      pVP                  V4      p\        \        ^^.RR7      \        . RORR7      R7      p\        P                  ! W44       \        \        . RO\        4       R7      4      p\        R.\        4       R7      pVP                  V4      p\        \        . RO\        4       R7      \        . RO\        4       R7      R7      p\        P                  ! W44       R# )	r;   Int64r3   r   r[   N)r;   r<   ra   r   r   r   r   r   r[   )r   r   rt   r   rH   r	   )r   r.   serrK   rL   s   &    r    ,test_add_categories_losing_dtype_information?TestCategoricalAPI.test_add_categories_losing_dtype_information   s    &!Qw78aS(##C(Aq6)fYg6V
 	##F5&FGcU+-0##C(?+-8o[]C
 	##F5r#   c                	   \        . RORR7      p\        . RO4      p\        P                  ! . RO\        P                  R7      pVP                  . RO4      pVP                  . R	O4      p\        P                  ! VP                  V4       \        P                  ! VP                  4       V4       \        . R	O4      p\        P                  ! VP                  V4       \        P                  ! VP                  4       V4       \        . RORR7      pVP                  R .4      p\        P                  ! VP                  \        P                  ! . R
O\        P                  R7      4       VP                  . RO4      p\        P                  ! VP                  \        P                  ! . RO\        P                  R7      4       \        P                  ! VP                  \        . RO4      4       VP                  . RO4      p\        . RO4      p\        P                  ! VP                  V4       \        . RO. RORR7      p\        P                  ! VP                  \        P                  ! . RO\        P                  R7      4       \        P                  ! VP                  \        . RO4      4       \        P                  ! . RO\        P                  R7      p\        P                  ! \        P                  ! V4      V4       VP                  . RO4      p\        P                  ! VP                  \        P                  ! . RO\        P                  R7      4       \        P                  ! VP                  \        . RO4      4       \        P                  ! . RO\        P                  R7      p\        P                  ! \        P                  ! V4      V4       VP!                  4       ^8X  g   Q hVP#                  4       ^8X  g   Q hVP                  . RORR7      pVP$                  '       d   Q h\        P                  ! \        P                  ! V4      \        P                  ! V4      4       VP'                  R4      P                  . RO4      pVP$                  '       d   Q h\        P                  ! \        P                  ! V4      \        P                  ! V4      4       R# )r   Tr   r3   r   FNr'   rf   r   )r   r   r   r   )r   r;   r   r   r_   )r;   r<   r=   ra   r;   rb   )r   r;   r<   r=   r   r`   )r=   r<   r;   r   r=   )r   r   rD   rE   rG   set_categoriesr   r   r   rB   rC   codesint8_codesrF   asarrayminmaxr   r*   )	r   r.   exp_categories
exp_valuesrI   exp_categories_backr   expc2s	   &        r    test_set_categories&TestCategoricalAPI.test_set_categories   s   .=/XX2"**E
  1  1
cnnn=
##CMMOZ@#O4
cnn.AB
##CMMOZ@ .=  #'
##CIIrxxbgg/VW   1
##CIIrxxRWW/UV
cnneO.DE   !5634
cnnn= L$O
##AHHbhhbgg.VW
allE,,?@hhbhh7
##BJJqM37 \* 	##AHHbhhbgg.VW 	allE,,?@ hhbhh7
##BJJqM37uuw!||uuw!|| lE::::~
##BJJqM2::b>B ]]5!00>:::~
##BJJqM2::b>Br#   z"values, categories, new_categoriesr\   c                   R p\        V4      P                  V4      '       d   \        MRp\        P                  ! WeR7      ;_uu_ 4        \        W4      pRRR4       \        V4      P                  V4      '       d   \        MRp\        P                  ! WR7      ;_uu_ 4        \        WV4      p	RRR4       XP                  W4R7      p
\        P                  ! V
X	4       R#   + '       g   i     L; i  + '       g   i     LN; i)z=Constructing a Categorical with a dtype and values containingNr%   r   )set
differencer   r   assert_produces_warningr   r   rH   )r   valuesr   rO   r   r/   warn1r   warn2rL   rK   s   &&&&&      r    test_set_categories_many+TestCategoricalAPI.test_set_categories_many  s    4 N"%f+"8"8"D"D$''99F/A : #&f+"8"8"H"Hd''99"67CH : !!.!B
##FH5 :9 :9s   
C%%C8%C5	8D	c                    \        R R.4      pVP                  R .RR7      p\        R \        P                  .4      p\        P
                  ! W#4       R# )r>   r?   T)renameN)r   r   rD   nanr   rH   )r   r.   rK   rL   s   &   r    test_set_categories_rename_less2TestCategoricalAPI.test_set_categories_rename_less3  sG    3*%##SE$#7RVV}-
##F5r#   c                R   \        . RO. ROR7      pVP                  . RO4       \        . R	O\        R4      R7      p\        P                  ! W4       \        . RO. ROR7      pVP                  . RORR7       \        . R	O\        R4      R7      p\        P                  ! W4       R# )
r   r~   acdeT)fastpathNr   r_   )r   r   r[   r\   )r   r   r[   )r   _set_categoriesr   r   rH   )r   r.   rL   s   &  r    test_set_categories_private.TestCategoricalAPI.test_set_categories_private:  s}    /6JK014<H
##C2 /6JK04@4<H
##C2r#   c                ~   \        . RORR7      pVP                  4       p\        R R\        P                  R .R R.RR7      pVP	                  R4      p\
        P                  ! W4       \
        P                  ! WC4       VP	                  R.4      p\
        P                  ! W4       \
        P                  ! WC4       R# )r   r   r   Tr   r   Nr'   )r   rg   rD   r   remove_categoriesr   rH   ri   s   &    r    test_remove_categories)TestCategoricalAPI.test_remove_categoriesF  s    .=hhj3RVVS1sCjRVW##C(
##C-
##C-##SE*
##C-
##C-r#   removalsc                    \        . RO4      p\        P                  ! R4      p\        P                  ! \
        VR7      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     R# ; i)r   z-removals must all be in old categories: {'c'}r%   Nr   )r   rx   ry   r+   r,   rQ   r   )r   r   r.   messages   &&  r    test_remove_categories_raises0TestCategoricalAPI.test_remove_categories_raisesS  sI    /*))KL]]:W55!!(+ 6555s   A$$A5	c           	     Z   \        . RO. ROR7      p\        . RO4      p\        . RO4      p\        P                  ! VP                  V4       VP                  4       p\        P                  ! VP                  V4       \        P                  ! VP                  V4       \        R RR\        P                  .. ROR7      pVP                  4       p\        P                  ! VP                  \        \        P                  ! . RO4      4      4       \        P                  ! . RO\        P                  R7      p\        P                  ! VP                  V4       \        P                  ! VP                  V4       R\        P                  RRRR\        P                  .p\        V\        R4      R	7      pVP                  4       p\        P                  ! VP                  \        . RO4      4       \        P                  ! . RO\        P                  R7      p\        P                  ! VP                  V4       VP                  4       V8X  g   Q h\        R
4      p	\        P                  P                  ^4      P!                  V	R,          R4      P#                  R4      p\        P                  V\        P                  P                  ^4      P!                  \%        V4      ^d4      &   \        WiR	7      pVP                  4       pVP                  4       VP                  4       8X  g   Q hR# )r   r   r   r~   r3   FDr?   ABCDEFG)r   r   abcdefghijklmnopqrstuvwxyz:NNr<   i'  objectN)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   r   r   r   r   remove_unused_categoriesrD   r   rE   r   rB   r   r   tolistrandomdefault_rngchoiceastypelen)
r   r   exp_categories_allexp_categories_droppedrI   	exp_codesvalr.   outalphas
   &         r    test_remove_unused_categories0TestCategoricalAPI.test_remove_unused_categories[  s)   1>WX"#<=!&';!<
all,>?((*
cnn.DE
all,>? c3/<UV((*
cnneBHH_4M.NOHH]"'':	
##CIIy9
all,>?BFFCc37iA**,
cnneO.DEHH4BGGD	
##CIIy9zz|s"""12ii##A&--eCj%@GGQ>@ffBII!!!$++CHc:;7**,zz|szz|+++r#    Nrb   r   r_   r   )r   r   r   r   )r   r   r   )__name__
__module____qualname____firstlineno__r!   r0   rM   r+   markparametrizerS   rX   rc   rl   ro   ru   rz   r   r   r   r   r   r   rD   r   r   r   __static_attributes____classdictcell____classdict__s   @r    r   r      s    $ "6* [[-q!f/EF2 G2686. [[E 	
3338&6&@CD [[, sCj3*5sCj3*5sCj3*5sCj3*5sCj3*5sCj3*5sCj3*5sCj3*5sCj3%0sCj3%0sCj3%0sCj3%0sCj3*5)	
263266
3. [[Z3%#rvvc3Z)PQ, R,!, !,r#   r   c                   &   a  ] tR tRt o R tRtV tR# )TestCategoricalAPIWithFactori  c           	        \        . RORR7      pVP                  4       pVP                  '       g   Q h\        . RORVP                  R7      p\	        R. ROR. RO/VR7      p\
        P                  ! W$4       VP                  4       pVP                  . RO4      pVP                  4       p\        \        R4      VP                  RR	7      p\	        R. ROR. RO/VR7      p\
        P                  ! W$4       \        . RO4      pVP                  4       p\        . ROVP                  RR	7      p\	        R. ROR. RO/VR7      p\
        P                  ! W$4       \        \        P                  ^^^.4      pVP                  4       p\	        R. ROR. RO/\        ^^\        P                  .^^.RR
7      R7      p\
        P                  ! W$4       R# )r   Tr   r   )namer   countsfreqsrV   abcd)r   r   )r   r   N)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<   r=   r=   r<   r;   r;   r;   r:   )   r=   r=   )g]tE?tE]t?r   )r;   r<   r;   )r   g      ?r   )r   describer   r   r   r   assert_frame_equalrg   r   r   rD   r   )r   factordesc	exp_indexrL   r.   s   &     r    test_describe*TestCategoricalAPIWithFactor.test_describe  s   EtT ~~~~$,
	 y'+FGy
 	d- kkm  !56||~$L&..|
	 |W.LM
 	d- ;<||~$Y,W	y'+IJ
 	d- 2661a+,||~y'+FG"ArvvAq6
 	d-r#   r   N)r   r   r   r   r   r   r   r   s   @r    r   r     s     /. /.r#   r   c                     a  ] tR tRt o R t]P                  P                  R^ ^.RR.RR.^ ^.3^ ^.RR.RR.^ ^.3^ ^.RR.RR.^^ .3^ ^.RR.RR.^^ .3. RORR.. RO. RO3. RO. RORR.. RO3. RO. RO. RO. RO3. RO. ROR.. RO3. RO. ROR.. RO3. RO. RO. . RO3RR.. RR.RR.3^^ .RR.RR.^ ^.3.4      R 4       tR t	R	t
V tR
# )TestPrivateCategoricalAPIi  c                0   \        R RRR \        P                  .4      p\        P                  ! . R	ORR7      p\        P
                  ! VP                  V4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        P                  ! . R
ORR7      Vn        RRR4       VP                  p\        P                  ! \        RR7      ;_uu_ 4        ^V^&   RRR4       R V^&   \        P                  ! . RORR7      p\        P
                  ! VP                  V4       ^VP                  ^&   \        P                  ! . RORR7      p\        P
                  ! VP                  V4       R#   + '       g   i     L; i  + '       g   i     L; i)r   r   r   r   r3   z6property 'codes' of 'Categorical' object has no setterr%   Nz#assignment destination is read-only)r   r;   r<   r   r   )r   r;   r<   r   r;   )r   r;   r<   r   r   )r   r;   r<   r   r<   )r   rD   r   rE   r   rB   r   r+   r,   r-   rQ   r   )r   r   r   r/   r   s   &    r    test_codes_immutable.TestPrivateCategoricalAPI.test_codes_immutable  s   c3RVV45hh'v6
##AGGS1 G]]>55hhf=AG 6 ]]:-RSSE!H T
 !hhf5
##AGGS1hhf5
##AGGS1! 65 TSs     E2F2F	F	zcodes, old, new, expectedr   r   r[   c                   \         P                  ! V\         P                  R 7      p\         P                  ! V\         P                  R 7      p\        V4      p\        V4      p\	        WVRR7      p\
        P                  ! WT4       R# )r3   Trg   N)rD   
asanyarrayr   r   r
   r   rB   )r   r   rj   rk   rL   rK   s   &&&&& r    test_recode_to_categories3TestPrivateCategoricalAPI.test_recode_to_categories  sZ    $ e2773==9CjCj&u3TB
##F5r#   c                   R p\         P                  ! V4      p\        V4      p\         P                  ! V^,
          RR\         P                  R7      p\        V4      p\	        W#VRR7      p\
        P                  ! Wd4       R# )i  r3   Tr   Nr   )rD   aranger   int16r
   r   rB   )r   Nr   rj   rL   rk   rK   s   &      r    test_recode_to_categories_large9TestPrivateCategoricalAPI.test_recode_to_categories_large  s^    		!El99QUB"((;Ho&u3TB
##F5r#   r   N)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   r   r+   r   r   r   r   r   r   r   s   @r    r   r     s7    24 [[#Vc3Z#saV4Vc3Z#saV4Vc3Z#saV4Vc3Z#saV4C:E?S#JG/:F3%=3%>"l;"XrC:Bx0Vc3Z#saV4	
"6#"66 6r#   r   )rx   numpyrD   r+   pandas.errorsr   pandasr   r   r   r   r   r	   pandas._testing_testingr   pandas.core.arrays.categoricalr
   r   r   r   r   r#   r    <module>r      sE    	   (   @h, h,V0. 0.f;6 ;6r#   