
    \
qi2                    N   d dl m Z  d dlZd dlZd dlZd dlmZmZ	 d dl
mZmZmZmZmZ d dlmZmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z) d dl*m+c m,Z d dl-m.Z.m/Z/ d dl0m+c m1Z2  G d d	          Z3 G d
 d          Z4d Z5 G d d          Z6 G d d          Z7 G d d          Z8 G d d          Z9 G d d          Z: G d d          Z; G d d          Z<ej=        >                    dej?        ej?        g          d             Z@dS )    )datetimeN)algos	hashtable)is_bool_dtypeis_complex_dtypeis_float_dtypeis_integer_dtypeis_object_dtype)CategoricalDtypeDatetimeTZDtype)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexIntervalIndex
MultiIndexNaTPeriodPeriodIndexSeries	Timedelta	Timestampcut
date_rangetimedelta_rangeto_datetimeto_timedelta)DatetimeArrayTimedeltaArrayc                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                            dg dg dg dfg dg dg dfg dg dg dfg          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd  Zej                            d! ej        g d"d#$           ej        g d%d&$           ej        g d'd($          g          d)             Zej                            d* ej        g d+d#$          d,f ej        g d-d#$          d.f ej        g d/d&$          d0f ej        g d1d&$          d.f ej        g d2e $          d3f ej        g d4e $          d5f ej        g d6e $          d7fg          d8             Z!ej                            d9 ej        g d:e $           ej        d;d3ge $          f e"j        d<d.e"j#        d<gd=$           e"j        d<d.gd=$          fgd>d?g@          dA             Z$ej                            dg dB ej        g dC ej%        dD          $           ej        d3ej&        d;ge $          fd3ej&        d;d3g ej        g dC ej%        dD          $           ej        d3ej&        d;ge $          fg          dE             Z'ej                            d ej        g dFe $           ej        g d+ ej%        dD          $           ej        d.ej&        d<gdG$          f ej        d.ej&        d.d<gej(        $           ej        g d+ ej%        dD          $           ej        d.ej&        d<gej(        $          fg          dH             Z)ej                            d e* e+g dI                     ej        g dJej,        $           e-d3d;gd3d;gdKL          f e. e+g dI                     ej        g dJej,        $           e-d3d;gd3d;gdKL          f e. e/dMdMgdNO                     ej        d,d,gej,        $           e/dMgdNO          fg          dP             Z0dQ Z1dRS )STestFactorizec                 @   t          j        g dt                    }t          j        |          \  }}t          j        g dt           j                  }t          j        ||           t          j        g dt                    }t          j        ||           d S )N)             @      ?dtype)r   r$   r%   )      ?               @        r&   )nparraycomplexr   	factorizeintptmassert_numpy_array_equal)selfr,   labelsuniquesexpected_labelsexpected_uniquess         w/var/www/html/bestrading.cuttalo.com/services/ml-inference/venv/lib/python3.11/site-packages/pandas/tests/test_algos.pytest_factorize_complexz$TestFactorize.test_factorize_complex7   s    w777/%00(999BG<<<
#FO<<<8$B$B$B'RRR
#G-=>>>>>    c                   
 |}|                     |          \  }}t          }t          |t                    rt          j        }|                                }|j        t          j        k    r|	                    t          j
                  } ||          }t          |t                    r:|j        t          k    r*|j        t          k    r|	                    t                    }|r|                                }t          |          

fd|D             }	t          j        |	t          j                  }	t#          j        ||	           t#          j        ||d           d S )Nsortc                 :    g | ]}                     |          S  )index).0valexpected_uniques_lists     r7   
<listcomp>z0TestFactorize.test_factorize.<locals>.<listcomp>Z   s(    JJJs/55c::JJJr9   r'   Texact)r.   r   
isinstancer   from_tuplesuniquer(   r+   float16astypefloat32boolobjectsort_valueslistasarrayr/   r0   r1   assert_index_equal)r2   index_or_series_objr<   objresult_codesresult_uniquesconstructorexpected_arrr6   expected_codesrB   s             @r7   test_factorizezTestFactorize.test_factorizeB   sN   !'*}}$}'?'?$nc:&& 	1$0Kzz||++'..rz::L&;|44sE""	? &$..	V##/66v>> 	>/;;== !%%5 6 6JJJJcJJJN"'BBB
#L.AAA
n.>dKKKKKKr9   c                 j   t          j        dddt           j        g          }t          |          }|                    d          \  }}t          j        g dt           j                  }t          ddt           j        g          }t          j        ||           t          j	        ||           d S )	Nr$   r%   Fuse_na_sentinelr   r$   r   r%   r'         ?       @)
r+   r,   nanr   r.   r/   r   r0   r1   rQ   )r2   valuessercodesr4   rX   r6   s          r7   +test_series_factorize_use_na_sentinel_falsez9TestFactorize.test_series_factorize_use_na_sentinel_false`   s    1aBF+,,Vnnu==w,,,bg>>> #sBF!344
#E>:::
g'788888r9   c                 f   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        ||           d S )N)abrg   rf   rf   crh   rh   r'   rf   rg   rh   Tr;   )r   r$   r$   r   r   r%   r%   r%      )r   r$   r%         )rm   rl   r%   r$   r         @)      @      @r_   r^           )rq   r^   r_   rp   ro   )
r+   r,   rM   r   r.   r0   r1   r/   aranger(   )r2   itemsrc   r4   exparrs         r7   
test_basiczTestFactorize.test_basicl   s   AAAPPP//w
#GRXoooV-T-T-TUUUT:::wh///rw???
#E3///hf555
#GS111i)))$$B$/--whbg666
#E3///hci888
#GS1114888whbg666
#E3///hci888
#GS111innTTrT"--whbg666
#E3///h000	BBB
#GS1114888whbg666
#E3///h000	BBB
#GS11111r9   c                 \   t          ddt          j        ddt          j        g          }t	          j        |          \  }}t          j        g dt          j                  }t          j	        ||           t          dddt          j        g          }t          j        ||           t	          j        |d          \  }}t          j        g dt          j                  }t          j	        ||           t          dt          j        ddg          }t          j        ||           d S )	NABgQ	@)r   r   rk   r$   r%   rl   r'   Tr;   )r%   r%   rk   rl   r   r$   )r   r+   r`   infr   r.   r,   r/   r0   r1   r   rQ   )r2   xrc   r4   rt   s        r7   
test_mixedzTestFactorize.test_mixed   s   Cbfc4899++wh***"':::
#E3///S#tRV,--
gs+++666wh***"':::
#E3///T263,--
gs+++++r9   c                 @   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
        ||           d S )Nz20130101 09:00:00.0000420130101r   r   r   r$   r$   r   r'   Tr;   )r$   r$   r$   r   r   r$   )r   r   r   r.   r+   r,   r/   r0   r1   r   rQ   r2   v1v2r{   rc   r4   rt   s          r7   test_factorize_datetime64z'TestFactorize.test_factorize_datetime64   s   011z""BBB+,,++wh)))999
