
    bMh                     L   d dl m Z mZ d dlmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlm Z  d Z! G d d	          Z" G d
 d          Z# G d d          Z$ G d d          Z% G d d          Z& G d d          Z'dS )    )datetime	timedelta)DecimalN)Categorical	DataFrameDatetimeIndexIndexNaTPeriodPeriodIndex
RangeIndexSeries	TimedeltaTimedeltaIndex	Timestamp
date_rangeisnaperiod_rangetimedelta_rangeto_timedelta)nanops)ArrowStringArrayNumpySemanticsc                     t          ddgdz  d          t          t          j        d          t          j        d          t          t          j        d          t          j        d          t          t          dd	          d          t          t          dd	          d                              d
          t          t          ddd          d          t          d t          d          D             d          g} t          j                            d                              d          fd| D             }| |z   }|S )NTF   a)name
   dtyper   
2020-01-01periodsz
US/EasterntzDr"   freqc                 ,    g | ]}t          |          S  )str.0is     g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/reductions/test_reductions.py
<listcomp>zget_objs.<locals>.<listcomp>-   s    )))!s1vv)))       c                 4    g | ]}t          |d           S )r   indexr   )r   )r,   idxarrs     r.   r/   zget_objs.<locals>.<listcomp>1   s(    BBB3fS#...BBBr0   )r	   nparangeint64float64r   r   tz_localizer   r   rangerandomdefault_rngstandard_normal)indexesseriesobjsr6   s      @r.   get_objsrC   #   sA   tUmac***bimm28#666bimm2:C888jr:::EEEjr:::EEEQQ 	R 	
 	
 	LrDDD3OOO))uRyy)))444
G )


"
"
2
22
6
6CBBBB'BBBFVDKr0   c                   (   e Zd Zej                            d          ej                            dddg          ej                            d e                      d                                     Zej                            dddg          ej                            ddd	d
 e	ddd          fddg          d                         Z
ej                            dddg          d             Zej                            dddg          ej                            dddg          d                         Zd Zej                            dddgddgg          d             Zej                            dddg          d             Zd Zd S )!TestReductionsz8ignore:Period with BDay freq is deprecated:FutureWarningopnamemaxminobjc                 2    t          ||                      }t          |t                    sht          |j        t                    r0 t          t          j        |j                  |                      }nO t          |j        |                      }n1t           t          |j        |                      |j	                  }t          |dd           7|
                    d          
                    d          }|j        |k    sJ d S ||k    sJ d S )N)ordinalr'   r$   M8[ns]r9   )getattr
isinstancer   valuesr   r7   arrayr   asi8r'   astype_value)selfrF   rI   resultexpecteds        r.   test_opszTestReductions.test_ops8   s    &f%%''#{++ 	R#*&DEE 9@728CJ#7#7@@BB673:v6688&?gch&?&?&A&AQQQH3d##/x0077@@H=H,,,,,,X%%%%%%r0   z
dtype, val)object       @)r:   rY   datetime64[ns]        )Int64r1   )booleanTc                    |}fd} |d g          } | t          ||                                sJ  | t          ||          d                    sJ  |g           } | t          ||                                sJ  | t          ||          d                    sJ dk    rd S  |d |g          } t          ||                      |k    sJ  | t          ||          d                    sJ  |d |d g          } t          ||                      |k    sJ  | t          ||          d                    sJ d S )Nc                 d    dk    r	| t           u S dv r| t          j        u S t          |           S )NrZ   )r^   r_   )r
   pdNAr   )resr   s    r.   check_missingz4TestReductions.test_nanminmax.<locals>.check_missing^   s=    (((cz!...be|#Cyy r0   r   FskipnarX   )rM   )rT   rF   r   valindex_or_seriesklassre   rI   s     `     r.   test_nanminmaxzTestReductions.test_nanminmaxO   s     	! 	! 	! 	! 	! eTF%(((}1WS&113344444}1WS&11???@@@@@eBe$$$}1WS&113344444}1WS&11???@@@@@HFeT3Ku---#wsF##%%,,,,}1WS&11???@@@@@eT3%U333#wsF##%%,,,,}1WS&11???@@@@@@@r0   c                 (   |}|t           u rd|z   nd|z   } |t          t          ddd          g          } t          ||                      dk    sJ d}|t          u rd}t          j        t          |          5   t          ||          d	
          }d d d            n# 1 swxY w Y   |t          u rt          j	        |          sJ n|dk    sJ  |t          t          ddd          t          g          } t          ||                      dk    sJ t          j        t          |          5   t          ||          d	
          }d d d            n# 1 swxY w Y   |t          u rt          j	        |          sJ d S |dk    sJ d S )Nargr5   r[   r\   r]   zNThe behavior of (DatetimeIndex|Series).argmax/argmin with skipna=False and NAsz2The behavior of Series.(idxmax|idxmin) with all-NAmatchFrg   )
r	   r
   r   rM   r   tmassert_produces_warningFutureWarningr7   isnan)rT   rF   rj   rk   arg_oprI   msgrU   s           r.   test_nanargminmaxz TestReductions.test_nanargminmaxz   s7     #(E>>uv~eS(4Q//011#wsF##%%****# 	 F??FC'SAAA 	8 	8)WS&))777F	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8F??8F######R<<<<eS(4Q//566#wsF##%%****'SAAA 	8 	8)WS&))777F	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8F??8F#######R<<<<<<s$   =B$$B(+B(7EE"%E"r   rL   zdatetime64[ns, UTC]c                    |}|t           u rd|z   nd|z   } |g |          } t          ||                      t          u sJ  t          ||          d          t          u sJ t          j        t
          d          5   t          ||                       d d d            n# 1 swxY w Y   t          j        t
          d          5   t          ||          d           d d d            d S # 1 swxY w Y   d S )Nrn   r5   rf   Frg   zempty sequencero   )r	   rM   r
   pytestraises
ValueError)rT   rF   rj   r   rk   rv   rI   s          r.   test_nanops_empty_objectz'TestReductions.test_nanops_empty_object   s     #(E>>uv~eBe$$$#wsF##%%,,,,#wsF##5111S8888]:-=>>> 	# 	# GC  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#]:-=>>> 	/ 	/ GC  ....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s$   B''B+.B+C55C9<C9c           	       
   t          t          j        dd                    }|                                dk    sJ |                                dk    sJ t          t          j        dt          j        dg          }|                                dk    sJ |                                dk    sJ d	}t          j        t          |
          5  |                    d          dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t          |
          5  |                    d          dk    sJ 	 d d d            n# 1 swxY w Y   t          t          j        g          }t          j        t          |
          5  |                                dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t          |
          5  |                                dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t          |
          5  |                    d          dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t          |
          5  |                    d          dk    sJ 	 d d d            n# 1 swxY w Y   d}t          t          t          ddd          t          ddd          t          g          }|                                dk    sJ |                                dk    sJ t          j        t          |
          5  |                    d          dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t          |
          5  |                    d          dk    sJ 	 d d d            n# 1 swxY w Y   t          t          g          }t          j        t          |
          5  |                                dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t          |
          5  |                                dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t          |
          5  |                    d          dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t          |
          5  |                    d          dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r9   rf   r      r]   r1      z=The behavior of Index.argmax/argmin with skipna=False and NAsro   Frg   rq   zEThe behavior of DatetimeIndex.argmax/argmin with skipna=False and NAsr[   r\   )r	   r7   r8   argminargmaxnanrr   rs   rt   r
   r   )rT   rI   rw   s      r.   test_argminmaxzTestReductions.test_argminmax   s   BIaw///00zz||q    zz||q    RVQ*++zz||q    zz||q    M'SAAA 	2 	2::U:++r11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2'SAAA 	2 	2::U:++r11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 RVHoo'SAAA 	& 	&::<<2%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&'SAAA 	& 	&::<<2%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&'SAAA 	2 	2::U:++r11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2'SAAA 	2 	2::U:++r11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 VS(4Q//$A1F1FLMMzz||q    zz||q    'SAAA 	2 	2::U:++r11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2'SAAA 	2 	2::U:++r11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 SEll'SAAA 	& 	&::<<2%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&'SAAA 	& 	&::<<2%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&'SAAA 	2 	2::U:++r11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2'SAAA 	2 	2::U:++r11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   C::C>C> E

