
    Oh3                    .   d dl m Z  d dlZd dlZd dlZd dlmZ d dlmZ	m
Z d dlmZmZmZmZmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dl(m)Z* d dl+m,c m-Z d dl.m/Z/m0Z0 d dl1m,c m2Z3  G d	 d
      Z4 G d d      Z5d 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< G d d      Z=ej|                  j                  dej                  ej                  g      d        ZAy)    )datetimeN)using_string_dtype)algos	hashtable)is_bool_dtypeis_complex_dtypeis_float_dtypeis_integer_dtypeis_object_dtype)CategoricalDtype)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexIntervalIndex
MultiIndexNaTPeriodPeriodIndexSeries	Timedelta	Timestampcut
date_rangetimedelta_rangeto_datetimeto_timedelta)DatetimeArrayTimedeltaArrayc                   
   e Zd Zd Zej
                  j                   e       dd      ej
                  j                  dddg      d               Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej
                  j                  dg dg dg dfg dg dg dfg dg dg dfg      d        Zd Zd Zd Zd Zd Zd  Zd! Zd" Zej
                  j                  dddg      d#        Zej
                  j                  dddg      d$        Zd% Zej
                  j                  d& ej@                  g d'd()       ej@                  g d*d+)       ej@                  g d,d-)      g      d.        Z!ej
                  j                  d/ ej@                  g d0d()      d1f ej@                  g d2d()      d3f ej@                  g d4d+)      d5f ej@                  g d6d+)      d3f ej@                  g d7e")      d8f ej@                  g d9e")      d:f ej@                  g d;e")      d<fg      d=        Z#ej
                  j                  dddg      ej
                  j                  d> ej@                  g d?e")       ej@                  d@d8ge")      f e$j@                  dAd3ejJ                  dAgdB)       e$j@                  dAd3gdB)      fgdCdDgE      dF               Z&ej
                  j                  dg dG ej@                  g dH ejN                  dI      )       ej@                  d8ejJ                  d@ge")      fd8ejJ                  d@d8g ej@                  g dH ejN                  dI      )       ej@                  d8ejJ                  d@ge")      fg      dJ        Z(ej
                  j                  dg dK ej@                  g d0 ejN                  dI      )       ej@                  d3ejJ                  dAgdL)      fd3ejJ                  d3dAg ej@                  g d0 ejN                  dI      )       ej@                  d3ejJ                  dAgejR                  )      fg      dM        Z*ej
                  j                  d e+ e,g dN             ej@                  g dOejZ                  )       e.d8d@gd8d@gdPQ      f e/ e,g dN             ej@                  g dOejZ                  )       e.d8d@gd8d@gdPQ      f e/ e0dRdRgdST             ej@                  d1d1gejZ                  )       e0dRgdST      fg      dU        Z1dV Z2yW)XTestFactorizec                    g d}d}t        j                  t        |      5  t        j                  |      \  }}d d d        t        j                  g dt
        j                        }t        j                  |       t        j                  g dt              }t        j                  |       y # 1 sw Y   zxY w)N)             @      ?0factorize with argument that is not not a Seriesmatch)r   r$   r%   dtype)      ?        y       @        r&   )
tmassert_produces_warningFutureWarningr   	factorizenparrayintpassert_numpy_array_equalobject)selfr2   msglabelsuniquesexpected_labelsexpected_uniquess          _/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/pandas/tests/test_algos.pytest_factorize_complexz$TestFactorize.test_factorize_complex6   s    @''SA 	5#ooe4OFG	5 ((9BGG<
##FO< 88$B&Q
##G-=>	5 	5s   B44B=zTODO(infer_string)F)reasonstrictsortTc                    |}|j                  |      \  }}t        }t        |t              rt        j                  }|j                         }|j                  t        j                  k(  r|j                  t        j                        } ||      }t        |t              r;|j                  t        k(  r(|j                  t        k(  r|j                  t              }|r|j                         }t        |      }	|D 
cg c]  }
|	j                  |
       }}
