
    m*i3                    .   S SK J r   S SKrS SKrS SKrS SKJr  S SKJr	J
r  S SKJrJrJrJrJr  S SKJr  S SKrS SKJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'  S SK(J)r*  S SK+J,s  J-r  S SK.J/r/J0r0  S SK1J,s  J2r3   " S	 S
5      r4 " S S5      r5S r6 " S S5      r7 " S S5      r8 " S S5      r9 " S S5      r: " S S5      r; " S S5      r< " S S5      r=\R|                  R                  S\R                  \R                  /5      S 5       rAg)    )datetimeN)using_string_dtype)algos	hashtable)is_bool_dtypeis_complex_dtypeis_float_dtypeis_integer_dtypeis_object_dtype)CategoricalDtype)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexIntervalIndex
MultiIndexNaTPeriodPeriodIndexSeries	Timedelta	Timestampcut
date_rangetimedelta_rangeto_datetimeto_timedelta)DatetimeArrayTimedeltaArrayc                   	   \ rS rSrS r\R                  R                  \" 5       SSS9\R                  R                  SSS/5      S 5       5       r
S	 rS
 rS rS rS rS rS rS rS r\R                  R                  S/ SQ/ SQ/ SQ4/ SQ/ SQ/ SQ4/ SQ/ SQ/ SQ4/5      S 5       rS rS rS rS rS  rS! rS" rS# r\R                  R                  SSS/5      S$ 5       r\R                  R                  SSS/5      S% 5       rS& r\R                  R                  S'\ RB                  " / S(QS)S*9\ RB                  " / S+QS,S*9\ RB                  " / S-QS.S*9/5      S/ 5       r"\R                  R                  S0\ RB                  " / S1QS)S*9S24\ RB                  " / S3QS)S*9S44\ RB                  " / S5QS,S*9S64\ RB                  " / S7QS,S*9S44\ RB                  " / S8Q\#S*9S94\ RB                  " / S:Q\#S*9S;4\ RB                  " / S<Q\#S*9S=4/5      S> 5       r$\R                  R                  SSS/5      \R                  R                  S?\ RB                  " / S@Q\#S*9\ RB                  " SAS9/\#S*94\%RB                  " SBS4\ RL                  SB/SCS*9\%RB                  " SBS4/SCS*94/SDSE/SF9SG 5       5       r'\R                  R                  S/ SHQ\ RB                  " / SIQ\ RP                  " SJ5      S*9\ RB                  " S9\ RL                  SA/\#S*94S9\ RL                  SAS9/\ RB                  " / SIQ\ RP                  " SJ5      S*9\ RB                  " S9\ RL                  SA/\#S*94/5      SK 5       r)\R                  R                  S/ SLQ\ RB                  " / S1Q\ RP                  " SJ5      S*9\ RB                  " S4\ RL                  SB/SMS*94S4\ RL                  S4SB/\ RB                  " / S1Q\ RP                  " SJ5      S*9\ RB                  " S4\ RL                  SB/\ RT                  S*94/5      SN 5       r+\R                  R                  S\," \-" / SOQ5      5      \ RB                  " / SPQ\ R\                  S*9\/" S9SA/S9SA/SQSR94\0" \-" / SOQ5      5      \ RB                  " / SPQ\ R\                  S*9\/" S9SA/S9SA/SQSR94\0" \1" SSSS/STSU95      \ RB                  " S2S2/\ R\                  S*9\1" SS/STSU94/5      SV 5       r2SW r3S;r4gX)YTestFactorize5   c                    / SQnSn[         R                  " [        US9   [        R                  " U5      u  p4S S S 5        [
        R                  " / SQ[
        R                  S9n[         R                  " WU5        [
        R                  " / SQ[        S9n[         R                  " WU5        g ! , (       d  f       N}= f)N)             @      ?0factorize with argument that is not not a Seriesmatch)r   r%   r&   dtype)      ?        y       @        r'   )