EE
F22F69F6H  HH&III6J  J$'J$7M!!M%(M%N11N58N5,PPP:Q""Q&)Q&R22R69R6TT
Tzop, expected_colr   bc                 4   t          t          ddd          dg          }|j                            t	          d                    |d	<    t          ||          d
          }||                             d           }t          j        ||           d S )Nz2016-01-01 00:00:00r   UTC)r"   r$   r   )columnsi  secondsr   r]   axis)	r   r   r   subtractr   rM   renamerr   assert_series_equal)rT   opexpected_coldfrU   rV   s         r.   test_same_tz_min_max_axis_1z*TestReductions.test_same_tz_min_max_axis_1   s     ,aEBBBSE
 
 
 $--	$ 7 7 7883 Ra(((l#**400
vx00000r0   funcmaximumminimumc                     |}t          j        dg                              |          }t          |          } t	          t
          |          ||          }t          j        ||           d S )N2019)rb   to_datetimer;   r   rM   r7   rr   r   )rT   tz_aware_fixturer   r$   rn   rV   rU   s          r.   (test_numpy_reduction_with_tz_aware_dtypez7TestReductions.test_numpy_reduction_with_tz_aware_dtype   sg     nfX&&22266#;;"T""8X66
vx00000r0   c                     t          t          ddt          gd          t          ddt          j        gd          d          }t          t          d          dd          }|                                }t          j        ||           d S )Nr]   r1   timedelta64[ns]rf   r^   ABr   )	r   r   r
   r7   r   r   sumrr   r   )rT   r   rV   rU   s       r.   test_nan_int_timedelta_sumz)TestReductions.test_nan_int_timedelta_sum   s    Q3K/@AAAQ26N'::: 
 
 	!15566