#E3///RH%%
gs+++666wh)))999
#E3///RH%%
gs+++++r9   c                 @   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                     d S )	N201302Mfreq201303r   r'   Tr;   )r   r   r   r.   r+   r,   r/   r0   r1   rQ   r   r   s          r7   test_factorize_periodz#TestFactorize.test_factorize_period   s   H3'''H3'''BBB+,, ++wh)))999
#E3///
g{B8'<'<===666wh)))999
#E3///
g{B8'<'<=====r9   c           	      :   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                     d S )Nz1 day 1 min1 day)r   r$   r   r   r$   r$   r   r'   Tr;   )r$   r   r$   r$   r   r   r$   )
r   r   r   r.   r+   r,   r/   r0   r1   rQ   r   s          r7   test_factorize_timedeltaz&TestFactorize.test_factorize_timedelta   s   -(('""BBBB/00++wh,,,BG<<<
#E3///
g|RH'='=>>>666wh,,,BG<<<
#E3///
g|RH'='=>>>>>r9   c                    t          j        dddt           j        gd          }t          j        t          |                    }dD ]}|                    ||          }t          j        ddd|gt           j                  }t          t          |                    t          t          |                    k    sJ t          j
        t          j        |          ||k               t          j
        ||           d S )Nr$   r%   Or'   )rk      )na_sentinelr   )r+   r,   r`   htObjectFactorizerlenr.   r/   setr0   r1   pdisna)r2   keyrizerr   idsexpecteds         r7   test_factorize_nanz TestFactorize.test_factorize_nan   s     h1a(444#CHH--# 	7 	7K//#;/??CxAq+ 6bgFFFHs3xx==CH$6$66666'h+6MNNN'X6666	7 	7r9   c                    t          j        g dd          }t          j        g d          }t          j        t	          |                    }|                    ||          }t          j        g dt           j                  }t          j        ||           t          j        g dd          }t          j        |j	        
                                |           d S )N)r$   r%   rl   r$   r$   r   int64r'   )FFFFFT)mask)r   r$   r%   r   r   rk   r$   r%   rl   )r+   r,   r   Int64Factorizerr   r.   r/   r0   r1   r4   to_array)r2   datar   r   resultr   r6   s          r7   test_factorizer_with_maskz'TestFactorize.test_factorizer_with_mask   s    x***':::xAAABB"3t99--D118///rw???
#FH5558IIIW===
#EM$:$:$<$<>NOOOOOr9   c                    t          j        ddddt           j        g          }t          j        t          |                    }|                    |                    t                              }t          j        g dt           j	                  }t          j        ||           t          j        g dt                    }t          j        |j                                        |           d S )Nr$   r%   rl   )r   r$   r%   r   rk   r'   r   )r+   r,   r`   r   r   r   r.   rJ   rM   r/   r0   r1   r4   r   )r2   r   r   r   r   r6   s         r7   test_factorizer_object_with_nanz-TestFactorize.test_factorizer_object_with_nan   s    xAq!RV,--#CII..V!4!4558,,,BG<<<
#FH5558IIIV<<<
#EM$:$:$<$<>NOOOOOr9   z&data, expected_codes, expected_uniques)r$   r$   r$   r%   r   r   r   nonsense)r   r$   r%   r$   rl   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r$   r%   r$   )r   r   r   c                 0   t          j        |t                    }t          j        |          \  }}t          j        |t          j        |t          j	                             t          j        |t                    }t          j        ||           d S Nr'   )
comasarray_tuplesaferM   r   r.   r0   r1   r+   r,   r/   )r2   r   rX   r6   rc   r4   expected_uniques_arrays          r7   test_factorize_tuple_listz'TestFactorize.test_factorize_tuple_list   s    $ $T888d++w
#E28N"'+R+R+RSSS!$!67Gv!V!V!V
#G-CDDDDDr9   c                    t          j        d t          d          D             t                    }d}t	          j        t          |          5  t          j        |d d d         d           d d d            d S # 1 swxY w Y   d S )	Nc                 ,    g | ]}t          |          S r>   )r-   r@   is     r7   rC   z6TestFactorize.test_complex_sorting.<locals>.<listcomp>  s    666q

666r9      r'   z,'[<>]' not supported between instances of .*matchrk   Tr;   )	r+   r,   rangerM   pytestraises	TypeErrorr   r.   )r2   x17msgs      r7   test_complex_sortingz"TestFactorize.test_complex_sorting  s    h66E"II666fEEE<]9C000 	2 	2OC"ID1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s    A==BBc                 0   |}t          j        g d|          }t          j        g dt           j                  }t          j        ddg|          }t          j        |          \  }}t          j        ||           t          j        ||           d S )N)r$   r%   r%   r$   r'   )r   r$   r$   r   r$   r%   )r+   r,   r/   r   r.   r0   r1   )r2   any_real_numpy_dtyper(   r   rX   r6   rc   r4   s           r7   test_numeric_dtype_factorizez*TestFactorize.test_numeric_dtype_factorize  s    $xE222,,,bg>>>8QF%888..w
#E>:::
#G-=>>>>>r9   c                    t          j        g dt           j                  }|                    |           t          j        g dt           j                  }t          j        g dt           j                  }t          j        |          \  }}t          j        ||           t          j        ||           d S )N)r^       חAr^   :0yE>r   r^   r'   write)r   r$   r   r%   r$   r   )r^   r   r   )	r+   r,   float64setflagsr/   r   r.   r0   r1   r2   writabler   rX   r6   rc   r4   s          r7   test_float64_factorizez$TestFactorize.test_float64_factorize$  s    x777rzJJJH%%%"4"4"4BGDDD8$4$4$4BJGGG..w
#E>:::
#G-=>>>>>r9   c                    t          j        g dt           j                  }|                    |           t          j        g dt           j                  }t          j        ddgt           j                  }t          j        |          \  }}t          j        ||           t          j        ||           d S )N)    r$   r   r'   r   r   r$   r   r   r$   )	r+   r,   uint64r   r/   r   r.   r0   r1   r   s          r7   test_uint64_factorizez#TestFactorize.test_uint64_factorize.  s    x111CCCH%%%)))27;;;8YN")DDD..w
#E>:::
#G-=>>>>>r9   c                    t          j        g dt           j                  }|                    |           t          j        g dt           j                  }t          j        ddgt           j                  }t          j        |          \  }}t          j        ||           t          j        ||           d S )N)             r   r'   r   r   r   r   )	r+   r,   r   r   r/   r   r.   r0   r1   r   s          r7   test_int64_factorizez"TestFactorize.test_int64_factorize8  s    x888IIIH%%%)))27;;;8Y$9JJJ..w
#E>:::
#G-=>>>>>r9   c                 l   t          j        g dt                    }|                    |           t          j        g dt           j                  }t          j        g dt                    }t          j        |          \  }}t          j        ||           t          j        ||           d S )N)rf   rh   rf   rg   rh   r'   r   )r   r$   r   r%   r$   rf   rh   rg   )	r+   r,   rM   r   r/   r   r.   r0   r1   r   s          r7   test_string_factorizez#TestFactorize.test_string_factorizeB  s    x111@@@H%%%///AAA8OOO6BBB..w
#E>:::
#G-=>>>>>r9   c           
         t          j        ddd t           j        ddt          dgt                    }|                    |           t          j        g dt           j                  }t          j        g dt                    }t          j        |          \  }}t          j
        ||           t          j
        ||           d S )Nrf   rh   rg   r'   r   )r   r$   rk   rk   r   r%   rk   r$   r   )r+   r,   r`   r   rM   r   r/   r   r.   r0   r1   r   s          r7   test_object_factorizez#TestFactorize.test_object_factorizeL  s    xc4c3DFSSSH%%%"="="=RWMMM8OOO6BBB..w
#E>:::
#G-=>>>>>r9   c                 v   t          j        t          j        d          gd          }|                    |           t          j        dgt           j                  }t          j        dgd          }t          j        |          \  }}t          j        ||           t          j        ||           d S )Nz2020-01-01T00:00:00.000M8[ns]r'   r   r   z2020-01-01T00:00:00.000000000zdatetime64[ns])	r+   r,   
datetime64r   r/   r   r.   r0   r1   r   s          r7   test_datetime64_factorizez'TestFactorize.test_datetime64_factorizeV  s    x'@AAB(SSSH%%%1#RW5558,-5E
 
 
 d++w
#E>:::
#G-=>>>>>r9   c                 
   t           j                            t          d                    }t	          j        dt          j                  |f}t          j        ||          }t          j
        |d         |d                    t          j        |d         |d         d           |                    |          }t          j
        |d         |d                    t          j        |d         |d         d           d S )N
   r'   r;   r   r$   TrD   r   
RangeIndex
from_ranger   r+   rr   r/   r   r.   r0   r1   rQ   )r2   r<   rir   r   s        r7   test_factorize_rangeindexz'TestFactorize.test_factorize_rangeindexc  s    ]%%eBii009Rrw///3$///
#F1Ix{;;;
fQi!DAAAA4((
#F1Ix{;;;
fQi!DAAAAAAr9   c                 |   t           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           |                    |          }t          j
        |d         |d                    t          j        |d         |d         d           d S )	Nr   r'   rk   r   r$   r;   TrD   r   )r2   r<   r   r   ri2r   s         r7   $test_factorize_rangeindex_decreasingz2TestFactorize.test_factorize_rangeindex_decreasingp  s(   ]%%eBii009Rrw///32hA;# 	<{44R4((1+ddd*;;H4000
#F1Ix{;;;
fQi!DAAAAD))
#F1Ix{;;;
fQi!DAAAAAAr9   c                 ^   t          j        g dt           j                  }t          j        t
          d          5  t          j        |d           d d d            n# 1 swxY w Y   t          j	        d          5  t          j        |           d d d            d S # 1 swxY w Y   d S )N)            r$   r   r'   zgot an unexpected keywordr   T)orderF)
r+   r,   r   r   r   r   r   r.   r0   assert_produces_warning)r2   r   s     r7   test_deprecate_orderz"TestFactorize.test_deprecate_order  s&    x)));;;]9,GHHH 	. 	.OD----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.'.. 	" 	"OD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s#   A!!A%(A% B""B&)B&r   r   u8r'   )r   r$   r   i8)__nan__foor   rM   c                     t          j        |          \  }}|ddg         }t          j        g dt          j                  }t          j        ||           t          j        ||           d S )Nr   r$   r   r'   )r   r.   r+   r,   r/   r0   r1   )r2   r   rc   r4   r6   rX   s         r7   ,test_parametrized_factorize_na_value_defaultz:TestFactorize.test_parametrized_factorize_na_value_default  sl     ..wA<)))27;;;
#E>:::
#G-=>>>>>r9   zdata, na_valuer]   r   )r$   r   r$   r%   r$   )r   r$   r   r   r   )r$   r   r$   r   )rf    rf   rg   rf   )r>   rf   r$   r>   rf   r%   r>   )r   r>   r   r   r   c                     t          j        ||          \  }}|ddg         }t          j        g dt          j                  }t          j        ||           t          j        ||           d S )N)na_valuer$   rl   )rk   r   rk   r$   r'   )r   factorize_arrayr+   r,   r/   r0   r1   )r2   r   r   rc   r4   r6   rX   s          r7   $test_parametrized_factorize_na_valuez2TestFactorize.test_parametrized_factorize_na_value  sr     .thGGGwA<...@@@
#E>:::
#G-=>>>>>r9   zdata, uniques)rg   rf   Nrg   rg   r%   Int64numpy_arrayextension_array)r   c                    t          j        ||d          \  }}|r7t          j        g dt          j                  }t          j        |          }n$t          j        g dt          j                  }|}t          j        ||           t          |t          j	                  rt          j        ||           d S t          j
        ||           d S )NT)r<   r\   )r$   r   rk   r$   r'   )r   r$   rk   r   )r   r.   r+   r,   r/   	safe_sortr0   r1   rF   ndarrayassert_extension_array_equal)r2   r<   r   r4   rc   rX   r6   s          r7   test_factorize_use_na_sentinelz,TestFactorize.test_factorize_use_na_sentinel  s     D$OOOw 	'Xmmm27CCCN$w77Xmmm27CCCN&
#E>:::dBJ'' 	G'1ABBBBB+G5EFFFFFr9   )rf   Nrg   rf   r   r$   r%   r   r/   c                     t          j        t          j        |t                    d          \  }}t          j        ||d           t          j        ||d           d S )Nr'   Fr[   T
strict_nan)r   r.   r+   r,   rM   r0   r1   r2   r   rX   r6   rc   r4   s         r7   +test_object_factorize_use_na_sentinel_falsez9TestFactorize.test_object_factorize_use_na_sentinel_false  sk    $ HT(((%
 
 
w 	#G-=$OOOO
#E>dKKKKKKr9   )r$   Nr$   r%   r   c                     t          j        |d          \  }}t          j        ||d           t          j        ||d           d S )NFr[   Tr  )r   r.   r0   r1   r  s         r7   (test_int_factorize_use_na_sentinel_falsez6TestFactorize.test_int_factorize_use_na_sentinel_false  sS    $ uEEEw
#G-=$OOOO
#E>dKKKKKKr9   )rf   rf   rg   )r   r   r$   category)
categoriesr(   2017
US/Easterntzc                     t          j        |          \  }}t          j        ||           t          j        ||           d S )N)r   r.   r0   r1   rQ   r  s         r7   test_factorize_mixed_valuesz)TestFactorize.test_factorize_mixed_values  sD    , ..w
#E>:::
g'788888r9   c                    t          dt          j        dg                              |          }t          dt          j        dg                              |          }t	          j        ||          }|                                \  }}|j        d| dk    sJ t          d                              |          }t	          j        ||z
  ||z
            }|                                \  }	}
|
j        d| dk    sJ t	          j        |	                    d	          |	                    d	                    }|                                \  }}|j        d| d
k    sJ d S )N
2016-01-01z
2015-10-11z
2016-01-02z
2015-10-15zinterval[datetime64[z	], right]r   zinterval[timedelta64[
US/Pacificz, US/Pacific], right])
r   r+   r`   as_unitr   from_arraysr.   r(   r   tz_localize)r2   unitleftrightidxrc   catstsidx2codes2cats2idx3codes3cats3s                 r7    test_factorize_interval_non_nanoz.TestFactorize.test_factorize_interval_non_nano  s^   lBFLABBJJ4PP|RV\BCCKKDQQ'e44mmootzCDCCCCCCCq\\!!$''(EBJ??(({EdEEEEEEE(\**E,=,=l,K,K
 
 (({PTPPPPPPPPPr9   N)2__name__
__module____qualname__r8   rY   rd   rv   r|   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r+   r,   r   rM   r   r   NAr  r(   r`   r  r   r
  r   r   r/   r   r   r   r  r%  r>   r9   r7   r"   r"   6   s       	? 	? 	?L L L<
9 
9 
9%2 %2 %2N, , , , , ,$> > >"? ? ?7 7 7	P 	P 	PP P P [0 =<<444 <;;333
 .--|||=U=U=UV	
  E E!  E2 2 2	? 	? 	?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?B B BB B B$" " " [BHYYYd+++BH,,,D999BH222(CCC	
 ? ? ? [RXlll$///3RXlll$///3RX000===xHRX)))666:RX)))888#>RX222&AAA2FRX888GGGR	
 ? ? ? [ ...f===#s6222
 !Qq)999!Qw///		
 -.   G G G [0 &%%XRXf-=-=>>>#rvs+6::: bfc3'XRXf-=-=>>>#rvs+6:::	
 L L L [0 777XRXf-=-=>>>!RVQs333 !RVQ*"*===XRXf-=-=>>>!RVQrz:::	
 L L L [0 kk///2233"'222  #sc
*UUU {{???3344"'222  #sc
*UUU }}ff%5,GGGHH!Qrw///vh<888	
 (9 9) (9Q Q Q Q Qr9   r"   c            	          e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zej                            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                            dej        eg          d             Zd Z d  Z!d! Z"d"S )#
TestUniquec                     t           j                            d                              ddd          }t	          j        |          }t          |t           j                  sJ d S )Nr%   r   d   2   size)r+   randomdefault_rngintegersr   rH   rF   r   r2   ru   r   s      r7   	test_intszTestUnique.test_ints)  sY    i##A&&//3R/@@c""&"*-------r9   c                     t           j                            d                              ddd                              d          }t          j        |          }t          |t           j                  sJ d S )Nr%   r   r/  r0  r1  r   )	r+   r3  r4  r5  rJ   r   rH   rF   r   r6  s      r7   test_objectszTestUnique.test_objects/  sg    i##A&&//3R/@@GGLLc""&"*-------r9   c                     t          j        g dt                    }t          d          D ]#}t	          t          j        |                     $d S )N)rx   ry   CDEr'     )r+   r,   rM   r   r   r   rH   )r2   lstr   s      r7   test_object_refcount_bugz#TestUnique.test_object_refcount_bug5  sW    h000???t 	# 	#AS!!""""	# 	#r9   c                    |                     d          }t          j        |          }t          t                              |j                            }t          |t                    rt          j	        ||j
                  }nDt          ||j                  }t          |j        t                    r|                                }t          j        ||d           d S )Nr%   )namesr'   TrD   )repeatr   rH   rO   dictfromkeysra   rF   r   rG   rB  r   r(   r   	normalizer0   rQ   )r2   r?   r   unique_valuesr   s        r7   test_index_returnedzTestUnique.test_index_returned:  s    Qe$$ T]]5<8899eZ(( 	0!-m5;OOOHH]%+>>>H%+77 0#--//
fhd;;;;;;r9   c                 N   t          j        t          g dt                    t          g dd          g          }|                                \  }}t          j        g t
          j                  }t          j	        ||           t          j
        ||d d                    d S )Nrf   )namer(   r   f4r'   r   )r   from_productr   rM   r.   r+   r,   r/   r0   r1   rQ   )r2   mirc   r4   	exp_codess        r7   test_factorize_multiindex_emptyz*TestUnique.test_factorize_multiindex_emptyI  s    $2Cv...bs$0O0O0OP
 
 wHRrw///	
#E9555
gr"1"v.....r9   c                 H   |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}nt          |          rPt          dd          t          dd          t          dd          g}t          dd          t          dd          g}n8t          |          r	g d}dd	g}n t          |          r	g d
}ddg}ng d}ddg}t          ||          
                                }t          j        ||          }|t           j        v r|                    t                    }|j        j        dv r2t#          |t$          t&          f          sJ t          j        |          }t          j        ||           d S )N)r$   r%   r%   r$   r%   r^   r_   r   TTFTF)rx   ry   ry   rx   ry   r'   )mr   )r0   BYTES_DTYPESSTRING_DTYPESr	   r   r   r-   r   r
   r   rH   r+   r,   rJ   rM   r(   kindrF   r   r    r1   )r2   any_numpy_dtyper   r4   r   r   s         r7   test_dtype_preservationz"TestUnique.test_dtype_preservationS  s   r1AABB99D!fGGo.. 	99D!fGGO,, 	99DCjGGo.. 	AqMM71a=='!Q--@Dq!}}gamm4GG?++ 		&&&DUmGG_-- 	"??DCjGG 99D!fGO444;;==8G?;;;b...v..H>*,,f}n&EFFFFFXf%%F
#FH55555r9   c                    t          j        ddgd          }t          g d          }t          j        |          }t          |          }t          j        ||d           t          |          }t          j        |          }t          j        ||           |j	        |j	        k    sJ |j
        }t          j        |          }t          j        ||           |j	        |j	        k    sJ d S )N2015-01-03T00:00:00.0000000002015-01-01T00:00:00.000000000r   r'   )rY  rZ  rZ  TrD   )r+   r,   r   r   rH   r0   rQ   r   r1   r(   ra   )r2   dt_arrdt_indexr   r   sru   s          r7   $test_datetime64_dtype_array_returnedz/TestUnique.test_datetime64_dtype_array_returnedx  s   // 
 
 
   
 
 h''v&&
fhd;;;;8a
#FF333|v|++++hc""
#FF333|v|++++++r9   c                     t          j        g dd          }t          j        |          }t          j        ddgd          }t	          j        ||           d S )N2000ra  2001zdatetime64[s]r'   ra  rb  r+   r,   r   rH   r0   r1   r2   rf   r   r   s       r7   test_datetime_non_nszTestUnique.test_datetime_non_ns  s\    H---_EEE18VV,ODDD
#FH55555r9   c                     t          j        g dd          }t          j        |          }t          j        ddgd          }t	          j        ||           d S )Nr`  ztimedelta64[s]r'   i  i  rc  rd  s       r7   test_timedelta_non_nsz TestUnique.test_timedelta_non_ns  s]    H---5EFFF18T4L0@AAA
#FH55555r9   c                    t          j        g dd          }t          g d          }t          j        |          }t          |          }t          j        ||           |j        |j        k    sJ t          |          }t          j        |          }t          j	        ||           |j        |j        k    sJ |j
        }t          j        |          }t          j	        ||           |j        |j        k    sJ d S )N)y  n  '  m8[ns]r'   )ri  rj  ri  rk  rj  )r+   r,   r   r   rH   r0   rQ   r(   r   r1   ra   )r2   td_arrtd_indexr   r   r]  ru   s          r7   %test_timedelta64_dtype_array_returnedz0TestUnique.test_timedelta64_dtype_array_returned  s    ///x@@@ C C CDDh''''
