
    Owg0                    "   d dl m Z  d dlZd dlZd dlZd dlmZmZ	 d dl
mZmZmZmZmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z( d dl)m*c m+Z d dl,m-Z-m.Z. d dl/m*c m0Z1  G d d	      Z2 G d
 d      Z3d Z4 G d d      Z5 G d d      Z6 G d d      Z7 G d d      Z8 G d d      Z9 G d d      Z: G d d      Z;ejx                  j{                  dej|                  ej|                  g      d        Z?y)    )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                   8
   e Zd Zd Zej
                  j                  dddg      d        Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zej
                  j                  dg dg dg dfg dg dg dfg dg dg dfg      d        Zd Zd Zd Zd Zd Zd Zd Zd  Zej
                  j                  dddg      d!        Zej
                  j                  dddg      d"        Zd# Zej
                  j                  d$ ej<                  g d%d&'       ej<                  g d(d)'       ej<                  g d*d+'      g      d,        Zej
                  j                  d- ej<                  g d.d&'      d/f ej<                  g d0d&'      d1f ej<                  g d2d)'      d3f ej<                  g d4d)'      d1f ej<                  g d5e '      d6f ej<                  g d7e '      d8f ej<                  g d9e '      d:fg      d;        Z!ej
                  j                  dddg      ej
                  j                  d< ej<                  g d=e '       ej<                  d>d6ge '      f e"j<                  d?d1ejF                  d?gd@'       e"j<                  d?d1gd@'      fgdAdBgC      dD               Z$ej
                  j                  dg dE ej<                  g dF ejJ                  dG      '       ej<                  d6ejF                  d>ge '      fd6ejF                  d>d6g ej<                  g dF ejJ                  dG      '       ej<                  d6ejF                  d>ge '      fg      dH        Z&ej
                  j                  dg dI ej<                  g d. ejJ                  dG      '       ej<                  d1ejF                  d?gdJ'      fd1ejF                  d1d?g ej<                  g d. ejJ                  dG      '       ej<                  d1ejF                  d?gejN                  '      fg      dK        Z(ej
                  j                  d e) e*g dL             ej<                  g dMejV                  '       e,d6d>gd6d>gdNO      f e- e*g dL             ej<                  g dMejV                  '       e,d6d>gd6d>gdNO      f e- e.dPdPgdQR             ej<                  d/d/gejV                  '       e.dPgdQR      fg      dS        Z/dT Z0yU)VTestFactorizec                    g d}d}t        j                  t        |      5  t        j                  |      \  }}d d d        t        j                  g dt
        j                        }t        j                  |       t        j                  g dt              }t        j                  |       y # 1 sw Y   zxY w)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)selfr1   msglabelsuniquesexpected_labelsexpected_uniquess          N/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/test_algos.pytest_factorize_complexz$TestFactorize.test_factorize_complex4   s    @''SA 	5#ooe4OFG	5 ((9BGG<
##FO< 88$B&Q
##G-=>	5 	5s   B44B=sortTFc                    |}|j                  |      \  }}t        }t        |t              rt        j                  }|j                         }|j                  t        j                  k(  r|j                  t        j                        } ||      }t        |t              r;|j                  t        k(  r(|j                  t        k(  r|j                  t              }|r|j                         }t        |      }	|D 
cg c]  }
|	j                  |
       }}
t        j                   |t        j"                        }t%        j&                  ||       t%        j(                  ||d       y c c}
w )Nr=   r)   Texact)r/   r   
isinstancer   from_tuplesuniquer*   r0   float16astypefloat32boolr4   sort_valueslistindexasarrayr2   r,   r3   assert_index_equal)r5   index_or_series_objr=   objresult_codesresult_uniquesconstructorexpected_arrr:   expected_uniques_listvalexpected_codess               r;   test_factorizezTestFactorize.test_factorizeB   s#   !'*}}$}'?$nc:&$00Kzz|+'..rzz:L&|4sE" &&$.		V#/66v>/;;= !%%5 6FIJs/55c:JJN"''B
##L.A
n.>dK	 Ks   >E,c                 p   t        j                  dddt         j                  g      }t        |      }|j	                  d      \  }}t        j                  g dt         j
                        }t        ddt         j                  g      }t        j                  ||       t        j                  ||       y )	Nr#   r$   Fuse_na_sentinelr   r#   r   r$   r)         ?       @)
r0   r1   nanr   r/   r2   r   r,   r3   rM   )r5   valuessercodesr8   rV   r:   s          r;   +test_series_factorize_use_na_sentinel_falsez9TestFactorize.test_series_factorize_use_na_sentinel_falsea   s    1aBFF+,Vnu=w,bgg> #sBFF!34
##E>:
g'78    c                    t        j                  g dt              }t        j                  |      \  }}t        j                  |t        j                  g dt                     t        j                  |d      \  }}t        j                  g dt         j                        }t        j                  ||       t        j                  g dt              }t        j                  ||       t        j                  dt         j                        d d d   }t        j                  |      \  }}t        j                  g d	t         j                        }t        j                  ||       t        j                  g d
|j                        }t        j                  ||       t        j                  |d      \  }}t        j                  g d
t         j                        }t        j                  ||       t        j                  g d	|j                        }t        j                  ||       t        j                  d      d d d   }t        j                  |      \  }}t        j                  g d	t         j                        }t        j                  ||       t        j                  g d|j                        }t        j                  ||       t        j                  |d      \  }}t        j                  g d
t         j                        }t        j                  ||       t        j                  g d|j                        }t        j                  ||       y )N)abrf   re   re   crg   rg   r)   re   rf   rg   Tr?   )r   r#   r#   r   r   r$   r$   r$      )r   r#   r$         )rl   rk   r$   r#   r         @)      @      @r]   r\           )rp   r\   r]   ro   rn   )
r0   r1   r4   r   r/   r,   r3   r2   aranger*   )r5   itemsra   r8   exparrs         r;   
test_basiczTestFactorize.test_basicm   s:   AP/w
##GRXXoV-TUT:whh/rww?
##E3/hhf5
##GS1ii)$B$/-whhbgg6
##E3/hhcii8
##GS148whhbgg6
##E3/hhcii8
##GS1iinTrT"-whhbgg6
##E3/hh0		B
##GS148whhbgg6
##E3/hh0		B
##GS1rc   c                    t        ddt        j                  ddt        j                  g      }t	        j
                  |      \  }}t        j                  g dt        j                        }t        j                  ||       t        dddt        j                  g      }t        j                  ||       t	        j
                  |d      \  }}t        j                  g dt        j                        }t        j                  ||       t        dt        j                  ddg      }t        j                  ||       y )	NABgQ	@)r   r   rj   r#   r$   rk   r)   Tr?   )r$   r$   rj   rk   r   r#   )r   r0   r^   infr   r/   r1   r2   r,   r3   r   rM   )r5   xra   r8   rs   s        r;   
test_mixedzTestFactorize.test_mixed   s    Cbffc489+whh*"'':
##E3/S#tRVV,-
gs+6whh*"'':
##E3/T2663,-
gs+rc   c                 6   t        d      }t        d      }t        ||||||g      }t        j                  |      \  }}t	        j
                  g dt        j                        }t        j                  ||       t        ||g      }t        j                  ||       t        j                  |d      \  }}t	        j
                  g dt        j                        }t        j                  ||       t        ||g      }t        j                  ||       y )Nz20130101 09:00:00.0000420130101r   r   r   r#   r#   r   r)   Tr?   )r#   r#   r#   r   r   r#   )r   r   r   r/   r0   r1   r2   r,   r3   r   rM   r5   v1v2rz   ra   r8   rs   s          r;   test_factorize_datetime64z'TestFactorize.test_factorize_datetime64   s    01z"BBB+,+whh)9
##E3/RH%
gs+6whh)9
##E3/RH%
gs+rc   c                 6   t        dd      }t        dd      }t        ||||||g      }t        j                  |      \  }}t	        j
                  g dt        j                        }t        j                  ||       t        j                  |t        ||g             t        j                  |d      \  }}t	        j
                  g dt        j                        }t        j                  ||       t        j                  |t        ||g             y )	N201302Mfreq201303r~   r)   Tr?   )r   r   r   r/   r0   r1   r2   r,   r3   rM   r   r   s          r;   test_factorize_periodz#TestFactorize.test_factorize_period   s    H3'H3'BBB+, +whh)9
##E3/
g{B8'<=6whh)9
##E3/
g{B8'<=rc   c           	      0   t        d      }t        d      }t        |||||||g      }t        j                  |      \  }}t	        j
                  g dt        j                        }t        j                  ||       t        j                  |t        ||g             t        j                  |d      \  }}t	        j
                  g dt        j                        }t        j                  ||       t        j                  |t        ||g             y )Nz1 day 1 min1 day)r   r#   r   r   r#   r#   r   r)   Tr?   )r#   r   r#   r#   r   r   r#   )