tmassert_produces_warningFutureWarningr   	factorizenparrayintpassert_numpy_array_equalobject)selfr3   msglabelsuniquesexpected_labelsexpected_uniquess          W/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pandas/tests/test_algos.pytest_factorize_complex$TestFactorize.test_factorize_complex6   s    @''SA#ooe4OF B ((9BGG<
##FO< 88$B&Q
##G-=> BAs   B00
B>zTODO(infer_string)F)reasonstrictsortTc                    UnUR                  US9u  pE[        n[        U[        5      (       a  [        R                  nUR                  5       nUR                  [        R                  :X  a  UR                  [        R                  5      nU" U5      n[        U[        5      (       a=  UR                  [        :X  a)  UR                  [        :X  a  UR                  [        5      nU(       a  UR                  5       n[        U5      n	U V
s/ s H  oR                  U
5      PM     nn
[        R                   " U[        R"                  S9n[$        R&                  " XK5        [$        R(                  " XXSS9  g s  sn
f )NrB   r+   Texact)r1   r   
isinstancer   from_tuplesuniquer,   r2   float16astypefloat32boolr6   sort_valueslistindexasarrayr4   r.   r5   assert_index_equal)r7   index_or_series_objrB   objresult_codesresult_uniquesconstructorexpected_arrr<   expected_uniques_listvalexpected_codess               r=   test_factorizeTestFactorize.test_factorizeD   s"    "'*}}$}'?$c:&&$00Kzz|+'..rzz:L&|4sE"" &&$.		V#/66v>/;;= !%%5 6FIJcs55c:cJN"''B
##LA
ndK	 Ks   E7c                 f   [         R                  " SSS[         R                  /5      n[        U5      nUR	                  SS9u  p4[         R                  " / SQ[         R
                  S9n[        SS[         R                  /5      n[        R                  " X55        [        R                  " XF5        g )	Nr%   r&   Fuse_na_sentinelr   r%   r   r&   r+         ?       @)
r2   r3   nanr   r1   r4   r   r.   r5   rR   )r7   valuessercodesr:   r[   r<   s          r=   +test_series_factorize_use_na_sentinel_false9TestFactorize.test_series_factorize_use_na_sentinel_falsed   s~    1aBFF+,Vnu=,bgg> #sBFF!34
##E:
g8    c                    [         R                  " / SQ[        S9n[        R                  " U5      u  p#[
        R                  " U[         R                  " / SQ[        S95        [        R                  " USS9u  p#[         R                  " / SQ[         R                  S9n[
        R                  " X$5        [         R                  " / SQ[        S9n[
        R                  " X45        [         R                  " S[         R                  S9S S S2   n[        R                  " U5      u  p#[         R                  " / S	Q[         R                  S9n[
        R                  " X$5        [         R                  " / S
QUR                  S9n[
        R                  " X45        [        R                  " USS9u  p#[         R                  " / S
Q[         R                  S9n[
        R                  " X$5        [         R                  " / S	QUR                  S9n[
        R                  " X45        [         R                  " S5      S S S2   n[        R                  " U5      u  p#[         R                  " / S	Q[         R                  S9n[
        R                  " X$5        [         R                  " / SQUR                  S9n[
        R                  " X45        [        R                  " USS9u  p#[         R                  " / S
Q[         R                  S9n[
        R                  " X$5        [         R                  " / SQUR                  S9n[
        R                  " X45        g )N)abrm   rl   rl   crn   rn   r+   rl   rm   rn   TrD   )r   r%   r%   r   r   r&   r&   r&      )r   r%   r&         )rs   rr   r&   r%   r         @)      @      @rc   rb           )rw   rb   rc   rv   ru   )
r2   r3   r6   r   r1   r.   r5   r4   aranger,   )r7   itemsrg   r:   exparrs         r=   
test_basicTestFactorize.test_basicp   s   AP/
##GRXXoV-TUT:hh/rww?
##E/hhf5
##G1ii)$B$/-hhbgg6
##E/hhcii8
##G148hhbgg6
##E/hhcii8
##G1iinTrT"-hhbgg6
##E/hh0		B
##G148hhbgg6
##E/hh0		B
##G1rj   c                 t   [        SS[        R                  SS[        R                  /5      n[        R
                  " U5      u  p#[        R                  " / SQ[        R                  S9n[        R                  " X$5        [        SSS[        R                  /5      n[        R                  " X45        [        R
                  " USS9u  p#[        R                  " / SQ[        R                  S9n[        R                  " X$5        [        S[        R                  SS/5      n[        R                  " X45        g )	NABgQ	@)r   r   rq   r%   r&   rr   r+   TrD   )r&   r&   rq   rr   r   r%   )r   r2   rd   infr   r1   r3   r4   r.   r5   r   rR   )r7   xrg   r:   rz   s        r=   
test_mixedTestFactorize.test_mixed   s    Cbffc489+hh*"'':
##E/S#tRVV,-
g+6hh*"'':
##E/T2663,-
g+rj   c                    [        S5      n[        S5      n[        XXX!/5      n[        R                  " U5      u  pE[        R
                  " / SQ[        R                  S9n[        R                  " XF5        [        X/5      n[        R                  " XV5        [        R                  " USS9u  pE[        R
                  " / SQ[        R                  S9n[        R                  " XF5        [        X!/5      n[        R                  " XV5        g )Nz20130101 09:00:00.0000420130101r   r   r   r%   r%   r   r+   TrD   )r%   r%   r%   r   r   r%   )r   r   r   r1   r2   r3   r4   r.   r5   r   rR   r7   v1v2r   rg   r:   rz   s          r=   test_factorize_datetime64'TestFactorize.test_factorize_datetime64   s    01z"BBB+,+hh)9
##E/RH%
g+6hh)9
##E/RH%
g+rj   c                    [        SSS9n[        SSS9n[        XXX!/5      n[        R                  " U5      u  pE[        R
                  " / SQ[        R                  S9n[        R                  " XF5        [        R                  " U[        X/5      5        [        R                  " USS9u  pE[        R
                  " / SQ[        R                  S9n[        R                  " XF5        [        R                  " U[        X/5      5        g )	N201302Mfreq201303r   r+   TrD   )r   r   r   r1   r2   r3   r4   r.   r5   rR   r   r   s          r=   test_factorize_period#TestFactorize.test_factorize_period   s    H3'H3'BBB+, +hh)9
##E/
g{B8'<=6hh)9
##E/
g{B8'<=rj   c           	         [        S5      n[        S5      n[        XXX"U/5      n[        R                  " U5      u  pE[        R
                  " / SQ[        R                  S9n[        R                  " XF5        [        R                  " U[        X/5      5        [        R                  " USS9u  pE[        R
                  " / SQ[        R                  S9n[        R                  " XF5        [        R                  " U[        X!/5      5        g )Nz1 day 1 min1 day)r   r%   r   r   r%   r%   r   r+   TrD   )r%   r   r%   r%   r   r   r%   )
r   r   r   r1   r2   r3   r4   r.   r5   rR   r   s          r=   test_factorize_timedelta&TestFactorize.test_factorize_timedelta   s    -('"BBBB/0+hh,BGG<
##E/
g|RH'=>6hh,BGG<
##E/
g|RH'=>rj   c                    [         R                  " SSS[         R                  /SS9n[        R                  " [        U5      5      nS H  nUR                  XS9n[         R                  " SSSU/[         R                  S9n[        [        U5      5      [        [        U5      5      :X  d   e[        R                  " [        R                  " U5      XS:H  5        [        R                  " XE5        M     g )Nr%   r&   Or+   )rq      )na_sentinelr   )r2   r3   rd   htObjectFactorizerlenr1   r4   setr.   r5   pdisna)r7   keyrizerr   idsexpecteds         r=   test_factorize_nan TestFactorize.test_factorize_nan   s     hh1a(4##CH-#K//#/?CxxAq+ 6bggFHs3x=CH$6666''h6MN''6 $rj   c                    [         R                  " / SQSS9n[         R                  " / SQ5      n[        R                  " [	        U5      5      nUR                  XS9n[         R                  " / SQ[         R                  S9n[        R                  " XE5        [         R                  " / SQSS9n[        R                  " UR                  R                  5       U5        g )N)r%   r&   rr   r%   r%   r   int64r+   )FFFFFT)mask)r   r%   r&   r   r   rq   r%   r&   rr   )r2   r3   r   Int64Factorizerr   r1   r4   r.   r5   r:   to_array)r7   datar   r   resultr   r<   s          r=   test_factorizer_with_mask'TestFactorize.test_factorizer_with_mask   s    xx*':xxAB""3t9-188/rww?
##F588IW=
##EMM$:$:$<>NOrj   c                    [         R                  " SSSS[         R                  /5      n[        R                  " [        U5      5      nUR                  UR                  [        5      5      n[         R                  " / SQ[         R                  S9n[        R                  " X45        [         R                  " / SQ[        S9n[        R                  " UR                  R                  5       U5        g )Nr%   r&   rr   )r   r%   r&   r   rq   r+   r   )r2   r3   rd   r   r   r   r1   rK   r6   r4   r.   r5   r:   r   )r7   r   r   r   r   r<   s         r=   test_factorizer_object_with_nan-TestFactorize.test_factorizer_object_with_nan   s    xxAq!RVV,-##CI.V!4588,BGG<
##F588IV<
##EMM$:$:$<>NOrj   z&data, expected_codes, expected_uniques)r%   r%   r%   r&   r   r   r   nonsense)r   r%   r&   r%   rr   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r%   r&   r%   )r   r   r   c                 n   Sn[         R                  " [        US9   [        R                  " U5      u  pVS S S 5        [         R
                  " W[        R                  " U[        R                  S95        [        R                  " U[        S9n[         R
                  " WU5        g ! , (       d  f       Nw= f)Nr(   r)   r+   )r.   r/   r0   r   r1   r5   r2   r3   r4   comasarray_tuplesafer6   )r7   r   r[   r<   r8   rg   r:   expected_uniques_arrays           r=   test_factorize_tuple_list'TestFactorize.test_factorize_tuple_list   s    $ A''SA\\$/NE B 	##E288N"''+RS!$!6!67Gv!V
##G-CD BAs   B&&
B4c                 &   [         R                  " [        S5       Vs/ s H  n[        U5      PM     sn[        S9nSn[
        R                  " [        US9   [        R                  " US S S2   SS9  S S S 5        g s  snf ! , (       d  f       g = f)N   r+   z,'[<>]' not supported between instances of .*r)   rq   TrD   )
r2   r3   rangecomplexr6   pytestraises	TypeErrorr   r1   )r7   ix17r8   s       r=   test_complex_sorting"TestFactorize.test_complex_sorting  sh    hhE"I6Iq
I6fE<]]9C0OOC"ID1 10 7 10s   A=B
Bc                 6   Un[         R                  " / SQUS9n[         R                  " / SQ[         R                  S9n[         R                  " SS/US9n[        R                  " U5      u  pg[
        R                  " Xd5        [
        R                  " Xu5        g )N)r%   r&   r&   r%   r+   )r   r%   r%   r   r%   r&   )r2   r3   r4   r   r1   r.   r5   )r7   any_real_numpy_dtyper,   r   r[   r<   rg   r:   s           r=   test_numeric_dtype_factorize*TestFactorize.test_numeric_dtype_factorize  sl    $xxE2,bgg>88QF%8.
##E:
##G>rj   c                    [         R                  " / SQ[         R                  S9nUR                  US9  [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9n[
        R                  " U5      u  pV[        R                  " XS5        [        R                  " Xd5        g )N)rb       חArb   :0yE>r   rb   r+   write)r   r%   r   r&   r%   r   )rb   r   r   )	r2   r3   float64setflagsr4   r   r1   r.   r5   r7   writabler   r[   r<   rg   r:   s          r=   test_float64_factorize$TestFactorize.test_float64_factorize)  s|    xx7rzzJH%"4BGGD88$4BJJG.
##E:
##G>rj   c                    [         R                  " / SQ[         R                  S9nUR                  US9  [         R                  " / SQ[         R                  S9n[         R                  " SS/[         R                  S9n[
        R                  " U5      u  pV[        R                  " XS5        [        R                  " Xd5        g )N)    r%   r   r+   r   r   r%   r   r   r%   )	r2   r3   uint64r   r4   r   r1   r.   r5   r   s          r=   test_uint64_factorize#TestFactorize.test_uint64_factorize3  s~    xx1CH%)277;88YN"))D.
##E:
##G>rj   c                    [         R                  " / SQ[         R                  S9nUR                  US9  [         R                  " / SQ[         R                  S9n[         R                  " SS/[         R                  S9n[
        R                  " U5      u  pV[        R                  " XS5        [        R                  " Xd5        g )N)             r   r+   r   r   r   r   )	r2   r3   r   r   r4   r   r1   r.   r5   r   s          r=   test_int64_factorize"TestFactorize.test_int64_factorize=  s    xx8IH%)277;88Y$9J.
##E:
##G>rj   c                 `   [         R                  " / SQ[        S9nUR                  US9  [         R                  " / SQ[         R                  S9n[         R                  " / SQ[        S9n[
        R                  " U5      u  pV[        R                  " XS5        [        R                  " Xd5        g )N)rl   rn   rl   rm   rn   r+   r   )r   r%   r   r&   r%   rl   rn   rm   )	r2   r3   r6   r   r4   r   r1   r.   r5   r   s          r=   test_string_factorize#TestFactorize.test_string_factorizeG  sr    xx1@H%/A88O6B.
##E:
##G>rj   c           
         [         R                  " SSS [         R                  SS[        S/[        S9nUR                  US9  [         R                  " / SQ[         R                  S9n[         R                  " / SQ[        S9n[        R                  " U5      u  pV[        R                  " XS5        [        R                  " Xd5        g )Nrl   rn   rm   r+   r   )r   r%   rq   rq   r   r&   rq   r%   r   )r2   r3   rd   r   r6   r   r4   r   r1   r.   r5   r   s          r=   test_object_factorize#TestFactorize.test_object_factorizeQ  s    xxc4c3DFSH%"=RWWM88O6B.
##E:
##G>rj   c                 r   [         R                  " [         R                  " S5      /SS9nUR                  US9  [         R                  " S/[         R                  S9n[         R                  " S/SS9n[
        R                  " U5      u  pV[        R                  " XS5        [        R                  " Xd5        g )Nz2020-01-01T00:00:00.000M8[ns]r+   r   r   z2020-01-01T00:00:00.000000000zdatetime64[ns])	r2   r3   
datetime64r   r4   r   r1   r.   r5   r   s          r=   test_datetime64_factorize'TestFactorize.test_datetime64_factorize[  s    xx'@AB(SH%1#RWW588,-5E
 d+
##E:
##G>rj   c                    [         R                  R                  [        S5      5      n[        R
                  " S[        R                  S9U4n[        R                  " X!S9n[        R                  " US   US   5        [        R                  " US   US   SS9  UR                  US9n[        R                  " US   US   5        [        R                  " US   US   SS9  g )N
   r+   rD   r   r%   TrE   r   
RangeIndex
from_ranger   r2   rx   r4   r   r1   r.   r5   rR   )r7   rB   rir   r   s        r=   test_factorize_rangeindex'TestFactorize.test_factorize_rangeindexh  s     ]]%%eBi099Rrww/3/
##F1Ix{;
fQi!DA4(
##F1Ix{;
fQi!DArj   c                     [         R                  R                  [        S5      5      n[        R
                  " S[        R                  S9U4nUS S S2   nUS   U4nU(       a  US   S S S2   US   S S S2   4n[        R                  " XAS9n[        R                  " US   US   5        [        R                  " US   US   SS9  UR                  US9n[        R                  " US   US   5        [        R                  " US   US   SS9  g )	Nr   r+   rq   r   r%   rD   TrE   r   )r7   rB   r   r   ri2r   s         r=   $test_factorize_rangeindex_decreasing2TestFactorize.test_factorize_rangeindex_decreasingv  s     ]]%%eBi099Rrww/32hA;#{4R4((1+dd*;;H0
##F1Ix{;
fQi!DAD)
##F1Ix{;
fQi!DArj   c                 j   [         R                  " / SQ[         R                  S9n[        R                  " [
        SS9   [        R                  " USS9  S S S 5        [        R                  " S5         [        R                  " U5        S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)N)            r%   r   r+   zgot an unexpected keywordr)   T)orderF)
r2   r3   r   r   r   r   r   r1   r.   r/   )r7   r   s     r=   test_deprecate_order"TestFactorize.test_deprecate_order  so     xx);]]9,GHOOD- I''.OOD! /. IH..s   B3B$
B!$
B2r   r   u8r+   )r   r%   r   i8)__nan__foor  r6   c                     [         R                  " U5      u  p#USS/   n[        R                  " / SQ[        R                  S9n[
        R                  " X%5        [
        R                  " X45        g )Nr   r%   r   r+   )r   r1   r2   r3   r4   r.   r5   )r7   r   rg   r:   r<   r[   s         r=   ,test_parametrized_factorize_na_value_default:TestFactorize.test_parametrized_factorize_na_value_default  sR     .A<)277;
##E:
##G>rj   zdata, na_valuera   r   )r%   r   r%   r&   r%   )r   r%   r   r   r   )r%   r   r%   r   )rl    rl   rm   rl   ) rl   r%   r
  rl   r&   r
  )r  r
  r  r  r  c                     [         R                  " XS9u  p4USS/   n[        R                  " / SQ[        R                  S9n[
        R                  " X65        [
        R                  " XE5        g )N)na_valuer%   rr   )rq   r   rq   r%   r+   )r   factorize_arrayr2   r3   r4   r.   r5   )r7   r   r  rg   r:   r<   r[   s          r=   $test_parametrized_factorize_na_value2TestFactorize.test_parametrized_factorize_na_value  sT     ..tGA<.@
##E:
##G>rj   zdata, uniques)rm   rl   Nrm   rm   r&   Int64numpy_arrayextension_array)r   c                    [         R                  " X!SS9u  pCU(       a<  [        R                  " / SQ[        R                  S9n[         R
                  " U5      nO'[        R                  " / SQ[        R                  S9nUn[        R                  " XE5        [        U[        R                  5      (       a  [        R                  " X65        g [        R                  " X65        g )NT)rB   r`   )r%   r   rq   r%   r+   )r   r%   rq   r   )r   r1   r2   r3   r4   	safe_sortr.   r5   rG   ndarrayassert_extension_array_equal)r7   rB   r   r:   rg   r[   r<   s          r=   test_factorize_use_na_sentinel,TestFactorize.test_factorize_use_na_sentinel  s      $OXXm277CN$w7XXm277CN&
##E:dBJJ''''B++GFrj   )rl   Nrm   rl   r   r%   r&   r   r4   c                     [         R                  " [        R                  " U[        S9SS9u  pE[
        R                  " XSSS9  [
        R                  " XBSS9  g )Nr+   Fr_   T
strict_nan)r   r1   r2   r3   r6   r.   r5   r7   r   r[   r<   rg   r:   s         r=   +test_object_factorize_use_na_sentinel_false9TestFactorize.test_object_factorize_use_na_sentinel_false  sF    $ HHT(%
 	##G$O
##EdKrj   )r%   Nr%   r&   r   c                     Sn[         R                  " [        US9   [        R                  " USS9u  pVS S S 5        [         R
                  " WUSS9  [         R
                  " WUSS9  g ! , (       d  f       N;= f)Nr(   r)   Fr_   Tr  )r.   r/   r0   r   r1   r5   )r7   r   r[   r<   r8   rg   r:   s          r=   (test_int_factorize_use_na_sentinel_false6TestFactorize.test_int_factorize_use_na_sentinel_false  sc    $ A''SA"__T5INE B 	##G-=$O
##E>dK	 BAs   A))
A7)rl   rl   rm   )r   r   r%   category)
categoriesr,   2017
US/Easterntzc                     [         R                  " U5      u  pE[        R                  " XB5        [        R                  " XS5        g )N)r   r1   r.   r5   rR   r  s         r=   test_factorize_mixed_values)TestFactorize.test_factorize_mixed_values  s0    , .
##E:
g8rj   c                    [        S[        R                  S/5      R                  U5      n[        S[        R                  S/5      R                  U5      n[        R
                  " X#5      nUR                  5       u  pVUR                  SU S3:X  d   e[        S5      R                  U5      n[        R
                  " X'-
  X7-
  5      nUR                  5       u  pU
R                  SU S3:X  d   e[        R
                  " UR                  S	5      UR                  S	5      5      nUR                  5       u  pUR                  SU S
3:X  d   eg )N
2016-01-01z
2015-10-11z
2016-01-02z
2015-10-15zinterval[datetime64[z	], right]r   zinterval[timedelta64[
US/Pacificz, US/Pacific], right])
r   r2   rd   as_unitr   from_arraysr1   r,   r   tz_localize)r7   unitleftrightidxrg   catstsidx2codes2cats2idx3codes3cats3s                 r=    test_factorize_interval_non_nano.TestFactorize.test_factorize_interval_non_nano  s'   lBFFLABJJ4P|RVV\BCKKDQ''4mmozz3D6CCCCq\!!$'((EJ?({{ 5dV9EEEE((\*E,=,=l,K
 ({{ 4TF:OPPPPrj   N)5__name__
__module____qualname____firstlineno__r>   r   markxfailr   parametrizer\   rh   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r2   r3   r  r6   r  r   rd   r  r,   r   r   r#  r   r   r4   r   r   r   r,  r@  __static_attributes__r
  rj   r=   r"   r"   5   sf   ? [[)+4HQVW[[VdE]3L 4 XL<
9%2N, ,$>"?7	PP [[0 =4 <3
 .|=UV	
 	E! 	E2	??????? [[VdE]3B 4B [[VdE]3B 4B$" [[HHYd+HH,D9HH2(C	
?? [[XXl$/3XXl$/3XX0=xHXX)6:XX)8#>XX2&A2FXX8GR	
?? [[VdE]3[[ .f=#s62
 !Q*':!Qw/		
 -.  G 4G [[0 &RXXf-=>#rvvs+6: bffc3'RXXf-=>#rvvs+6:	
LL [[0  RXXf-=>!RVVQs3 BFFAq!RXXf-=>!RVVQrzz:	
LL [[0 k/23"''2 #sc
*U {?34"''2 #sc
*U }ff%5,GH!Qrww/vh<8	
(9)(9Qrj   r"   c            
          \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS r\R*                  R-                  SS\R0                  " SS/\S94S\R0                  " S/\S94/5      S 5       rS rS rS r\R*                  R-                  S\R<                  \/5      S 5       rS r S  r!S!r"g")#
TestUniquei2  c                     [         R                  R                  S5      R                  SSSS9n[        R
                  " U5      n[        U[         R                  5      (       d   eg )Nr&   r   d   2   size)r2   randomdefault_rngintegersr   rI   rG   r  r7   r{   r   s      r=   	test_intsTestUnique.test_ints3  sM    ii##A&//3R/@c"&"**----rj   c                     [         R                  R                  S5      R                  SSSS9R	                  S5      n[
        R                  " U5      n[        U[         R                  5      (       d   eg )Nr&   r   rM  rN  rO  r   )	r2   rQ  rR  rS  rK   r   rI   rG   r  rT  s      r=   test_objectsTestUnique.test_objects9  sX    ii##A&//3R/@GGLc"&"**----rj   c                     [         R                  " / SQ[        S9n[        S5       H"  n[	        [
        R                  " U5      5        M$     g )N)r   r   CDEr+     )r2   r3   r6   r   r   r   rI   )r7   lstr   s      r=   test_object_refcount_bug#TestUnique.test_object_refcount_bug?  s2    hh0?tAS!" rj   c                    [         R                  " [        R                  " S5      R	                  S5      [        R
                  " [        R                  " S5      S5      /5      nUR                  nUR                  5         UR	                  S5      n[        R                  " U5      nUR                  5         [        R                  " X25        g )Nrp   r&   )r   r2  r2   rx   repeattilere   rB   r   rI   r.   assert_almost_equal)r7   mindexr   r   s       r=   test_on_index_objectTestUnique.test_on_index_objectD  s    ''YYq\  #RWWRYYq\1%=>
 ==q!6"
v0rj   c                 >   U[         R                  [         R                  -   ;   a	  / SQnSS/nO[        U5      (       a	  / SQnSS/nO[	        U5      (       a	  / SQnSS/nO[        U5      (       a<  [        SS5      [        SS5      [        SS5      /n[        SS5      [        SS5      /nO:[        U5      (       a	  / SQnSS	/nO![        U5      (       a	  / S
QnSS/nO/ SQnSS/n[        X!S9R                  5       n[        R                  " X1S9nU[         R                  ;   a  UR                  [        5      nUR                  R                   S;   a3  [#        U[$        [&        45      (       d   e[        R                  " U5      n[         R(                  " XE5        g )N)r%   r&   r&   r%   r&   rb   rc   r   TTFTF)r   r   r   r   r   r+   )mr   )r.   BYTES_DTYPESSTRING_DTYPESr
   r	   r   r   r   r   r   rI   r2   r3   rK   r6   r,   kindrG   r   r    r5   )r7   any_numpy_dtyper   r:   r   r   s         r=   test_dtype_preservation"TestUnique.test_dtype_preservationR  s]   r1A1AABD!fGo..D!fGO,,DCjGo..AqM71a='!Q-@Dq!}gam4G?++&DUmG_--"DCjG D!fG4;;=88G;b...v.H>>*,f}n&EFFFFXXf%F
##F5rj   c                 *   [         R                  " SS/SS9n[        / SQ5      n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   e[        U5      n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   eUR                  n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   eg )N2015-01-03T00:00:00.0000000002015-01-01T00:00:00.000000000r   r+   )rs  rt  rt  )
r2   r3   r   r   rI   r.   r5   r,   r   re   )r7   r   dt_indexr   sr{   s         r=   $test_datetime64_dtype_array_returned/TestUnique.test_datetime64_dtype_array_returnedw  s    88// 
 
 h'
##F5||x~~---8a
##F5||x~~---hhc"
##F5||x~~---rj   c                     [         R                  " / SQSS9n[        R                  " U5      n[         R                  " SS/SS9n[        R
                  " X#5        g )N2000r{  2001zdatetime64[s]r+   r{  r|  r2   r3   r   rI   r.   r5   r7   rl   r   r   s       r=   test_datetime_non_nsTestUnique.test_datetime_non_ns  sC    HH-_E188VV,OD
##F5rj   c                     [         R                  " / SQSS9n[        R                  " U5      n[         R                  " SS/SS9n[        R
                  " X#5        g )Nrz  ztimedelta64[s]r+   i  i  r}  r~  s       r=   test_timedelta_non_ns TestUnique.test_timedelta_non_ns  sD    HH-5EF188T4L0@A
##F5rj   c                 *   [         R                  " / SQSS9n[        / SQ5      n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   e[        U5      n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   eUR                  n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   eg )N)y  n  '  m8[ns]r+   )r  r  r  r  r  )
r2   r3   r   r   rI   r.   r5   r,   r   re   )r7   r   td_indexr   rv  r{   s         r=   %test_timedelta64_dtype_array_returned0TestUnique.test_timedelta64_dtype_array_returned  s    881B CDh'
##F5||x~~---8a
##F5||x~~---hhc"
##F5||x~~---rj   c                     [        / SQ[        R                  S9n[        R                  " / SQ[        R                  S9n[        R
                  " [        R                  " U5      U5        g )N)r%   r&   r   r   r+   )r%   r&   r   )r   r2   r   r3   r.   r5   r   rI   )r7   rv  rz   s      r=   test_uint64_overflowTestUnique.test_uint64_overflow  s?    'ryy9hh}BII6
##ELLOS9rj   c                    S[         R                  SS/n[        R                  " [         R                  " U[
        S95      n[         R                  " S[         R                  S/[
        S9n[        R                  " X#5        g )Nrl   rn   r+   )r2   rd   r   rI   r3   r6   r.   r5   )r7   duplicated_itemsr   r   s       r=   test_nan_in_object_array#TestUnique.test_nan_in_object_array  sX    c2288$4FCD88S"&&#.f=
##F5rj   c                    [        [        S5      5      n[        [        S5      [        S5      SS9n[        [        S5      5      nUR                  5       n[        R                  " XA5        [
        R                  " U5      n[        R                  " XA5        [        [        S5      SS9nUR                  5       n[        R                  " XB5        [
        R                  " U5      n[        R                  " XB5        [        [        [        S5      5      SS9nUR                  5       n[        R                  " XA5        [        R                  " U5      n[        R                  " XA5        [        [        [        S5      [        S5      S	95      n[        U5      nUR                  5       n[        R                  " XA5        [        R                  " U5      n[        R                  " XA5        g )
NbacabcTr&  orderedbaabcr  r  namer&  )
r   rO   rI   r.   assert_categorical_equalr   r   r   r   rR   )r7   r   
expected_orn   r   rv  cis          r=   test_categoricalTestUnique.test_categorical  sV    tE{+ !eedS
 W&
##F5a
##F5Wt4
##F7a
##F7 ;tG}-E:
##F51
##F5 k$w-DKPQ#H-
f/2
f/rj   c                 
   [        [        SSS9[        SSS9/5      R                  U5      n[        U5      nUR	                  5       nUS S R
                  n[        R                  " XE5        UR	                  5       nUS S n[        R                  " XE5        [        R                  " U5      nUS S R
                  n[        R                  " XE5        [        R                  " U5      nUS S n[        R                  " XE5        g )N20160101r(  r)  r%   )
r   r   r1  r   rI   _datar.   r  rR   r   )r7   r4  dtirf   r   r   s         r=   test_datetime64tz_aware"TestUnique.test_datetime64tz_aware  s     *6*6

 '$- 	 Skr7==
''9r7
f/3r7==
''93r7
f/rj   c           	         [         R                  " [        / SQ5      5      n[        R                  " U[
        R                  " / SQSS95        [         R                  " [        S/S/S-  -   5      5      n[        R                  " U[
        R                  " SS/SS95        Sn[        R                  " [        US	9   [         R                  " [        S
5      5      nS S S 5        [
        R                  " / SQ[        S9n[        R                  " X5        [         R                  " [        [        [        S
5      5      5      5      n[        [        S5      5      n[        R                  " X5        g ! , (       d  f       N= f)N)r&   r%   rr   rr   )r&   r%   rr   r   r+   r&   r%   rp   z5unique with argument that is not not a Series, Index,r)   aabcro   r  )r   rI   r   r.   r5   r2   r3   r/   r0   rO   r6   r   r  )r7   r   r8   r   s       r=   test_order_of_appearance#TestUnique.test_order_of_appearance  s     6,/0
##FBHHYg,NO61#a-01
##FBHHaV7,KLE''SAYYtF|,F B88O6:
##F56+d6l";<=tE{+
##F5 BAs   < E11
E?c                     [        [        S5      [        S5      /5      R                  R                  U5      n[        R
                  " U5      n[        R                  " S/SU S3S9n[        R                  " X45        g )Nr  z2016-01-01T00:00:00.000000000zM8[]r+   )
r   r   dtr1  r   rI   r2   r3   r.   r5   )r7   r4  rf   r   r   s        r=   test_order_of_appearance_dt64(TestUnique.test_order_of_appearance_dt64  se    i
+Yz-BCDGGOOPTU388<=s4&PQ]S
##F5rj   c                     [        [        SSS9[        SSS9/5      R                  U5      n[        R                  " U5      n[        S/SU S3S S9n[
        R                  " X45        g )Nr  r(  r)  z2016-01-01 00:00:00zdatetime64[z, US/Eastern])r,   r   )r   r   r1  r   rI   r.   rR   )r7   r4  r  r   r   s        r=   test_order_of_appearance_dt64tz*TestUnique.test_order_of_appearance_dt64tz  sp    *6*6

 '$- 	 3 "#[m+LSW
 	f/rj   zarg ,expected)1r  2r  r  r+   )r  r  c                     Sn[         R                  " [        US9   [        R                  " U5      nS S S 5        [         R
                  " WU5        g ! , (       d  f       N&= fN-unique with argument that is not not a Seriesr)   r.   r/   r0   r   rI   r5   )r7   argr   r8   r   s        r=   test_tuple_with_strings"TestUnique.test_tuple_with_strings+  sF     >''SAYYs^F B
##FH5 BA   A
A!c                     [         R                  " SS /[        S9n[        R                  " U5      n[         R                  " SS /[        S9n[
        R                  " X#SS9  g )Nr  r+   Tr  )r2   r3   r6   r   rI   r.   r5   r7   r{   r   r   s       r=   test_obj_none_preservation%TestUnique.test_obj_none_preservation9  sG    hht}F3388UDM8
##FFrj   c                     [         R                  " SS/5      n[        R                  " U5      n[         R                  " S/5      n[        R
                  " X#5        g )Ng       rw   r}  r~  s       r=   test_signed_zeroTestUnique.test_signed_zeroA  s?    HHdC[!188TF#
##F5rj   c                    [         R                  " S[         R                  " SS5      5      S   n[         R                  " S[         R                  " SS5      5      S   nX:w  d   eX":w  d   e[        R                  " X/5      n[
        R                  " U5      n[        R                  " [        R                  /5      n[        R                  " XE5        g )Nd=Q          r            )
structunpackpackr2   r3   r   rI   rd   r.   r5   )r7   NAN1NAN2rl   r   r   s         r=   test_different_nansTestUnique.test_different_nansH  s     }}S&++d4F"GHK}}S&++d4F"GHK||||HHd\"188RVVH%
##F5rj   el_typec                    SnSn[         R                  " S[         R                  " SU5      5      S   n[         R                  " S[         R                  " SU5      5      S   nXD:w  d   eXU:w  d   e[        R                  " XE/US9n[
        R                  " U5      nUR                  S:X  d   e[         R                  " S[         R                  " SUS   5      5      S   nX:X  d   eg )Nl         r  r  r  r   r+   r%   )r  r  r  r2   r3   r   rI   rP  )	r7   r  bits_for_nan1bits_for_nan2r  r  rl   r   result_nan_bitss	            r=   test_first_nan_keptTestUnique.test_first_nan_keptT  s     +*}}S&++dM"BCAF}}S&++dM"BCAF||||HHd\11{{a --fkk#vay.IJ1M///rj   c                     XL a  g [         R                  " X/[        S9n[        R                  " U5      nUR
                  S:X  d   eUS   UL d   eUS   UL d   eg )Nr+   r&   r   r%   )r2   r3   r6   r   rI   rP  )r7   unique_nulls_fixtureunique_nulls_fixture2rl   r   s        r=   test_do_not_mangle_na_values'TestUnique.test_do_not_mangle_na_valuese  sd    8HH*B&Q1{{at++++t,,,,rj   c                     [        S[        R                  S/S-  US9n[        R                  " U5      n[        R                  " S[        R                  S/US9n[
        R                  " X45        g )Nr%   r&   rr   r+   )r   r   NArI   r3   r.   r  )r7   any_numeric_ea_dtyperf   r   r   s        r=   test_unique_maskedTestUnique.test_unique_maskedo  sT    a]Q&.BC388QqM1EF
''9rj   r
  N)#rB  rC  rD  rE  rU  rX  r`  rg  rp  rw  r  r  r  r  r  r  r  r  r  r  r   rF  rH  r2   r3   r6   r  r  r  r  r   r  r  r  rI  r
  rj   r=   rK  rK  2  s    ..#
1#6J.>66.&:
6'0R066(60 [[bhhSz@Arxxv67	
66G6
6 [[YV(<=0 >0 -:rj   rK  c                     U " [         R                  R                  S5      R                  SSS5      5      n[        R
                  " U5      n[        [        R                  " U5      5      nX#:X  d   eg )Nr&   r   r      )r2   rQ  rR  rS  r   nunique_intsr   rI   )index_or_series_or_arrayre   r   r   s       r=   test_nunique_intsr  w  sY    %bii&;&;A&>&G&G2r&RSF'F5<<'(Hrj   c                      \ rS rSrS rS rS r\R                  R                  S/ SQ5      \R                  R                  S/ SQ5      S	 5       5       r
S
 r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       rS rS rS rS rS rS rS rS rS r\R                  R                  S/ \" \S9\R4                  " / 5      /5      S 5       rS rS rS rS rS r S r!S r"g!)"TestIsini  c                    Sn[         R                  " [        US9   [        R                  " SS5        S S S 5        [         R                  " [        US9   [        R                  " SS/5        S S S 5        [         R                  " [        US9   [        R                  " S/S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NZ= f! , (       d  f       g = f)NzOonly list-like objects are allowed to be passed to isin\(\), you passed a `int`r)   r%   )r   r   r   r   isin)r7   r8   s     r=   test_invalidTestIsin.test_invalid  s    " 	 ]]9C0JJq! 1]]9C0JJq1# 1]]9C0JJsA 10	 100000s#   B1CC1
B?
C
C!c                    Sn[         R                  " [        US9   [        R                  " SS/S/5      nS S S 5        [
        R                  " SS/5      n[         R                  " WU5        [        R                  " [
        R                  " SS/5      S/5      n[
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      S/5      n[
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      [        S/5      5      n[
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      S15      n[
        R                  " SS/5      n[         R                  " X#5        [         R                  " [        US9   [        R                  " SS/S/5      nS S S 5        [
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      [        S/5      5      n[
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      S15      n[
        R                  " SS/5      n[         R                  " X#5        [         R                  " [        US9   [        R                  " SS/S/5      nS S S 5        [
        R                  " SS/5      n[         R                  " X#5        g ! , (       d  f       GN= f! , (       d  f       GNe= f! , (       d  f       Na= f)	N+isin with argument that is not not a Seriesr)   r%   r&   TFrl   rm   )	r.   r/   r0   r   r  r2   r3   r5   r   )r7   r8   r   r   s       r=   r|   TestIsin.test_basic  sw   ;''SAZZA,F B88T5M*
##FH5BHHaV,qc288T5M*
##F5FAq6NQC088T5M*
##F5FAq6NFA3K888T5M*
##F5FAq6NQC088T5M*
##F5''SAZZc
SE2F B88T5M*
##F5FC:.u>88T5M*
##F5FC:.688T5M*
##F5''SAZZc
QC0F B88UEN+
##F5K BA* BA BAs#   MM4M*
M
M'*
M8c                    [        SSS9R                  n[        R                  " XS   /5      n[        R
                  " / SQ5      n[        R                  " X#5        [        R                  " XSS 5      n[        R
                  " / SQ5      n[        R                  " X#5        [        R                  " U[        USS 5      5      n[        R
                  " / SQ5      n[        R                  " X#5        [        SSS9R                  n[        R                  " XS   /5      n[        R
                  " / SQ5      n[        R                  " X#5        [        R                  " XSS 5      n[        R
                  " / SQ5      n[        R                  " X#5        [        R                  " U[        USS 5      5      n[        R
                  " / SQ5      n[        R                  " X#5        g )	Nr   rr   periodsr   TFFr&   rj  r   )
r   re   r   r  r2   r3   r.   r5   r   r   r  s       r=   test_i8TestIsin.test_i8  sX   Q/66Ca&*8801
##F5CQq*88/0
##F5CS1X/88/0
##F5gq188Ca&*8801
##F5CQq*88/0
##F5CS1X/88/0
##F5rj   dtype1)r  r   M8[ns, UTC]z	period[D]r,   )r  f8r  c                 p   [        SSS9R                  n[        UR                  S5      5      R                  R                  U5      nUR                  S5      R                  U5      n[        R                  " XT5      n[        R                  " UR                  [        S9n[        R                  " Xg5        g )N
2013-01-01rr   r  r  r+   )r   _valuesr   viewr3   rK   r   r  r2   zerosshaperM   r.   r5   )r7   r,   r  dtar{   compsr   r   s           r=   +test_isin_datetimelike_values_numeric_comps4TestIsin.test_isin_datetimelike_values_numeric_comps  s    
 q199SXXd^$**//7%%e,E'88EKKt4
##F5rj   c                     [        SSSS9R                  n[        R                  " XSS 5      n[        R
                  " [        U5      [        S9nSUS'   SUS	'   [        R                  " X#5        g )
N20000101i rv  )r  r   r   r&   r+   Tr%   )
r   re   r   r  r2   r  r   rM   r.   r5   r7   rv  r   r   s       r=   
test_largeTestIsin.test_large  s^    z7=DDA1v&88CF$/
##F5rj   c                 >   [        SSS9R                  n[        UR                  S5      5      R                  R                  U5      n[
        US'   [        R                  " U[
        /5      n[        R                  " / SQ[        S9n[        R                  " XE5        g )Nr  rr   r  r  r   r  r+   )r   r  r   r  r3   r   r   r  r2   rM   r.   r5   )r7   r,   r  r{   r   r   s         r=   test_isin_datetimelike_all_nat'TestIsin.test_isin_datetimelike_all_nat  ss     q199SXXd^$**//6AC#'880=
##F5rj   )r  r   r  c                    [        SSS9R                  n[        UR                  S5      5      R                  R                  U5      nU Vs/ s H  n[        U5      PM     nnSn[        R                  " [        US9   [        R                  " X55      nS S S 5        WR                  5       (       d   e[        R                  " U[
        S9n[        R                  " [        US9   [        R                  " X85      n	S S S 5        W	R                  5       (       d   eg s  snf ! , (       d  f       N= f! , (       d  f       N<= f)Nr  rr   r  r  z2The behavior of 'isin' with dtype=.* is deprecatedr)   r+   )r   r  r   r  r3   strr.   r/   r0   r   r  allr2   )
r7   r,   r  r{   r   valsr8   resvals2res2s
             r=   )test_isin_datetimelike_strings_deprecated2TestIsin.test_isin_datetimelike_strings_deprecated  s     q199SXXd^$**//6 #$1A$B''SA**S'C BwwyyyS)''SA::c)D Bxxzzz %AA
 BAs   D>D"&D3"
D03
Ec                     [        SSSS9n[        U5      n[        US'   [        R                  " UR
                  [        /5      n[        R                  " / SQ[        S9n[        R                  " X45        g )Nr/  rr   UTCr  r*  r   r  r+   )r   r   r   r   r  r  r2   r3   rM   r.   r5   )r7   r  rf   r  rz   s        r=   test_isin_dt64tz_with_nat"TestIsin.test_isin_dt64tz_with_nat  sY     qU;SkAjjse,hh+48
##C-rj   c                    [         R                  " / SQ5      n/ SQn[        [        S/5      R	                  X5      5      n[        [        S/5      R	                  [         R                  " SS/5      U5      5      n[         R                  " / SQ5      n[
        R                  " X45      n[        R                  " XV5        g Nr  ro   r%   r   )TTFT)	r2   r3   r   r   
from_codesr   r  r.   r5   )r7   r  r8  SdStr   r   s          r=   test_categorical_from_codes$TestIsin.test_categorical_from_codes  s    xx%K$//;<K$//!Q0@$GH8856B#
##H5rj   c                 ^   [         R                  " / SQ5      n/ SQn[        S/5      R                  X5      n[        S/5      R                  [         R                  " SS/5      U5      n[         R                  " / SQ5      n[        R
                  " X45      n[        R                  " XV5        g r  )r2   r3   r   r  r   r  r.   r5   )r7   r  r8  catotherr   r   s          r=   test_categorical_isinTestIsin.test_categorical_isin  s}    xx%1#))$5QC ++BHHaV,<dC8856C'
##H5rj   c                 :   [         R                  /n[         R                  /n[         R                  " S/5      nSn[        R                  " [
        US9   [        R                  " X5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)NTr  r)   )	r2   rd   r3   r.   r/   r0   r   r  r5   r7   r   re   r   r8   r   s         r=   test_same_nan_is_inTestIsin.test_same_nan_is_in!  sm     &&88TF#;''SAZZ.F B
##Hf5 BAs   B
Bc                 >   [         R                  " SS5      n[         R                  US'   [        R                  " U[         R
                  " [         R                  S/5      5      n[         R                  " [        U5      [        S9n[        R                  " X#5        g Nrb   iAB r   r%   r+   )r2   rd  rd   r   r  r3   onesr   rM   r.   r5   r  s       r=   test_same_nan_is_in_large"TestIsin.test_same_nan_is_in_large/  sb    GGC#vv!Arxx45773q6.
##F5rj   c                 Z   [         R                  " SS5      n[        U5      n[         R                  US'   UR	                  [         R
                  " [         R                  S/5      5      n[        [         R                  " [        U5      [        S95      n[        R                  " X45        g r*  )r2   rd  r   rd   r  r3   r+  r   rM   r.   assert_series_equal)r7   rv  seriesr   r   s        r=    test_same_nan_is_in_large_series)TestIsin.test_same_nan_is_in_large_series7  sn    GGC#vv!RXXrvvqk23"''#a&56
v0rj   c                     " S S5      nU" 5       U" 5       p2Sn[         R                  " [        US9   [         R                  " [        R
                  " U/U/5      [        R                  " S/5      5        [         R                  " [        R
                  " U/U/5      [        R                  " S/5      5        S S S 5        g ! , (       d  f       g = f)Nc                   (    \ rS rSrS\4S jrS rSrg)0TestIsin.test_same_object_is_in.<locals>.LikeNaniF  returnc                     g)NFr
  )r7   r"  s     r=   __eq__7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__G  s    rj   c                     g)Nr   r
  )r7   s    r=   __hash__9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__J  s    rj   r
  N)rB  rC  rD  rE  rM   r8  r;  rI  r
  rj   r=   LikeNanr5  F  s    t rj   r=  r  r)   TF)r.   r/   r0   r5   r   r  r2   r3   )r7   r=  rl   rm   r8   s        r=   test_same_object_is_inTestIsin.test_same_object_is_in@  s    	 	 y')1;''SA''

A3(<bhhv>NO''

A3(<bhhw>OP	 BAAs   BC
Cc                    [        S5      /n[        S5      /nUS   US   Ld   e[        R                  " [        R                  " U5      U5      n[
        R                  " [        R                  " S/5      U5        [        R                  " [        R                  " U[        S9[        R                  " U[        S95      n[
        R                  " [        R                  " S/5      U5        [        R                  " [        R                  " U[        R                  S9[        R                  " U[        R                  S95      n[
        R                  " [        R                  " S/5      U5        g )Nrd   r   Tr+   )
floatr   r  r2   r3   r.   r5   rQ   r6   r   )r7   r   re   r   s       r=   r  TestIsin.test_different_nansV  s     u,Qxvay((( BHHUOV4
##BHHdV$4f= JJuF+RZZf-M
 	##BHHdV$4f= JJuBJJ/F"**1U
 	##BHHdV$4f=rj   c                    SS/nS/n[         R                  " SS/5      nSn[        R                  " [        US9   [
        R                  " X5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)Nss*   42Fz2isin with argument that is not not a Series, Indexr)   )r2   r3   r.   r/   r0   r   r  r5   r&  s         r=   test_no_castTestIsin.test_no_castn  si     r
88UEN+B''SAZZ.F B
##Hf5 BAs   A22
B emptyr+   c                     [        SS/5      n[        R                  " SS/5      n[        R                  " X!5      n[
        R                  " X45        g )Nrl   rm   F)r   r2   r3   r   r  r.   r5   )r7   rI  r  r   r   s        r=   
test_emptyTestIsin.test_emptyy  s@     c3Z 88UEN+D(
##H5rj   c                 >   [         R                  " S[         R                  S-  [        S5      /[        S9n[         R                  " [        S5      /[        S9n[         R                  " / SQ5      n[
        R                  " X5      n[        R                  " X45        g )Nrd                 ?r+   )FFT)	r2   r3   rd   rA  r6   r   r  r.   r5   )r7   r   r  r   r   s        r=   test_different_nan_objects#TestIsin.test_different_nan_objects  sf    %"eEl;6Jxxuf58801E(
##H5rj   c                    [         R                  " S[         R                  " SS5      5      S   n[         R                  " S[         R                  " SS5      5      S   nX:w  d   eX":w  d   e[        R                  " X/[        R
                  S9n[        R                  " U/[        R
                  S9n[        R                  " X45      n[        R                  " SS/5      n[        R                  " XV5        [        R                  " U/[        R
                  S9n[        R                  " X75      n[        R                  " SS/5      n[        R                  " XV5        g )Nr  r  r  r   r  r+   T)
r  r  r  r2   r3   r   r   r  r.   r5   )r7   r  r  r{   lookup1r   r   lookup2s           r=   test_different_nans_as_float64'TestIsin.test_different_nans_as_float64  s    
 }}S&++d4F"GHK}}S&++d4F"GHK|||| hh|2::6((D64C)88T4L)
##F5((D64C)88T4L)
##F5rj   c                     [        SSS/05      nUR                  S/5      n[        SSS/05      n[        R                  " X#5        g)zwComparing df with int`s (1,2) with a string at isin() ("1")
-> should not match values because int 1 is not equal str 1re   r%   r&   r  FN)r   r  r.   assert_frame_equalr7   dfr   expected_falses       r=   test_isin_int_df_string_search'TestIsin.test_isin_int_df_string_search  sG     1a&)*#"Huen#=>
f5rj   c                     [        S[        R                  S/05      nUR                  [        R                  " S/[
        S95      n[        SSS/05      n[        R                  " X#5        g)zComparing df with nan value (np.nan,2) with a string at isin() ("NaN")
-> should not match values because np.nan is not equal str NaNre   r&   NaNr+   FN)r   r2   rd   r  r3   r6   r.   rW  rX  s       r=   test_isin_nan_df_string_search'TestIsin.test_isin_nan_df_string_search  sW     2661+./5'89"Huen#=>
f5rj   c                     [        SSS/05      nUR                  [        R                  " S/[        S95      n[        SSS/05      n[
        R                  " X#5        g)zComparing df with floats (1.4245,2.32441) with a string at isin() ("1.4245")
-> should not match values because float 1.4245 is not equal str 1.4245re   gn?g#Ed@z1.4245r+   FN)r   r  r2   r3   r6   r.   rW  rX  s       r=    test_isin_float_df_string_search)TestIsin.test_isin_float_df_string_search  sT     67"3458*F;<"Huen#=>
f5rj   c                     [        S/[        R                  S9nUR                  S/5      n[        S5      n[        R
                  " X#5        g )Nl   
G r+   l    
G F)r   r2   r   r  r.   r/  r7   rf   r   r   s       r=   test_isin_unsigned_dtype!TestIsin.test_isin_unsigned_dtype  s?    )*"))<./0%=
v0rj   r
  N)#rB  rC  rD  rE  r  r|   r  r   rF  rH  r  r  r	  r  r  r  r#  r'  r,  r1  r>  r  rG  r   r6   r2   r3   rK  rO  rT  r[  r_  rb  rf  rI  r
  rj   r=   r  r    s,   
'6R66 [[X'WX[[W&89
6 : Y
66 [[W&VW6 X6 [[W&IJ K 	.66661Q,>0	6 [[Wr6+?"&NO6 P666,6661rj   r  c                       \ rS rSrS rS rS rS r\R                  R                  S\S/5      S 5       rS	 rS
 rS rS r\R                  R                  S\R$                  \S45      S 5       rS rS rSrg)TestValueCountsi  c                    [         R                  R                  S5      R                  S5      n[	        US5      nSn[
        R                  " [        US9   [        R                  " U5      nS S S 5        / SQn[        R                  " U5      R                  [        SS95      n[        / SQUS	S
9n[
        R                  " WR!                  5       UR!                  5       5        g ! , (       d  f       N= f)Ni  rs   !pandas.value_counts is deprecatedr)   )gV-g}?5^Ig/$ۿgףp=
?gʡE?Tr  )r%   r   r&   r%   countrP   r  )r2   rQ  rR  standard_normalr   r.   r/   r0   r   value_countsr   from_breaksrK   r   r   r/  
sort_index)r7   r{   factorr8   r   breaksrP   r   s           r=   test_value_counts!TestValueCounts.test_value_counts  s    ii##D)99!<S! 2''SA''/F B7))&1889IRV9WX,e'B
v002H4G4G4IJ BAs   C&&
C4c                    / SQnSn[         R                  " [        US9   [        R                  " USS9nS S S 5        [        S/[        R                  " S/5      SS	9n[         R                  " WU5        [         R                  " [        US9   [        R                  " US
SS9nS S S 5        [        S
S
/[        R                  " SS/5      SS	9n[         R                  " X45        g ! , (       d  f       N= f! , (       d  f       NY= f)N)r%   r&   rr   rs   rk  r)   r%   binsrs   )Zd;?ru   rl  rm  r&   F)rx  rB   )ry        @)rz  ru   )	r.   r/   r0   r   ro  r   r   rH   r/  )r7   rv  r8   r   r   s        r=   test_value_counts_bins&TestValueCounts.test_value_counts_bins  s    1''SA''2F BC}00,@w
 	vx0''SA''>F BF++\:,FG

 	v0 BA BAs   C(C9(
C69
Dc           	         Sn[         R                  " [        US9   [        R                  " [
        R                  " SS/5      5      nS S S 5        [        W5      S:X  d   e[         R                  " [        US9   [        R                  " [
        R                  " SS/5      SS9nS S S 5        [        U5      S:X  d   e[         R                  " [        US9   [        R                  " [        / SQ5      5      nS S S 5        [        U5      S:X  d   eSn[        R                  " [        US9   [         R                  " [        US9   [        R                  " [
        R                  " S	S/[        S
9SS9  S S S 5        S S S 5        g ! , (       d  f       GNG= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NK= f! , (       d  f       g = f)Nrk  r)   r%   rb   rw  )r%   rb   r  r&   z*bins argument only works with numeric datar  r+   )r.   r/   r0   r   ro  r2   r3   r   r   r   r   r   r6   )r7   msg2r   r8   s       r=   test_value_counts_dtypes(TestValueCounts.test_value_counts_dtypes  sQ   2''TB''!S(:;F C6{a''TB''!S(:CF C6{a''TB''}(=>F C6{a:]]9C0++MF""288S!HF#C!L G 10 CB CB CB GF 10sG   -F	;,F"F,/G	/F=8G	
F
F),
F:=
G	G
Gc                 l   [        [        R                  " S5      [        /SS9n[	        SS/5      nSnX4 Hr  n[
        R                  " [        US9   [        R                  " U5      n[        R                  " USS	9nS S S 5        [        W5      S
:X  d   e[        W5      S:X  a  Mr   e   [        [        S5      S
0SS9n[
        R                  " [        US9   [        R                  " U5      nS S S 5        [
        R                  " WU5        [        S
/[        R                  " S5      /SS9n	[
        R                  " [        US9   [        R                  " U5      n
S S S 5        [
        R                  " W
U	5        g ! , (       d  f       GN
= f! , (       d  f       N= f! , (       d  f       NI= f)Nr  timedelta64[ns]r+   r   z
2014-01-01rk  r)   Fdropnar%   r&   z2014-01-01 00:00:00rl  r  rm  )r   r2   timedelta64r   r   r.   r/   r0   r   ro  r   r   r/  )r7   tdr  r8   rf   vc
vc_with_naexp_dt	result_dtexp_td	result_tds              r=   test_value_counts_nat%TestValueCounts.test_value_counts_nat  sX   R^^E*C08IJ%./18C++ME'',"//EB
 F r7a<<z?a'''  #891=GL''SA**2.I B
y&1BNN5$9#:I''SA**2.I B
y&1 FE BA
 BAs$   ,FFF%
F	
F"%
F3r,   zM8[us]c                 j   [        [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      /US9nUR                  5       n[        [        SSS5      [        SSS5      [        SSS5      /US9n[        / SQUSS9n[        R
                  " X55        g )	Ni  r%   i  ip  r+   rr   r&   r%   rl  rm  )r   r   ro  r   r.   r/  )r7   r,   rf   r  	exp_indexrz   s         r=   &test_value_counts_datetime_outofbounds6TestValueCounts.test_value_counts_datetime_outofbounds  s     q!$q!$q!$q!$q!$q!$ 

  dAq!8D!Q#7$19MN
	 Yig>
s(rj   c                 t   [        [        [        S5      5      5      nUR                  5       n[        / SQ[	        / SQ5      SS9n[
        R                  " X#SS9  UR                  R                  5       nUR                  5       nUR                  R                  5       Ul	        [
        R                  " X#SS9  g )Naaabbcr  ro   rl  rm  Tcheck_index_type)
r   r   rO   ro  r   r.   r/  r!  
as_orderedrP   r  s       r=   r   TestValueCounts.test_categorical"  s    ;tH~./!-o>W
 	v$G EE!!224
v$Grj   c           	         [        [        [        S5      5      5      n[        R                  UR
                  S'   UR                  5       n[        / SQ[        / SQ/ SQS9SS9n[        R                  " X#SS	9  UR                  S
S9n[        / SQ[        SSS[        R                  /5      SS9n[        R                  " X#SS	9  [        [        [        S5      S/ SQS95      n[        R                  UR
                  S'   UR                  5       n[        / SQ[        / SQ/ SQSS9SS9n[        R                  " X#SS	9  UR                  S
S9n[        / SQ[        SSS[        R                  // SQSS9SS9n[        R                  " X#SS	9  g )N
aaaaabbbccr%   )rs   rr   r&   ro   r  rl  rm  Tr  Fr  )rs   rr   r&   r%   rl   rm   rn   )rm   rl   rn   )r  r&  r  )
r   r   rO   r2   rd   ilocro  r   r.   r/  r  s       r=   test_categorical_nans%TestValueCounts.test_categorical_nans1  sg   ;tL123FFq	!"?O

 	v$Gu- 0#sC1H IPW
 	v$G \*D_U
 FFq	!"*
 
 	v$Gu-"c3'OT 
 	v$Grj   c           	          [        [        [        S5      [        S5      SS95      nUR                  5       n[        / SQ[        / SQ[        S5      SS9SS9n[        R
                  " X#SS	9  g )
NbbbaacabcdTr  )rr   r&   r%   r   )rm   rl   rn   r  rl  rm  r  )r   r   rO   ro  r.   r/  r  s       r=   test_categorical_zeroes'TestValueCounts.test_categorical_zeroes\  sa    ;tH~$v,PTUV!$ft 
 	v$Grj   c                 "   [         R                  " [        / SQ5      R                  SS9[        SS/SS/SS95        [         R                  " [        / SQ5      R                  SS9[        SS/SS/SS95        [         R                  " [        S/S	-  S/S-  -   S /S
-  -   5      R                  SS9[        S	S/[	        SS/[
        S9SS95        [         R                  " [        S/S
-  S/S	-  -   S /S-  -   5      R                  SS9[        / SQ/ SQSS95        [         R                  " [        / SQ5      R                  SS9[        SS/SS/SS95        [         R                  " [        / SQ5      R                  SS9[        SS/SS/SS95        [         R                  " [        / SQ5      R                  SS9[        SS/SS/SS95        [        / SQ5      R                  SS9n[        / SQ/ SQSS9n[         R                  " X5        g )Nrj  Tr  r&   r%   Frl  rm  rr   rp   r+   )rp   rr   r&   )TFN)皙$@rt   rt   rt   r  )r  rt   rt   N)r  r  rt   rt   rt   Nr  )rt   r  N)r.   r/  r   ro  r   r6   )r7   r   r   s      r=   test_value_counts_dropna(TestValueCounts.test_value_counts_dropnai  s    	&'44D4AAq6$W=	
 	&'44E4BAq6$W=	

 	D6A:!+tfqj89FFdFSAq6e}F!C'R	
 	D6A:!+tfqj89FFeFT9$7gF	
 	#$111>Aq6#t7;	
 	#$111?Aq6#t7;	

 	)*77t7DAq6#t7;	

 9:GGuGU)+<7K
v0rj   r   c                    [        S/S-  S/S-  -   [        R                  /S-  -   5      nUR                  U5      nUR	                  SSS9n[        / SQ[        [        R                  S	S
/US9SS9n[
        R                  " XE5        UR	                  SSS9n[        SS/[        S	S
/US9SS9n[
        R                  " XE5        g )Nr%   r&   rr   rp   TF)	normalizer  )g      ?g333333?g?rc   rb   r+   
proportionrm  g333333?g?)r   r2   rd   rK   ro  r.   r/  )r7   r,   rv  s_typedr   r   s         r=   test_value_counts_normalized,TestValueCounts.test_value_counts_normalized  s     A37aS1W$x!|34((5/%%U%C"&&#s+59

 	v0%%T%B#Jfc3Zu=L
 	v0rj   c                 <   [         R                  " S/[         R                  S9n[        S/S/SS9nSn[        R
                  " [        US9   [        R                  " U5      nS S S 5        [        R                  " WU5        [         R                  " SS/[        S9n[        SS/SS/SS9n[        R
                  " [        US9   [        R                  " U5      nS S S 5        [        R                  " XB5        g ! , (       d  f       N= f! , (       d  f       N6= f)	Nr   r+   r%   rl  rm  rk  r)   rq   )r2   r3   r   r   r.   r/   r0   r   ro  r/  r6   )r7   r{   r   r8   r   s        r=   test_value_counts_uint64(TestValueCounts.test_value_counts_uint64  s    hhwbii01#eW7;1''SA'',F B 	vx0hhE{&11a&U'B''SA'',F B 	v0 BA BAs   C<D<
D

Dc                     [         R                  " SSSSS[         R                  /5      n[        U5      R	                  SS9n[        / SQ[
        R                  " / SQSS	9S
S9n[        R                  " X#5        g )Nrr   r%   r&   rs   rw  )r&   r&   r%   ))ry  rc   )rc   rv   )rv   ru   zinterval[float64, right]r+   rl  rm  )	r2   r3   rd   r   ro  r   rH   r.   r/  )r7   re   r   r   s       r=   test_value_counts_series(TestValueCounts.test_value_counts_series  sn    1aAq"&&12,,!,4++6>X 
 	v0rj   r
  N)rB  rC  rD  rE  rt  r{  r  r  r   rF  rH  r6   r  r  r  r  r  r2   r   r  r  r  rI  r
  rj   r=   ri  ri    s    K1&M&2. [[Wvx&89) :),H)HVH$1L [[Wrzz68&DE1 F1$1 1rj   ri  c                      \ rS rSrS r\R                  R                  S\R                  " / SQ5      \R                  " SSS\R                  SSSS\R                  S	/
5      \R                  " / S
Q5      \R                  " / SQ\S9\R                  " / SQ\R                  S9/5      S 5       rS r\R                  R                  S\" / SQ5      \R"                  " SS5      /5      S 5       r\R                  R                  S/ SQ/ SQ4/ SQSS/4/ SQ/ SQ4/5      S 5       r\R                  R                  S/ SQ\R                  " / SQ\S94/5      S  5       rS!rg")#TestDuplicatedi  c           	      B   [         R                  " SS[         R                  SS[         R                  /[        S9n[        R
                  " U5      n[         R                  " / SQ5      n[        R                  " X#5        [        R
                  " USS9n[         R                  " / SQ5      n[        R                  " X#5        [        R
                  " USS9n[         R                  " / S	Q5      n[        R                  " X#5        [        R
                  " US
S9n[         R                  " / SQ5      n[        R                  " X#5        [         R                  " S[        S9n[        [        SS[         R                  [         R                  /S-  S[         R                  S[         R                  /S-  5      5       H	  u  pEXQU'   M     [        R
                  " U5      nS
/S-  nS/S-  n[         R                  " Xg-   5      n[        R                  " X#5        [        R
                  " USS9n[         R                  " Xv-   5      n[        R                  " X#5        [        R
                  " US
S9n[         R                  " Xw-   5      n[        R                  " X#5        g )Nr   r%   r&   r+   )FFFTFTfirstkeeplast)TFTFFFF)TFTTFT   rs   T)r2   r3   rd   r6   r   
duplicatedr.   r5   rI  	enumeratezip)r7   keysr   r   r   tfalsestruess           r=   test_duplicated_with_nas'TestDuplicated.test_duplicated_with_nas  s   xxArvvq!RVV4FC!!$'88DE
##F5!!$W588DE
##F5!!$V488DE
##F5!!$U388BC
##F5xx(Arvvrvv&*Q266,BQ,FG
DA G

 !!$'1
88FN+
##F5!!$V488EN+
##F5!!$U388EM*
##F5rj   case)
r%   r&   r%   rp   rr   r&   rs   r%   rp      g?g@gffffff
@g@gffffff@)
      ?      ?       @       @r        @      @y      @      @r  y      @      @r  r  y      @      @)
rl   rm   rl   ern   rm   r  rl   r  fr+   )
r%   r   r%      r   r   '   r%   r     c                    [         R                  " / SQ5      n[         R                  " / SQ5      nX#-  n[        R                  " USS9n[        R
                  " XR5        [        R                  " USS9n[        R
                  " Xc5        [        R                  " USS9n[        R
                  " Xt5        [        U5      [        USS94 Hr  nUR                  SS9n[        R
                  " XR5        UR                  SS9n[        R
                  " Xc5        UR                  SS9n[        R
                  " Xt5        Mt     [        U5      [        USS94 H  n	U	R                  SS9n[        R                  " U[        U5      5        U	R                  SS9n[        R                  " U[        U5      5        U	R                  SS9n[        R                  " U[        U5      5        M     g )	N
FFTFFTFTTF
TTTTFFFFFFr  r  r  Fr%  r+   )	r2   r3   r   r  r.   r5   r   r   r/  )
r7   r  	exp_firstexp_last	exp_false	res_firstres_last	res_falser7  rv  s
             r=   test_numeric_object_likes(TestDuplicated.test_numeric_object_likes  s   4 HHN
	 88N
 (	$$T8	
##I9##Dv6
##H7$$T6	
##I9 $Kt:!>?CG4I''	=~~6~2H'';E2I''	= @ ,t: >?A'2I""9fY.?@|||0H""8VH-=>%0I""9fY.?@ @rj   c                 N   / SQn/ SQn[         R                  " U Vs/ s H  n[        U5      PM     sn5      [         R                  " U Vs/ s H  n[        USS9PM     sn5      [         R                  " U Vs/ s H  n[        USS9PM     sn5      [         R                  " U Vs/ s H  n[         R                  " U5      PM     sn5      [         R                  " U Vs/ s H  n[        U5      PM     sn5      /n[         R                  " / SQ5      n[         R                  " / SQ5      nXV-  nU GH  n[        R                  " US	S
9n	[        R                  " X5        [        R                  " USS
9n
[        R                  " X5        [        R                  " USS
9n[        R                  " X5        [        U5      [        USS9[        U[        S94 Hr  nUR                  S	S
9n	[        R                  " X5        UR                  SS
9n
[        R                  " X5        UR                  SS
9n[        R                  " X5        Mt     [        U5      [        USS9[        U[        S94 H  nUR                  S	S
9n	[        R                  " U	[        U5      5        UR                  SS
9n
[        R                  " U
[        U5      5        UR                  SS
9n[        R                  " U[        U5      5        M     GM     g s  snf s  snf s  snf s  snf s  snf )N)

2011-01-01
2011-01-02r  r   
2011-01-03r  z
2011-01-04r  r   z
2011-01-06)
1 days2 daysr  r   z3 daysr  z4 daysr  r   z6 daysr(  r)  r\  r   r  r  r  r  r  Fr%  r+   )r2   r3   r   r   r   r   r   r  r.   r5   r   r6   r   r/  )r7   r  r  r  casesr  r  r  r  r  r  r  r7  rv  s                 r=   test_datetime_likes"TestDuplicated.test_datetime_likes)  s   

 HHB/BqilB/0HHR@Ril3R@AHH262afQS)267HH31bmmA&34HHB/BqilB/0
 HHN
	 88N
 (	D((G<I''	=''6:H'';((E:I''	= dd*-d&)
  NNN8	++IA>>v>6++H?NNN6	++IA  tt:.t6*
 LLgL6	&&y&2CD<<V<4&&x1ABLLeL4	&&y&2CD5  0@63/s   LL
:L( L"L"r   r   rr   c                     UR                   SL d   e[        R                  " UR                  5       [        R
                  " / SQ5      5        g )NT)FFF)	is_uniquer.   r5   r  r2   r3   )r7   r  s     r=   test_unique_index TestDuplicated.test_unique_index{  s5    ~~%%%
##DOO$5rxx@U7VWrj   zarr, uniques)r   r   r%   r%   r   r   r   r  r  r   )r   r  r  r   )rm   rn   rl   rm   r  r  r  r  )r  rm   r&   rl   rr   r  )r  r  r  c                    [         R                  " [        U5      [        S9nX#S S & Sn[        R
                  " [        US9   [        R                  " U5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nr+   r  r)   )
r2   rI  r   r6   r.   r/   r0   r   rI   r5   )r7   r{   r:   r   r8   r   s         r=   test_unique_tuples!TestDuplicated.test_unique_tuples  sa      88CL7=''SAYYs^F B
##FH5 BAs   A99
Bzarray,expected)r  r   r%   rN        ?       @r  )r  y                r-   rN  r  c                     Sn[         R                  " [        US9   [        R                  " U5      nS S S 5        [         R
                  " WU5        g ! , (       d  f       N&= fr  r  )r7   r3   r   r8   r   s        r=   test_unique_complex_numbers*TestDuplicated.test_unique_complex_numbers  sG     >''SAYYu%F B
##FH5 BAr  r
  N)rB  rC  rD  rE  r  r   rF  rH  r2   r3   rd   r6   r   r  r  r   r   r   r  r  r  rI  r
  rj   r=   r  r    s   %6N [[HH34HHc3RVVS#sCMNHH HHGvVHH>bii%	
2&A32&APPEd [[VeI&6a8K%LMX NX [[ Q0
 AZ( 67UV
	
66 [[ 3?vN	
	6	6rj   r  c                   T   \ rS rSr\R
                  R                  S\R                  \	R                  " \" S5       V Vs/ s H  nSU 3PM
     snn \S94\R                  \	R                  " \" S5       V Vs/ s H  nSU 3PM
     snn \S94\R                  \	R                  " S\	R                   S94\R"                  \	R                  " S\	R$                  S94\R&                  \	R                  " S\	R(                  S94/5      S 5       r\R
                  R                  S\R                  \	R                  " \" S5       V Vs/ s H  nSU 3PM
     snn \S94\R                  \	R                  " \" S5       V Vs/ s H  nSU 3PM
     snn \S94\R                  \	R                  " S\	R                   S94\R"                  \	R                  " S\	R$                  S94\R&                  \	R                  " S\	R(                  S94/5      S 5       rSrg	s  snn f s  snn f s  snn f s  snn f )
TestHashTablei  zhtable, datar^  foo_r+   c                    [        X"R                  S9nU[        R                  :X  a  [        R
                  UR                  S'   O8U[        R                  :X  a$  [        R
                  S [        /UR                  SS& UR                  SSS9R                  SS9nUR                  R                  US9  UR                  S	S
9R                  nU" 5       R                  UR                  5      n[        R                   " Xv5        U" 5       R                  UR                  SS9u  px[        R                   " Xv5        Xx   n	[        R                   " XR                  5        g )Nr+       rr   Tfracreplacedropr   r  r  )return_inverse)r   r,   r   Float64HashTabler2   rd   locPyObjectHashTabler   samplereset_indexre   r   drop_duplicatesrI   r.   r5   )
r7   htabler   r   rv  s_duplicatedexpected_uniqueresult_uniqueresult_inversereconstrs
             r=   test_hashtable_unique#TestHashTable.test_hashtable_unique  s"   $ 4zz*R(((AEE#Jr+++ ffdC0AEE#cN xxQx5AAtAL$$8$4 '66G6DKK(;(;<
##MC )/ )8 )
% 	##MC 0
##H.A.ABrj   c                    [        X3R                  S9nU[        R                  :X  a  [        R
                  UR                  S'   O8U[        R                  :X  a$  [        R
                  S [        /UR                  SS& UR                  SSS9R                  SS9nUR                  R                  US9  UR                  5       R                  nU" 5       R                  UR                  5      u  pxUR                  5       R!                  5       R                  n	["        R$                  " Xy5        XxU)       n
UR                  5       R                  n["        R$                  " X5        g )	Nr+   r  r  rr   Tr  r  r   )r   r,   r   r   r2   rd   r  r  r   r  r  re   r   r   r1   r  r  r.   r5   )r7   r  r   r   rv  r  na_maskr	  r
  r  result_reconstructexpected_reconstructs               r=   test_hashtable_factorize&TestHashTable.test_hashtable_factorize  s$   $ 4zz*R(((AEE#Jr+++ ffdC0AEE#cN xxQx5AAtAL$$8$4##%,,(.(:(:<;N;N(O%
 '--/??AHH
##MC +7(+CD+224;;
##$6Mrj   r
  N)rB  rC  rD  rE  r   rF  rH  r   r  r2   r3   r   r6   StringHashTabler   rx   r   Int64HashTabler   UInt64HashTabler   r  r  rI  ).0r   s   00r=   r  r    s   [[ $$eDk:kD*k:&I
 ""eDk:kD*k:&I   "))D

"CD		$bhh ?@4ryy!AB	
 C! C: [[ $$eDk:kD*k:&I
 ""eDk:kD*k:&I   "))D

"CD		$bhh ?@4ryy!AB	
 N! Nq ; ;R ; ;s   H7HH;H$r  c                      \ rS rSr\R
                  R                  S\R                  \R                  SSS\R                  SSS\R                  /
S\R                  SSS\R                  SSS\R                  /
/5      S 5       r	\R
                  R                  S	\R                  S
   5      S 5       r\R
                  R                  S	\R                  \R                  /5      S 5       rS r\R
                  R                   S 5       rSrg)TestRanki  r{   rt   r%   r&   rr   ru   c                 l   [         R                  " S5      n[        R                  " U5      n[        R                  " U5      ) nUR                  5       n[        R                  " U5      n[        R                  X'   UR                  U5      n[        R                  XS'   [        R                  " XE5        g )Nzscipy.stats)r   importorskipr2   r3   isfinitecopylibalgosrank_1dr   rankdatard   r.   re  )r7   r{   sp_statsr   r   rz   s         r=   test_scipy_compatTestRank.test_scipy_compat  s     &&}5hhsmC  hhj!!#&FF	$FF	
v+rj   r,   
AllIntegerc                    [         R                  " SS/[         R                  S9n[         R                  " SS/US9nUR                  US9  [	        U5      n[
        R                  " U5      n[        R                  " Xc5        g )Nr%   r&   r+   rM  r   )	r2   r3   r   r   r   r   rankr.   r5   )r7   r   r,   rz   r   rf   r   s          r=   r|   TestRank.test_basic  s`    hh1vRZZ0xxC.H%TlC
##F0rj   c                     [         R                  " SS/[         R                  S9n[        SS/US9n[        R
                  " [        R                  " U5      U5        g )Nr%   r&   r+   r   )r2   r3   r   r   r.   r5   r   r&  )r7   r,   rz   rv  s       r=   r  TestRank.test_uint64_overflow%  sB    hh1vRZZ0Au:U+
##EJJqM37rj   c                     [         R                  " / SQ/ SQ/ SQ//5      nSn[        R                  " [        US9   [
        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nr   )rs   rp   r  )r  r  	   z%Array with ndim > 2 are not supportedr)   )r2   r3   r   r   r   r   r&  )r7   r{   r8   s      r=   test_too_many_ndimsTestRank.test_too_many_ndims,  sD    hhIy9:;5]]9C0JJsO 100s   A
A*c                 (   [         R                  " S5      n[        R                  " USS9R	                  5       nUS:X  d   e[         R                  " S5      R                  SS5      n[        R                  " USS9R	                  5       nUS:X  d   eg )Ni  T)pctr%   i  r&   )r2   rx   r   r&  maxreshape)r7   re   r   s      r=   test_pct_max_many_rowsTestRank.test_pct_max_many_rows3  sw     9%F-113{{9%--i;F-113{{rj   r
  N)rB  rC  rD  rE  r   rF  rH  r2   rd   r"  	typecodesr|   r   r   r  r,  
single_cpur2  rI  r
  rj   r=   r  r    s    [[VVRVVS#sBFFAq!RVVD"&&#sCAsBFFC	
,, [[Wbll<&@A1 B1 [[Wrzz299&=>8 ?8 [[ rj   r  c                      \ rS rSrS r\R                  R                  S\R                  S   \R                  S   -   5      S 5       r
S r\R                  R                  S\R                  S   \R                  S   -   5      S 5       rS	 r\R                  R                  S\\/5      S
 5       rS rS rS rS rS rS rS rSrg)TestModei?  c           	          [        / [        R                  [        / [        S9S9n[
        R                  " [        R                  " [        R                  " / 5      5      UR                  5        g )Nr+   )r,   rP   )r   r2   r   r   intr.   r5   r   moder3   re   r7   rz   s     r=   test_no_modeTestMode.test_no_mode@  s@    Rrzzr1EF
##EJJrxx|$<cjjIrj   r  r$  Floatc                    S/nS/nS/nSS/n[        X1S9n[        X!S9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        [        XQS9n[        XAS9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        g )Nr%   r+   r   r.   r5   r   r:  re   r/  r7   r  
exp_singledata_single	exp_multi
data_multirf   rz   s           r=   test_mode_singleTestMode.test_mode_singleD  s     S
cC	V
[+Z*
##EJJszz$:CJJG
sxxz3/Z*Y)
##EJJszz$:CJJG
sxxz3/rj   c                 >   [        S/[        S9n[        R                  " [        R
                  " UR                  5      UR                  5        [        / SQ[        S9n[        R                  " [        R
                  " UR                  5      UR                  5        g )Nr%   r+   ro   )r   r9  r.   r5   r   r:  re   r6   r;  s     r=   test_mode_obj_intTestMode.test_mode_obj_intW  s^    aS$
##EJJszz$:CJJG_F3
##EJJszz$:CJJGrj   c                 ,   S/nS/S-  S/S-  -   nSS/nS/S-  S/S-  -   S/S-  -   n[        X1S9n[        X!S9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        [        XQS9n[        XAS9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        g )Nr%   rp   r&   rr   r+   r@  rA  s           r=   test_number_modeTestMode.test_number_mode^  s    S
cAga'F	S1WsQw&!q0
[+Z*
##EJJszz$:CJJG
sxxz3/Z*Y)
##EJJszz$:CJJG
sxxz3/rj   c                    S/nS/S-  S/S-  -   n[        USS9n[        USS9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        g )Nrm   rl   r&   rr   rn   r+   r@  )r7   rz   r   rf   s       r=   test_strobj_modeTestMode.test_strobj_modep  sn    euqyC519$T%S$
##EJJszz$:CJJG
sxxz3/rj   c                    S/nS/S-  S/S-  -   n[        XAS9n[        X1S9nU(       aI  U[        L a@  [        R                  " [        R
                  " UR                  5      UR                  5        O?[        R                  " [        R
                  " UR                  5      UR                  5        [        R                  " UR                  5       U5        g )Nbarr  r&   rr   r+   )	r   r  r.   r  r   r:  re   r5   r/  )r7   r  using_infer_stringrz   r   rf   s         r=   test_strobj_multi_charTestMode.test_strobj_multi_chary  s    gw{eWq[(T$S#")++EJJszz,BCJJO''

3::(>

K
sxxz3/rj   c                    [        / SQSS9n[        / SQSS9n[        R                  " [        R                  " UR
                  5      UR                  5        [        R                  " UR	                  5       U5        [        SS/SS9n[        / SQSS9n[        R                  " [        R                  " UR
                  5      UR                  5        [        R                  " UR	                  5       U5        g )N)
1900-05-03r  
2013-01-02r   r+   )r  rX  rW  r  rX  )r  rX  rW  r  rX  r   r.   r  r   r:  re   r  r/  r7   rz   rf   s      r=   test_datelike_modeTestMode.test_datelike_mode  s    ?xP?xP
''

3::(>L
sxxz3/lL1BR
 	''

3::(>L
sxxz3/rj   c                    [        / SQSS9n[        / SQSS9n[        R                  " [        R                  " UR
                  5      UR                  5        [        R                  " UR	                  5       U5        [        SS/SS9n[        / SQSS9n[        R                  " [        R                  " UR
                  5      UR                  5        [        R                  " UR	                  5       U5        g )N)-1 days0 daysr  r  r+   )r  r^  r_  2 minr   r   r   z-1 dayz-1 day 2 minr`  r`  rY  rZ  s      r=   test_timedelta_modeTestMode.test_timedelta_mode  s    4<MN4<MN
''

3::(>L
sxxz3/gw'/@AJ#
 	''

3::(>L
sxxz3/rj   c                    [        S/[        S9n[        / SQ5      n[        R                  " [        R
                  " UR                  5      UR                  5        [        R                  " UR                  5       U5        g )Nr  r+   )r%   r  r  )r   r6   r.   r5   r   r:  re   r/  rZ  s      r=   test_mixed_dtypeTestMode.test_mixed_dtype  sR    eWF+&'
##EJJszz$:CJJG
sxxz3/rj   c                 b   [        S/[        R                  S9n[        / SQ[        R                  S9n[        R                  " [
        R                  " UR                  5      UR                  5        [        R                  " UR                  5       U5        [        SS/[        R                  S9n[        SS/[        R                  S9n[        R                  " [
        R                  " UR                  5      UR                  5        [        R                  " UR                  5       U5        g )Nr   r+   )r%   r   r   r%   )	r   r2   r   r.   r5   r   r:  re   r/  rZ  s      r=   r  TestMode.test_uint64_overflow  s    eWBII.&bii8
##EJJszz$:CJJG
sxxz3/aZryy1aZryy1
##EJJszz$:CJJG
sxxz3/rj   c                    [        SS/5      nUn[        U5      R                  5       R                  n[        R
                  " X25        [        / SQ5      n[        S/SS/S9n[        U5      R                  5       R                  n[        R
                  " X25        [        / SQ5      n[        SS// SQS9n[        U5      R                  5       R                  n[        R
                  " X25        g )	Nr%   r&   r%   rl   rl   rl   r  r%   r%   r&   rr   rr   rr   r   )r   r   r:  r  r.   r  )r7   rn   rz   r  s       r=   r  TestMode.test_categorical  s    AQinn&&
##C-&3%QH5Qinn&&
##C-(1a&Y7Qinn&&
##C-rj   c                    [        / SQ5      n[        / SQ[        R                  S9n[        R
                  " [        R                  " U5      UR                  5        [        / SQ5      n[        S/[        S9n[        R
                  " [        R                  " U5      UR                  5        [        / SQ5      n[        SS/[        R                  S9n[        R
                  " [        R                  " U5      UR                  5        [        / SQS	S9n[        R                  " [        S
S9   [        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nr   r+   rj  rl   rk  r%   rr   ra  r  TimedeltaIndexr)   )r   r   r2   r   r.   r5   r   r:  re   r6   r   r   AttributeError)r7   r7  rz   s      r=   
test_indexTestMode.test_index  s    IYbhh/
##EJJsOSZZ@M"cU&)
##EJJsOSZZ@O$aV288,
##EJJsOSZZ@J#
 ]]>1ABJJsO CBBs   /E
Ec                 ~    [        / SQSS9nUR                  5       n[        S/SS9n[        R                  " X#5        g )N)r%   r%   rr   r  r  r%   )r   r:  r.   r/  re  s       r=   test_ser_mode_with_name TestMode.test_ser_mode_with_name  s5    YU+1#E*
v0rj   r
  N)rB  rC  rD  rE  r<  r   rF  rH  r2   r4  rF  rI  rL  rO  r  r6   rT  r[  rb  re  r  r  rp  rs  rI  r
  rj   r=   r7  r7  ?  s    J [[T2<<#=W@U#UV0 W0$H [[T2<<#=W@U#UV0 W0"0 [[TC=1
0 2
0000	0. *1rj   r7  c                       \ rS rSr\R
                  R                  SSS/5      S 5       rS r\R
                  R                  SSS/5      S	 5       r	S
r
g)TestDiffi  r,   r   r  c                    [         R                  " S5      R                  [         R                  5      R	                  U5      R                  SS5      nUR                  R                  SS5      US S 2S4'   [        R                  " USSS	9n[         R                  " UR                  S
S9S-  n[         R                  " SS5      US S 2S4'   [         R                  " SS5      USS S 24'   [        R                  " X45        [        R                  " UR                  SSS	9n[        R                  " X4R                  5        g )N   rr   rs   r   nsr&   r%   r   axisr  r+   )r2   rx   rK   r   r  r1  r,   typer   diffr+  r  r  r.   r5   Tr7   r,   r{   r   r   s        r=   test_diff_datetimelike_nat#TestDiff.test_diff_datetimelike_nat  s     iim""288,11%8@@AFIINN5$/AqD	C+77399,=>Bt4At4A
##F5CEE11-
##FJJ7rj   c                     [        SSSS9R                  nSn[        R                  " [        US9   [
        R                  " USSS9  S S S 5        g ! , (       d  f       g = f)	Nr/  rr   r0  r  z#cannot diff DatetimeArray on axis=1r)   r%   rz  )r   r  r   r   
ValueErrorr   r}  )r7   r  r8   s      r=   test_diff_ea_axisTestDiff.test_diff_ea_axis  sE    q\BHH3]]:S1JJsAA& 211s   A
Aint8int16c                     [         R                  " / SQUS9n[        R                  " US5      n[         R                  " [         R                  SSSS/SS9n[
        R                  " X45        g )N)r   r%   r%   r   r   r+   r%   r   rq   rL   )r2   r3   r   r}  rd   r.   r5   r  s        r=   test_diff_low_precision_int$TestDiff.test_diff_low_precision_int  sO    hhe4C#88RVVQ2q1C
##F5rj   r
  N)rB  rC  rD  rE  r   rF  rH  r  r  r  rI  r
  rj   r=   rv  rv    sY    [[Wx&:;8 <8' [[Wvw&786 96rj   rv  opc                 0   U " / SQ5      nU " / SQ5      nU " / SQ5      n[        U[        R                  5      (       a-  [        R                  " X5      n[
        R                  " XC5        g [        R                  " X5      n[
        R                  " XC5        g )N)rr   r%   rr   rs   )r&   rr   r%   r%   )rr   rr   r%   r%   rs   r&   )rG   r2   r  r   union_with_duplicatesr.   r5   r  )r  lvalsrvalsr   r   s        r=   test_union_with_duplicatesr     sp     |E|E$%H(BJJ'',,U:
##F5,,U:
''9rj   )Br   r  numpyr2   r   pandas._configr   pandas._libsr   r  r   r   pandas.core.dtypes.commonr   r   r	   r
   r   pandas.core.dtypes.dtypesr   pandasr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr.   pandas.core.algorithmscore
algorithmspandas.core.arraysr   r    pandas.core.commoncommonr   r"   rK  r  r  ri  r  r  r  r7  rv  rF  rH  r3   r  r
  rj   r=   <module>r     s       -
  7     (  & & !  zQ zQzB: B:J
~1 ~1B
}1 }1@g6 g6TYN YNx6 6r^1 ^1B6 6@ "((34
: 5
:rj   