fh///|x~----8a
#FF333|v|++++hc""
#FF333|v|++++++r9   c                     t          g dt          j                  }t          j        g dt          j                  }t	          j        t          j        |          |           d S )N)r$   r%   r   r   r'   )r$   r%   r   )r   r+   r   r,   r0   r1   r   rH   )r2   r]  rt   s      r7   test_uint64_overflowzTestUnique.test_uint64_overflow  sX    '''ry999h}}}BI666
#ELOOS99999r9   c                     dt           j        ddg}t          j        t          j        |t
                              }t          j        dt           j        dgt
                    }t          j        ||           d S )Nrf   rh   r'   )r+   r`   r   rH   r,   rM   r0   r1   )r2   duplicated_itemsr   r   s       r7   test_nan_in_object_arrayz#TestUnique.test_nan_in_object_array  sh    c228$4FCCCDD8S"&#.f===
#FH55555r9   c                 ~   t          t          d                    }t          t          d          t          d          d          }t          t          d                    }|                                }t          j        ||           t          j        |          }t          j        ||           t          t          d          d          }|                                }t          j        ||           t          j        |          }t          j        ||           t          t          t          d                    d          }|                                }t          j        ||           t          j        |          }t          j        ||           t          t          t          d          t          d          	                    }t          |          }|                                }t          j	        ||           t          j        |          }t          j	        ||           d S )
NbacabcTr  orderedbaabcry  r   rJ  r  )
r   rO   rH   r0   assert_categorical_equalr   r   r   r   rQ   )r2   r   
expected_orh   r   r]  cis          r7   test_categoricalzTestUnique.test_categorical  s    tE{{++ !eedSSS
 W&&
#FH555a
#FH555Wt444
#FJ777a
#FJ777 ;tG}}--E:::
#FH5551
#FH555 k$w--DKKPPPQQ#H--
fh///2
fh/////r9   c                 T   t          t          dd          t          dd          g                              |          }t          |          }|                                }|d d         j        }t          j        ||           |                                }|d d         }t          j        ||           t          j        |          }|d d         j        }t          j        ||           t          j        |          }|d d         }t          j        ||           d S )N20160101r  r  r$   )
r   r   r  r   rH   _datar0   r  rQ   r   )r2   r  dtirb   r   r   s         r7   test_datetime64tz_awarez"TestUnique.test_datetime64tz_aware  s    *666*666
 

 '$-- 	 Skkrr7=
'999rr7
fh///3rr7=
'9993rr7
fh/////r9   c           	         t          j        t          g d                    }t          j        |t          j        g dd                     t          j        t          dgdgdz  z                       }t          j        |t          j        ddgd                     t          j        g dt                    }t          j        |          }t          j        g d	t                    }t          j        ||           t          j        t          t          t          d
                                        }t          t          d                    }t          j
        ||           d S )N)r%   r$   rl   rl   )r%   r$   rl   r   r'   r%   r$   rj   )rf   rf   rg   rh   ri   aabcrw  )r   rH   r   r0   r1   r+   r,   rM   r   rO   r~  )r2   r   r   r   s       r7   test_order_of_appearancez#TestUnique.test_order_of_appearance  s2    6,,,//00