t        j                   |t        j"                        }t%        j&                  ||       t%        j(                  ||d       y c c}
w )Nr@   r*   Texact)r0   r   
isinstancer   from_tuplesuniquer+   r1   float16astypefloat32boolr5   sort_valueslistindexasarrayr3   r-   r4   assert_index_equal)r6   index_or_series_objr@   objresult_codesresult_uniquesconstructorexpected_arrr;   expected_uniques_listvalexpected_codess               r<   test_factorizezTestFactorize.test_factorizeD   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*         ?       @)
r1   r2   nanr   r0   r3   r   r-   r4   rP   )r6   valuessercodesr9   rY   r;   s          r<   +test_series_factorize_use_na_sentinel_falsez9TestFactorize.test_series_factorize_use_na_sentinel_falsed   s    1aBFF+,Vnu=w,bgg> #sBFF!34
##E>:
g'78    c                    t        j                  g dt              }t        j                  |      \  }}t        j                  |t        j                  g dt                     t        j                  |d      \  }}t        j                  g dt         j                        }t        j                  ||       t        j                  g dt              }t        j                  ||       t        j                  dt         j                        d d d   }t        j                  |      \  }}t        j                  g d	t         j                        }t        j                  ||       t        j                  g d
|j                        }t        j                  ||       t        j                  |d      \  }}t        j                  g d
t         j                        }t        j                  ||       t        j                  g d	|j                        }t        j                  ||       t        j                  d      d d d   }t        j                  |      \  }}t        j                  g d	t         j                        }t        j                  ||       t        j                  g d|j                        }t        j                  ||       t        j                  |d      \  }}t        j                  g d
t         j                        }t        j                  ||       t        j                  g d|j                        }t        j                  ||       y )N)abri   rh   rh   crj   rj   r*   rh   ri   rj   TrB   )r   r$   r$   r   r   r%   r%   r%      )r   r$   r%         )ro   rn   r%   r$   r         @)      @      @r`   r_           )rs   r_   r`   rr   rq   )
r1   r2   r5   r   r0   r-   r4   r3   aranger+   )r6   itemsrd   r9   exparrs         r<   
test_basiczTestFactorize.test_basicp   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1rf   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   rm   r$   r%   rn   r*   TrB   )r%   r%   rm   rn   r   r$   )r   r1   ra   infr   r0   r2   r3   r-   r4   r   rP   )r6   xrd   r9   rv   s        r<   
test_mixedzTestFactorize.test_mixed   s    Cbffc489+whh*"'':
##E3/S#tRVV,-
gs+6whh*"'':
##E3/T2663,-
gs+rf   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*   TrB   )r$   r$   r$   r   r   r$   )r   r   r   r0   r1   r2   r3   r-   r4   r   rP   r6   v1v2r}   rd   r9   rv   s          r<   test_factorize_datetime64z'TestFactorize.test_factorize_datetime64   s    01z"BBB+,+whh)9
##E3/RH%
gs+6whh)9
##E3/RH%
gs+rf   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*   TrB   )r   r   r   r0   r1   r2   r3   r-   r4   rP   r   r   s          r<   test_factorize_periodz#TestFactorize.test_factorize_period   s    H3'H3'BBB+, +whh)9
##E3/
g{B8'<=6whh)9
##E3/
g{B8'<=rf   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*   TrB   )r$   r   r$   r$   r   r   r$   )
r   r   r   r0   r1   r2   r3   r-   r4   rP   r   s          r<   test_factorize_timedeltaz&TestFactorize.test_factorize_timedelta   s    -('"BBBB/0+whh,BGG<
##E3/
g|RH'=>6whh,BGG<
##E3/
g|RH'=>rf   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*   )rm      )na_sentinelr   )r1   r2   ra   htObjectFactorizerlenr0   r3   setr-   r4   pdisna)r6   keyrizerr   idsexpecteds         r<   test_factorize_nanz TestFactorize.test_factorize_nan   s     hh1a(4##CH-# 	7K//#;/?CxxAq+ 6bggFHs3x=CH$6666''h+6MN''X6	7rf   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%   rn   r$   r$   r   int64r*   )FFFFFT)mask)r   r$   r%   r   r   rm   r$   r%   rn   )r1   r2   r   Int64Factorizerr   r0   r3   r-   r4   r9   to_array)r6   datar   r   resultr   r;   s          r<   test_factorizer_with_maskz'TestFactorize.test_factorizer_with_mask   s    xx*':xxAB""3t9-D188/rww?
##FH588IW=
##EMM$:$:$<>NOrf   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%   rn   )r   r$   r%   r   rm   r*   r   )r1   r2   ra   r   r   r   r0   rI   r5   r3   r-   r4   r9   r   )r6   r   r   r   r   r;   s         r<   test_factorizer_object_with_nanz-TestFactorize.test_factorizer_object_with_nan   s    xxAq!RVV,-##CI.V!4588,BGG<
##FH588IV<
##EMM$:$:$<>NOrf   z&data, expected_codes, expected_uniques)r$   r$   r$   r%   r   r   r   nonsense)r   r$   r%   r$   rn   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r$   r%   r$   )r   r   r   c                 l   d}t        j                  t        |      5  t        j                  |      \  }}d d d        t        j
                  t        j                  |t        j                               t        j                  |t              }t        j
                  |       y # 1 sw Y   txY w)Nr'   r(   r*   )r-   r.   r/   r   r0   r4   r1   r2   r3   comasarray_tuplesafer5   )r6   r   rY   r;   r7   rd   r9   expected_uniques_arrays           r<   test_factorize_tuple_listz'TestFactorize.test_factorize_tuple_list   s    $ A''SA 	0\\$/NE7	0 	##E288N"''+RS!$!6!67Gv!V
##G-CD	0 	0s   B**B3c                 "   t        j                  t        d      D cg c]  }t        |       c}t              }d}t        j                  t        |      5  t        j                  |d d d   d       d d d        y c c}w # 1 sw Y   y xY w)N   r*   z,'[<>]' not supported between instances of .*r(   rm   TrB   )
r1   r2   rangecomplexr5   pytestraises	TypeErrorr   r0   )r6   ix17r7   s       r<   test_complex_sortingz"TestFactorize.test_complex_sorting  sm    hhE"I6q
6fE<]]9C0 	2OOC"ID1	2 	2 7	2 	2s   B BBc                 B   |}t        j                  g d|      }t        j                  g dt         j                        }t        j                  ddg|      }t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)r$   r%   r%   r$   r*   )r   r$   r$   r   r$   r%   )r1   r2   r3   r   r0   r-   r4   )r6   any_real_numpy_dtyper+   r   rY   r;   rd   r9   s           r<   test_numeric_dtype_factorizez*TestFactorize.test_numeric_dtype_factorize  ss    $xxE2,bgg>88QF%8.w
##E>:
##G-=>rf   c                    t        j                  g dt         j                        }|j                  |       t        j                  g dt         j                        }t        j                  g dt         j                        }t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)r_       חAr_   :0yE>r   r_   r*   write)r   r$   r   r%   r$   r   )r_   r   r   )	r1   r2   float64setflagsr3   r   r0   r-   r4   r6   writabler   rY   r;   rd   r9   s          r<   test_float64_factorizez$TestFactorize.test_float64_factorize)  s    xx7rzzJH%"4BGGD88$4BJJG.w
##E>:
##G-=>rf   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$   )	r1   r2   uint64r   r3   r   r0   r-   r4   r   s          r<   test_uint64_factorizez#TestFactorize.test_uint64_factorize3  s    xx1CH%)277;88YN"))D.w
##E>:
##G-=>rf   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   )	r1   r2   r   r   r3   r   r0   r-   r4   r   s          r<   test_int64_factorizez"TestFactorize.test_int64_factorize=  s    xx8IH%)277;88Y$9J.w
##E>:
##G-=>rf   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)rh   rj   rh   ri   rj   r*   r   )r   r$   r   r%   r$   rh   rj   ri   )	r1   r2   r5   r   r3   r   r0   r-   r4   r   s          r<   test_string_factorizez#TestFactorize.test_string_factorizeG  sy    xx1@H%/A88O6B.w
##E>:
##G-=>rf   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 )Nrh   rj   ri   r*   r   )r   r$   rm   rm   r   r%   rm   r$   r   )r1   r2   ra   r   r5   r   r3   r   r0   r-   r4   r   s          r<   test_object_factorizez#TestFactorize.test_object_factorizeQ  s    xxc4c3DFSH%"=RWWM88O6B.w
##E>:
##G-=>rf   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])	r1   r2   
datetime64r   r3   r   r0   r-   r4   r   s          r<   test_datetime64_factorizez'TestFactorize.test_datetime64_factorize[  s    xx'@AB(SH%1#RWW588,-5E
 d+w
##E>:
##G-=>rf   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*   rB   r   r$   TrC   r   
RangeIndex
from_ranger   r1   rt   r3   r   r0   r-   r4   rP   )r6   r@   rir   r   s        r<   test_factorize_rangeindexz'TestFactorize.test_factorize_rangeindexh  s     ]]%%eBi099Rrww/3$/
##F1Ix{;
fQi!DA4(
##F1Ix{;
fQi!DArf   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*   rm   r   r$   rB   TrC   r   )r6   r@   r   r   ri2r   s         r<   $test_factorize_rangeindex_decreasingz2TestFactorize.test_factorize_rangeindex_decreasingv  s     ]]%%eBi099Rrww/32hA;#{4R4((1+dd*;;H40
##F1Ix{;
fQi!DAD)
##F1Ix{;
fQi!DArf   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)
r1   r2   r   r   r   r   r   r0   r-   r.   )r6   r   s     r<   test_deprecate_orderz"TestFactorize.test_deprecate_order  s     xx);]]9,GH 	.OOD-	.''. 	"OOD!	" 	"	. 	.	" 	"s   B8B#B #B,r   r   u8r*   )r   r$   r   i8)__nan__foor   r5   c                     t        j                  |      \  }}|ddg   }t        j                  g dt        j                        }t        j                  ||       t        j                  ||       y )Nr   r$   r   r*   )r   r0   r1   r2   r3   r-   r4   )r6   r   rd   r9   r;   rY   s         r<   ,test_parametrized_factorize_na_value_defaultz:TestFactorize.test_parametrized_factorize_na_value_default  sY     .wA<)277;
##E>:
##G-=>rf   zdata, na_valuer^   r   )r$   r   r$   r%   r$   )r   r$   r   r   r   )r$   r   r$   r   )rh    rh   ri   rh   ) rh   r$   r   rh   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$   rn   )rm   r   rm   r$   r*   )r   factorize_arrayr1   r2   r3   r-   r4   )r6   r   r   rd   r9   r;   rY   s          r<   $test_parametrized_factorize_na_valuez2TestFactorize.test_parametrized_factorize_na_value  s]     ..thGwA<.@
##E>:
##G-=>rf   zdata, uniques)ri   rh   Nri   ri   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@   r]   )r$   r   rm   r$   r*   )r   r$   rm   r   )r   r0   r1   r2   r3   	safe_sortr-   r4   rE   ndarrayassert_extension_array_equal)r6   r@   r   r9   rd   rY   r;   s          r<   test_factorize_use_na_sentinelz,TestFactorize.test_factorize_use_na_sentinel  s      D$OwXXm277CN$w7XXm277CN&
##E>:dBJJ'''1AB++G5EFrf   )rh   Nri   rh   r   r$   r%   r   r3   c                     t        j                  t        j                  |t              d      \  }}t        j                  ||d       t        j                  ||d       y )Nr*   Fr\   T
strict_nan)r   r0   r1   r2   r5   r-   r4   r6   r   rY   r;   rd   r9   s         r<   +test_object_factorize_use_na_sentinel_falsez9TestFactorize.test_object_factorize_use_na_sentinel_false  sM    $ HHT(%
w 	##G-=$O
##E>dKrf   )r$   Nr$   r%   r   c                     d}t        j                  t        |      5  t        j                  |d      \  }}d d d        t        j
                  |d       t        j
                  |d       y # 1 sw Y   :xY w)Nr'   r(   Fr\   Tr  )r-   r.   r/   r   r0   r4   )r6   r   rY   r;   r7   rd   r9   s          r<   (test_int_factorize_use_na_sentinel_falsez6TestFactorize.test_int_factorize_use_na_sentinel_false  sn    $ A''SA 	J"__T5INE7	J 	##G-=$O
##E>dK		J 	Js   A22A;)rh   rh   ri   )r   r   r$   category)
categoriesr+   2017
US/Easterntzc                     t        j                  |      \  }}t        j                  ||       t        j                  ||       y )N)r   r0   r-   r4   rP   r  s         r<   test_factorize_mixed_valuesz)TestFactorize.test_factorize_mixed_values  s7    , .w
##E>:
g'78rf   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   r1   ra   as_unitr   from_arraysr0   r+   r   tz_localize)r6   unitleftrightidxrd   catstsidx2codes2cats2idx3codes3cats3s                 r<    test_factorize_interval_non_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Prf   N)3__name__
__module____qualname__r=   r   markxfailr   parametrizerZ   re   rx   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r2   r   r5   r   r   ra   r   r+   r  r   r  r   r   r3   r   r   r   r  r"  r   rf   r<   r"   r"   5   s   ? [[)+4HQVW[[VdE]3L 4 XL<
9%2N, ,$>"?7	PP [[0 =4 <3
 .|=UV	
 	E! 	E2	??????? [[VdE]3B 4B [[VdE]3B 4B$" [[BHHYd+BHH,D9BHH2(C	
?? [[RXXl$/3RXXl$/3RXX0=xHRXX)6:RXX)8#>RXX2&A2FRXX8GR	
?? [[VdE]3[[ .f=#s62
 !Q*':!Qw/		
 -.  G 4G [[0 &XRXXf-=>#rvvs+6: bffc3'XRXXf-=>#rvvs+6:	
LL [[0  XRXXf-=>!RVVQs3 BFFAq!XRXXf-=>!RVVQrzz:	
LL [[0 k/23"''2 #sc
*U {?34"''2 #sc
*U }ff%5,GH!Qrww/vh<8	
(9)(9Qrf   r"   c            	          e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej(                  j+                  dd ej.                  ddge      fd ej.                  dge      fg      d        Zd Zd Zd Zej(                  j+                  dej:                  eg      d        Zd Zd Z y )!
TestUniquec                     t         j                  j                  d      j                  ddd      }t	        j
                  |      }t        |t         j                        sJ y )Nr%   r   d   2   size)r1   randomdefault_rngintegersr   rG   rE   r   r6   rw   r   s      r<   	test_intszTestUnique.test_ints3  sJ    ii##A&//3R/@c"&"**---rf   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   )	r1   r0  r1  r2  rI   r   rG   rE   r   r3  s      r<   test_objectszTestUnique.test_objects9  sU    ii##A&//3R/@GGLc"&"**---rf   c                     t        j                  g dt              }t        d      D ]   }t	        t        j                  |             " y )N)rz   r{   CDEr*     )r1   r2   r5   r   r   r   rG   )r6   lstr   s      r<   test_object_refcount_bugz#TestUnique.test_object_refcount_bug?  s7    hh0?t 	#AS!"	#rf   c                    t        j                  t        j                  d      j	                  d      t        j
                  t        j                  d      d      g      }|j                  }|j                          |j	                  d      }t        j                  |      }|j                          t        j                  ||       y )Nrl   r%   )r   r  r1   rt   repeattilerb   r@   r   rG   r-   assert_almost_equal)r6   mindexr   r   s       r<   test_on_index_objectzTestUnique.test_on_index_objectD  s    ''YYq\  #RWWRYYq\1%=>
 ==q!6"
vx0rf   c                    |t         j                  t         j                  z   v r	g d}ddg}nt        |      r	g d}ddg}nt	        |      r	g d}ddg}nwt        |      r<t        dd      t        dd      t        dd      g}t        dd      t        dd      g}n0t        |      r	g d}dd	g}nt        |      r	g d
}ddg}ng d}ddg}t        ||      j                         }t        j                  ||      }|t         j                  v r|j                  t              }|j                  j                   dv r-t#        |t$        t&        f      sJ t        j                  |      }t        j(                  ||       y )N)r$   r%   r%   r$   r%   r_   r`   r   TTFTF)rz   r{   r{   rz   r{   r*   )mr   )r-   BYTES_DTYPESSTRING_DTYPESr
   r	   r   r   r   r   r   rG   r1   r2   rI   r5   r+   kindrE   r   r    r4   )r6   any_numpy_dtyper   r9   r   r   s         r<   test_dtype_preservationz"TestUnique.test_dtype_preservationR  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5rf   c                 "   t        j                  ddgd      }t        g d      }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ t        |      }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ |j                  }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ y )N2015-01-03T00:00:00.0000000002015-01-01T00:00:00.000000000r   r*   )rM  rN  rN  )