r   r   r   r/   r0   r1   r2   r,   r3   rM   r   s          r;   test_factorize_timedeltaz&TestFactorize.test_factorize_timedelta   s    -('"BBBB/0+whh,BGG<
##E3/
g|RH'=>6whh,BGG<
##E3/
g|RH'=>rc   c                    t        j                  dddt         j                  gd      }t        j                  t        |            }dD ]  }|j                  ||      }t        j                  ddd|gt         j                        }t        t        |            t        t        |            k(  sJ t        j                  t        j                  |      ||k(         t        j                  ||        y )Nr#   r$   Or)   )rj      )na_sentinelr   )r0   r1   r^   htObjectFactorizerlenr/   r2   setr,   r3   pdisna)r5   keyrizerr   idsexpecteds         r;   test_factorize_nanz TestFactorize.test_factorize_nan   s     hh1a(4##CH-# 	7K//#;/?CxxAq+ 6bggFHs3x=CH$6666''h+6MN''X6	7rc   c                    t        j                  g dd      }t        j                  g d      }t        j                  t	        |            }|j                  ||      }t        j                  g dt         j                        }t        j                  ||       t        j                  g dd      }t        j                  |j                  j                         |       y )N)r#   r$   rk   r#   r#   r   int64r)   )FFFFFT)mask)r   r#   r$   r   r   rj   r#   r$   rk   )r0   r1   r   Int64Factorizerr   r/   r2   r,   r3   r8   to_array)r5   datar   r   resultr   r:   s          r;   test_factorizer_with_maskz'TestFactorize.test_factorizer_with_mask   s    xx*':xxAB""3t9-D188/rww?
##FH588IW=
##EMM$:$:$<>NOrc   c                    t        j                  ddddt         j                  g      }t        j                  t        |            }|j                  |j                  t                    }t        j                  g dt         j                        }t        j                  ||       t        j                  g dt              }t        j                  |j                  j                         |       y )Nr#   r$   rk   )r   r#   r$   r   rj   r)   r   )r0   r1   r^   r   r   r   r/   rF   r4   r2   r,   r3   r8   r   )r5   r   r   r   r   r:   s         r;   test_factorizer_object_with_nanz-TestFactorize.test_factorizer_object_with_nan   s    xxAq!RVV,-##CI.V!4588,BGG<
##FH588IV<
##EMM$:$:$<>NOrc   z&data, expected_codes, expected_uniques)r#   r#   r#   r$   r   r   r   nonsense)r   r#   r$   r#   rk   )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                 l   d}t        j                  t        |      5  t        j                  |      \  }}d d d        t        j
                  t        j                  |t        j                               t        j                  |t              }t        j
                  |       y # 1 sw Y   txY w)Nr&   r'   r)   )r,   r-   r.   r   r/   r3   r0   r1   r2   comasarray_tuplesafer4   )r5   r   rV   r:   r6   ra   r8   expected_uniques_arrays           r;   test_factorize_tuple_listz'TestFactorize.test_factorize_tuple_list   s    $ A''SA 	0\\$/NE7	0 	##E288N"''+RS!$!6!67Gv!V
##G-CD	0 	0s   B**B3c                 "   t        j                  t        d      D cg c]  }t        |       c}t              }d}t        j                  t        |      5  t        j                  |d d d   d       d d d        y c c}w # 1 sw Y   y xY w)N   r)   z,'[<>]' not supported between instances of .*r'   rj   Tr?   )
r0   r1   rangecomplexr4   pytestraises	TypeErrorr   r/   )r5   ix17r6   s       r;   test_complex_sortingz"TestFactorize.test_complex_sorting  sm    hhE"I6q
6fE<]]9C0 	2OOC"ID1	2 	2 7	2 	2s   B BBc                 B   |}t        j                  g d|      }t        j                  g dt         j                        }t        j                  ddg|      }t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)r#   r$   r$   r#   r)   )r   r#   r#   r   r#   r$   )r0   r1   r2   r   r/   r,   r3   )r5   any_real_numpy_dtyper*   r   rV   r:   ra   r8   s           r;   test_numeric_dtype_factorizez*TestFactorize.test_numeric_dtype_factorize  ss    $xxE2,bgg>88QF%8.w
##E>:
##G-=>rc   c                    t        j                  g dt         j                        }|j                  |       t        j                  g dt         j                        }t        j                  g dt         j                        }t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)r\       חAr\   :0yE>r   r\   r)   write)r   r#   r   r$   r#   r   )r\   r   r   )	r0   r1   float64setflagsr2   r   r/   r,   r3   r5   writabler   rV   r:   ra   r8   s          r;   test_float64_factorizez$TestFactorize.test_float64_factorize&  s    xx7rzzJH%"4BGGD88$4BJJG.w
##E>:
##G-=>rc   c                    t        j                  g dt         j                        }|j                  |       t        j                  g dt         j                        }t        j                  ddgt         j                        }t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)    r#   r   r)   r   r   r#   r   r   r#   )	r0   r1   uint64r   r2   r   r/   r,   r3   r   s          r;   test_uint64_factorizez#TestFactorize.test_uint64_factorize0  s    xx1CH%)277;88YN"))D.w
##E>:
##G-=>rc   c                    t        j                  g dt         j                        }|j                  |       t        j                  g dt         j                        }t        j                  ddgt         j                        }t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)             r   r)   r   r   r   r   )	r0   r1   r   r   r2   r   r/   r,   r3   r   s          r;   test_int64_factorizez"TestFactorize.test_int64_factorize:  s    xx8IH%)277;88Y$9J.w
##E>:
##G-=>rc   c                 r   t        j                  g dt              }|j                  |       t        j                  g dt         j                        }t        j                  g dt              }t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)re   rg   re   rf   rg   r)   r   )r   r#   r   r$   r#   re   rg   rf   )	r0   r1   r4   r   r2   r   r/   r,   r3   r   s          r;   test_string_factorizez#TestFactorize.test_string_factorizeD  sy    xx1@H%/A88O6B.w
##E>:
##G-=>rc   c           
         t        j                  ddd t         j                  ddt        dgt              }|j                  |       t        j                  g dt         j                        }t        j                  g dt              }t        j                  |      \  }}t        j                  ||       t        j                  ||       y )Nre   rg   rf   r)   r   )r   r#   rj   rj   r   r$   rj   r#   r   )r0   r1   r^   r   r4   r   r2   r   r/   r,   r3   r   s          r;   test_object_factorizez#TestFactorize.test_object_factorizeN  s    xxc4c3DFSH%"=RWWM88O6B.w
##E>:
##G-=>rc   c                    t        j                  t        j                  d      gd      }|j                  |       t        j                  dgt         j                        }t        j                  dgd      }t        j                  |      \  }}t        j                  ||       t        j                  ||       y )Nz2020-01-01T00:00:00.000M8[ns]r)   r   r   z2020-01-01T00:00:00.000000000zdatetime64[ns])	r0   r1   
datetime64r   r2   r   r/   r,   r3   r   s          r;   test_datetime64_factorizez'TestFactorize.test_datetime64_factorizeX  s    xx'@AB(SH%1#RWW588,-5E
 d+w
##E>:
##G-=>rc   c                    t         j                  j                  t        d            }t	        j
                  dt        j                        |f}t        j                  ||      }t        j                  |d   |d          t        j                  |d   |d   d       |j                  |      }t        j                  |d   |d          t        j                  |d   |d   d       y )N
   r)   r?   r   r#   Tr@   r   
RangeIndex
from_ranger   r0   rq   r2   r   r/   r,   r3   rM   )r5   r=   rir   r   s        r;   test_factorize_rangeindexz'TestFactorize.test_factorize_rangeindexe  s     ]]%%eBi099Rrww/3$/
##F1Ix{;
fQi!DA4(
##F1Ix{;
fQi!DArc   c                 *   t         j                  j                  t        d            }t	        j
                  dt        j                        |f}|d d d   }|d   |f}|r|d   d d d   |d   d d d   f}t        j                  ||      }t        j                  |d   |d          t        j                  |d   |d   d       |j                  |      }t        j                  |d   |d          t        j                  |d   |d   d       y )	Nr   r)   rj   r   r#   r?   Tr@   r   )r5   r=   r   r   ri2r   s         r;   $test_factorize_rangeindex_decreasingz2TestFactorize.test_factorize_rangeindex_decreasings  s     ]]%%eBi099Rrww/32hA;#{4R4((1+dd*;;H40
##F1Ix{;
fQi!DAD)
##F1Ix{;
fQi!DArc   c                 ^   t        j                  g dt         j                        }t        j                  t
        d      5  t        j                  |d       d d d        t        j                  d      5  t        j                  |       d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)N)            r#   r   r)   zgot an unexpected keywordr'   T)orderF)
r0   r1   r   r   r   r   r   r/   r,   r-   )r5   r   s     r;   test_deprecate_orderz"TestFactorize.test_deprecate_order  s     xx);]]9,GH 	.OOD-	.''. 	"OOD!	" 	"	. 	.	" 	"s   B8B#B #B,r   r   u8r)   )r   r#   r   i8)__nan__foor   r4   c                     t        j                  |      \  }}|ddg   }t        j                  g dt        j                        }t        j                  ||       t        j                  ||       y )Nr   r#   r   r)   )r   r/   r0   r1   r2   r,   r3   )r5   r   ra   r8   r:   rV   s         r;   ,test_parametrized_factorize_na_value_defaultz:TestFactorize.test_parametrized_factorize_na_value_default  sY     .wA<)277;
##E>:
##G-=>rc   zdata, na_valuer[   r   )r#   r   r#   r$   r#   )r   r#   r   r   r   )r#   r   r#   r   )re    re   rf   re   ) re   r#   r   re   r$   r   )r   r   r   r   r   c                     t        j                  ||      \  }}|ddg   }t        j                  g dt        j                        }t        j                  ||       t        j                  ||       y )N)na_valuer#   rk   )rj   r   rj   r#   r)   )r   factorize_arrayr0   r1   r2   r,   r3   )r5   r   r   ra   r8   r:   rV   s          r;   $test_parametrized_factorize_na_valuez2TestFactorize.test_parametrized_factorize_na_value  s]     ..thGwA<.@
##E>:
##G-=>rc   zdata, uniques)rf   re   Nrf   rf   r$   Int64numpy_arrayextension_array)r   c                    t        j                  ||d      \  }}|r=t        j                  g dt        j                        }t        j
                  |      }n)t        j                  g dt        j                        }|}t        j                  ||       t        |t        j                        rt        j                  ||       y t        j                  ||       y )NT)r=   rZ   )r#   r   rj   r#   r)   )r   r#   rj   r   )r   r/   r0   r1   r2   	safe_sortr,   r3   rB   ndarrayassert_extension_array_equal)r5   r=   r   r8   ra   rV   r:   s          r;   test_factorize_use_na_sentinelz,TestFactorize.test_factorize_use_na_sentinel  s      D$OwXXm277CN$w7XXm277CN&