#FBHYYYg,N,N,NOOO61#a-0011
#FBHaV7,K,K,KLLLx,,,F;;;48OOO6:::
#FH5556+d6ll";";<<==tE{{++
#FH55555r9   c                    t          t          d          t          d          g          j                            |          }t	          j        |          }t          j        dgd| d          }t          j	        ||           d S )Nr  z2016-01-01T00:00:00.000000000zM8[]r'   )
r   r   dtr  r   rH   r+   r,   r0   r1   )r2   r  rb   r   r   s        r7   test_order_of_appearance_dt64z(TestUnique.test_order_of_appearance_dt64  s|    i
++Yz-B-BCDDGOOPTUU38<=]4]]]SSS
#FH55555r9   c                 
   t          t          dd          t          dd          g                              |          }t          j        |          }t          dgd| dd           }t          j        ||           d S )Nr  r  r  z2016-01-01 00:00:00zdatetime64[z, US/Eastern])r(   r   )r   r   r  r   rH   r0   rQ   )r2   r  r  r   r   s        r7   test_order_of_appearance_dt64tzz*TestUnique.test_order_of_appearance_dt64tz  s    *666*666
 

 '$-- 	 3 "#+L+L+L+LSW
 
 
 	fh/////r9   zarg ,expected)1r  2r  r  r'   )r   r   c                     t          j        |t                    }t          j        |          }t          j        ||           d S r   )r   r   rM   r   rH   r0   r1   )r2   argr   r   s       r7   test_tuple_with_stringsz"TestUnique.test_tuple_with_strings,  s?     #Cv6663
#FH55555r9   c                     t          j        dd gt                    }t          j        |          }t          j        dd gt                    }t          j        ||d           d S )Nr   r'   Tr  )r+   r,   rM   r   rH   r0   r1   r2   ru   r   r   s       r7   test_obj_none_preservationz%TestUnique.test_obj_none_preservation9  s]    ht}F33338UDM888
#FHFFFFFFr9   c                     t          j        ddg          }t          j        |          }t          j        dg          }t	          j        ||           d S )Ng       rq   rc  rd  s       r7   test_signed_zerozTestUnique.test_signed_zeroA  sL    HdC[!!18TF##
#FH55555r9   c                    t          j        dt          j        dd                    d         }t          j        dt          j        dd                    d         }||k    sJ ||k    sJ t          j        ||g          }t          j        |          }t          j        t          j        g          }t          j	        ||           d S )Nd=Q          r            )
structunpackpackr+   r,   r   rH   r`   r0   r1   )r2   NAN1NAN2rf   r   r   s         r7   test_different_nanszTestUnique.test_different_nansH  s     }S&+d4F"G"GHHK}S&+d4F"G"GHHKt||||t||||HdD\""18RVH%%
#FH55555r9   el_typec                    d}d}t          j        dt          j        d|                    d         }t          j        dt          j        d|                    d         }||k    sJ ||k    sJ t          j        ||g|          }t          j        |          }|j        dk    sJ t          j        dt          j        d|d                             d         }||k    sJ d S )Nl         r  r  r  r   r'   r$   )r  r  r  r+   r,   r   rH   r2  )	r2   r  bits_for_nan1bits_for_nan2r  r  rf   r   result_nan_bitss	            r7   test_first_nan_keptzTestUnique.test_first_nan_keptT  s     +*}S&+dM"B"BCCAF}S&+dM"B"BCCAFt||||t||||HdD\1111{a -fk#vay.I.IJJ1M-//////r9   c                     ||u rd S t          j        ||gt                    }t          j        |          }|j        dk    sJ |d         |u sJ |d         |u sJ d S )Nr'   r%   r   r$   )r+   r,   rM   r   rH   r2  )r2   unique_nulls_fixtureunique_nulls_fixture2rf   r   s        r7   test_do_not_mangle_na_valuesz'TestUnique.test_do_not_mangle_na_valuese  s    #888FH*,AB&QQQ1{at+++++t,,,,,,,r9   c                     t          dt          j        dgdz  |          }t          j        |          }t          j        dt          j        dg|          }t          j        ||           d S )Nr$   r%   rl   r'   )r   r   r+  rH   r,   r0   r  )r2   any_numeric_ea_dtyperb   r   r   s        r7   test_unique_maskedzTestUnique.test_unique_maskedo  se    a]Q&.BCCC38QqM1EFFF
'99999r9   c                     t          j        g d          }t          j        |          }t          j        g d          }t          j        ||           d S )N)      ?      ?r%   rl   )r  r*   y      @        )r   r,   rH   r0   r  )r2   arr_complexr   r   s       r7   test_unique_NumpyExtensionArrayz*TestUnique.test_unique_NumpyExtensionArrayv  sZ    hNN
 
 ;''844455
'99999r9   N)#r&  r'  r(  r7  r9  r@  rH  rO  rW  r^  re  rg  ro  rq  rt  r  r  r  r  r  r   r)  r*  r+   r,   rM   r  r  r  r  r   r  r  r  r  r>   r9   r7   r-  r-  (  s       . . .. . .# # #
< < </ / /#6 #6 #6J, , ,>6 6 66 6 6, , ,(: : :
6 6 6'0 '0 '0R0 0 066 6 6&6 6 60 0 0 [hbhSz@@@Axrxv6667	
 6 6 6G G G6 6 6
6 
6 
6 [YV(<==0 0 >=0 - - -: : :: : : : :r9   r-  c                      | t           j                            d                              ddd                    }t	          j        |          }t          t	          j        |                    }||k    sJ d S )Nr%   r   r      )r+   r3  r4  r5  r   nunique_intsr   rH   )index_or_series_or_arrayra   r   r   s       r7   test_nunique_intsr    sr    %%bi&;&;A&>&>&G&G2r&R&RSSF''F5<''((HXr9   c                   (   e Zd Zd Zd Zd Zej                            dg d          ej                            dg d          d                         Z	d	 Z
ej                            dg d          d
             Ze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                            dg  ee           ej        g           g          d             Zd Zd Zd Zd Zd Zd Z dS ) TestIsinc                    d}t          j        t          |          5  t          j        dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        ddg           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        dgd           d d d            d S # 1 swxY w Y   d S )NzOonly list-like objects are allowed to be passed to isin\(\), you passed a `int`r   r$   )r   r   r   r   isin)r2   r   s     r7   test_invalidzTestIsin.test_invalid  s   " 	 ]9C000 	 	Jq!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	Jq1#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	JsA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s5   A  AA&B		BB/CCCc                 :   t          j        t          j        ddg          dg          }t          j        ddg          }t	          j        ||           t          j        t          ddg          dg          }t          j        ddg          }t	          j        ||           t          j        t          ddg          t          dg                    }t          j        ddg          }t	          j        ||           t          j        t          ddg          dh          }t          j        ddg          }t	          j        ||           t          j        ddgt                    }t          j        |dg          }t          j        ddg          }t	          j        ||           t          j        t          |          t          dg                    }t          j        ddg          }t	          j        ||           t          j        t          |          dh          }t          j        ddg          }t	          j        ||           t          j        |dg          }t          j        ddg          }t	          j        ||           d S )Nr$   r%   TFrf   rg   r'   )r   r  r+   r,   r0   r1   r   rM   )r2   r   r   r  s       r7   rv   zTestIsin.test_basic  s,   BHaV,,qc228T5M**
#FH555FAq6NNQC008T5M**
#FH555FAq6NNFA3KK888T5M**
#FH555FAq6NNQC008T5M**
#FH555hSz000C#''8T5M**
#FH555F3KK778T5M**
#FH555F3KK#//8T5M**
#FH555C!%%8UEN++
#FH55555r9   c                    t          dd          j        }t          j        ||d         g          }t	          j        g d          }t          j        ||           t          j        ||dd                   }t	          j        g d          }t          j        ||           t          j        |t          |dd                             }t	          j        g d          }t          j        ||           t          dd          j        }t          j        ||d         g          }t	          j        g d          }t          j        ||           t          j        ||dd                   }t	          j        g d          }t          j        ||           t          j        |t          |dd                             }t	          j        g d          }t          j        ||           d S )	Nr~   rl   periodsr   TFFr%   rQ  r   )
r   ra   r   r  r+   r,   r0   r1   r   r   r  s       r7   test_i8zTestIsin.test_i8  s   Q///6C#a&**800011
#FH555CQqS**8///00
#FH555CS1X//8///00
#FH555gq1118C#a&**800011
#FH555CQqS**8///00
#FH555CS1X//8///00
#FH55555r9   dtype1)rl  r   M8[ns, UTC]z	period[D]r(   )r   f8r   c                    t          dd          j        }t          |                    d                    j                            |          }|                    d                              |          }t          j        ||          }t          j	        |j
        t                    }t          j        ||           d S )N
2013-01-01rl   r  r   r'   )r   _valuesr   viewr,   rJ   r   r  r+   zerosshaperL   r0   r1   )r2   r(   r  dtaru   compsr   r   s           r7   +test_isin_datetimelike_values_numeric_compsz4TestIsin.test_isin_datetimelike_values_numeric_comps  s    
 q1119SXXd^^$$*//77%%e,,E3''8EKt444
#FH55555r9   c                     t          ddd          j        }t          j        ||dd                   }t	          j        t          |          t                    }d|d<   d|d	<   t          j	        ||           d S )
N20000101i r]  )r  r   r   r%   r'   Tr$   )
r   ra   r   r  r+   r  r   rL   r0   r1   r2   r]  r   r   s       r7   
test_largezTestIsin.test_large  sw    z7===DAq1v&&8CFF$///
#FH55555r9   c                 T   t          dd          j        }t          |                    d                    j                            |          }t
          |d<   t          j        |t
          g          }t          j        g dt                    }t          j        ||           d S )Nr  rl   r  r   r   r  r'   )r   r  r   r  r,   r   r   r  r+   rL   r0   r1   )r2   r(   r  ru   r   r   s         r7   test_isin_datetimelike_all_natz'TestIsin.test_isin_datetimelike_all_nat  s     q1119SXXd^^$$*//66AC#''8000===
#FH55555r9   )rl  r   r  c                    t          dd          j        }t          |                    d                    j                            |          }d |D             }t          j        ||          }|                                rJ t          j        |t                    }t          j        ||          }|                                rJ d S )Nr  rl   r  r   c                 ,    g | ]}t          |          S r>   )str)r@   r{   s     r7   rC   zITestIsin.test_isin_datetimelike_strings_returns_false.<locals>.<listcomp>  s    $$$1A$$$r9   r'   )
r   r  r   r  r,   r   r  anyr+   r  )r2   r(   r  ru   valsresvals2res2s           r7   ,test_isin_datetimelike_strings_returns_falsez5TestIsin.test_isin_datetimelike_strings_returns_false  s     q1119SXXd^^$$*//66$$$$$jd##7799S)))z#u%%88::r9   c                     t          ddd          }t          |          }t          |d<   t          j        |j        t          g          }t          j        g dt                    }t          j
        ||           d S )Nr  rl   UTCr  r  r   r  r'   )r   r   r   r   r  r  r+   r,   rL   r0   r1   )r2   r  rb   r  rt   s        r7   test_isin_dt64tz_with_natz"TestIsin.test_isin_dt64tz_with_nat   su     qU;;;SkkAjse,,h+++4888
#C-----r9   c                    t          j        g d          }g d}t          t          dg                              ||                    }t          t          dg                              t          j        ddg          |                    }t          j        g d          }t          j        ||          }t          j        ||           d S Nr  ri   r$   r   )TTFT)	r+   r,   r   r   
from_codesr   r  r0   r1   )r2   r  r  SdStr   r   s          r7   test_categorical_from_codesz$TestIsin.test_categorical_from_codes  s    x%%K$$//d;;<<K$$//!Q0@0@$GGHH855566B##
#Hf55555r9   c                 r   t          j        g d          }g d}t          dg                              ||          }t          dg                              t          j        ddg          |          }t          j        g d          }t	          j        ||          }t          j        ||           d S r  )r+   r,   r   r  r   r  r0   r1   )r2   r  r  catotherr   r   s          r7   test_categorical_isinzTestIsin.test_categorical_isin  s    x%%1#))$55QC  ++BHaV,<,<dCC855566C''
#Hf55555r9   c                     t          j        t           j        gt                    }t           j        g}t          j        dg          }t	          j        ||          }t          j        ||           d S )Nr'   T)r+   r,   r`   rM   r   r  r0   r1   r2   r  ra   r   r   s        r7   test_same_nan_is_inzTestIsin.test_same_nan_is_in  s`     "&000&8TF##E6**
#Hf55555r9   c                 .   t          j        dd          }t           j        |d<   t          j        |t          j        t           j        dg                    }t          j        t          |          t                    }t          j
        ||           d S Nr^   iAB r   r$   r'   )r+   tiler`   r   r  r,   onesr   rL   r0   r1   r  s       r7   test_same_nan_is_in_largez"TestIsin.test_same_nan_is_in_large+  sr    GC##v!Arx445573q66...