vx00000r0   N)__name__
__module____qualname__rz   markfilterwarningsparametrizerC   rW   r   rl   rx   r}   r   r   r   r   r)   r0   r.   rE   rE   7   s!       [B  [Xu~66[UHHJJ//& & 0/ 76 
&$ [Xu~66[xxb!445	
	 	A A	 	 76A@ [Xu~66    76 > [Xu~66[Wx1F&GHH/ / IH 76/)2 )2 )2V [/5#,1MNN1 1 ON1 [Vi%;<<1 1 =<1
1 
1 
1 
1 
1r0   rE   c            	          e Zd Zej                            dg d          d             Zd Zej                            dddg          d             Zd	 Z	d
 Z
ej                            dg d          d             Zd Zej                            dddg          d             Zd Zd Zd Zd Zej                            dddg          ej                            dg egeeegg          d                         Zd Zd ZdS )TestIndexReductionszstart,stop,step))r   i  r   )i  r   i)@B r   )r   r   )r   r      c                 $   t          |||          }|j                                        }|                                }||k    sJ |                    d          }||k    sJ |j                                        }|                                }||k    sJ |                    d          }||k    sJ t          |||           }t	          |                                          sJ t	          |                                          sJ d S NFrg   )r   _valuesrG   rH   r   )rT   startstopstepr5   rV   rU   result2s           r.   test_max_min_rangez&TestIndexReductions.test_max_min_range   s    d++;??$$!!!! '''''("""";??$$!!!! '''''("""" te,,CGGIICGGIIr0   c                    t          g d          }|j        sJ t          dt          j        ddg          }|j        rJ ||fD ]}|                                t          d          k    sJ |                                t          d          k    sJ |                                dk    sJ |                                dk    sJ d S )N)1 days2 days3 daysr   r   r
   r   r1   )	r   is_monotonic_increasingr7   r   rH   r   rG   r   r   rT   idx1idx2r5   s       r.   test_minmax_timedelta64z+TestIndexReductions.test_minmax_timedelta64  s    <<<==++++ x5ABB////$< 	% 	%C7799	( 3 333337799	( 3 33333::<<1$$$$::<<1$$$$$		% 	%r0   r   rH   rG   c                 V   t          g           } t          ||                      t          u sJ t          t          g          } t          ||                      t          u sJ t          t          t          t          g          } t          ||                      t          u sJ d S N)r   rM   r
   rT   r   rI   s      r.   !test_minmax_timedelta_empty_or_naz5TestIndexReductions.test_minmax_timedelta_empty_or_na,  s     R  wsB!!S((((cU##wsB!!S((((c3_--wsB!!S((((((r0   c                    t          ddd          }t          j        |          t          d          k    sJ t          j        |          t          d          k    sJ d}t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        |          dk    sJ t          j	        |          d	k    sJ d}t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j	        |d           d d d            d S # 1 swxY w Y   d S )
Nz
16815 daysz
16820 daysr%   r'   $the 'out' parameter is not supportedro   r   outr   )
r   r7   rH   r   rG   rz   r{   r|   r   r   )rT   tderrmsgs      r.   test_numpy_minmax_timedelta64z1TestIndexReductions.test_numpy_minmax_timedelta648  s   \<cBBBvbzzY|444444vbzzY|4444447]:V444 	 	F21	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:V444 	 	F21	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y}}!!!!y}}!!!!7]:V444 	! 	!Iba    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]:V444 	! 	!Iba    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!sH   >B!!B%(B%C**C.1C.E))E-0E-F33F7:F7c                 (   t          d t          d          D                       }|                                }|                                }t	          t          d                    }||k    sJ |                                                                }|d         |k    sJ |                    d          }t          t          j
        dd                    }||k    sJ |                                }t	          d	          }||k    sJ |                                                                }|d         |k    sJ |                                }t	          d
          }||k    sJ |                                                                }|d         |k    sJ |                                }t	          t          |                                j                                                            }||k    sJ |                                                                }|d         |k    sJ t          t!          d          t!          d          g          }|                                                                t          d          k    sJ t          t!          d          t!          d          t!          d          g          }|                                                                t          d          k    sJ d S )Nc                 T    g | ]%}t          d           t          ||z            z   &S 20130101r   r   r   r+   s     r.   r/   z:TestIndexReductions.test_timedelta_ops.<locals>.<listcomp>Q  4    QQQ!Yz""Yq1u%=%=%==QQQr0   r   	   r   r   g?i(
  msz00:00:09z00:01:21z
2015-02-03z
2015-02-07r   )daysz
2015-02-15   )r   r<   diffmeanr   r   to_framequantiler   r7   timedelta64medianr   stddropnarO   r   )rT   sr   rU   rV   s        r.   test_timedelta_opsz&TestIndexReductions.test_timedelta_opsM  s    QQuRyyQQQ
 
 VVXX	! 4 4 455!!!!##%%ayH$$$$S!!R^D$7788!!!!
++!!!!%%''ayH$$$$ 
++!!!!""$$ayH$$$$ ryy{{'9 : : > > @ @AA!!!!""$$ayH$$$$ Il++Y|-D-DEFFvvxx  I1$5$5$55555|$$i&=&=y?V?VW
 
 vvxx  I1$5$5$5555555r0   rF   )skewkurtsemprodvarc                    t          d t          d          D                       }|                                }d                    d| dd| dd| d	g          }t	          j        t          |
          5   t          ||                       d d d            n# 1 swxY w Y   t	          j        t          |
          5   t          |                                |          d           d d d            d S # 1 swxY w Y   d S )Nc                 T    g | ]%}t          d           t          ||z            z   &S r   r   r+   s     r.   r/   zDTestIndexReductions.test_invalid_td64_reductions.<locals>.<listcomp>  r   r0   r   |zreduction operation 'z' not allowed for this dtypezcannot perform z with type timedelta64\[ns\]zdoes not support reduction ''ro   F)numeric_only)	r   r<   r   joinrz   r{   	TypeErrorrM   r   )rT   rF   r   r   rw   s        r.   test_invalid_td64_reductionsz0TestIndexReductions.test_invalid_td64_reductions  s   QQuRyyQQQ
 
 VVXXhhLLLLG6GGG8v888
 
 ]9C000 	" 	"GB!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ]9C000 	? 	?*GBKKMM6**>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s$   :BB#&B#-C??DDc                    |}t          g d|          }|j        sJ t          dt          ddt          g|          }|j        rJ ||fD ]}|                                t	          d|          k    sJ |                                t	          d|          k    sJ |                                dk    sJ |                                dk    sJ d S )N)
2011-01-01
2011-01-02
2011-01-03r#   r   r   r   r   r1   )r   r   r
   rH   r   rG   r   r   )rT   tz_naive_fixturer$   r   r   r5   s         r.   test_minmax_tzz"TestIndexReductions.test_minmax_tz  s   GGGBOOO++++ 3lC@R
 
 
 ////$< 	% 	%C7799	,2 > > >>>>>7799	,2 > > >>>>>::<<1$$$$::<<1$$$$$		% 	%r0   c                 z   t          g           }t           t          ||                                sJ t          t          g          }t           t          ||                                sJ t          t          t          t          g          }t           t          ||                                sJ d S r   )r   r   rM   r
   r   s      r.   test_minmax_nat_datetime64z.TestIndexReductions.test_minmax_nat_datetime64  s     B$GC$$&&'''''SE""$GC$$&&'''''S#sO,,$GC$$&&'''''''r0   c                 "   t          g d          }|j                                        }t          j        |          }||k    sJ |j                                        }t          j        |          }||k    sJ d}t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   |j                                        }t          j        |          }||k    sJ |j        	                                }t          j	        |          }||k    sJ d}t          j        t          |          5  t          j	        |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr]   r1   r   r   ro   r   r   )
r	   rO   rG   r7   rH   rz   r{   r|   r   r   )rT   r5   rV   rU   r   s        r.   test_numpy_minmax_integerz-TestIndexReductions.test_numpy_minmax_integer  s   III:>>##!!!!:>>##!!!!7]:V444 	 	F3A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:V444 	 	F3A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 :$$&&3!!!!:$$&&3!!!!7]:V444 	" 	"Icq!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"]:V444 	" 	"Icq!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"sH   B<<C C "DD	D	F::F>F> HHHc                    t          ddd          }t          j        |          }|dk    sJ t          j        |          }|dk    sJ d}t	          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t	          j        t          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   ro   r   )r   r7   rG   rH   rz   r{   r|   )rT   r5   rU   r   s       r.   test_numpy_minmax_rangez+TestIndexReductions.test_numpy_minmax_range  sY   B""{{{{{{{{7]:V444 	 	F3A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:V444 	 	F3A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   'B

BB0CCCc                 ~   t          dd          }t          j        |          t          d          k    sJ t          j        |          t          d          k    sJ d}t          j        t          |          5  t          j        |d	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |d	           d d d            n# 1 swxY w Y   t          j        |          dk    sJ t          j	        |          d
k    sJ d}t          j        t          |          5  t          j        |d	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j	        |d	           d d d            d S # 1 swxY w Y   d S )N
2016-01-15
2016-01-20r   endz2016-01-15 00:00:00z2016-01-20 00:00:00r   ro   r   r   r   )
r   r7   rH   r   rG   rz   r{   r|   r   r   )rT   drr   s      r.   test_numpy_minmax_datetime64z0TestIndexReductions.test_numpy_minmax_datetime64  s   l===vbzzY'<======vbzzY'<======7]:V444 	 	F21	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:V444 	 	F21	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y}}!!!!y}}!!!!7]:V444 	! 	!Iba    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ]:V444 	! 	!Iba    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!sH   =B  B$'B$C))C-0C-E((E,/E,F22F69F6c                 B   t          t          dddgd          }|j        rJ |dd          j        sJ t          dt          ddt          gd          }|j        rJ ||fD ]T}|                                t	          dd          k    sJ |                                t	          dd          k    sJ U|                                dk    sJ |                                dk    sJ |                                dk    sJ |                                d	k    sJ d S )
Nr   r   r   r%   r   r]   r   r   r1   )r   r
   r   rH   r   rG   r   r   r   s       r.   test_minmax_periodz&TestIndexReductions.test_minmax_period  sG   C|\JQTUUU////ABBx//// 3lC@s
 
 
 ////$< 	? 	?C7799|# > > >>>>>7799|# > > >>>>>>{{}}!!!!{{}}!!!!{{}}!!!!{{}}!!!!!!r0   datac                 n    t          |d          } t          ||                      }|t          u sJ d S )NMr   )r   rM   r
   )rT   r   r  rI   rU   s        r.   test_minmax_period_empty_natz0TestIndexReductions.test_minmax_period_empty_nat  s>     $S)))!b!!##}}}}}}r0   c                    t          dd          }t          j        |          t          dd          k    sJ t          j        |          t          dd          k    sJ d}t          j        t          |          5  t          j        |d	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |d	           d d d            n# 1 swxY w Y   t          j        |          dk    sJ t          j	        |          d
k    sJ d}t          j        t          |          5  t          j        |d	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j	        |d	           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r%   r   r   ro   r   r   r   )
r   r7   rH   r   rG   rz   r{   r|   r   r   )rT   prr   s      r.   test_numpy_minmax_periodz,TestIndexReductions.test_numpy_minmax_period  s   ,???vbzzVLs;;;;;;;vbzzVLs;;;;;;;7]:V444 	 	F21	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:V444 	 	F21	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y}}!!!!y}}!!!!7]:V444 	! 	!Iba    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]:V444 	! 	!Iba    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!sH   B$$B(+B(
C--C14C1	E,,E03E0F66F:=F:c                 V   t          j        t          d          t          d          d          }d}t          j        t
          |          5  |                                 d d d            n# 1 swxY w Y   d}t          j        t
          |          5  |                                 d d d            n# 1 swxY w Y   t          j        t          d          t          d          d          }|                                d	k    sJ |                                d
k    sJ d S )NaabbcacabF
categoriesorderedzwCategorical is not ordered for operation min\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nro   zwCategorical is not ordered for operation max\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nTcr   )rb   CategoricalIndexlistrz   r{   r   rH   rG   )rT   cirw   s      r.   test_min_max_categoricalz,TestIndexReductions.test_min_max_categorical0  s    hDKKQVWWWY 	 ]9C000 	 	FFHHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Y 	 ]9C000 	 	FFHHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  hDKKQUVVVvvxx3vvxx3s$   A00A47A4B99B= B=N)r   r   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
   r  r	  r  r)   r0   r.   r   r      s       
 [	
 	
 	
	 	 	 	0% % % [TE5>22	) 	) 32	)! ! !*36 36 36j [X'M'M'MNN? ? ON?(% % %$ [TE5>22	( 	( 32	(" " "@  &! ! !." " "( [TE5>22[Vb3%#sC%ABB  CB 32! ! !*    r0   r   c                   n   e Zd Zd Zej                            dg d          ej                            dddg          ej                            ddd	g          d
                                     Zej                            dddg          ej                            dg d          d                         Zej                            dg d          d             Z	d Z
ej                            dddg          ej                            dddg          d                         Zej                            dddg          ej                            dddg          d                         Zd Zej                            dddg          d             Zej                            dd          ej                            dddg          d                          Zd! Zd" Zd# Zd$ Zd% Zd& Zd' Zd( Zd) Zej                            d*d+d,g          ej                            dddg          d-                         Zej                            d*d+d,g          ej                            d.dd/gd/dgdej        gej        dgg          d0                         Zej                            dg d1          ej                            d*d+d,g          ej                            dddg          ej                            d2g d3ddgddggfg d4ddgddggfej        ej        ej        gej        ej        gddggfd5ej        d5gej        dgddggfd6ej        d6gdej        gddggfd6ej        d5gddgddggfg          d7                                                 Zd8 Z d9 Z!d: Z"d; Z#ej                            d< e$g d=          e%f e$g d>          e&f e$d?d@g          e&f e$dAdAdBdBd/ej        dCg          e&fg          dD             Z'dE Z(dF Z)dG Z*dH Z+dI Z,dJ Z-dK Z.d/S )LTestSeriesReductionsc                    t          t          j                            d                              d                    }|                                }t          j        |dd<   t          j        |dd<   t          j        |	                                          sJ t          j                            d                              d          
                    d          }t          j        |d d df<   d}t          j        t          |          5  t          j        d	d
          5  t          j        |	                                |	                                           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t#          j        |d          }t          j        |                                          sJ d S )Nr1   r   r      )d   r  f4"use_inf_as_na option is deprecatedro   mode.use_inf_as_naTr]   r   )r   r7   r=   r>   r?   copyinfr   isinfr   rR   rr   rs   rt   rb   option_contextassert_almost_equalr   nansumall)rT   r   s2r6   rw   rd   s         r.   test_sum_infz!TestSeriesReductions.test_sum_infI  s   29((++;;B??@@VVXX!A#&1Q3x     i##A&&66zBBII$OOFAAAqD	2'SAAA 	: 	:"#7>> : :&quuww999: : : : : : : : : : : : : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: mCa(((x}}  """""""s6   F):E/#F/E3	3F6E3	7FF
F
r   )r:   Float32r^   r_   rX   use_bottleneckTFzmethod, unit)r           )r         ?c                    t          j        d|          5  t          g |          } t          ||                      }||k    sJ  t          ||          d          }||k    sJ  t          ||          d          }t	          |          sJ  t          ||          d          }||k      t          ||          dd          }||k    sJ  t          ||          dd          }t	          |          sJ  t          ||          d	d          }||k    sJ  t          ||          d	d          }t	          |          sJ t          t
          j        g|          } t          ||                      }||k    sJ  t          ||          d          }||k    sJ  t          ||          d          }t	          |          sJ  t          ||          d          }||k      t          ||          dd          }||k    sJ  t          ||          dd          }t	          |          sJ t          t
          j        dg|          } t          ||                      }|d
k    sJ  t          ||          d          }|d
k    sJ  t          ||          d          }|d
k    sJ  t          ||          d          }|d
k    sJ  t          ||          dd          }|d
k    sJ t          t          j        d          |          } t          ||          d          |k    	                                sJ t          dg|          } t          ||          d          }t	          |          sJ  t          ||          d	d          }t	          |          sJ t          t
          j        g|          } t          ||          d          }t	          |          sJ t          t
          j        dg|          } t          ||          d          }t	          |          sJ 	 d d d            d S # 1 swxY w Y   d S )Nr'  rf   r   )	min_countr]   Trg   )rh   r+  Fr)  )r   r   r1   )
rb   r   r   rM   r   r7   r   r   emptyr#  )rT   methodunitr'  r   r   rU   r   s           r.   
test_emptyzTestSeriesReductions.test_empty]  sP    /@@ ]	  ]	  r'''A'WQ''))FT>>>> (WQ''!444FT>>>>'WQ''!444F<< (WQ''t444FdNN (WQ''tqAAAFT>>>>'WQ''tqAAAF<<'WQ''uBBBFT>>>>'WQ''uBBBF<< xu---A'WQ''))FT>>>> (WQ''!444FT>>>>'WQ''!444F<< (WQ''t444FdNN (WQ''tqAAAFT>>>>'WQ''tqAAAF<< {%000A'WQ''))FS==== (WQ''!444FS===='WQ''!444FS==== (WQ''t444FS===='WQ''tqAAAFS==== 28G,,E:::B'GB''**d27799999s%(((A'WQ''!444F<<'WQ''uBBBF<<xu---A'WQ''!444F<<{%000A'WQ''!444F<<{]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	  ]	 s   QQ++Q/2Q/r-  r   r   )Float64r^   r_   c                     t          g |          } t          ||                      }|t          j        u sJ t          t          j        g|          } t          ||                      }|t          j        u sJ d S Nrf   )r   rM   rb   rc   r7   r   )rT   r-  r   eserrU   nsers         r.   &test_ops_consistency_on_empty_nullablez;TestSeriesReductions.test_ops_consistency_on_empty_nullable  s~     b&&&&v&&(( rvhe,,,&v&&((r0   )r   r   r   r   c                     t          t          t                    |                      }t          |          sJ t          g d          }|dk    red                    g d          }t          j        t          |          5   t          ||                       d d d            d S # 1 swxY w Y   d S  t          ||                      }|t          u sJ d S )Nrf   m8[ns]r   r   )zoperation 'var' not allowedz.cannot perform var with type timedelta64\[ns\]z does not support reduction 'var'ro   )	rM   r   floatr   r   rz   r{   r   r
   )rT   r-  rU   tdserrw   s        r.   test_ops_consistency_on_emptyz2TestSeriesReductions.test_ops_consistency_on_empty  s4    6e,,,f5577F|| r***U??((   C y444 ) )&v&&((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ,WUF++--FS======s   B,,B03B0c                     t          dt          j        gddg          }t          j        |          }t	          j        |d           d S )Nr)  r   r]   r4   )r   r7   r   r"  rr   r!  )rT   serrU   s      r.   test_nansum_bugletz'TestSeriesReductions.test_nansum_buglet  sD    c26]1a&1113
vq)))))r0   int32r9   c                    t          j        d|          5  t          j        d|          }t	          |          }|                    d          }t          |          |                    d          k    sJ |                    d          }t          |          dk    sJ |                    d          }t          |          |d         k    sJ 	 d d d            d S # 1 swxY w Y   d S )	Nr'  @KL rf   Frg   r9   r   rq   )	rb   r   r7   r8   r   r   intrH   rG   rT   r'  r   vr   rU   s         r.   test_sum_overflow_intz*TestSeriesReductions.test_sum_overflow_int  s0    /@@ 	( 	( 	'///Aq		AUU%U((Fv;;!%%g%"6"66666UU%U((Fv;;!####UU%U((Fv;;!B%'''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   CC%%C),C)float32r:   c                    t          j        d|          5  t          j        d|          }t	          |          }|                    d          }||                    |          k    sJ |                    d          }t          j        t          |          d          sJ |	                    d          }t          j        t          |          |d                   sJ 	 d d d            d S # 1 swxY w Y   d S )Nr'  rA  rf   Frg   r(  rq   )
rb   r   r7   r8   r   r   rH   allcloser8  rG   rC  s         r.   test_sum_overflow_floatz,TestSeriesReductions.test_sum_overflow_float   s6    /@@ 		5 		5	'///Aq		AUU%U((FQUUU//////UU%U((F;uV}}c22222UU%U((F;uV}}ae444444		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5s   CC66C:=C:c                     d}d}t          j        |g|z            }t          |g|z  d          }t          j        |          }|                                }||z
  dk    sJ |dk    sJ d S )Nl     ;r  r^   rf   r   g ؅W4vC)r7   rP   r   r   )rT   ri   
n_elementsnar=  result_numpyresult_maskeds          r.   test_mean_masked_overflowz.TestSeriesReductions.test_mean_masked_overflow  s    %
Xsej())cUZ'w777wr{{

|+q0000$$$$$$r0   z	ddof, exp)r]         @)r   rY   c                     t          g dd          }t          g dd          }|                    |          }|                    |          }||k    sJ ||k    sJ d S )N)r]   r1   r   r   r   r^   rf   r9   )ddof)r   r   )rT   rR  expr=  ser_numpy_dtyperU   result_numpy_dtypes          r.   test_var_masked_arrayz*TestSeriesReductions.test_var_masked_array  s}     ___G444 @@@d##,00d0;;+++++}}}}}}r0   )r7  r7  rL   zM8[ns, UTC]rh   c                     t          g |                              |          t          u sJ t          g |                              |          t          u sJ d S )Nrf   rg   )r   rH   r
   rG   )rT   r   rh   s      r.   +test_empty_timeseries_reductions_return_natz@TestSeriesReductions.test_empty_timeseries_reductions_return_nat$  sh     b&&&**&*99S@@@@b&&&**&*99S@@@@@@r0   c                    t          j        dd          }t          ||          }t          j        |          }t          j        |          }||k    sJ |                                }||k    sJ d}t	          j        t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S Nr]   r\   r<  r   ro   r   )r7   r8   r   r   rz   r{   r|   )rT   r  r   rU   rV   rw   s         r.   test_numpy_argminz&TestSeriesReductions.test_numpy_argmin+  s   yB4t$$$19T??!!!!!!!!4]:S111 	# 	#IaT""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#   B44B8;B8c                    t          j        dd          }t          ||          }t          j        |          }t          j        |          }||k    sJ |                                }||k    sJ d}t	          j        t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S rZ  )r7   r8   r   r   rz   r{   r|   )rT   r  r=  rU   rV   rw   s         r.   test_numpy_argmaxz&TestSeriesReductions.test_numpy_argmax=  s   yBT&&&39T??!!!!!!!!4]:S111 	% 	%Ict$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%r\  c                    t          g d                              |          }t          ddt          j        g|          }d}t          j        t          |          5  |                    d          }d d d            n# 1 swxY w Y   |t          u sJ d	}t          j        t          |          5  |
                    d          }d d d            n# 1 swxY w Y   |t          u sJ |                                }d
}t          j        t          |          5  |                    d          }d d d            n# 1 swxY w Y   |j        d| dk    sJ |                                                                sJ d}t          j        t          |          5  |
                    d          }d d d            n# 1 swxY w Y   |j        d| dk    sJ |                                                                sJ d S )N)r
   z
2015-02-08r
   r)  rY   r<  0The behavior of Series.idxmin with all-NA valuesro   Frg   0The behavior of Series.idxmax with all-NA valuesz3The behavior of DataFrame.idxmin with all-NA valueszM8[]z3The behavior of DataFrame.idxmax with all-NA values)r   as_unitr   r7   r   rr   rs   rt   idxminr
   idxmaxr   r   r   r#  )rT   r.  dtir=  rw   rd   r   s          r.   test_idxmin_dt64indexz*TestSeriesReductions.test_idxmin_dt64indexN  s   88899AA$GGc3's333@'SAAA 	+ 	+**E***C	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+czzzz@'SAAA 	+ 	+**E***C	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+czzzz\\^^C'SAAA 	* 	*))5)))C	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*yM$MMM))))xxzz~~C'SAAA 	* 	*))5)))C	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*yM$MMM))))xxzz~~sH    BB
B6CC C EE
E$GGGc                 v   t          t          d          t          j        d          }t          j        |dd<   ||                                         |                                k    sJ d}t          j        t          |          5  t          |                    d	                    sJ 	 d d d            n# 1 swxY w Y   |                                }||                                         |                                k    sJ |j        j                                                            |                                          |j                                        k    sJ |t          j        z  }t          j        t          |          5  t          |                                          sJ 	 d d d            n# 1 swxY w Y   t          t!          d
d                    }|                                }|dk    sJ t          j        |d<   |                                }|dk    sJ d S )Nr   rA   r   r      zThe behavior of Series.idxminro   Frg   20130102r   r!   r   r]   )r   r<   r7   r:   r   rd  rH   rr   rs   rt   r   r   r4   rO   tolistr   r   rT   string_seriesrw   nonaallnar   rU   s          r.   test_idxminz TestSeriesReductions.test_idxming  sp    uRyy
JJJ !fad ]113348I8I8K8KKKKK-'SAAA 	< 	<,,E,::;;;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< ##%%DKKMM"dhhjj0000z ''))//>>$+BTBTBVBVVVVV &'SAAA 	( 	(''''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( :j!44455{{{{v!{{{{{{s$   
&B==CC$G		GGc                    t          t          d          t          j        d          }t          j        |dd<   ||                                         |                                k    sJ d}t          j        t          |          5  t          |                    d	                    sJ 	 d d d            n# 1 swxY w Y   |                                }||                                         |                                k    sJ |j        j                                                            |                                          |j                                        k    sJ |t          j        z  }d}t          j        t          |          5  t          |                                          sJ 	 d d d            n# 1 swxY w Y   t          t!          d
d                    }|                                }|dk    sJ t          j        |d<   |                                }|dk    sJ t          g dg d          }|                                }|dk    sJ |                                }|dk    sJ t          |j        |j                  }|                                }|dk    sJ |                                }|dk    sJ d S )Nr   rA   r   r   ri  ra  ro   Frg   rj  r   r!   r   r   )皙?g @@rs  rr  )r   r<   r7   r:   r   re  rG   rr   rs   rt   r   r   r4   rO   rk  r   r   rd  rl  s          r.   test_idxmaxz TestSeriesReductions.test_idxmax  s	    uRyy
JJJ !fad ]113348I8I8K8KKKKK@'SAAA 	< 	<,,E,::;;;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< ##%%DKKMM"dhhjj0000z ''))//>>$+BTBTBVBVVVVV &@'SAAA 	( 	(''''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( :j!44455{{{{v!{{{{ 999ooo..}}}}}}}}17AG$$}}}}}}}}}}s$   
&B==CC$GGGc                 6   t          t          j        dt          j                  t	          dd          d          }|dk    }|                                rJ |                                sJ t          dd	g          }|                                sJ d S )
Nr   rf   r    r!   tsr3   r   abcT)r   r7   r8   r:   r   r#  any)rT   rv  bool_seriesr   s       r.   test_all_anyz!TestSeriesReductions.test_all_any  s    Ib
+++\2666
 
 

 1f??$$$$$      E4=!!uuwwr0   c                      |g d          }t          j        |          rJ t          j        |          sJ t          g d          }t          j        |          sJ d S )N)r   r]   r1   r   )r7   r#  rx  r	   )rT   rj   r5   s      r.   test_numpy_all_anyz'TestSeriesReductions.test_numpy_all_any  sh    oiii((6#;;vc{{IIIvc{{r0   c                 2   t          t          j        dg          }t          t          j        dg          }|                    d          sJ |                    d          sJ |                    d          sJ |                    d          rJ d S )NTFrg   )r   r7   r   r#  rx  )rT   s1r$  s      r.   test_all_any_skipnaz(TestSeriesReductions.test_all_any_skipna  s    RVTN##RVUO$$vvUv#####vvTv"""""vvUv#####666&&&&&&&r0   c                     t          g dg d          }|                    d          sJ |                    d          rJ d S )N)FFTTFT)r   r   r]   r]   r1   r1   r<  T)	bool_only)r   rx  r#  )rT   r   s     r.   test_all_any_bool_onlyz+TestSeriesReductions.test_all_any_bool_only  s^    :::BTBTBTUUU uutu$$$$$5545(((((((r0   bool_agg_funcrx  r#  c                 ~    t          g dt                    } t          ||          |          }d}||k    sJ d S )N)r   r   r  derf   rg   T)r   rX   rM   )rT   r  rh   r=  rU   rV   s         r.   test_any_all_object_dtypez.TestSeriesReductions.test_any_all_object_dtype  sU     ...f===,m,,F;;;!!!!!!r0   r  Nc                 |    t          |          } t          ||          d          }|dk    od |v}||k    sJ d S )NFrg   rx  )r   rM   )rT   r  r  r=  rU   rV   s         r.   !test_any_all_object_dtype_missingz6TestSeriesReductions.test_any_all_object_dtype_missing  sX     Tll,m,,E::: !E)>d$.>!!!!!!r0   )r_   r^   UInt64r0  zdata,expected_data)r   r   r   )r]   r]   r]   r   r]   c                     t          ||          }||         |dk             } t          ||          |          }|t          j        u r|t          j        u s
||k    sJ d S d S )Nrf   r#  rg   )r   rM   rb   rc   )	rT   r  rh   r  r   expected_datar=  rV   rU   s	            r.   "test_any_all_nullable_kleene_logicz7TestSeriesReductions.test_any_all_nullable_kleene_logic  sy    ( T''' (%)?@,m,,F;;;"%H$5$5&H:L:L:L:L:L:L$5$5r0   c                     t          ddgddgd          }|                    dd          }t          ddg          }t          j        ||           d S )NTFr]   r1   r   )r   r  )r   rx  r   rr   r   )rT   r   rU   rV   s       r.   test_any_axis1_bool_onlyz-TestSeriesReductions.test_any_axis1_bool_only  s^    dE]!Q8899Q$//4-((
vx00000r0   c                    t          dd          j        }t          |          }t          |          }d}t	          j        t          |          5  |                                sJ |                                sJ |                                sJ |                                sJ |                                                                sJ |                                                                sJ 	 d d d            n# 1 swxY w Y   |	                    d          }t          |          }t          |          }t	          j        t          |          5  |                                sJ |                                sJ |                                sJ |                                sJ |                                                                sJ |                                                                sJ 	 d d d            n# 1 swxY w Y   ||d         z
  }t          |          }t          |          }|                                sJ |                                rJ |                                sJ |                                rJ |                                                                sJ |                                                                rJ d S )Nz
