
    .i2                    &   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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l0m+c m1Z2  G d d	      Z3 G d
 d      Z4d 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; G d d      Z<ejz                  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DatetimeTZDtype)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexIntervalIndex
MultiIndexNaTPeriodPeriodIndexSeries	Timedelta	Timestampcut
date_rangetimedelta_rangeto_datetimeto_timedelta)DatetimeArrayTimedeltaArrayc                   	   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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d Z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 d-d#$      d.f ej<                  g d/d&$      d0f ej<                  g d1d&$      d.f ej<                  g d2e $      d3f ej<                  g d4e $      d5f ej<                  g d6e $      d7fg      d8        Z!ej                  j!                  d9 ej<                  g d:e $       ej<                  d;d3ge $      f e"j<                  d<d.e"jF                  d<gd=$       e"j<                  d<d.gd=$      fgd>d?g@      dA        Z$ej                  j!                  dg dB ej<                  g dC ejJ                  dD      $       ej<                  d3ejL                  d;ge $      fd3ejL                  d;d3g ej<                  g dC ejJ                  dD      $       ej<                  d3ejL                  d;ge $      fg      dE        Z'ej                  j!                  d ej<                  g dFe $       ej<                  g d+ ejJ                  dD      $       ej<                  d.ejL                  d<gdG$      f ej<                  d.ejL                  d.d<gejP                  $       ej<                  g d+ ejJ                  dD      $       ej<                  d.ejL                  d<gejP                  $      fg      dH        Z)ej                  j!                  d e* e+g dI             ej<                  g dJejX                  $       e-d3d;gd3d;gdKL      f e. e+g dI             ej<                  g dJejX                  $       e-d3d;gd3d;gdKL      f e. e/dMdMgdNO             ej<                  d,d,gejX                  $       e/dMgdNO      fg      dP        Z0dQ Z1yR)STestFactorizec                 N   t        j                  g dt              }t        j                  |      \  }}t        j                  g dt         j
                        }t        j                  ||       t        j                  g dt              }t        j                  ||       y )N)             @      ?dtype)r   r$   r%   )      ?               @        r&   )nparraycomplexr   	factorizeintptmassert_numpy_array_equal)selfr,   labelsuniquesexpected_labelsexpected_uniquess         U/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/test_algos.pytest_factorize_complexz$TestFactorize.test_factorize_complex7   sk    w7//%0((9BGG<