r1   r2   r   r   rG   r-   r4   r+   r   rb   )r6   r   dt_indexr   srw   s         r<   $test_datetime64_dtype_array_returnedz/TestUnique.test_datetime64_dtype_array_returnedw  s    88// 
 
 h'
##FH5||x~~---8a
##FH5||x~~---hhc"
##FH5||x~~---rf   c                     t        j                  g dd      }t        j                  |      }t        j                  ddgd      }t	        j
                  ||       y )N2000rT  2001zdatetime64[s]r*   rT  rU  r1   r2   r   rG   r-   r4   r6   rh   r   r   s       r<   test_datetime_non_nszTestUnique.test_datetime_non_ns  sE    HH-_E188VV,OD
##FH5rf   c                     t        j                  g dd      }t        j                  |      }t        j                  ddgd      }t	        j
                  ||       y )NrS  ztimedelta64[s]r*   i  i  rV  rW  s       r<   test_timedelta_non_nsz TestUnique.test_timedelta_non_ns  sF    HH-5EF188T4L0@A
##FH5rf   c                 "   t        j                  g dd      }t        g d      }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ t        |      }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ |j                  }t        j                  |      }t        j                  ||       |j                  |j                  k(  sJ y )N)y  n  '  m8[ns]r*   )r\  r]  r\  r^  r]  )
r1   r2   r   r   rG   r-   r4   r+   r   rb   )r6   r   td_indexr   rP  rw   s         r<   %test_timedelta64_dtype_array_returnedz0TestUnique.test_timedelta64_dtype_array_returned  s    881B CDh'
##FH5||x~~---8a
##FH5||x~~---hhc"
##FH5||x~~---rf   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   r1   r   r2   r-   r4   r   rG   )r6   rP  rv   s      r<   test_uint64_overflowzTestUnique.test_uint64_overflow  s?    'ryy9hh}BII6
##ELLOS9rf   c                    dt         j                  ddg}t        j                  t        j                  |t
                    }t        j                  dt         j                  dgt
              }t        j                  ||       y )Nrh   rj   r*   )r1   ra   r   rG   r2   r5   r-   r4   )r6   duplicated_itemsr   r   s       r<   test_nan_in_object_arrayz#TestUnique.test_nan_in_object_array  sZ    c2288$4FCD88S"&&#.f=
##FH5rf   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rk  r   namer	  )
r   rM   rG   r-   assert_categorical_equalr   r   r   r   rP   )r6   r   
expected_orj   r   rP  cis          r<   test_categoricalzTestUnique.test_categorical  sf    tE{+ !eedS
 W&
##FH5a
##FH5Wt4
##FJ7a
##FJ7 ;tG}-E:
##FH51
##FH5 k$w-DKPQ#H-
fh/2
fh/rf   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   rG   _datar-   r   rP   r   )r6   r  dtirc   r   r   s         r<   test_datetime64tz_awarez"TestUnique.test_datetime64tz_aware  s     *6*6

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

 '$- 	 3 "#[m+LSW
 	fh/rf   zarg ,expected)1r  2r  r  r*   )r   r   c                     d}t        j                  t        |      5  t        j                  |      }d d d        t        j
                  |       y # 1 sw Y    xY wN-unique with argument that is not not a Seriesr(   r-   r.   r/   r   rG   r4   )r6   argr   r7   r   s        r<   test_tuple_with_stringsz"TestUnique.test_tuple_with_strings+  sK     >''SA 	$YYs^F	$