1995-01-02r   r!   z0'(any|all)' with datetime64 dtypes is deprecatedro   r   r   )
r   _datar   r   rr   rs   rt   r#  rx  r;   )rT   dtar=  r   rw   tdas         r.   test_any_all_datetimelikez.TestSeriesReductions.test_any_all_datetimelike  s    q1117Skks^^@'SAAA 		" 		"77997799779977996688<<>>!!!6688<<>>!!!!		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" ooe$$Skks^^'SAAA 		" 		"77997799779977996688<<>>!!!6688<<>>!!!!		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" 		" CFlSkks^^wwyy7799wwyy7799vvxx||~~6688<<>>!!!!!s&   B)DDD!B)HHHc                    t          |t          j                  r|j        t          j        u rt          ddg|          }t          j        t                    5  |	                                 d d d            n# 1 swxY w Y   t          j        t                    5  |
                                 d d d            n# 1 swxY w Y   d S t          ddg|          }|	                                sJ |
                                rJ |	                    d          sJ |
                    d          rJ t          t          j        dg|          }|	                                sJ |
                                sJ |	                    d          sJ |
                    d          sJ t          t          j        dg|          }|	                                rJ |
                                rJ |	                    d          sJ |
                    d          rJ t          ddg|          }|	                                sJ |
                                sJ |	                    d          sJ |
                    d          sJ t          g |          }|	                                rJ |
                                sJ |	                    d          rJ |
                    d          sJ t          dg|          }|	                                rJ |
                                rJ |	                    d          rJ |
                    d          rJ t          t          j        g|          }|	                                rJ |
                                sJ |	                    d          sJ |
                    d          sJ d S )Nr   r   rf    Frg   )rN   rb   StringDtypena_valuerc   r   rz   r{   r   rx  r#  r7   r   )rT   any_string_dtyper=  s      r.   test_any_all_string_dtypez.TestSeriesReductions.test_any_all_string_dtypeD  sT    '88	 )RU22 #s+;<<<Cy))  			              y))  			              Fb#Y&6777wwyy7799wwew$$$$$77%7(((((bfc]*:;;;wwyywwyywwew$$$$$wwew$$$$$bfb\)9:::77997799wwew$$$$$77%7(((((c3Z'7888wwyywwyywwew$$$$$wwew$$$$$R/0007799wwyy77%7(((((wwew$$$$$bT!12227799779977%7(((((77%7(((((bfX%56667799wwyywwew$$$$$wwew$$$$$$$s$   A;;A?A?C  CCc                 ^   t          ddd          }t          |          t          d          z
  }|                                }|dk    sJ |                                }|dk    sJ t
          j        |d<   |                                }|dk    sJ |                                }|dk    sJ t          t          dd	                    }t          t          d