##FO<88$B'R
##G-=>    c                    |}|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sortr'   Texact)r.   r   
isinstancer   from_tuplesuniquer(   r+   float16astypefloat32boolobjectsort_valueslistindexasarrayr/   r0   r1   assert_index_equal)r2   index_or_series_objr<   objresult_codesresult_uniquesconstructorexpected_arrr6   expected_uniques_listvalexpected_codess               r7   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'         ?       @)
r+   r,   nanr   r.   r/   r   r0   r1   rK   )r2   valuessercodesr4   rT   r6   s          r7   +test_series_factorize_use_na_sentinel_falsez9TestFactorize.test_series_factorize_use_na_sentinel_false`   s    1aBFF+,Vnu=w,bgg> #sBFF!34
##E>:
g'78r9   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brc   rb   rb   crd   rd   r'   rb   rc   rd   Tr;   )r   r$   r$   r   r   r%   r%   r%      )r   r$   r%         )ri   rh   r%   r$   r         @)      @      @r[   rZ           )rm   rZ   r[   rl   rk   )
r+   r,   rF   r   r.   r0   r1   r/   aranger(   )r2   itemsr_   r4   exparrs         r7   
test_basiczTestFactorize.test_basicl   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1r9   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   rg   r$   r%   rh   r'   Tr;   )r%   r%   rg   rh   r   r$   )r   r+   r\   infr   r.   r,   r/   r0   r1   r   rK   )r2   xr_   r4   rp   s        r7   
test_mixedzTestFactorize.test_mixed   s    Cbffc489+whh*"'':
##E3/S#tRVV,-
gs+6whh*"'':
##E3/T2663,-
gs+r9   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.   r+   r,   r/   r0   r1   r   rK   r2   v1v2rw   r_   r4   rp   s          r7   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+r9   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.   r+   r,   r/   r0   r1   rK   r   r|   s          r7   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'<=r9   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.   r+   r,   r/   r0   r1   rK   r|   s          r7   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'=>r9   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'   )rg      )na_sentinelr   )r+   r,   r\   htObjectFactorizerlenr.   r/   setr0   r1   pdisna)r2   keyrizerr   idsexpecteds         r7   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	7r9   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%   rh   r$   r$   r   int64r'   )FFFFFT)mask)r   r$   r%   r   r   rg   r$   r%   rh   )r+   r,   r   Int64Factorizerr   r.   r/   r0   r1   r4   to_array)r2   datar   r   resultr   r6   s          r7   test_factorizer_with_maskz'TestFactorize.test_factorizer_with_mask   s    xx*':xxAB""3t9-D188/rww?
##FH588IW=
##EMM$:$:$<>NOr9   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%   rh   )r   r$   r%   r   rg   r'   r   )r+   r,   r\   r   r   r   r.   rC   rF   r/   r0   r1   r4   r   )r2   r   r   r   r   r6   s         r7   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Or9   z&data, expected_codes, expected_uniques)r$   r$   r$   r%   r   r   r   nonsense)r   r$   r%   r$   rh   )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                 >   t        j                  |t              }t        j                  |      \  }}t        j                  |t        j                  |t        j                               t        j                  |t              }t        j                  ||       y Nr'   )
comasarray_tuplesaferF   r   r.   r0   r1   r+   r,   r/   )r2   r   rT   r6   r_   r4   expected_uniques_arrays          r7   test_factorize_tuple_listz'TestFactorize.test_factorize_tuple_list   sl    $ $$T8d+w
##E288N"''+RS!$!6!67Gv!V
##G-CDr9   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 .*matchrg   Tr;   )
r+   r,   ranger-   rF   pytestraises	TypeErrorr   r.   )r2   ix17msgs       r7   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%   )r+   r,   r/   r   r.   r0   r1   )r2   any_real_numpy_dtyper(   r   rT   r6   r_   r4   s           r7   test_numeric_dtype_factorizez*TestFactorize.test_numeric_dtype_factorize  ss    $xxE2,bgg>88QF%8.w
##E>:
##G-=>r9   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)rZ       חArZ   :0yE>r   rZ   r'   write)r   r$   r   r%   r$   r   )rZ   r   r   )	r+   r,   float64setflagsr/   r   r.   r0   r1   r2   writabler   rT   r6   r_   r4   s          r7   test_float64_factorizez$TestFactorize.test_float64_factorize$  s    xx7rzzJH%"4BGGD88$4BJJG.w
##E>:
##G-=>r9   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$   )	r+   r,   uint64r   r/   r   r.   r0   r1   r   s          r7   test_uint64_factorizez#TestFactorize.test_uint64_factorize.  s    xx1CH%)277;88YN"))D.w
##E>:
##G-=>r9   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   r   r/   r   r.   r0   r1   r   s          r7   test_int64_factorizez"TestFactorize.test_int64_factorize8  s    xx8IH%)277;88Y$9J.w
##E>:
##G-=>r9   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)rb   rd   rb   rc   rd   r'   r   )r   r$   r   r%   r$   rb   rd   rc   )	r+   r,   rF   r   r/   r   r.   r0   r1   r   s          r7   test_string_factorizez#TestFactorize.test_string_factorizeB  sy    xx1@H%/A88O6B.w
##E>:
##G-=>r9   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 )Nrb   rd   rc   r'   r   )r   r$   rg   rg   r   r%   rg   r$   r   )r+   r,   r\   r   rF   r   r/   r   r.   r0   r1   r   s          r7   test_object_factorizez#TestFactorize.test_object_factorizeL  s    xxc4c3DFSH%"=RWWM88O6B.w
##E>:
##G-=>r9   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])	r+   r,   
datetime64r   r/   r   r.   r0   r1   r   s          r7   test_datetime64_factorizez'TestFactorize.test_datetime64_factorizeV  s    xx'@AB(SH%1#RWW588,-5E
 d+w
##E>:
##G-=>r9   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   r+   rn   r/   r   r.   r0   r1   rK   )r2   r<   rir   r   s        r7   test_factorize_rangeindexz'TestFactorize.test_factorize_rangeindexc  s    ]]%%eBi099Rrww/3$/
##F1Ix{;
fQi!DA4(
##F1Ix{;
fQi!DAr9   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'   rg   r   r$   r;   Tr=   r   )r2   r<   r   r   ri2r   s         r7   $test_factorize_rangeindex_decreasingz2TestFactorize.test_factorize_rangeindex_decreasingp  s    ]]%%eBi099Rrww/32hA;#{4R4((1+dd*;;H40
##F1Ix{;
fQi!DAD)
##F1Ix{;
fQi!DAr9   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)
r+   r,   r   r   r   r   r   r.   r0   assert_produces_warning)r2   r   s     r7   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   rF   c                     t        j                  |      \  }}|ddg   }t        j                  g dt        j                        }t        j                  ||       t        j                  ||       y )Nr   r$   r   r'   )r   r.   r+   r,   r/   r0   r1   )r2   r   r_   r4   r6   rT   s         r7   ,test_parametrized_factorize_na_value_defaultz:TestFactorize.test_parametrized_factorize_na_value_default  sY     .wA<)277;
##E>:
##G-=>r9   zdata, na_valuerY   r   )r$   r   r$   r%   r$   )r   r$   r   r   r   )r$   r   r$   r   )rb    rb   rc   rb   ) rb   r$   r   rb   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$   rh   )rg   r   rg   r$   r'   )r   factorize_arrayr+   r,   r/   r0   r1   )r2   r   r   r_   r4   r6   rT   s          r7   $test_parametrized_factorize_na_valuez2TestFactorize.test_parametrized_factorize_na_value  s]     ..thGwA<.@
##E>:
##G-=>r9   zdata, uniques)rc   rb   Nrc   rc   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<   rX   )r$   r   rg   r$   r'   )r   r$   rg   r   )r   r.   r+   r,   r/   	safe_sortr0   r1   r?   ndarrayassert_extension_array_equal)r2   r<   r   r4   r_   rT   r6   s          r7   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Fr9   )rb   Nrc   rb   r   r$   r%   r   r/   c                     t        j                  t        j                  |t              d      \  }}t        j                  ||d       t        j                  ||d       y )Nr'   FrW   T
strict_nan)r   r.   r+   r,   rF   r0   r1   r2   r   rT   r6   r_   r4   s         r7   +test_object_factorize_use_na_sentinel_falsez9TestFactorize.test_object_factorize_use_na_sentinel_false  sM    $ HHT(%
w 	##G-=$O
##E>dKr9   )r$   Nr$   r%   r   c                     t        j                  |d      \  }}t        j                  ||d       t        j                  ||d       y )NFrW   Tr   )r   r.   r0   r1   r  s         r7   (test_int_factorize_use_na_sentinel_falsez6TestFactorize.test_int_factorize_use_na_sentinel_false  s=    $ uEw
##G-=$O
##E>dKr9   )rb   rb   rc   )r   r   r$   category)
categoriesr(   2017
US/Easterntzc                     t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)r   r.   r0   r1   rK   r  s         r7   test_factorize_mixed_valuesz)TestFactorize.test_factorize_mixed_values  s7    , .w
##E>:
g'78r9   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   r+   r\   as_unitr   from_arraysr.   r(   r   tz_localize)r2   unitleftrightidxr_   catstsidx2codes2cats2idx3codes3cats3s                 r7    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Pr9   N)2__name__
__module____qualname__r8   rU   r`   rr   rx   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r+   r,   r   rF   r   r   NAr   r(   r\   r  r   r  r   r   r/   r   r   r   r  r   r   r9   r7   r"   r"   6   s   	?L<
9%2N, ,$>"?7	PP [[0 =4 <3
 .|=UV	
 E! E2	???????B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	
?? [[ .f=#s62
 !Qq)9!Qw/		
 -.  GG [[0 &XRXXf-=>#rvvs+6: bffc3'XRXXf-=>#rvvs+6:	
LL [[0 7XRXXf-=>!RVVQs3 !RVVQ*"**=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r9   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d Zej*                  j-                  dd ej0                  ddge      fd ej0                  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!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)r+   randomdefault_rngintegersr   rA   r?   r   r2   rq   r   s      r7   	test_intszTestUnique.test_ints)  sJ    ii##A&//3R/@c"&"**---r9   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   )	r+   r.  r/  r0  rC   r   rA   r?   r   r1  s      r7   test_objectszTestUnique.test_objects/  sU    ii##A&//3R/@GGLc"&"**---r9   c                     t        j                  g dt              }t        d      D ]   }t	        t        j                  |             " y )N)rt   ru   CDEr'     )r+   r,   rF   r   r   r   rA   )r2   lstr   s      r7   test_object_refcount_bugz#TestUnique.test_object_refcount_bug5  s7    hh0?t 	#AS!"	#r9   c                    |j                  d      }t        j                  |      }t        t        j                  |j                              }t        |t              r"t        j                  ||j                        }nAt        ||j                        }t        |j                  t              r|j                         }t        j                   ||d       y )Nr%   )namesr'   Tr=   )repeatr   rA   rH   dictfromkeysr]   r?   r   r@   r=  r   r(   r   	normalizer0   rK   )r2   rI   r   unique_valuesr   s        r7   test_index_returnedzTestUnique.test_index_returned:  s    Qe$ T]]5<<89eZ(!--m5;;OH]%++>H%++7#--/
fhd;r9   c                 8   t        j                  t        g dt              t        g dd      g      }|j	                         \  }}t        j                  g t
        j                        }t        j                  ||       t        j                  ||d d        y )Nrb   )namer(   r   f4r'   r   )r   from_productr   rF   r.   r+   r,   r/   r0   r1   rK   )r2   mir_   r4   	exp_codess        r7   test_factorize_multiindex_emptyz*TestUnique.test_factorize_multiindex_emptyI  sw    $$2Cv.bs$0OP
 wHHRrww/	
##E95
gr"1v.r9   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%   rZ   r[   r   TTFTF)rt   ru   ru   rt   ru   r'   )mr   )r0   BYTES_DTYPESSTRING_DTYPESr	   r   r   r-   r   r
   r   rA   r+   r,   rC   rF   r(   kindr?   r   r    r1   )r2   any_numpy_dtyper   r4   r   r   s         r7   test_dtype_preservationz"TestUnique.test_dtype_preservationS  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5r9   c                    t        j                  ddgd      }t        g d      }t        j                  |      }t        |      }t        j                  ||d       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'   )rT  rU  rU  Tr=   )r+   r,   r   r   rA   r0   rK   r   r1   r(   r]   )r2   dt_arrdt_indexr   r   srq   s          r7   $test_datetime64_dtype_array_returnedz/TestUnique.test_datetime64_dtype_array_returnedx  s    // 
 
 h'v&
fhd;8a
##FF3||v||+++hhc"
##FF3||v||+++r9   c                     t        j                  g dd      }t        j                  |      }t        j                  ddgd      }t	        j
                  ||       y )N2000r\  2001zdatetime64[s]r'   r\  r]  r+   r,   r   rA   r0   r1   r2   rb   r   r   s       r7   test_datetime_non_nszTestUnique.test_datetime_non_ns  sE    HH-_E188VV,OD
