
    g0                    J   d dl m Z  d dlZd dlZd dlZd dlmZmZ	 d dl
mZmZmZmZmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z( d dl)m*c m+Z d dl,m-Z-m.Z. d dl/m*c m0Z1  G d d	          Z2 G d
 d          Z3d Z4 G d d          Z5 G d d          Z6 G d d          Z7 G d d          Z8 G d d          Z9 G d d          Z: G d d          Z;e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)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexIntervalIndex
MultiIndexNaTPeriodPeriodIndexSeries	Timedelta	Timestampcut
date_rangetimedelta_rangeto_datetimeto_timedelta)DatetimeArrayTimedeltaArrayc                   	   e Zd Zd Zej                            dddg          d             Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zej                            dg dg dg dfg dg dg dfg dg dg dfg          d             Zd Zd Zd Zd Zd Zd Zd Zd  Zej                            dddg          d!             Zej                            dddg          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 d0d&'          d1f ej        g d2d)'          d3f ej        g d4d)'          d1f ej        g d5e '          d6f ej        g d7e '          d8f ej        g d9e '          d:fg          d;             Z!ej                            dddg          ej                            d< ej        g d=e '           ej        d>d6ge '          f e"j        d?d1ej#        d?gd@'           e"j        d?d1gd@'          fgdAdBgC          dD                         Z$ej                            dg dE ej        g dF ej%        dG          '           ej        d6ej#        d>ge '          fd6ej#        d>d6g ej        g dF ej%        dG          '           ej        d6ej#        d>ge '          fg          dH             Z&ej                            dg dI ej        g d. ej%        dG          '           ej        d1ej#        d?gdJ'          fd1ej#        d1d?g ej        g d. ej%        dG          '           ej        d1ej#        d?gej'        '          fg          dK             Z(ej                            d e) e*g dL                     ej        g dMej+        '           e,d6d>gd6d>gdNO          f e- e*g dL                     ej        g dMej+        '           e,d6d>gd6d>gdNO          f e- e.dPdPgdQR                     ej        d/d/gej+        '           e.dPgdQR          fg          dS             Z/dT Z0dUS )VTestFactorizec                 x   g d}d}t          j        t          |          5  t          j        |          \  }}d d d            n# 1 swxY w Y   t          j        g dt
          j                  }t          j        ||           t          j        g dt                    }t          j        ||           d S )N)             @      ?0factorize with argument that is not not a Seriesmatch)r   r#   r$   dtype)      ?        y       @        r%   )
tmassert_produces_warningFutureWarningr   	factorizenparrayintpassert_numpy_array_equalobject)selfr1   msglabelsuniquesexpected_labelsexpected_uniquess          c/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/pandas/tests/test_algos.pytest_factorize_complexz$TestFactorize.test_factorize_complex4   s    @'SAAA 	5 	5#oe44OFG	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 (999BG<<<
#FO<<< 8$B$B$B&QQQ
#G-=>>>>>s   AA
A
sortTFc                   
 |}|                     |          \  }}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r=   c                 :    g | ]}                     |          S  )index).0valexpected_uniques_lists     r;   
<listcomp>z0TestFactorize.test_factorize.<locals>.<listcomp>[   s(    JJJs/55c::JJJ    r)   Texact)r/   r   
isinstancer   from_tuplesuniquer*   r0   float16astypefloat32boolr4   sort_valueslistasarrayr2   r,   r3   assert_index_equal)r5   index_or_series_objr=   objresult_codesresult_uniquesconstructorexpected_arrr:   expected_codesrE   s             @r;   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KrG   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)         ?       @)
r0   r1   nanr   r/   r2   r   r,   r3   rT   )r5   valuessercodesr8   r[   r:   s          r;   +test_series_factorize_use_na_sentinel_falsez9TestFactorize.test_series_factorize_use_na_sentinel_falsea   s    1aBF+,,Vnnu==w,,,bg>>> #sBF!344
#E>:::
g'788888rG   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brj   ri   ri   crk   rk   r)   ri   rj   rk   Tr?   )r   r#   r#   r   r   r$   r$   r$      )r   r#   r$         )rp   ro   r$   r#   r         @)      @      @rb   ra           )rt   ra   rb   rs   rr   )
r0   r1   r4   r   r/   r,   r3   r2   aranger*   )r5   itemsrf   r8   exparrs         r;   
test_basiczTestFactorize.test_basicm   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1rG   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   rn   r#   r$   ro   r)   Tr?   )r$   r$   rn   ro   r   r#   )r   r0   rc   infr   r/   r1   r2   r,   r3   r   rT   )r5   xrf   r8   rw   s        r;   
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+++++rG   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/   r0   r1   r2   r,   r3   r   rT   r5   v1v2r~   rf   r8   rw   s          r;   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+++++rG   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/   r0   r1   r2   r,   r3   rT   r   r   s          r;   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'<'<=====rG   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/   r0   r1   r2   r,   r3   rT   r   s          r;   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'='=>>>>>rG   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)   )rn      )na_sentinelr   )r0   r1   rc   htObjectFactorizerlenr/   r2   setr,   r3   pdisna)r5   keyrizerr   idsexpecteds         r;   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 	7rG   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$   ro   r#   r#   r   int64r)   )FFFFFT)mask)r   r#   r$   r   r   rn   r#   r$   ro   )r0   r1   r   Int64Factorizerr   r/   r2   r,   r3   r8   to_array)r5   datar   r   resultr   r:   s          r;   test_factorizer_with_maskz'TestFactorize.test_factorizer_with_mask   s    x***':::xAAABB"3t99--D118///rw???
#FH5558IIIW===
#EM$:$:$<$<>NOOOOOrG   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$   ro   )r   r#   r$   r   rn   r)   r   )r0   r1   rc   r   r   r   r/   rN   r4   r2   r,   r3   r8   r   )r5   r   r   r   r   r:   s         r;   test_factorizer_object_with_nanz-TestFactorize.test_factorizer_object_with_nan   s    xAq!RV,--#CII..V!4!4558,,,BG<<<
#FH5558IIIV<<<
#EM$:$:$<$<>NOOOOOrG   z&data, expected_codes, expected_uniques)r#   r#   r#   r$   r   r   r   nonsense)r   r#   r$   r#   ro   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r#   r$   r#   )r   r   r   c                 d   d}t          j        t          |          5  t          j        |          \  }}d d d            n# 1 swxY w Y   t          j        |t          j        |t          j                             t          j
        |t                    }t          j        ||           d S )Nr&   r'   r)   )r,   r-   r.   r   r/   r3   r0   r1   r2   comasarray_tuplesafer4   )r5   r   r[   r:   r6   rf   r8   expected_uniques_arrays           r;   test_factorize_tuple_listz'TestFactorize.test_factorize_tuple_list   s    $ A'SAAA 	0 	0\$//NE7	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	#E28N"'+R+R+RSSS!$!67Gv!V!V!V
#G-CDDDDDs   AA	A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 rA   )complexrC   is     r;   rF   z6TestFactorize.test_complex_sorting.<locals>.<listcomp>  s    666q