##E>:dBJJ'''1AB++G5EFrc   )re   Nrf   re   r   r#   r$   r   r2   c                     t        j                  t        j                  |t              d      \  }}t        j                  ||d       t        j                  ||d       y )Nr)   FrY   T
strict_nan)r   r/   r0   r1   r4   r,   r3   r5   r   rV   r:   ra   r8   s         r;   +test_object_factorize_use_na_sentinel_falsez9TestFactorize.test_object_factorize_use_na_sentinel_false  sM    $ HHT(%
w 	##G-=$O
##E>dKrc   )r#   Nr#   r$   r   c                     d}t        j                  t        |      5  t        j                  |d      \  }}d d d        t        j
                  |d       t        j
                  |d       y # 1 sw Y   :xY w)Nr&   r'   FrY   Tr   )r,   r-   r.   r   r/   r3   )r5   r   rV   r:   r6   ra   r8   s          r;   (test_int_factorize_use_na_sentinel_falsez6TestFactorize.test_int_factorize_use_na_sentinel_false  sn    $ A''SA 	J"__T5INE7	J 	##G-=$O
##E>dK		J 	Js   A22A;)re   re   rf   )r   r   r#   category)
categoriesr*   2017
US/Easterntzc                     t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)r   r/   r,   r3   rM   r  s         r;   test_factorize_mixed_valuesz)TestFactorize.test_factorize_mixed_values  s7    , .w
##E>:
g'78rc   c                    t        dt        j                  dg      j                  |      }t        dt        j                  dg      j                  |      }t	        j
                  ||      }|j                         \  }}|j                  d| dk(  sJ t        d      j                  |      }t	        j
                  ||z
  ||z
        }|j                         \  }	}
|
j                  d| dk(  sJ t	        j
                  |j                  d	      |j                  d	            }|j                         \  }}|j                  d| d
k(  sJ y )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   r0   r^   as_unitr   from_arraysr/   r*   r   tz_localize)r5   unitleftrightidxra   catstsidx2codes2cats2idx3codes3cats3s                 r;    test_factorize_interval_non_nanoz.TestFactorize.test_factorize_interval_non_nano  s3   lBFFLABJJ4P|RVV\BCKKDQ''e4mmotzz3D6CCCCq\!!$'((EBJ?({{ 5dV9EEEE((\*E,=,=l,K
 ({{ 4TF:OPPPPrc   N)1__name__
__module____qualname__r<   r   markparametrizerW   rb   ru   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   r1   r   r4   r   r   r^   r   r*   r  r   r  r   r   r2   r   r   r   r  r  r   rc   r;   r!   r!   3   s{   ? [[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$" [[BHHYd+BHH,D9BHH2(C	
?? [[RXXl$/3RXXl$/3RXX0=xHRXX)6:RXX)8#>RXX2&A2FRXX8GR	
?? [[VdE]3[[ .f=#s62
 !Q*':!Qw/		
 -.  G 4G [[0 &XRXXf-=>#rvvs+6: bffc3'XRXXf-=>#rvvs+6:	
LL [[0  XRXXf-=>!RVVQs3 BFFAq!XRXXf-=>!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rc   r!   c            	          e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej(                  j+                  dd ej.                  ddge      fd ej.                  dge      fg      d        Zd Zd Zd Zej(                  j+                  dej:                  eg      d        Zd Zd Z y )!
TestUniquec                     t         j                  j                  d      j                  ddd      }t	        j
                  |      }t        |t         j                        sJ y )Nr$   r   d   2   size)r0   randomdefault_rngintegersr   rD   rB   r   r5   rt   r   s      r;   	test_intszTestUnique.test_ints0  sJ    ii##A&//3R/@c"&"**---rc   c                     t         j                  j                  d      j                  ddd      j	                  d      }t        j                  |      }t        |t         j                        sJ y )Nr$   r   r(  r)  r*  r   )	r0   r,  r-  r.  rF   r   rD   rB   r   r/  s      r;   test_objectszTestUnique.test_objects6  sU    ii##A&//3R/@GGLc"&"**---rc   c                     t        j                  g dt              }t        d      D ]   }t	        t        j                  |             " y )N)rw   rx   CDEr)     )r0   r1   r4   r   r   r   rD   )r5   lstr   s      r;   test_object_refcount_bugz#TestUnique.test_object_refcount_bug<  s7    hh0?t 	#AS!"	#rc   c                    t        j                  t        j                  d      j	                  d      t        j
                  t        j                  d      d      g      }|j                  }|j                          |j	                  d      }t        j                  |      }|j                          t        j                  ||       y )Nri   r$   )r   r  r0   rq   repeattiler_   r=   r   rD   r,   assert_almost_equal)r5   mindexr   r   s       r;   test_on_index_objectzTestUnique.test_on_index_objectA  s    ''YYq\  #RWWRYYq\1%=>
 ==q!6"
vx0rc   c                    |t         j                  t         j                  z   v r	g d}ddg}nt        |      r	g d}ddg}nt	        |      r	g d}ddg}nwt        |      r<t        dd      t        dd      t        dd      g}t        dd      t        dd      g}n0t        |      r	g d}dd	g}nt        |      r	g d
}ddg}ng d}ddg}t        ||      j                         }t        j                  ||      }|t         j                  v r|j                  t              }|j                  j                   dv r-t#        |t$        t&        f      sJ t        j                  |      }t        j(                  ||       y )N)r#   r$   r$   r#   r$   r\   r]   r   TTFTF)rw   rx   rx   rw   rx   r)   )mr   )r,   BYTES_DTYPESSTRING_DTYPESr	   r   r   r   r   r
   r   rD   r0   r1   rF   r4   r*   kindrB   r   r   r3   )r5   any_numpy_dtyper   r8   r   r   s         r;   test_dtype_preservationz"TestUnique.test_dtype_preservationO  sQ   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O4;;=88G?;b...v.H>>*,f}n&EFFFXXf%F
##FH5rc   c                 "   t        j                  ddgd      }t        g d      }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ t        |      }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ |j                  }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ y )N2015-01-03T00:00:00.0000000002015-01-01T00:00:00.000000000r   r)   )rI  rJ  rJ  )
r0   r1   r   r   rD   r,   r3   r*   r   r_   )r5   r   dt_indexr   srt   s         r;   $test_datetime64_dtype_array_returnedz/TestUnique.test_datetime64_dtype_array_returnedt  s    88// 
 
 h'
##FH5||x~~---8a
##FH5||x~~---hhc"
##FH5||x~~---rc   c                     t        j                  g dd      }t        j                  |      }t        j                  ddgd      }t	        j
                  ||       y )N2000rP  2001zdatetime64[s]r)   rP  rQ  r0   r1   r   rD   r,   r3   r5   re   r   r   s       r;   test_datetime_non_nszTestUnique.test_datetime_non_ns  sE    HH-_E188VV,OD
##FH5rc   c                     t        j                  g dd      }t        j                  |      }t        j                  ddgd      }t	        j
                  ||       y )NrO  ztimedelta64[s]r)   i  i  rR  rS  s       r;   test_timedelta_non_nsz TestUnique.test_timedelta_non_ns  sF    HH-5EF188T4L0@A
##FH5rc   c                 "   t        j                  g dd      }t        g d      }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ t        |      }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ |j                  }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ y )N)y  n  '  m8[ns]r)   )rX  rY  rX  rZ  rY  )
r0   r1   r   r   rD   r,   r3   r*   r   r_   )r5   r   td_indexr   rL  rt   s         r;   %test_timedelta64_dtype_array_returnedz0TestUnique.test_timedelta64_dtype_array_returned  s    881B CDh'
##FH5||x~~---8a
##FH5||x~~---hhc"
##FH5||x~~---rc   c                     t        g dt        j                        }t        j                  g dt        j                        }t	        j
                  t        j                  |      |       y )N)r#   r$   r   r   r)   )r#   r$   r   )r   r0   r   r1   r,   r3   r   rD   )r5   rL  rs   s      r;   test_uint64_overflowzTestUnique.test_uint64_overflow  s?    'ryy9hh}BII6
##ELLOS9rc   c                    dt         j                  ddg}t        j                  t        j                  |t
                    }t        j                  dt         j                  dgt
              }t        j                  ||       y )Nre   rg   r)   )r0   r^   r   rD   r1   r4   r,   r3   )r5   duplicated_itemsr   r   s       r;   test_nan_in_object_arrayz#TestUnique.test_nan_in_object_array  sZ    c2288$4FCD88S"&&#.f=
##FH5rc   c                    t        t        d            }t        t        d      t        d      d      }t        t        d            }|j                         }t        j                  ||       t        j                  |      }t        j                  ||       t        t        d      d      }|j                         }t        j                  ||       t        j                  |      }t        j                  ||       t        t        t        d            d      }|j                         }t        j                  ||       t        j                  |      }t        j                  ||       t        t        t        d      t        d      	            }t        |      }|j                         }t        j                  ||       t        j                  |      }t        j                  ||       y )
NbacabcTr  orderedbaabcrg  r   namer  )
r   rJ   rD   r,   assert_categorical_equalr   r   r   r   rM   )r5   r   
expected_org   r   rL  cis          r;   test_categoricalzTestUnique.test_categorical  sf    tE{+ !eedS
 W&
##FH5a
##FH5Wt4
##FJ7a
##FJ7 ;tG}-E:
##FH51
##FH5 k$w-DKPQ#H-
fh/2
fh/rc   c                    t        t        dd      t        dd      g      j                  |      }t        |      }|j	                         }|d d j
                  }t        j                  ||       |j	                         }|d d }t        j                  ||       t        j                  |      }|d d j
                  }t        j                  ||       t        j                  |      }|d d }t        j                  ||       y )N20160101r  r	  r#   )
