
    Mh0                    "   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  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K/J*s  J0r1   " S S	5      r2 " S
 S5      r3S r4 " S S5      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;\Rx                  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)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexIntervalIndex
MultiIndexNaTPeriodPeriodIndexSeries	Timedelta	Timestampcut
date_rangetimedelta_rangeto_datetimeto_timedelta)DatetimeArrayTimedeltaArrayc                   	   \ rS rSrS r\R                  R                  SSS/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Q/ SQ/ SQ4/ SQ/ SQ/ SQ4/ SQ/ SQ/ SQ4/5      S 5       rS rS rS rS rS rS rS  rS! r\R                  R                  SSS/5      S" 5       r\R                  R                  SSS/5      S# 5       rS$ r\R                  R                  S%\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S04\R>                  " / S1QS'S(9S24\R>                  " / S3QS*S(9S44\R>                  " / S5QS*S(9S24\R>                  " / S6Q\!S(9S74\R>                  " / S8Q\!S(9S94\R>                  " / S:Q\!S(9S;4/5      S< 5       r"\R                  R                  SSS/5      \R                  R                  S=\R>                  " / S>Q\!S(9\R>                  " S?S7/\!S(94\#R>                  " S@S2\RH                  S@/SAS(9\#R>                  " S@S2/SAS(94/SBSC/SD9SE 5       5       r%\R                  R                  S/ SFQ\R>                  " / SGQ\RL                  " SH5      S(9\R>                  " S7\RH                  S?/\!S(94S7\RH                  S?S7/\R>                  " / SGQ\RL                  " SH5      S(9\R>                  " S7\RH                  S?/\!S(94/5      SI 5       r'\R                  R                  S/ SJQ\R>                  " / S/Q\RL                  " SH5      S(9\R>                  " S2\RH                  S@/SKS(94S2\RH                  S2S@/\R>                  " / S/Q\RL                  " SH5      S(9\R>                  " S2\RH                  S@/\RP                  S(94/5      SL 5       r)\R                  R                  S\*" \+" / SMQ5      5      \R>                  " / SNQ\RX                  S(9\-" S7S?/S7S?/SOSP94\." \+" / SMQ5      5      \R>                  " / SNQ\RX                  S(9\-" S7S?/S7S?/SOSP94\." \/" SQSQ/SRSS95      \R>                  " S0S0/\RX                  S(9\/" SQ/SRSS94/5      ST 5       r0SU r1S9r2gV)WTestFactorize3   c                    / SQnSn[         R                  " [        US9   [        R                  " U5      u  p4S S S 5        [
        R                  " / SQ[
        R                  S9n[         R                  " WU5        [
        R                  " / SQ[        S9n[         R                  " WU5        g ! , (       d  f       N}= f)N)             @      ?0factorize with argument that is not not a Seriesmatch)r   r$   r%   dtype)      ?        y       @        r&   )
