
    Mh3                         S SK r S SKrS SKrS SKrS SKJr  S SKJrJ	r	J
r
JrJrJrJr  S SKJr  S SKJr   " S S5      rg)    N)PYPY)CategoricalCategoricalDtype	DataFrameIndexNaTSeries
date_range)	is_scalarc                      \ rS rSr\R
                  R                  SSS/5      S 5       rS rS r	\R
                  R                  S\
" S	5      \R                  4/ S
Q\R                  4\R                  " \" \" SSS9SS9\\R
                  R#                  SS9S9/5      \R
                  R                  SSS/5      S 5       5       r\R
                  R                  SSSS\R                  /\
" S5      4SSS\R                  // SQ4/5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      S  5       5       5       r\R
                  R                  SSS/5      \R
                  R                  SSS/5      S! 5       5       r\R
                  R                  S"SS/5      S# 5       r\R
                  R                  S"SS/5      S$ 5       r\R
                  R                  S%/ S&Q5      \R
                  R                  S"SS/5      S' 5       5       r\R
                  R                  S(S)S*/5      S+ 5       r\R
                  R                  S,/ S-Q/ S.QS//4/ S0Q/ S.QS/S/4/ S1Q/ S.Q/ S.Q4\R                  \R                  \R                  S2S/// S.QS/S2/4\R                  \R                  \R                  S2S/S2// S.QS2/4\R                  \R                  S2S/S2// S.QS2/4/5      S3 5       rS4 rS5 rS6 rS7 rS8 rS9 rS: r \R
                  R                  S;SS</ S
QS=/5      S> 5       r!S? r"S@r#gA)BTestCategoricalAnalytics   aggregationminmaxc                    [        / SQSS9nSU 3n[        X!5      n[        R                  " [        US9   U" 5         S S S 5        US:X  a  [
        R                  O[
        R                  n[        R                  " [        US9   UR                  U5        S S S 5        g ! , (       d  f       Nh= f! , (       d  f       g = f)NabcdFordered)Categorical is not ordered for operation matchr   )	r   getattrpytestraises	TypeErrornpminimummaximumreduce)selfr   catmsgagg_funcufuncs         `/var/www/html/env/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_analytics.pytest_min_max_not_ordered_raises8TestCategoricalAnalytics.test_min_max_not_ordered_raises   s     .>9+G3,]]9C0J 1 *U2



]]9C0LL 10	 10 10s   B B1 
B.1
B?c                 B   [        / SQSS9nU" U5      nUR                  5       nUR                  5       nUS:X  d   eUS:X  d   e[        R                  R                  U5      S:X  d   e[        R                  R                  U5      S:X  d   e[        / SQ/ SQSS9nU" U5      nUR                  5       nUR                  5       nUS:X  d   eUS:X  d   e[        R                  R                  U5      S:X  d   e[        R                  R                  U5      S:X  d   eg )Nr   Tr   r   r   )r   r   r   r   
categoriesr   )r   r   r   r!   r"   r$   r#   )r%   index_or_series_or_arrayr&   obj_min_maxs         r*   test_min_max_ordered-TestCategoricalAnalytics.test_min_max_ordered%   s	   .=&s+wwywwys{{s{{zz  %,,,zz  %,,,  -A4
 's+wwywwys{{s{{zz  %,,,zz  %,,,    c                 F   [        / SQSS9n[        U5      nUR                  S5      n[        [        S/UR                  S95      n[
        R                  " X45        UR                  S5      n[        [        S/UR                  S95      n[
        R                  " XV5        g )	Nr   Tr   r   r   dtyper   r   )r   r   aggr	   r9   tmassert_series_equal)r%   r&   df
result_maxexpected_max
result_minexpected_mins          r*   test_min_max_reduce,TestCategoricalAnalytics.test_min_max_reduce<   s|    .=s^VVE]
k3%syyAB
z8VVE]
k3%syyAB
z8r6   zcategories,expectedABC         z
2020-01-01rH   )periodscategoryr8   z1https://github.com/pandas-dev/pandas/issues/29962)reason)marksc                 J    [        / USS9n[        XC5      nU" 5       nXbL d   eg NTr.   )r   r   )r%   r/   expectedr   r&   r(   results          r*   test_min_max_ordered_empty3TestCategoricalAnalytics.test_min_max_ordered_emptyI   s/    " "TB3,!!!r6   zvalues, categoriesr   r   r   cbarF   rG   rH   rG   rF   skipnaTFfunctionc                     [        XSS9n[        XS5      " US9nUSL a  U[        R                  L d   eg US:X  a  US   OUS   nXg:X  d   eg )NTr.   rU   Fr   r   rG   )r   r   r!   nan)r%   valuesr/   rV   rU   r&   rP   rO   s           r*   test_min_max_with_nan.TestCategoricalAnalytics.test_min_max_with_nan`   sZ     &F'v6U?RVV###(0E(9z!}z!}H%%%r6   c                     [        [        R                  /SS/SS9n[        X15      " US9nU[        R                  L d   eg )NrF   rG   Tr.   rX   )r   r!   rY   r   )r%   rV   rU   r&   rP   s        r*   test_min_max_only_nan.TestCategoricalAnalytics.test_min_max_only_nanq   s=     266(1vtD'v6r6   methodc                     [        [        R                  SS[        R                  // SQSS9n[        R                  " [
        SS9   [        X!5      " SS9  S S S 5        g ! , (       d  f       g = f)	NrF   rG         rH   rG   rF   Tr.   z.* got an unexpected keywordr   )numeric_only)r   r!   rY   r   r   r    r   )r%   r`   r&   s      r*    test_numeric_only_min_max_raises9TestCategoricalAnalytics.test_numeric_only_min_max_raisesy   sQ     VVQ266"
 ]]9,JKC d3 LKKs   A  