666rG      r)   z,'[<>]' not supported between instances of .*r'   rn   Tr?   )	r0   r1   ranger4   pytestraises	TypeErrorr   r/   )r5   x17r6   s      r;   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$   )r0   r1   r2   r   r/   r,   r3   )r5   any_real_numpy_dtyper*   r   r[   r:   rf   r8   s           r;   test_numeric_dtype_factorizez*TestFactorize.test_numeric_dtype_factorize  s    $xE222,,,bg>>>8QF%888..w
#E>:::
#G-=>>>>>rG   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)ra       חAra   :0yE>r   ra   r)   write)r   r#   r   r$   r#   r   )ra   r   r   )	r0   r1   float64setflagsr2   r   r/   r,   r3   r5   writabler   r[   r:   rf   r8   s          r;   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-=>>>>>rG   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#   )	r0   r1   uint64r   r2   r   r/   r,   r3   r   s          r;   test_uint64_factorizez#TestFactorize.test_uint64_factorize0  s    x111CCCH%%%)))27;;;8YN")DDD..w
#E>:::
#G-=>>>>>rG   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   )	r0   r1   r   r   r2   r   r/   r,   r3   r   s          r;   test_int64_factorizez"TestFactorize.test_int64_factorize:  s    x888IIIH%%%)))27;;;8Y$9JJJ..w
#E>:::
#G-=>>>>>rG   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)ri   rk   ri   rj   rk   r)   r   )r   r#   r   r$   r#   ri   rk   rj   )	r0   r1   r4   r   r2   r   r/   r,   r3   r   s          r;   test_string_factorizez#TestFactorize.test_string_factorizeD  s    x111@@@H%%%///AAA8OOO6BBB..w
#E>:::
#G-=>>>>>rG   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 )Nri   rk   rj   r)   r   )r   r#   rn   rn   r   r$   rn   r#   r   )r0   r1   rc   r   r4   r   r2   r   r/   r,   r3   r   s          r;   test_object_factorizez#TestFactorize.test_object_factorizeN  s    xc4c3DFSSSH%%%"="="=RWMMM8OOO6BBB..w
#E>:::
#G-=>>>>>rG   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])	r0   r1   
datetime64r   r2   r   r/   r,   r3   r   s          r;   test_datetime64_factorizez'TestFactorize.test_datetime64_factorizeX  s    x'@AAB(SSSH%%%1#RW5558,-5E
 
 
 d++w
#E>:::
#G-=>>>>>rG   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#   TrH   r   
RangeIndex
from_ranger   r0   ru   r2   r   r/   r,   r3   rT   )r5   r=   rir   r   s        r;   test_factorize_rangeindexz'TestFactorize.test_factorize_rangeindexe  s     ]%%eBii009Rrw///3$///
#F1Ix{;;;
fQi!DAAAA4((
#F1Ix{;;;
fQi!DAAAAAArG   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)   rn   r   r#   r?   TrH   r   )r5   r=   r   r   ri2r   s         r;   $test_factorize_rangeindex_decreasingz2TestFactorize.test_factorize_rangeindex_decreasings  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ArG   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)
r0   r1   r   r   r   r   r   r/   r,   r-   )r5   r   s     r;   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   r4   c                     t          j        |          \  }}|ddg         }t          j        g dt          j                  }t          j        ||           t          j        ||           d S )Nr   r#   r   r)   )r   r/   r0   r1   r2   r,   r3   )r5   r   rf   r8   r:   r[   s         r;   ,test_parametrized_factorize_na_value_defaultz:TestFactorize.test_parametrized_factorize_na_value_default  sl     ..wA<)))27;;;
#E>:::
#G-=>>>>>rG   zdata, na_valuer`   r   )r#   r   r#   r$   r#   )r   r#   r   r   r   )r#   r   r#   r   )ri    ri   rj   ri   )rA   ri   r#   rA   ri   r$   rA   )r   rA   r   r   r   c                     t          j        ||          \  }}|ddg         }t          j        g dt          j                  }t          j        ||           t          j        ||           d S )N)na_valuer#   ro   )rn   r   rn   r#   r)   )r   factorize_arrayr0   r1   r2   r,   r3   )r5   r   r   rf   r8   r:   r[   s          r;   $test_parametrized_factorize_na_valuez2TestFactorize.test_parametrized_factorize_na_value  sr     .thGGGwA<...@@@
#E>:::
#G-=>>>>>rG   zdata, uniques)rj   ri   Nrj   rj   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   rn   r#   r)   )r   r#   rn   r   )r   r/   r0   r1   r2   	safe_sortr,   r3   rJ   ndarrayassert_extension_array_equal)r5   r=   r   r8   rf   r[   r:   s          r;   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FrG   )ri   Nrj   ri   r   r#   r$   r   r2   c                     t          j        t          j        |t                    d          \  }}t          j        ||d           t          j        ||d           d S )Nr)   Fr^   T
strict_nan)r   r/   r0   r1   r4   r,   r3   r5   r   r[   r:   rf   r8   s         r;   +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KrG   )r#   Nr#   r$   r   c                     d}t          j        t          |          5  t          j        |d          \  }}d d d            n# 1 swxY w Y   t          j        ||d           t          j        ||d           d S )Nr&   r'   Fr^   Tr  )r,   r-   r.   r   r/   r3   )r5   r   r[   r:   r6   rf   r8   s          r;   (test_int_factorize_use_na_sentinel_falsez6TestFactorize.test_int_factorize_use_na_sentinel_false  s    $ A'SAAA 	J 	J"_T5IIINE7	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	#G-=$OOOO
#E>dKKKKKKs   AAA)ri   ri   rj   )r   r   r#   category)
categoriesr*   2017
US/Easterntzc                     t          j        |          \  }}t          j        ||           t          j        ||           d S )N)r   r/   r,   r3   rT   r  s         r;   test_factorize_mixed_valuesz)TestFactorize.test_factorize_mixed_values  sD    , ..w
#E>:::
g'788888rG   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   r0   rc   as_unitr   from_arraysr/   r*   r   tz_localize)r5   unitleftrightidxrf   catstsidx2codes2cats2idx3codes3cats3s                 r;    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PrG   N)1__name__
__module____qualname__r<   r   markparametrizer\   rg   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   r1   r   r4   r   r   rc   r  r*   r  r   r	  r   r   r2   r   r   r   r  r$  rA   rG   r;   r!   r!   3   s       ? ? ? [VdE]33L L 43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	? 	? 	?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ? [VdE]33B B 43B [VdE]33B B 43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	
 ? ? ? [VdE]33[ ...f===#s6222
 !Q*':::!Qw///		
 -.   G G  43G [0 &%%XRXf-=-=>>>#rvs+6::: bfc3'XRXf-=-=>>>#rvs+6:::	
 L L L [0  XRXf-=-=>>>!RVQs333 BFAq!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rG   r!   c            	       |   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej                            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 S )!
TestUniquec                     t           j                            d                              ddd          }t	          j        |          }t          |t           j                  sJ d S )Nr$   r   d   2   size)r0   randomdefault_rngintegersr   rL   rJ   r   r5   rx   r   s      r;   	test_intszTestUnique.test_ints0  sY    i##A&&//3R/@@c""&"*-------rG   c                     t           j                            d                              ddd                              d          }t          j        |          }t          |t           j                  sJ d S )Nr$   r   r-  r.  r/  r   )	r0   r1  r2  r3  rN   r   rL   rJ   r   r4  s      r;   test_objectszTestUnique.test_objects6  sg    i##A&&//3R/@@GGLLc""&"*-------rG   c                     t          j        g dt                    }t          d          D ]#}t	          t          j        |                     $d S )N)r{   r|   CDEr)     )r0   r1   r4   r   r   r   rL   )r5   lstr   s      r;   test_object_refcount_bugz#TestUnique.test_object_refcount_bug<  sW    h000???t 	# 	#AS!!""""	# 	#rG   c                    t          j        t          j        d                              d          t          j        t          j        d          d          g          }|j        }|                                 |                    d          }t          j	        |          }|                                 t          j        ||           d S )Nrm   r$   )r   r  r0   ru   repeattilerd   r=   r   rL   r,   assert_almost_equal)r5   mindexr   r   s       r;   test_on_index_objectzTestUnique.test_on_index_objectA  s    'Yq\\  ##RWRYq\\1%=%=>
 
 =q!!6""