d	                    }t          ||z
            }t          j        ||z
            }t          j	        ||           ||z
                                  }t          j	        ||           |
                                }t          d          }||k    sJ |                                }t          d          }||k    sJ d S )Nz2012-1-1r   r%   r&   20120101r   r1   r]   r!   20120102r   r   )r   r   r   rd  re  r7   r   absrr   r   rG   r   rH   )rT   rf  r   rU   r~  r$  rV   s          r.   test_timedelta64_analyticsz/TestSeriesReductions.test_timedelta64_analytics}  s   QS999C[[9Z000{{{{{{{{ 1{{{{{{{{ Jz155566Jz155566"r'??R
vx000r'
vx000 X&&!!!!X&&!!!!!!r0   ztest_input,error_typerf   foobarbazr]   r1   r  r  r  c                 r   t          g d          }d}t          j        t          |          5  |                                 ddd           n# 1 swxY w Y   t          j        t          |          5  |                    d           ddd           n# 1 swxY w Y   d}t          j        t          |          5  |                                 ddd           n# 1 swxY w Y   t          j        t          |          5  |                    d           ddd           dS # 1 swxY w Y   dS )	zU
        Cases where ``Series.argmax`` and related should raise an exception
        r:   rf   z*attempt to get argmin of an empty sequencero   NFrg   z*attempt to get argmax of an empty sequence)r   rz   r{   r|   rd  re  )rT   
test_input
error_typerw   s       r.   "test_assert_idxminmax_empty_raisesz7TestSeriesReductions.test_assert_idxminmax_empty_raises  s)    Bi000
:]:S111 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ]:S111 	, 	,U+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,:]:S111 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ]:S111 	, 	,U+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,sG   AAA6BB BC""C&)C&D,,D03D0c           	         t          g d          }|                                dk    sJ |                    d          dk    sJ |                                dk    sJ |                    d          dk    sJ t          ddg          }|                                dk    sJ |                    d          dk    sJ |                                dk    sJ |                    d          dk    sJ |sGt          ddd	d	d t          j        d
g          }d}t          j        t          |          5  |                                 d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                                 d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S d S )Nr  r   Frg   r]   r  r  r  r  r  z8'>' not supported between instances of 'float' and 'str'ro   z8'<' not supported between instances of 'float' and 'str')r   re  rd  r7   r   rz   r{   r   )rT   using_infer_stringr=  ser2ser3rw   s         r.   test_idxminmax_object_dtypez0TestSeriesReductions.test_idxminmax_object_dtype  s:   ***++zz||q    zzz''1,,,,zz||q    zzz''1,,,,tTl##{{}}!!!!{{%{((A----{{}}!!!!{{%{((A----! 	*5%tRVUKLLDLCy444                y444 * *5)))* * * * * * * * * * * * * * *LCy444                y444 * *5)))* * * * * * * * * * * * * * * * * *	* 	*sH   ;EE #E F%%F),F)G..G25G2H88H<?H<c                     t          ddgddgddgg          }|                                }t          ddg          }t          j        ||           d S )	NzimmrP  biffr)  bidg      (@r   r1   )r   re  r   rr   r   )rT   r   rd   rS  s       r.   test_idxminmax_object_framez0TestSeriesReductions.test_idxminmax_object_frame  sW    }udmDEEiikkaVnn
sC(((((r0   c                     t          g d          }|                                dk    sJ |                                dk    sJ |                    d          dk    sJ |                    d          dk    sJ d S )N))r]   r   )r1   r1   )r   r]   r1   r   Frg   )r   re  rd  rT   r=  s     r.   test_idxminmax_object_tuplesz1TestSeriesReductions.test_idxminmax_object_tuples  s    ---..zz||q    zz||q    zzz''1,,,,zzz''1,,,,,,r0   c                 t   t          ddgt          d          t          d          gt          d          t          d          gd          }|                                }t          dddd          }t	          j        ||           |                                }|dz
  }t	          j        ||           d S )Nr   r]   z8.68z42.23z7.11z79.61)r5   xy)r   r   re  r   rr   r   rd  )rT   r   rd   rS  res2exp2s         r.   test_idxminmax_object_decimalsz3TestSeriesReductions.test_idxminmax_object_decimals  s    1vfooww'7'78fooww'7'78 
 
 iikkQQQ//00