A.c                     [        / SQSS9nSU S3n[        [        U5      n[        R                  " [
        [        R                  " U5      S9   U" U5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   Fr   r   zF
you can use .as_ordered() to change the Categorical to an ordered oner   )r   r   r!   r   r   r    reescape)r%   r`   r&   r'   s       r*   test_numpy_min_max_raises2TestCategoricalAnalytics.test_numpy_min_max_raises   s_    .>7x @T T 	 V$]]9BIIcN;3K <;;s   	A""
A0kwarg)axisoutkeepdimsc                     [        / SQSS9nSU SU 3nUS:X  a  SnUS0n[        [        U5      n[        R                  " [
        US	9   U" U40 UD6  S S S 5        g ! , (       d  f       g = f)
Nri   Tr   zthe 'z=' parameter is not supported in the pandas implementation of ro   z8`axis` must be fewer than the number of dimensions \(1\)*   r   )r   r   r!   r   r   
ValueError)r%   r`   rn   r&   r'   kwargss         r*   ,test_numpy_min_max_unsupported_kwargs_raisesETestCategoricalAnalytics.test_numpy_min_max_unsupported_kwargs_raises   sv     .=E7  	 F?MCV$]]:S13!&! 211s   

A
A+zmethod, expected)r   r   )r   r   c                 X    [        / SQSS9n[        [        U5      nU" US S9nXB:X  d   eg )Nri   Tr   )ro   )r   r   r!   )r%   r`   rO   r&   rP   s        r*   #test_numpy_min_max_axis_equals_none<TestCategoricalAnalytics.test_numpy_min_max_axis_equals_none   s3    .=V$$'!!!r6   zvalues,categories,exp_mode)rF   rF   rG   rd   rc   rc   rc   rb   rc   )rF   rF   rF   rd   rc   rc   rc   )rF   rG   rH   rd   rc   rd   c                     [        XSS9n[        U5      R                  5       R                  n[        X2SS9n[        R
                  " XV5        g rN   )r   r	   mode_valuesr;   assert_categorical_equal)r%   rZ   r/   exp_moder&   resexps          r*   	test_mode"TestCategoricalAnalytics.test_mode   sB     &FSk (((4H
##C-r6   c                    [        / SQ/ SQUS9n[        U5      nUR                  S5      nUS:X  d   e[        U5      (       d   eUR                  S5      nUS:X  d   e[        U5      (       d   eUR                  S/5      nUR                  S/5      n[        R
                  " S/[        R                  S9n[        R                  " XF5        [        R                  " XV5        UR                  SS/S	S
9nUR                  SS/S	S
9n[        R
                  " SS/[        R                  S9n[        R                  " XF5        [        R                  " XV5        [        R                  " [        SS9   UR                  S5        S S S 5        [        R                  " [        SS9   UR                  S5        S S S 5        Sn[        R                  " [        US9   UR                  SS/5        S S S 5        [        R                  " [        US9   UR                  SS/5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)N)cheesemilkapplebreadr   )r   r   r   r   r.   r   rG   r   rH   r8   right)siderc   cucumberr   zMCannot setitem on a Categorical with a new category, set the categories first)r   r	   searchsortedr   r!   arrayintpr;   assert_numpy_array_equalr   r   r    )r%   r   r&   serres_catres_serr   r'   s           r*   test_searchsorted*TestCategoricalAnalytics.test_searchsorted   s    9;

 Sk ""7+!||!!!!""7+!||!!!! ""G9-""G9-hhs"''*
##G1
##G1 ""GW#5G"D""GW#5G"Dhh1vRWW-
##G1
##G1 ]]9J7Z( 8]]9J7Z( 8
' 	 ]]9C0gz23 1]]9C0gz23 10 8777 1000s0   3H-&H>II -
H;>
I
I 
I.c                 N   [        / SQUS9n[        / SQUS9nUR                  5       n[        R                  " XC5        [        / SQUS9nUR                  5       n[        R                  " U[        SS/US95        [        / SQUS9nUR                  5       n[        / SQUS9n[        R                  " XE5        [        S[
        R                  S[
        R                  S/US9nUR                  5       n[        S[
        R                  S/US9n[        R                  " XE5        g )	N)r   r   r   r   r8   )r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   )r   r   uniquer;   r~   r!   rY   )r%   r   r9   r&   r   exp_cats         r*   test_unique$TestCategoricalAnalytics.test_unique   s     'B /7jjl
##C-.e<jjl
##Cc3Zu)MN35AjjloU;
##C1 3RVVS9GjjlsBFFC0>
##C1r6   c                    [        / SQUS9n[        / SQUS9n[        / SQUS9n[        R                  " UR	                  5       U5        [        R
                  " [        U5      R	                  5       [        U5      5        [        R                  " [        U5      R	                  5       U5        [        / SQUS9n[        SS/US9n[        R                  " UR	                  5       U5        [        R
                  " [        U5      R	                  5       [        U5      5        [        R                  " [        U5      R	                  5       U5        g )	NrT   r   )rH   rF   rG   rG   rF   r8   )rH   rF   rG   )rF   rF   rG   rG   rF   rG   )r   r   r;   r~   r   assert_index_equalr   r	   )r%   r   r9   r   r   s        r*   test_unique_index_series1TestCategoricalAnalytics.test_unique_index_series   s     G<u5 )51
##AHHJ4
eAhoo/s<
##F1I$4$4$6<E21a&.
##AHHJ4
eAhoo/s<
##F1I$4$4$6<r6   c                    [        / SQ5      nUR                  S5      n[        [        R                  SSSS/5      n[        R
                  " X#5        [        R
                  " US S USS  5        UR                  S5      n[        SSS[        R                  [        R                  // S	QS
9n[        R
                  " XE5        [        R
                  " USS  US S 5        [        R
                  " XR                  S5      5        g )N)r   r   r   r   r   rF   r   r   r   r   r   )r/   rG   r   )r   shiftr!   rY   r;   r~   )r%   r&   sp1xp1sn2xp2s         r*   
test_shift#TestCategoricalAnalytics.test_shift  s    34 iil2663S#67
##C-
##CHc!"g6 iim#sBFFBFF+8L
 	##C-
##CGS"X6 	##C16r6   c                 F    [        / SQ5      nSnUR                  U:X  d   eg )NrE      )r   nbytes)r%   r&   r   s      r*   test_nbytes$TestCategoricalAnalytics.test_nbytes&  s#    )$zzS   r6   c                    [        / SQ5      nSUR                  s=:  a  UR                  5       ::  d   e   eSUR                  s=:  a  UR                  SS9::  d   e   e[        / SQ5      nUR                  SS9UR                  :  d   e[        (       d8  UR                  SS9[        R
                  " U5      -
  n[        U5      S:  d   eg g )NrE   r   T)deep)foor   bard   )r   r   memory_usager   sys	getsizeofabs)r%   r&   diffs      r*   test_memory_usage*TestCategoricalAnalytics.test_memory_usage+  s    )$ 3::3!1!1!3333333::<!1!1t!1!<<<<<</0T*SZZ777t ###.s1CCDt9s?"?	 r6   c           
      4   [        [        S5      [        S5      SS9nUR                  S S S9n[        [        S5      [        S5      SS9n[        R                  " X#5        [        [        S5      [        S	5      S
S9nUR                  S S S9n[        [        S5      [        S5      S
S9n[        R                  " X#5        UR                  S S S9n[        R
                  " U[        [        R                  " S/S-  [        R                  S95      5        g )NABABCCBATr.   c                 "    U R                  5       $ Nlowerxs    r*   <lambda>3TestCategoricalAnalytics.test_map.<locals>.<lambda>=  
    r6   )	na_actionababcrS   rD   Fc                 "    U R                  5       $ r   r   r   s    r*   r   r   B  r   r6   abcc                     g)NrF    r   s    r*   r   r   F  s    r6   rF   rc   r8   )
r   listmapr;   r~   r   r   r!   r   int64)r%   r   rP   r   s       r*   test_map!TestCategoricalAnalytics.test_map;  s    W$u+tL*d;$w-DKN
##F0W$u+uM*d;$w-DKO
##F0{d3
feBHHaS1WBHH,M&NOr6   valueTrueg      @c                     [        / SQ5      nS[        U5      R                   3n[        R                  " [
        US9   UR                  US9  S S S 5        g ! , (       d  f       g = f)N)ABr   Cr   z9For argument "inplace" expected type bool, received type r   )inplace)r   type__name__r   r   rt   sort_values)r%   r   r&   r'   s       r*   test_validate_inplace_raises5TestCategoricalAnalytics.test_validate_inplace_raisesJ  sV    34!%[1124 	
 ]]:S1OOEO* 211s   A
A&c                    [        SS/5      n[        SS/5      nUS S R                  USS9nUR                  R                  [
        R                  :X  d   eUR                  SS/S	S
9n[        R                  " X45        g )Nr   r   g        g      ?r   linear)interpolationr   T)
allow_fill)
r   r   	_quantile_codesr9   r!   int8taker;   assert_extension_array_equal)r%   r&   idxrP   rO   s        r*   test_quantile_empty,TestCategoricalAnalytics.test_quantile_emptyU  sy    3*%S#JRa""3h"?}}""bgg---88RH86
''9r6   r   N)$r   
__module____qualname____firstlineno__r   markparametrizer+   r4   rB   r   r!   rY   paramr	   r
   r   xfailrQ   r[   r^   rf   rl   rv   ry   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r6   r*   r   r      s~   [[]UEN; <-.9 [[%["&&!LLz,:*Mkk''N ( 
	
 [[]UEN;" <" [[S"&&
!4;	/1aBFF2CY1OP [[Xe}5[[Z%8	& 9 6		& [[Z%8[[Xe}5  6 9  [[Xu~64 74 [[Xu~6 7 [[W&AB[[Xu~6" 7 C" [[/,1MN" O" [[$"OaS9"OaV<o?ffbffbffa+_q!fEffbffbffaA.!EffbffaA&!=	

.
.04d20=&7*!
# P [[Wq&)S&AB+ C+:r6   r   )rj   r   numpyr!   r   pandas.compatr   pandasr   r   r   r   r   r	   r
   pandas._testing_testingr;   pandas.api.typesr   r   r   r6   r*   <module>r      s7    	 
       &G: G:r6   