tmassert_produces_warningFutureWarningr   	factorizenparrayintpassert_numpy_array_equalobject)selfr2   msglabelsuniquesexpected_labelsexpected_uniquess          I/var/www/html/env/lib/python3.13/site-packages/pandas/tests/test_algos.pytest_factorize_complex$TestFactorize.test_factorize_complex4   s    @''SA#ooe4OF B ((9BGG<
##FO< 88$B&Q
##G-=> BAs   B00
B>sortTFc                    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r?   r*   Texact)r0   r   
isinstancer   from_tuplesuniquer+   r1   float16astypefloat32boolr5   sort_valueslistindexasarrayr3   r-   r4   assert_index_equal)r6   index_or_series_objr?   objresult_codesresult_uniquesconstructorexpected_arrr;   expected_uniques_listvalexpected_codess               r<   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*         ?       @)
r1   r2   nanr   r0   r3   r   r-   r4   rO   )r6   valuessercodesr9   rX   r;   s          r<   +test_series_factorize_use_na_sentinel_false9TestFactorize.test_series_factorize_use_na_sentinel_falsea   s~    1aBFF+,Vnu=,bgg> #sBFF!34
##E:
g8    c                    [         R                  " / SQ[        S9n[        R                  " U5      u  p#[
        R                  " U[         R                  " / SQ[        S95        [        R                  " USS9u  p#[         R                  " / SQ[         R                  S9n[
        R                  " X$5        [         R                  " / SQ[        S9n[
        R                  " X45        [         R                  " S[         R                  S9S S S2   n[        R                  " U5      u  p#[         R                  " / S	Q[         R                  S9n[
        R                  " X$5        [         R                  " / S
QUR                  S9n[
        R                  " X45        [        R                  " USS9u  p#[         R                  " / S
Q[         R                  S9n[
        R                  " X$5        [         R                  " / S	QUR                  S9n[
        R                  " X45        [         R                  " S5      S S S2   n[        R                  " U5      u  p#[         R                  " / S	Q[         R                  S9n[
        R                  " X$5        [         R                  " / SQUR                  S9n[
        R                  " X45        [        R                  " USS9u  p#[         R                  " / S
Q[         R                  S9n[
        R                  " X$5        [         R                  " / SQUR                  S9n[
        R                  " X45        g )N)abrj   ri   ri   crk   rk   r*   ri   rj   rk   TrA   )r   r$   r$   r   r   r%   r%   r%      )r   r$   r%         )rp   ro   r%   r$   r         @)      @      @r`   r_           )rt   r_   r`   rs   rr   )
r1   r2   r5   r   r0   r-   r4   r3   aranger+   )r6   itemsrd   r9   exparrs         r<   
test_basicTestFactorize.test_basicm   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1rg   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   rn   r$   r%   ro   r*   TrA   )r%   r%   rn   ro   r   r$   )r   r1   ra   infr   r0   r2   r3   r-   r4   r   rO   )r6   xrd   r9   rw   s        r<   
test_mixedTestFactorize.test_mixed   s    Cbffc489+hh*"'':
##E/S#tRVV,-
g+6hh*"'':
##E/T2663,-
g+rg   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*   TrA   )r$   r$   r$   r   r   r$   )r   r   r   r0   r1   r2   r3   r-   r4   r   rO   r6   v1v2r   rd   r9   rw   s          r<   test_factorize_datetime64'TestFactorize.test_factorize_datetime64   s    01z"BBB+,+hh)9
##E/RH%
g+6hh)9
##E/RH%
g+rg   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*   TrA   )r   r   r   r0   r1   r2   r3   r-   r4   rO   r   r   s          r<   test_factorize_period#TestFactorize.test_factorize_period   s    H3'H3'BBB+, +hh)9
##E/
g{B8'<=6hh)9
##E/
g{B8'<=rg   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*   TrA   )r$   r   r$   r$   r   r   r$   )
r   r   r   r0   r1   r2   r3   r-   r4   rO   r   s          r<   test_factorize_timedelta&TestFactorize.test_factorize_timedelta   s    -('"BBBB/0+hh,BGG<
##E/
g|RH'=>6hh,BGG<
##E/
g|RH'=>rg   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*   )rn      )na_sentinelr   )r1   r2   ra   htObjectFactorizerlenr0   r3   setr-   r4   pdisna)r6   keyrizerr   idsexpecteds         r<   test_factorize_nan TestFactorize.test_factorize_nan   s     hh1a(4##CH-#K//#/?CxxAq+ 6bggFHs3x=CH$6666''h6MN''6 $rg   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%   ro   r$   r$   r   int64r*   )FFFFFT)mask)r   r$   r%   r   r   rn   r$   r%   ro   )r1   r2   r   Int64Factorizerr   r0   r3   r-   r4   r9   to_array)r6   datar   r   resultr   r;   s          r<   test_factorizer_with_mask'TestFactorize.test_factorizer_with_mask   s    xx*':xxAB""3t9-188/rww?
##F588IW=
##EMM$:$:$<>NOrg   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%   ro   )r   r$   r%   r   rn   r*   r   )r1   r2   ra   r   r   r   r0   rH   r5   r3   r-   r4   r9   r   )r6   r   r   r   r   r;   s         r<   test_factorizer_object_with_nan-TestFactorize.test_factorizer_object_with_nan   s    xxAq!RVV,-##CI.V!4588,BGG<
##F588IV<
##EMM$:$:$<>NOrg   z&data, expected_codes, expected_uniques)r$   r$   r$   r%   r   r   r   nonsense)r   r$   r%   r$   ro   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r$   r%   r$   )r   r   r   c                 n   Sn[         R                  " [        US9   [        R                  " U5      u  pVS S S 5        [         R
                  " W[        R                  " U[        R                  S95        [        R                  " U[        S9n[         R
                  " WU5        g ! , (       d  f       Nw= f)Nr'   r(   r*   )r-   r.   r/   r   r0   r4   r1   r2   r3   comasarray_tuplesafer5   )r6   r   rX   r;   r7   rd   r9   expected_uniques_arrays           r<   test_factorize_tuple_list'TestFactorize.test_factorize_tuple_list   s    $ A''SA\\$/NE B 	##E288N"''+RS!$!6!67Gv!V
##G-CD BAs   B&&
B4c                 &   [         R                  " [        S5       Vs/ s H  n[        U5      PM     sn[        S9nSn[
        R                  " [        US9   [        R                  " US S S2   SS9  S S S 5        g s  snf ! , (       d  f       g = f)N   r*   z,'[<>]' not supported between instances of .*r(   rn   TrA   )
r1   r2   rangecomplexr5   pytestraises	TypeErrorr   r0   )r6   ix17r7   s       r<   test_complex_sorting"TestFactorize.test_complex_sorting  sh    hhE"I6Iq
I6fE<]]9C0OOC"ID1 10 7 10s   A=B
Bc                 6   Un[         R                  " / SQUS9n[         R                  " / SQ[         R                  S9n[         R                  " SS/US9n[        R                  " U5      u  pg[
        R                  " Xd5        [
        R                  " Xu5        g )N)r$   r%   r%   r$   r*   )r   r$   r$   r   r$   r%   )r1   r2   r3   r   r0   r-   r4   )r6   any_real_numpy_dtyper+   r   rX   r;   rd   r9   s           r<   test_numeric_dtype_factorize*TestFactorize.test_numeric_dtype_factorize  sl    $xxE2,bgg>88QF%8.
##E:
##G>rg   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   )	r1   r2   float64setflagsr3   r   r0   r-   r4   r6   writabler   rX   r;   rd   r9   s          r<   test_float64_factorize$TestFactorize.test_float64_factorize&  s|    xx7rzzJH%"4BGGD88$4BJJG.
##E:
##G>rg   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$   )	r1   r2   uint64r   r3   r   r0   r-   r4   r   s          r<   test_uint64_factorize#TestFactorize.test_uint64_factorize0  s~    xx1CH%)277;88YN"))D.
##E:
##G>rg   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   )	r1   r2   r   r   r3   r   r0   r-   r4   r   s          r<   test_int64_factorize"TestFactorize.test_int64_factorize:  s    xx8IH%)277;88Y$9J.
##E:
##G>rg   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)ri   rk   ri   rj   rk   r*   r   )r   r$   r   r%   r$   ri   rk   rj   )	r1   r2   r5   r   r3   r   r0   r-   r4   r   s          r<   test_string_factorize#TestFactorize.test_string_factorizeD  sr    xx1@H%/A88O6B.
##E:
##G>rg   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 )Nri   rk   rj   r*   r   )r   r$   rn   rn   r   r%   rn   r$   r   )r1   r2   ra   r   r5   r   r3   r   r0   r-   r4   r   s          r<   test_object_factorize#TestFactorize.test_object_factorizeN  s    xxc4c3DFSH%"=RWWM88O6B.
##E:
##G>rg   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])	r1   r2   
datetime64r   r3   r   r0   r-   r4   r   s          r<   test_datetime64_factorize'TestFactorize.test_datetime64_factorizeX  s    xx'@AB(SH%1#RWW588,-5E
 d+
##E:
##G>rg   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*   rA   r   r$   TrB   r   
RangeIndex
from_ranger   r1   ru   r3   r   r0   r-   r4   rO   )r6   r?   rir   r   s        r<   test_factorize_rangeindex'TestFactorize.test_factorize_rangeindexe  s     ]]%%eBi099Rrww/3/
##F1Ix{;
fQi!DA4(
##F1Ix{;
fQi!DArg   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*   rn   r   r$   rA   TrB   r   )r6   r?   r   r   ri2r   s         r<   $test_factorize_rangeindex_decreasing2TestFactorize.test_factorize_rangeindex_decreasings  s     ]]%%eBi099Rrww/32hA;#{4R4((1+dd*;;H0
##F1Ix{;
fQi!DAD)
##F1Ix{;
fQi!DArg   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)
r1   r2   r   r   r   r   r   r0   r-   r.   )r6   r   s     r<   test_deprecate_order"TestFactorize.test_deprecate_order  so     xx);]]9,GHOOD- I''.OOD! /. IH..s   B3B$
B!$
B2r   r   u8r*   )r   r$   r   i8)__nan__foor  r5   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   r0   r1   r2   r3   r-   r4   )r6   r   rd   r9   r;   rX   s         r<   ,test_parametrized_factorize_na_value_default:TestFactorize.test_parametrized_factorize_na_value_default  sR     .A<)277;
##E:
##G>rg   zdata, na_valuer^   r   )r$   r   r$   r%   r$   )r   r$   r   r   r   )r$   r   r$   r   )ri    ri   rj   ri   ) ri   r$   r  ri   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$   ro   )rn   r   rn   r$   r*   )r   factorize_arrayr1   r2   r3   r-   r4   )r6   r   r  rd   r9   r;   rX   s          r<   $test_parametrized_factorize_na_value2TestFactorize.test_parametrized_factorize_na_value  sT     ..tGA<.@
##E:
##G>rg   zdata, uniques)rj   ri   Nrj   rj   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   rn   r$   r*   )r   r$   rn   r   )r   r0   r1   r2   r3   	safe_sortr-   r4   rD   ndarrayassert_extension_array_equal)r6   r?   r   r9   rd   rX   r;   s          r<   test_factorize_use_na_sentinel,TestFactorize.test_factorize_use_na_sentinel  s      $OXXm277CN$w7XXm277CN&
##E:dBJJ''''B++GFrg   )ri   Nrj   ri   r   r$   r%   r   r3   c                     [         R                  " [        R                  " U[        S9SS9u  pE[
        R                  " XSSS9  [
        R                  " XBSS9  g )Nr*   Fr\   T
strict_nan)r   r0   r1   r2   r5   r-   r4   r6   r   rX   r;   rd   r9   s         r<   +test_object_factorize_use_na_sentinel_false9TestFactorize.test_object_factorize_use_na_sentinel_false  sF    $ HHT(%
 	##G$O
##EdKrg   )r$   Nr$   r%   r   c                     Sn[         R                  " [        US9   [        R                  " USS9u  pVS S S 5        [         R
                  " WUSS9  [         R
                  " WUSS9  g ! , (       d  f       N;= f)Nr'   r(   Fr\   Tr  )r-   r.   r/   r   r0   r4   )r6   r   rX   r;   r7   rd   r9   s          r<   (test_int_factorize_use_na_sentinel_false6TestFactorize.test_int_factorize_use_na_sentinel_false  sc    $ A''SA"__T5INE B 	##G-=$O
##E>dK	 BAs   A))
A7)ri   ri   rj   )r   r   r$   category)
categoriesr+   2017
US/Easterntzc                     [         R                  " U5      u  pE[        R                  " XB5        [        R                  " XS5        g )N)r   r0   r-   r4   rO   r  s         r<   test_factorize_mixed_values)TestFactorize.test_factorize_mixed_values  s0    , .
##E:
g8rg   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   r1   ra   as_unitr   from_arraysr0   r+   r   tz_localize)r6   unitleftrightidxrd   catstsidx2codes2cats2idx3codes3cats3s                 r<    test_factorize_interval_non_nano.TestFactorize.test_factorize_interval_non_nano  s'   lBFFLABJJ4P|RVV\BCKKDQ''4mmozz3D6CCCCq\!!$'((EJ?({{ 5dV9EEEE((\*E,=,=l,K
 ({{ 4TF:OPPPPrg   N)3__name__
__module____qualname____firstlineno__r=   r   markparametrizerY   re   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r2   r  r5   r  r   ra   r  r+   r  r   r   r   r   r3   r   r   r   r)  r=  __static_attributes__r  rg   r<   r!   r!   3   sA   ? [[VdE]3L 4L<
9%2N, ,$>"?7	PP [[0 =4 <3
 .|=UV	
 	E! 	E2	??????? [[VdE]3B 4B [[VdE]3B 4B$" [[HHYd+HH,D9HH2(C	
?? [[XXl$/3XXl$/3XX0=xHXX)6:XX)8#>XX2&A2FXX8GR	
?? [[VdE]3[[ .f=#s62
 !Q*':!Qw/		
 -.  G 4G [[0 &RXXf-=>#rvvs+6: bffc3'RXXf-=>#rvvs+6:	
LL [[0  RXXf-=>!RVVQs3 BFFAq!RXXf-=>!RVVQrzz:	
LL [[0 k/23"''2 #sc
*U {?34"''2 #sc
*U }ff%5,GH!Qrww/vh<8	
(9)(9Qrg   r!   c            
          \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS r\R*                  R-                  SS\R0                  " SS/\S94S\R0                  " S/\S94/5      S 5       rS rS rS r\R*                  R-                  S\R<                  \/5      S 5       rS r S  r!S!r"g")#
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)r1   randomdefault_rngintegersr   rF   rD   r  r6   rx   r   s      r<   	test_intsTestUnique.test_ints0  sM    ii##A&//3R/@c"&"**----rg   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   rI  rJ  rK  r   )	r1   rM  rN  rO  rH   r   rF   rD   r  rP  s      r<   test_objectsTestUnique.test_objects6  sX    ii##A&//3R/@GGLc"&"**----rg   c                     [         R                  " / SQ[        S9n[        S5       H"  n[	        [
        R                  " U5      5        M$     g )N)r|   r}   CDEr*     )r1   r2   r5   r   r   r   rF   )r6   lstr   s      r<   test_object_refcount_bug#TestUnique.test_object_refcount_bug<  s2    hh0?tAS!" rg   c                    [         R                  " [        R                  " S5      R	                  S5      [        R
                  " [        R                  " S5      S5      /5      nUR                  nUR                  5         UR	                  S5      n[        R                  " U5      nUR                  5         [        R                  " X25        g )Nrm   r%   )r   r/  r1   ru   repeattilerb   r?   r   rF   r-   assert_almost_equal)r6   mindexr   r   s       r<   test_on_index_objectTestUnique.test_on_index_objectA  s    ''YYq\  #RWWRYYq\1%=>
 ==q!6"
v0rg   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)r|   r}   r}   r|   r}   r*   )mr   )r-   BYTES_DTYPESSTRING_DTYPESr	   r   r   r   r   r
   r   rF   r1   r2   rH   r5   r+   kindrD   r   r   r4   )r6   any_numpy_dtyper   r9   r   r   s         r<   test_dtype_preservation"TestUnique.test_dtype_preservationO  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5rg   c                 *   [         R                  " SS/SS9n[        / SQ5      n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   e[        U5      n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   eUR                  n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   eg )N2015-01-03T00:00:00.0000000002015-01-01T00:00:00.000000000r   r*   )ro  rp  rp  )
r1   r2   r   r   rF   r-   r4   r+   r   rb   )r6   r   dt_indexr   srx   s         r<   $test_datetime64_dtype_array_returned/TestUnique.test_datetime64_dtype_array_returnedt  s    88// 
 
 h'
##F5||x~~---8a
##F5||x~~---hhc"
##F5||x~~---rg   c                     [         R                  " / SQSS9n[        R                  " U5      n[         R                  " SS/SS9n[        R
                  " X#5        g )N2000rw  2001zdatetime64[s]r*   rw  rx  r1   r2   r   rF   r-   r4   r6   ri   r   r   s       r<   test_datetime_non_nsTestUnique.test_datetime_non_ns  sC    HH-_E188VV,OD
##F5rg   c                     [         R                  " / SQSS9n[        R                  " U5      n[         R                  " SS/SS9n[        R
                  " X#5        g )Nrv  ztimedelta64[s]r*   i  i  ry  rz  s       r<   test_timedelta_non_ns TestUnique.test_timedelta_non_ns  sD    HH-5EF188T4L0@A
##F5rg   c                 *   [         R                  " / SQSS9n[        / SQ5      n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   e[        U5      n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   eUR                  n[        R                  " U5      n[
        R                  " X15        UR                  UR                  :X  d   eg )N)y  n  '  m8[ns]r*   )r  r  r  r  r  )
r1   r2   r   r   rF   r-   r4   r+   r   rb   )r6   r   td_indexr   rr  rx   s         r<   %test_timedelta64_dtype_array_returned0TestUnique.test_timedelta64_dtype_array_returned  s    881B CDh'
##F5||x~~---8a
##F5||x~~---hhc"
##F5||x~~---rg   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   r1   r   r2   r-   r4   r   rF   )r6   rr  rw   s      r<   test_uint64_overflowTestUnique.test_uint64_overflow  s?    'ryy9hh}BII6
##ELLOS9rg   c                    S[         R                  SS/n[        R                  " [         R                  " U[
        S95      n[         R                  " S[         R                  S/[
        S9n[        R                  " X#5        g )Nri   rk   r*   )r1   ra   r   rF   r2   r5   r-   r4   )r6   duplicated_itemsr   r   s       r<   test_nan_in_object_array#TestUnique.test_nan_in_object_array  sX    c2288$4FCD88S"&&#.f=
##F5rg   c                    [        [        S5      5      n[        [        S5      [        S5      SS9n[        [        S5      5      nUR                  5       n[        R                  " XA5        [
        R                  " U5      n[        R                  " XA5        [        [        S5      SS9nUR                  5       n[        R                  " XB5        [
        R                  " U5      n[        R                  " XB5        [        [        [        S5      5      SS9nUR                  5       n[        R                  " XA5        [        R                  " U5      n[        R                  " XA5        [        [        [        S5      [        S5      S	95      n[        U5      nUR                  5       n[        R                  " XA5        [        R                  " U5      n[        R                  " XA5        g )
NbacabcTr#  orderedbaabcr  r  namer#  )
r   rL   rF   r-   assert_categorical_equalr   r   r   r   rO   )r6   r   
expected_ork   r   rr  cis          r<   test_categoricalTestUnique.test_categorical  sV    tE{+ !eedS
 W&
##F5a
##F5Wt4
##F7a
##F7 ;tG}-E:
##F51
##F5 k$w-DKPQ#H-
f/2
f/rg   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   rF   _datar-   r  rO   r   )r6   r1  dtirc   r   r   s         r<   test_datetime64tz_aware"TestUnique.test_datetime64tz_aware  s     *6*6

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

 '$- 	 3 "#[m+LSW
 	f/rg   zarg ,expected)1r  2r  r  r*   )r  r  c                     Sn[         R                  " [        US9   [        R                  " U5      nS S S 5        [         R
                  " WU5        g ! , (       d  f       N&= fN-unique with argument that is not not a Seriesr(   r-   r.   r/   r   rF   r4   )r6   argr   r7   r   s        r<   test_tuple_with_strings"TestUnique.test_tuple_with_strings(  sF     >''SAYYs^F B
##FH5 BA   A
A!c                     [         R                  " SS /[        S9n[        R                  " U5      n[         R                  " SS /[        S9n[
        R                  " X#SS9  g )Nr  r*   Tr  )r1   r2   r5   r   rF   r-   r4   r6   rx   r   r   s       r<   test_obj_none_preservation%TestUnique.test_obj_none_preservation6  sG    hht}F3388UDM8
##FFrg   c                     [         R                  " SS/5      n[        R                  " U5      n[         R                  " S/5      n[        R
                  " X#5        g )Ng       rt   ry  rz  s       r<   test_signed_zeroTestUnique.test_signed_zero>  s?    HHdC[!188TF#
##F5rg   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packr1   r2   r   rF   ra   r-   r4   )r6   NAN1NAN2ri   r   r   s         r<   test_different_nansTestUnique.test_different_nansE  s     }}S&++d4F"GHK}}S&++d4F"GHK||||HHd\"188RVVH%
##F5rg   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  r1   r2   r   rF   rL  )	r6   r  bits_for_nan1bits_for_nan2r  r  ri   r   result_nan_bitss	            r<   test_first_nan_keptTestUnique.test_first_nan_keptQ  s     +*}}S&++dM"BCAF}}S&++dM"BCAF||||HHd\11{{a --fkk#vay.IJ1M///rg   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$   )r1   r2   r5   r   rF   rL  )r6   unique_nulls_fixtureunique_nulls_fixture2ri   r   s        r<   test_do_not_mangle_na_values'TestUnique.test_do_not_mangle_na_valuesb  sd    8HH*B&Q1{{at++++t,,,,rg   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%   ro   r*   )r   r   NArF   r2   r-   r  )r6   any_numeric_ea_dtyperc   r   r   s        r<   test_unique_maskedTestUnique.test_unique_maskedl  sT    a]Q&.BC388QqM1EF
''9rg   r  N)#r?  r@  rA  rB  rQ  rT  r\  rc  rl  rs  r{  r~  r  r  r  r  r  r  r  r  r   rC  rD  r1   r2   r5   r  r  r  r  r   r  r  r  rE  r  rg   r<   rG  rG  /  s    ..#
1#6J.>66.&:
6'0R066(60 [[bhhSz@Arxxv67	
66G6
6 [[YV(<=0 >0 -:rg   rG  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      )r1   rM  rN  rO  r   nunique_intsr   rF   )index_or_series_or_arrayrb   r   r   s       r<   test_nunique_intsr  t  sY    %bii&;&;A&>&G&G2r&RSF'F5<<'(Hrg   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)r6   r7   s     r<   test_invalidTestIsin.test_invalid}  s    " 	 ]]9C0JJq! 1]]9C0JJq1# 1]]9C0JJsA 10	 100000s#   B1CC1
B?
C
C!c                    Sn[         R                  " [        US9   [        R                  " SS/S/5      nS S S 5        [
        R                  " SS/5      n[         R                  " WU5        [        R                  " [
        R                  " SS/5      S/5      n[
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      S/5      n[
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      [        S/5      5      n[
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      S15      n[
        R                  " SS/5      n[         R                  " X#5        [         R                  " [        US9   [        R                  " SS/S/5      nS S S 5        [
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      [        S/5      5      n[
        R                  " SS/5      n[         R                  " X#5        [        R                  " [        SS/5      S15      n[
        R                  " SS/5      n[         R                  " X#5        [         R                  " [        US9   [        R                  " SS/S/5      nS S S 5        [
        R                  " SS/5      n[         R                  " X#5        g ! , (       d  f       GN= f! , (       d  f       GNe= f! , (       d  f       Na= f)	N+isin with argument that is not not a Seriesr(   r$   r%   TFri   rj   )	r-   r.   r/   r   r  r1   r2   r4   r   )r6   r7   r   r   s       r<   ry   TestIsin.test_basic  sw   ;''SAZZA,F B88T5M*
##FH5BHHaV,qc288T5M*
##F5FAq6NQC088T5M*
##F5FAq6NFA3K888T5M*
##F5FAq6NQC088T5M*
##F5''SAZZc
SE2F B88T5M*
##F5FC:.u>88T5M*
##F5FC:.688T5M*
##F5''SAZZc
QC0F B88UEN+
##F5K BA* BA BAs#   MM4M*
M
M'*
M8c                    [        SSS9R                  n[        R                  " XS   /5      n[        R
                  " / SQ5      n[        R                  " X#5        [        R                  " XSS 5      n[        R
                  " / SQ5      n[        R                  " X#5        [        R                  " U[        USS 5      5      n[        R
                  " / SQ5      n[        R                  " X#5        [        SSS9R                  n[        R                  " XS   /5      n[        R
                  " / SQ5      n[        R                  " X#5        [        R                  " XSS 5      n[        R
                  " / SQ5      n[        R                  " X#5        [        R                  " U[        USS 5      5      n[        R
                  " / SQ5      n[        R                  " X#5        g )	Nr   ro   periodsr   TFFr%   rf  r   )
r   rb   r   r  r1   r2   r-   r4   r   r   r  s       r<   test_i8TestIsin.test_i8  sX   Q/66Ca&*8801
##F5CQq*88/0
##F5CS1X/88/0
##F5gq188Ca&*8801
##F5CQq*88/0
##F5CS1X/88/0
##F5rg   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-01ro   r  r   r*   )r   _valuesr   viewr2   rH   r   r  r1   zerosshaperJ   r-   r4   )r6   r+   r  dtarx   compsr   r   s           r<   +test_isin_datetimelike_values_numeric_comps4TestIsin.test_isin_datetimelike_values_numeric_comps  s    
 q199SXXd^$**//7%%e,E'88EKKt4
##F5rg   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 rr  )r  r   r   r%   r*   Tr$   )
r   rb   r   r  r1   r  r   rJ   r-   r4   r6   rr  r   r   s       r<   
test_largeTestIsin.test_large  s^    z7=DDA1v&88CF$/
##F5rg   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  ro   r  r   r   r  r*   )r   r  r   r  r2   r   r   r  r1   rJ   r-   r4   )r6   r+   r  rx   r   r   s         r<   test_isin_datetimelike_all_nat'TestIsin.test_isin_datetimelike_all_nat  ss     q199SXXd^$**//6AC#'880=
##F5rg   )r  r   r  c                    [        SSS9R                  n[        UR                  S5      5      R                  R                  U5      nU Vs/ s H  n[        U5      PM     nnSn[        R                  " [        US9   [        R                  " X55      nS S S 5        WR                  5       (       d   e[        R                  " U[
        S9n[        R                  " [        US9   [        R                  " X85      n	S S S 5        W	R                  5       (       d   eg s  snf ! , (       d  f       N= f! , (       d  f       N<= f)Nr  ro   r  r   z2The behavior of 'isin' with dtype=.* is deprecatedr(   r*   )r   r  r   r  r2   strr-   r.   r/   r   r  allr1   )
r6   r+   r  rx   r   valsr7   resvals2res2s
             r<   )test_isin_datetimelike_strings_deprecated2TestIsin.test_isin_datetimelike_strings_deprecated  s     q199SXXd^$**//6 #$1A$B''SA**S'C BwwyyyS)''SA::c)D Bxxzzz %AA
 BAs   D>D"&D3"
D03
Ec                     [        SSSS9n[        U5      n[        US'   [        R                  " UR
                  [        /5      n[        R                  " / SQ[        S9n[        R                  " X45        g )Nr,  ro   UTCr  r'  r   r  r*   )r   r   r   r   r  r  r1   r2   rJ   r-   r4   )r6   r  rc   r  rw   s        r<   test_isin_dt64tz_with_nat"TestIsin.test_isin_dt64tz_with_nat  sY     qU;SkAjjse,hh+48
##C-rg   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  rl   r$   r   )TTFT)	r1   r2   r   r   
from_codesr   r  r-   r4   )r6   r
  r5  SdStr   r   s          r<   test_categorical_from_codes$TestIsin.test_categorical_from_codes
  s    xx%K$//;<K$//!Q0@$GH8856B#
##H5rg   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  )r1   r2   r   r  r   r  r-   r4   )r6   r
  r5  catotherr   r   s          r<   test_categorical_isinTestIsin.test_categorical_isin  s}    xx%1#))$5QC ++BHHaV,<dC8856C'
##H5rg   c                 :   [         R                  /n[         R                  /n[         R                  " S/5      nSn[        R                  " [
        US9   [        R                  " X5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)NTr  r(   )	r1   ra   r2   r-   r.   r/   r   r  r4   r6   r  rb   r   r7   r   s         r<   test_same_nan_is_inTestIsin.test_same_nan_is_in  sm     &&88TF#;''SAZZ.F B
##Hf5 BAs   B
Bc                 >   [         R                  " SS5      n[         R                  US'   [        R                  " U[         R
                  " [         R                  S/5      5      n[         R                  " [        U5      [        S9n[        R                  " X#5        g Nr_   iAB r   r$   r*   )r1   r`  ra   r   r  r2   onesr   rJ   r-   r4   r  s       r<   test_same_nan_is_in_large"TestIsin.test_same_nan_is_in_large,  sb    GGC#vv!Arxx45773q6.
##F5rg   c                 Z   [         R                  " SS5      n[        U5      n[         R                  US'   UR	                  [         R
                  " [         R                  S/5      5      n[        [         R                  " [        U5      [        S95      n[        R                  " X45        g r&  )r1   r`  r   ra   r  r2   r'  r   rJ   r-   assert_series_equal)r6   rr  seriesr   r   s        r<    test_same_nan_is_in_large_series)TestIsin.test_same_nan_is_in_large_series4  sn    GGC#vv!RXXrvvqk23"''#a&56
v0rg   c                     " S S5      nU" 5       U" 5       p2Sn[         R                  " [        US9   [         R                  " [        R
                  " U/U/5      [        R                  " S/5      5        [         R                  " [        R
                  " U/U/5      [        R                  " S/5      5        S S S 5        g ! , (       d  f       g = f)Nc                   (    \ rS rSrS\4S jrS rSrg)0TestIsin.test_same_object_is_in.<locals>.LikeNaniC  returnc                     g)NFr  )r6   r  s     r<   __eq__7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__D  s    rg   c                     g)Nr   r  )r6   s    r<   __hash__9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__G  s    rg   r  N)r?  r@  rA  rB  rJ   r4  r7  rE  r  rg   r<   LikeNanr1  C  s    t rg   r9  r  r(   TF)r-   r.   r/   r4   r   r  r1   r2   )r6   r9  ri   rj   r7   s        r<   test_same_object_is_inTestIsin.test_same_object_is_in=  s    	 	 y')1;''SA''

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

A3(<bhhw>OP	 BAAs   BC
Cc                    [        S5      /n[        S5      /nUS   US   Ld   e[        R                  " [        R                  " U5      U5      n[
        R                  " [        R                  " S/5      U5        [        R                  " [        R                  " U[        S9[        R                  " U[        S95      n[
        R                  " [        R                  " S/5      U5        [        R                  " [        R                  " U[        R                  S9[        R                  " U[        R                  S95      n[
        R                  " [        R                  " S/5      U5        g )Nra   r   Tr*   )
floatr   r  r1   r2   r-   r4   rN   r5   r   )r6   r  rb   r   s       r<   r  TestIsin.test_different_nansS  s     u,Qxvay((( BHHUOV4
##BHHdV$4f= JJuF+RZZf-M
 	##BHHdV$4f= JJuBJJ/F"**1U
 	##BHHdV$4f=rg   c                    SS/nS/n[         R                  " SS/5      nSn[        R                  " [        US9   [
        R                  " X5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)Nss*   42Fz2isin with argument that is not not a Series, Indexr(   )r1   r2   r-   r.   r/   r   r  r4   r"  s         r<   test_no_castTestIsin.test_no_castk  si     r
88UEN+B''SAZZ.F B
##Hf5 BAs   A22
B emptyr*   c                     [        SS/5      n[        R                  " SS/5      n[        R                  " X!5      n[
        R                  " X45        g )Nri   rj   F)r   r1   r2   r   r  r-   r4   )r6   rE  r
  r   r   s        r<   
test_emptyTestIsin.test_emptyv  s@     c3Z 88UEN+D(
##H5rg   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 )Nra                 ?r*   )FFT)	r1   r2   ra   r=  r5   r   r  r-   r4   )r6   r  r
  r   r   s        r<   test_different_nan_objects#TestIsin.test_different_nan_objects  sf    %"eEl;6Jxxuf58801E(
##H5rg   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  r1   r2   r   r   r  r-   r4   )r6   r  r  rx   lookup1r   r   lookup2s           r<   test_different_nans_as_float64'TestIsin.test_different_nans_as_float64  s    
 }}S&++d4F"GHK}}S&++d4F"GHK|||| hh|2::6((D64C)88T4L)
##F5((D64C)88T4L)
##F5rg   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 1rb   r$   r%   r  FN)r   r  r-   assert_frame_equalr6   dfr   expected_falses       r<   test_isin_int_df_string_search'TestIsin.test_isin_int_df_string_search  sG     1a&)*#"Huen#=>
f5rg   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 NaNrb   r%   NaNr*   FN)r   r1   ra   r  r2   r5   r-   rS  rT  s       r<   test_isin_nan_df_string_search'TestIsin.test_isin_nan_df_string_search  sW     2661+./5'89"Huen#=>
f5rg   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.4245rb   gn?g#Ed@z1.4245r*   FN)r   r  r1   r2   r5   r-   rS  rT  s       r<    test_isin_float_df_string_search)TestIsin.test_isin_float_df_string_search  sT     67"3458*F;<"Huen#=>
f5rg   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   r1   r   r  r-   r+  r6   rc   r   r   s       r<   test_isin_unsigned_dtype!TestIsin.test_isin_unsigned_dtype  s?    )*"))<./0%=
v0rg   r  N)#r?  r@  rA  rB  r  ry   r  r   rC  rD  r  r  r  r  r  r  r  r#  r(  r-  r:  r  rC  r   r5   r1   r2   rG  rK  rP  rW  r[  r^  rb  rE  r  rg   r<   r  r  |  s,   
'6R66 [[X'WX[[W&89
6 : Y
66 [[W&VW6 X6 [[W&IJ K 	.66661Q,>0	6 [[Wr6+?"&NO6 P666,6661rg   r  c                       \ rS rSrS rS rS rS r\R                  R                  S\S/5      S 5       rS	 rS
 rS rS r\R                  R                  S\R$                  \S45      S 5       rS rS rSrg)TestValueCountsi  c                    [         R                  R                  S5      R                  S5      n[	        US5      nSn[
        R                  " [        US9   [        R                  " U5      nS S S 5        / SQn[        R                  " U5      R                  [        SS95      n[        / SQUS	S
9n[
        R                  " WR!                  5       UR!                  5       5        g ! , (       d  f       N= f)Ni  rp   !pandas.value_counts is deprecatedr(   )gV-g}?5^Ig/$ۿgףp=
?gʡE?Tr  )r$   r   r%   r$   countrM   r  )r1   rM  rN  standard_normalr   r-   r.   r/   r   value_countsr   from_breaksrH   r   r   r+  
sort_index)r6   rx   factorr7   r   breaksrM   r   s           r<   test_value_counts!TestValueCounts.test_value_counts  s    ii##D)99!<S! 2''SA''/F B7))&1889IRV9WX,e'B
v002H4G4G4IJ BAs   C&&
C4c                    / SQnSn[         R                  " [        US9   [        R                  " USS9nS S S 5        [        S/[        R                  " S/5      SS	9n[         R                  " WU5        [         R                  " [        US9   [        R                  " US
SS9nS S S 5        [        S
S
/[        R                  " SS/5      SS	9n[         R                  " X45        g ! , (       d  f       N= f! , (       d  f       NY= f)N)r$   r%   ro   rp   rg  r(   r$   binsrp   )Zd;?rr   rh  ri  r%   F)rt  r?   )ru        @)rv  rr   )	r-   r.   r/   r   rk  r   r   rE   r+  )r6   rr  r7   r   r   s        r<   test_value_counts_bins&TestValueCounts.test_value_counts_bins  s    1''SA''2F BC}00,@w
 	vx0''SA''>F BF++\:,FG

 	v0 BA BAs   C(C9(
C69
Dc           	         Sn[         R                  " [        US9   [        R                  " [
        R                  " SS/5      5      nS S S 5        [        W5      S:X  d   e[         R                  " [        US9   [        R                  " [
        R                  " SS/5      SS9nS S S 5        [        U5      S:X  d   e[         R                  " [        US9   [        R                  " [        / SQ5      5      nS S S 5        [        U5      S:X  d   eSn[        R                  " [        US9   [         R                  " [        US9   [        R                  " [
        R                  " S	S/[        S
9SS9  S S S 5        S S S 5        g ! , (       d  f       GNG= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NK= f! , (       d  f       g = f)Nrg  r(   r$   r_   rs  )r$   r_   r  r%   z*bins argument only works with numeric datar  r*   )r-   r.   r/   r   rk  r1   r2   r   r   r   r   r   r5   )r6   msg2r   r7   s       r<   test_value_counts_dtypes(TestValueCounts.test_value_counts_dtypes  sQ   2''TB''!S(:;F C6{a''TB''!S(:CF C6{a''TB''}(=>F C6{a:]]9C0++MF""288S!HF#C!L G 10 CB CB CB GF 10sG   -F	;,F"F,/G	/F=8G	
F
F),
F:=
G	G
Gc                 j   [        [        R                  " S5      [        /SS9n[	        SS/5      nSnX4 Hr  n[
        R                  " [        US9   [        R                  " U5      n[        R                  " USS	9nS S S 5        [        W5      S
:X  d   e[        W5      S:X  a  Mr   e   [        [        S5      S
0SS9n[
        R                  " [        US9   [        R                  " U5      nS S S 5        [
        R                  " WU5        [        [        R                  " S5      S
0SS9n	[
        R                  " [        US9   [        R                  " U5      n
S S S 5        [
        R                  " W
U	5        g ! , (       d  f       GN	= f! , (       d  f       N= f! , (       d  f       NI= f)Nr  timedelta64[ns]r*   r   z
2014-01-01rg  r(   Fdropnar$   r%   z2014-01-01 00:00:00rh  r  )r   r1   timedelta64r   r   r-   r.   r/   r   rk  r   r   r+  )r6   tdr  r7   rc   vc
vc_with_naexp_dt	result_dtexp_td	result_tds              r<   test_value_counts_nat%TestValueCounts.test_value_counts_nat  sV   R^^E*C08IJ%./18C++ME'',"//EB
 F r7a<<z?a'''  #891=GL''SA**2.I B
y&1.2A''SA**2.I B
y&1 FE BA
 BAs$   ,FF
F$
F	
F!$
F2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*   ro   r%   r$   rh  ri  )r   r   rk  r   r-   r+  )r6   r+   rc   r  	exp_indexrw   s         r<   &test_value_counts_datetime_outofbounds6TestValueCounts.test_value_counts_datetime_outofbounds  s     q!$q!$q!$q!$q!$q!$ 

  dAq!8D!Q#7$19MN
	 Yig>
s(rg   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  rl   rh  ri  Tcheck_index_type)
r   r   rL   rk  r   r-   r+  r  
as_orderedrM   r  s       r<   r   TestValueCounts.test_categorical  s    ;tH~./!-o>W
 	v$G EE!!224
v$Grg   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$   )rp   ro   r%   rl   r  rh  ri  Tr  Fr  )rp   ro   r%   r$   ri   rj   rk   )rj   ri   rk   )r  r#  r  )
r   r   rL   r1   ra   ilocrk  r   r-   r+  r  s       r<   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$Grg   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  )ro   r%   r$   r   )rj   ri   rk   r  rh  ri  r  )r   r   rL   rk  r-   r+  r  s       r<   test_categorical_zeroes'TestValueCounts.test_categorical_zeroesY  sa    ;tH~$v,PTUV!$ft 
 	v$Grg   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 )Nrf  Tr  r%   r$   Frh  ri  ro   rm   r*   )rm   ro   r%   )TFN)皙$@rq   rq   rq   r  )r  rq   rq   N)r  r  rq   rq   rq   Nr  )rq   r  N)r-   r+  r   rk  r   r5   )r6   r   r   s      r<   test_value_counts_dropna(TestValueCounts.test_value_counts_dropnaf  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0rg   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%   ro   rm   TF)	normalizer  )g      ?g333333?g?r`   r_   r*   
proportionri  g333333?g?)r   r1   ra   rH   rk  r-   r+  )r6   r+   rr  s_typedr   r   s         r<   test_value_counts_normalized,TestValueCounts.test_value_counts_normalized  s     A37aS1W$x!|34((5/%%U%C"&&#s+59

 	v0%%T%B#Jfc3Zu=L
 	v0rg   c                 <   [         R                  " S/[         R                  S9n[        S/S/SS9nSn[        R
                  " [        US9   [        R                  " U5      nS S S 5        [        R                  " WU5        [         R                  " SS/[        S9n[        SS/SS/SS9n[        R
                  " [        US9   [        R                  " U5      nS S S 5        [        R                  " XB5        g ! , (       d  f       N= f! , (       d  f       N6= f)	Nr   r*   r$   rh  ri  rg  r(   rn   )r1   r2   r   r   r-   r.   r/   r   rk  r+  r5   )r6   rx   r   r7   r   s        r<   test_value_counts_uint64(TestValueCounts.test_value_counts_uint64  s    hhwbii01#eW7;1''SA'',F B 	vx0hhE{&11a&U'B''SA'',F B 	v0 BA BAs   C<D<
D

Dc                     [         R                  " SSSSS[         R                  /5      n[        U5      R	                  SS9n[        / SQ[
        R                  " / SQSS	9S
S9n[        R                  " X#5        g )Nro   r$   r%   rp   rs  )r%   r%   r$   ))ru  r`   )r`   rs   )rs   rr   zinterval[float64, right]r*   rh  ri  )	r1   r2   ra   r   rk  r   rE   r-   r+  )r6   rb   r   r   s       r<   test_value_counts_series(TestValueCounts.test_value_counts_series  sn    1aAq"&&12,,!,4++6>X 
 	v0rg   r  N)r?  r@  rA  rB  rp  rw  r{  r  r   rC  rD  r5   r  r  r  r  r  r1   r   r  r  r  rE  r  rg   r<   re  re    s    K1&M&2. [[Wvx&89) :),H)HVH$1L [[Wrzz68&DE1 F1$1 1rg   re  c                      \ rS rSrS r\R                  R                  S\R                  " / SQ5      \R                  " SSS\R                  SSSS\R                  S	/
5      \R                  " / S
Q5      \R                  " / SQ\S9\R                  " / SQ\R                  S9/5      S 5       rS r\R                  R                  S\" / SQ5      \R"                  " SS5      /5      S 5       r\R                  R                  S/ SQ/ SQ4/ SQSS/4/ SQ/ SQ4/5      S 5       r\R                  R                  S/ SQ\R                  " / SQ\S94/5      S  5       rS!rg")#TestDuplicatedi  c           	      B   [         R                  " SS[         R                  SS[         R                  /[        S9n[        R
                  " U5      n[         R                  " / SQ5      n[        R                  " X#5        [        R
                  " USS9n[         R                  " / SQ5      n[        R                  " X#5        [        R
                  " USS9n[         R                  " / S	Q5      n[        R                  " X#5        [        R
                  " US
S9n[         R                  " / SQ5      n[        R                  " X#5        [         R                  " S[        S9n[        [        SS[         R                  [         R                  /S-  S[         R                  S[         R                  /S-  5      5       H	  u  pEXQU'   M     [        R
                  " U5      nS
/S-  nS/S-  n[         R                  " Xg-   5      n[        R                  " X#5        [        R
                  " USS9n[         R                  " Xv-   5      n[        R                  " X#5        [        R
                  " US
S9n[         R                  " Xw-   5      n[        R                  " X#5        g )Nr   r$   r%   r*   )FFFTFTfirstkeeplast)TFTFFFF)TFTTFT   rp   T)r1   r2   ra   r5   r   
duplicatedr-   r4   rE  	enumeratezip)r6   keysr   r   r   tfalsestruess           r<   test_duplicated_with_nas'TestDuplicated.test_duplicated_with_nas  s   xxArvvq!RVV4FC!!$'88DE
##F5!!$W588DE
##F5!!$V488DE
##F5!!$U388BC
##F5xx(Arvvrvv&*Q266,BQ,FG
DA G

 !!$'1
88FN+
##F5!!$V488EN+
##F5!!$U388EM*
##F5rg   case)
r$   r%   r$   rm   ro   r%   rp   r$   rm      g?g@gffffff
@g@gffffff@)
      ?      ?       @       @r        @      @y      @      @r  y      @      @r  r  y      @      @)
ri   rj   ri   erk   rj   r  ri   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*   )	r1   r2   r   r  r-   r4   r   r   r+  )
r6   r  	exp_firstexp_last	exp_false	res_firstres_last	res_falser4  rr  s
             r<   test_numeric_object_likes(TestDuplicated.test_numeric_object_likes  s   4 HHN
	 88N
 (	$$T8	
##I9##Dv6
##H7$$T6	
##I9 $Kt:!>?CG4I''	=~~6~2H'';E2I''	= @ ,t: >?A'2I""9fY.?@|||0H""8VH-=>%0I""9fY.?@ @rg   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&  rX  r   r  r  r  r  r  Fr"  r*   )r1   r2   r   r   r   r   r   r  r-   r4   r   r5   r   r+  )r6   r  r  r  casesr  r  r  r  r  r  r  r4  rr  s                 r<   test_datetime_likes"TestDuplicated.test_datetime_likes&  s   

 HHB/BqilB/0HHR@Ril3R@AHH262afQS)267HH31bmmA&34HHB/BqilB/0
 HHN
	 88N
 (	D((G<I''	=''6:H'';((E:I''	= dd*-d&)
  NNN8	++IA>>v>6++H?NNN6	++IA  tt:.t6*
 LLgL6	&&y&2CD<<V<4&&x1ABLLeL4	&&y&2CD5  0@63/s   LL
:L( L"L"r   r   ro   c                     UR                   SL d   e[        R                  " UR                  5       [        R
                  " / SQ5      5        g )NT)FFF)	is_uniquer-   r4   r  r1   r2   )r6   r  s     r<   test_unique_index TestDuplicated.test_unique_indexx  s5    ~~%%%
##DOO$5rxx@U7VWrg   zarr, uniques)r   r   r$   r$   r   r   r   r  r  r   )r   r  r  r   )rj   rk   ri   rj   r  r  r  r  )r  rj   r%   ri   ro   r  )r  r  r  c                    [         R                  " [        U5      [        S9nX#S S & Sn[        R
                  " [        US9   [        R                  " U5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nr*   r  r(   )
r1   rE  r   r5   r-   r.   r/   r   rF   r4   )r6   rx   r9   r   r7   r   s         r<   test_unique_tuples!TestDuplicated.test_unique_tuples}  sa      88CL7=''SAYYs^F B
##FH5 BAs   A99
Bzarray,expected)r  r   r$   rJ        ?       @r  )r  y                r,   rJ  r  c                     Sn[         R                  " [        US9   [        R                  " U5      nS S S 5        [         R
                  " WU5        g ! , (       d  f       N&= fr  r  )r6   r2   r   r7   r   s        r<   test_unique_complex_numbers*TestDuplicated.test_unique_complex_numbers  sG     >''SAYYu%F B
##FH5 BAr  r  N)r?  r@  rA  rB  r  r   rC  rD  r1   r2   ra   r5   r   r  r  r   r   r   r  r  r  rE  r  rg   r<   r  r    s   %6N [[HH34HHc3RVVS#sCMNHH HHGvVHH>bii%	
2&A32&APPEd [[VeI&6a8K%LMX NX [[ Q0
 AZ( 67UV
	
66 [[ 3?vN	
	6	6rg   r  c                      \ rS rSr\R
                  R                  S\R                  \	" S5       V Vs/ s H  nSU 3PM
     snn 4\R                  \	" S5       V Vs/ s H  nSU 3PM
     snn 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                  \	" S5       V Vs/ s H  nSU 3PM
     snn 4\R                  \	" S5       V Vs/ s H  nSU 3PM
     snn 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, datarZ  foo_r*   c                    [        U5      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 )N    ro   Tfracreplacedropr   r  r  )return_inverse)r   r   Float64HashTabler1   ra   locPyObjectHashTabler   samplereset_indexrb   r   drop_duplicatesrF   r-   r4   )
r6   htabler   r   rr  s_duplicatedexpected_uniqueresult_uniqueresult_inversereconstrs
             r<   test_hashtable_unique#TestHashTable.test_hashtable_unique  s    4L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Brg   c                    [        U5      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  ro   Tr  r  r   )r   r   r  r1   ra   r  r  r   r  r   rb   r   r   r0   r  r  r-   r4   )r6   r  r   r   rr  r  na_maskr  r  r  result_reconstructexpected_reconstructs               r<   test_hashtable_factorize&TestHashTable.test_hashtable_factorize  s    4L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Mrg   r  N)r?  r@  rA  rB  r   rC  rD  r   r  r   StringHashTabler  r1   ru   r   Int64HashTabler   UInt64HashTabler   r  r  rE  ).0r   s   00r<   r  r    s   [[!!d#D1d1#J#DEeDk!BkD*k!BC  "))D

"CD		$bhh ?@4ryy!AB	
	C	C: [[!!d#D1d1#J#DEeDk!BkD*k!BC  "))D

"CD		$bhh ?@4ryy!AB	
	N	N] $E!BL $E!Bs   GGG"G(r  c                      \ rS rSr\R
                  R                  S\R                  \R                  SSS\R                  SSS\R                  /
S\R                  SSS\R                  SSS\R                  /
/5      S 5       r	\R
                  R                  S	\R                  S
   5      S 5       r\R
                  R                  S	\R                  \R                  /5      S 5       rS r\R
                  R                   S 5       rSrg)TestRanki  rx   rq   r$   r%   ro   rr   c                 l   [         R                  " S5      n[        R                  " U5      n[        R                  " U5      ) nUR                  5       n[        R                  " U5      n[        R                  X'   UR                  U5      n[        R                  XS'   [        R                  " XE5        g )Nzscipy.stats)r   importorskipr1   r2   isfinitecopylibalgosrank_1dr~   rankdatara   r-   ra  )r6   rx   sp_statsr   r   rw   s         r<   test_scipy_compatTestRank.test_scipy_compat  s     &&}5hhsmC  hhj!!#&FF	$FF	
v+rg   r+   
AllIntegerc                    [         R                  " SS/[         R                  S9n[         R                  " SS/US9nUR                  US9  [	        U5      n[
        R                  " U5      n[        R                  " Xc5        g )Nr$   r%   r*   rI  r   )	r1   r2   r   r   r   r   rankr-   r4   )r6   r   r+   rw   r   rc   r   s          r<   ry   TestRank.test_basic  s`    hh1vRZZ0xxC.H%TlC
##F0rg   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   )r1   r2   r   r   r-   r4   r   r"  )r6   r+   rw   rr  s       r<   r  TestRank.test_uint64_overflow  sB    hh1vRZZ0Au:U+
##EJJqM37rg   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   )rp   rm   r  )r  r  	   z%Array with ndim > 2 are not supportedr(   )r1   r2   r   r   r   r   r"  )r6   rx   r7   s      r<   test_too_many_ndimsTestRank.test_too_many_ndims  sD    hhIy9:;5]]9C0JJsO 100s   A
A*c                 (   [         R                  " S5      n[        R                  " USS9R	                  5       nUS:X  d   e[         R                  " S5      R                  SS5      n[        R                  " USS9R	                  5       nUS:X  d   eg )Ni  T)pctr$   i  r%   )r1   ru   r   r"  maxreshape)r6   rb   r   s      r<   test_pct_max_many_rowsTestRank.test_pct_max_many_rows$  sw     9%F-113{{9%--i;F-113{{rg   r  N)r?  r@  rA  rB  r   rC  rD  r1   ra   r  	typecodesry   r   r   r  r(  
single_cpur.  rE  r  rg   r<   r  r    s    [[VVRVVS#sBFFAq!RVVD"&&#sCAsBFFC	
,, [[Wbll<&@A1 B1 [[Wrzz299&=>8 ?8 [[ rg   r  c                      \ rS rSrS r\R                  R                  S\R                  S   \R                  S   -   5      S 5       r
S r\R                  R                  S\R                  S   \R                  S   -   5      S 5       rS	 r\R                  R                  S\\/5      S
 5       rS rS rS rS rS rS rS rSrg)TestModei0  c           	          [        / [        R                  [        / [        S9S9n[
        R                  " [        R                  " [        R                  " / 5      5      UR                  5        g )Nr*   )r+   rM   )r   r1   r   r   intr-   r4   r   moder2   rb   r6   rw   s     r<   test_no_modeTestMode.test_no_mode1  s@    Rrzzr1EF
##EJJrxx|$<cjjIrg   r  r   Floatc                    S/nS/nS/nSS/n[        X1S9n[        X!S9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        [        XQS9n[        XAS9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        g )Nr$   r*   r   r-   r4   r   r6  rb   r+  r6   r  
exp_singledata_single	exp_multi
data_multirc   rw   s           r<   test_mode_singleTestMode.test_mode_single5  s     S
cC	V
[+Z*
##EJJszz$:CJJG
sxxz3/Z*Y)
##EJJszz$:CJJG
sxxz3/rg   c                 >   [        S/[        S9n[        R                  " [        R
                  " UR                  5      UR                  5        [        / SQ[        S9n[        R                  " [        R
                  " UR                  5      UR                  5        g )Nr$   r*   rl   )r   r5  r-   r4   r   r6  rb   r5   r7  s     r<   test_mode_obj_intTestMode.test_mode_obj_intH  s^    aS$
##EJJszz$:CJJG_F3
##EJJszz$:CJJGrg   c                 ,   S/nS/S-  S/S-  -   nSS/nS/S-  S/S-  -   S/S-  -   n[        X1S9n[        X!S9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        [        XQS9n[        XAS9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        g )Nr$   rm   r%   ro   r*   r<  r=  s           r<   test_number_modeTestMode.test_number_modeO  s    S
cAga'F	S1WsQw&!q0
[+Z*
##EJJszz$:CJJG
sxxz3/Z*Y)
##EJJszz$:CJJG
sxxz3/rg   c                    S/nS/S-  S/S-  -   n[        USS9n[        USS9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        g )Nrj   ri   r%   ro   rk   r*   r<  )r6   rw   r   rc   s       r<   test_strobj_modeTestMode.test_strobj_modea  sn    euqyC519$T%S$
##EJJszz$:CJJG
sxxz3/rg   c                    S/nS/S-  S/S-  -   n[        X1S9n[        X!S9n[        R                  " [        R                  " UR
                  5      UR
                  5        [        R                  " UR	                  5       U5        g )Nbarr  r%   ro   r*   r<  )r6   r  rw   r   rc   s        r<   test_strobj_multi_charTestMode.test_strobj_multi_charj  sj    gw{eWq[(T$S#
##EJJszz$:CJJG
sxxz3/rg   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  rS  rR  r  rS  )r  rS  rR  r  rS  r   r-   r  r   r6  rb   r  r+  r6   rw   rc   s      r<   test_datelike_modeTestMode.test_datelike_modet  s    ?xP?xP
''

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

3::(>L
sxxz3/rg   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  rY  rZ  2 minr   r   r   z-1 dayz-1 day 2 minr[  r[  rT  rU  s      r<   test_timedelta_modeTestMode.test_timedelta_mode  s    4<MN4<MN
''

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

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