##FH5r9   c                     t        j                  g dd      }t        j                  |      }t        j                  ddgd      }t	        j
                  ||       y )Nr[  ztimedelta64[s]r'   i  i  r^  r_  s       r7   test_timedelta_non_nsz TestUnique.test_timedelta_non_ns  sF    HH-5EF188T4L0@A
##FH5r9   c                 8   t        j                  g dd      }t        g d      }t        j                  |      }t        |      }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'   )rd  re  rd  rf  re  )r+   r,   r   r   rA   r0   rK   r(   r   r1   r]   )r2   td_arrtd_indexr   r   rX  rq   s          r7   %test_timedelta64_dtype_array_returnedz0TestUnique.test_timedelta64_dtype_array_returned  s    /x@ CDh''
fh/||x~~---8a
##FF3||v||+++hhc"
##FF3||v||+++r9   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   r+   r   r,   r0   r1   r   rA   )r2   rX  rp   s      r7   test_uint64_overflowzTestUnique.test_uint64_overflow  s?    'ryy9hh}BII6
##ELLOS9r9   c                    dt         j                  ddg}t        j                  t        j                  |t
                    }t        j                  dt         j                  dgt
              }t        j                  ||       y )Nrb   rd   r'   )r+   r\   r   rA   r,   rF   r0   r1   )r2   duplicated_itemsr   r   s       r7   test_nan_in_object_arrayz#TestUnique.test_nan_in_object_array  sZ    c2288$4FCD88S"&&#.f=
##FH5r9   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rt  r   rE  r  )
r   rH   rA   r0   assert_categorical_equalr   r   r   r   rK   )r2   r   
expected_ord   r   rX  cis          r7   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/r9   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   rA   _datar0   r   rK   r   )r2   r  dtir^   r   r   s         r7   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/r9   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             t        j                  g dt              }t        j                  |      }t        j                  g d	t              }t        j                  ||       t        j                  t        t        t        d
                        }t        t        d            }t        j                  ||       y )N)r%   r$   rh   rh   )r%   r$   rh   r   r'   r%   r$   rf   )rb   rb   rc   rd   re   aabcrr  )r   rA   r   r0   r1   r+   r,   rF   r   rH   ry  )r2   r   r   r   s       r7   test_order_of_appearancez#TestUnique.test_order_of_appearance  s     6,/0
##FBHHYg,NO61#a-01
##FBHHaV7,KLxx,F;488O6:
##FH56+d6l";<=tE{+
##FH5r9   c                    t        t        d      t        d      g      j                  j                  |      }t	        j
                  |      }t        j                  dgd| d      }t        j                  ||       y )Nr~  z2016-01-01T00:00:00.000000000zM8[]r'   )
r   r   dtr  r   rA   r+   r,   r0   r1   )r2   r  r^   r   r   s        r7   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5r9   c                     t        t        dd      t        dd      g      j                  |      }t        j                  |      }t        dgd| dd       }t        j                  ||       y )Nr~  r	  r
  z2016-01-01 00:00:00zdatetime64[z, US/Eastern])r(   r   )r   r   r  r   rA   r0   rK   )r2   r  r  r   r   s        r7   test_order_of_appearance_dt64tzz*TestUnique.test_order_of_appearance_dt64tz  sr    *6*6

 '$- 	 3 "#[m+LSW
 	fh/r9   zarg ,expected)1r  2r  r  r'   )r   r   c                     t        j                  |t              }t        j                  |      }t        j                  ||       y r   )r   r   rF   r   rA   r0   r1   )r2   argr   r   s       r7   test_tuple_with_stringsz"TestUnique.test_tuple_with_strings,  s3     ##Cv63
