
    4i2                    &   S SK J r   S SKrS SKrS SK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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.J/r/  S SK0J+s  J1r2   " S S	5      r3 " S
 S5      r4S r5 " S S5      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<\Rz                  R}                  S\R~                  \R~                  /5      S 5       r@g)    )datetimeN)algos	hashtable)is_bool_dtypeis_complex_dtypeis_float_dtypeis_integer_dtypeis_object_dtype)CategoricalDtypeDatetimeTZDtype)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S 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S rS  rS! r\R                   R#                  S"\R>                  " / S#QS$S%9\R>                  " / S&QS'S%9\R>                  " / S(QS)S%9/5      S* 5       r \R                   R#                  S+\R>                  " / S,QS$S%9S-4\R>                  " / S.QS$S%9S/4\R>                  " / S0QS'S%9S14\R>                  " / S2QS'S%9S/4\R>                  " / S3Q\!S%9S44\R>                  " / S5Q\!S%9S64\R>                  " / S7Q\!S%9S84/5      S9 5       r"\R                   R#                  S:\R>                  " / S;Q\!S%9\R>                  " S<S4/\!S%94\#R>                  " S=S/\#RH                  S=/S>S%9\#R>                  " S=S//S>S%94/S?S@/SA9SB 5       r%\R                   R#                  S/ SCQ\R>                  " / SDQ\RL                  " SE5      S%9\R>                  " S4\RN                  S</\!S%94S4\RN                  S<S4/\R>                  " / SDQ\RL                  " SE5      S%9\R>                  " S4\RN                  S</\!S%94/5      SF 5       r(\R                   R#                  S\R>                  " / SGQ\!S%9\R>                  " / S,Q\RL                  " SE5      S%9\R>                  " S/\RN                  S=/SHS%94\R>                  " S/\RN                  S/S=/\RR                  S%9\R>                  " / S,Q\RL                  " SE5      S%9\R>                  " S/\RN                  S=/\RR                  S%94/5      SI 5       r*\R                   R#                  S\+" \," / SJQ5      5      \R>                  " / SKQ\RZ                  S%9\." S4S</S4S</SLSM94\/" \," / SJQ5      5      \R>                  " / SKQ\RZ                  S%9\." S4S</S4S</SLSM94\/" \0" SNSN/SOSP95      \R>                  " S-S-/\RZ                  S%9\0" SN/SOSP94/5      SQ 5       r1SR r2S6r3gS)TTestFactorize6   c                 B   [         R                  " / SQ[        S9n[        R                  " U5      u  p#[         R                  " / SQ[         R
                  S9n[        R                  " X$5        [         R                  " / SQ[        S9n[        R                  " X55        g )N)             @      ?dtype)r   r%   r&   )      ?               @        r'   )nparraycomplexr   	factorizeintptmassert_numpy_array_equal)selfr-   labelsuniquesexpected_labelsexpected_uniquess         Y/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pandas/tests/test_algos.pytest_factorize_complex$TestFactorize.test_factorize_complex7   sd    w7//%0((9BGG<
##F<88$B'R
##G>    c                    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sortr(   Texact)r/   r   
isinstancer   from_tuplesuniquer)   r,   float16astypefloat32boolobjectsort_valueslistindexasarrayr0   r1   r2   assert_index_equal)r3   index_or_series_objr>   objresult_codesresult_uniquesconstructorexpected_arrr7   expected_uniques_listvalexpected_codess               r8   test_factorizeTestFactorize.test_factorizeB   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(         ?       @)
r,   r-   nanr   r/   r0   r   r1   r2   rM   )r3   valuessercodesr5   rV   r7   s          r8   +test_series_factorize_use_na_sentinel_false9TestFactorize.test_series_factorize_use_na_sentinel_false`   s~    1aBFF+,Vnu=,bgg> #sBFF!34
##E:
g8r;   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brg   rf   rf   crh   rh   r(   rf   rg   rh   Tr=   )r   r%   r%   r   r   r&   r&   r&      )r   r%   r&         )rm   rl   r&   r%   r         @)      @      @r^   r]           )rq   r]   r^   rp   ro   )
r,   r-   rH   r   r/   r1   r2   r0   aranger)   )r3   itemsrb   r5   exparrs         r8   
test_basicTestFactorize.test_basicl   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1r;   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   rk   r%   r&   rl   r(   Tr=   )r&   r&   rk   rl   r   r%   )r   r,   r_   infr   r/   r-   r0   r1   r2   r   rM   )r3   xrb   r5   rt   s        r8   
test_mixedTestFactorize.test_mixed   s    Cbffc489+hh*"'':
##E/S#tRVV,-
g+6hh*"'':
##E/T2663,-
g+r;   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(   Tr=   )r%   r%   r%   r   r   r%   )r   r   r   r/   r,   r-   r0   r1   r2   r   rM   r3   v1v2r|   rb   r5   rt   s          r8   test_factorize_datetime64'TestFactorize.test_factorize_datetime64   s    01z"BBB+,+hh)9
##E/RH%
g+6hh)9
##E/RH%
g+r;   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(   Tr=   )r   r   r   r/   r,   r-   r0   r1   r2   rM   r   r   s          r8   test_factorize_period#TestFactorize.test_factorize_period   s    H3'H3'BBB+, +hh)9
##E/
g{B8'<=6hh)9
##E/
g{B8'<=r;   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(   Tr=   )r%   r   r%   r%   r   r   r%   )
r   r   r   r/   r,   r-   r0   r1   r2   rM   r   s          r8   test_factorize_timedelta&TestFactorize.test_factorize_timedelta   s    -('"BBBB/0+hh,BGG<
##E/
g|RH'=>6hh,BGG<
##E/
g|RH'=>r;   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(   )rk      )na_sentinelr   )r,   r-   r_   htObjectFactorizerlenr/   r0   setr1   r2   pdisna)r3   keyrizerr   idsexpecteds         r8   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 $r;   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&   rl   r%   r%   r   int64r(   )FFFFFT)mask)r   r%   r&   r   r   rk   r%   r&   rl   )r,   r-   r   Int64Factorizerr   r/   r0   r1   r2   r5   to_array)r3   datar   r   resultr   r7   s          r8   test_factorizer_with_mask'TestFactorize.test_factorizer_with_mask   s    xx*':xxAB""3t9-188/rww?
##F588IW=
##EMM$:$:$<>NOr;   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&   rl   )r   r%   r&   r   rk   r(   r   )r,   r-   r_   r   r   r   r/   rE   rH   r0   r1   r2   r5   r   )r3   r   r   r   r   r7   s         r8   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Or;   z&data, expected_codes, expected_uniques)r%   r%   r%   r&   r   r   r   nonsense)r   r%   r&   r%   rl   )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                 4   [         R                  " U[        S9n[        R                  " U5      u  pE[
        R                  " U[        R                  " U[        R                  S95        [         R                  " U[        S9n[
        R                  " XV5        g Nr(   )
comasarray_tuplesaferH   r   r/   r1   r2   r,   r-   r0   )r3   r   rV   r7   rb   r5   expected_uniques_arrays          r8   test_factorize_tuple_list'TestFactorize.test_factorize_tuple_list   sg    $ $$T8d+
##E288N"''+RS!$!6!67Gv!V
##GDr;   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 .*matchrk   Tr=   )
r,   r-   ranger.   rH   pytestraises	TypeErrorr   r/   )r3   ix17msgs       r8   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&   )r,   r-   r0   r   r/   r1   r2   )r3   any_real_numpy_dtyper)   r   rV   r7   rb   r5   s           r8   test_numeric_dtype_factorize*TestFactorize.test_numeric_dtype_factorize  sl    $xxE2,bgg>88QF%8.
##E:
##G>r;   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)r]       חAr]   :0yE>r   r]   r(   write)r   r%   r   r&   r%   r   )r]   r   r   )	r,   r-   float64setflagsr0   r   r/   r1   r2   r3   writabler   rV   r7   rb   r5   s          r8   test_float64_factorize$TestFactorize.test_float64_factorize$  s|    xx7rzzJH%"4BGGD88$4BJJG.
##E:
##G>r;   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%   )	r,   r-   uint64r   r0   r   r/   r1   r2   r   s          r8   test_uint64_factorize#TestFactorize.test_uint64_factorize.  s~    xx1CH%)277;88YN"))D.
##E:
##G>r;   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   r   r0   r   r/   r1   r2   r   s          r8   test_int64_factorize"TestFactorize.test_int64_factorize8  s    xx8IH%)277;88Y$9J.
##E:
##G>r;   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)rf   rh   rf   rg   rh   r(   r   )r   r%   r   r&   r%   rf   rh   rg   )	r,   r-   rH   r   r0   r   r/   r1   r2   r   s          r8   test_string_factorize#TestFactorize.test_string_factorizeB  sr    xx1@H%/A88O6B.
##E:
##G>r;   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 )Nrf   rh   rg   r(   r   )r   r%   rk   rk   r   r&   rk   r%   r   )r,   r-   r_   r   rH   r   r0   r   r/   r1   r2   r   s          r8   test_object_factorize#TestFactorize.test_object_factorizeL  s    xxc4c3DFSH%"=RWWM88O6B.
##E:
##G>r;   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])	r,   r-   
datetime64r   r0   r   r/   r1   r2   r   s          r8   test_datetime64_factorize'TestFactorize.test_datetime64_factorizeV  s    xx'@AB(SH%1#RWW588,-5E
 d+
##E:
##G>r;   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(   r=   r   r%   Tr?   r   
RangeIndex
from_ranger   r,   rr   r0   r   r/   r1   r2   rM   )r3   r>   rir   r   s        r8   test_factorize_rangeindex'TestFactorize.test_factorize_rangeindexc  s    ]]%%eBi099Rrww/3/
##F1Ix{;
fQi!DA4(
##F1Ix{;
fQi!DAr;   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(   rk   r   r%   r=   Tr?   r   )r3   r>   r   r   ri2r   s         r8   $test_factorize_rangeindex_decreasing2TestFactorize.test_factorize_rangeindex_decreasingp  s    ]]%%eBi099Rrww/32hA;#{4R4((1+dd*;;H0
##F1Ix{;
fQi!DAD)
##F1Ix{;
fQi!DAr;   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)
r,   r-   r   r   r   r   r   r/   r1   assert_produces_warning)r3   r   s     r8   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  rH   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   r/   r,   r-   r0   r1   r2   )r3   r   rb   r5   r7   rV   s         r8   ,test_parametrized_factorize_na_value_default:TestFactorize.test_parametrized_factorize_na_value_default  sR     .A<)277;
##E:
##G>r;   zdata, na_valuer\   r   )r%   r   r%   r&   r%   )r   r%   r   r   r   )r%   r   r%   r   )rf    rf   rg   rf   ) rf   r%   r  rf   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%   rl   )rk   r   rk   r%   r(   )r   factorize_arrayr,   r-   r0   r1   r2   )r3   r   r  rb   r5   r7   rV   s          r8   $test_parametrized_factorize_na_value2TestFactorize.test_parametrized_factorize_na_value  sT     ..tGA<.@
##E:
##G>r;   zdata, uniques)rg   rf   Nrg   rg   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)r>   r[   )r%   r   rk   r%   r(   )r   r%   rk   r   )r   r/   r,   r-   r0   	safe_sortr1   r2   rA   ndarrayassert_extension_array_equal)r3   r>   r   r5   rb   rV   r7   s          r8   test_factorize_use_na_sentinel,TestFactorize.test_factorize_use_na_sentinel  s     $OXXm277CN$w7XXm277CN&
##E:dBJJ''''B++GFr;   )rf   Nrg   rf   r   r%   r&   r   r0   c                     [         R                  " [        R                  " U[        S9SS9u  pE[
        R                  " XSSS9  [
        R                  " XBSS9  g )Nr(   FrZ   T
strict_nan)r   r/   r,   r-   rH   r1   r2   r3   r   rV   r7   rb   r5   s         r8   +test_object_factorize_use_na_sentinel_false9TestFactorize.test_object_factorize_use_na_sentinel_false  sF    $ HHT(%
 	##G$O
##EdKr;   )r%   Nr%   r&   r   c                     [         R                  " USS9u  pE[        R                  " XSSS9  [        R                  " XBSS9  g )NFrZ   Tr  )r   r/   r1   r2   r  s         r8   (test_int_factorize_use_na_sentinel_false6TestFactorize.test_int_factorize_use_na_sentinel_false  s6    $ uE
##G$O
##EdKr;   )rf   rf   rg   )r   r   r%   category)
categoriesr)   2017
US/Easterntzc                     [         R                  " U5      u  pE[        R                  " XB5        [        R                  " XS5        g )N)r   r/   r1   r2   rM   r  s         r8   test_factorize_mixed_values)TestFactorize.test_factorize_mixed_values  s0    , .
##E:
g8r;   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   r,   r_   as_unitr   from_arraysr/   r)   r   tz_localize)r3   unitleftrightidxrb   catstsidx2codes2cats2idx3codes3cats3s                 r8    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Pr;   N)4__name__
__module____qualname____firstlineno__r9   rW   rc   rv   r}   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r,   r-   r  rH   r  r   NAr  r)   r_   r  r   r!  r   r   r0   r   r   r   r*  r>  __static_attributes__r  r;   r8   r"   r"   6   s   	?L<
9%2N, ,$>"?7	PP [[0 =4 <3
 .|=UV	
 E! E2	???????B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	
?? [[ .f=#s62
 !Qq)9!Qw/		
 -.  GG [[0 &RXXf-=>#rvvs+6: bffc3'RXXf-=>#rvvs+6:	
LL [[0 7RXXf-=>!RVVQs3 !RVVQ*"**=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r;   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S r\R,                  R/                  SS\R2                  " SS/\S94S\R2                  " 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#S#r$g$)%
TestUniquei(  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)r,   randomdefault_rngintegersr   rC   rA   r  r3   ru   r   s      r8   	test_intsTestUnique.test_ints)  sM    ii##A&//3R/@c"&"**----r;   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   rK  rL  rM  r   )	r,   rO  rP  rQ  rE   r   rC   rA   r  rR  s      r8   test_objectsTestUnique.test_objects/  sX    ii##A&//3R/@GGLc"&"**----r;   c                     [         R                  " / SQ[        S9n[        S5       H"  n[	        [
        R                  " U5      5        M$     g )N)ry   rz   CDEr(     )r,   r-   rH   r   r   r   rC   )r3   lstr   s      r8   test_object_refcount_bug#TestUnique.test_object_refcount_bug5  s2    hh0?tAS!" r;   c                    UR                  S5      n[        R                  " U5      n[        [        R                  UR                  5      5      n[        U[        5      (       a  [        R                  " X1R                  S9nOB[        X1R                  S9n[        UR                  [        5      (       a  UR                  5       n[        R                   " X$SS9  g )Nr&   )namesr(   Tr?   )repeatr   rC   rJ   dictfromkeysr`   rA   r   rB   ra  r   r)   r   	normalizer1   rM   )r3   rK   r   unique_valuesr   s        r8   test_index_returnedTestUnique.test_index_returned:  s    Qe$ T]]5<<89eZ((!--m;;OH]++>H%++77#--/
fd;r;   c           	      (   [         R                  " [        / S[        S9[        / SSS9/5      nUR	                  5       u  p#[
        R                  " / [
        R                  S9n[        R                  " X$5        [        R                  " X1S S 5        g )Nrf   )namer)   r   f4r(   r   )r   from_productr   rH   r/   r,   r-   r0   r1   r2   rM   )r3   mirb   r5   	exp_codess        r8   test_factorize_multiindex_empty*TestUnique.test_factorize_multiindex_emptyI  sq    $$2Cv.bs$0OP
 HHRrww/	