vx00000rG   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$   ra   rb   r   TTFTF)r{   r|   r|   r{   r|   r)   )mr   )r,   BYTES_DTYPESSTRING_DTYPESr	   r   r   r   r   r
   r   rL   r0   r1   rN   r4   r*   kindrJ   r   r   r3   )r5   any_numpy_dtyper   r8   r   r   s         r;   test_dtype_preservationz"TestUnique.test_dtype_preservationO  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5rG   c                    t          j        ddgd          }t          g d          }t          j        |          }t          j        ||           |j        |j        k    sJ t          |          }t          j        |          }t          j        ||           |j        |j        k    sJ |j	        }t          j        |          }t          j        ||           |j        |j        k    sJ d S )N2015-01-03T00:00:00.0000000002015-01-01T00:00:00.000000000r   r)   )rN  rO  rO  )
r0   r1   r   r   rL   r,   r3   r*   r   rd   )r5   r   dt_indexr   srx   s         r;   $test_datetime64_dtype_array_returnedz/TestUnique.test_datetime64_dtype_array_returnedt  s   8// 
 
 
   
 
 h''
#FH555|x~----8a
#FH555|x~----hc""
#FH555|x~------rG   c                     t          j        g dd          }t          j        |          }t          j        ddgd          }t	          j        ||           d S )N2000rU  2001zdatetime64[s]r)   rU  rV  r0   r1   r   rL   r,   r3   r5   ri   r   r   s       r;   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5rG   c                     t          j        g dd          }t          j        |          }t          j        ddgd          }t	          j        ||           d S )NrT  ztimedelta64[s]r)   i  i  rW  rX  s       r;   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5rG   c                    t          j        g dd          }t          g d          }t          j        |          }t          j        ||           |j        |j        k    sJ t          |          }t          j        |          }t          j        ||           |j        |j        k    sJ |j	        }t          j        |          }t          j        ||           |j        |j        k    sJ d S )N)y  n  '  m8[ns]r)   )r]  r^  r]  r_  r^  )
r0   r1   r   r   rL   r,   r3   r*   r   rd   )r5   r   td_indexr   rQ  rx   s         r;   %test_timedelta64_dtype_array_returnedz0TestUnique.test_timedelta64_dtype_array_returned  s    8111BBB C C CDDh''
#FH555|x~----8a
#FH555|x~----hc""
#FH555|x~------rG   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   r0   r   r1   r,   r3   r   rL   )r5   rQ  rw   s      r;   test_uint64_overflowzTestUnique.test_uint64_overflow  sX    '''ry999h}}}BI666
#ELOOS99999rG   c                     dt           j        ddg}t          j        t          j        |t
                              }t          j        dt           j        dgt
                    }t          j        ||           d S )Nri   rk   r)   )r0   rc   r   rL   r1   r4   r,   r3   )r5   duplicated_itemsr   r   s       r;   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5rG   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rl  r   namer  )
r   rR   rL   r,   assert_categorical_equalr   r   r   r   rT   )r5   r   
expected_ork   r   rQ  cis          r;   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/////rG   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   rL   _datar,   r   rT   r   )r5   r  dtire   r   r   s         r;   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/////rG   c           	      2   t          j        t          g d                    }t          j        |t          j        g dd                     t          j        t          dgdgdz  z                       }t          j        |t          j        ddgd                     d}t          j        t          |	          5  t          j        t          d
                    }d d d            n# 1 swxY w Y   t          j        g dt                    }t          j        ||           t          j        t          t          t          d
                                        }t          t          d                    }t          j        ||           d S )N)r$   r#   ro   ro   )r$   r#   ro   r   r)   r$   r#   rm   z5unique with argument that is not not a Series, Index,r'   aabcrl   rj  )r   rL   r   r,   r3   r0   r1   r-   r.   rR   r4   r   rr  )r5   r   r6   r   s       r;   test_order_of_appearancez#TestUnique.test_order_of_appearance  s    6,,,//00
#FBHYYYg,N,N,NOOO61#a-0011
#FBHaV7,K,K,KLLLE'SAAA 	- 	-YtF||,,F	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-8OOO6:::
#FH5556+d6ll";";<<==tE{{++
#FH55555s    "C..C25C2c                    t          t          d          t          d          g          j                            |          }t	          j        |          }t          j        dgd| d          }t          j	        ||           d S )Nrw  z2016-01-01T00:00:00.000000000zM8[]r)   )
r   r   dtr  r   rL   r0   r1   r,   r3   )r5   r  re   r   r   s        r;   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5rG   c                 
   t          t          dd          t          dd          g                              |          }t          j        |          }t          dgd| dd           }t          j        ||           d S )Nrw  r  r  z2016-01-01 00:00:00zdatetime64[z, US/Eastern])r*   r   )r   r   r  r   rL   r,   rT   )r5   r  ry  r   r   s        r;   test_order_of_appearance_dt64tzz*TestUnique.test_order_of_appearance_dt64tz  s    *666*666
 

 '$-- 	 3 "#+L+L+L+LSW
 
 
 	fh/////rG   zarg ,expected)1r  2r  r  r)   )r   r   c                     d}t          j        t          |          5  t          j        |          }d d d            n# 1 swxY w Y   t          j        ||           d S N-unique with argument that is not not a Seriesr'   r,   r-   r.   r   rL   r3   )r5   argr   r6   r   s        r;   test_tuple_with_stringsz"TestUnique.test_tuple_with_strings(  s     >'SAAA 	$ 	$Ys^^F	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