##FH5	$ 	$   AAc                     t        j                  dd gt              }t        j                  |      }t        j                  dd gt              }t        j                  ||d       y )Nr   r*   Tr  )r1   r2   r5   r   rG   r-   r4   r6   rw   r   r   s       r<   test_obj_none_preservationz%TestUnique.test_obj_none_preservation9  sI    hht}F3388UDM8
##FHFrf   c                     t        j                  ddg      }t        j                  |      }t        j                  dg      }t	        j
                  ||       y )Ng       rs   rV  rW  s       r<   test_signed_zerozTestUnique.test_signed_zeroA  sA    HHdC[!188TF#
##FH5rf   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packr1   r2   r   rG   ra   r-   r4   )r6   NAN1NAN2rh   r   r   s         r<   test_different_nanszTestUnique.test_different_nansH  s     }}S&++d4F"GHK}}S&++d4F"GHKt||t||HHdD\"188RVVH%
##FH5rf   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  r1   r2   r   rG   r/  )	r6   r  bits_for_nan1bits_for_nan2r  r  rh   r   result_nan_bitss	            r<   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-///rf   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$   )r1   r2   r5   r   rG   r/  )r6   unique_nulls_fixtureunique_nulls_fixture2rh   r   s        r<   test_do_not_mangle_na_valuesz'TestUnique.test_do_not_mangle_na_valuese  sj    #88HH*,AB&Q1{{at++++t,,,,rf   c                     t        dt        j                  dgdz  |      }t        j                  |      }t        j                  dt        j                  dg|      }t        j                  ||       y )Nr$   r%   rn   r*   )r   r   NArG   r2   r-   r   )r6   any_numeric_ea_dtyperc   r   r   s        r<   test_unique_maskedzTestUnique.test_unique_maskedo  sV    a]Q&.BC388QqM1EF
''9rf   N)!r#  r$  r%  r4  r6  r=  rC  rK  rQ  rX  rZ  ra  rc  rf  rt  ry  r|  r  r  r   r&  r(  r1   r2   r5   r  r  r  r  r   r  r  r  r   rf   r<   r*  r*  2  s    ..#
1#6J.>66.&:
6'0R066(60 [[hbhhSz@Axrxxv67	
66G6
6 [[YV(<=0 >0 -:rf   r*  c                      | t         j                  j                  d      j                  ddd            }t	        j
                  |      }t        t	        j                  |            }||k(  sJ y )Nr%   r   r      )r1   r0  r1  r2  r   nunique_intsr   rG   )index_or_series_or_arrayrb   r   r   s       r<   test_nunique_intsr  w  s[    %bii&;&;A&>&G&G2r&RSF'F5<<'(HXrf   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)r6   r7   s     r<   test_invalidzTestIsin.test_invalid  s    " 	 ]]9C0 	JJq!	]]9C0 	JJq1#	]]9C0 	JJsA	 			 		 		 	s#   B4C C4B= C	Cc                    d}t        j                  t        |      5  t        j                  ddgdg      }d d d        t        j                  ddg      }t        j                  |       t        j                  t        j                  ddg      dg      }t        j                  ddg      }t        j                  ||       t        j                  t        ddg      dg      }t        j                  ddg      }t        j                  ||       t        j                  t        ddg      t        dg            }t        j                  ddg      }t        j                  ||       t        j                  t        ddg      dh      }t        j                  ddg      }t        j                  ||       t        j                  t        |      5  t        j                  ddgdg      }d d d        t        j                  ddg      }t        j                  ||       t        j                  t        ddg      t        dg            }t        j                  ddg      }t        j                  ||       t        j                  t        ddg      dh      }t        j                  ddg      }t        j                  ||       t        j                  t        |      5  t        j                  ddgdg      }d d d        t        j                  ddg      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   VxY w# 1 sw Y   QxY w)	N+isin with argument that is not not a Seriesr(   r$   r%   TFrh   ri   )	r-   r.   r/   r   r  r1   r2   r4   r   )r6   r7   r   r   s       r<   rx   zTestIsin.test_basic  s   ;''SA 	-ZZA,F	-88T5M*
##FH5BHHaV,qc288T5M*
##FH5FAq6NQC088T5M*
##FH5FAq6NFA3K888T5M*
##FH5FAq6NQC088T5M*
##FH5''SA 	3ZZc
SE2F	388T5M*
##FH5FC:.u>88T5M*
##FH5FC:.688T5M*
##FH5''SA 	1ZZc
QC0F	188UEN+
##FH5K	- 	-*	3 	3	1 	1s#   L8M(M8MMMc                    t        dd      j                  }t        j                  ||d   g      }t	        j
                  g d      }t        j                  ||       t        j                  ||dd       }t	        j
                  g d      }t        j                  ||       t        j                  |t        |dd             }t	        j
                  g d      }t        j                  ||       t        dd      j                  }t        j                  ||d   g      }t	        j
                  g d      }t        j                  ||       t        j                  ||dd       }t	        j
                  g d      }t        j                  ||       t        j                  |t        |dd             }t	        j
                  g d      }t        j                  ||       y )	Nr   rn   periodsr   TFFr%   rE  r   )
r   rb   r   r  r1   r2   r-   r4   r   r   r  s       r<   test_i8zTestIsin.test_i8  sl   Q/66C#a&*8801
##FH5CQq*88/0
##FH5CS1X/88/0
##FH5gq188C#a&*8801
##FH5CQq*88/0
##FH5CS1X/88/0
##FH5rf   dtype1)r_  r   M8[ns, UTC]z	period[D]r+   )r   f8r   c                 z   t        dd      j                  }t        |j                  d            j                  j                  |      }|j                  d      j                  |      }t        j                  ||      }t        j                  |j                  t              }t        j                  ||       y )N
2013-01-01rn   r  r   r*   )r   _valuesr   viewr2   rI   r   r  r1   zerosshaperK   r-   r4   )r6   r+   r  dtarw   compsr   r   s           r<   +test_isin_datetimelike_values_numeric_compsz4TestIsin.test_isin_datetimelike_values_numeric_comps  s    
 q199SXXd^$**//7%%e,E3'88EKKt4
##FH5rf   c                     t        ddd      j                  }t        j                  ||dd       }t	        j
                  t        |      t              }d|d<   d|d	<   t        j                  ||       y )
N20000101i rP  )r  r   r   r%   r*   Tr$   )
r   rb   r   r  r1   r  r   rK   r-   r4   r6   rP  r   r   s       r<   
test_largezTestIsin.test_large  sb    z7=DDAq1v&88CF$/
##FH5rf   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  rn   r  r   r   r  r*   )r   r  r   r  r2   r   r   r  r1   rK   r-   r4   )r6   r+   r  rw   r   r   s         r<   test_isin_datetimelike_all_natz'TestIsin.test_isin_datetimelike_all_nat  su     q199SXXd^$**//6AC#'880=
##FH5rf   )r_  r   r  c                 l   t        dd      j                  }t        |j                  d            j                  j                  |      }|D cg c]  }t        |       }}d}t        j                  t        |      5  t        j                  ||      }d d d        j                         sJ t        j                  |t
              }t        j                  t        |      5  t        j                  ||      }	d d d        	j                         sJ y c c}w # 1 sw Y   xY w# 1 sw Y   -xY w)Nr  rn   r  r   z2The behavior of 'isin' with dtype=.* is deprecatedr(   r*   )r   r  r   r  r2   strr-   r.   r/   r   r  allr1   )
r6   r+   r  rw   r}   valsr7   resvals2res2s
             r<   )test_isin_datetimelike_strings_deprecatedz2TestIsin.test_isin_datetimelike_strings_deprecated  s     q199SXXd^$**//6 #$1A$$B''SA 	(**S$'C	(wwyyS)''SA 	*::c5)D	*xxzz %	( 	(
	* 	*s   D D'D*D'*D3c                     t        ddd      }t        |      }t        |d<   t        j                  |j
                  t        g      }t        j                  g dt              }t        j                  ||       y )Nr  rn   UTCr  r  r   r  r*   )r   r   r   r   r  r  r1   r2   rK   r-   r4   )r6   rx  rc   r  rv   s        r<   test_isin_dt64tz_with_natz"TestIsin.test_isin_dt64tz_with_nat  s[     qU;SkAjjse,hh+48