##FH5r9   c                     t        j                  dd gt              }t        j                  |      }t        j                  dd gt              }t        j                  ||d       y )Nr   r'   Tr   )r+   r,   rF   r   rA   r0   r1   r2   rq   r   r   s       r7   test_obj_none_preservationz%TestUnique.test_obj_none_preservation9  sI    hht}F3388UDM8
##FHFr9   c                     t        j                  ddg      }t        j                  |      }t        j                  dg      }t	        j
                  ||       y )Ng       rm   r^  r_  s       r7   test_signed_zerozTestUnique.test_signed_zeroA  sA    HHdC[!188TF#
##FH5r9   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packr+   r,   r   rA   r\   r0   r1   )r2   NAN1NAN2rb   r   r   s         r7   test_different_nanszTestUnique.test_different_nansH  s     }}S&++d4F"GHK}}S&++d4F"GHKt||t||HHdD\"188RVVH%
##FH5r9   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  r+   r,   r   rA   r-  )	r2   r  bits_for_nan1bits_for_nan2r  r  rb   r   result_nan_bitss	            r7   test_first_nan_keptzTestUnique.test_first_nan_keptT  s     +*}}S&++dM"BCAF}}S&++dM"BCAFt||t||HHdD\11{{a --fkk#vay.IJ1M-///r9   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$   )r+   r,   rF   r   rA   r-  )r2   unique_nulls_fixtureunique_nulls_fixture2rb   r   s        r7   test_do_not_mangle_na_valuesz'TestUnique.test_do_not_mangle_na_valuese  sj    #88HH*,AB&Q1{{at++++t,,,,r9   c                     t        dt        j                  dgdz  |      }t        j                  |      }t        j                  dt        j                  dg|      }t        j                  ||       y )Nr$   r%   rh   r'   )r   r   r&  rA   r,   r0   r   )r2   any_numeric_ea_dtyper^   r   r   s        r7   test_unique_maskedzTestUnique.test_unique_maskedo  sV    a]Q&.BC388QqM1EF
''9r9   c                     t        j                  g d      }t        j                  |      }t        j                  g d      }t        j                  ||       y )N)      ?      ?r%   rh   )r  r*   y      @        )r   r,   rA   r0   r   )r2   arr_complexr   r   s       r7   test_unique_NumpyExtensionArrayz*TestUnique.test_unique_NumpyExtensionArrayv  sB    hh
 ;'8845
''9r9   N)#r!  r"  r#  r2  r4  r;  rC  rJ  rR  rY  r`  rb  rj  rl  ro  r|  r  r  r  r  r   r$  r%  r+   r,   rF   r  r  r  r  r   r  r  r  r  r   r9   r7   r(  r(  (  s   ..#
</#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 -::r9   r(  c                      | t         j                  j                  d      j                  ddd            }t	        j
                  |      }t        t	        j                  |            }||k(  sJ y )Nr%   r   r      )r+   r.  r/  r0  r   nunique_intsr   rA   )index_or_series_or_arrayr]   r   r   s       r7   test_nunique_intsr    s[    %bii&;&;A&>&G&G2r&RSF'F5<<'(HXr9   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)r2   r   s     r7   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                 2   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                  ddgt              }t        j                  |dg      }t        j                  ddg      }t	        j
                  ||       t        j                  t        |      t        dg            }t        j                  ddg      }t	        j
                  ||       t        j                  t        |      dh      }t        j                  ddg      }t	        j
                  ||       t        j                  |dg      }t        j                  ddg      }t	        j
                  ||       y )Nr$   r%   TFrb   rc   r'   )r   r  r+   r,   r0   r1   r   rF   )r2   r   r   r  s       r7   rr   zTestIsin.test_basic  s   BHHaV,qc288T5M*
##FH5FAq6NQC088T5M*
##FH5FAq6NFA3K888T5M*
##FH5FAq6NQC088T5M*
##FH5hhSz0C#'88T5M*
##FH5F3K788T5M*
##FH5F3K#/88T5M*
##FH5C!%88UEN+
##FH5r9   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 )	Nrz   rh   periodsr   TFFr%   rL  r   )
r   r]   r   r  r+   r,   r0   r1   r   r   r  s       r7   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5r9   dtype1)rg  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-01rh   r  r   r'   )r   _valuesr   viewr,   rC   r   r  r+   zerosshaperE   r0   r1   )r2   r(   r  dtarq   compsr   r   s           r7   +test_isin_datetimelike_values_numeric_compsz4TestIsin.test_isin_datetimelike_values_numeric_comps  s    
 q199SXXd^$**//7%%e,E3'88EKKt4
##FH5r9   c                     t        ddd      j                  }t        j                  ||dd       }t	        j
                  t        |      t              }d|d<   d|d	<   t        j                  ||       y )
N20000101i rX  )r  r   r   r%   r'   Tr$   )
r   r]   r   r  r+   r  r   rE   r0   r1   r2   rX  r   r   s       r7   
test_largezTestIsin.test_large  sb    z7=DDAq1v&88CF$/
##FH5r9   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  rh   r  r   r   r  r'   )r   r  r   r  r,   r   r   r  r+   rE   r0   r1   )r2   r(   r  rq   r   r   s         r7   test_isin_datetimelike_all_natz'TestIsin.test_isin_datetimelike_all_nat  su     q199SXXd^$**//6AC#'880=
##FH5r9   )rg  r   r  c                    t        dd      j                  }t        |j                  d            j                  j                  |      }|D cg c]  }t        |       }}t        j                  ||      }|j                         rJ t        j                  |t
              }t        j                  ||      }|j                         rJ y c c}w r  )
r   r  r   r  r,   strr   r  anyr+   )	r2   r(   r  rq   rw   valsresvals2res2s	            r7   ,test_isin_datetimelike_strings_returns_falsez5TestIsin.test_isin_datetimelike_strings_returns_false  s     q199SXXd^$**//6 #$1A$$jjd#779}S)zz#u%88:~: %s   Cc                     t        ddd      }t        |      }t        |d<   t        j                  |j
                  t        g      }t        j                  g dt              }t        j                  ||       y )Nr  rh   UTCr  r  r   r  r'   )r   r   r   r   r  r  r+   r,   rE   r0   r1   )r2   r  r^   r  rp   s        r7   test_isin_dt64tz_with_natz"TestIsin.test_isin_dt64tz_with_nat   s[     qU;SkAjjse,hh+48
##C-r9   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   re   r$   r   )TTFT)	r+   r,   r   r   
from_codesr   r  r0   r1   )r2   r  r  SdStr   r   s          r7   test_categorical_from_codesz$TestIsin.test_categorical_from_codes  s    xx%K$//d;<K$//!Q0@$GH8856B#
##Hf5r9   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  )r+   r,   r   r  r   r  r0   r1   )r2   r  r  catotherr   r   s          r7   test_categorical_isinzTestIsin.test_categorical_isin  s    xx%1#))$5QC ++BHHaV,<dC8856C'
##Hf5r9   c                     t        j                  t         j                  gt              }t         j                  g}t        j                  dg      }t	        j
                  ||      }t        j                  ||       y )Nr'   T)r+   r,   r\   rF   r   r  r0   r1   r2   r  r]   r   r   s        r7   test_same_nan_is_inzTestIsin.test_same_nan_is_in  sU     "&&0&&88TF#E6*
##Hf5r9   c                 <   t        j                  dd      }t         j                  |d<   t        j                  |t        j
                  t         j                  dg            }t        j                  t        |      t              }t        j                  ||       y NrZ   iAB r   r$   r'   )r+   tiler\   r   r  r,   onesr   rE   r0   r1   r  s       r7   test_same_nan_is_in_largez"TestIsin.test_same_nan_is_in_large+  sd    GGC#vv!Arxx45773q6.