#FH55555   ?AAc                     t          j        dd gt                    }t          j        |          }t          j        dd gt                    }t          j        ||d           d S )Nr   r)   Tr  )r0   r1   r4   r   rL   r,   r3   r5   rx   r   r   s       r;   test_obj_none_preservationz%TestUnique.test_obj_none_preservation6  s]    ht}F33338UDM888
#FHFFFFFFrG   c                     t          j        ddg          }t          j        |          }t          j        dg          }t	          j        ||           d S )Ng       rt   rW  rX  s       r;   test_signed_zerozTestUnique.test_signed_zero>  sL    HdC[!!18TF##
#FH55555rG   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packr0   r1   r   rL   rc   r,   r3   )r5   NAN1NAN2ri   r   r   s         r;   test_different_nanszTestUnique.test_different_nansE  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5rG   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  r0   r1   r   rL   r0  )	r5   r  bits_for_nan1bits_for_nan2r  r  ri   r   result_nan_bitss	            r;   test_first_nan_keptzTestUnique.test_first_nan_keptQ  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-//////rG   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#   )r0   r1   r4   r   rL   r0  )r5   unique_nulls_fixtureunique_nulls_fixture2ri   r   s        r;   test_do_not_mangle_na_valuesz'TestUnique.test_do_not_mangle_na_valuesb  s    #888FH*,AB&QQQ1{at+++++t,,,,,,,rG   c                     t          dt          j        dgdz  |          }t          j        |          }t          j        dt          j        dg|          }t          j        ||           d S )Nr#   r$   ro   r)   )r   r   NArL   r1   r,   r   )r5   any_numeric_ea_dtypere   r   r   s        r;   test_unique_maskedzTestUnique.test_unique_maskedl  se    a]Q&.BCCC38QqM1EFFF
'99999rG   N)!r%  r&  r'  r5  r7  r>  rD  rL  rR  rY  r[  rb  rd  rg  ru  rz  r}  r  r  r   r(  r)  r0   r1   r4   r  r  r  r  r   r  r  r  rA   rG   r;   r+  r+  /  s       . . .. . .# # #
1 1 1#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 - - -: : : : :rG   r+  c                      | t           j                            d                              ddd                    }t	          j        |          }t          t	          j        |                    }||k    sJ d S )Nr$   r   r      )r0   r1  r2  r3  r   nunique_intsr   rL   )index_or_series_or_arrayrd   r   r   s       r;   test_nunique_intsr  t  sr    %%bi&;&;A&>&>&G&G2r&R&RSSF''F5<''((HXrG   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)r5   r6   s     r;   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                    d}t          j        t          |          5  t          j        ddgdg          }d d d            n# 1 swxY w Y   t          j        ddg          }t          j        ||           t          j        t          j        ddg          dg          }t          j        ddg          }t          j        ||           t          j        t          ddg          dg          }t          j        ddg          }t          j        ||           t          j        t          ddg          t          dg                    }t          j        ddg          }t          j        ||           t          j        t          ddg          dh          }t          j        ddg          }t          j        ||           t          j        t          |          5  t          j        ddgdg          }d d d            n# 1 swxY w Y   t          j        ddg          }t          j        ||           t          j        t          ddg          t          dg                    }t          j        ddg          }t          j        ||           t          j        t          ddg          dh          }t          j        ddg          }t          j        ||           t          j        t          |          5  t          j        ddgdg          }d d d            n# 1 swxY w Y   t          j        ddg          }t          j        ||           d S )	N+isin with argument that is not not a Seriesr'   r#   r$   TFri   rj   )	r,   r-   r.   r   r  r0   r1   r3   r   )r5   r6   r   r   s       r;   ry   zTestIsin.test_basic  s   ;'SAAA 	- 	-ZA,,F	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-8T5M**
#FH555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'SAAA 	3 	3Zc
SE22F	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	38T5M**
#FH555FC:..u>>8T5M**
#FH555FC:..668T5M**
#FH555'SAAA 	1 	1Zc
QC00F	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	18UEN++
#FH55555s5   AA
A&HHH	L..L25L2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   ro   periodsr   TFFr$   rF  r   )
r   rd   r   r  r0   r1   r,   r3   r   r   r  s       r;   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5rG   dtype1)r`  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-01ro   r  r   r)   )r   _valuesr   viewr1   rN   r   r  r0   zerosshaperP   r,   r3   )r5   r*   r  dtarx   compsr   r   s           r;   +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5rG   c                     t          ddd          j        }t          j        ||dd                   }t	          j        t          |          t                    }d|d<   d|d	<   t          j	        ||           d S )
N20000101i rQ  )r  r   r   r$   r)   Tr#   )
r   rd   r   r  r0   r  r   rP   r,   r3   r5   rQ  r   r   s       r;   
test_largezTestIsin.test_large  sw    z7===DAq1v&&8CFF$///
#FH55555rG   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  ro   r  r   r   r  r)   )r   r  r   r  r1   r   r   r  r0   rP   r,   r3   )r5   r*   r  rx   r   r   s         r;   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5rG   )r`  r   r  c                 p   t          dd          j        }t          |                    d                    j                            |          }d |D             }d}t          j        t          |          5  t          j	        ||          }d d d            n# 1 swxY w Y   |
                                sJ t          j        |t                    }t          j        t          |          5  t          j	        ||          }d d d            n# 1 swxY w Y   |
                                sJ d S )	Nr  ro   r  r   c                 ,    g | ]}t          |          S rA   )str)rC   r~   s     r;   rF   zFTestIsin.test_isin_datetimelike_strings_deprecated.<locals>.<listcomp>  s    $$$1A$$$rG   z2The behavior of 'isin' with dtype=.* is deprecatedr'   r)   )r   r  r   r  r1   r,   r-   r.   r   r  allr0   r  )	r5   r*   r  rx   valsr6   resvals2res2s	            r;   )test_isin_datetimelike_strings_deprecatedz2TestIsin.test_isin_datetimelike_strings_deprecated  s    q1119SXXd^^$$*//66$$$$$B'SAAA 	( 	(*S$''C	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(wwyyS)))'SAAA 	* 	*:c5))D	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*xxzzs$   :BB #B 3DDDc                     t          ddd          }t          |          }t          |d<   t          j        |j        t          g          }t          j        g dt                    }t          j
        ||           d S )Nr  ro   UTCr  r  r   r  r)   )r   r   r   r   r  r  r0   r1   rP   r,   r3   )r5   ry  re   r  rw   s        r;   test_isin_dt64tz_with_natz"TestIsin.test_isin_dt64tz_with_nat  su     qU;;;SkkAjse,,h+++4888
#C-----rG   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  rl   r#   r   )TTFT)	r0   r1   r   r   
from_codesr   r  r,   r3   )r5   r  r  SdStr   r   s          r;   test_categorical_from_codesz$TestIsin.test_categorical_from_codes
  s    x%%K$$//d;;<<K$$//!Q0@0@$GGHH855566B##
#Hf55555rG   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  )r0   r1   r   r  r   r  r,   r3   )r5   r  r  catotherr   r   s          r;   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5rG   c                 "   t           j        g}t           j        g}t          j        dg          }d}t          j        t
          |          5  t          j        ||          }d d d            n# 1 swxY w Y   t          j        ||           d S )NTr  r'   )	r0   rc   r1   r,   r-   r.   r   r  r3   r5   r  rd   r   r6   r   s         r;   test_same_nan_is_inzTestIsin.test_same_nan_is_in  s     &8TF##;'SAAA 	/ 	/Zv..F	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