##C-rf   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   rk   r$   r   )TTFT)	r1   r2   r   r   
from_codesr   r  r-   r4   )r6   r  r  SdStr   r   s          r<   test_categorical_from_codesz$TestIsin.test_categorical_from_codes  s    xx%K$//d;<K$//!Q0@$GH8856B#
##Hf5rf   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  )r1   r2   r   r  r   r  r-   r4   )r6   r  r  catotherr   r   s          r<   test_categorical_isinzTestIsin.test_categorical_isin  s    xx%1#))$5QC ++BHHaV,<dC8856C'
##Hf5rf   c                 0   t         j                  g}t         j                  g}t        j                  dg      }d}t        j                  t
        |      5  t        j                  ||      }d d d        t        j                  |       y # 1 sw Y    xY w)NTr  r(   )	r1   ra   r2   r-   r.   r/   r   r  r4   r6   r  rb   r   r7   r   s         r<   test_same_nan_is_inzTestIsin.test_same_nan_is_in!  st     &&88TF#;''SA 	/ZZv.F	/
##Hf5	/ 	/s   BBc                 <   t        j                  dd      }t         j                  |d<   t        j                  |t        j
                  t         j                  dg            }t        j                  t        |      t              }t        j                  ||       y Nr_   iAB r   r$   r*   )r1   r@  ra   r   r  r2   onesr   rK   r-   r4   r  s       r<   test_same_nan_is_in_largez"TestIsin.test_same_nan_is_in_large/  sd    GGC#vv!Arxx45773q6.
##FH5rf   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  )r1   r@  r   ra   r  r2   r  r   rK   r-   assert_series_equal)r6   rP  seriesr   r   s        r<    test_same_nan_is_in_large_seriesz)TestIsin.test_same_nan_is_in_large_series7  sp    GGC#vv!RXXrvvqk23"''#a&56
vx0rf   c                     G d d      } |        |       }}d}t        j                  t        |      5  t        j                  t	        j
                  |g|g      t        j                  dg             t        j                  t	        j
                  |g|g      t        j                  dg             d d d        y # 1 sw Y   y xY w)Nc                       e Zd ZdefdZd Zy)0TestIsin.test_same_object_is_in.<locals>.LikeNanreturnc                      y)NFr   )r6   r  s     r<   __eq__z7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__G  s    rf   c                      y)Nr   r   )r6   s    r<   __hash__z9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__J  s    rf   N)r#  r$  r%  rK   r  r  r   rf   r<   LikeNanr  F  s    t rf   r  r  r(   TF)r-   r.   r/   r4   r   r  r1   r2   )r6   r  rh   ri   r7   s        r<   test_same_object_is_inzTestIsin.test_same_object_is_in@  s    	 	 y')1;''SA 	Q''

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

A3(<bhhw>OP		Q 	Q 	Qs   BC  C	c                    t        d      g}t        d      g}|d   |d   usJ t        j                  t        j                  |      |      }t        j                  t        j                  dg      |       t        j                  t        j                  |t              t        j                  |t                    }t        j                  t        j                  dg      |       t        j                  t        j                  |t        j                        t        j                  |t        j                              }t        j                  t        j                  dg      |       y )Nra   r   Tr*   )
floatr   r  r1   r2   r-   r4   rO   r5   r   )r6   r  rb   r   s       r<   r  zTestIsin.test_different_nansV  s     u,Qxvay((( BHHUOV4
##BHHdV$4f= JJuF+RZZf-M
 	##BHHdV$4f= JJuBJJ/F"**1U
 	##BHHdV$4f=rf   c                     ddg}dg}t        j                  ddg      }d}t        j                  t        |      5  t        j                  ||      }d d d        t        j                  |       y # 1 sw Y    xY w)Nss*   42Fz2isin with argument that is not not a Series, Indexr(   )r1   r2   r-   r.   r/   r   r  r4   r  s         r<   test_no_castzTestIsin.test_no_castn  sp     r
88UEN+B''SA 	/ZZv.F	/
##Hf5	/ 	/s   A22A;emptyr*   c                     t        ddg      }t        j                  ddg      }t        j                  ||      }t        j                  ||       y )Nrh   ri   F)r   r1   r2   r   r  r-   r4   )r6   r  r  r   r   s        r<   
test_emptyzTestIsin.test_emptyy  sD     c3Z 88UEN+D%(
##Hf5rf   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 )Nra                 ?r*   )FFT)	r1   r2   ra   r  r5   r   r  r-   r4   )r6   r  r  r   r   s        r<   test_different_nan_objectsz#TestIsin.test_different_nan_objects  sj    %"eEl;6Jxxuf58801E4(
##Hf5rf   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  r1   r2   r   r   r  r-   r4   )r6   r  r  rw   lookup1r   r   lookup2s           r<   test_different_nans_as_float64z'TestIsin.test_different_nans_as_float64  s   
 }}S&++d4F"GHK}}S&++d4F"GHKt||t|| hhd|2::6((D64C)88T4L)
##FH5((D64C)88T4L)
##FH5rf   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 1rb   r$   r%   r  FN)r   r  r-   assert_frame_equalr6   dfr   expected_falses       r<   test_isin_int_df_string_searchz'TestIsin.test_isin_int_df_string_search  sI     1a&)*#"Huen#=>
fn5rf   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 NaNrb   r%   NaNr*   FN)r   r1   ra   r  r2   r5   r-   r
  r  s       r<   test_isin_nan_df_string_searchz'TestIsin.test_isin_nan_df_string_search  sY     2661+./5'89"Huen#=>
fn5rf   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.4245rb   gn?g#Ed@z1.4245r*   FN)r   r  r1   r2   r5   r-   r
  r  s       r<    test_isin_float_df_string_searchz)TestIsin.test_isin_float_df_string_search  sV     67"3458*F;<"Huen#=>
fn5rf   c                     t        dgt        j                        }|j                  dg      }t        d      }t	        j
                  ||       y )Nl   
G r*   l    
G F)r   r1   r   r  r-   r  r6   rc   r   r   s       r<   test_isin_unsigned_dtypez!TestIsin.test_isin_unsigned_dtype  sA    )*"))<./0%=
vx0rf   N)!r#  r$  r%  r  rx   r  r   r&  r(  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r5   r1   r2   r  r  r  r  r  r  r  r   rf   r<   r  r    s.   
'6R66 [[X'WX[[W&89
6 : Y
66 [[W&VW6 X6 [[W&IJ K 	.66661Q,>0	6 [[Wr6+?"&NO6 P666,6661rf   r  c                       e Zd Zd Zd Zd Zd Zej                  j                  de
dg      d        Zd Zd	 Zd
 Zd Zej                  j                  dej"                  e
df      d        Zd Zd Zy)TestValueCountsc                    t         j                  j                  d      j                  d      }t	        |d      }d}t        j                  t        |      5  t        j                  |      }d d d        g d}t        j                  |      j                  t        d            }t        g d|d	
      }t        j                  j!                         |j!                                y # 1 sw Y   ~xY w)Ni  ro   !pandas.value_counts is deprecatedr(   )gV-g}?5^Ig/$ۿgףp=