#FH55555r9   c                 f   t          j        dd          }t          |          }t           j        |d<   |                    t          j        t           j        dg                    }t          t          j        t          |          t                              }t          j
        ||           d S r  )r+   r  r   r`   r  r,   r  r   rL   r0   assert_series_equal)r2   r]  seriesr   r   s        r7    test_same_nan_is_in_large_seriesz)TestIsin.test_same_nan_is_in_large_series3  s    GC##v!RXrvqk2233"'#a&&55566
vx00000r9   c                 p    G d d          } |             |            }}t          j        |gt                    }t          j        t          j        ||g          t          j        dg                     t          j        t          j        ||g          t          j        dg                     d S )Nc                        e Zd ZdefdZd ZdS )0TestIsin.test_same_object_is_in.<locals>.LikeNanreturnc                     dS )NFr>   )r2   r  s     r7   __eq__z7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__C  s    ur9   c                     dS )Nr   r>   )r2   s    r7   __hash__z9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__F  s    qr9   N)r&  r'  r(  rL   r   r  r>   r9   r7   LikeNanr  B  s>        t        r9   r  r'   TF)r+   r,   rM   r0   r1   r   r  )r2   r  rf   rg   r  s        r7   test_same_object_is_inzTestIsin.test_same_object_is_in<  s    	 	 	 	 	 	 	 	 wyy''))1hs&))) 	#EJsQC$8$8"(D6:J:JKKK
#EJsQC$8$8"(E7:K:KLLLLLr9   c                    t          d          g}t          d          g}|d         |d         usJ t          j        t          j        |          |          }t          j        t          j        dg          |           t          j        t          j        |t                    t          j        |t                              }t          j        t          j        dg          |           t          j        t          j        |t          j	                  t          j        |t          j	                            }t          j        t          j        dg          |           d S )Nr`   r   Tr'   )
floatr   r  r+   r,   r0   r1   rP   rM   r   )r2   r  ra   r   s       r7   r  zTestIsin.test_different_nansR  s)    u,,Qxvay(((( BHUOOV44
#BHdV$4$4f=== JuF+++RZf-M-M-M
 
 	#BHdV$4$4f=== JuBJ///F"*1U1U1U
 
 	#BHdV$4$4f=====r9   c                     t          j        ddgt                    }dg}t          j        ddg          }t          j        ||          }t          j        ||           d S )Nss*   r'   42F)r+   r,   rM   r   r  r0   r1   r  s        r7   test_no_castzTestIsin.test_no_castj  s`     $62228UEN++E6**
#Hf55555r9   emptyr'   c                     t          ddg          }t          j        ddg          }t          j        ||          }t          j        ||           d S )Nrf   rg   F)r   r+   r,   r   r  r0   r1   )r2   r  r  r   r   s        r7   
test_emptyzTestIsin.test_emptyt  sR     c3Z  8UEN++D%((
#Hf55555r9   c                 H   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        ||           d S )Nr`                 ?r'   )FFT)	r+   r,   r`   r  rM   r   r  r0   r1   )r2   r  r  r   r   s        r7   test_different_nan_objectsz#TestIsin.test_different_nan_objects}  s    %"eEll;6JJJxuf555800011E4((
#Hf55555r9   c                    t          j        dt          j        dd                    d         }t          j        dt          j        dd                    d         }||k    sJ ||k    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	        ||           d S )Nr  r  r  r   r  r'   T)
r  r  r  r+   r,   r   r   r  r0   r1   )r2   r  r  ru   lookup1r   r   lookup2s           r7   test_different_nans_as_float64z'TestIsin.test_different_nans_as_float64  s$   
 }S&+d4F"G"GHHK}S&+d4F"G"GHHKt||||t|||| hd|2:666(D6444C))8T4L))
#FH555(D6444C))8T4L))
#FH55555r9   c                     t          dddgi          }|                    dg          }t          dddgi          }t          j        ||           dS )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 1ra   r$   r%   r  FN)r   r  r0   assert_frame_equalr2   dfr   expected_falses       r7   test_isin_int_df_string_searchz'TestIsin.test_isin_int_df_string_search  sZ     1a&)**#"Huen#=>>
fn55555r9   c                     t          dt          j        dgi          }|                    t          j        dgt
                              }t          dddgi          }t          j        ||           dS )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 NaNra   r%   NaNr'   FN)r   r+   r`   r  r,   rM   r0   r  r  s       r7   test_isin_nan_df_string_searchz'TestIsin.test_isin_nan_df_string_search  sm     261+.//5'88899"Huen#=>>
fn55555r9   c                     t          dddgi          }|                    t          j        dgt                              }t          dddgi          }t          j        ||           dS )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.4245ra   gn?g#Ed@z1.4245r'   FN)r   r  r+   r,   rM   r0   r  r  s       r7    test_isin_float_df_string_searchz)TestIsin.test_isin_float_df_string_search  sl     67"34558*F;;;<<"Huen#=>>
fn55555r9   c                     t          dgt          j                  }|                    dg          }t          d          }t	          j        ||           d S )Nl   
G r'   l    
G F)r   r+   r   r  r0   r  r2   rb   r   r   s       r7   test_isin_unsigned_dtypez!TestIsin.test_isin_unsigned_dtype  sS    )*")<<<./00%==
vx00000r9   N)!r&  r'  r(  r  rv   r  r   r)  r*  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rM   r+   r,   r  r  r  r  r  r   r#  r>   r9   r7   r  r    sH       
 
 
 6  6  6D6 6 66 [X'W'W'WXX[W&8&8&899
6 
6 :9 YX
66 6 6 [W&V&V&VWW6 6 XW6 [W&I&I&IJJ  KJ	. 	. 	.6 6 66 6 6
6 
6 
66 6 61 1 1M M M,> > >06 6 6 [Wr66+?+?+?"&NOO6 6 PO66 6 66 6 6,6 6 66 6 66 6 61 1 1 1 1r9   r  c                       e Zd Zd Zd Zd Zd Zej        	                    de
dg          d             Zd Zd	 Zd
 Zd Zej        	                    dej        e
df          d             Zd Zd Zd ZdS )TestValueCountsc                    t           j                            d                              d          }t	          |d          }t          j        |          }g d}t          j        |          	                    t          d                    }t          g d|d          }t          j        |                                |                                           d S )	Ni  rm   )gV-g}?5^Ig/$ۿgףp=
?gʡE?Tr{  )r$   r   r%   r$   countr?   rJ  )r+   r3  r4  standard_normalr   r   value_counts_internalr   from_breaksrJ   r   r   r0   r  
sort_index)r2   ru   factorr   breaksr?   r   s          r7   test_value_countsz!TestValueCounts.test_value_counts  s    i##D))99!<<S! ,V44777)&11889IRV9W9W9WXX,,,e'BBB
v0022H4G4G4I4IJJJJJr9   c                 X   g d}t          j        |d          }t          dgt          j        dg          d          }t          j        ||           t          j        |dd	
          }t          ddgt          j        ddg          d          }t          j        ||           d S )N)r$   r%   rl   rm   r$   binsrm   )Zd;?ro   r'  r(  r%   F)r2  r<   )r3        @)r4  ro   )r   r*  r   r   rG   r0   r  r  s       r7   test_value_counts_binsz&TestValueCounts.test_value_counts_bins  s    LL,QQ777C}0,@@w
 
 
 	vx000,QQUCCCF+\:,FGG
 
 

 	vx00000r9   c                 <   t          j        t          j        ddg                    }t	          |          dk    sJ t          j        t          j        ddg          d          }t	          |          dk    sJ t          j        t          g d                    }t	          |          dk    sJ d}t          j        t          |          5  t          j        t          j        ddgt          	          d           d d d            d S # 1 swxY w Y   d S )
Nr$   r^   r1  )r$   r^   r  r%   z*bins argument only works with numeric datar   r  r'   )
r   r*  r+   r,   r   r   r   r   r   rM   )r2   r   r   s      r7   test_value_counts_dtypesz(TestValueCounts.test_value_counts_dtypes  s_   ,RXq#h-?-?@@6{{a,RXq#h-?-?aHHH6{{a,VMMM-B-BCC6{{a:]9C000 	R 	R'#q(H(H(HqQQQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	Rs   2DDDc                 b   t          t          j        d          t          gd          }t	          ddg          }||fD ]V}t          j        |          }t          j        |d          }t          |          dk    sJ t          |          d	k    sJ Wt          t          d
          did          }t          j        |          }t          j
        ||           t          dgt          j        d          gd          }t          j        |          }	t          j
        |	|           d S )Nrk  timedelta64[ns]r'   r   z