r   r   r  r   rD   _datar,   r   rM   r   )r5   r  dtir`   r   r   s         r;   test_datetime64tz_awarez"TestUnique.test_datetime64tz_aware  s     *6*6

 '$- 	 Skr7==
''9r7
fh/3r7==
''93r7
fh/rc   c           	         t        j                  t        g d            }t        j                  |t        j                  g dd             t        j                  t        dgdgdz  z               }t        j                  |t        j                  ddgd             d}t        j                  t        |	      5  t        j                  t        d
            }d d d        t        j                  g dt              }t        j                  ||       t        j                  t        t        t        d
                        }t        t        d            }t        j                  ||       y # 1 sw Y   xY w)N)r$   r#   rk   rk   )r$   r#   rk   r   r)   r$   r#   ri   z5unique with argument that is not not a Series, Index,r'   aabcrh   re  )r   rD   r   r,   r3   r0   r1   r-   r.   rJ   r4   r   rm  )r5   r   r6   r   s       r;   test_order_of_appearancez#TestUnique.test_order_of_appearance  s    6,/0
##FBHHYg,NO61#a-01
##FBHHaV7,KLE''SA 	-YYtF|,F	-88O6:
##FH56+d6l";<=tE{+
##FH5	- 	-s   >E33E<c                    t        t        d      t        d      g      j                  j                  |      }t	        j
                  |      }t        j                  dgd| d      }t        j                  ||       y )Nrr  z2016-01-01T00:00:00.000000000zM8[]r)   )
r   r   dtr  r   rD   r0   r1   r,   r3   )r5   r  r`   r   r   s        r;   test_order_of_appearance_dt64z(TestUnique.test_order_of_appearance_dt64  sg    i
+Yz-BCDGGOOPTU388<=s4&PQ]S
##FH5rc   c                     t        t        dd      t        dd      g      j                  |      }t        j                  |      }t        dgd| dd       }t        j                  ||       y )Nrr  r  r	  z2016-01-01 00:00:00zdatetime64[z, US/Eastern])r*   r   )r   r   r  r   rD   r,   rM   )r5   r  rt  r   r   s        r;   test_order_of_appearance_dt64tzz*TestUnique.test_order_of_appearance_dt64tz  sr    *6*6

 '$- 	 3 "#[m+LSW
 	fh/rc   zarg ,expected)1r  2r  r  r)   )r   r   c                     d}t        j                  t        |      5  t        j                  |      }d d d        t        j
                  |       y # 1 sw Y    xY wN-unique with argument that is not not a Seriesr'   r,   r-   r.   r   rD   r3   )r5   argr   r6   r   s        r;   test_tuple_with_stringsz"TestUnique.test_tuple_with_strings(  sK     >''SA 	$YYs^F	$
##FH5	$ 	$   AAc                     t        j                  dd gt              }t        j                  |      }t        j                  dd gt              }t        j                  ||d       y )Nr   r)   Tr   )r0   r1   r4   r   rD   r,   r3   r5   rt   r   r   s       r;   test_obj_none_preservationz%TestUnique.test_obj_none_preservation6  sI    hht}F3388UDM8
##FHFrc   c                     t        j                  ddg      }t        j                  |      }t        j                  dg      }t	        j
                  ||       y )Ng       rp   rR  rS  s       r;   test_signed_zerozTestUnique.test_signed_zero>  sA    HHdC[!188TF#
##FH5rc   c                    t        j                  dt        j                  dd            d   }t        j                  dt        j                  dd            d   }||k7  sJ ||k7  sJ t        j                  ||g      }t        j                  |      }t        j                  t        j                  g      }t        j                  ||       y )Nd=Q          r            )
structunpackpackr0   r1   r   rD   r^   r,   r3   )r5   NAN1NAN2re   r   r   s         r;   test_different_nanszTestUnique.test_different_nansE  s     }}S&++d4F"GHK}}S&++d4F"GHKt||t||HHdD\"188RVVH%
##FH5rc   el_typec                    d}d}t        j                  dt        j                  d|            d   }t        j                  dt        j                  d|            d   }||k7  sJ ||k7  sJ t        j                  ||g|      }t        j                  |      }|j                  dk(  sJ t        j                  dt        j                  d|d               d   }||k(  sJ y )Nl         r  r  r  r   r)   r#   )r  r  r  r0   r1   r   rD   r+  )	r5   r  bits_for_nan1bits_for_nan2r  r  re   r   result_nan_bitss	            r;   test_first_nan_keptzTestUnique.test_first_nan_keptQ  s     +*}}S&++dM"BCAF}}S&++dM"BCAFt||t||HHdD\11{{a --fkk#vay.IJ1M-///rc   c                     ||u ry t        j                  ||gt              }t        j                  |      }|j
                  dk(  sJ |d   |u sJ |d   |u sJ y )Nr)   r$   r   r#   )r0   r1   r4   r   rD   r+  )r5   unique_nulls_fixtureunique_nulls_fixture2re   r   s        r;   test_do_not_mangle_na_valuesz'TestUnique.test_do_not_mangle_na_valuesb  sj    #88HH*,AB&Q1{{at++++t,,,,rc   c                     t        dt        j                  dgdz  |      }t        j                  |      }t        j                  dt        j                  dg|      }t        j                  ||       y )Nr#   r$   rk   r)   )r   r   NArD   r1   r,   r   )r5   any_numeric_ea_dtyper`   r   r   s        r;   test_unique_maskedzTestUnique.test_unique_maskedl  sV    a]Q&.BC388QqM1EF
''9rc   N)!r   r!  r"  r0  r2  r9  r?  rG  rM  rT  rV  r]  r_  rb  rp  ru  rx  r|  r~  r   r#  r$  r0   r1   r4   r  r  r  r  r   r  r  r  r   rc   r;   r&  r&  /  s    ..#
1#6J.>66.&:
6'0R066(60 [[hbhhSz@Axrxxv67	
66G6
6 [[YV(<=0 >0 -:rc   r&  c                      | t         j                  j                  d      j                  ddd            }t	        j
                  |      }t        t	        j                  |            }||k(  sJ y )Nr$   r   r      )r0   r,  r-  r.  r   nunique_intsr   rD   )index_or_series_or_arrayr_   r   r   s       r;   test_nunique_intsr  t  s[    %bii&;&;A&>&G&G2r&RSF'F5<<'(HXrc   c                      e Zd Zd Zd Zd Zej                  j                  dg d      ej                  j                  dg d      d               Z	d	 Z
ej                  j                  dg d      d
        Zej                  j                  dg d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                  j                  dg  ee       ej2                  g       g      d        Zd Zd Zd Zd Zd Zd Z y) TestIsinc                    d}t        j                  t        |      5  t        j                  dd       d d d        t        j                  t        |      5  t        j                  ddg       d d d        t        j                  t        |      5  t        j                  dgd       d d d        y # 1 sw Y   xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)NzOonly list-like objects are allowed to be passed to isin\(\), you passed a `int`r'   r#   )r   r   r   r   isin)r5   r6   s     r;   test_invalidzTestIsin.test_invalid}  s    " 	 ]]9C0 	JJq!	]]9C0 	JJq1#	]]9C0 	JJsA	 			 		 		 	s#   B4C C4B= C	Cc                    d}t        j                  t        |      5  t        j                  ddgdg      }d d d        t        j                  ddg      }t        j                  |       t        j                  t        j                  ddg      dg      }t        j                  ddg      }t        j                  ||       t        j                  t        ddg      dg      }t        j                  ddg      }t        j                  ||       t        j                  t        ddg      t        dg            }t        j                  ddg      }t        j                  ||       t        j                  t        ddg      dh      }t        j                  ddg      }t        j                  ||       t        j                  t        |      5  t        j                  ddgdg      }d d d        t        j                  ddg      }t        j                  ||       t        j                  t        ddg      t        dg            }t        j                  ddg      }t        j                  ||       t        j                  t        ddg      dh      }t        j                  ddg      }t        j                  ||       t        j                  t        |      5  t        j                  ddgdg      }d d d        t        j                  ddg      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   VxY w# 1 sw Y   QxY w)	N+isin with argument that is not not a Seriesr'   r#   r$   TFre   rf   )	r,   r-   r.   r   r  r0   r1   r3   r   )r5   r6   r   r   s       r;   ru   zTestIsin.test_basic  s   ;''SA 	-ZZA,F	-88T5M*
##FH5BHHaV,qc288T5M*
##FH5FAq6NQC088T5M*
##FH5FAq6NFA3K888T5M*
##FH5FAq6NQC088T5M*
##FH5''SA 	3ZZc
SE2F	388T5M*
##FH5FC:.u>88T5M*
##FH5FC:.688T5M*
##FH5''SA 	1ZZc
QC0F	188UEN+
##FH5K	- 	-*	3 	3	1 	1s#   L8M(M8MMMc                    t        dd      j                  }t        j                  ||d   g      }t	        j
                  g d      }t        j                  ||       t        j                  ||dd       }t	        j
                  g d      }t        j                  ||       t        j                  |t        |dd             }t	        j
                  g d      }t        j                  ||       t        dd      j                  }t        j                  ||d   g      }t	        j
                  g d      }t        j                  ||       t        j                  ||dd       }t	        j
                  g d      }t        j                  ||       t        j                  |t        |dd             }t	        j
                  g d      }t        j                  ||       y )	Nr}   rk   periodsr   TFFr$   rA  r   )
r   r_   r   r  r0   r1   r,   r3   r   r   r  s       r;   test_i8zTestIsin.test_i8  sl   Q/66C#a&*8801
##FH5CQq*88/0
##FH5CS1X/88/0
##FH5gq188C#a&*8801
##FH5CQq*88/0
##FH5CS1X/88/0
##FH5rc   dtype1)r[  r   M8[ns, UTC]z	period[D]r*   )r   f8r   c                 z   t        dd      j                  }t        |j                  d            j                  j                  |      }|j                  d      j                  |      }t        j                  ||      }t        j                  |j                  t              }t        j                  ||       y )N
2013-01-01rk   r  r   r)   )r   _valuesr   viewr1   rF   r   r  r0   zerosshaperH   r,   r3   )r5   r*   r  dtart   compsr   r   s           r;   +test_isin_datetimelike_values_numeric_compsz4TestIsin.test_isin_datetimelike_values_numeric_comps  s    
 q199SXXd^$**//7%%e,E3'88EKKt4
##FH5rc   c                     t        ddd      j                  }t        j                  ||dd       }t	        j
                  t        |      t              }d|d<   d|d	<   t        j                  ||       y )
N20000101i rL  )r  r   r   r$   r)   Tr#   )
r   r_   r   r  r0   r  r   rH   r,   r3   r5   rL  r   r   s       r;   
test_largezTestIsin.test_large  sb    z7=DDAq1v&88CF$/
##FH5rc   c                 F   t        dd      j                  }t        |j                  d            j                  j                  |      }t
        |d<   t        j                  |t
        g      }t        j                  g dt              }t        j                  ||       y )Nr  rk   r  r   r   r  r)   )r   r  r   r  r1   r   r   r  r0   rH   r,   r3   )r5   r*   r  rt   r   r   s         r;   test_isin_datetimelike_all_natz'TestIsin.test_isin_datetimelike_all_nat  su     q199SXXd^$**//6AC#'880=