##E5
g"1v.r;   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&   r]   r^   r   TTFTF)ry   rz   rz   ry   rz   r(   )mr   )r1   BYTES_DTYPESSTRING_DTYPESr	   r   r   r.   r   r
   r   rC   r,   r-   rE   rH   r)   kindrA   r   r    r2   )r3   any_numpy_dtyper   r5   r   r   s         r8   test_dtype_preservation"TestUnique.test_dtype_preservationS  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5r;   c                    [         R                  " SS/SS9n[        / SQ5      n[        R                  " U5      n[        U5      n[
        R                  " X4SS9  [        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(   )r{  r|  r|  Tr?   )r,   r-   r   r   rC   r1   rM   r   r2   r)   r`   )r3   dt_arrdt_indexr   r   sru   s          r8   $test_datetime64_dtype_array_returned/TestUnique.test_datetime64_dtype_array_returnedx  s    // 
 
 h'v&
fd;8a
##F3||v||+++hhc"
##F3||v||+++r;   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  r,   r-   r   rC   r1   r2   r3   rf   r   r   s       r8   test_datetime_non_nsTestUnique.test_datetime_non_ns  sC    HH-_E188VV,OD
##F5r;   c                     [         R                  " / SQSS9n[        R                  " U5      n[         R                  " SS/SS9n[        R
                  " X#5        g )Nr  ztimedelta64[s]r(   i  i  r  r  s       r8   test_timedelta_non_ns TestUnique.test_timedelta_non_ns  sD    HH-5EF188T4L0@A
##F5r;   c                 @   [         R                  " / SQSS9n[        / SQ5      n[        R                  " U5      n[        U5      n[
        R                  " X45        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  )r,   r-   r   r   rC   r1   rM   r)   r   r2   r`   )r3   td_arrtd_indexr   r   r  ru   s          r8   %test_timedelta64_dtype_array_returned0TestUnique.test_timedelta64_dtype_array_returned  s    /x@ CDh''
f/||x~~---8a
##F3||v||+++hhc"
##F3||v||+++r;   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   r,   r   r-   r1   r2   r   rC   )r3   r  rt   s      r8   test_uint64_overflowTestUnique.test_uint64_overflow  s?    'ryy9hh}BII6
##ELLOS9r;   c                    S[         R                  SS/n[        R                  " [         R                  " U[
        S95      n[         R                  " S[         R                  S/[
        S9n[        R                  " X#5        g )Nrf   rh   r(   )r,   r_   r   rC   r-   rH   r1   r2   )r3   duplicated_itemsr   r   s       r8   test_nan_in_object_array#TestUnique.test_nan_in_object_array  sX    c2288$4FCD88S"&&#.f=
##F5r;   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  rj  r$  )
r   rJ   rC   r1   assert_categorical_equalr   r   r   r   rM   )r3   r   
expected_orh   r   r  cis          r8   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/r;   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   r/  r   rC   _datar1   r  rM   r   )r3   r2  dtira   r   r   s         r8   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/r;   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        [
        R                  " / SQ[        S9n[         R                  " U5      n[
        R                  " / S	Q[        S9n[        R                  " X5        [         R                  " [        [        [        S
5      5      5      5      n[        [        S5      5      n[        R                  " X5        g )N)r&   r%   rl   rl   )r&   r%   rl   r   r(   r&   r%   rj   )rf   rf   rg   rh   ri   aabcr  )r   rC   r   r1   r2   r,   r-   rH   r   rJ   r  )r3   r   r   r   s       r8   test_order_of_appearance#TestUnique.test_order_of_appearance  s     6,/0
##FBHHYg,NO61#a-01
##FBHHaV7,KLxx,F;488O6:
##F56+d6l";<=tE{+
##F5r;   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   dtr/  r   rC   r,   r-   r1   r2   )r3   r2  ra   r   r   s        r8   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5r;   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   r/  r   rC   r1   rM   )r3   r2  r  r   r   s        r8   test_order_of_appearance_dt64tz*TestUnique.test_order_of_appearance_dt64tz  sp    *6*6

 '$- 	 3 "#[m+LSW
 	f/r;   zarg ,expected)1r  2r  r  r(   )r  r  c                     [         R                  " U[        S9n[        R                  " U5      n[
        R                  " X25        g r   )r   r   rH   r   rC   r1   r2   )r3   argr   r   s       r8   test_tuple_with_strings"TestUnique.test_tuple_with_strings,  s1     ##Cv63
##F5r;   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  )r,   r-   rH   r   rC   r1   r2   r3   ru   r   r   s       r8   test_obj_none_preservation%TestUnique.test_obj_none_preservation9  sG    hht}F3388UDM8
##FFr;   c                     [         R                  " SS/5      n[        R                  " U5      n[         R                  " S/5      n[        R
                  " X#5        g )Ng       rq   r  r  s       r8   test_signed_zeroTestUnique.test_signed_zeroA  s?    HHdC[!188TF#
##F5r;   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packr,   r-   r   rC   r_   r1   r2   )r3   NAN1NAN2rf   r   r   s         r8   test_different_nansTestUnique.test_different_nansH  s     }}S&++d4F"GHK}}S&++d4F"GHK||||HHd\"188RVVH%
##F5r;   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  r,   r-   r   rC   rN  )	r3   r  bits_for_nan1bits_for_nan2r  r  rf   r   result_nan_bitss	            r8   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///r;   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%   )r,   r-   rH   r   rC   rN  )r3   unique_nulls_fixtureunique_nulls_fixture2rf   r   s        r8   test_do_not_mangle_na_values'TestUnique.test_do_not_mangle_na_valuese  sd    8HH*B&Q1{{at++++t,,,,r;   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&   rl   r(   )r   r   rF  rC   r-   r1   r  )r3   any_numeric_ea_dtypera   r   r   s        r8   test_unique_maskedTestUnique.test_unique_maskedo  sT    a]Q&.BC388QqM1EF
''9r;   c                     [         R                  " / SQ5      n[         R                  " U5      n[         R                  " / SQ5      n[        R                  " X#5        g )N)      ?      ?r&   rl   )r  r+   y      @        )r   r-   rC   r1   r  )r3   arr_complexr   r   s       r8   test_unique_NumpyExtensionArray*TestUnique.test_unique_NumpyExtensionArrayv  s@    hh
 ;'8845
''9r;   r  N)%r@  rA  rB  rC  rS  rV  r^  rg  ro  rx  r  r  r  r  r  r  r  r  r  r  r  r   rD  rE  r,   r-   rH   r  r  r  r  r   r  r  r  r  rG  r  r;   r8   rI  rI  (  s    ..#
</#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 -::r;   rI  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      )r,   rO  rP  rQ  r   nunique_intsr   rC   )index_or_series_or_arrayr`   r   r   s       r8   test_nunique_intsr    sY    %bii&;&;A&>&G&G2r&RSF'F5<<'(Hr;   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)r3   r   s     r8   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                 P   [         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                  " SS/[        S9n[         R                  " US/5      n[        R                  " SS/5      n[        R
                  " X5        [         R                  " [        U5      [        S/5      5      n[        R                  " SS/5      n[        R
                  " X5        [         R                  " [        U5      S15      n[        R                  " SS/5      n[        R
                  " X5        [         R                  " US/5      n[        R                  " SS/5      n[        R
                  " X5        g )Nr%   r&   TFrf   rg   r(   )r   r  r,   r-   r1   r2   r   rH   )r3   r   r   r  s       r8   rv   TestIsin.test_basic  s   BHHaV,qc288T5M*
##F5FAq6NQC088T5M*
##F5FAq6NFA3K888T5M*
##F5FAq6NQC088T5M*
##F5hhSz0C#'88T5M*
##F5F3K788T5M*
##F5F3K#/88T5M*
##F5C!%88UEN+
##F5r;   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   rl   periodsr   TFFr&   rr  r   )
r   r`   r   r  r,   r-   r1   r2   r   r   r  s       r8   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5r;   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-01rl   r  r  r(   )r   _valuesr   viewr-   rE   r   r  r,   zerosshaperG   r1   r2   )r3   r)   r  dtaru   compsr   r   s           r8   +test_isin_datetimelike_values_numeric_comps4TestIsin.test_isin_datetimelike_values_numeric_comps  s    
 q199SXXd^$**//7%%e,E'88EKKt4
##F5r;   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 r  )r  r   r   r&   r(   Tr%   )
r   r`   r   r  r,   r  r   rG   r1   r2   r3   r  r   r   s       r8   
test_largeTestIsin.test_large  s^    z7=DDA1v&88CF$/
##F5r;   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  rl   r  r  r   r  r(   )r   r  r   r  r-   r   r   r  r,   rG   r1   r2   )r3   r)   r  ru   r   r   s         r8   test_isin_datetimelike_all_nat'TestIsin.test_isin_datetimelike_all_nat  ss     q199SXXd^$**//6AC#'880=
##F5r;   )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[        R                  " X55      nUR                  5       (       a   e[        R                  " U[
        S9n[        R                  " X75      nUR                  5       (       a   eg s  snf r  )
r   r  r   r  r-   strr   r  anyr,   )	r3   r)   r  ru   r|   valsresvals2res2s	            r8   ,test_isin_datetimelike_strings_returns_false5TestIsin.test_isin_datetimelike_strings_returns_false  s     q199SXXd^$**//6 #$1A$jj#7799}S)zz#%88::~: %s   C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-  rl   UTCr  r(  r   r  r(   )r   r   r   r   r  r  r,   r-   rG   r1   r2   )r3   r  ra   r  rt   s        r8   test_isin_dt64tz_with_nat"TestIsin.test_isin_dt64tz_with_nat   sY     qU;SkAjjse,hh+48
##C-r;   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  ri   r%   r   )TTFT)	r,   r-   r   r   
from_codesr   r  r1   r2   )r3   r  r6  SdStr   r   s          r8   test_categorical_from_codes$TestIsin.test_categorical_from_codes  s    xx%K$//;<K$//!Q0@$GH8856B#
##H5r;   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#  )r,   r-   r   r$  r   r  r1   r2   )r3   r  r6  catotherr   r   s          r8   test_categorical_isinTestIsin.test_categorical_isin  s}    xx%1#))$5QC ++BHHaV,<dC8856C'
##H5r;   c                     [         R                  " [         R                  /[        S9n[         R                  /n[         R                  " S/5      n[        R
                  " X5      n[        R                  " X45        g )Nr(   T)r,   r-   r_   rH   r   r  r1   r2   r3   r	  r`   r   r   s        r8   test_same_nan_is_inTestIsin.test_same_nan_is_in  sQ     "&&0&&88TF#E*
##H5r;   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 Nr]   iAB r   r%   r(   )r,   tiler_   r   r  r-   onesr   rG   r1   r2   r  s       r8   test_same_nan_is_in_large"TestIsin.test_same_nan_is_in_large+  sb    GGC#vv!Arxx45773q6.
##F5r;   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 r3  )r,   r4  r   r_   r  r-   r5  r   rG   r1   assert_series_equal)r3   r  seriesr   r   s        r8    test_same_nan_is_in_large_series)TestIsin.test_same_nan_is_in_large_series3  sn    GGC#vv!RXXrvvqk23"''#a&56
v0r;   c                 j    " S S5      nU" 5       U" 5       p2[         R                  " U/[        S9n[        R                  " [
        R                  " XB/5      [         R                  " S/5      5        [        R                  " [
        R                  " XC/5      [         R                  " S/5      5        g )Nc                   (    \ rS rSrS\4S jrS rSrg)0TestIsin.test_same_object_is_in.<locals>.LikeNaniB  returnc                     g)NFr  )r3   r+  s     r8   __eq__7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__C  s    r;   c                     g)Nr   r  )r3   s    r8   __hash__9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__F  s    r;   r  N)r@  rA  rB  rC  rG   rB  rE  rG  r  r;   r8   LikeNanr?  B  s    t r;   rG  r(   TF)r,   r-   rH   r1   r2   r   r  )r3   rG  rf   rg   r  s        r8   test_same_object_is_inTestIsin.test_same_object_is_in<  sy    	 	 y')1hhs&) 	##EJJsC$8"((D6:JK
##EJJsC$8"((E7:KLr;   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 )Nr_   r   Tr(   )
floatr   r  r,   r-   r1   r2   rL   rH   r   )r3   r	  r`   r   s       r8   r  TestIsin.test_different_nansR  s     u,Qxvay((( BHHUOV4
##BHHdV$4f= JJuF+RZZf-M
 	##BHHdV$4f= JJuBJJ/F"**1U
 	##BHHdV$4f=r;   c                     [         R                  " SS/[        S9nS/n[         R                  " SS/5      n[        R                  " X5      n[
        R                  " X45        g )Nss*   r(   42F)r,   r-   rH   r   r  r1   r2   r/  s        r8   test_no_castTestIsin.test_no_castj  sM     $6288UEN+E*
##H5r;   emptyr(   c                     [        SS/5      n[        R                  " SS/5      n[        R                  " X!5      n[
        R                  " X45        g )Nrf   rg   F)r   r,   r-   r   r  r1   r2   )r3   rS  r  r   r   s        r8   
test_emptyTestIsin.test_emptyt  s@     c3Z 88UEN+D(
##H5r;   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 )Nr_                 ?r(   )FFT)	r,   r-   r_   rK  rH   r   r  r1   r2   )r3   r	  r  r   r   s        r8   test_different_nan_objects#TestIsin.test_different_nan_objects}  sf    %"eEl;6Jxxuf58801E(
##H5r;   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  r,   r-   r   r   r  r1   r2   )r3   r  r  ru   lookup1r   r   lookup2s           r8   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5r;   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 1r`   r%   r&   r  FN)r   r  r1   assert_frame_equalr3   dfr   expected_falses       r8   test_isin_int_df_string_search'TestIsin.test_isin_int_df_string_search  sG     1a&)*#"Huen#=>
f5r;   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 NaNr`   r&   NaNr(   FN)r   r,   r_   r  r-   rH   r1   ra  rb  s       r8   test_isin_nan_df_string_search'TestIsin.test_isin_nan_df_string_search  sW     2661+./5'89"Huen#=>
f5r;   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.4245r`   gn?g#Ed@z1.4245r(   FN)r   r  r,   r-   rH   r1   ra  rb  s       r8    test_isin_float_df_string_search)TestIsin.test_isin_float_df_string_search  sT     67"3458*F;<"Huen#=>
f5r;   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   r,   r   r  r1   r9  r3   ra   r   r   s       r8   test_isin_unsigned_dtype!TestIsin.test_isin_unsigned_dtype  s?    )*"))<./0%=
v0r;   r  N)#r@  rA  rB  rC  r  rv   r  r   rD  rE  r
  r  r  r  r   r'  r,  r0  r6  r;  rH  r  rQ  r   rH   r,   r-   rU  rY  r^  re  ri  rl  rp  rG  r  r;   r8   r  r    s,   
 6D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M,>06 [[Wr6+?"&NO6 P666,6661r;   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Srg)TestValueCountsi  c                    [         R                  R                  S5      R                  S5      n[	        US5      n[
        R                  " U5      n/ SQn[        R                  " U5      R                  [        SS95      n[        / SQUSS9n[        R                  " UR                  5       UR                  5       5        g )	Ni  rm   )gV-g}?5^Ig/$ۿgףp=
?gʡE?Tr  )r%   r   r&   r%   countrK   rj  )r,   rO  rP  standard_normalr   r   value_counts_internalr   from_breaksrE   r   r   r1   r9  
sort_index)r3   ru   factorr   breaksrK   r   s          r8   test_value_counts!TestValueCounts.test_value_counts  s    ii##D)99!<S! ,,V47))&1889IRV9WX,e'B
v002H4G4G4IJr;   c                 B   / SQn[         R                  " USS9n[        S/[        R                  " S/5      SS9n[
        R                  " X#5        [         R                  " USS	S
9n[        SS/[        R                  " SS/5      SS9n[
        R                  " X#5        g )N)r%   r&   rl   rm   r%   binsrm   )Zd;?ro   ru  rv  r&   F)r  r>   )r        @)r  ro   )r   rx  r   r   rB   r1   r9  r  s       r8   test_value_counts_bins&TestValueCounts.test_value_counts_bins  s    ,,QQ7C}00,@w
 	v0,,QQUCF++\:,FG

 	v0r;   c                     [         R                  " [        R                  " SS/5      5      n[	        U5      S:X  d   e[         R                  " [        R                  " SS/5      SS9n[	        U5      S:X  d   e[         R                  " [        / SQ5      5      n[	        U5      S:X  d   eSn[        R                  " [        US9   [         R                  " [        R                  " SS/[        S	9SS9  S S S 5        g ! , (       d  f       g = f)
Nr%   r]   r  )r%   r]   r  r&   z*bins argument only works with numeric datar   r  r(   )
r   rx  r,   r-   r   r   r   r   r   rH   )r3   r   r   s      r8   test_value_counts_dtypes(TestValueCounts.test_value_counts_dtypes  s    ,,RXXq#h-?@6{a,,RXXq#h-?aH6{a,,VM-BC6{a:]]9C0''#q(HqQ 100s   /C??
Dc                 0   [        [        R                  " S5      [        /SS9n[	        SS/5      nX4 HP  n[
        R                  " U5      n[
        R                  " USS9n[        U5      S:X  d   e[        U5      S	:X  a  MP   e   [        [        S
5      S0SS9n[
        R                  " U5      n[        R                  " Xv5        [        S/[        R                  " S5      /SS9n[
        R                  " U5      n	[        R                  " X5        g )Nr  timedelta64[ns]r(   r   z
2014-01-01Fdropnar%   r&   z2014-01-01 00:00:00ru  r  rv  )r   r,   timedelta64r   r   r   rx  r   r   r1   r9  )
r3   tdr  ra   vc
vc_with_naexp_dt	result_dtexp_td	result_tds
             r8   test_value_counts_nat%TestValueCounts.test_value_counts_nat  s    R^^E*C08IJ%./8C,,S1B44SGJr7a<<z?a'''	  #891=GL//3	
y1BNN5$9#:I//3	
y1r;   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(   rl   r&   r%   ru  rv  )r   r   value_countsr   r1   r9  )r3   r)   ra   r  	exp_indexrt   s         r8   &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(r;   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  ri   ru  rv  Tcheck_index_type)
r   r   rJ   r  r   r1   r9  r*  
as_orderedrK   r  s       r8   r   TestValueCounts.test_categorical  s    ;tH~./!-o>W
 	v$G EE!!224
v$Gr;   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%   )rm   rl   r&   ri   r  ru  rv  Tr  Fr  )rm   rl   r&   r%   rf   rg   rh   )rg   rf   rh   )r  r$  r  )
r   r   rJ   r,   r_   ilocr  r   r1   r9  r  s       r8   test_categorical_nans%TestValueCounts.test_categorical_nans  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$Gr;   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  )rl   r&   r%   r   )rg   rf   rh   r  ru  rv  r  )r   r   rJ   r  r1   r9  r  s       r8   test_categorical_zeroes'TestValueCounts.test_categorical_zeroesI  sa    ;tH~$v,PTUV!$ft 
 	v$Gr;   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 )Nrr  Tr  r&   r%   Fru  rv  rl   rj   r(   )rj   rl   r&   )TFN)皙$@rn   rn   rn   r  )r  rn   rn   N)r  r  rn   rn   rn   Nr  )rn   r  N)r1   r9  r   r  r   rH   )r3   r   r   s      r8   test_value_counts_dropna(TestValueCounts.test_value_counts_dropnaV  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0r;   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&   rl   rj   TF)re  r  )g      ?g333333?g?r^   r]   r(   
proportionrv  g333333?g?)r   r,   r_   rE   r  r1   r9  )r3   r)   r  s_typedr   r   s         r8   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0r;   c                 j   [         R                  " S/[         R                  S9n[        S/S/SS9n[        R
                  " U5      n[        R                  " X25        [         R                  " SS/[        S9n[        SS/SS/SS9n[        R
                  " U5      n[        R                  " X25        g )Nr   r(   r%   ru  rv  rk   )	r,   r-   r   r   r   rx  r1   r9  rH   )r3   ru   r   r   s       r8   test_value_counts_uint64(TestValueCounts.test_value_counts_uint64  s    hhwbii01#eW7;,,S1
v0hhE{&11a&U'B,,S1
v0r;   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 )Nrl   r%   r&   rm   r  )r&   r&   r%   ))r  r^   )r^   rp   )rp   ro   zinterval[float64, right]r(   ru  rv  )	r,   r-   r_   r   r  r   rB   r1   r9  )r3   r`   r   r   s       r8   test_value_counts_series(TestValueCounts.test_value_counts_series  sn    1aAq"&&12,,!,4++6>X 
 	v0r;   c                    [         R                  R                  S5      R                  SSS5      n[        R
                  " USS9n[        U5      R                  SS9nUR                  SSS	9n[        R                  " X$5        UR                  SS
S	9n[        R                  " [        5         [        R                  " X%5        S S S 5        g ! , (       d  f       g = f)Nr&   r       @   Tr=   Fstable)	ascendingrv  	quicksort)r,   rO  rP  rQ  r   rx  r   r  rI   r1   r9  r   r   AssertionError)r3   ru   r   r  r   unstable_sorteds         r8   test_value_counts_stability+TestValueCounts.test_value_counts_stability  s    ii##A&//2r:,,St<c{//U/;++e(+K
v0&22U2U]]>*""6; +**s   .C
Cr  N)r@  rA  rB  rC  r}  r  r  r  r   rD  rE  rH   r  r  r  r  r  r,   r   r  r  r  r  rG  r  r;   r8   rs  rs    s    	K1 R2$ [[Wvx&89) :).H)HVH$1L [[Wrzz68&DE1 F1$11<r;   rs  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           	      @   [         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-  SS9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   T)strictrm   )r,   r-   r_   rH   r   
duplicatedr1   r2   rS  	enumeratezip)r3   keysr   r   r   tfalsestruess           r8   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,FtT
DA G

 !!$'1
88FN+
##F5!!$V488EN+
##F5!!$U388EM*
##F5r;   case)
r%   r&   r%   rj   rl   r&   rm   r%   rj      g?g@gffffff
@g@gffffff@)
r         @       @r        @      @y      @      @r  y      @      @r  r  y      @      @)
rf   rg   rf   erh   rg   r  rf   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(   )	r,   r-   r   r  r1   r2   r   r   r9  )
r3   r  	exp_firstexp_last	exp_false	res_firstres_last	res_falser5  r  s
             r8   test_numeric_object_likes(TestDuplicated.test_numeric_object_likes  s   0 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.?@ @r;   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'  rZ  r   r  r  r  r  r  Fr#  r(   )r,   r-   r   r   r   r   r   r  r1   r2   r   rH   r   r9  )r3   r  r  r  casesr  r  r  r  r  r  r  r5  r  s                 r8   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   rl   c                     UR                   SL d   e[        R                  " UR                  5       [        R
                  " / SQ5      5        g )NT)FFF)	is_uniquer1   r2   r  r,   r-   )r3   r  s     r8   test_unique_index TestDuplicated.test_unique_indexp  s5    ~~%%%
##DOO$5rxx@U7VWr;   zarr, uniques)r   r   r%   r%   r   r   r   r  r  r   )r   r  r  r   )rg   rh   rf   rg   r  r  r  r  )r	  rg   r&   rf   rl   r	  )r	  r  r  c                 l   [         R                  " [        U5      [        S9nX#S S & Sn[        R
                  " [        US9   [        R                  " U5        S S S 5        [        R                  " [        R                  " U[        S95      n[        R                  " XS5        g ! , (       d  f       NR= f)Nr(   [unique requires a Series, Index, ExtensionArray, np.ndarray or NumpyExtensionArray got listr   )r,   rS  r   rH   r   r   r   r   rC   r   r   r1   r2   )r3   ru   r5   r   r   r  s         r8   test_unique_tuples!TestDuplicated.test_unique_tuplesu  s}      88CL7/ 	 ]]9C0IIcN 1 ii--c@A
##C2 10s   B%%
B3zarray,expected)r  r   r%   rX        ?       @r  )r  y                r*   rX  r  c                    Sn[         R                  " [        US9   [        R                  " U5        S S S 5        [        R                  " [
        R                  " U5      5      n[        R                  " XB5        g ! , (       d  f       NO= f)Nr   r   )	r   r   r   r   rC   r,   r-   r1   r2   )r3   r-   r   r   r  s        r8   test_unique_complex_numbers*TestDuplicated.test_unique_complex_numbers  s\    / 	
 ]]9C0IIe 1 ii(
##C2 10s   A<<
B
r  N)r@  rA  rB  rC  r  r   rD  rE  r,   r-   r_   rH   r   r  r  r   r   r   r  r  r.   r  rG  r  r;   r8   r  r    s   %6N [[HH34HHc3RVVS#sCMNHH HHGvVHHC299U%	
.&A/.&APPEd [[VeI&6a8K%LMX NX [[ Q0
 AZ( 67UV
	
33  [[ 3?wO	
33r;   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(       rl   Tfracreplacedropr   r  r  )return_inverse)r   r)   r   Float64HashTabler,   r_   locPyObjectHashTabler   samplereset_indexr`   r   drop_duplicatesrC   r1   r2   )
r3   htabler   r   r  s_duplicatedexpected_uniqueresult_uniqueresult_inversereconstrs
             r8   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Br;   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  rl   Tr  r  r   )r   r)   r   r  r,   r_   r  r  r   r  r  r`   r   r   r/   r  r  r1   r2   )r3   r  r   r   r  r  na_maskr  r  r  result_reconstructexpected_reconstructs               r8   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Mr;   r  N)r@  rA  rB  rC  r   rD  rE  r   r  r,   r-   r   rH   StringHashTabler  rr   r   Int64HashTabler   UInt64HashTabler   r  r%  rG  ).0r   s   00r8   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	S	 r
\R
                  R                  S
\R                  \R                  /5      S 5       r\R
                  R                  S/ SQ5      S 5       rS r\R
                  R                   S 5       rSrg)TestRanki  ru   rn   r%   r&   rl   ro   c                 L   [         R                  " S5      n[        R                  " U5      n[        R                  " U5      ) n[
        R                  " U5      n[        R                  X'   UR                  U5      n[        R                  XS'   [        R                  " XE5        g )Nzscipy.stats)r   importorskipr,   r-   isfinitelibalgosrank_1dr{   rankdatar_   r1   assert_almost_equal)r3   ru   sp_statsr   r   rt   s         r8   test_scipy_compatTestRank.test_scipy_compat  sv     &&}5hhsmC  !!#&FF	$FF	
v+r;   c                    [         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(   rK  r   )	r,   r-   r   r   r   r   rankr1   r2   )r3   r   any_int_numpy_dtypert   r   ra   r   s          r8   rv   TestRank.test_basic  sa    hh1vRZZ0xxC(;<H%TlC
##F0r;   r)   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   )r,   r-   r   r   r1   r2   r   r8  )r3   r)   rt   r  s       r8   r  TestRank.test_uint64_overflow$  sB    hh1vRZZ0Au:U+
##EJJqM37r;   method)averageminmaxc                 (   [         R                  " SSS[         R                  S/[         R                  S9n[	        SSS[
        R                  S	/S
S9nUR                  [        5      n[        R                  " X1S9n[        R                  " XB5        g )Nro   r]   rp   r^   r(   g*"Fg3!ǻg{Q :g1A;-:Float64)r=  )r,   r-   r_   r   r   r   rF  rE   rH   r   r8  r1   r2   )r3   r=  rt   r  r   s        r8   test_rank_tiny_valuesTestRank.test_rank_tiny_values+  sr     hhS#rvvs32::F=-N
 HHVA-
##F0r;   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   )rm   rj   r  )r  r  	   z%Array with ndim > 2 are not supportedr   )r,   r-   r   r   r   r   r8  )r3   ru   r   s      r8   test_too_many_ndimsTestRank.test_too_many_ndims7  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&   )r,   rr   r   r8  r@  reshape)r3   r`   r   s      r8   test_pct_max_many_rowsTestRank.test_pct_max_many_rows>  sw     9%F-113{{9%--i;F-113{{r;   r  N)r@  rA  rB  rC  r   rD  rE  r,   r_   r5  rv   r   r   r  rC  rG  
single_cpurL  rG  r  r;   r8   r,  r,    s    [[VVRVVS#sBFFAq!RVVD"&&#sCAsBFFC	

,
,1 [[Wrzz299&=>8 ?8 [[X'@A	1 B	1 [[ r;   r,  c                       \ rS rSrS rS rS rS 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)TestModeiJ  c           	          [        / [        R                  [        / [        S9S9n[
        R                  " [        R                  " / 5      5      u  p#[        R                  " X!R                  5        g )Nr(   )r)   rK   )r   r,   r   r   intr   moder-   r1   r2   r`   r3   rt   r   _s       r8   test_no_modeTestMode.test_no_modeK  sE    Rrzzr1EFJJrxx|,	
##FJJ7r;   c                    S/nS/nS/nSS/n[        X1S9n[        X!S9n[        R                  " UR                  5      u  p[        R
                  " XR                  5        [        R                  " UR                  5       U5        [        XQS9n[        XAS9n[        R                  " UR                  5      u  p[        R
                  " XR                  5        [        R                  " UR                  5       U5        g )Nr%   r(   r   r   rS  r`   r1   r2   r9  
r3   r   
exp_singledata_single	exp_multi
data_multira   rt   r   rU  s
             r8   test_mode_singleTestMode.test_mode_singleP  s    S
cC	V
[=Z<JJszz*	
##FJJ7
sxxz3/Z<Y;JJszz*	
##FJJ7
sxxz3/r;   c                 J   [        S/[        S9n[        R                  " UR                  5      u  p#[
        R                  " X!R                  5        [        / SQ[        S9n[        R                  " UR                  5      u  p#[
        R                  " X!R                  5        g )Nr%   r(   ri   )r   rR  r   rS  r`   r1   r2   rH   rT  s       r8   test_mode_obj_intTestMode.test_mode_obj_intd  sh    aS$JJszz*	
##FJJ7_F3JJszz*	
##FJJ7r;   c                 8   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                  " UR                  5      u  p[        R
                  " XR                  5        [        R                  " UR                  5       U5        [        XQS9n[        XAS9n[        R                  " UR                  5      u  p[        R
                  " XR                  5        [        R                  " UR                  5       U5        g )Nr%   rj   r&   rl   r(   rY  rZ  s
             r8   test_number_modeTestMode.test_number_modem  s    S
cAga'F	S1WsQw&!q0
[=Z<JJszz*	
##FJJ7
sxxz3/Z<Y;JJszz*	
##FJJ7
sxxz3/r;   c                    S/nS/S-  S/S-  -   n[        USS9n[        USS9n[        R                  " UR                  5      u  pE[        R
                  " XAR                  5        [        R                  " UR                  5       U5        g )Nrg   rf   r&   rl   rh   r(   rY  )r3   rt   r   ra   r   rU  s         r8   test_strobj_modeTestMode.test_strobj_mode  ss    euqyC519$T%S$JJszz*	
##FJJ7
sxxz3/r;   r  c                 x   S/nS/S-  S/S-  -   n[        XAS9n[        X1S9n[        R                  " UR                  5      u  pgU(       a*  U[        L a!  [
        R                  " XcR                  5        O [
        R                  " XcR                  5        [
        R                  " UR                  5       U5        g )Nbarr  r&   rl   r(   )	r   r   rS  r`   r  r1   r  r2   r9  )r3   r  using_infer_stringrt   r   ra   r   rU  s           r8   test_strobj_multi_charTestMode.test_strobj_multi_char  s    gw{eWq[(T$S#JJszz*	")++FJJ?''

;
sxxz3/r;   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  rq  rp  r  rq  )r  rq  rp  r  rq  r   r1   r  r   rS  r`   r  r9  r3   rt   ra   s      r8   test_datelike_modeTestMode.test_datelike_mode  s    ?xP?xP
''

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

3::(>L
sxxz3/r;   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  rw  rx  2 minr   r   r   z-1 dayz-1 day 2 minry  ry  rr  rs  s      r8   test_timedelta_modeTestMode.test_timedelta_mode  s    4<MN4<MN
''

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

3::(>L
sxxz3/r;   c                 
   [        S/[        S9n[        / SQ5      n[        R                  " UR                  5      u  p4[
        R                  " X1R                  5        [
        R                  " UR                  5       U5        g )Nr  r(   )r%   r  r  )r   rH   r   rS  r`   r1   r2   r9  r3   rt   ra   r   rU  s        r8   test_mixed_dtypeTestMode.test_mixed_dtype  sW    eWF+&'JJszz*	
##FJJ7
sxxz3/r;   c                 n   [        S/[        R                  S9n[        / SQ[        R                  S9n[        R                  " UR
                  5      u  p4[        R                  " X1R
                  5        [        R                  " UR	                  5       U5        [        SS/[        R                  S9n[        SS/[        R                  S9n[        R                  " UR
                  5      u  p4[        R                  " X1R
                  5        [        R                  " UR	                  5       U5        g )Nr   r(   )r%   r   r   r%   )	r   r,   r   r   rS  r`   r1   r2   r9  r~  s        r8   r  TestMode.test_uint64_overflow  s    eWBII.&bii8JJszz*	
##FJJ7
sxxz3/aZryy1aZryy1JJszz*	
##FJJ7
sxxz3/r;   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%   rf   rf   rf   r  r%   r%   r&   rl   rl   rl   r   )r   r   rS  r  r1   r  )r3   rh   rt   r  s       r8   r  TestMode.test_categorical  s    AQinn&&
##C-&3%QH5Qinn&&
##C-(1a&Y7Qinn&&
##C-r;   c                    [        / SQ5      n[        / SQ[        R                  S9n[        R
                  " U5      u  p4[        R                  " X2R                  5        [        / SQ5      n[        S/[        S9n[        R
                  " U5      u  p4[        R                  " X2R                  5        [        / SQ5      n[        SS/[        R                  S9n[        R
                  " U5      u  p4[        R                  " X2R                  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(   r  rf   r  r%   rl   rz  r  TimedeltaIndexr   )r   r   r,   r   r   rS  r1   r2   r`   rH   r   r   AttributeError)r3   r5  rt   r   rU  s        r8   
test_indexTestMode.test_index  s    IYbhh/JJsO	
##FJJ7M"cU&)JJsO	
##FJJ7O$aV288,JJsO	
##FJJ7J#
 ]]>1ABJJsO CBBs   8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%   rl   r  r  r%   )r   rS  r1   r9  ro  s       r8   test_ser_mode_with_name TestMode.test_ser_mode_with_name  s5    YU+1#E*
v0r;   r  N)r@  rA  rB  rC  rV  r_  rb  re  rh  r   rD  rE  r  rH   rm  rt  r{  r  r  r  r  r  rG  r  r;   r8   rP  rP  J  sg    8
0(80&0 [[TC=10 200000. 01r;   rP  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   rl   rm   r   nsr&   r%   r   axisr  r(   )r,   rr   rE   r   r  rK  r)   typer   diffr5  r  r  r1   r2   Tr3   r)   ru   r   r   s        r8   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7r;   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-  rl   r.  r  z#cannot diff DatetimeArray on axis=1r   r%   r  )r   r  r   r   
ValueErrorr   r  )r3   r  r   s      r8   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   rk   rF   )r,   r-   r   r  r_   r1   r2   r  s        r8   test_diff_low_precision_int$TestDiff.test_diff_low_precision_int  sO    hhe4C#88RVVQ2q1C
##F5r;   r  N)r@  rA  rB  rC  r   rD  rE  r  r  r  rG  r  r;   r8   r  r    sY    [[Wx&:;8 <8' [[Wvw&786 96r;   r  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)rl   r%   rl   rm   )r&   rl   r%   r%   )rl   rl   r%   r%   rm   r&   )rA   r,   r  r   union_with_duplicatesr1   r2   r  )r  lvalsrvalsr   r   s        r8   test_union_with_duplicatesr    sp     |E|E$%H(BJJ'',,U:
##F5,,U:
''9r;   )Ar   r  numpyr,   r   pandas._libsr   r0  r   r   pandas.core.dtypes.commonr   r   r   r	   r
   pandas.core.dtypes.dtypesr   r   pandasr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr1   pandas.core.algorithmscore
algorithmspandas.core.arraysr   r    pandas.core.commoncommonr   r"   rI  r  r  rs  r  r  r,  rP  r  rD  rE  r-   r  r  r;   r8   <module>r     s	      
 
     (  & & !  oQ oQdT: T:n
q1 q1h	y< y<xq3 q3hYN YNx@ @Fk1 k1\6 6@ "((34
: 5
:r;   