2014-01-01Fdropnar$   r%   z2014-01-01 00:00:00r'  r|  r(  )r   r+   timedelta64r   r   r   r*  r   r   r0   r  )
r2   tdr  rb   vc
vc_with_naexp_dt	result_dtexp_td	result_tds
             r7   test_value_counts_natz%TestValueCounts.test_value_counts_nat  s*   R^E**C08IJJJ%.//8 	( 	(C,S11B4SGGGJr77a<<<<z??a'''''#8991=GLLL/33	
y&111BN5$9$9#:III/33	
y&11111r9   r(   zM8[us]c                    t          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          g|          }|                                }t          t          ddd          t          ddd          t          ddd          g|          }t          g d|d          }t	          j        ||           d S )	Ni  r$   i  ip  r'   rl   r%   r$   r'  r(  )r   r   value_countsr   r0   r  )r2   r(   rb   r  	exp_indexrt   s         r7   &test_value_counts_datetime_outofboundsz6TestValueCounts.test_value_counts_datetime_outofbounds  s    q!$$q!$$q!$$q!$$q!$$q!$$ 

 

 

   dAq!!8D!Q#7#7$19M9MN
 
 
	 YYYig>>>
sC(((((r9   c                    t          t          t          d                              }|                                }t          g dt	          g d          d          }t          j        ||d           |j                                        }|                                }|j	                                        |_	        t          j        ||d           d S )NaaabbcrF  ri   r'  r(  Tcheck_index_type)
r   r   rO   rG  r   r0   r  r  
as_orderedr?   r  s       r7   r  z TestValueCounts.test_categorical  s    ;tH~~..//!!II-ooo>>W
 
 
 	vx$GGGG E!!!2244
vx$GGGGGGr9   c           	         t          t          t          d                              }t          j        |j        d<   |                                }t          g dt          g dg d          d          }t          j	        ||d	           |                    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<   |                                }t          g dt          g dg dd          d          }t          j	        ||d	           |                    d
          }t          g dt          dddt          j        gg dd          d          }t          j	        ||d	           d S )N
aaaaabbbccr$   )rm   rl   r%   ri   r}  r'  r(  TrL  Fr:  )rm   rl   r%   r$   rf   rg   rh   )rg   rf   rh   )ry  r  rx  )
r   r   rO   r+   r`   ilocrG  r   r0   r  r  s       r7   test_categorical_nansz%TestValueCounts.test_categorical_nans  s   ;tL112233Fq	!!II"???OOO
 
 

 	vx$GGGGu--LL 0#sC1H I IPW
 
 
 	vx$GGGG \**D___UUU
 
 Fq	!!II"*??  
 
 
 
 	vx$GGGGu--LL"c3'OOOT   
 
 
 	vx$GGGGGGr9   c           	      4   t          t          t          d          t          d          d                    }|                                }t          g dt          g dt          d          d          d          }t	          j        ||d	           d S )
NbbbaacabcdTrx  )rl   r%   r$   r   )rg   rf   rh   r  r'  r(  rL  )r   r   rO   rG  r0   r  r  s       r7   test_categorical_zeroesz'TestValueCounts.test_categorical_zeroesI  s    ;tH~~$v,,PTUUUVV!!LL$$$ft   
 
 
 	vx$GGGGGGr9   c           
      6   t          j        t          g d                              d          t          ddgddgd                     t          j        t          g d                              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                                 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                                 d          t          g dg dd                     t          j        t          g d                              d          t          ddgddgd                     t          j        t          g d                              d          t          ddgddgd                     t          j        t          g d                              d          t          ddgddgd                     t          g d                              d          }t          g dg dd          }t          j        ||           d S )NrQ  Tr:  r%   r$   Fr'  r(  rl   rj   r'   )rj   rl   r%   )TFN)皙$@rn   rn   rn   rX  )rX  rn   rn   N)rX  rX  rn   rn   rn   NrF  )rn   rX  N)r0   r  r   rG  r   rM   )r2   r   r   s      r7   test_value_counts_dropnaz(TestValueCounts.test_value_counts_dropnaV  s    	&&&''44D4AAAq6$W===	
 	
 	
 	&&&''44E4BBAq6$W===	
 	
 	

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

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

 999::GGuGUU)))+<+<+<7KKK
vx00000r9   r   c                    t          dgdz  dgdz  z   t          j        gdz  z             }|                    |          }|                    dd          }t          g dt          t          j        d	d
g|          d          }t          j        ||           |                    dd          }t          ddgt          d	d
g|          d          }t          j        ||           d S )Nr$   r%   rl   rj   TF)rF  r;  )g      ?g333333?g?r_   r^   r'   
proportionr(  g333333?g?)r   r+   r`   rJ   rG  r0   r  )r2   r(   r]  s_typedr   r   s         r7   test_value_counts_normalizedz,TestValueCounts.test_value_counts_normalized|  s    A37aS1W$x!|344((5//%%U%CCOO"&#s+5999
 
 

 	vx000%%T%BB#Jfc3Zu===L
 
 
 	vx00000r9   c                 z   t          j        dgt           j                  }t          dgdgd          }t	          j        |          }t          j        ||           t          j        ddgt                    }t          ddgddgd          }t	          j        |          }t          j        ||           d S )Nr   r'   r$   r'  r(  rk   )	r+   r,   r   r   r   r*  r0   r  rM   )r2   ru   r   r   s       r7   test_value_counts_uint64z(TestValueCounts.test_value_counts_uint64  s    hwbi0001#eW7;;;,S11
vx000hE{&1111a&U'BBB,S11
vx00000r9   c                    t          j        dddddt           j        g          }t          |                              d          }t          g dt          j        g dd	          d
          }t          j        ||           d S )Nrl   r$   r%   rm   r1  )r%   r%   r$   ))r3  r_   )r_   rp   )rp   ro   zinterval[float64, right]r'   r'  r(  )	r+   r,   r`   r   rG  r   rG   r0   r  )r2   ra   r   r   s       r7   test_value_counts_seriesz(TestValueCounts.test_value_counts_series  s    1aAq"&122,,!,44II+666>X   
 
 
 	vx00000r9   c                    t           j                            d                              ddd          }t	          j        |d          }t          |                              d          }|                    dd	          }t          j
        ||           |                    dd
	          }t          j        t                    5  t          j
        ||           d d d            d S # 1 swxY w Y   d S )Nr%   r       @   Tr;   Fstable)	ascendingrU  	quicksort)r+   r3  r4  r5  r   r*  r   rG  rN   r0   r  r   r   AssertionError)r2   ru   r   rG  r   unstable_sorteds         r7   test_value_counts_stabilityz+TestValueCounts.test_value_counts_stability  s$   i##A&&//2r::,St<<<c{{//U/;;++e(+KK
vx000&22U2UU]>** 	< 	<"6?;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   
C--C14C1N)r&  r'  r(  r/  r5  r7  rD  r   r)  r*  rM   rI  r  rR  rV  rY  r+   r   r]  r_  ra  rj  r>   r9   r7   r%  r%    s5       	K 	K 	K1 1 1 R R R2 2 2$ [Wvx&899) ) :9).H H H)H )H )HVH H H$1 $1 $1L [Wrz68&DEE1 1 FE1$1 1 11 1 1< < < < <r9   r%  c                      e Zd Zd Ze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                            d eg d           ej        dd          g          d             Zej                            dg dg dfg dddgfg dg dfg          d             Zej                            dg d ej        g de          fg          d             Zd S )!TestDuplicatedc           	      
   t          j        ddt           j        ddt           j        gt                    }t	          j        |          }t          j        g d          }t          j        ||           t	          j        |d          }t          j        g d          }t          j        ||           t	          j        |d          }t          j        g d	          }t          j        ||           t	          j        |d
          }t          j        g d          }t          j        ||           t          j        dt                    }t          t          ddt           j        t           j        gdz  dt           j        dt           j        gdz  d                    D ]
\  }}|||<   t	          j        |          }d
gdz  }dgdz  }t          j        ||z             }t          j        ||           t	          j        |d          }t          j        ||z             }t          j        ||           t	          j        |d
          }t          j        ||z             }t          j        ||           d S )Nr   r$   r%   r'   )FFFTFTfirstkeeplast)TFTFFFF)TFTTFT   T)strictrm   )r+   r,   r`   rM   r   
duplicatedr0   r1   r  	enumeratezip)r2   keysr   r   r   tfalsestruess           r7   test_duplicated_with_nasz'TestDuplicated.test_duplicated_with_nas  sV   xArvq!RV4FCCC!$''8DDDEE
#FH555!$W5558DDDEE
#FH555!$V4448DDDEE
#FH555!$U3338BBBCC
#FH555x(((Arvrv&*Q26,BQ,FtTTT
 
 	 	DAq DGG!$''1
8FUN++
#FH555!$V4448EFN++
#FH555!$U3338EEM**
#FH55555r9   case)
r$   r%   r$   rj   rl   r%   rm   r$   rj      g?g@gffffff
@g@gffffff@)
r         @       @r        @      @y      @      @r~  y      @      @r  r  y      @      @)
rf   rg   rf   erh   rg   r  rf   r  fr'   )
r$   r   r$      r   r   '   r$   r     c                 H   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 ]}|                    d          }t	          j        ||           |                    d          }t	          j        ||           |                    d          }t	          j        ||           t          |          t          |d          fD ]}	|	                    d          }t	          j        |t          |                     |	                    d          }t	          j        |t          |                     |	                    d          }t	          j        |t          |                     d S )	N
FFTFFTFTTF
TTTTFFFFFFrn  ro  rq  Fr  r'   )	r+   r,   r   rt  r0   r1   r   r   r  )
r2   r|  	exp_firstexp_last	exp_false	res_firstres_last	res_falser  r]  s
             r7   test_numeric_object_likesz(TestDuplicated.test_numeric_object_likes  s    0 HNNN
 
	 8NNN
 
 (	$T888	
#Iy999#Dv666
#Hh777$T666	
#Iy999 $KKt:!>!>!>? 	> 	>CG44I'	9===~~6~22H'(;;;E22I'	9==== ,,t: > > >? 	A 	AA'22I"9fY.?.?@@@|||00H"8VH-=-=>>>%00I"9fY.?.?@@@@	A 	Ar9   c                    g d}g d}t          j        d |D                       t          j        d |D                       t          j        d |D                       t          j        d |D                       t          j        d |D                       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 ]}|                    d
          }t	          j        ||           |                    d          }	t	          j        |	|           |                    d          }
t	          j        |
|           t          |          t          |d          t          |t                    fD ]}|                    d
          }t	          j	        |t          |                     |                    d          }	t	          j	        |	t          |                     |                    d          }