#Hf55555s   A//A36A3c                 .   t          j        dd          }t           j        |d<   t          j        |t          j        t           j        dg                    }t          j        t          |          t                    }t          j
        ||           d S Nra   iAB r   r#   r)   )r0   rA  rc   r   r  r1   onesr   rP   r,   r3   r  s       r;   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5rG   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  )r0   rA  r   rc   r  r1   r  r   rP   r,   assert_series_equal)r5   rQ  seriesr   r   s        r;    test_same_nan_is_in_large_seriesz)TestIsin.test_same_nan_is_in_large_series4  s    GC##v!RXrvqk2233"'#a&&55566
vx00000rG   c                     G d d          } |             |            }}d}t          j        t          |          5  t          j        t	          j        |g|g          t          j        dg                     t          j        t	          j        |g|g          t          j        dg                     d d d            d S # 1 swxY w Y   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 )NFrA   )r5   r  s     r;   __eq__z7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__D  s    urG   c                     dS )Nr   rA   )r5   s    r;   __hash__z9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__G  s    qrG   N)r%  r&  r'  rP   r  r  rA   rG   r;   LikeNanr  C  s>        t        rG   r  r  r'   TF)r,   r-   r.   r3   r   r  r0   r1   )r5   r  ri   rj   r6   s        r;   test_same_object_is_inzTestIsin.test_same_object_is_in=  s2   	 	 	 	 	 	 	 	 wyy''))1;'SAAA 	Q 	Q'
A3(<(<bhv>N>NOOO'
A3(<(<bhw>O>OPPP		Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Qs   A;CCCc                    t          d          g}t          d          g}|d         |d         usJ t          j        t          j        |          |          }t          j        t          j        dg          |           t          j        t          j        |t                    t          j        |t                              }t          j        t          j        dg          |           t          j        t          j        |t          j	                  t          j        |t          j	                            }t          j        t          j        dg          |           d S )Nrc   r   Tr)   )
floatr   r  r0   r1   r,   r3   rS   r4   r   )r5   r  rd   r   s       r;   r  zTestIsin.test_different_nansS  s)    u,,Qxvay(((( BHUOOV44
#BHdV$4$4f=== JuF+++RZf-M-M-M
 
 	#BHdV$4$4f=== JuBJ///F"*1U1U1U
 
 	#BHdV$4$4f=====rG   c                     ddg}dg}t          j        ddg          }d}t          j        t          |          5  t          j        ||          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nss*   42Fz2isin with argument that is not not a Series, Indexr'   )r0   r1   r,   r-   r.   r   r  r3   r  s         r;   test_no_castzTestIsin.test_no_castk  s     r
8UEN++B'SAAA 	/ 	/Zv..F	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
#Hf55555s   AA!$A!emptyr)   c                     t          ddg          }t          j        ddg          }t          j        ||          }t          j        ||           d S )Nri   rj   F)r   r0   r1   r   r  r,   r3   )r5   r  r  r   r   s        r;   
test_emptyzTestIsin.test_emptyv  sR     c3Z  8UEN++D%((
#Hf55555rG   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 )Nrc                 ?r)   )FFT)	r0   r1   rc   r  r4   r   r  r,   r3   )r5   r  r  r   r   s        r;   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5rG   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  r0   r1   r   r   r  r,   r3   )r5   r  r  rx   lookup1r   r   lookup2s           r;   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5rG   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 1rd   r#   r$   r  FN)r   r  r,   assert_frame_equalr5   dfr   expected_falses       r;   test_isin_int_df_string_searchz'TestIsin.test_isin_int_df_string_search  sZ     1a&)**#"Huen#=>>
fn55555rG   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 NaNrd   r$   NaNr)   FN)r   r0   rc   r  r1   r4   r,   r  r  s       r;   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5rG   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.4245rd   gn?g#Ed@z1.4245r)   FN)r   r  r0   r1   r4   r,   r  r  s       r;    test_isin_float_df_string_searchz)TestIsin.test_isin_float_df_string_search  sl     67"34558*F;;;<<"Huen#=>>
fn55555rG   c                     t          dgt          j                  }|                    dg          }t          d          }t	          j        ||           d S )Nl   
G r)   l    
G F)r   r0   r   r  r,   r  r5   re   r   r   s       r;   test_isin_unsigned_dtypez!TestIsin.test_isin_unsigned_dtype  sS    )*")<<<./00%==
vx00000rG   N)!r%  r&  r'  r  ry   r  r   r(  r)  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r4   r0   r1   r  r  r
  r  r  r  r  rA   rG   r;   r  r  |  sH       
 
 
'6 '6 '6R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Q Q Q,> > >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 1rG   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S )TestValueCountsc                 (   t           j                            d                              d          }t	          |d          }d}t          j        t          |          5  t          j	        |          }d d d            n# 1 swxY w Y   g d}t          j        |                              t          d                    }t          g d|d	
          }t          j        |                                |                                           d S )Ni  rp   !pandas.value_counts is deprecatedr'   )gV-g}?5^Ig/$ۿgףp=
?gʡE?Trn  )r#   r   r$   r#   countrB   rp  )r0   r1  r2  standard_normalr   r,   r-   r.   r   value_countsr   from_breaksrN   r   r   r  
sort_index)r5   rx   factorr6   r   breaksrB   r   s           r;   test_value_countsz!TestValueCounts.test_value_counts  s3   i##D))99!<<S! 2'SAAA 	0 	0'//F	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0777)&11889IRV9W9W9WXX,,,e'BBB
v0022H4G4G4I4IJJJJJs    BBBc                 (   g d}d}t          j        t          |          5  t          j        |d          }d d d            n# 1 swxY w Y   t          dgt          j        dg          d	          }t          j        ||           t          j        t          |          5  t          j        |d
d          }d d d            n# 1 swxY w Y   t          d
d
gt          j        ddg          d	          }t          j        ||           d S )N)r#   r$   ro   rp   r  r'   r#   binsrp   )Zd;?rr   r  r  r$   F)r(  r=   )r)        @)r*  rr   )	r,   r-   r.   r   r   r   r   rK   r  )r5   rQ  r6   r   r   s        r;   test_value_counts_binsz&TestValueCounts.test_value_counts_bins  s   LL1'SAAA 	3 	3'222F	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3C}0,@@w
 
 
 	vx000'SAAA 	? 	?'>>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?F+\:,FGG
 
 

 	vx00000s#   AA	A	&C