##FH5r9   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  )r+   r  r   r\   r  r,   r  r   rE   r0   assert_series_equal)r2   rX  seriesr   r   s        r7    test_same_nan_is_in_large_seriesz)TestIsin.test_same_nan_is_in_large_series3  sp    GGC#vv!RXXrvvqk23"''#a&56
vx0r9   c                 h    G d d      } |        |       }}t        j                  |gt              }t        j                  t        j                  ||g      t        j                  dg             t        j                  t        j                  ||g      t        j                  dg             y )Nc                       e Zd ZdefdZd Zy)0TestIsin.test_same_object_is_in.<locals>.LikeNanreturnc                      y)NFr   )r2   r  s     r7   __eq__z7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__C  s    r9   c                      y)Nr   r   )r2   s    r7   __hash__z9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__F  s    r9   N)r!  r"  r#  rE   r  r  r   r9   r7   LikeNanr  B  s    t r9   r  r'   TF)r+   r,   rF   r0   r1   r   r  )r2   r  rb   rc   r  s        r7   test_same_object_is_inzTestIsin.test_same_object_is_in<  s    	 	 y')1hhs&) 	##EJJsQC$8"((D6:JK
##EJJsQC$8"((E7:KLr9   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  r+   r,   r0   r1   rJ   rF   r   )r2   r  r]   r   s       r7   r  zTestIsin.test_different_nansR  s     u,Qxvay((( BHHUOV4
##BHHdV$4f= JJuF+RZZf-M
 	##BHHdV$4f= JJuBJJ/F"**1U
 	##BHHdV$4f=r9   c                     t        j                  ddgt              }dg}t        j                  ddg      }t        j                  ||      }t        j                  ||       y )Nss*   r'   42F)r+   r,   rF   r   r  r0   r1   r  s        r7   test_no_castzTestIsin.test_no_castj  sQ     $6288UEN+E6*
##Hf5r9   emptyr'   c                     t        ddg      }t        j                  ddg      }t        j                  ||      }t        j                  ||       y )Nrb   rc   F)r   r+   r,   r   r  r0   r1   )r2   r  r  r   r   s        r7   
test_emptyzTestIsin.test_emptyt  sD     c3Z 88UEN+D%(
##Hf5r9   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)	r+   r,   r\   r  rF   r   r  r0   r1   )r2   r  r  r   r   s        r7   test_different_nan_objectsz#TestIsin.test_different_nan_objects}  sj    %"eEl;6Jxxuf58801E4(
##Hf5r9   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  r+   r,   r   r   r  r0   r1   )r2   r  r  rq   lookup1r   r   lookup2s           r7   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5r9   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  r0   assert_frame_equalr2   dfr   expected_falses       r7   test_isin_int_df_string_searchz'TestIsin.test_isin_int_df_string_search  sI     1a&)*#"Huen#=>
fn5r9   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   r+   r\   r  r,   rF   r0   r  r  s       r7   test_isin_nan_df_string_searchz'TestIsin.test_isin_nan_df_string_search  sY     2661+./5'89"Huen#=>
fn5r9   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  r+   r,   rF   r0   r  r  s       r7    test_isin_float_df_string_searchz)TestIsin.test_isin_float_df_string_search  sV     67"3458*F;<"Huen#=>
fn5r9   c                     t        dgt        j                        }|j                  dg      }t        d      }t	        j
                  ||       y )Nl   
G r'   l    
G F)r   r+   r   r  r0   r  r2   r^   r   r   s       r7   test_isin_unsigned_dtypez!TestIsin.test_isin_unsigned_dtype  sA    )*"))<./0%=
vx0r9   N)!r!  r"  r#  r  rr   r  r   r$  r%  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rF   r+   r,   r	  r  r  r  r  r  r  r   r9   r7   r  r    s.   
 6D66 [[X'WX[[W&89
6 : Y
66 [[W&VW6 X6 [[W&IJ K	.66
661M,>06 [[Wr6+?"&NO6 P666,6661r9   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d Zy)TestValueCountsc                    t         j                  j                  d      j                  d      }t	        |d      }t        j                  |      }g d}t        j                  |      j                  t        d            }t        g d|d      }t        j                  |j                         |j                                y )	Ni  ri   )gV-g}?5^Ig/$ۿgףp=
?gʡE?Trv  )r$   r   r%   r$   countrI   rE  )r+   r.  r/  standard_normalr   r   value_counts_internalr   from_breaksrC   r   r   r0   r  
sort_index)r2   rq   factorr   breaksrI   r   s          r7   test_value_countsz!TestValueCounts.test_value_counts  s    ii##D)99!<S! ,,V47))&1889IRV9WX,e'B
v002H4G4G4IJr9   c                 R   g d}t        j                  |d      }t        dgt        j                  dg      d      }t        j                  ||       t        j                  |dd	
      }t        ddgt        j                  ddg      d      }t        j                  ||       y )N)r$   r%   rh   ri   r$   binsri   )Zd;?rk   r"  r#  r%   F)r-  r<   )r.        @)r/  rk   )r   r%  r   r   r@   r0   r  r  s       r7   test_value_counts_binsz&TestValueCounts.test_value_counts_bins  s    ,,QQ7C}00,@w
 	vx0,,QQUCF++\:,FG

 	vx0r9   c                    t        j                  t        j                  ddg            }t	        |      dk(  sJ t        j                  t        j                  ddg      d      }t	        |      dk(  sJ t        j                  t        g d            }t	        |      dk(  sJ d}t        j                  t        |      5  t        j                  t        j                  ddgt        	      d       d d d        y # 1 sw Y   y xY w)
Nr$   rZ   r,  )r$   rZ   r  r%   z*bins argument only works with numeric datar   r  r'   )
r   r%  r+   r,   r   r   r   r   r   rF   )r2   r   r   s      r7   test_value_counts_dtypesz(TestValueCounts.test_value_counts_dtypes  s    ,,RXXq#h-?@6{a,,RXXq#h-?aH6{a,,VM-BC6{a:]]9C0 	R''#q(HqQ	R 	R 	Rs   3D  D	c                 6   t        t        j                  d      t        gd      }t	        ddg      }||fD ]N  }t        j                  |      }t        j                  |d      }t        |      dk(  sJ t        |      d	k(  rNJ  t        t        d
      did      }t        j                  |      }t        j                  ||       t        dgt        j                  d      gd      }t        j                  |      }	t        j                  |	|       y )Nrf  timedelta64[ns]r'   r   z