t	          j	        |
t          |                     d S )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 daysc                 ,    g | ]}t          |          S r>   r   r@   r  s     r7   rC   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>9      ///qill///r9   c                 0    g | ]}t          |d           S )r  r  r  r  s     r7   rC   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>:  s%    @@@il333@@@r9   c                 0    g | ]}t          |d           S )r<  r   )r   r  s     r7   rC   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>;  s%    666afQS)))666r9   c                 6    g | ]}t          j        |          S r>   )r+   r   r  s     r7   rC   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp><  s"    3331bmA&&333r9   c                 ,    g | ]}t          |          S r>   )r   r  s     r7   rC   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>=  r  r9   r  r  rn  ro  rq  Fr  r'   )
r+   r,   r   rt  r0   r1   r   rM   r   r  )r2   r  r=  casesr  r  r  r|  r  r  r  r  r]  s                r7   test_datetime_likesz"TestDuplicated.test_datetime_likes  s   
 
 

 
 
 H//B///00H@@R@@@AAH66266677H3333344H//B///00
 HNNN
 
	 8NNN
 
 (	 &	E &	ED(G<<<I'	9==='6:::H'(;;;(E:::I'	9=== dd*---d&))) B B
  NNN88	+IyAAA>>v>66+Hh???NNN66	+IyAAAA tt:...t6*** E E
 LLgL66	&y&2C2CDDD<<V<44&x1A1ABBBLLeL44	&y&2C2CDDDDE5&	E &	Er9   r   r   rl   c                     |j         du sJ t          j        |                                t	          j        g d                     d S )NT)FFF)	is_uniquer0   r1   rt  r+   r,   )r2   r|  s     r7   test_unique_indexz TestDuplicated.test_unique_indexp  sI    ~%%%%
#DOO$5$5rx@U@U@U7V7VWWWWWr9   zarr, uniques)r   r   r$   r$   r   r   r   r  r  r   )r   r  r  r   )rg   rh   rf   rg   r  r  r  r  )r   rg   r%   rf   rl   r   )r   r  r  c                 z   t          j        t          |          t                    }||d d <   d}t	          j        t          |          5  t          j        |           d d d            n# 1 swxY w Y   t          j        t          j
        |t                              }t          j        ||           d S )Nr'   [unique requires a Series, Index, ExtensionArray, np.ndarray or NumpyExtensionArray got listr   )r+   r  r   rM   r   r   r   r   rH   r   r   r0   r1   )r2   ru   r4   r   r   r  s         r7   test_unique_tuplesz!TestDuplicated.test_unique_tuplesu  s      8CLL777/ 	 ]9C000 	 	IcNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 i-c@@@AA
#C22222s   A..A25A2zarray,expected)r  r   r$   r        ?       @r  )r  y                r)   r  r  c                    d}t          j        t          |          5  t          j        |           d d d            n# 1 swxY w Y   t          j        t          j        |                    }t          j        ||           d S )Nr  r   )	r   r   r   r   rH   r+   r,   r0   r1   )r2   r,   r   r   r  s        r7   test_unique_complex_numbersz*TestDuplicated.test_unique_complex_numbers  s    / 	
 ]9C000 	 	Ie	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 i((
#C22222s   ?AAN)r&  r'  r(  r{  r   r)  r*  r+   r,   r`   rM   r   r  r  r   r   r   r  r  r-   r  r>   r9   r7   rl  rl    sF       %6 %6 %6N [BH33344BHc3RVS#sCMNNBH    BHGGGvVVVBHCCC29UUU%	
 .&A &A/ .&APPE PE PEd [VeeIII&6&6a8K8K%LMMX X NMX [ QPP000
 A@@Z( 6557U7U7UV
	
 3 3 3  [ 322???wOOO	
 3 3 3 3 3r9   rl  c                   R   e Zd Zej                            dej         ej	        d  e
d          D             e          fej         ej	        d  e
d          D             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                            dej         ej	        d  e
d          D             e          fej         ej	        d  e
d          D             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d
S )TestHashTablezhtable, datac                     g | ]}d | S foo_r>   r   s     r7   rC   zTestHashTable.<listcomp>      :::***:::r9   r>  r'   c                     g | ]}d | S r  r>   r   s     r7   rC   zTestHashTable.<listcomp>  r  r9   c                    t          ||j                  }|t          j        k    rt          j        |j        d<   n.|t          j        k    rt          j        d t          g|j        dd<   |	                    dd          
                    d          }|j                            |           |                    d	
          j        } |                                |j                  }t          j        ||            |                                |j        d          \  }}t          j        ||           ||         }	t          j        |	|j                   d S )Nr'       rl   Tfracreplacedropr   rn  ro  )return_inverse)r   r(   r   Float64HashTabler+   r`   locPyObjectHashTabler   samplereset_indexra   r   drop_duplicatesrH   r0   r1   )
r2   htabler   r   r]  s_duplicatedexpected_uniqueresult_uniqueresult_inversereconstrs
             r7   test_hashtable_uniquez#TestHashTable.test_hashtable_unique  sM   $ 4tz***R(((AE#JJr+++ fdC0AE#c'N xxQx55AAtALL$$8$444 '66G6DDK(;<<
#M?CCC )/ )8 )
 )
%~ 	#M?CCC 0
#Hl.ABBBBBr9   c                     g | ]}d | S r  r>   r   s     r7   rC   zTestHashTable.<listcomp>  r  r9   c                     g | ]}d | S r  r>   r   s     r7   rC   zTestHashTable.<listcomp>  r  r9   c                    t          ||j                  }|t          j        k    rt          j        |j        d<   n.|t          j        k    rt          j        d t          g|j        dd<   |	                    dd          
                    d          }|j                            |           |                                j        } |                                |j                  \  }}|                                                                j        }	t#          j        ||	           |||                   }
|                                j        }t#          j        |
|           d S )	Nr'   r  r  rl   Tr  r  r   )r   r(   r   r  r+   r`   r  r  r   r  r  ra   r   r   r.   r;  r  r0   r1   )r2   r  r   r   r]  r  na_maskr  r  r  result_reconstructexpected_reconstructs               r7   test_hashtable_factorizez&TestHashTable.test_hashtable_factorize  sK   $ 4tz***R(((AE#JJr+++ fdC0AE#c'N xxQx55AAtALL$$8$444##%%,(.(:(:<;N(O(O%~
 '--//??AAH
#M?CCC +>7(+CD+2244;
#$68LMMMMMr9   N)r&  r'  r(  r   r)  r*  r   r  r+   r,   r   rM   StringHashTabler  rr   r   Int64HashTabler   UInt64HashTabler   r  r  r>   r9   r7   r  r    s"       [ $::eeDkk:::&III
 "::eeDkk:::&III  )")D
"C"C"CD		$bh ? ? ?@4ry!A!A!AB	
  C C!  C: [ $::eeDkk:::&III
 "::eeDkk:::&III  )")D
"C"C"CD		$bh ? ? ?@4ry!A!A!AB	
  N N!  N N Nr9   r  c                      e Zd Zej                            dej        ej        dddej        dddej        g
dej        dddej        dddej        g
g          d             Zd Z	ej                            d	ej
        ej        g          d
             Zej                            dg d          d             Zd Zej        j        d             ZdS )TestRankru   rn   r$   r%   rl   ro   c                 8   t          j        d          }t          j        |          }t          j        |           }t          j        |          }t          j        ||<   |                    |          }t          j	        ||<   t          j        ||           d S )Nzscipy.stats)r   importorskipr+   r,   isfinitelibalgosrank_1drz   rankdatar`   r0   assert_almost_equal)r2   ru   sp_statsr   r   rt   s         r7   test_scipy_compatzTestRank.test_scipy_compat  s     &}55hsmmC   !#&&FD	$$FD	
vs+++++r9   c                    t          j        ddgt           j                  }t          j        ddg|          }|                    |           t	          |          }t          j        |          }t          j        ||           d S )Nr$   r%   r'   r/  r   )	r+   r,   r   r   r   r   rankr0   r1   )r2   r   any_int_numpy_dtypert   r   rb   r   s          r7   rv   zTestRank.test_basic  sz    h1vRZ000xC(;<<<H%%%TllC
#FC00000r9   r(   c                     t          j        ddgt           j                  }t          ddg|          }t	          j        t          j        |          |           d S )Nr$   r%   r'   r   )r+   r,   r   r   r0   r1   r   r  )r2   r(   rt   r]  s       r7   rq  zTestRank.test_uint64_overflow$  sS    h1vRZ000Au:U+++
#EJqMM377777r9   method)averageminmaxc                 .   t          j        dddt           j        dgt           j                  }t	          dddt
          j        d	gd
          }|                    t                    }t          j
        ||          }t          j        ||           d S )Nro   r^   rp   r_   r'   g*"Fg3!ǻg{Q :g1A;-:Float64)r  )r+   r,   r`   r   r   r   r+  rJ   rM   r   r  r0   r1   )r2   r  rt   r]  r   s        r7   test_rank_tiny_valueszTestRank.test_rank_tiny_values+  s     hS#rvs32:FFF=-N
 
 
 HHVAf---
#FC00000r9   c                     t          j        g dg dg dgg          }d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr   )rm   rj   r}  )r  rr  	   z%Array with ndim > 2 are not supportedr   )r+   r,   r   r   r   r   r  )r2   ru   r   s      r7   test_too_many_ndimszTestRank.test_too_many_ndims7  s    hIIIyyy9:;;5]9C000 	 	JsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA"%A"c                 >   t          j        d          }t          j        |d                                          }|dk    sJ t          j        d                              dd          }t          j        |d                                          }|dk    sJ d S )Ni  T)pctr$   i  r%   )r+   rr   r   r  r  reshape)r2   ra   r   s      r7   test_pct_max_many_rowszTestRank.test_pct_max_many_rows>  s     9%%F---1133{{{{9%%--i;;F---1133{{{{{{r9   N)r&  r'  r(  r   r)  r*  r+   r`   r  rv   r   r   rq  r  r  
single_cpur  r>   r9   r7   r  r    s4       [VRVS#sBFAq!RVD"&#sCAsBFC	
 
, 
, 
,1 1 1 [Wrz29&=>>8 8 ?>8 [X'@'@'@AA	1 	1 BA	1   [    r9   r  c                       e Zd Zd Zd Zd Zd Zd Zej	        
                    deeg          d             Zd Zd	 Zd
 Zd Zd Zd Zd ZdS )TestModec                     t          g t          j        t          g t                              }t          j        t          j        g                     \  }}t          j	        ||j
                   d S )Nr'   )r(   r?   )r   r+   r   r   intr   moder,   r0   r1   ra   r2   rt   r   _s       r7   test_no_modezTestMode.test_no_modeK  s[    Rrzr1E1E1EFFFJrx||,,	