##FH5rc   )r[  r   r  c                 l   t        dd      j                  }t        |j                  d            j                  j                  |      }|D cg c]  }t        |       }}d}t        j                  t        |      5  t        j                  ||      }d d d        j                         sJ t        j                  |t
              }t        j                  t        |      5  t        j                  ||      }	d d d        	j                         sJ y c c}w # 1 sw Y   xY w# 1 sw Y   -xY w)Nr  rk   r  r   z2The behavior of 'isin' with dtype=.* is deprecatedr'   r)   )r   r  r   r  r1   strr,   r-   r.   r   r  allr0   )
r5   r*   r  rt   rz   valsr6   resvals2res2s
             r;   )test_isin_datetimelike_strings_deprecatedz2TestIsin.test_isin_datetimelike_strings_deprecated  s     q199SXXd^$**//6 #$1A$$B''SA 	(**S$'C	(wwyyS)''SA 	*::c5)D	*xxzz %	( 	(
	* 	*s   D D'D*D'*D3c                     t        ddd      }t        |      }t        |d<   t        j                  |j
                  t        g      }t        j                  g dt              }t        j                  ||       y )Nr  rk   UTCr  r
  r   r  r)   )r   r   r   r   r  r  r0   r1   rH   r,   r3   )r5   rt  r`   r  rs   s        r;   test_isin_dt64tz_with_natz"TestIsin.test_isin_dt64tz_with_nat  s[     qU;SkAjjse,hh+48
##C-rc   c                 ~   t        j                  g d      }g d}t        t        dg      j	                  ||            }t        t        dg      j	                  t        j                  ddg      |            }t        j                  g d      }t        j                  ||      }t        j                  ||       y Nr   rh   r#   r   )TTFT)	r0   r1   r   r   
from_codesr   r  r,   r3   )r5   r  r  SdStr   r   s          r;   test_categorical_from_codesz$TestIsin.test_categorical_from_codes
  s    xx%K$//d;<K$//!Q0@$GH8856B#
##Hf5rc   c                 Z   t        j                  g d      }g d}t        dg      j                  ||      }t        dg      j                  t        j                  ddg      |      }t        j                  g d      }t	        j
                  ||      }t        j                  ||       y r  )r0   r1   r   r  r   r  r,   r3   )r5   r  r  catotherr   r   s          r;   test_categorical_isinzTestIsin.test_categorical_isin  s    xx%1#))$5QC ++BHHaV,<dC8856C'
##Hf5rc   c                 0   t         j                  g}t         j                  g}t        j                  dg      }d}t        j                  t
        |      5  t        j                  ||      }d d d        t        j                  |       y # 1 sw Y    xY w)NTr  r'   )	r0   r^   r1   r,   r-   r.   r   r  r3   r5   r  r_   r   r6   r   s         r;   test_same_nan_is_inzTestIsin.test_same_nan_is_in  st     &&88TF#;''SA 	/ZZv.F	/
##Hf5	/ 	/s   BBc                 <   t        j                  dd      }t         j                  |d<   t        j                  |t        j
                  t         j                  dg            }t        j                  t        |      t              }t        j                  ||       y Nr\   iAB r   r#   r)   )r0   r<  r^   r   r  r1   onesr   rH   r,   r3   r  s       r;   test_same_nan_is_in_largez"TestIsin.test_same_nan_is_in_large,  sd    GGC#vv!Arxx45773q6.
##FH5rc   c                 Z   t        j                  dd      }t        |      }t         j                  |d<   |j	                  t        j
                  t         j                  dg            }t        t        j                  t        |      t                    }t        j                  ||       y r  )r0   r<  r   r^   r  r1   r  r   rH   r,   assert_series_equal)r5   rL  seriesr   r   s        r;    test_same_nan_is_in_large_seriesz)TestIsin.test_same_nan_is_in_large_series4  sp    GGC#vv!RXXrvvqk23"''#a&56
vx0rc   c                     G d d      } |        |       }}d}t        j                  t        |      5  t        j                  t	        j
                  |g|g      t        j                  dg             t        j                  t	        j
                  |g|g      t        j                  dg             d d d        y # 1 sw Y   y xY w)Nc                       e Zd ZdefdZd Zy)0TestIsin.test_same_object_is_in.<locals>.LikeNanreturnc                      y)NFr   )r5   r  s     r;   __eq__z7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__D  s    rc   c                      y)Nr   r   )r5   s    r;   __hash__z9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__G  s    rc   N)r   r!  r"  rH   r  r  r   rc   r;   LikeNanr  C  s    t rc   r  r  r'   TF)r,   r-   r.   r3   r   r  r0   r1   )r5   r  re   rf   r6   s        r;   test_same_object_is_inzTestIsin.test_same_object_is_in=  s    	 	 y')1;''SA 	Q''

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

A3(<bhhw>OP		Q 	Q 	Qs   BC  C	c                    t        d      g}t        d      g}|d   |d   usJ t        j                  t        j                  |      |      }t        j                  t        j                  dg      |       t        j                  t        j                  |t              t        j                  |t                    }t        j                  t        j                  dg      |       t        j                  t        j                  |t        j                        t        j                  |t        j                              }t        j                  t        j                  dg      |       y )Nr^   r   Tr)   )
floatr   r  r0   r1   r,   r3   rL   r4   r   )r5   r  r_   r   s       r;   r  zTestIsin.test_different_nansS  s     u,Qxvay((( BHHUOV4
##BHHdV$4f= JJuF+RZZf-M
 	##BHHdV$4f= JJuBJJ/F"**1U
 	##BHHdV$4f=rc   c                     ddg}dg}t        j                  ddg      }d}t        j                  t        |      5  t        j                  ||      }d d d        t        j                  |       y # 1 sw Y    xY w)Nss*   42Fz2isin with argument that is not not a Series, Indexr'   )r0   r1   r,   r-   r.   r   r  r3   r  s         r;   test_no_castzTestIsin.test_no_castk  sp     r
88UEN+B''SA 	/ZZv.F	/
##Hf5	/ 	/s   A22A;emptyr)   c                     t        ddg      }t        j                  ddg      }t        j                  ||      }t        j                  ||       y )Nre   rf   F)r   r0   r1   r   r  r,   r3   )r5   r  r  r   r   s        r;   
test_emptyzTestIsin.test_emptyv  sD     c3Z 88UEN+D%(
##Hf5rc   c                 D   t        j                  dt         j                  dz  t        d      gt              }t        j                  t        d      gt              }t        j                  g d      }t        j                  ||      }t        j                  ||       y )Nr^                 ?r)   )FFT)	r0   r1   r^   r  r4   r   r  r,   r3   )r5   r  r  r   r   s        r;   test_different_nan_objectsz#TestIsin.test_different_nan_objects  sj    %"eEl;6Jxxuf58801E4(
##Hf5rc   c                    t        j                  dt        j                  dd            d   }t        j                  dt        j                  dd            d   }||k7  sJ ||k7  sJ t        j                  ||gt        j
                        }t        j                  |gt        j
                        }t        j                  ||      }t        j                  ddg      }t        j                  ||       t        j                  |gt        j
                        }t        j                  ||      }t        j                  ddg      }t        j                  ||       y )Nr  r  r  r   r  r)   T)
r  r  r  r0   r1   r   r   r  r,   r3   )r5   r  r  rt   lookup1r   r   lookup2s           r;   test_different_nans_as_float64z'TestIsin.test_different_nans_as_float64  s   
 }}S&++d4F"GHK}}S&++d4F"GHKt||t|| hhd|2::6((D64C)88T4L)
##FH5((D64C)88T4L)
##FH5rc   c                     t        dddgi      }|j                  dg      }t        dddgi      }t        j                  ||       y)zComparing df with int`s (1,2) with a string at isin() ("1")
        -> should not match values because int 1 is not equal str 1r_   r#   r$   r  FN)r   r  r,   assert_frame_equalr5   dfr   expected_falses       r;   test_isin_int_df_string_searchz'TestIsin.test_isin_int_df_string_search  sI     1a&)*#"Huen#=>
fn5rc   c                     t        dt        j                  dgi      }|j                  t        j                  dgt
                    }t        dddgi      }t        j                  ||       y)zComparing df with nan value (np.nan,2) with a string at isin() ("NaN")
        -> should not match values because np.nan is not equal str NaNr_   r$   NaNr)   FN)r   r0   r^   r  r1   r4   r,   r  r  s       r;   test_isin_nan_df_string_searchz'TestIsin.test_isin_nan_df_string_search  sY     2661+./5'89"Huen#=>
fn5rc   c                     t        dddgi      }|j                  t        j                  dgt                    }t        dddgi      }t        j                  ||       y)zComparing df with floats (1.4245,2.32441) with a string at isin() ("1.4245")
        -> should not match values because float 1.4245 is not equal str 1.4245r_   gn?g#Ed@z1.4245r)   FN)r   r  r0   r1   r4   r,   r  r  s       r;    test_isin_float_df_string_searchz)TestIsin.test_isin_float_df_string_search  sV     67"3458*F;<"Huen#=>
fn5rc   c                     t        dgt        j                        }|j                  dg      }t        d      }t	        j
                  ||       y )Nl   