2014-01-01Fdropnar$   r%   z2014-01-01 00:00:00r"  rw  r#  )r   r+   timedelta64r   r   r   r%  r   r   r0   r  )
r2   tdr  r^   vc
vc_with_naexp_dt	result_dtexp_td	result_tds
             r7   test_value_counts_natz%TestValueCounts.test_value_counts_nat  s    R^^E*C08IJ%./8 	(C,,S1B44SGJr7a<<z?a'''		( #891=GL//3	
y&1BNN5$9#:I//3	
y&1r9   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'   rh   r%   r$   r"  r#  )r   r   value_countsr   r0   r  )r2   r(   r^   r  	exp_indexrp   s         r7   &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(r9   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aaabbcrA  re   r"  r#  Tcheck_index_type)
r   r   rH   rB  r   r0   r  r  
as_orderedrI   r  s       r7   r|  z TestValueCounts.test_categorical  s    ;tH~./!-o>W
 	vx$G EE!!224
vx$Gr9   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$   )ri   rh   r%   re   rx  r"  r#  TrG  Fr5  )ri   rh   r%   r$   rb   rc   rd   )rc   rb   rd   )rt  r  rs  )
r   r   rH   r+   r\   ilocrB  r   r0   r  r  s       r7   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$Gr9   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abcdTrs  )rh   r%   r$   r   )rc   rb   rd   r  r"  r#  rG  )r   r   rH   rB  r0   r  r  s       r7   test_categorical_zeroesz'TestValueCounts.test_categorical_zeroesI  sc    ;tH~$v,PTUV!$ft 
 	vx$Gr9   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 )NrL  Tr5  r%   r$   Fr"  r#  rh   rf   r'   )rf   rh   r%   )TFN)皙$@rj   rj   rj   rS  )rS  rj   rj   N)rS  rS  rj   rj   rj   NrA  )rj   rS  N)r0   r  r   rB  r   rF   )r2   r   r   s      r7   test_value_counts_dropnaz(TestValueCounts.test_value_counts_dropnaV  s    	&'44D4AAq6$W=	
 	&'44E4BAq6$W=	

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

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

 9:GGuGU)+<7K
vx0r9   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%   rh   rf   TF)rA  r6  )g      ?g333333?g?r[   rZ   r'   
proportionr#  g333333?g?)r   r+   r\   rC   rB  r0   r  )r2   r(   rX  s_typedr   r   s         r7   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0r9   c                 z   t        j                  dgt         j                        }t        dgdgd      }t	        j
                  |      }t        j                  ||       t        j                  ddgt              }t        ddgddgd      }t	        j
                  |      }t        j                  ||       y )Nr   r'   r$   r"  r#  rg   )	r+   r,   r   r   r   r%  r0   r  rF   )r2   rq   r   r   s       r7   test_value_counts_uint64z(TestValueCounts.test_value_counts_uint64  s    hhwbii01#eW7;,,S1
vx0hhE{&11a&U'B,,S1
vx0r9   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 )Nrh   r$   r%   ri   r,  )r%   r%   r$   ))r.  r[   )r[   rl   )rl   rk   zinterval[float64, right]r'   r"  r#  )	r+   r,   r\   r   rB  r   r@   r0   r  )r2   r]   r   r   s       r7   test_value_counts_seriesz(TestValueCounts.test_value_counts_series  sp    1aAq"&&12,,!,4++6>X 
 	vx0r9   c                    t         j                  j                  d      j                  ddd      }t	        j
                  |d      }t        |      j                  d      }|j                  dd	      }t        j                  ||       |j                  dd
	      }t        j                  t              5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr%   r       @   Tr;   Fstable)	ascendingrP  	quicksort)r+   r.  r/  r0  r   r%  r   rB  rG   r0   r  r   r   AssertionError)r2   rq   r   rB  r   unstable_sorteds         r7   test_value_counts_stabilityz+TestValueCounts.test_value_counts_stability  s    ii##A&//2r:,,St<c{//U/;++e(+K
vx0&22U2U]]>* 	<""6?;	< 	< 	<s   8CC!N)r!  r"  r#  r*  r0  r2  r?  r   r$  r%  rF   rD  r|  rM  rQ  rT  r+   r   rX  rZ  r\  re  r   r9   r7   r   r     s    	K1 R2$ [[Wvx&89) :).H)HVH$1L [[Wrzz68&DE1 F1$11<r9   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           	      V   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            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   T)strictri   )r+   r,   r\   rF   r   
duplicatedr0   r1   r  	enumeratezip)r2   keysr   r   r   tfalsestruess           r7   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,FtT
 	DAq DG	
 !!$'1
88FUN+
##FH5!!$V488EFN+
##FH5!!$U388EEM*
##FH5r9   case)
r$   r%   r$   rf   rh   r%   ri   r$   rf      g?g@gffffff
@g@gffffff@)
r         @       @r        @      @y      @      @ry  y      @      @r  rz  y      @      @)
rb   rc   rb   erd   rc   r  rb   r{  fr'   )
r$   r   r$      r   r   '   r$   r}     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
TTTTFFFFFFri  rj  rl  Fr  r'   )	r+   r,   r   ro  r0   r1   r   r   r  )
r2   rw  	exp_firstexp_last	exp_false	res_firstres_last	res_falser  rX  s
             r7   test_numeric_object_likesz(TestDuplicated.test_numeric_object_likes  s   0 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r9   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-02r  r   
2011-01-03r  z
2011-01-04r  r   z
2011-01-06)
1 days2 daysr  r   z3 daysr  z4 daysr  r   z6 daysr	  r
  r7  r   r  r  ri  rj  rl  Fr  r'   )r+   r,   r   r   r   r   r   ro  r0   r1   r   rF   r   r  )r2   r  r8  r  casesr  r  r  rw  r  r  r  r  rX  s                 r7   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   rh   c                     |j                   du sJ t        j                  |j                         t	        j
                  g d             y )NT)FFF)	is_uniquer0   r1   ro  r+   r,   )r2   rw  s     r7   test_unique_indexz TestDuplicated.test_unique_indexp  s5    ~~%%%
##DOO$5rxx@U7VWr9   zarr, uniques)r   r   r$   r$   r   r   r   r  r  r   )r   r  r  r   )rc   rd   rb   rc   r  r  r  r  )r   rc   r%   rb   rh   r   )r   r  r  c                 l   t        j                  t        |      t              }||d d  d}t	        j
                  t        |      5  t        j                  |       d d d        t        j                  t        j                  |t                    }t        j                  ||       y # 1 sw Y   NxY w)Nr'   [unique requires a Series, Index, ExtensionArray, np.ndarray or NumpyExtensionArray got listr   )r+   r  r   rF   r   r   r   r   rA   r   r   r0   r1   )r2   rq   r4   r   r   r  s         r7   test_unique_tuplesz!TestDuplicated.test_unique_tuplesu  s      88CL7/ 	 ]]9C0 	IIcN	 ii--c@A
##C2	 	s   B**B3zarray,expected)r  r   r$   r        ?       @r  )r  y                r)   r  r  c                    d}t        j                  t        |      5  t        j                  |       d d d        t        j                  t        j                  |            }t        j                  ||       y # 1 sw Y   HxY w)Nr  r   )	r   r   r   r   rA   r+   r,   r0   r1   )r2   r,   r   r   r  s        r7   test_unique_complex_numbersz*TestDuplicated.test_unique_complex_numbers  se    / 	
 ]]9C0 	IIe	 ii(
##C2	 	s   A;;BN)r!  r"  r#  rv  r   r$  r%  r+   r,   r\   rF   r   r  r  r   r   r   r  r  r-   r  r   r9   r7   rg  rg    s   %6N [[BHH34BHHc3RVVS#sCMNBHH BHHGvVBHHC299U%	
.&A/.&APPEd [[VeI&6a8K%LMX NX [[ Q0
 AZ( 67UV
	
33  [[ 3?wO	
33r9   rg  c                   p   e Zd Zej                  j                  dej                   ej                   e
d      D  cg c]  }d| 	 c}} e      fej                   ej                   e
d      D  cg c]  }d| 	 c}} e      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j                   e
d      D  cg c]  }d| 	 c}} e      fej                   ej                   e
d      D  cg c]  }d| 	 c}} e      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, datar9  foo_r'   c                    t        ||j                        }|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 )Nr'       rh   Tfracreplacedropr   ri  rj  )return_inverse)r   r(   r   Float64HashTabler+   r\   locPyObjectHashTabler   samplereset_indexr]   r   drop_duplicatesrA   r0   r1   )
r2   htabler   r   rX  s_duplicatedexpected_uniqueresult_uniqueresult_inversereconstrs
             r7   test_hashtable_uniquez#TestHashTable.test_hashtable_unique  s.   $ 4tzz*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Br9   c                    t        ||j                        }|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  r  rh   Tr  r  r   )r   r(   r   r  r+   r\   r  r  r   r  r  r]   r   r   r.   r6  r  r0   r1   )r2   r  r   r   rX  r  na_maskr  r  r  result_reconstructexpected_reconstructs               r7   test_hashtable_factorizez&TestHashTable.test_hashtable_factorize  s/   $ 4tzz*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Mr9   N)r!  r"  r#  r   r$  r%  r   r  r+   r,   r   rF   StringHashTabler  rn   r   Int64HashTabler   UInt64HashTabler   r  r  ).0r   s   00r7   r  r    s   [[ $$eDk:D*:&I
 ""eDk:D*:&I   )"))D

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

"CD			$bhh ?@4ryy!AB	
 N! Nq ; ;R ; ;s   H 5H&
H,H2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d Z	ej                  j                  d	ej                  ej                  g      d
        Zej                  j                  dg d      d        Zd Zej                  j                  d        Zy)TestRankrq   rj   r$   r%   rh   rk   c                 H   t        j                  d      }t        j                  |      }t        j                  |       }t        j                  |      }t        j                  ||<   |j                  |      }t        j                  ||<   t        j                  ||       y )Nzscipy.stats)r   importorskipr+   r,   isfinitelibalgosrank_1drv   rankdatar\   r0   assert_almost_equal)r2   rq   sp_statsr   r   rp   s         r7   test_scipy_compatzTestRank.test_scipy_compat  s|     &&}5hhsmC  !!#&FFD	$FFD	
vs+r9   c                    t        j                  ddgt         j                        }t        j                  ddg|      }|j                  |       t	        |      }t        j                  |      }t        j                  ||       y )Nr$   r%   r'   r*  r   )	r+   r,   r   r   r   r   rankr0   r1   )r2   r   any_int_numpy_dtyperp   r   r^   r   s          r7   rr   zTestRank.test_basic  sc    hh1vRZZ0xxC(;<H%TlC
##FC0r9   r(   c                     t        j                  ddgt         j                        }t        ddg|      }t	        j
                  t        j                  |      |       y )Nr$   r%   r'   r   )r+   r,   r   r   r0   r1   r   r  )r2   r(   rp   rX  s       r7   rl  zTestRank.test_uint64_overflow$  sB    hh1vRZZ0Au:U+
##EJJqM37r9   method)averageminmaxc                 8   t        j                  dddt         j                  dgt         j                        }t	        dddt
        j                  d	gd
      }|j                  t              }t        j                  ||      }t        j                  ||       y )Nrk   rZ   rl   r[   r'   g*"Fg3!ǻg{Q :g1A;-:Float64)r  )r+   r,   r\   r   r   r   r&  rC   rF   r   r  r0   r1   )r2   r  rp   rX  r   s        r7   test_rank_tiny_valueszTestRank.test_rank_tiny_values+  sv     hhS#rvvs32::F=-N
 HHVAf-
##FC0r9   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   )ri   rf   rx  )r  rm  	   z%Array with ndim > 2 are not supportedr   )r+   r,   r   r   r   r   r  )r2   rq   r   s      r7   test_too_many_ndimszTestRank.test_too_many_ndims7  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%   )r+   rn   r   r  r  reshape)r2   r]   r   s      r7   test_pct_max_many_rowszTestRank.test_pct_max_many_rows>  sw     9%F-113{{9%--i;F-113{{r9   N)r!  r"  r#  r   r$  r%  r+   r\   r  rr   r   r   rl  r  r  
single_cpur  r   r9   r7   r  r    s    [[VVRVVS#sBFFAq!RVVD"&&#sCAsBFFC	

,
,1 [[Wrzz299&=>8 ?8 [[X'@A	1 B	1 [[ r9   r  c                       e Zd Zd Zd Z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                  g             \  }}t        j                  ||j                         y )Nr'   )r(   rI   )r   r+   r   r   intr   moder,   r0   r1   r]   r2   rp   r   _s       r7   test_no_modezTestMode.test_no_modeK  sI    Rrzzr1EFJJrxx|,	
##FCJJ7r9   c                    dg}dg}dg}ddg}t        ||      }t        ||      }t        j                  |j                        \  }}	t	        j
                  ||j                         t	        j                  |j                         |       t        ||      }t        ||      }t        j                  |j                        \  }}	t	        j
                  ||j                         t	        j                  |j                         |       y )Nr$   r'   r   r   r  r]   r0   r1   r  
r2   r   
exp_singledata_single	exp_multi
data_multir^   rp   r   r  s
             r7   test_mode_singlezTestMode.test_mode_singleP  s    S
cC	V
[(<=Z';<JJszz*	
##FCJJ7
sxxz3/Z';<Y&:;JJszz*	
##FCJJ7
sxxz3/r9   c                 V   t        dgt              }t        j                  |j                        \  }}t        j                  ||j                         t        g dt              }t        j                  |j                        \  }}t        j                  ||j                         y )Nr$   r'   re   )r   r  r   r  r]   r0   r1   rF   r  s       r7   test_mode_obj_intzTestMode.test_mode_obj_intd  sp    aS$JJszz*	
##FCJJ7_F3JJszz*	
##FCJJ7r9   c                 T   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                  |j                        \  }}	t	        j
                  ||j                         t	        j                  |j                         |       t        ||      }t        ||      }t        j                  |j                        \  }}	t	        j
                  ||j                         t	        j                  |j                         |       y )Nr$   rf   r%   rh   r'   r  r  s
             r7   test_number_modezTestMode.test_number_modem  s    S
cAga'F	S1WsQw&!q0
[(<=Z';<JJszz*	
##FCJJ7
sxxz3/Z';<Y&:;JJszz*	
##FCJJ7
sxxz3/r9   c                 $   dg}dgdz  dgdz  z   }t        |d      }t        |d      }t        j                  |j                        \  }}t	        j
                  ||j                         t	        j                  |j                         |       y )Nrc   rb   r%   rh   rd   r'   r  )r2   rp   r   r^   r   r  s         r7   test_strobj_modezTestMode.test_strobj_mode  sw    euqyC519$T%S$JJszz*	
##FCJJ7
sxxz3/r9   r  c                 z   dg}dgdz  dgdz  z   }t        ||      }t        ||      }t        j                  |j                        \  }}|r)|t        u r!t        j                  ||j                         n t        j                  ||j                         t        j                  |j                         |       y )Nbarr   r%   rh   r'   )	r   r   r  r]   r  r0   r   r1   r  )r2   r  using_infer_stringrp   r   r^   r   r  s           r7   test_strobj_multi_charzTestMode.test_strobj_multi_char  s    gw{eWq[(T$S#JJszz*	")++FCJJ?''

;
sxxz3/r9   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-03r  
2013-01-02r   r'   )r  r  r  r  r  )r  r  r  r  r  r   r0   r   r   r  r]   r  r  r2   rp   r^   s      r7   test_datelike_modezTestMode.test_datelike_mode  s    ?xP?xP
''

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

3::(>L
sxxz3/r9   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  r4  r'   )r  r  r  2 minr   r   r   z-1 dayz-1 day 2 minr  r  r  r  s      r7   test_timedelta_modezTestMode.test_timedelta_mode  s    4<MN4<MN
''

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

3::(>L
sxxz3/r9   c                    t        dgt              }t        g d      }t        j                  |j                        \  }}t        j                  ||j                         t        j                  |j                         |       y )Nr   r'   )r$   r   r   )r   rF   r   r  r]   r0   r1   r  r2   rp   r^   r   r  s        r7   test_mixed_dtypezTestMode.test_mixed_dtype  s[    eWF+&'JJszz*	
##FCJJ7
sxxz3/r9   c                    t        dgt        j                        }t        g dt        j                        }t        j                  |j
                        \  }}t        j                  ||j
                         t        j                  |j	                         |       t        ddgt        j                        }t        ddgt        j                        }t        j                  |j
                        \  }}t        j                  ||j
                         t        j                  |j	                         |       y )Nr   r'   )r$   r   r   r$   )	r   r+   r   r   r  r]   r0   r1   r  r  s        r7   rl  zTestMode.test_uint64_overflow  s    eWBII.&bii8JJszz*	
##FCJJ7
sxxz3/aZryy1aZryy1JJszz*	
##FCJJ7
sxxz3/r9   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$   rb   rb   rb   rx  r$   r$   r%   rh   rh   rh   r   )r   r   r  r  r0   ry  )r2   rd   rp   r  s       r7   r|  zTestMode.test_categorical  s    AQinn&&
##C-&3%QH5Qinn&&
##C-(1a&Y7Qinn&&
##C-r9   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  rb   r  r$   rh   r  r4  TimedeltaIndexr   )r   r   r+   r   r   r  r0   r1   r]   rF   r   r   AttributeError)r2   r  rp   r   r  s        r7   
test_indexzTestMode.test_index  s   IYbhh/JJsO	
##FCJJ7M"cU&)JJsO	
##FCJJ7O$aV288,JJsO	
##FCJJ7J#
 ]]>1AB 	JJsO	 	 	s   E%%E.c                     t        g dd      }|j                         }t        dgd      }t        j                  ||       y )N)r$   r$   rh   r   rw  r$   )r   r  r0   r  r  s       r7   test_ser_mode_with_namez TestMode.test_ser_mode_with_name  s7    YU+1#E*
vx0r9   N)r!  r"  r#  r  r  r  r  r  r   r$  r%  r  rF   r  r   r  r	  rl  r|  r  r  r   r9   r7   r  r  J  sg    8
0(80&0 [[TC=10 200000. 01r9   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   rg  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   rh   ri   r   nsr%   r$   r   axisr4  r'   )r+   rn   rC   r   r  r  r(   typer   diffr  r  r7  r0   r1   Tr2   r(   rq   r   r   s        r7   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7r9   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  rh   r  r  z#cannot diff DatetimeArray on axis=1r   r$   r  )r   r  r   r   
ValueErrorr   r  )r2   r  r   s      r7   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   rg   rD   )r+   r,   r   r  r\   r0   r1   r  s        r7   test_diff_low_precision_intz$TestDiff.test_diff_low_precision_int  sQ    hhe4C#88RVVQ2q1C
##FH5r9   N)	r!  r"  r#  r   r$  r%  r  r"  r&  r   r9   r7   r  r    sY    [[Wx&:;8 <8' [[Wvw&786 96r9   r  opc                 &    | g d      } | g d      } | g d      }t        |t        j                        r-t        j                  ||      }t        j                  ||       y t        j                  ||      }t        j                  ||       y )N)rh   r$   rh   ri   )r%   rh   r$   r$   )rh   rh   r$   r$   ri   r%   )r?   r+   r   r   union_with_duplicatesr0   r1   r   )r'  lvalsrvalsr   r   s        r7   test_union_with_duplicatesr,    su     |E|E$%H(BJJ',,UE:
##FH5,,UE:
''9r9   )Ar   r  numpyr+   r   pandas._libsr   r  r   r   pandas.core.dtypes.commonr   r   r   r	   r
   pandas.core.dtypes.dtypesr   r   pandasr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr0   pandas.core.algorithmscore
algorithmspandas.core.arraysr   r    pandas.core.commoncommonr   r"   r(  r  r  r   rg  r  r  r  r  r$  r%  r,   r,  r   r9   r7   <module>r:     s	      
 
     (  & & !  oQ oQdT: T:n
q1 q1h	y< y<xq3 q3hYN YNx@ @Fk1 k1\6 6@ "((34
: 5
:r9   