?gʡE?Trm  )r$   r   r%   r$   countrN   ro  )r1   r0  r1  standard_normalr   r-   r.   r/   r   value_countsr   from_breaksrI   r   r   r  
sort_index)r6   rw   factorr7   r   breaksrN   r   s           r<   test_value_countsz!TestValueCounts.test_value_counts  s    ii##D)99!<S! 2''SA 	0''/F	07))&1889IRV9WX,e'B
v002H4G4G4IJ	0 	0s   C++C4c                    g d}d}t        j                  t        |      5  t        j                  |d      }d d d        t        dgt        j                  dg      d	      }t        j                  |       t        j                  t        |      5  t        j                  |d
d      }d d d        t        d
d
gt        j                  ddg      d	      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   QxY w)N)r$   r%   rn   ro   r  r(   r$   binsro   )Zd;?rq   r  r  r%   F)r&  r@   )r'        @)r(  rq   )	r-   r.   r/   r   r  r   r   rF   r  )r6   rP  r7   r   r   s        r<   test_value_counts_binsz&TestValueCounts.test_value_counts_bins  s    1''SA 	3''2F	3C}00,@w
 	vx0''SA 	?''>F	?F++\:,FG

 	vx0	3 	3	? 	?s   C3C?3C<?Dc                    d}t        j                  t        |      5  t        j                  t        j                  ddg            }d d d        t              dk(  sJ t        j                  t        |      5  t        j                  t        j                  ddg      d      }d d d        t        |      dk(  sJ t        j                  t        |      5  t        j                  t        g d            }d d d        t        |      dk(  sJ d}t        j                  t        |      5  t        j                  t        |      5  t        j                  t        j                  d	dgt        
      d       d d d        d d d        y # 1 sw Y   KxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   7xY w# 1 sw Y   y xY w)Nr  r(   r$   r_   r%  )r$   r_   r  r%   z*bins argument only works with numeric datar  r*   )r-   r.   r/   r   r  r1   r2   r   r   r   r   r   r5   )r6   msg2r   r7   s       r<   test_value_counts_dtypesz(TestValueCounts.test_value_counts_dtypes  s{   2''TB 	<''!S(:;F	<6{a''TB 	D''!S(:CF	D6{a''TB 	?''}(=>F	?6{a:]]9C0 	M++MF M""288S!HF#C!LM	M 	M	< 	<	D 	D	? 	?M M	M 	MsG   +F<-F!F+2G3F7GFF(+F47G 	<GGc                 \   t        t        j                  d      t        gd      }t	        ddg      }d}||fD ]r  }t        j                  t        |      5  t        j                  |      }t        j                  |d	      }d d d        t              d