#FCJ77777r9   c                    dg}dg}dg}ddg}t          ||          }t          ||          }t          j        |j                  \  }}	t	          j        ||j                   t	          j        |                                |           t          ||          }t          ||          }t          j        |j                  \  }}	t	          j        ||j                   t	          j        |                                |           d S )Nr$   r'   r   r   r  ra   r0   r1   r  
r2   r   
exp_singledata_single	exp_multi
data_multirb   rt   r   r  s
             r7   test_mode_singlezTestMode.test_mode_singleP  s    S
cC	V
[(<===Z';<<<Jsz**	
#FCJ777
sxxzz3///Z';<<<Y&:;;;Jsz**	
#FCJ777
sxxzz3/////r9   c                 <   t          dgt                    }t          j        |j                  \  }}t          j        ||j                   t          g dt                    }t          j        |j                  \  }}t          j        ||j                   d S )Nr$   r'   ri   )r   r  r   r  ra   r0   r1   rM   r  s       r7   test_mode_obj_intzTestMode.test_mode_obj_intd  s    aS$$$Jsz**	
#FCJ777___F333Jsz**	
#FCJ77777r9   c                 R   dg}dgdz  dgdz  z   }ddg}dgdz  dgdz  z   dgdz  z   }t          ||          }t          ||          }t          j        |j                  \  }}	t	          j        ||j                   t	          j        |                                |           t          ||          }t          ||          }t          j        |j                  \  }}	t	          j        ||j                   t	          j        |                                |           d S )Nr$   rj   r%   rl   r'   r  r  s
             r7   test_number_modezTestMode.test_number_modem  s%   S
cAga'F	S1WsQw&!q0
[(<===Z';<<<Jsz**	
#FCJ777
sxxzz3///Z';<<<Y&:;;;Jsz**	
#FCJ777
sxxzz3/////r9   c                 $   dg}dgdz  dgdz  z   }t          |d          }t          |d          }t          j        |j                  \  }}t	          j        ||j                   t	          j        |                                |           d S )Nrg   rf   r%   rl   rh   r'   r  )r2   rt   r   rb   r   r  s         r7   test_strobj_modezTestMode.test_strobj_mode  s    euqyC519$T%%%S$$$Jsz**	
#FCJ777
sxxzz3/////r9   r  c                 p   dg}dgdz  dgdz  z   }t          ||          }t          ||          }t          j        |j                  \  }}|r$|t          u rt          j        ||j                   nt          j        ||j                   t          j        |                                |           d S )Nbarr   r%   rl   r'   )	r   r   r  ra   r  r0   r  r1   r  )r2   r  using_infer_stringrt   r   rb   r   r  s           r7   test_strobj_multi_charzTestMode.test_strobj_multi_char  s    gw{eWq[(T$$$S###Jsz**	 	<"))+FCJ????'
;;;
sxxzz3/////r9   c                    t          g dd          }t          g dd          }t          j        t          j        |j                  |j                   t          j        |                                |           t          ddgd          }t          g dd          }t          j        t          j        |j                  |j                   t          j        |                                |           d S )N)
1900-05-03r  
2013-01-02r   r'   )r  r  r  r  r  )r  r  r  r  r  r   r0   r  r   r  ra   r  r  r2   rt   rb   s      r7   test_datelike_modezTestMode.test_datelike_mode  s    ???xPPP???xPPP
'
3:(>(>LLL
sxxzz3///lL1BBBRRR
 
 
 	'
3:(>(>LLL
sxxzz3/////r9   c                    t          g dd          }t          g dd          }t          j        t          j        |j                  |j                   t          j        |                                |           t          ddgd          }t          g dd          }t          j        t          j        |j                  |j                   t          j        |                                |           d S )N)-1 days0 daysr  r9  r'   )r  r  r  2 minr   r   r   z-1 dayz-1 day 2 minr  r  r  r  s      r7   test_timedelta_modezTestMode.test_timedelta_mode  s    444<MNNN444<MNNN
'
3:(>(>LLL
sxxzz3///gw'/@AAAJJJ#
 
 
 	'
3:(>(>LLL
sxxzz3/////r9   c                    t          dgt                    }t          g d          }t          j        |j                  \  }}t          j        ||j                   t          j        |                                |           d S )Nr   r'   )r$   r   r   )r   rM   r   r  ra   r0   r1   r  r2   rt   rb   r   r  s        r7   test_mixed_dtypezTestMode.test_mixed_dtype  su    eWF+++&&&''Jsz**	
#FCJ777
sxxzz3/////r9   c                 `   t          dgt          j                  }t          g dt          j                  }t          j        |j                  \  }}t          j        ||j                   t          j        |                                |           t          ddgt          j                  }t          ddgt          j                  }t          j        |j                  \  }}t          j        ||j                   t          j        |                                |           d S )Nr   r'   )r$   r   r   r$   )	r   r+   r   r   r  ra   r0   r1   r  r  s        r7   rq  zTestMode.test_uint64_overflow  s    eWBI...&&&bi888Jsz**	
#FCJ777
sxxzz3///aZry111aZry111Jsz**	
#FCJ777
sxxzz3/////r9   c                 $   t          ddg          }|}t          |                                          j        }t	          j        ||           t          g d          }t          dgddg          }t          |                                          j        }t	          j        ||           t          g d          }t          ddgg d          }t          |                                          j        }t	          j        ||           d S )	Nr$   r%   r$   rf   rf   rf   r}  r$   r$   r%   rl   rl   rl   r   )r   r   r  r  r0   r~  )r2   rh   rt   r  s       r7   r  zTestMode.test_categorical  s    AQiinn&
#C---&&3%QH555Qiinn&
#C---((1a&YYY777Qiinn&
#C-----r9   c                    t          g d          }t          g dt          j                  }t	          j        |          \  }}t          j        ||j                   t          g d          }t          dgt                    }t	          j        |          \  }}t          j        ||j                   t          g d          }t          ddgt          j                  }t	          j        |          \  }}t          j        ||j                   t          g dd	          }t          j        t          d
          5  t	          j        |           d d d            d S # 1 swxY w Y   d S )Nr   r'   r  rf   r  r$   rl   r  r9  TimedeltaIndexr   )r   r   r+   r   r   r  r0   r1   ra   rM   r   r   AttributeError)r2   r  rt   r   r  s        r7   
test_indexzTestMode.test_index  s   IIIYYYbh///JsOO	
#FCJ777MMM""cU&)))JsOO	
#FCJ777OOO$$aV28,,,JsOO	
#FCJ777JJJ#
 
 
 ]>1ABBB 	 	JsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   E((E,/E,c                     t          g dd          }|                                }t          dgd          }t          j        ||           d S )N)r$   r$   rl   r   r|  r$   )r   r  r0   r  r"  s       r7   test_ser_mode_with_namez TestMode.test_ser_mode_with_name  sR    YYYU+++1#E***
vx00000r9   N)r&  r'  r(  r  r  r  r  r  r   r)  r*  r  rM   r  r  r  r  rq  r  r#  r%  r>   r9   r7   r  r  J  s        8 8 8
0 0 0(8 8 80 0 0&0 0 0 [TC=110 0 2100 0 00 0 00 0 00 0 0. . .   01 1 1 1 1r9   r  c                       e Zd Zej                            dddg          d             Zd Zej                            dddg          d             Zd	S )
TestDiffr(   r   rl  c                 j   t          j        d                              t           j                                      |                              dd          }|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                   d S )N   rl   rm   r   nsr%   r$   r   axisr9  r'   )r+   rr   rJ   r   r  r  r(   typer   diffr  r  r<  r0   r1   Tr2   r(   ru   r   r   s        r7   test_diff_datetimelike_natz#TestDiff.test_diff_datetimelike_nat  s    imm""28,,11%88@@AFFINN5$//AAAqD	C+++739,=>>>Bt44At44AAA
#FH555CE11---
#FHJ77777r9   c                     t          ddd          j        }d}t          j        t          |          5  t          j        |dd           d d d            d S # 1 swxY w Y   d S )	Nr  rl   r  r  z#cannot diff DatetimeArray on axis=1r   r$   r+  )r   r  r   r   
ValueErrorr   r.  )r2   r  r   s      r7   test_diff_ea_axiszTestDiff.test_diff_ea_axis	  s    q\BBBH3]:S111 	' 	'JsAA&&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   AA!Aint8int16c                     t          j        g d|          }t          j        |d          }t          j        t           j        ddddgd          }t          j        ||           d S )N)r   r$   r$   r   r   r'   r$   r   rk   rK   )r+   r,   r   r.  r`   r0   r1   r0  s        r7   test_diff_low_precision_intz$TestDiff.test_diff_low_precision_int  se    he444C##8RVQ2q1CCC
#FH55555r9   N)	r&  r'  r(  r   r)  r*  r1  r4  r8  r>   r9   r7   r'  r'    s        [Wx&:;;8 8 <;8' ' ' [Wvw&7886 6 986 6 6r9   r'  opc                 4    | g d          } | g d          } | g d          }t          |t          j                  r,t          j        ||          }t          j        ||           d S t          j        ||          }t          j        ||           d S )N)rl   r$   rl   rm   )r%   rl   r$   r$   )rl   rl   r$   r$   rm   r%   )rF   r+   r   r   union_with_duplicatesr0   r1   r  )r9  lvalsrvalsr   r   s        r7   test_union_with_duplicatesr>    s     B|||EB|||Er$$$%%H(BJ'' :,UE::
#FH55555,UE::
'99999r9   )Ar   r  numpyr+   r   pandas._libsr   r  r   r   pandas.core.dtypes.commonr   r   r   r	   r
   pandas.core.dtypes.dtypesr   r   pandasr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr0   pandas.core.algorithmscore
algorithmspandas.core.arraysr   r    pandas.core.commoncommonr   r"   r-  r  r  r%  rl  r  r  r  r'  r)  r*  r,   r>  r>   r9   r7   <module>rL     s&                     
                    
                                           (       & & & & & & & & &        !                oQ oQ oQ oQ oQ oQ oQ oQdT: T: T: T: T: T: T: T:n
  q1 q1 q1 q1 q1 q1 q1 q1h	y< y< y< y< y< y< y< y<xq3 q3 q3 q3 q3 q3 q3 q3hYN YN YN YN YN YN YN YNx@ @ @ @ @ @ @ @Fk1 k1 k1 k1 k1 k1 k1 k1\6 6 6 6 6 6 6 6@ "(344
: 
: 54
: 
: 
:r9   