CCc                    d}t          j        t          |          5  t          j        t          j        ddg                    }d d d            n# 1 swxY w Y   t          |          dk    sJ t          j        t          |          5  t          j        t          j        ddg          d          }d d d            n# 1 swxY w Y   t          |          dk    sJ t          j        t          |          5  t          j        t          g d                    }d d d            n# 1 swxY w Y   t          |          dk    sJ d}t          j
        t          |          5  t          j        t          |          5  t          j        t          j        d	dgt          
          d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr  r'   r#   ra   r'  )r#   ra   r  r$   z*bins argument only works with numeric datar  r)   )r,   r-   r.   r   r   r0   r1   r   r   r   r   r   r4   )r5   msg2r   r6   s       r;   test_value_counts_dtypesz(TestValueCounts.test_value_counts_dtypes  s2   2'TBBB 	< 	<'!S(:(:;;F	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<6{{a'TBBB 	D 	D'!S(:(:CCCF	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D6{{a'TBBB 	? 	?'}}}(=(=>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?6{{a:]9C000 	M 	M+MFFF M M"28S!HF#C#C#C!LLLLM M M M M M M M M M M M M M M	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Msk   )AAA+CC	C	 $D00D47D4-G	2G;GG	GG	GG#&G#c                    t          t          j        d          t          gd          }t	          ddg          }d}||fD ]}t          j        t          |          5  t          j	        |          }t          j	        |d	          }d d d            n# 1 swxY w Y   t          |          d