k(  sJ t              dk(  rrJ  t        t        d      d
id      }t        j                  t        |      5  t        j                  |      }d d d        t        j                  |       t        d
gt        j                  d      gd      }	t        j                  t        |      5  t        j                  |      }
d d d        t        j                  
|	       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   9xY w)Nr^  timedelta64[ns]r*   r   z
2014-01-01r  r(   Fdropnar$   r%   z2014-01-01 00:00:00r  rn  r  )r   r1   timedelta64r   r   r-   r.   r/   r   r  r   r   r  )r6   tdr  r7   rc   vc
vc_with_naexp_dt	result_dtexp_td	result_tds              r<   test_value_counts_natz%TestValueCounts.test_value_counts_nat  sr   R^^E*C08IJ%./18 	(C++ME C'',"//EB
C r7a<<z?a'''	( #891=GL''SA 	/**2.I	/
y&1BNN5$9#:I''SA 	/**2.I	/
y&1C C	/ 	/
	/ 	/s$   -F	"FF"	F	F"F+r+   zM8[us]c                 |   t        t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      g|      }|j                         }t        t        ddd      t        ddd      t        ddd      g|      }t        g d|d      }t	        j
                  ||       y )	Ni  r$   i  ip  r*   rn   r%   r$   r  r  )r   r   r  r   r-   r  )r6   r+   rc   r  	exp_indexrv   s         r<   &test_value_counts_datetime_outofboundsz6TestValueCounts.test_value_counts_datetime_outofbounds  s     q!$q!$q!$q!$q!$q!$ 

  dAq!8D!Q#7$19MN
	 Yig>
sC(rf   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aaabbcr;  rk   r  r  Tcheck_index_type)
r   r   rM   r  r   r-   r  r  
as_orderedrN   r  s       r<   rt  z TestValueCounts.test_categorical"  s    ;tH~./!-o>W
 	vx$G EE!!224
vx$Grf   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$   )ro   rn   r%   rk   rp  r  r  Tr@  Fr/  )ro   rn   r%   r$   rh   ri   rj   )ri   rh   rj   )rk  r	  rj  )
r   r   rM   r1   ra   ilocr  r   r-   r  r  s       r<   test_categorical_nansz%TestValueCounts.test_categorical_nans1  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$Grf   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abcdTrj  )rn   r%   r$   r   )ri   rh   rj   r  r  r  r@  )r   r   rM   r  r-   r  r  s       r<   test_categorical_zeroesz'TestValueCounts.test_categorical_zeroes\  sc    ;tH~$v,PTUV!$ft 
 	vx$Grf   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 )NrE  Tr/  r%   r$   Fr  r  rn   rl   r*   )rl   rn   r%   )TFN)皙$@rp   rp   rp   rL  )rL  rp   rp   N)rL  rL  rp   rp   rp   Nr;  )rp   rL  N)r-   r  r   r  r   r5   )r6   r   r   s      r<   test_value_counts_dropnaz(TestValueCounts.test_value_counts_dropnai  s    	&'44D4AAq6$W=	
 	&'44E4BAq6$W=	

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

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

 9:GGuGU)+<7K
vx0rf   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%   rn   rl   TF)	normalizer0  )g      ?g333333?g?r`   r_   r*   
proportionr  g333333?g?)r   r1   ra   rI   r  r-   r  )r6   r+   rP  s_typedr   r   s         r<   test_value_counts_normalizedz,TestValueCounts.test_value_counts_normalized  s     A37aS1W$x!|34((5/%%U%C"&&#s+59

 	vx0%%T%B#Jfc3Zu=L
 	vx0rf   c                 >   t        j                  dgt         j                        }t        dgdgd      }d}t	        j
                  t        |      5  t        j                  |      }d d d        t	        j                  |       t        j                  ddgt              }t        ddgddgd      }t	        j
                  t        |      5  t        j                  |      }d d d        t	        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ,xY w)	Nr   r*   r$   r  r  r  r(   rm   )r1   r2   r   r   r-   r.   r/   r   r  r  r5   )r6   rw   r   r7   r   s        r<   test_value_counts_uint64z(TestValueCounts.test_value_counts_uint64  s    hhwbii01#eW7;1''SA 	-'',F	- 	vx0hhE{&11a&U'B''SA 	-'',F	- 	vx0	- 	-	- 	-s   DDDDc                    t        j                  dddddt         j                  g      }t        |      j	                  d      }t        g dt        j                  g dd	      d
      }t        j                  ||       y )Nrn   r$   r%   ro   r%  )r%   r%   r$   ))r'  r`   )r`   rr   )rr   rq   zinterval[float64, right]r*   r  r  )	r1   r2   ra   r   r  r   rF   r-   r  )r6   rb   r   r   s       r<   test_value_counts_seriesz(TestValueCounts.test_value_counts_series  sp    1aAq"&&12,,!,4++6>X 
 	vx0rf   N)r#  r$  r%  r#  r)  r,  r9  r   r&  r(  r5   r=  rt  rF  rJ  rM  r1   r   rR  rT  rV  r   rf   r<   r  r    s    K1&M&2. [[Wvx&89) :),H)HVH$1L [[Wrzz68&DE1 F1$1 1rf   r  c                      e Zd Zd Zej
                  j                  d ej                  g d       ej                  dddej                  ddddej                  dg
       ej                  g d	       ej                  g d
e
       ej                  g dej                        g      d        Zd Zej
                  j                  d eg d       ej                   dd      g      d        Zej
                  j                  dg dg dfg dddgfg dg dfg      d        Zej
                  j                  dg d ej                  g de
      fg      d        Zy )!TestDuplicatedc           	      R   t        j                  ddt         j                  ddt         j                  gt              }t	        j
                  |      }t        j                  g d      }t        j                  ||       t	        j
                  |d      }t        j                  g d      }t        j                  ||       t	        j
                  |d      }t        j                  g d	      }t        j                  ||       t	        j
                  |d
      }t        j                  g d      }t        j                  ||       t        j                  dt              }t        t        ddt         j                  t         j                  gdz  dt         j                  dt         j                  gdz              D ]
  \  }}|||<    t	        j
                  |      }d
gdz  }dgdz  }t        j                  ||z         }t        j                  ||       t	        j
                  |d      }t        j                  ||z         }t        j                  ||       t	        j
                  |d
      }t        j                  ||z         }t        j                  ||       y )Nr   r$   r%   r*   )FFFTFTfirstkeeplast)TFTFFFF)TFTTFT   ro   T)r1   r2   ra   r5   r   
duplicatedr-   r4   r  	enumeratezip)r6   keysr   r   r   tfalsestruess           r<   test_duplicated_with_nasz'TestDuplicated.test_duplicated_with_nas  s   xxArvvq!RVV4FC!!$'88DE
##FH5!!$W588DE
##FH5!!$V488DE
##FH5!!$U388BC
##FH5xx(Arvvrvv&*Q266,BQ,FG
 	DAq DG	
 !!$'1
88FUN+
##FH5!!$V488EFN+
##FH5!!$U388EEM*
##FH5rf   case)
r$   r%   r$   rl   rn   r%   ro   r$   rl      g?g@gffffff
@g@gffffff@)
      ?      ?       @       @ri        @      @y      @      @rj  y      @      @ri  rk  y      @      @)
rh   ri   rh   erj   ri   r  rh   rl  fr*   )
r$   r   r$      r   r   '   r$   rn     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
TTTTFFFFFFrZ  r[  r]  Fr  r*   )	r1   r2   r   r_  r-   r4   r   r   r  )
r6   rg  	exp_firstexp_last	exp_false	res_firstres_last	res_falser  rP  s
             r<   test_numeric_object_likesz(TestDuplicated.test_numeric_object_likes  s   4 HHN
	 88N
 (	$$T8	
##Iy9##Dv6
##Hh7$$T6	
##Iy9 $Kt:!>? 	>CG4I''	9=~~6~2H''(;E2I''	9=	> ,t: >? 	AA'2I""9fY.?@|||0H""8VH-=>%0I""9fY.?@	Arf   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  r9  r   rr  rs  rZ  r[  r]  Fr  r*   )r1   r2   r   r   r   r   r   r_  r-   r4   r   r5   r   r  )r6   r  r2  r  casesrt  ru  rv  rg  rw  rx  ry  r  rP  s                 r<   test_datetime_likesz"TestDuplicated.test_datetime_likes)  s   

 HHB/qil/0HHR@il3@AHH26afQS)67HH31bmmA&34HHB/qil/0
 HHN
	 88N
 (	 &	ED((G<I''	9=''6:H''(;((E:I''	9= dd*-d&) B
  NNN8	++IyA>>v>6++Hh?NNN6	++IyAB  tt:.t6* E
 LLgL6	&&y&2CD<<V<4&&x1ABLLeL4	&&y&2CDE5&	E 0@63/s   LL
4L#!L(L-r   r   rn   c                     |j                   du sJ t        j                  |j                         t	        j
                  g d             y )NT)FFF)	is_uniquer-   r4   r_  r1   r2   )r6   rg  s     r<   test_unique_indexz TestDuplicated.test_unique_index{  s5    ~~%%%
##DOO$5rxx@U7VWrf   zarr, uniques)r   r   r$   r$   r   r   r   r  r  r   )r   r  r  r   )ri   rj   rh   ri   r  r  r  r  )r   ri   r%   rh   rn   r   )r   r  r  c                    t        j                  t        |      t              }||d d  d}t	        j
                  t        |      5  t        j                  |      }d d d        t	        j                  |       y # 1 sw Y    xY w)Nr*   r  r(   )
r1   r  r   r5   r-   r.   r/   r   rG   r4   )r6   rw   r9   r   r7   r   s         r<   test_unique_tuplesz!TestDuplicated.test_unique_tuples  sh      88CL7=''SA 	$YYs^F	$
##FH5	$ 	$s   A<<Bzarray,expected)ri  r   r$   r        ?       @r  )ri  y                r,   r  r  c                     d}t        j                  t        |      5  t        j                  |      }d d d        t        j
                  |       y # 1 sw Y    xY wr  r  )r6   r2   r   r7   r   s        r<   test_unique_complex_numbersz*TestDuplicated.test_unique_complex_numbers  sL     >''SA 	&YYu%F	&
##FH5	& 	&r  N)r#  r$  r%  rf  r   r&  r(  r1   r2   ra   r5   r   rz  r  r   r   r   r  r  r  r   rf   r<   rX  rX    s   %6N [[BHH34BHHc3RVVS#sCMNBHH BHHGvVBHH>bii%	
2&A32&APPEd [[VeI&6a8K%LMX NX [[ Q0
 AZ( 67UV
	
66 [[ 3?vN	
	6	6rf   rX  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, datar;  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*       rn   Tfracreplacedropr   rZ  r[  )return_inverse)r   r+   r   Float64HashTabler1   ra   locPyObjectHashTabler   samplereset_indexrb   r   drop_duplicatesrG   r-   r4   )
r6   htabler   r   rP  s_duplicatedexpected_uniqueresult_uniqueresult_inversereconstrs
             r<   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Brf   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  rn   Tr  r  r   )r   r+   r   r  r1   ra   r  r  r   r  r  rb   r   r   r0   r0  r  r-   r4   )r6   r  r   r   rP  r  na_maskr  r  r  result_reconstructexpected_reconstructs               r<   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Mrf   N)r#  r$  r%  r   r&  r(  r   r  r1   r2   r   r5   StringHashTabler  rt   r   Int64HashTabler   UInt64HashTabler   r  r  ).0r   s   00r<   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ej                  j                  dej                  d	         d
        Z
ej                  j                  dej                  ej                  g      d        Zd Zej                  j                  d        Zy)TestRankrw   rp   r$   r%   rn   rq   c                 h   t        j                  d      }t        j                  |      }t        j                  |       }|j                         }t        j                  |      }t        j                  ||<   |j                  |      }t        j                  ||<   t        j                  ||       y )Nzscipy.stats)r   importorskipr1   r2   isfinitecopylibalgosrank_1dr|   rankdatara   r-   rA  )r6   rw   sp_statsr   r   rv   s         r<   test_scipy_compatzTestRank.test_scipy_compat  s     &&}5hhsmC  hhj!!#&FFD	$FFD	
vs+rf   r+   
AllIntegerc                    t        j                  ddgt         j                        }t        j                  ddg|      }|j                  |       t	        |      }t        j                  |      }t        j                  ||       y )Nr$   r%   r*   r,  r   )	r1   r2   r   r   r   r   rankr-   r4   )r6   r   r+   rv   r   rc   r   s          r<   rx   zTestRank.test_basic  sb    hh1vRZZ0xxC.H%TlC
##FC0rf   c                     t        j                  ddgt         j                        }t        ddg|      }t	        j
                  t        j                  |      |       y )Nr$   r%   r*   r   )r1   r2   r   r   r-   r4   r   r  )r6   r+   rv   rP  s       r<   rc  zTestRank.test_uint64_overflow%  sB    hh1vRZZ0Au:U+
##EJJqM37rf   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   )ro   rl   rh  )rp  r^  	   z%Array with ndim > 2 are not supportedr(   )r1   r2   r   r   r   r   r  )r6   rw   r7   s      r<   test_too_many_ndimszTestRank.test_too_many_ndims,  sM    hhIy9:;5]]9C0 	JJsO	 	 	s   AA%c                 (   t        j                  d      }t        j                  |d      j	                         }|dk(  sJ t        j                  d      j                  dd      }t        j                  |d      j	                         }|dk(  sJ y )Ni  T)pctr$   i  r%   )r1   rt   r   r  maxreshape)r6   rb   r   s      r<   test_pct_max_many_rowszTestRank.test_pct_max_many_rows3  sw     9%F-113{{9%--i;F-113{{rf   N)r#  r$  r%  r   r&  r(  r1   ra   r  	typecodesrx   r   r   rc  r  
single_cpur  r   rf   r<   r  r    s    [[VVRVVS#sBFFAq!RVVD"&&#sCAsBFFC	
,, [[Wbll<&@A1 B1 [[Wrzz299&=>8 ?8 [[ rf   r  c                      e Zd Zd Zej
                  j                  dej                  d   ej                  d   z         d        Z	d Z
ej
                  j                  dej                  d   ej                  d   z         d        Zd Zej
                  j                  deeg      d	        Zd
 Zd Zd Zd Zd Zd Zd Zy)TestModec                     t        g t        j                  t        g t                    }t        j                  t        j                  t        j                  g             |j                         y )Nr*   )r+   rN   )r   r1   r   r   intr-   r4   r   moder2   rb   r6   rv   s     r<   test_no_modezTestMode.test_no_mode@  s@    Rrzzr1EF
##EJJrxx|$<cjjIrf   r  r  Floatc                 
   dg}dg}dg}ddg}t        ||      }t        ||      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       t        ||      }t        ||      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       y )Nr$   r*   r   r-   r4   r   r  rb   r  r6   r  
exp_singledata_single	exp_multi
data_multirc   rv   s           r<   test_mode_singlezTestMode.test_mode_singleD  s     S
cC	V
[+Zr*
##EJJszz$:CJJG
sxxz3/Zr*Yb)
##EJJszz$:CJJG
sxxz3/rf   c                 B   t        dgt              }t        j                  t	        j
                  |j                        |j                         t        g dt              }t        j                  t	        j
                  |j                        |j                         y )Nr$   r*   rk   )r   r  r-   r4   r   r  rb   r5   r  s     r<   test_mode_obj_intzTestMode.test_mode_obj_intW  s^    aS$
##EJJszz$:CJJG_F3
##EJJszz$:CJJGrf   c                 @   dg}dgdz  dgdz  z   }ddg}dgdz  dgdz  z   dgdz  z   }t        ||      }t        ||      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       t        ||      }t        ||      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       y )Nr$   rl   r%   rn   r*   r  r  s           r<   test_number_modezTestMode.test_number_mode^  s    S
cAga'F	S1WsQw&!q0
[+Zr*
##EJJszz$:CJJG
sxxz3/Zr*Yb)
##EJJszz$:CJJG
sxxz3/rf   c                    dg}dgdz  dgdz  z   }t        |d      }t        |d      }t        j                  t        j                  |j
                        |j
                         t        j                  |j	                         |       y )Nri   rh   r%   rn   rj   r*   r  )r6   rv   r   rc   s       r<   test_strobj_modezTestMode.test_strobj_modep  sn    euqyC519$T%S$
##EJJszz$:CJJG
sxxz3/rf   c                    dg}dgdz  dgdz  z   }t        ||      }t        ||      }|rF|t        u r>t        j                  t	        j
                  |j                        |j                         n=t        j                  t	        j
                  |j                        |j                         t        j                  |j                         |       y )Nbarr   r%   rn   r*   )	r   r  r-   r   r   r  rb   r4   r  )r6   r  using_infer_stringrv   r   rc   s         r<   test_strobj_multi_charzTestMode.test_strobj_multi_chary  s    gw{eWq[(T$S#")++EJJszz,BCJJO''

3::(>

K
sxxz3/rf   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   r-   r   r   r  rb   r  r  r6   rv   rc   s      r<   test_datelike_modezTestMode.test_datelike_mode  s    ?xP?xP
''

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

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

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

3::(>L
sxxz3/rf   c                    t        dgt              }t        g d      }t        j                  t	        j
                  |j                        |j                         t        j                  |j                         |       y )Nr   r*   )r$   r   r   )r   r5   r-   r4   r   r  rb   r  r  s      r<   test_mixed_dtypezTestMode.test_mixed_dtype  sR    eWF+&'
##EJJszz$:CJJG
sxxz3/rf   c                 n   t        dgt        j                        }t        g dt        j                        }t        j                  t        j                  |j                        |j                         t        j                  |j                         |       t        ddgt        j                        }t        ddgt        j                        }t        j                  t        j                  |j                        |j                         t        j                  |j                         |       y )Nr   r*   )r$   r   r   r$   )	r   r1   r   r-   r4   r   r  rb   r  r  s      r<   rc  zTestMode.test_uint64_overflow  s    eWBII.&bii8
##EJJszz$:CJJG
sxxz3/aZryy1aZryy1
##EJJszz$:CJJG
sxxz3/rf   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$   rh   rh   rh   rp  r$   r$   r%   rn   rn   rn   r   )r   r   r  r  r-   rq  )r6   rj   rv   r  s       r<   rt  zTestMode.test_categorical  s    AQinn&&
##C-&3%QH5Qinn&&
##C-(1a&Y7Qinn&&
##C-rf   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  rh   r  r$   rn   r  r.  TimedeltaIndexr(   )r   r   r1   r   r-   r4   r   r  rb   r5   r   r   AttributeError)r6   r  rv   s      r<   
test_indexzTestMode.test_index  s    IYbhh/
##EJJsOSZZ@M"cU&)
##EJJsOSZZ@O$aV288,
##EJJsOSZZ@J#
 ]]>1AB 	JJsO	 	 	s   7EEc                     t        g dd      }|j                         }t        dgd      }t        j                  ||       y )N)r$   r$   rn   r   rn  r$   )r   r  r-   r  r  s       r<   test_ser_mode_with_namez TestMode.test_ser_mode_with_name  s7    YU+1#E*
vx0rf   N)r#  r$  r%  r  r   r&  r(  r1   r  r  r  r  r  r  r5   r  r  r  r  rc  rt  r  r  r   rf   r<   r  r  ?  s    J [[T2<<#=W@U#UV0 W0$H [[T2<<#=W@U#UV0 W0"0 [[TC=1
0 2
0000	0. *1rf   r  c                       e Zd Zej                  j                  dddg      d        Zd Zej                  j                  dddg      d        Zy	)
TestDiffr+   r   r_  c                    t        j                  d      j                  t         j                        j	                  |      j                  dd      }|j                  j                  dd      |d d df<   t        j                  |dd	      }t        j                  |j                  d
      dz  }t        j                  dd      |d d df<   t        j                  dd      |dd d f<   t        j                  ||       t        j                  |j                  dd	      }t        j                  ||j                         y )N   rn   ro   r   nsr%   r$   r   axisr.  r*   )r1   rt   rI   r   r  r  r+   typer   diffr  r  r1  r-   r4   Tr6   r+   rw   r   r   s        r<   test_diff_datetimelike_natz#TestDiff.test_diff_datetimelike_nat  s     iim""288,11%8@@AFIINN5$/AqD	C+77399,=>Bt4At4A
##FH5CEE11-
##FHJJ7rf   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  rn   r  r  z#cannot diff DatetimeArray on axis=1r(   r$   r  )r   rw  r   r   
ValueErrorr   r  )r6   r  r7   s      r<   test_diff_ea_axiszTestDiff.test_diff_ea_axis  sN    q\BHH3]]:S1 	'JJsAA&	' 	' 	's   AA!int8int16c                     t        j                  g d|      }t        j                  |d      }t        j                  t         j                  ddddgd      }t        j                  ||       y )N)r   r$   r$   r   r   r*   r$   r   rm   rJ   )r1   r2   r   r  ra   r-   r4   r  s        r<   test_diff_low_precision_intz$TestDiff.test_diff_low_precision_int  sQ    hhe4C#88RVVQ2q1C
##FH5rf   N)	r#  r$  r%  r   r&  r(  r	  r  r  r   rf   r<   r  r    sY    [[Wx&:;8 <8' [[Wvw&786 96rf   r  opc                 &    | g d      } | g d      } | g d      }t        |t        j                        r-t        j                  ||      }t        j                  ||       y t        j                  ||      }t        j                  ||       y )N)rn   r$   rn   ro   )r%   rn   r$   r$   )rn   rn   r$   r$   ro   r%   )rE   r1   r   r   union_with_duplicatesr-   r4   r   )r  lvalsrvalsr   r   s        r<   test_union_with_duplicatesr     su     |E|E$%H(BJJ',,UE:
##FH5,,UE:
''9rf   )Br   r  numpyr1   r   pandas._configr   pandas._libsr   r  r   r   pandas.core.dtypes.commonr   r   r	   r
   r   pandas.core.dtypes.dtypesr   pandasr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr-   pandas.core.algorithmscore
algorithmspandas.core.arraysr   r    pandas.core.commoncommonr   r"   r*  r  r  r  rX  r  r  r  r  r&  r(  r2   r  r   rf   r<   <module>r%     s       -
  7     (  & & !  zQ zQzB: B:J
~1 ~1B
}1 }1@g6 g6TYN YNx6 6r^1 ^1B6 6@ "((34
: 5
:rf   