G r)   l    
G F)r   r0   r   r  r,   r  r5   r`   r   r   s       r;   test_isin_unsigned_dtypez!TestIsin.test_isin_unsigned_dtype  sA    )*"))<./0%=
vx0rc   N)!r   r!  r"  r  ru   r  r   r#  r$  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r4   r0   r1   r  r   r  r
  r  r  r  r   rc   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1rc   r  c                       e Zd Zd Zd Zd Zd Zej                  j                  de
dg      d        Zd Zd	 Zd
 Zd Zej                  j                  dej"                  e
df      d        Zd Zd Zy)TestValueCountsc                    t         j                  j                  d      j                  d      }t	        |d      }d}t        j                  t        |      5  t        j                  |      }d d d        g d}t        j                  |      j                  t        d            }t        g d|d	
      }t        j                  j!                         |j!                                y # 1 sw Y   ~xY w)Ni  rl   !pandas.value_counts is deprecatedr'   )gV-g}?5^Ig/$ۿgףp=
?gʡE?Tri  )r#   r   r$   r#   countrK   rk  )r0   r,  r-  standard_normalr   r,   r-   r.   r   value_countsr   from_breaksrF   r   r   r  
sort_index)r5   rt   factorr6   r   breaksrK   r   s           r;   test_value_countsz!TestValueCounts.test_value_counts  s    ii##D)99!<S! 2''SA 	0''/F	07))&1889IRV9WX,e'B
v002H4G4G4IJ	0 	0s   C++C4c                    g d}d}t        j                  t        |      5  t        j                  |d      }d d d        t        dgt        j                  dg      d	      }t        j                  |       t        j                  t        |      5  t        j                  |d
d      }d d d        t        d
d
gt        j                  ddg      d	      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   QxY w)N)r#   r$   rk   rl   r  r'   r#   binsrl   )Zd;?rn   r  r  r$   F)r"  r=   )r#        @)r$  rn   )	r,   r-   r.   r   r  r   r   rC   r  )r5   rL  r6   r   r   s        r;   test_value_counts_binsz&TestValueCounts.test_value_counts_bins  s    1''SA 	3''2F	3C}00,@w
 	vx0''SA 	?''>F	?F++\:,FG

 	vx0	3 	3	? 	?s   C3C?3C<?Dc                    d}t        j                  t        |      5  t        j                  t        j                  ddg            }d d d        t              dk(  sJ t        j                  t        |      5  t        j                  t        j                  ddg      d      }d d d        t        |      dk(  sJ t        j                  t        |      5  t        j                  t        g d            }d d d        t        |      dk(  sJ d}t        j                  t        |      5  t        j                  t        |      5  t        j                  t        j                  d	dgt        
      d       d d d        d d d        y # 1 sw Y   KxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   7xY w# 1 sw Y   y xY w)Nr  r'   r#   r\   r!  )r#   r\   r  r$   z*bins argument only works with numeric datar  r)   )r,   r-   r.   r   r  r0   r1   r   r   r   r   r   r4   )r5   msg2r   r6   s       r;   test_value_counts_dtypesz(TestValueCounts.test_value_counts_dtypes  s{   2''TB 	<''!S(:;F	<6{a''TB 	D''!S(:CF	D6{a''TB 	?''}(=>F	?6{a:]]9C0 	M++MF M""288S!HF#C!LM	M 	M	< 	<	D 	D	? 	?M M	M 	MsG   +F<-F!F+2G3F7GFF(+F47G 	<GGc                 Z   t        t        j                  d      t        gd      }t	        ddg      }d}||fD ]r  }t        j                  t        |      5  t        j                  |      }t        j                  |d	      }d d d        t              d
k(  sJ t              dk(  rrJ  t        t        d      d
id      }t        j                  t        |      5  t        j                  |      }d d d        t        j                  |       t        t        j                  d      d
id      }	t        j                  t        |      5  t        j                  |      }
d d d        t        j                  
|	       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   9xY w)NrZ  timedelta64[ns]r)   r   z
2014-01-01r  r'   Fdropnar#   r$   z2014-01-01 00:00:00r  rj  )r   r0   timedelta64r   r   r,   r-   r.   r   r  r   r   r  )r5   tdr{  r6   r`   vc
vc_with_naexp_dt	result_dtexp_td	result_tds              r;   test_value_counts_natz%TestValueCounts.test_value_counts_nat  sp   R^^E*C08IJ%./18 	(C++ME C'',"//EB
C r7a<<z?a'''	( #891=GL''SA 	/**2.I	/
y&1.2A''SA 	/**2.I	/
y&1C C	/ 	/
	/ 	/s$   -F"FF!F	F!F*r*   zM8[us]c                 |   t        t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      g|      }|j                         }t        t        ddd      t        ddd      t        ddd      g|      }t        g d|d      }t	        j
                  ||       y )	Ni  r#   i  ip  r)   rk   r$   r#   r  r  )r   r   r  r   r,   r  )r5   r*   r`   r  	exp_indexrs   s         r;   &test_value_counts_datetime_outofboundsz6TestValueCounts.test_value_counts_datetime_outofbounds  s     q!$q!$q!$q!$q!$q!$ 

  dAq!8D!Q#7$19MN
	 Yig>
sC(rc   c                    t        t        t        d                  }|j                         }t        g dt	        g d      d      }t        j                  ||d       |j                  j                         }|j                         }|j                  j                         |_	        t        j                  ||d       y )Naaabbcr7  rh   r  r  Tcheck_index_type)
r   r   rJ   r  r   r,   r  r  
as_orderedrK   r  s       r;   rp  z TestValueCounts.test_categorical  s    ;tH~./!-o>W
 	vx$G EE!!224
vx$Grc   c           	      r   t        t        t        d                  }t        j                  |j
                  d<   |j                         }t        g dt        g dg d      d      }t        j                  ||d	       |j                  d
      }t        g dt        dddt        j                  g      d      }t        j                  ||d	       t        t        t        d      dg d            }t        j                  |j
                  d<   |j                         }t        g dt        g dg dd      d      }t        j                  ||d	       |j                  d
      }t        g dt        dddt        j                  gg dd      d      }t        j                  ||d	       y )N
aaaaabbbccr#   )rl   rk   r$   rh   rl  r  r  Tr<  Fr+  )rl   rk   r$   r#   re   rf   rg   )rf   re   rg   )rg  r  rf  )
r   r   rJ   r0   r^   ilocr  r   r,   r  r  s       r;   test_categorical_nansz%TestValueCounts.test_categorical_nans.  so   ;tL123FFq	!"?O

 	vx$Gu- 0#sC1H IPW
 	vx$G \*D_U
 FFq	!"*
 
 	vx$Gu-"c3'OT 
 	vx$Grc   c           	          t        t        t        d      t        d      d            }|j                         }t        g dt        g dt        d      d      d      }t	        j
                  ||d	       y )
NbbbaacabcdTrf  )rk   r$   r#   r   )rf   re   rg   r  r  r  r<  )r   r   rJ   r  r,   r  r  s       r;   test_categorical_zeroesz'TestValueCounts.test_categorical_zeroesY  sc    ;tH~$v,PTUV!$ft 
 	vx$Grc   c           
      z   t        j                  t        g d      j                  d      t        ddgddgd             t        j                  t        g d      j                  d      t        ddgddgd             t        j                  t        dgd	z  dgdz  z   d gd
z  z         j                  d      t        d	dgt	        ddgt
              d             t        j                  t        dgd
z  dgd	z  z   d gdz  z         j                  d      t        g dg dd             t        j                  t        g d      j                  d      t        ddgddgd             t        j                  t        g d      j                  d      t        ddgddgd             t        j                  t        g d      j                  d      t        ddgddgd             t        g d      j                  d      }t        g dg dd      }t        j                  ||       y )NrA  Tr+  r$   r#   Fr  r  rk   ri   r)   )ri   rk   r$   )TFN)皙$@rm   rm   rm   rH  )rH  rm   rm   N)rH  rH  rm   rm   rm   Nr7  )rm   rH  N)r,   r  r   r  r   r4   )r5   r   r   s      r;   test_value_counts_dropnaz(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
vx0rc   r   c                    t        dgdz  dgdz  z   t        j                  gdz  z         }|j                  |      }|j	                  dd      }t        g dt        t        j                  d	d
g|      d      }t        j                  ||       |j	                  dd      }t        ddgt        d	d
g|      d      }t        j                  ||       y )Nr#   r$   rk   ri   TF)	normalizer,  )g      ?g333333?g?r]   r\   r)   
proportionr  g333333?g?)r   r0   r^   rF   r  r,   r  )r5   r*   rL  s_typedr   r   s         r;   test_value_counts_normalizedz,TestValueCounts.test_value_counts_normalized  s     A37aS1W$x!|34((5/%%U%C"&&#s+59

 	vx0%%T%B#Jfc3Zu=L
 	vx0rc   c                 >   t        j                  dgt         j                        }t        dgdgd      }d}t	        j
                  t        |      5  t        j                  |      }d d d        t	        j                  |       t        j                  ddgt              }t        ddgddgd      }t	        j
                  t        |      5  t        j                  |      }d d d        t	        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ,xY w)	Nr   r)   r#   r  r  r  r'   rj   )r0   r1   r   r   r,   r-   r.   r   r  r  r4   )r5   rt   r   r6   r   s        r;   test_value_counts_uint64z(TestValueCounts.test_value_counts_uint64  s    hhwbii01#eW7;1''SA 	-'',F	- 	vx0hhE{&11a&U'B''SA 	-'',F	- 	vx0	- 	-	- 	-s   DDDDc                    t        j                  dddddt         j                  g      }t        |      j	                  d      }t        g dt        j                  g dd	      d
      }t        j                  ||       y )Nrk   r#   r$   rl   r!  )r$   r$   r#   ))r#  r]   )r]   ro   )ro   rn   zinterval[float64, right]r)   r  r  )	r0   r1   r^   r   r  r   rC   r,   r  )r5   r_   r   r   s       r;   test_value_counts_seriesz(TestValueCounts.test_value_counts_series  sp    1aAq"&&12,,!,4++6>X 
 	vx0rc   N)r   r!  r"  r  r%  r(  r5  r   r#  r$  r4   r9  rp  rB  rF  rI  r0   r   rN  rP  rR  r   rc   r;   r  r    s    K1&M&2. [[Wvx&89) :),H)HVH$1L [[Wrzz68&DE1 F1$1 1rc   r  c                      e Zd Zd Zej
                  j                  d ej                  g d       ej                  dddej                  ddddej                  dg
       ej                  g d	       ej                  g d
e
       ej                  g dej                        g      d        Zd Zej
                  j                  d eg d       ej                   dd      g      d        Zej
                  j                  dg dg dfg dddgfg dg dfg      d        Zej
                  j                  dg d ej                  g de
      fg      d        Zy )!TestDuplicatedc           	      R   t        j                  ddt         j                  ddt         j                  gt              }t	        j
                  |      }t        j                  g d      }t        j                  ||       t	        j
                  |d      }t        j                  g d      }t        j                  ||       t	        j
                  |d      }t        j                  g d	      }t        j                  ||       t	        j
                  |d
      }t        j                  g d      }t        j                  ||       t        j                  dt              }t        t        ddt         j                  t         j                  gdz  dt         j                  dt         j                  gdz              D ]
  \  }}|||<    t	        j
                  |      }d
gdz  }dgdz  }t        j                  ||z         }t        j                  ||       t	        j
                  |d      }t        j                  ||z         }t        j                  ||       t	        j
                  |d
      }t        j                  ||z         }t        j                  ||       y )Nr   r#   r$   r)   )FFFTFTfirstkeeplast)TFTFFFF)TFTTFT   rl   T)r0   r1   r^   r4   r   
duplicatedr,   r3   r  	enumeratezip)r5   keysr   r   r   tfalsestruess           r;   test_duplicated_with_nasz'TestDuplicated.test_duplicated_with_nas  s   xxArvvq!RVV4FC!!$'88DE
##FH5!!$W588DE
##FH5!!$V488DE
##FH5!!$U388BC
##FH5xx(Arvvrvv&*Q266,BQ,FG
 	DAq DG	
 !!$'1
88FUN+
##FH5!!$V488EFN+
##FH5!!$U388EEM*
##FH5rc   case)
r#   r$   r#   ri   rk   r$   rl   r#   ri      g?g@gffffff
@g@gffffff@)
      ?      ?       @       @re        @      @y      @      @rf  y      @      @re  rg  y      @      @)
re   rf   re   erg   rf   r  re   rh  fr)   )
r#   r   r#      r   r   '   r#   rj     c                    t        j                  g d      }t        j                  g d      }||z  }t        j                  |d      }t	        j
                  ||       t        j                  |d      }t	        j
                  ||       t        j                  |d      }t	        j
                  ||       t        |      t        |d      fD ]z  }|j                  d      }t	        j
                  ||       |j                  d      }t	        j
                  ||       |j                  d      }t	        j
                  ||       | t        |      t        |d      fD ]  }	|	j                  d      }t	        j                  |t        |             |	j                  d      }t	        j                  |t        |             |	j                  d      }t	        j                  |t        |              y )	N
FFTFFTFTTF
TTTTFFFFFFrV  rW  rY  Fr  r)   )	r0   r1   r   r[  r,   r3   r   r   r  )
r5   rc  	exp_firstexp_last	exp_false	res_firstres_last	res_falser  rL  s
             r;   test_numeric_object_likesz(TestDuplicated.test_numeric_object_likes  s   4 HHN
	 88N
 (	$$T8	
##Iy9##Dv6
##Hh7$$T6	
##Iy9 $Kt:!>? 	>CG4I''	9=~~6~2H''(;E2I''	9=	> ,t: >? 	AA'2I""9fY.?@|||0H""8VH-=>%0I""9fY.?@	Arc   c                 d   g d}g d}t        j                  |D cg c]  }t        |       c}      t        j                  |D cg c]  }t        |d       c}      t        j                  |D cg c]  }t        |d       c}      t        j                  |D cg c]  }t        j                  |       c}      t        j                  |D cg c]  }t        |       c}      g}t        j                  g d      }t        j                  g d      }||z  }|D ]  }t        j                  |d	
      }	t        j                  |	|       t        j                  |d
      }
t        j                  |
|       t        j                  |d
      }t        j                  ||       t        |      t        |d      t        |t              fD ]z  }|j                  d	
      }	t        j                  |	|       |j                  d
      }
t        j                  |
|       |j                  d
      }t        j                  ||       | t        |      t        |d      t        |t              fD ]  }|j                  d	
      }	t        j                  |	t        |             |j                  d
      }
t        j                  |
t        |             |j                  d
      }t        j                  |t        |               y c c}w c c}w c c}w c c}w c c}w )N)

2011-01-01
2011-01-02rx  r   
2011-01-03ry  z
2011-01-04rx  r   z
2011-01-06)
1 days2 daysr{  r   z3 daysr|  z4 daysr{  r   z6 daysr  r	  r5  r   rn  ro  rV  rW  rY  Fr  r)   )r0   r1   r   r   r   r   r   r[  r,   r3   r   r4   r   r  )r5   r{  r.  r  casesrp  rq  rr  rc  rs  rt  ru  r  rL  s                 r;   test_datetime_likesz"TestDuplicated.test_datetime_likes&  s   

 HHB/qil/0HHR@il3@AHH26afQS)67HH31bmmA&34HHB/qil/0
 HHN
	 88N
 (	 &	ED((G<I''	9=''6:H''(;((E:I''	9= dd*-d&) B
  NNN8	++IyA>>v>6++Hh?NNN6	++IyAB  tt:.t6* E
 LLgL6	&&y&2CD<<V<4&&x1ABLLeL4	&&y&2CDE5&	E 0@63/s   LL
4L#!L(L-r   r   rk   c                     |j                   du sJ t        j                  |j                         t	        j
                  g d             y )NT)FFF)	is_uniquer,   r3   r[  r0   r1   )r5   rc  s     r;   test_unique_indexz TestDuplicated.test_unique_indexx  s5    ~~%%%
##DOO$5rxx@U7VWrc   zarr, uniques)r   r   r#   r#   r   r   r   r  r  r   )r   r  r  r   )rf   rg   re   rf   r  r  r  r  )r   rf   r$   re   rk   r   )r   r  r  c                    t        j                  t        |      t              }||d d  d}t	        j
                  t        |      5  t        j                  |      }d d d        t	        j                  |       y # 1 sw Y    xY w)Nr)   r  r'   )
r0   r  r   r4   r,   r-   r.   r   rD   r3   )r5   rt   r8   r   r6   r   s         r;   test_unique_tuplesz!TestDuplicated.test_unique_tuples}  sh      88CL7=''SA 	$YYs^F	$
##FH5	$ 	$s   A<<Bzarray,expected)re  r   r#   r        ?       @r  )re  y                r+   r  r  c                     d}t        j                  t        |      5  t        j                  |      }d d d        t        j
                  |       y # 1 sw Y    xY wr  r  )r5   r1   r   r6   r   s        r;   test_unique_complex_numbersz*TestDuplicated.test_unique_complex_numbers  sL     >''SA 	&YYu%F	&
##FH5	& 	&r  N)r   r!  r"  rb  r   r#  r$  r0   r1   r^   r4   r   rv  r~  r   r   r   r  r  r  r   rc   r;   rT  rT    s   %6N [[BHH34BHHc3RVVS#sCMNBHH BHHGvVBHH>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	6rc   rT  c                      e Zd Zej                  j                  dej                   ed      D  cg c]  }d| 	 c}} fej                   ed      D  cg c]  }d| 	 c}} fej                   ej                  dej                        fej                   ej                  dej                        fej                    ej                  dej"                        fg      d        Zej                  j                  dej                   ed      D  cg c]  }d| 	 c}} fej                   ed      D  cg c]  }d| 	 c}} fej                   ej                  dej                        fej                   ej                  dej                        fej                    ej                  dej"                        fg      d        Zyc c}} w c c}} w c c}} w c c}} w )TestHashTablezhtable, datar7  foo_r)   c                    t        |      }|t        j                  k(  rt        j                  |j
                  d<   n7|t        j                  k(  r$t        j                  d t        g|j
                  dd |j                  dd      j                  d      }|j                  j                  |       |j                  d	      j                  } |       j                  |j                        }t        j                  ||        |       j                  |j                  d
      \  }}t        j                  ||       ||   }	t        j                  |	|j                         y )N    rk   Tfracreplacedropr   rV  rW  )return_inverse)r   r   Float64HashTabler0   r^   locPyObjectHashTabler   samplereset_indexr_   r   drop_duplicatesrD   r,   r3   )
r5   htabler   r   rL  s_duplicatedexpected_uniqueresult_uniqueresult_inversereconstrs
             r;   test_hashtable_uniquez#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
##Hl.A.ABrc   c                    t        |      }|t        j                  k(  rt        j                  |j
                  d<   n7|t        j                  k(  r$t        j                  d t        g|j
                  dd |j                  dd      j                  d      }|j                  j                  |       |j                         j                  } |       j                  |j                        \  }}|j                         j                         j                  }	t!        j"                  ||	       |||       }
|j                         j                  }t!        j"                  |
|       y )Nr  r  rk   Tr  r  r   )r   r   r  r0   r^   r  r  r   r  r  r_   r   r   r/   r,  r  r,   r3   )r5   r  r   r   rL  r  na_maskr  r  r  result_reconstructexpected_reconstructs               r;   test_hashtable_factorizez&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;;
##$68LMrc   N)r   r!  r"  r   r#  r$  r   r  r   StringHashTabler  r0   rq   r   Int64HashTabler   UInt64HashTabler   r  r  ).0r   s   00r;   r  r    s   [[!!d#D1d1#J#DEeDk!BD*!BC  )"))D

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

"CD			$bhh ?@4ryy!AB	
	N	N] $E!BL $E!Bs   GGG$ G*r  c                      e Zd Zej                  j                  dej                  ej                  dddej                  dddej                  g
dej                  dddej                  dddej                  g
g      d        Zej                  j                  dej                  d	         d
        Z
ej                  j                  dej                  ej                  g      d        Zd Zej                  j                  d        Zy)TestRankrt   rm   r#   r$   rk   rn   c                 h   t        j                  d      }t        j                  |      }t        j                  |       }|j                         }t        j                  |      }t        j                  ||<   |j                  |      }t        j                  ||<   t        j                  ||       y )Nzscipy.stats)r   importorskipr0   r1   isfinitecopylibalgosrank_1dry   rankdatar^   r,   r=  )r5   rt   sp_statsr   r   rs   s         r;   test_scipy_compatzTestRank.test_scipy_compat  s     &&}5hhsmC  hhj!!#&FFD	$FFD	
vs+rc   r*   
AllIntegerc                    t        j                  ddgt         j                        }t        j                  ddg|      }|j                  |       t	        |      }t        j                  |      }t        j                  ||       y )Nr#   r$   r)   r(  r   )	r0   r1   r   r   r   r   rankr,   r3   )r5   r   r*   rs   r   r`   r   s          r;   ru   zTestRank.test_basic  sb    hh1vRZZ0xxC.H%TlC
##FC0rc   c                     t        j                  ddgt         j                        }t        ddg|      }t	        j
                  t        j                  |      |       y )Nr#   r$   r)   r   )r0   r1   r   r   r,   r3   r   r  )r5   r*   rs   rL  s       r;   r_  zTestRank.test_uint64_overflow  sB    hh1vRZZ0Au:U+
##EJJqM37rc   c                     t        j                  g dg dg dgg      }d}t        j                  t        |      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nr   )rl   ri   rd  )rl  rZ  	   z%Array with ndim > 2 are not supportedr'   )r0   r1   r   r   r   r   r  )r5   rt   r6   s      r;   test_too_many_ndimszTestRank.test_too_many_ndims  sM    hhIy9:;5]]9C0 	JJsO	 	 	s   AA%c                 (   t        j                  d      }t        j                  |d      j	                         }|dk(  sJ t        j                  d      j                  dd      }t        j                  |d      j	                         }|dk(  sJ y )Ni  T)pctr#   i  r$   )r0   rq   r   r  maxreshape)r5   r_   r   s      r;   test_pct_max_many_rowszTestRank.test_pct_max_many_rows$  sw     9%F-113{{9%--i;F-113{{rc   N)r   r!  r"  r   r#  r$  r0   r^   r  	typecodesru   r   r   r_  r  
single_cpur  r   rc   r;   r  r    s    [[VVRVVS#sBFFAq!RVVD"&&#sCAsBFFC	
,, [[Wbll<&@A1 B1 [[Wrzz299&=>8 ?8 [[ rc   r  c                      e Zd Zd Zej
                  j                  dej                  d   ej                  d   z         d        Z	d Z
ej
                  j                  dej                  d   ej                  d   z         d        Zd Zej
                  j                  deeg      d	        Zd
 Zd Zd Zd Zd Zd Zd Zy)TestModec                     t        g t        j                  t        g t                    }t        j                  t        j                  t        j                  g             |j                         y )Nr)   )r*   rK   )r   r0   r   r   intr,   r3   r   moder1   r_   r5   rs   s     r;   test_no_modezTestMode.test_no_mode1  s@    Rrzzr1EF
##EJJrxx|$<cjjIrc   r{  r  Floatc                 
   dg}dg}dg}ddg}t        ||      }t        ||      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       t        ||      }t        ||      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       y )Nr#   r)   r   r,   r3   r   r  r_   r  r5   r{  
exp_singledata_single	exp_multi
data_multir`   rs   s           r;   test_mode_singlezTestMode.test_mode_single5  s     S
cC	V
[+Zr*
##EJJszz$:CJJG
sxxz3/Zr*Yb)
##EJJszz$:CJJG
sxxz3/rc   c                 B   t        dgt              }t        j                  t	        j
                  |j                        |j                         t        g dt              }t        j                  t	        j
                  |j                        |j                         y )Nr#   r)   rh   )r   r  r,   r3   r   r  r_   r4   r  s     r;   test_mode_obj_intzTestMode.test_mode_obj_intH  s^    aS$
##EJJszz$:CJJG_F3
##EJJszz$:CJJGrc   c                 @   dg}dgdz  dgdz  z   }ddg}dgdz  dgdz  z   dgdz  z   }t        ||      }t        ||      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       t        ||      }t        ||      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       y )Nr#   ri   r$   rk   r)   r  r  s           r;   test_number_modezTestMode.test_number_modeO  s    S
cAga'F	S1WsQw&!q0
[+Zr*
##EJJszz$:CJJG
sxxz3/Zr*Yb)
##EJJszz$:CJJG
sxxz3/rc   c                    dg}dgdz  dgdz  z   }t        |d      }t        |d      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       y )Nrf   re   r$   rk   rg   r)   r  )r5   rs   r   r`   s       r;   test_strobj_modezTestMode.test_strobj_modea  sn    euqyC519$T%S$
##EJJszz$:CJJG
sxxz3/rc   c                    dg}dgdz  dgdz  z   }t        ||      }t        ||      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       y )Nbarr   r$   rk   r)   r  )r5   r{  rs   r   r`   s        r;   test_strobj_multi_charzTestMode.test_strobj_multi_charj  sn    gw{eWq[(T$S#
##EJJszz$:CJJG
sxxz3/rc   c                     t        g dd      }t        g dd      }t        j                  t        j                  |j
                        |j                         t        j                  |j	                         |       t        ddgd      }t        g dd      }t        j                  t        j                  |j
                        |j                         t        j                  |j	                         |       y )N)
1900-05-03rz  
2013-01-02r   r)   )rz  r  r  rz  r  )rz  r  r  rz  r  r   r,   r   r   r  r_   r  r  r5   rs   r`   s      r;   test_datelike_modezTestMode.test_datelike_modet  s    ?xP?xP
''

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

3::(>L
sxxz3/rc   c                     t        g dd      }t        g dd      }t        j                  t        j                  |j
                        |j                         t        j                  |j	                         |       t        ddgd      }t        g dd      }t        j                  t        j                  |j
                        |j                         t        j                  |j	                         |       y )N)-1 days0 daysr{  r*  r)   )r{  r  r  2 minr   r   r   z-1 dayz-1 day 2 minr  r  r  r  s      r;   test_timedelta_modezTestMode.test_timedelta_mode  s    4<MN4<MN
''

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

3::(>L
sxxz3/rc   c                    t        dgt              }t        g d      }t        j                  t	        j
                  |j                        |j                         t        j                  |j                         |       y )Nr   r)   )r#   r   r   )r   r4   r,   r3   r   r  r_   r  r  s      r;   test_mixed_dtypezTestMode.test_mixed_dtype  sR    eWF+&'
##EJJszz$:CJJG
sxxz3/rc   c                 n   t        dgt        j                        }t        g dt        j                        }t        j                  t        j                  |j                        |j                         t        j                  |j                         |       t        ddgt        j                        }t        ddgt        j                        }t        j                  t        j                  |j                        |j                         t        j                  |j                         |       y )Nr   r)   )r#   r   r   r#   )	r   r0   r   r,   r3   r   r  r_   r  r  s      r;   r_  zTestMode.test_uint64_overflow  s    eWBII.&bii8
##EJJszz$:CJJG
sxxz3/aZryy1aZryy1
##EJJszz$:CJJG
sxxz3/rc   c                    t        ddg      }|}t        |      j                         j                  }t	        j
                  ||       t        g d      }t        dgddg      }t        |      j                         j                  }t	        j
                  ||       t        g d      }t        ddgg d      }t        |      j                         j                  }t	        j
                  ||       y )	Nr#   r$   r#   re   re   re   rl  r#   r#   r$   rk   rk   rk   r   )r   r   r  r  r,   rm  )r5   rg   rs   r  s       r;   rp  zTestMode.test_categorical  s    AQinn&&
##C-&3%QH5Qinn&&
##C-(1a&Y7Qinn&&
##C-rc   c                    t        g d      }t        g dt        j                        }t	        j
                  t        j                  |      |j                         t        g d      }t        dgt              }t	        j
                  t        j                  |      |j                         t        g d      }t        ddgt        j                        }t	        j
                  t        j                  |      |j                         t        g dd	      }t        j                  t        d
      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nr   r)   r  re   r  r#   rk   r  r*  TimedeltaIndexr'   )r   r   r0   r   r,   r3   r   r  r_   r4   r   r   AttributeError)r5   r  rs   s      r;   
test_indexzTestMode.test_index  s    IYbhh/
##EJJsOSZZ@M"cU&)
##EJJsOSZZ@O$aV288,
##EJJsOSZZ@J#
 ]]>1AB 	JJsO	 	 	s   7EEc                     t        g dd      }|j                         }t        dgd      }t        j                  ||       y )N)r#   r#   rk   r   rj  r#   )r   r  r,   r  r  s       r;   test_ser_mode_with_namez TestMode.test_ser_mode_with_name  s7    YU+1#E*
vx0rc   N)r   r!  r"  r  r   r#  r$  r0   r  r  r  r  r  r  r4   r  r  r  r  r_  rp  r  r  r   rc   r;   r  r  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. *1rc   r  c                       e Zd Zej                  j                  dddg      d        Zd Zej                  j                  dddg      d        Zy	)
TestDiffr*   r   r[  c                    t        j                  d      j                  t         j                        j	                  |      j                  dd      }|j                  j                  dd      |d d df<   t        j                  |dd	      }t        j                  |j                  d
      dz  }t        j                  dd      |d d df<   t        j                  dd      |dd d f<   t        j                  ||       t        j                  |j                  dd	      }t        j                  ||j                         y )N   rk   rl   r   nsr$   r#   r   axisr*  r)   )r0   rq   rF   r   r  r  r*   typer   diffr  r  r-  r,   r3   Tr5   r*   rt   r   r   s        r;   test_diff_datetimelike_natz#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
##FH5CEE11-
##FHJJ7rc   c                     t        ddd      j                  }d}t        j                  t        |      5  t        j                  |dd       d d d        y # 1 sw Y   y xY w)	Nr  rk   r  r  z#cannot diff DatetimeArray on axis=1r'   r#   r  )r   rs  r   r   
ValueErrorr   r  )r5   r  r6   s      r;   test_diff_ea_axiszTestDiff.test_diff_ea_axis  sN    q\BHH3]]:S1 	'JJsAA&	' 	' 	's   AA!int8int16c                     t        j                  g d|      }t        j                  |d      }t        j                  t         j                  ddddgd      }t        j                  ||       y )N)r   r#   r#   r   r   r)   r#   r   rj   rG   )r0   r1   r   r  r^   r,   r3   r  s        r;   test_diff_low_precision_intz$TestDiff.test_diff_low_precision_int  sQ    hhe4C#88RVVQ2q1C
##FH5rc   N)	r   r!  r"  r   r#  r$  r  r  r  r   rc   r;   r  r    sY    [[Wx&:;8 <8' [[Wvw&786 96rc   r  opc                 &    | g d      } | g d      } | g d      }t        |t        j                        r-t        j                  ||      }t        j                  ||       y t        j                  ||      }t        j                  ||       y )N)rk   r#   rk   rl   )r$   rk   r#   r#   )rk   rk   r#   r#   rl   r$   )rB   r0   r   r   union_with_duplicatesr,   r3   r   )r  lvalsrvalsr   r   s        r;   test_union_with_duplicatesr    su     |E|E$%H(BJJ',,UE:
##FH5,,UE:
''9rc   )@r   r  numpyr0   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!   r&  r  r  r  rT  r  r  r  r  r#  r$  r1   r  r   rc   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
:rc   