k    sJ t          |          dk    sJ t          t          d          d
id          }t          j        t          |          5  t          j	        |          }d d d            n# 1 swxY w Y   t          j        ||           t          t          j        d          d
id          }	t          j        t          |          5  t          j	        |          }
d d d            n# 1 swxY w Y   t          j        |
|	           d S )Nr_  timedelta64[ns]r)   r   z
2014-01-01r  r'   Fdropnar#   r$   z2014-01-01 00:00:00r  ro  )r   r0   timedelta64r   r   r,   r-   r.   r   r   r   r   r  )r5   tdr  r6   re   vc
vc_with_naexp_dt	result_dtexp_td	result_tds              r;   test_value_counts_natz%TestValueCounts.test_value_counts_nat  s   R^E**C08IJJJ%.//18 	( 	(C+MEEE C C',,"/EBBB
C C C C C C C C C C C C C C C r77a<<<<z??a'''''#8991=GLLL'SAAA 	/ 	/*2..I	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
y&111..2AAA'SAAA 	/ 	/*2..I	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
y&11111s6   +BB	B	D((D,/D,F))F-0F-r*   zM8[us]c                    t          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          g|          }|                                }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)   ro   r$   r#   r  r  )r   r   r   r   r,   r  )r5   r*   re   r  	exp_indexrw   s         r;   &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(((((rG   c                    t          t          t          d                              }|                                }t          g dt	          g d          d          }t          j        ||d           |j                                        }|                                }|j	                                        |_	        t          j        ||d           d S )Naaabbcr=  rl   r  r  Tcheck_index_type)
r   r   rR   r   r   r,   r  r  
as_orderedrB   r  s       r;   ru  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GrG   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#   )rp   ro   r$   rl   rq  r  r  TrB  Fr1  )rp   ro   r$   r#   ri   rj   rk   )rj   ri   rk   )rl  r  rk  )
r   r   rR   r0   rc   ilocr   r   r,   r  r  s       r;   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GrG   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abcdTrk  )ro   r$   r#   r   )rj   ri   rk   r  r  r  rB  )r   r   rR   r   r,   r  r  s       r;   test_categorical_zeroesz'TestValueCounts.test_categorical_zeroesY  s    ;tH~~$v,,PTUUUVV!!LL$$$ft   
 
 
 	vx$GGGGGGrG   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 )NrF  Tr1  r$   r#   Fr  r  ro   rm   r)   )rm   ro   r$   )TFN)皙$@rq   rq   rq   rN  )rN  rq   rq   N)rN  rN  rq   rq   rq   Nr=  )rq   rN  N)r,   r  r   r   r   r4   )r5   r   r   s      r;   test_value_counts_dropnaz(TestValueCounts.test_value_counts_dropnaf  s    	&&&''44D4A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0rG   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$   ro   rm   TF)	normalizer2  )g      ?g333333?g?rb   ra   r)   
proportionr  g333333?g?)r   r0   rc   rN   r   r,   r  )r5   r*   rQ  s_typedr   r   s         r;   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0rG   c                 J   t          j        dgt           j                  }t          dgdgd          }d}t	          j        t          |          5  t          j        |          }d d d            n# 1 swxY w Y   t	          j	        ||           t          j        ddgt                    }t          ddgddgd          }t	          j        t          |          5  t          j        |          }d d d            n# 1 swxY w Y   t	          j	        ||           d S )	Nr   r)   r#   r  r  r  r'   rn   )r0   r1   r   r   r,   r-   r.   r   r   r  r4   )r5   rx   r   r6   r   s        r;   test_value_counts_uint64z(TestValueCounts.test_value_counts_uint64  s   hwbi0001#eW7;;;1'SAAA 	- 	-',,F	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	vx000hE{&1111a&U'BBB'SAAA 	- 	-',,F	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	vx00000s$   A44A8;A8"DD
D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 )Nro   r#   r$   rp   r'  )r$   r$   r#   ))r)  rb   )rb   rs   )rs   rr   zinterval[float64, right]r)   r  r  )	r0   r1   rc   r   r   r   rK   r,   r  )r5   rd   r   r   s       r;   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0rG   N)r%  r&  r'  r%  r+  r.  r;  r   r(  r)  r4   r?  ru  rH  rL  rO  r0   r   rT  rV  rX  rA   rG   r;   r  r    s&       K K K1 1 1&M M M&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 1 1rG   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 ]
\  }}|||<   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   rp   T)r0   r1   rc   r4   r   
duplicatedr,   r3   r  	enumeratezip)r5   keysr   r   r   tfalsestruess           r;   test_duplicated_with_nasz'TestDuplicated.test_duplicated_with_nas  sQ   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,FGG
 
 	 	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5rG   case)
r#   r$   r#   rm   ro   r$   rp   r#   rm      g?g@gffffff
@g@gffffff@)
      ?      ?       @       @rk        @      @y      @      @rl  y      @      @rk  rm  y      @      @)
ri   rj   ri   erk   rj   r  ri   rn  fr)   )
r#   r   r#      r   r   '   r#   rp     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
TTTTFFFFFFr\  r]  r_  Fr
  r)   )	r0   r1   r   ra  r,   r3   r   r   r  )
r5   ri  	exp_firstexp_last	exp_false	res_firstres_last	res_falser  rQ  s
             r;   test_numeric_object_likesz(TestDuplicated.test_numeric_object_likes  s    4 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rG   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 rA   r   rC   r  s     r;   rF   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>A      ///qill///rG   c                 0    g | ]}t          |d           S )r  r  r  r  s     r;   rF   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>B  s%    @@@il333@@@rG   c                 0    g | ]}t          |d           S )r:  r   )r   r  s     r;   rF   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>C  s%    666afQS)))666rG   c                 6    g | ]}t          j        |          S rA   )r0   r   r  s     r;   rF   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>D  s"    3331bmA&&333rG   c                 ,    g | ]}t          |          S rA   )r   r  s     r;   rF   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>E  r  rG   rt  ru  r\  r]  r_  Fr
  r)   )
r0   r1   r   ra  r,   r3   r   r4   r   r  )r5   r  r4  casesrv  rw  rx  ri  ry  rz  r{  r  rQ  s                r;   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rG   r   r   ro   c                     |j         du sJ t          j        |                                t	          j        g d                     d S )NT)FFF)	is_uniquer,   r3   ra  r0   r1   )r5   ri  s     r;   test_unique_indexz TestDuplicated.test_unique_indexx  sI    ~%%%%
#DOO$5$5rx@U@U@U7V7VWWWWWrG   zarr, uniques)r   r   r#   r#   r   r   r   r  r  r   )r   r  r  r   )rj   rk   ri   rj   r  r  r  r  )r   rj   r$   ri   ro   r   )r   r  r  c                     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	        ||           d S )Nr)   r  r'   )
r0   r  r   r4   r,   r-   r.   r   rL   r3   )r5   rx   r8   r   r6   r   s         r;   test_unique_tuplesz!TestDuplicated.test_unique_tuples}  s      8CLL777='SAAA 	$ 	$Ys^^F	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
#FH55555s   A..A25A2zarray,expected)rk  r   r#   r        ?       @r  )rk  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        ||           d S r  r  )r5   r1   r   r6   r   s        r;   test_unique_complex_numbersz*TestDuplicated.test_unique_complex_numbers  s     >'SAAA 	& 	&Yu%%F	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
#FH55555r  N)r%  r&  r'  rh  r   r(  r)  r0   r1   rc   r4   r   r|  r  r   r   r   r  r  r  rA   rG   r;   rZ  rZ    sL       %6 %6 %6N [BH33344BHc3RVS#sCMNNBH    BHGGGvVVVBH>>>bi  %	
 2&A &A3 2&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
	
 6 6 6 [ 322???vNNN	
	 	6 6	 	6 6 6rG   rZ  c                      e Zd Zej                            dej        d  ed          D             fej	        d  ed          D             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        d  ed          D             fej	        d  ed          D             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_rA   r   s     r;   rF   zTestHashTable.<listcomp>      #D#D#D1J1JJ#D#D#DrG   r<  c                     g | ]}d | S r  rA   r   s     r;   rF   zTestHashTable.<listcomp>      !B!B!B***!B!B!BrG   r)   c                    t          |          }|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 )N    ro   Tfracreplacedropr   r\  r]  )return_inverse)r   r   Float64HashTabler0   rc   locPyObjectHashTabler   samplereset_indexrd   r   drop_duplicatesrL   r,   r3   )
r5   htabler   r   rQ  s_duplicatedexpected_uniqueresult_uniqueresult_inversereconstrs
             r;   test_hashtable_uniquez#TestHashTable.test_hashtable_unique  sD    4LL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BrG   c                     g | ]}d | S r  rA   r   s     r;   rF   zTestHashTable.<listcomp>  r  rG   c                     g | ]}d | S r  rA   r   s     r;   rF   zTestHashTable.<listcomp>  r  rG   c                    t          |          }|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  ro   Tr  r  r   )r   r   r  r0   rc   r  r  r   r  r  rd   r   r   r/   r2  r  r,   r3   )r5   r  r   r   rQ  r  na_maskr  r  r  result_reconstructexpected_reconstructs               r;   test_hashtable_factorizez&TestHashTable.test_hashtable_factorize  sB    4LL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MrG   N)r%  r&  r'  r   r(  r)  r   r  r   StringHashTabler  r0   ru   r   Int64HashTabler   UInt64HashTabler   r  r  rA   rG   r;   r  r    s       [!#D#Dd#D#D#DE!B!BeeDkk!B!B!BC )")D
"C"C"CD		$bh ? ? ?@4ry!A!A!AB	
	 	C C	 	C: [!#D#Dd#D#D#DE!B!BeeDkk!B!B!BC )")D
"C"C"CD		$bh ? ? ?@4ry!A!A!AB	
	 	N N	 	N N NrG   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ej                            dej	        d	                   d
             Z
ej                            dej        ej        g          d             Zd Zej        j        d             ZdS )TestRankrx   rq   r#   r$   ro   rr   c                 `   t          j        d          }t          j        |          }t          j        |           }|                                }t          j        |          }t          j        ||<   |	                    |          }t          j
        ||<   t          j        ||           d S )Nzscipy.stats)r   importorskipr0   r1   isfinitecopylibalgosrank_1dr}   rankdatarc   r,   rB  )r5   rx   sp_statsr   r   rw   s         r;   test_scipy_compatzTestRank.test_scipy_compat  s     &}55hsmmC   hhjj!#&&FD	$$FD	
vs+++++rG   r*   
AllIntegerc                    t          j        ddgt           j                  }t          j        ddg|          }|                    |           t	          |          }t          j        |          }t          j        ||           d S )Nr#   r$   r)   r-  r   )	r0   r1   r   r   r   r   rankr,   r3   )r5   r   r*   rw   r   re   r   s          r;   ry   zTestRank.test_basic  sy    h1vRZ000xC...H%%%TllC
#FC00000rG   c                     t          j        ddgt           j                  }t          ddg|          }t	          j        t          j        |          |           d S )Nr#   r$   r)   r   )r0   r1   r   r   r,   r3   r   r  )r5   r*   rw   rQ  s       r;   rd  zTestRank.test_uint64_overflow  sS    h1vRZ000Au:U+++
#EJqMM377777rG   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   )rp   rm   rj  )rr  r`  	   z%Array with ndim > 2 are not supportedr'   )r0   r1   r   r   r   r   r  )r5   rx   r6   s      r;   test_too_many_ndimszTestRank.test_too_many_ndims  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$   )r0   ru   r   r  maxreshape)r5   rd   r   s      r;   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{{{{{{rG   N)r%  r&  r'  r   r(  r)  r0   rc   r  	typecodesry   r   r   rd  r  
single_cpur  rA   rG   r;   r  r    s%       [VRVS#sBFAq!RVD"&#sCAsBFC	
 , , , [Wbl<&@AA1 1 BA1 [Wrz29&=>>8 8 ?>8   [    rG   r  c                      e Zd Zd Zej                            dej        d         ej        d         z             d             Z	d Z
ej                            dej        d         ej        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        t          j	        g                     |j
                   d S )Nr)   )r*   rB   )r   r0   r   r   intr,   r3   r   moder1   rd   r5   rw   s     r;   test_no_modezTestMode.test_no_mode1  sR    Rrzr1E1E1EFFF
#EJrx||$<$<cjIIIIIrG   r  r  Floatc                    dg}dg}dg}ddg}t          ||          }t          ||          }t          j        t          j        |j                  |j                   t          j        |                                |           t          ||          }t          ||          }t          j        t          j        |j                  |j                   t          j        |                                |           d S )Nr#   r)   r   r,   r3   r   r  rd   r  r5   r  
exp_singledata_single	exp_multi
data_multire   rw   s           r;   test_mode_singlezTestMode.test_mode_single5  s     S
cC	V
[+++Zr***
#EJsz$:$:CJGGG
sxxzz3///Zr***Yb)))
#EJsz$:$:CJGGG
sxxzz3/////rG   c                 (   t          dgt                    }t          j        t	          j        |j                  |j                   t          g dt                    }t          j        t	          j        |j                  |j                   d S )Nr#   r)   rl   )r   r  r,   r3   r   r  rd   r4   r  s     r;   test_mode_obj_intzTestMode.test_mode_obj_intH  st    aS$$$
#EJsz$:$:CJGGG___F333
#EJsz$:$:CJGGGGGrG   c                 >   dg}dgdz  dgdz  z   }ddg}dgdz  dgdz  z   dgdz  z   }t          ||          }t          ||          }t          j        t          j        |j                  |j                   t          j        |                                |           t          ||          }t          ||          }t          j        t          j        |j                  |j                   t          j        |                                |           d S )Nr#   rm   r$   ro   r)   r  r  s           r;   test_number_modezTestMode.test_number_modeO  s   S
cAga'F	S1WsQw&!q0
[+++Zr***
#EJsz$:$:CJGGG
sxxzz3///Zr***Yb)))
#EJsz$:$:CJGGG
sxxzz3/////rG   c                    dg}dgdz  dgdz  z   }t          |d          }t          |d          }t          j        t          j        |j                  |j                   t          j        |                                |           d S )Nrj   ri   r$   ro   rk   r)   r  )r5   rw   r   re   s       r;   test_strobj_modezTestMode.test_strobj_modea  s    euqyC519$T%%%S$$$
#EJsz$:$:CJGGG
sxxzz3/////rG   c                    dg}dgdz  dgdz  z   }t          ||          }t          ||          }t          j        t          j        |j                  |j                   t          j        |                                |           d S )Nbarr   r$   ro   r)   r  )r5   r  rw   r   re   s        r;   test_strobj_multi_charzTestMode.test_strobj_multi_charj  s    gw{eWq[(T$$$S###
#EJsz$:$:CJGGG
sxxzz3/////rG   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   r,   r   r   r  rd   r  r  r5   rw   re   s      r;   test_datelike_modezTestMode.test_datelike_modet  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/////rG   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  r0  r)   )r  r  r  2 minr   r   r   z-1 dayz-1 day 2 minr  r  r  r  s      r;   test_timedelta_modezTestMode.test_timedelta_mode  s    4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/////rG   c                    t          dgt                    }t          g d          }t          j        t	          j        |j                  |j                   t          j        |                                |           d S )Nr   r)   )r#   r   r   )r   r4   r,   r3   r   r  rd   r  r  s      r;   test_mixed_dtypezTestMode.test_mixed_dtype  sl    eWF+++&&&''
#EJsz$:$:CJGGG
sxxzz3/////rG   c                 L   t          dgt          j                  }t          g dt          j                  }t          j        t          j        |j                  |j                   t          j        |                                |           t          ddgt          j                  }t          ddgt          j                  }t          j        t          j        |j                  |j                   t          j        |                                |           d S )Nr   r)   )r#   r   r   r#   )	r   r0   r   r,   r3   r   r  rd   r  r  s      r;   rd  zTestMode.test_uint64_overflow  s    eWBI...&&&bi888
#EJsz$:$:CJGGG
sxxzz3///aZry111aZry111
#EJsz$:$:CJGGG
sxxzz3/////rG   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#   ri   ri   ri   rq  r#   r#   r$   ro   ro   ro   r   )r   r   r  r  r,   rr  )r5   rk   rw   r  s       r;   ru  zTestMode.test_categorical  s    AQiinn&
#C---&&3%QH555Qiinn&
#C---((1a&YYY777Qiinn&
#C-----rG   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  ri   r  r#   ro   r  r0  TimedeltaIndexr'   )r   r   r0   r   r,   r3   r   r  rd   r4   r   r   AttributeError)r5   r  rw   s      r;   
test_indexzTestMode.test_index  sy   IIIYYYbh///
#EJsOOSZ@@@MMM""cU&)))
#EJsOOSZ@@@OOO$$aV28,,,
#EJsOOSZ@@@JJJ#
 
 
 ]>1ABBB 	 	JsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   7EE Ec                     t          g dd          }|                                }t          dgd          }t          j        ||           d S )N)r#   r#   ro   r   ro  r#   )r   r  r,   r  r  s       r;   test_ser_mode_with_namez TestMode.test_ser_mode_with_name  sR    YYYU+++1#E***
vx00000rG   N)r%  r&  r'  r  r   r(  r)  r0   r  r  r  r  r  r  r4   r  r  r   r  rd  ru  r
  r  rA   rG   r;   r  r  0  sf       J J J [T2<#=W@U#UVV0 0 WV0$H H H [T2<#=W@U#UVV0 0 WV0"0 0 0 [TC=110 0 2100 0 00 0 00 0 0	0 	0 	0. . .   *1 1 1 1 1rG   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   r`  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   ro   rp   r   nsr$   r#   r   axisr0  r)   )r0   ru   rN   r   r  r  r*   typer   diffr  r  r3  r,   r3   Tr5   r*   rx   r   r   s        r;   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7rG   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  ro   r  r  z#cannot diff DatetimeArray on axis=1r'   r#   r  )r   rx  r   r   
ValueErrorr   r  )r5   r  r6   s      r;   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   rn   rO   )r0   r1   r   r  rc   r,   r3   r  s        r;   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5rG   N)	r%  r&  r'  r   r(  r)  r  r  r  rA   rG   r;   r  r    s        [Wx&:;;8 8 <;8' ' ' [Wvw&7886 6 986 6 6rG   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)ro   r#   ro   rp   )r$   ro   r#   r#   )ro   ro   r#   r#   rp   r$   )rJ   r0   r   r   union_with_duplicatesr,   r3   r   )r   lvalsrvalsr   r   s        r;   test_union_with_duplicatesr%    s     B|||EB|||Er$$$%%H(BJ'' :,UE::
#FH55555,UE::
'99999rG   )@r   r  numpyr0   r   pandas._libsr   r  r   r   pandas.core.dtypes.commonr   r   r   r	   r
   pandas.core.dtypes.dtypesr   pandasr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr,   pandas.core.algorithmscore
algorithmspandas.core.arraysr   r   pandas.core.commoncommonr   r!   r+  r  r  r  rZ  r  r  r  r  r(  r)  r1   r%  rA   rG   r;   <module>r3     s                     
              7 6 6 6 6 6                                           (       & & & & & & & & &        !                yQ yQ yQ yQ yQ yQ yQ yQxB: B: B: B: B: B: B: B:J
  ~1 ~1 ~1 ~1 ~1 ~1 ~1 ~1B
}1 }1 }1 }1 }1 }1 }1 }1@g6 g6 g6 g6 g6 g6 g6 g6TMN MN MN MN MN MN MN MN`6 6 6 6 6 6 6 6r[1 [1 [1 [1 [1 [1 [1 [1|6 6 6 6 6 6 6 6@ "(344
: 
: 54
: 
: 
:rG   