sC(((yy{{Qw
tT*****r0   c                    t          ddgd          }|                                dk    sJ |                                dk    sJ |                    d          dk    sJ |                    d          dk    sJ d S )Nr   r]   rX   rf   Frg   )r   r   r   r  s     r.   test_argminmax_object_intsz/TestSeriesReductions.test_argminmax_object_ints  s    aV8,,,zz||q    zz||q    zzz''1,,,,zzz''1,,,,,,r0   c                 $   t          dt          j         t          j        t          j        g          }|                                dk    sJ d}t          j        t          |          5  t          j        |                    d                    sJ 	 d d d            n# 1 swxY w Y   |	                                dk    sJ d}t          j        t          |          5  t          j        |	                    d                    sJ 	 d d d            n# 1 swxY w Y   d	}t          j        t          |          5  t          j        d
d          5  |                                dk    sJ t          j        |                    d                    sJ |	                                dk    sJ t          j        |	                    d                     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 )Nr   r]   r`  ro   Frg   r1   ra  r  r  T)r   r7   r  r   rd  rr   rs   rt   ru   re  rb   r   )rT   r   rw   s      r.   test_idxminmax_with_infz,TestSeriesReductions.test_idxminmax_with_inf  s   Aw/00xxzzQ@'SAAA 	4 	48AHHEH22333333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 xxzzQ@'SAAA 	4 	48AHHEH22333333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 3'SAAA 	1 	1 "#7>> 1 1xxzzQx 6 677777xxzzQ//000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s[   *+B""B&)B&$+DD #D HBG-!H-G1	1H4G1	5HH	H	c                     t          dgd          }|                                }t          j        d          }t	          j        ||           d S )Nl     9V uint64rf   )r   r   r7   r  rr   r!  )rT   r   rU   rV   s       r.   test_sum_uint64z$TestSeriesReductions.test_sum_uint64  sN    ():::9122
vx00000r0   )/r   r   r   r%  rz   r   r   r/  r5  r:  r>  rE  rI  rO  rV  rX  r[  r^  rg  rp  rt  rz  r|  r  r  r  r7   r   r  rb   rc   r  r  r  r  r  r   r|   r   r  r  r  r  r  r  r  r  r)   r0   r.   r  r  D  sv       
# # #( [EEE  [-e}==[^lM-JKK^  ^  LK >= 
^ @ [X77[W&E&E&EFF  GF 87 [X'G'G'GHH! ! IH!0* * *
 [-e}==[Ww&899( ( :9 >=( [-e}==[Wy)&<==
5 
5 >= >=
5
% 
% 
% [[8X*>??  @? [W&STT[Xe}55A A 65 UTA
# # #$% % %"     2  B- - -^    ' ' ') ) ) [_uen==[Xe}55" " 65 >=" [_uen==[%urvP " "  >=" [W&O&O&OPP[_uen==[Xe}55[ 	YY%%89YY$d|45eRUBE"beRU^eT]$CD]beU^eU^<=]dBE]T4L9:]dE]T5M:;	
	 M M  65 >= QP M1 1 1-" -" -"^7% 7% 7%r'" '" '"R [VBi(((*5V)))**I6VT4L!!9-VUE5%rvuEFF	R	

 
, ,
 
, * * *8) ) )- - -+ + +"- - -1 1 101 1 1 1 1r0   r  c                      e Zd Zej                            d eeeg           ee ed          g           e ed           ed          g          g          d             Z	ej                            d e
eeg           e
e ed          g           e
 ed           ed          g          g          d             Zd Zd ZdS )	TestDatetime64SeriesReductionsnat_sernatc                     |                                 t          u sJ |                                t          u sJ |                     d          t          u sJ |                    d          t          u sJ d S r   rH   r
   rG   )rT   r  s     r.   test_minmax_nat_seriesz5TestDatetime64SeriesReductions.test_minmax_nat_series*  sz     {{}}####{{}}####{{%{((C////{{%{((C//////r0   nat_dfc                 &   |                                 d         t          u sJ |                                d         t          u sJ |                     d          d         t          u sJ |                    d          d         t          u sJ d S )Nr   Frg   r  )rT   r  s     r.   test_minmax_nat_dataframez8TestDatetime64SeriesReductions.test_minmax_nat_dataframe9  s     zz||A#%%%%zz||A#%%%%zzz''*c1111zzz''*c111111r0   c                 .   t          dd          }|                    t          j                            d                              t          |                              }|                                }|                                }t          |t                    sJ t          |t                    sJ ||d         k    sJ ||d         k    sJ |                                |d         k    sJ |                                |d         k    sJ d S )N1/1/2000z
12/31/2000r1   r   rq   )r   taker7   r=   r>   permutationlenrH   rG   rN   r   )rT   rngrng2the_minthe_maxs        r.   test_min_maxz+TestDatetime64SeriesReductions.test_min_maxH  s    \22xx	--a00<<SXXFFGG((**((**'9-----'9-----#a&    #b'!!!!wwyyCF""""wwyyCG######r0   c                 .   t          ddd          }g d}t          |t          j                            d                              t          |                    |d          }|j                                        }t          |j        j
        d                   }t          |t                    sJ ||k    sJ |j                                        }t          |j        j
        d	                   }t          |t                    sJ ||k    sJ d S )
Nr  r   4hr&   )
r   r   r   r   r   r   Cr  r  r  r1   )TSVLrq   r   )r   r   r7   r=   r>   r?   r  r  rG   r   iatrN   rH   )rT   r  lvlsr   rU   rS  s         r.   test_min_max_seriesz2TestDatetime64SeriesReductions.test_min_max_seriesV  s    Rd;;;AAAY**1--==c#hhGG 
 
 	"&&&),,,,,}}}}	!%%&),,,,,}}}}}}r0   N)r   r   r   rz   r   r   r   r
   r   r  r   r  r  r  r)   r0   r.   r  r  %  sH       
 [FC:FC5))*++FIIe$$ii&6&6788	
 0 0 0 [IsCj!!IsIIe,,-..Iyy''5)9)9:;;	
 2 2 2$ $ $    r0   r  c                      e Zd Zej                            dddg          d             Zej                            d ed           ed          f ed           ed          f ed          ej	        gz    ed          fg dg d	fd
ddej	        gg d	fg          ej                            dddg          d                         Z
ej                            dddg          ej                            dddg          d                         Zej                            dddg          ej                            dddg          d                         ZdS )TestCategoricalSeriesReductionsfunctionrH   rG   c                     t          t          g dd                    }d| }t          j        t          |          5   t          ||                       d d d            d S # 1 swxY w Y   d S )N)r   r   r  r  F)r  z)Categorical is not ordered for operation ro   )r   r   rz   r{   r   rM   )rT   r  catrw   s       r.   test_min_max_unordered_raisesz=TestCategoricalSeriesReductions.test_min_max_unordered_raisesq  s     [!5!5!5uEEEFFD(DD]9C000 	% 	%"GC""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   A''A+.A+zvalues, categoriesrw  cbar   r   r1   r]   r]   r1   r   c                     t          t          ||d                    } t          ||          d          }|dk    r|d         n|d         }||k    sJ d S )NTr  rg   rH   r   r1   )r   r   rM   )rT   rO   r  r  r  rU   rV   s          r.   test_min_max_orderedz4TestCategoricalSeriesReductions.test_min_max_orderedy  sn     [JMMMNN'h''t444$,$5$5:a==:a=!!!!!!r0   rh   TFc                     t          t          t          j        gddgd                    } t	          ||          |          }|t          j        u sJ d S )Nr]   r1   Tr  rg   r   r   r7   r   rM   )rT   r  rh   r  rU   s        r.   "test_min_max_ordered_with_nan_onlyzBTestCategoricalSeriesReductions.test_min_max_ordered_with_nan_only  s]     ["&q!fdKKKLL'h''v666r0   c                     t          t          ddt          j        dgddgd                    } t	          ||          |          }|du r|dk    rdnd}||k    sJ d S |t          j        u sJ d S )Nr   r   Tr  rg   rH   r  )rT   r  rh   r  rU   rV   s         r.   test_min_max_skipnaz3TestCategoricalSeriesReductions.test_min_max_skipna  s     c263/S#JPTUUU
 
 (h''v666T>>&%//ssSHX%%%%%%RV######r0   N)r   r   r   rz   r   r   r  r  r7   r   r  r  r  r)   r0   r.   r  r  l  s       
 [Z%88% % 98% [T%[[$$u++&T%[[$$u++&T%[[BF8#TT%[[1YY			"Arv			*	
	 	 [Z%88" " 98	 	" [Z%88[Xe}55    65 98  [Z%88[Xe}55
$ 
$ 65 98
$ 
$ 
$r0   r  c                      e Zd Zej                            dd eg ej                  fd eg ej                  fg          d             Z	ej                            ddg ddgfdg d	dd
gfdg ddgfdg d	dd
gfg          ej                            d e
ej        d         ej        d         z                       d                         Zej                            dddgfddej        gfg          d             Zej                            dddgdgfddgej        gfg          d             Zej                            dddgdgfddgej        gfg          d             Zej                            dddgdgfddgej        gfg          d             Zej                            ddg dddgfdej        gej        ddgfg          d             Zej                            ddg dddgfdej        gej        ddgfg          d             Zej                            d d edd!gdd!g"           ed#gdd#g"           ed
dgg d$d%          fd eej        gdd!g"           eej        d#gdd#g"           eej        d
dgg d$d%          fg          d&             Zej                            ddd'gdd'gfdd'gdd'gfg          d(             Zd) Zd* Zej                            d+g d, edgej                  ej        fg d, edgej                  ej        fg d- ed.gej                  ej        fg          d/             Zej                            d+g d0 eg d1ej                  ej        fg d2 ed3d.gej                  ej        fg          d4             Zd5S )6TestSeriesModezdropna, expectedTrf   Fc                     t          g t          j                  }|                    |          }t	          j        ||           d S r2  )r   r7   r:   moderr   r   rT   r   rV   r   rU   s        r.   test_mode_emptyzTestSeriesMode.test_mode_empty  s@    
 2RZ(((
vx00000r0   zdropna, data, expected)r]   r]   r]   r1   r]   )r]   r]   r]   r1   r   r   r   r   dt
AllIntegerFloatc                     t          ||          }|                    |          }t          ||          }t          j        ||           d S r2  r   r  rr   r   )rT   r   r  rV   r  r   rU   s          r.   test_mode_numericalz"TestSeriesMode.test_mode_numerical  sP     4r"""("---
vx00000r0   r)  c                     t          dddt          j        t          j        g          }|                    |          }t          |          }t	          j        ||           d S )Nr]   r1   )r   r7   r   r  rr   r   r  s        r.   test_mode_numerical_nanz&TestSeriesMode.test_mode_numerical_nan  sS    Aq!RVRV,--(##
vx00000r0   zdropna, expected1, expected2r   r  c                    dgdz  dgdz  z   }t          |d          }|                    |          }t          |d          }t          j        ||           dddt          j        t          j        t          j        g}t          |t                    }|                    |          }t          |t                    }t          j        ||           d S )	Nr   r1   r   r   r  rf   r  r  )r   r  rr   r   r7   r   rX   )rT   r   	expected1	expected2r  r   rU   s          r.   test_mode_objectzTestSeriesMode.test_mode_object  s     uqyC519$4s###9C000	
vy111ueRVRVRV<4v&&&9F333	
vy11111r0   c                    dgdz  dgdz  z   }t          ||          }|                    |          }t          ||          }t          j        ||           dddt          j        t          j        t          j        g}t          ||          }|                    |          }t          ||          }t          j        ||           d S )Nr   r1   r   r   rf   r  r  )r   r  rr   r   r7   r   )rT   r   r  r   r  r  r   rU   s           r.   test_mode_stringzTestSeriesMode.test_mode_string  s     uqyC519$4/0009,<===	
vy111ueRVRVRV<4/0009,<===	
vy11111r0   r  c                    t          g d          }|                    |          }t          |t                    }t          j        ||           t          dddt
          j        t
          j        t
          j        g          }|                    |          }t          |t                    }t          j        ||           d S )N)r]   r  r  rf   r]   r  )r   r  rX   rr   r   r7   r   )rT   r   r  r   r   rU   rV   s          r.   test_mode_mixeddtypez#TestSeriesMode.test_mode_mixeddtype  s    
 $$$%%)6222
vx000AueRVRVRV<==)6222
vx00000r0   )
1900-05-03r   
2013-01-02r   r  c                 >   t          g dd          }|                    |          }t          |d          }t          j        ||           t          g dd          }|                    |          }t          |d          }t          j        ||           d S )N)r   r  r  r   r   rL   rf   )r   r  r  r   r  r   r   r  rT   r   r  r   r   rU   s         r.   test_mode_datetimez!TestSeriesMode.test_mode_datetime  s     DDDH
 
 
 9H555	
vy111   
 
 
 9H555	
vy11111r0   )-1 days0 daysr   2 min1 dayc                 >   t          g dd          }|                    |          }t          |d          }t          j        ||           t          g dd          }|                    |          }t          |d          }t          j        ||           d S )N)r   r  r  r   r   r   rf   )r  r  z-1 dayz-1 day 2 minr  r  r   r   r  r	  s         r.   test_mode_timedeltaz"TestSeriesMode.test_mode_timedelta)  s     999AR
 
 
 9,=>>>	
vy111	 	 	 $
 
 
 9,=>>>	
vy11111r0   z'dropna, expected1, expected2, expected3r1   )r  r   r  r  c                    t          t          ddt          j        t          j        g                    }|                    |          }t          |d          }t          j        ||           t          t          dddt          j        t          j        g                    }|                    |          }t          |d          }t          j        ||           t          t          dddddt          j        t          j        gg dd	                    }|                    |          }t          |d          }t          j        ||           d S )
Nr]   r1   categoryrf   r   r   r  Tr  )r   r   r7   r   r  rr   r   )rT   r   r  r   	expected3r   rU   s          r.   test_mode_categoryz!TestSeriesMode.test_mode_categoryK  s-   $ ;1bfbf566779J777	
vy111;3RVRV<==>>9J777	
vy111Aq!Q/IIIt  
 

 9J777	
vy11111r0               c                    t          g dt          j                  }|                    |          }t          |t          j                  }t	          j        ||           t          ddgt          j                  }|                    |          }t          |t          j                  }t	          j        ||           d S )N)r]   r  r  rf   r]   r  )r   r7   r  r  rr   r   r	  s         r.   test_mode_intoverflowz$TestSeriesMode.test_mode_intoverflowp  s     $$$BI6669BI666	
vy111Au:RY///9BI666	
vy11111r0   c                     t          dddt          j        t          j        g          }t          dt          j        gt                    }|                    d          }t          j        ||           d S )Nr]   r  rf   F)r   )r   r7   r   rX   r  rr   r   )rT   r   rV   rU   s       r.   test_mode_sort_with_naz%TestSeriesMode.test_mode_sort_with_na  sb    AueRVRV4555"&/888u%%
vx00000r0   c                     t          dddt          j        gd          }|                                }t          ddid          }t	          j        ||           d S )NTFr_   rf   r   )r   rb   rc   r  rr   r   )rT   r=  rU   rV   s       r.   test_mode_boolean_with_naz(TestSeriesMode.test_mode_boolean_with_na  s[    dE4/yAAA1d)9555
vx00000r0   zarray,expected,dtype)r                 ?r]   r]         ?      ?      ?       @)r                 @r  r  c                 v    t          ||                                          }t          j        ||           d S r2  r  rT   rP   rV   r   rU   s        r.   test_single_mode_value_complexz-TestSeriesMode.test_single_mode_value_complex  s;    * U+++0022
vx00000r0   )r   r  r]   r  r  )y                r  y      ?        r  r  )r  r  r  r  r   r  c                 v    t          ||                                          }t          j        ||           d S r2  r  r!  s        r.   test_multimode_complexz%TestSeriesMode.test_multimode_complex  s;    ( U+++0022
vx00000r0   N)r   r   r   rz   r   r   r   r7   r:   r  r  	typecodesr  r   r  r  r  r  r
  r  r   r  r  r  r  
complex128	complex64r"  r$  r)   r0   r.   r  r    s       
 [
r,,,	-vvb
7S7S7S/TU 1 1	 1
 [ <<<!%(((1a&1LLL1#&)))Aq62		
  [dd2<-W0EEFF 1 1  1 [/4#-%!RVAU1VWW1 1 XW1 [&C55'"SEBF8$	
 2 2 2  [&C55'"SEBF8$	
 2 2 2  [&
%	!EE7RVH#=> 	1 	1	 	1 [& :::|,
 RVHrv|\BC	

 
2 2
 
20 [&222Wg4FGRVHrvw89	
 2 2 26 [1 QF1v666SEq#h777QFyyy$GGG	 RVH!Q888RVSMq#h???RVQNyyy$OOO		
 "2 2# "2( [&
!U	$uug5z&BC 
2 
2	 
21 1 11 1 1 [ .--s"-000 .--s",/// %$$xr}555	
 (1 1) (1 [ +**777r}MMM	 ,++F|2<888	
  1 1!  1 1 1r0   r  )(r   r   decimalr   numpyr7   rz   pandasrb   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingrr   pandas.corer   pandas.core.arrays.string_arrowr   rC   rE   r   r  r  r  r  r)   r0   r.   <module>r/     s                                                             &             J J J J J J  (|1 |1 |1 |1 |1 |1 |1 |1~K K K K K K K K\
^1 ^1 ^1 ^1 ^1 ^1 ^1 ^1BD D D D D D D DN3$ 3$ 3$ 3$ 3$ 3$ 3$ 3$lX1 X1 X1 X1 X1 X1 X1 X1 X1 X1r0   