Ë
    6Š·jÝº  ã                   ó”   — d Z ddlZddlZddlmZmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZ  G d„ d«      Z G d	„ d
«      Zy)z-Test functions for 1D array set operations.

é    N)Úediff1dÚintersect1dÚisinÚ	setdiff1dÚsetxor1dÚunion1dÚunique)ÚStringDType)Ú	AxisError)Úassert_array_equalÚassert_equalÚassert_raisesÚassert_raises_regexc                   ó	  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j                  j                  d ej                  g d¢ej                  ¬	«      d
ej                  df ej                  g d¢ej                  ¬	«       ej                  g d¢ej                   ¬	«      d
df ej                  g d¢ej"                  ¬	«      ej                  ej                  dfg«      d„ «       Ze	j                  j                  d ej                  g d¢ej&                  ¬	«      dd ej                  g d¢ej&                  ¬	«      f ej                  g d¢ej                   ¬	«       ej                  dgej(                  ¬	«      d
 ej                  g d¢ej                   ¬	«      f ej                  g d¢ej*                  ¬	«      dd ej                  g d¢ej*                  ¬	«      f ej                  g d¢ej                  ¬	«      dd ej                  g d¢ej                  ¬	«      fg«      d„ «       Ze	j                  j                  dg d¢«      d„ «       Ze	j                  j                  dg d¢«      d„ «       Zd „ Ze	j                  j                  dg d¢«      d!„ «       Zd"„ Ze	j                  j                  dg d¢«      d#„ «       Ze	j                  j                  dd
d$g«      d%„ «       Zd&„ Ze	j                  j                  d'ej"                  ej&                  fej&                  ej"                  fej>                  ej@                  fej@                  ej>                  fej>                  ej&                  fej&                  ej>                  fejB                  ej                  fg«      e	j                  j                  dg d¢«      d(„ «       «       Z"e	j                  j                  d) ej                  d*d+gejB                  ¬	«       ej                  d,d-gej                  ¬	«      g«      e	j                  j                  dg d¢«      d.„ «       «       Z#e	j                  j                  dg d¢«      d/„ «       Z$d0„ Z%d1„ Z&d2„ Z'd3„ Z(d4„ Z)d5„ Z*d6„ Z+d7„ Z,d8„ Z-d9„ Z.d:„ Z/y
);Ú
TestSetOpsc                 ó¨  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        ||d¬«      }t        ||«       t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        ||«      }t        ||«       t        g t        g g «      «       y )N©é   é   é   é   ©r   é   é   r   r   )r   r   r   T©Úassume_unique)r   r   r   r   r   )r   r   r   r   r   r   r   )ÚnpÚarrayr   r   )ÚselfÚaÚbÚecÚcÚeds         úV/root/workspace/.venv/lib/python3.12/site-packages/numpy/lib/tests/test_arraysetops.pyÚtest_intersect1dzTestSetOps.test_intersect1d   s˜   € ä�H‰H’\Ó"ˆÜ�H‰H’_Ó%ˆä�X‰X’iÓ ˆÜ˜˜1¨DÔ1ˆÜ˜1˜bÔ!ô �H‰H’_Ó%ˆÜ�H‰HÒ*Ó+ˆä�X‰X’iÓ ˆÜ˜˜1ÓˆÜ˜1˜bÔ!Ü˜2œ{¨2¨rÓ2Õ3ó    c                 ó’   —  G d„ d«      } |«       }t        ||«      }t        ||«       t        g d¢g d¢«      }t        |g d¢«       y )Nc                   ó   — e Zd Zdd„Zy)ú4TestSetOps.test_intersect1d_array_like.<locals>.TestNc                 ó,   — t        j                  d«      S )Nr   )r   Úarange)r   ÚdtypeÚcopys      r%   Ú	__array__z>TestSetOps.test_intersect1d_array_like.<locals>.Test.__array__)   s   € Ü—y‘y “|Ð#r'   )NN)Ú__name__Ú
__module__Ú__qualname__r/   © r'   r%   ÚTestr*   (   s   „ ô$r'   r4   ©r   r   r   )r   r   )r   r4   r    Úress       r%   Útest_intersect1d_array_likez&TestSetOps.test_intersect1d_array_like&   sA   € ÷	$ñ 	$ñ ‹FˆÜ˜!˜QÓˆÜ˜3 Ô"Üš)¢YÓ/ˆÜ˜3¢	Õ*r'   c                 ó   — t        j                  g d¢«      }t        j                  g d¢«      }t        ||dd¬«      \  }}}t        j                  g d¢«      }t        ||«       t        ||   |«       t        ||   |«       t        j                  g d¢«      }t        j                  g d¢«      }t        ||d¬«      \  }}}t        j                  g d¢«      }t        ||«       t        ||   |«       t        ||   |«       t        j                  g d	¢g d
¢g«      }t        j                  g d¢g d¢g«      }t        ||dd¬«      \  }}}t        j                  ||j
                  «      }t        j                  ||j
                  «      }	t        j                  g d¢«      }
t        |
||   «       t        |
||	   «       t        j                  g d¢g d¢g«      }t        j                  g d¢g d¢g«      }t        ||d¬«      \  }}}t        j                  ||j
                  «      }t        j                  ||j
                  «      }	t        j                  g d¢«      }
t        |
||   «       t        |
||	   «       y )N©r   r   r   r   )r   r   r   é   T)r   Úreturn_indices)r   r   r   )r   r   r   r   r   r   r   )r   é   r   r   r   r   r   r   )r;   )r   r   r   r:   )r   r<   r   é   )r   r   r   r:   )é
   é   r<   é	   )r   r:   r   r<   )r   r   r   r:   r:   )r   r   r<   r   r   )r   r   r   r   )r>   r?   r<   r   )r   r   r<   )r   r   r   r   Úunravel_indexÚshape)r   r    r!   r#   Úi1Úi2ÚeeÚefÚui1Úui2Úeas              r%   Útest_intersect1d_indicesz#TestSetOps.test_intersect1d_indices2   sö  € ä�H‰H’\Ó"ˆÜ�H‰H’\Ó"ˆÜ  1°DÈÔN‰	ˆˆ2ˆrÜ�X‰X’iÓ ˆÜ˜1˜bÔ!Ü˜1˜R™5 "Ô%Ü˜1˜R™5 "Ô%ô �H‰HÒ*Ó+ˆÜ�H‰HÒ-Ó.ˆÜ  1°TÔ:‰	ˆˆ2ˆrÜ�X‰X’lÓ#ˆÜ˜1˜bÔ!Ü˜1˜R™5 "Ô%Ü˜1˜R™5 "Ô%ô �H‰H’l¢MÐ2Ó3ˆÜ�H‰H’l¢NÐ3Ó4ˆÜ  1°DÈÔN‰	ˆˆ2ˆrÜ×Ñ˜r 1§7¡7Ó+ˆÜ×Ñ˜r 1§7¡7Ó+ˆÜ�X‰X’lÓ#ˆÜ˜2˜q ™vÔ&Ü˜2˜q ™vÔ&ô �H‰H’o¢Ð7Ó8ˆÜ�H‰H’l¢NÐ3Ó4ˆÜ  1°TÔ:‰	ˆˆ2ˆrÜ×Ñ˜r 1§7¡7Ó+ˆÜ×Ñ˜r 1§7¡7Ó+ˆÜ�X‰X’iÓ ˆÜ˜2˜q ™vÔ&Ü˜2˜q ™vÕ&r'   c                 ó^  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        ||«      }t        ||«       t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        ||«      }t        ||«       t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        ||«      }t        ||«       t        g t        g g «      «       y )	Nr   r   )r   r   r   r5   )r:   r   r   ©r   r   r   r   r   r:   ©r   r<   r   r   ©r:   r   r   r<   ©r   r   r   r   ©r   r    r!   r"   r#   s        r%   Útest_setxor1dzTestSetOps.test_setxor1dY   sÒ   € Ü�H‰H’\Ó"ˆÜ�H‰H’_Ó%ˆä�X‰X’iÓ ˆÜ�Q˜‹NˆÜ˜1˜bÔ!ä�H‰H’YÓˆÜ�H‰H’YÓˆä�X‰XÒ(Ó)ˆÜ�Q˜‹NˆÜ˜1˜bÔ!ä�H‰H’\Ó"ˆÜ�H‰H’\Ó"ˆä�X‰XÒ(Ó)ˆÜ�Q˜‹NˆÜ˜1˜bÔ!ä˜2œx¨¨BÓ/Õ0r'   c                 ó”  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        ||d¬«      }t        ||«       t        j                  dgdgdgd	gg«      }t        j                  d
dgddgg«      }t        j                  g d¢«      }t        ||d¬«      }t        ||«       y )NrM   rN   rL   Tr   r   r<   r   r   r:   r   r   rO   rP   s        r%   Útest_setxor1d_uniquezTestSetOps.test_setxor1d_uniqueq   s¦   € Ü�H‰H’\Ó"ˆÜ�H‰H’\Ó"ˆä�X‰XÒ(Ó)ˆÜ�Q˜¨Ô.ˆÜ˜1˜bÔ!ä�H‰H�q�c˜A˜3   a SÐ)Ó*ˆÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆä�X‰XÒ(Ó)ˆÜ�Q˜¨Ô.ˆÜ˜1˜bÕ!r'   c           	      óÜ  — t        j                  g «      }t        j                  dg«      }t        j                  ddg«      }t        g t        |«      «       t        dgt        |d¬«      «       t        dgt        |d¬«      «       t        ddgt        |dd¬«      «       t        g t        |«      «       t        dgt        |«      «       t        g d¢t        |d	d
¬«      «       t        g d¢t        |ddgd	dg¬«      «       t        dd
gt        |d
¬«      «       t        g d¢t        |d	dg¬«      «       t        d	dgt        |d	¬«      «       t        g d¢t        |ddg¬«      «       y )Nr   r   r   )Úto_begin)Úto_endéÿÿÿÿ)rU   rV   )r   r   r@   r   r@   )r   r:   r   r   r<   r   r:   r<   )r   r   r<   )r   r:   r   )r   r   r   r   )r   Ú	zero_elemÚone_elemÚtwo_elems       r%   Útest_ediff1dzTestSetOps.test_ediff1d€   s"  € Ü—H‘H˜R“Lˆ	Ü—8‘8˜Q˜C“=ˆÜ—8‘8˜Q ˜FÓ#ˆä˜2œw yÓ1Ô2Ü˜A˜3¤¨	¸AÔ >Ô?Ü˜A˜3¤¨	¸!Ô <Ô=Ü˜B ˜7¤G¨IÀÈ1Ô$MÔNÜ˜2œw xÓ0Ô1Ü˜A˜3¤¨Ó 1Ô2Üš9¤g¨hÀÈ1Ô&MÔNÜš?Ü" 8°q¸!°fÀaÈÀVÔLô	Nä˜A˜q˜6¤7¨8¸AÔ#>Ô?Üš9¤g¨hÀÀ1¸vÔ&FÔGÜ˜A˜q˜6¤7¨8¸aÔ#@ÔAÜš9¤g¨hÀ!ÀQÀÔ&HÕIr'   zary, prepend, append, expectedr5   ©r-   NrV   )r   r   r   rU   )ç      ð?ç      @g      "@c                 óv   — d|› d�}t        t        |«      5  t        |||¬«       d d d «       y # 1 sw Y   y xY w)Nz
dtype of `z` must be compatible©ÚaryrV   rU   )r   Ú	TypeErrorr   )r   ra   ÚprependÚappendÚexpectedÚmsgs         r%   Ú!test_ediff1d_forbidden_type_castsz,TestSetOps.test_ediff1d_forbidden_type_casts“   sB   € ð: ˜8˜*Ð$8Ð9ˆÜ ¤¨CÓ0ñ 	&Ü˜Ø!Ø$õ&÷	&÷ 	&ñ 	&ús   —/¯8zary,prepend,append,expectedi   i  )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   é÷ÿÿÿ)r   r   r   rh   c                 ó‚   — t        j                  |||¬«      }t        ||«       |j                  |j                  k(  sJ ‚y )Nr`   )r   r   r   r-   )r   ra   rc   rd   re   Úactuals         r%   Útest_ediff1d_scalar_handlingz'TestSetOps.test_ediff1d_scalar_handling¶   s<   € ô: —‘ Ø#)Ø%,ô.ˆô 	�V˜XÔ&Ø�|‰|˜xŸ~™~Ò-Ð-Ñ-r'   Úkind)NÚsortÚtablec                 óŠ  ‡‡— d„ }t        j                  |t        gdh¬«      Šˆˆfd„}t        j                  d«      j	                  g d¢«      }t        j
                  g d¢g d¢g d	¢g«      } |||«       d
dg}d} |||«       t        j
                  d«      } |||«        |||«        |||«        |d|«        ||d«        |dd«       ‰dk7  rg }	 ||	|«        |||	«        ||	|	«       t        t         j                  t         j                  fD ]©  }
‰dk(  r|
t         j                  k(  rŒ|
t         j                  t         j                  hv rt        j
                  g d¢|
¬«      }n |
t        hv rt        j
                  g d¢«      }t        j
                  g |
¬«      } ||«        |||«        |||«       Œ« y )Nc                 ól   — t        j                  |«      j                  «       j                  «       }| |v S ©N)r   ÚasarrayÚflattenÚtolist)r    r!   s     r%   Ú
_isin_slowz(TestSetOps.test_isin.<locals>._isin_slowÛ   s*   € Ü—
‘
˜1“×%Ñ%Ó'×.Ñ.Ó0ˆAØ˜�6ˆMr'   r   )ÚotypesÚexcludedc                 óL   •— t        | |‰¬«      } ‰| |«      }t        ||«       y )N©rl   )r   r   )r    r!   ÚxÚyÚ	isin_slowrl   s       €€r%   Úassert_isin_equalz/TestSetOps.test_isin.<locals>.assert_isin_equalà   s&   ø€ Ü�Q˜ Ô%ˆAÙ˜!˜Q“ˆAÜ˜q !Õ$r'   é   ©r   r   r   )r>   é   é   )r   r   r   )é   é   é!   )r@   r<   )r   r:   )r@   r   r   r   r:   rn   r\   ©TFF)r   Ú	vectorizeÚboolr,   Úreshaper   Úint64Úfloat64)r   rl   ru   r}   r    r!   r#   ÚdÚfrz   r-   ÚarÚempty_arrayr|   s    `           @r%   Ú	test_isinzTestSetOps.test_isinÙ   s”  ù€ ò	ô —L‘L ´T°FÀaÀSÔIˆ	õ	%ô �I‰I�b‹M×!Ñ!¢)Ó,ˆÜ�H‰H’l¢Iª|Ð<Ó=ˆÙ˜!˜QÔð �VÐˆØˆÙ˜!˜QÔô �H‰H�Q‹KˆÙ˜!˜QÔÙ˜!˜QÔÙ˜!˜QÔñ 	˜!˜QÔÙ˜!˜QÔÙ˜!˜QÔð �7Š?ð ˆAÙ˜a Ô#Ù˜a Ô#Ù˜a Ô#ô œBŸH™H¤b§j¡jÐ1ò 	8ˆEØ�wŠ 5¬B¯J©JÒ#6ØàœŸ™¤2§:¡:Ð.Ñ.Ü—X‘Xšl°%Ô8‘Øœ4˜&‘Ü—X‘XÒ2Ó3�äŸ(™( 2¨UÔ3ˆKá˜k¨2Ô.Ù˜b +Ô.Ù˜k¨;Õ7ñ	8r'   c                 ó~  — dD �]>  }g d¢}g d¢|z  }t        j                  g d¢«      }t        ||d|¬«      }t        ||«       d|d<   t        j                  g d	¢«      }t        ||d|¬«      }t        ||«       d
\  |d<   |d<   t        j                  g d¢«      }t        ||d|¬«      }t        ||«       t        j                  g d¢«      }g d¢|z  }g d¢}t        |||¬«      }t        ||«       |g d¢|z  z   }g d¢}t        |||¬«      }t        ||«       t        j                  g d¢«      }t        j                  g d¢|z  «      }t        j                  g d¢«      }t        |||¬«      }t        ||«       t        j                  g d¢«      }t        j                  g d¢|z  «      }t        j                  g d¢«      }t        |||¬«      }t        ||«       t        j                  ddg«      }t        j                  ddg|z  «      }t        j                  ddg«      }t        |||¬«      }t        ||«       �ŒA t        j                  dg«      }t        j                  dg«      }t        j                  dg«      }t        |||¬«      }t        ||«       |dv rt        t        g g |¬«      g «       y y )N©r   r>   r   r   ©TFTTT)r   rl   r<   r   )FFTT)r   r<   r   )TFTF©r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )FTFTTTTTTFTFFFry   )r   r   r   )TTTTTTTTTTTFTT)r   r   r   r   r   )r   r   r   r   r   r   )TFTTTr   r   F>   Nrm   ©r   r   r   r   )r   rl   Úmultr    r!   r"   r#   s          r%   Útest_isin_additionalzTestSetOps.test_isin_additional  sj  € ð ó /	&ˆDâˆAÚ $Ñ&ˆAÜ—‘Ò3Ó4ˆBÜ�Q˜¨°DÔ9ˆAÜ˜q "Ô%àˆAˆa‰DÜ—‘Ò4Ó5ˆBÜ�Q˜¨°DÔ9ˆAÜ˜q "Ô%à‰JˆAˆa‰D�!�A‘$Ü—‘Ò4Ó5ˆBÜ�Q˜¨°DÔ9ˆAÜ˜q "Ô%ä—‘ÒCÓDˆAÚ˜DÑ ˆAò4ˆBä�Q˜ Ô%ˆAÜ˜q "Ô%à’I Ñ$Ñ$ˆAò+ˆBä�Q˜ Ô%ˆAÜ˜q "Ô%ä—‘šÓ&ˆAÜ—‘š¨4Ñ/Ó0ˆAÜ—‘Ò3Ó4ˆBÜ�Q˜ Ô%ˆAÜ˜q "Ô%ä—‘šÓ)ˆAÜ—‘Ò+¨dÑ2Ó3ˆAÜ—‘Ò9Ó:ˆBÜ�Q˜ Ô%ˆAÜ˜q "Ô%ä—‘˜!˜Q˜Ó ˆAÜ—‘˜!˜Q˜ $™Ó'ˆAÜ—‘˜5 %˜.Ó)ˆBÜ�Q˜ Ô%ˆAÜ˜q "Ö%ð_/	&ôb �H‰H�a�S‹MˆÜ�H‰H�a�S‹MˆÜ�X‰X�u�gÓˆÜ��A˜DÔ!ˆÜ˜1˜bÔ!à�>Ñ!Üœt B¨°Ô6¸Õ;ð "r'   c                 ó¾   — t        j                  g d¢«      }t        j                  ddg«      }t        j                  g d¢«      }t        ||«      }t        ||«       y )N)r    r!   r#   r‹   Úer#   r˜   r!   r    r#   )TFTFFTFFr”   rP   s        r%   Útest_isin_char_arrayzTestSetOps.test_isin_char_arrayQ  sG   € Ü�H‰HÒ=Ó>ˆÜ�H‰H�c˜3�ZÓ ˆä�X‰XÒKÓLˆÜ��A‹Jˆä˜1˜bÕ!r'   c           
      óì  — dD ]X  }t        j                  g d¢«      }g d¢|z  }t        t        j                  t	        |||¬«      «      t	        ||d|¬«      «       ŒZ |dv r“dD ]�  }t        j                  g d¢t         j
                  ¬«      }g d¢|z  }t        j                  |t         j
                  ¬«      }t        t        j                  t	        |||¬«      «      t	        ||d|¬«      «       Œ� y	y	)
zTest isin's invert parameterr‘   r“   r   ry   T©Úinvertrl   >   Nrm   r\   N)r   r   r   rœ   r   Úfloat32)r   rl   r•   r    r!   s        r%   Útest_isin_invertzTestSetOps.test_isin_invertZ  sÚ   € ð
 ò 	CˆDÜ—‘ÒCÓDˆAÚ˜DÑ ˆAÜœrŸy™y¬¨a°¸Ô)>Ó?Ü# A q°¸DÔAõCð	Cð �>Ñ!Øò G�Ü—H‘HÒGÜ"$§*¡*ô.�â Ñ$�Ü—H‘H˜Q¤b§j¡jÔ1�Ü"¤2§9¡9¬T°!°Q¸TÔ-BÓ#CÜ#'¨¨1°TÀÔ#EõGñGð "r'   c                 óZ  — t        j                  g d¢t         j                  ¬«      }t        j                  g d¢t         j                  ¬«      }t        j                  g d¢t        ¬«      }t	        |t        ||«      «       t	        t        j                  |«      t        ||d¬«      «       t        j                  g d¢t         j                  ¬«      }t        j                  g d¢t         j                  ¬«      }t        j                  g d	¢«      }t        ||d¬
«      }t	        ||«       y)z(Hit the standard isin code with integers)r   r   r   r   r   r   ç    eÍÍAr\   )r   r   r   r    )r   r   r   r   r   r   r   T©rœ   r   )r   r   r   r   r   r    r’   r   N)r   r   r‰   r‡   r   r   rœ   )r   r    r!   re   r"   r#   s         r%   Ú!test_isin_hit_alternate_algorithmz,TestSetOps.test_isin_hit_alternate_algorithmo  sº   € ô �H‰HÒ,´B·H±HÔ=ˆÜ�H‰H’^¬2¯8©8Ô4ˆÜ—8‘8Ò1¼Ô>ˆÜ˜8¤T¨!¨Q£ZÔ0Üœ2Ÿ9™9 XÓ.´°Q¸À$Ô0GÔHä�H‰H’\¬¯©Ô2ˆÜ�H‰HÒ)´·±Ô:ˆÜ�X‰XÒ/Ó0ˆÜ��A TÔ*ˆÜ˜1˜bÕ!r'   c           	      ó  — t        j                  ddg«      }t        j                  g d¢«      }t        j                  ddg«      }t        |t        |||¬«      «       t        t        j                  |«      t        ||d|¬«      «       y)z&Test that isin works for boolean inputTF)FFFry   r›   N)r   r   r   r   rœ   )r   rl   r    r!   re   s        r%   Útest_isin_booleanzTestSetOps.test_isin_boolean  sn   € ô �H‰H�d˜E�]Ó#ˆÜ�H‰HÒ*Ó+ˆÜ—8‘8˜U D˜MÓ*ˆÜ˜8Ü  1¨4Ô0ô	2äœ2Ÿ9™9 XÓ.Ü  1¨T¸Ô=õ	?r'   rm   c                 ó  — t         j                  j                  d«      }|j                  ddd¬«      }|j                  ddd¬«      }t	        ||«      }|j                  d«      }|j                  d«      }t        |t	        |||¬«      «       y)z(Test that isin works for timedelta inputr   éd   r>   )Úsizeútimedelta64[s]ry   N)r   ÚrandomÚRandomStateÚrandintr   Úastyper   )r   rl   Úrstater    r!   ÚtruthÚa_timedeltaÚb_timedeltas           r%   Útest_isin_timedeltazTestSetOps.test_isin_timedeltaŠ  s|   € ô —‘×&Ñ& qÓ)ˆØ�N‰N˜1˜c¨ˆNÓ+ˆØ�N‰N˜1˜c¨ˆNÓ+ˆÜ�Q˜“
ˆØ—h‘hÐ/Ó0ˆØ—h‘hÐ/Ó0ˆÜ˜5¤$ {°KÀdÔ"KÕLr'   c                 ó²   — t        j                  g d¢d¬«      }|}t        j                  t        «      5  t        ||d¬«       d d d «       y # 1 sw Y   y xY w)N©r   r   r   r¨   r\   rn   ry   )r   r   ÚpytestÚraisesÚ
ValueErrorr   ©r   r    r!   s      r%   Útest_isin_table_timedelta_failsz*TestSetOps.test_isin_table_timedelta_fails•  sE   € Ü�H‰H’YÐ&6Ô7ˆØˆä�]‰]œ:Ó&ñ 	%Ü��A˜GÕ$÷	%÷ 	%ñ 	%ús   µAÁAzdtype1,dtype2c                 ó&  — t        j                  |t         j                  «      }t        j                  g d¢|¬«      }|rt        j                  g d¢|¬«      }nt        j                  g d¢|¬«      }t        j                  g d¢«      }|dk(  xr( |t         j                  k(  xr |t         j
                  k(  }|r3t        j                  t        d¬«      5  t        |||¬	«       d
d
d
«       y
t        t        |||¬	«      |«       y
# 1 sw Y   y
xY w)z7Test that isin works as expected for mixed dtype input.)r   r   r   r   r\   )i€ÿÿÿr   é   )rº   r   éÿ   )TTFFrn   zexceed the maximum©Úmatchry   N)r   Ú
issubdtypeÚsignedintegerr   Úint16Úint8r´   rµ   ÚRuntimeErrorr   r   )	r   Údtype1Údtype2rl   Úis_dtype2_signedÚar1Úar2re   Úexpect_failures	            r%   Útest_isin_mixed_dtypez TestSetOps.test_isin_mixed_dtypeœ  s×   € ô Ÿ=™=¨´×1AÑ1AÓBÐÜ�h‰h’|¨6Ô2ˆáÜ—(‘(š>°Ô8‰Cä—(‘(š=°Ô7ˆCä—8‘8Ò6Ó7ˆà ™ò 6Ø”b—h‘hÑÒ4 6¬R¯W©WÑ#4ð 	ñ Ü—‘œ|Ð3GÔHñ *Ü�S˜# DÕ)÷*ð *ô œt C¨°4Ô8¸(ÕC÷*ð *ús   ÃDÄDÚdatal            l           lûÿÿÿ         lûÿÿÿ        c                 óä   — |d   }t        j                  |||¬«      }t        |ddg«       |j                  t         j                  «      }t        j                  |||¬«      }t        |ddg«       y)z>Test values outside intp range (negative ones if 32bit system)r   ry   FTN)r   r   r   r¬   Úint32)r   rl   rÊ   Úqueryr6   s        r%   Útest_isin_mixed_huge_valsz$TestSetOps.test_isin_mixed_huge_vals¾  sa   € ð �Q‘ˆÜ�g‰g�d˜E¨Ô-ˆÜ˜3 ¨ Ô.ð �{‰{œ2Ÿ8™8Ó$ˆÜ�g‰g�d˜E¨Ô-ˆÜ˜3 ¨ Õ/r'   c                 ó|  — t         j                  d   D ]¦  }t        j                  g d¢t        ¬«      }t        j                  g d¢|¬«      }t        j                  g d¢t        ¬«      }t	        t        |||¬«      |«       ||}}t        j                  g d¢t        ¬«      }t	        t        |||¬«      |«       Œ¨ y)	z4Test that isin works as expected for bool/int input.Ú
AllIntegerr…   r\   ©r   r   r   r   )FTTry   )TTTTN)r   Ú	typecodesr   r‡   r   r   )r   rl   r-   r    r!   re   s         r%   Útest_isin_mixed_booleanz"TestSetOps.test_isin_mixed_booleanÎ  s�   € ô —\‘\ ,Ñ/ò 	@ˆEÜ—‘Ò-´TÔ:ˆAÜ—‘š¨UÔ3ˆAÜ—x‘xÒ 3¼4Ô@ˆHÜœt A q¨tÔ4°hÔ?à�aˆqˆAÜ—x‘xÒ 8ÄÔEˆHÜœt A q¨tÔ4°hÕ?ñ	@r'   c                 ó¬   — d g}t        j                  dgdz  «      }t        j                  dg«      }t        j                  ||«      }t        ||«       y ©Nr   r>   Fr”   ©r   rÆ   rÇ   re   Úresults        r%   Útest_isin_first_array_is_objectz*TestSetOps.test_isin_first_array_is_objectÛ  sG   € ØˆfˆÜ�h‰h˜�s˜R‘xÓ ˆÜ—8‘8˜U˜GÓ$ˆÜ—‘˜˜cÓ"ˆÜ˜6 8Õ,r'   c                 óª   — d}t        j                  d gdz  «      }t        j                  dg«      }t        j                  ||«      }t        ||«       y rÕ   r”   rÖ   s        r%   Ú test_isin_second_array_is_objectz+TestSetOps.test_isin_second_array_is_objectâ  sE   € ØˆÜ�h‰h˜�v ‘{Ó#ˆÜ—8‘8˜U˜GÓ$ˆÜ—‘˜˜cÓ"ˆÜ˜6 8Õ,r'   c                 ó¬   — d g}t        j                  d gdz  «      }t        j                  dg«      }t        j                  ||«      }t        ||«       y )Nr>   Tr”   rÖ   s        r%   Ú test_isin_both_arrays_are_objectz+TestSetOps.test_isin_both_arrays_are_objecté  sG   € ØˆfˆÜ�h‰h˜�v ‘{Ó#ˆÜ—8‘8˜T˜FÓ#ˆÜ—‘˜˜cÓ"ˆÜ˜6 8Õ,r'   c                 ó   — t        j                  dt        fdt        fg«      }t        j                  dg|¬«      }t        j                  dgdz  |¬«      }t        j                  dg«      }t        j
                  ||«      }t        ||«       y )NÚfield1Úfield2)r   Nr\   r>   T)r   r-   ÚintÚobjectr   r   r   )r   ÚdtrÆ   rÇ   re   r×   s         r%   Ú+test_isin_both_arrays_have_structured_dtypez6TestSetOps.test_isin_both_arrays_have_structured_dtypeð  ss   € ô �X‰X˜¤#�¨´6Ð(:Ð;Ó<ˆÜ�h‰h˜	�{¨"Ô-ˆÜ�h‰h˜	�{ RÑ'¨rÔ2ˆÜ—8‘8˜T˜FÓ#ˆÜ—‘˜˜cÓ"ˆÜ˜6 8Õ,r'   c                 ó  — t        j                  ddgt        ¬«      }t        j                  ddgt        ¬«      }t        j                  ddg«      }t        j                  ||«      }t	        ||«       t        j                  ||d¬«      }t	        |t        j
                  |«      «       t        j                  g d¢t        ¬«      }|d d }t        j                  g d¢t        ¬«      }|d d }t        j                  ddg«      }t        j                  ||«      }t	        ||«       t        j                  ||d¬«      }t	        |t        j
                  |«      «       t        j                  g d¢t        ¬«      }|d d }t        j                  ddgt        ¬«      }t        j                  dd	g«      }t        j                  ||«      }t	        ||«       t        j                  ||d¬«      }t	        |t        j
                  |«      «       y )
N©r   r   r\   Tr¡   )rå   )r   r   r   rW   )rå   ©r   r   r   F)r   r   rá   r   r   rœ   rÖ   s        r%   Ú'test_isin_with_arrays_containing_tuplesz2TestSetOps.test_isin_with_arrays_containing_tuplesú  s‡  € Ü�h‰h˜˜a�y¬Ô/ˆÜ�h‰h˜˜a�y¬Ô/ˆÜ—8‘8˜T 4˜LÓ)ˆÜ—‘˜˜cÓ"ˆÜ˜6 8Ô,Ü—‘˜˜c¨$Ô/ˆÜ˜6¤2§9¡9¨XÓ#6Ô7ô �h‰hÒ(´Ô7ˆØ�#�2ˆhˆÜ�h‰hÒ(´Ô7ˆØ�#�2ˆhˆÜ—8‘8˜T 4˜LÓ)ˆÜ—‘˜˜cÓ"ˆÜ˜6 8Ô,Ü—‘˜˜c¨$Ô/ˆÜ˜6¤2§9¡9¨XÓ#6Ô7ä�h‰hÒ(´Ô7ˆØ�#�2ˆhˆÜ�h‰h˜˜a�y¬Ô/ˆÜ—8‘8˜T 5˜MÓ*ˆÜ—‘˜˜cÓ"ˆÜ˜6 8Ô,Ü—‘˜˜c¨$Ô/ˆÜ˜6¤2§9¡9¨XÓ#6Õ7r'   c                 óü  — t        j                  g d¢«      }t        j                  g d¢«      }t        t        t        ||d¬«       t        j                  g d¢t
        ¬«      }t        j                  g d¢t
        ¬«      }t        t        t        ||d¬«       t         j                  t         j                  fD ]Á  }t        j                  g d¢|¬«      }t        j                  d	t        j                  |«      j                  g|¬«      }t        t        t        ||d¬«       t        j                  ||d
¬«      }t        |dgdgdz  z   «       t        j                  ||d¬«      }t        |dgdgdz  z   «       ŒÃ y
)z&Test that isin raises expected errors.)r   r   r   r   r   )r   r   r:   r<   r>   Ú	quicksortry   )r   r    r   r!   r   r\   rn   )rW   r   r   r   r   rW   NTFr   rm   )r   r   r   r¶   r   rá   rÌ   r‰   ÚiinfoÚmaxrÂ   r   )r   rÆ   rÇ   Úobj_ar1Úobj_ar2r-   Úoverflow_ar2r×   s           r%   Útest_isin_errorszTestSetOps.test_isin_errors  s  € ô �h‰h’Ó'ˆÜ�h‰hÒ'Ó(ˆÜ”j¤$¨¨S°{ÕCô —(‘(Ò.´fÔ=ˆÜ—(‘(Ò.´fÔ=ˆÜ”j¤$¨°¸wÕGä—h‘h¤§¡Ð)ò 	=ˆEÜ—(‘(Ò+°5Ô9ˆCäŸ8™8 R¬¯©°%«×)<Ñ)<Ð$=ÀUÔKˆLô
 ÜÜ�c˜<¨gõô —W‘W˜S ,°TÔ:ˆFÜ˜v¨ v°°¸!±Ñ';Ô<Ü—W‘W˜S ,°VÔ<ˆFÜ˜v¨ v°°¸!±Ñ';Õ<ñ'	=r'   c                 ó¬  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        ||«      }t        ||«       t        j                  g d¢g d¢g«      }t        j                  g d¢«      }t        j                  g d¢«      }t        ||«      }t        ||«       t        g t        g g «      «       y )N)r   r   r   r   r   ©r   r   r   r   r   r   r   )r   r   r   r   r   r   r³   )r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )	r   r    r!   r"   r#   rz   r{   ÚezÚzs	            r%   Útest_union1dzTestSetOps.test_union1d=  sš   € Ü�H‰H’_Ó%ˆÜ�H‰HÒ*Ó+ˆä�X‰XÒ(Ó)ˆÜ�A�q‹MˆÜ˜1˜bÔ!ô �H‰H’i¢Ð+Ó,ˆÜ�H‰H’_Ó%ˆÜ�X‰XÒ(Ó)ˆÜ�A�q‹MˆÜ˜1˜bÔ!ä˜2œw r¨2›Õ/r'   c                 ó@  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  ddg«      }t        ||«      }t        ||«       t        j                  d«      }t        j                  d«      }t        j                  ddg«      }t        ||«      }t        ||«       t        g t        g g «      «       t        j                  dt         j
                  «      }t        t        |g «      j                  t         j
                  «       y )	N)r:   r   r   r   r   r   r   r   rñ   r:   r   é   é   r€   r3   )r   r   r   r   r,   Úuint32r   r-   rP   s        r%   Útest_setdiff1dzTestSetOps.test_setdiff1dO  sÈ   € Ü�H‰HÒ-Ó.ˆÜ�H‰HÒ*Ó+ˆä�X‰X�q˜!�fÓˆÜ�a˜‹OˆÜ˜1˜bÔ!ä�I‰I�b‹MˆÜ�I‰I�b‹MˆÜ�X‰X�r˜2�hÓˆÜ�a˜‹OˆÜ˜1˜bÔ!ä˜2œy¨¨RÓ0Ô1Ü�H‰H�RœŸ™Ó#ˆÜ”Y˜q "Ó%×+Ñ+¬R¯Y©YÕ7r'   c                 óÂ   — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  ddg«      }t        ||d¬«      }t        ||«       y )N)r   r   r   )r   r   r   r   r   Tr   )r   r   r   r   )r   r    r!   re   rj   s        r%   Útest_setdiff1d_uniquez TestSetOps.test_setdiff1d_uniquea  sH   € Ü�H‰H’YÓˆÜ�H‰H’YÓˆÜ—8‘8˜Q ˜FÓ#ˆÜ˜1˜a¨tÔ4ˆÜ�V˜XÕ&r'   c                 ó´   — t        j                  g d¢«      }t        j                  g d¢«      }t        t        ||«      t        j                  dg«      «       y )N)r    r!   r#   )r    r!   Úsr#   )r   r   r   r   r·   s      r%   Útest_setdiff1d_char_arrayz$TestSetOps.test_setdiff1d_char_arrayh  s8   € Ü�H‰H’_Ó%ˆÜ�H‰H’_Ó%ˆÜœ9 Q¨›?¬B¯H©H°c°U«OÕ<r'   c                 óØ   — t        j                  g d¢«      }t        j                  g d¢«      }t        ||«      }t        ||«      }t	        ||«      }t        ||«      }t        ||«       y )N)r   r   r   r   r<   )r@   r<   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r    r!   Úc1Úaux1Úaux2Úc2s          r%   Útest_manywayszTestSetOps.test_manywaysm  sW   € Ü�H‰H’_Ó%ˆÜ�H‰HÒ*Ó+ˆä�a˜‹^ˆÜ˜1˜aÓ ˆÜ�q˜!‹}ˆÜ�t˜TÓ"ˆÜ˜2˜rÕ"r'   )0r0   r1   r2   r&   r7   rJ   rQ   rS   r[   r´   ÚmarkÚparametrizer   r   r‰   Únanr�   rÁ   rg   rÀ   rŠ   rÌ   rk   r�   r–   r™   rž   r¢   r¤   r±   r¸   Úuint8Úuint16Úuint64rÉ   rÎ   rÓ   rØ   rÚ   rÜ   rã   rç   rï   rô   rù   rû   rþ   r  r3   r'   r%   r   r      sO  „ ò4ò$
+ò%'òN1ò0"òJð& ‡[�[×ÑÐ=ð 
ˆ�‰’) 2§8¡8Ô	,Ø	Ø	�‰Ø	ð	ð 
ˆ�‰’) 2§8¡8Ô	,Ø	ˆ�‰’) 2§:¡:Ô	.Ø	Ø	ð	ð 
ˆ�‰’, b§g¡gÔ	.Ø	�‰Ø	�‰Ø	ð	ð%@ó ñ.
&ó/ð.
&ð ‡[�[×ÑØ%à
ˆ"�(‰(’9 B§H¡HÔ
-Ø
Ø
Ø
ˆ"�(‰(’< r§x¡xÔ
0ð
2ð ˆ"�(‰(’9 B§J¡JÔ
/Ø
ˆ"�(‰(�A�3˜bŸj™jÔ
)Ø
Ø
ˆ"�(‰(’9 B§J¡JÔ
/ð
1ð ˆ"�(‰(’9 B§H¡HÔ
-Ø
Ø
Ø
ˆ"�(‰(’< r§x¡xÔ
0ð
2ð ˆ"�(‰(’9 B§H¡HÔ
-Ø
Ø
Ø
ˆ"�(‰(’=¨¯©Ô
1ð
3ð	
óñ*.ó+ð*.ð ‡[�[×Ñ˜VÒ%<Ó=ñ78ó >ð78ðr ‡[�[×Ñ˜VÒ%<Ó=ñ;<ó >ð;<òz"ð ‡[�[×Ñ˜VÒ%<Ó=ñGó >ðGò("ð  ‡[�[×Ñ˜VÒ%<Ó=ñ?ó >ð?ð ‡[�[×Ñ˜V d¨F ^Ó4ñMó 5ðMò%ð ‡[�[×ÑØà�W‰W�b—h‘hÐØ�X‰X�r—w‘wÐØ�X‰X�r—y‘yÐ!Ø�Y‰Y˜Ÿ™Ð!Ø�X‰X�r—x‘xÐ Ø�X‰X�r—x‘xÐ Ø�Y‰Y˜Ÿ™Ð!ð	
óð ‡[�[×Ñ˜VÒ%<Ó=ñDó >óðDð* ‡[�[×Ñ˜VØˆ�‰�%˜Ð#¨2¯9©9Ô5Øˆ�‰�&˜*Ð%¨R¯X©XÔ6ð&ó ð ‡[�[×Ñ˜VÒ%<Ó=ñ	0ó >ó	ð
	0ð ‡[�[×Ñ˜VÒ%<Ó=ñ
@ó >ð
@ò-ò-ò-ò-ò8òB =òD0ò$8ò$'ò=ó
#r'   r   c                   óÊ  — e Zd Zd„ Zd„ Zej                  j                  d«      d„ «       Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zej                  j!                  dg d¢«      d„ «       Zd„ Zd„ Zd„ Zej                  j!                  dddg«      d„ «       Zej                  j!                  dg d¢«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  j!                  dg d ¢g d ¢gg d!¢d"g«      ej                  j!                  d#d$d%g«      ej                  j!                  d&ej>                  ej@                  g«      d'„ «       «       «       Z!d(„ Z"d)„ Z#d*„ Z$ej                  j!                  d+ ejJ                  d,«       ejJ                  d-«      g«      ej                  j!                  d. e&d/d«       e&d0d«      dgd1 e&d1d0«      dgd2d3d4 e&d2d0«      d5gg«      d6„ «       «       Z'y7)8Ú
TestUniquec                 ó¾  — d}|j                  d|«      }t        |«      }	t        |	||«       t        |	«      t        |«      u sJ ‚|j                  d|«      }t        |ddd«      \  }	}
t        |	||«       t        |
||«       t        |	«      t        |«      u sJ ‚|j                  d|«      }t        |ddd«      \  }	}
t        |	||«       t        |
||«       t        |	«      t        |«      u sJ ‚|j                  d|«      }t        |ddd«      \  }	}
t        |	||«       t        |
||«       t        |	«      t        |«      u sJ ‚|j                  d|«      }t        |ddd«      \  }	}}t        |	||«       t        |||«       t        |||«       t        |	«      t        |«      u sJ ‚|j                  d	|«      }t        |ddd«      \  }	}}t        |	||«       t        |||«       t        |||«       t        |	«      t        |«      u sJ ‚|j                  d
|«      }t        |ddd«      \  }	}}t        |	||«       t        |||«       t        |||«       t        |	«      t        |«      u sJ ‚|j                  d|«      }t        |ddd«      \  }	}}}t        |	||«       t        |||«       t        |||«       t        |||«       t        |	«      t        |«      u sJ ‚y )Nzcheck {0} failed for type {1}ÚvaluesÚreturn_indexTFÚreturn_inverseÚreturn_countszreturn_index and return_inversezreturn_index and return_countsz return_inverse and return_countsz.return_index, return_inverse and return_counts)Úformatr	   r   Útype)r   r    r!   rC   rD   r#   râ   Úbase_msgrf   ÚvÚjÚj1Új2Új3s                 r%   Ú	check_allzTestUnique.check_allz  sÐ  € Ø2ˆà�o‰o˜h¨Ó+ˆÜ�1‹IˆÜ˜1˜a Ô%Ü�A‹wœ$˜q›'Ñ!Ð!Ð!à�o‰o˜n¨bÓ1ˆÜ�a˜˜u eÓ,‰ˆˆ1Ü˜1˜a Ô%Ü˜1˜b #Ô&Ü�A‹wœ$˜q›'Ñ!Ð!Ð!à�o‰oÐ.°Ó3ˆÜ�a˜  eÓ,‰ˆˆ1Ü˜1˜a Ô%Ü˜1˜b #Ô&Ü�A‹wœ$˜q›'Ñ!Ð!Ð!à�o‰o˜o¨rÓ2ˆÜ�a˜  tÓ,‰ˆˆ1Ü˜1˜a Ô%Ü˜1˜a Ô%Ü�A‹wœ$˜q›'Ñ!Ð!Ð!à�o‰oÐ?ÀÓDˆÜ˜1˜d D¨%Ó0‰	ˆˆ2ˆrÜ˜1˜a Ô%Ü˜2˜r 3Ô'Ü˜2˜r 3Ô'Ü�A‹wœ$˜q›'Ñ!Ð!Ð!à�o‰oÐ>ÀÓCˆÜ˜1˜d E¨4Ó0‰	ˆˆ2ˆrÜ˜1˜a Ô%Ü˜2˜r 3Ô'Ü˜2˜q #Ô&Ü�A‹wœ$˜q›'Ñ!Ð!Ð!à�o‰oÐ@À"ÓEˆÜ˜1˜e T¨4Ó0‰	ˆˆ2ˆrÜ˜1˜a Ô%Ü˜2˜r 3Ô'Ü˜2˜q #Ô&Ü�A‹wœ$˜q›'Ñ!Ð!Ð!à�o‰oð  4Ø68ó:ˆä˜q $¨¨dÓ3‰ˆˆ2ˆr�2Ü˜1˜a Ô%Ü˜2˜r 3Ô'Ü˜2˜r 3Ô'Ü˜2˜q #Ô&Ü�A‹wœ$˜q›'Ñ!Ð!Ñ!r'   c                 óÖ   — g }|j                  t        j                  d   «       |j                  t        j                  d   «       |j                  d«       |j                  d«       |S )NrÐ   ÚAllFloatúdatetime64[D]útimedelta64[D])Úextendr   rÒ   rd   )r   Útypess     r%   Ú	get_typeszTestUnique.get_types²  sO   € àˆØ�‰”R—\‘\ ,Ñ/Ô0Ø�‰”R—\‘\ *Ñ-Ô.Ø�‰�_Ô%Ø�‰Ð%Ô&Øˆr'   z+ignore:\w+ chararray \w+:DeprecationWarningc           	      óÐ  — g d¢dz  }g d¢}g d¢}g d¢dz  }t        j                  g d¢d«      }| j                  «       }|D ]D  }t        j                  ||«      }t        j                  ||«      }	| j	                  ||	||||«       ŒF d}t        j
                  t        |«      |«      }||d d  t        j
                  t        |«      |«      }	||	d d  | j	                  ||	||||«       ddg}t        j                  t        t        ||«      «      |«      }t        j                  t        t        ||«      «      |«      }	| j	                  ||	||||«       g d	¢}t        t        j                  t        j                  |«      «      d
dg«       g d¢}g d¢}
ddgddgddgg}t        |«      }t        ||
«       t        |d¬«      \  }}t        ||
«       t        ||«       t         j                  j                  d«      }d|d<   t        j                  |d¬«      \  }}t        |t        j                  d«      «       g }t        j                  |d¬«      d   }t        j                  |d¬«      d   }t        j                  |dd¬«      dd  \  }}t        |j                   t         j"                  «       t        |j                   t         j"                  «       t        |j                   t         j"                  «       t        |j                   t         j"                  «       dt         j$                  dt         j$                  g}ddt         j$                  g}g d¢}g d¢}g d¢}t        t        j                  t        j                  |«      «      t        j                  |«      «       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       dt         j$                  dt'        dt         j$                  «      t'        dt         j$                  «      g}ddt'        dt         j$                  «      g}g d ¢}g d!¢}g d"¢}t        t        j                  t        j                  |«      «      t        j                  |«      «       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       t        j(                  d#d$«      }t        j(                  d%«      |t        j(                  d&«      |g}t        j(                  d&«      t        j(                  d%«      |g}g d¢}g d¢}g d¢}t        t        j                  |«      |«       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       t        j*                  d#d'«      }t        j*                  dd$«      |t        j*                  dd(«      |g}t        j*                  dd(«      t        j*                  dd$«      |g}g d¢}g d¢}g d¢}t        t        j                  |«      |«       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       t         j$                  gd)z  }t         j$                  g}dg}g d*¢}d)g}t        t        j                  |«      |«       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       t        t        j                  |d¬«      ||f«       y )+N©r   r   r   r   r   r   r   r>   ©r   r   r   r   ©r   r   r   r   ©r   r   r   r   r   r   r   ©r   r   r   r   ÚO)Ú Úi)y      ð?        ù      ð?      ð¿r   r+  r]   )©r   r   r,  ræ   r5   r   r   r   T©r  r   r)  .)r  )r  r  g       @)r   r   r   )r   r   r   r   )r   r   r   )r  y       @      ð¿y      ð?      ð?ç        )r   r   r   )r   r   r   r   r   )r   r   r   ÚnatÚDz
2020-12-26z
2020-12-24rý   Úhr   rÑ   )r   Úmultiplyr!  r   r  ÚemptyÚlenÚlistÚzipr   rm   r	   ÚcharÚ	chararrayÚzerosr   r-   Úintpr  ÚcomplexÚ
datetime64Útimedelta64)r   r    r!   rC   rD   r#   r   râ   ÚaaÚbbÚunqÚinvÚa1Úa2Úa2_invÚa1_idxÚa3_idxÚa3_invÚuaÚua_idxÚua_invÚua_cntr/  Úall_nanss                           r%   Útest_unique_1dzTestUnique.test_unique_1d»  s  € ò " BÑ&ˆÚˆÚˆÚ" RÑ'ˆÜ�K‰Kš bÓ)ˆð —‘Ó ˆØò 	2ˆBÜ—‘˜!˜R“ˆBÜ—‘˜!˜R“ˆBØ�N‰N˜2˜r 2 r¨1¨bÕ1ð	2ð ˆÜ�X‰X”c˜!“f˜bÓ!ˆØˆ‰1ˆÜ�X‰X”c˜!“f˜bÓ!ˆØˆ‰1ˆØ�‰�r˜2˜r 2 q¨"Ô-ð ˜Ð#ˆÜ�X‰X”dœ3˜q !›9“o rÓ*ˆÜ�X‰X”dœ3˜q !›9“o rÓ*ˆØ�‰�r˜2˜r 2 q¨"Ô-ò $ˆÜÜ�G‰G”B—I‘I˜b“MÓ"Ø�rˆNô	
ò %ˆÚˆØ�1ˆv˜˜1�v  1˜vÐ&ˆÜ�A‹YˆÜ˜2˜sÔ#Ü˜A¨dÔ3‰
ˆˆFÜ˜2˜sÔ#Ü˜6 3Ô'ô �G‰G×Ñ˜aÓ ˆØˆˆ#‰Ü—Y‘Y˜q°Ô6‰
ˆˆFÜ˜6¤2§8¡8¨A£;Ô/ð ˆÜ—‘˜1¨4Ô0°Ñ3ˆÜ—‘˜1¨TÔ2°1Ñ5ˆÜŸ™ 1°4Ø26ô8Ø89¸ð<‰ˆ�ä�V—\‘\¤2§7¡7Ô+Ü�V—\‘\¤2§7¡7Ô+Ü�V—\‘\¤2§7¡7Ô+Ü�V—\‘\¤2§7¡7Ô+ð ”"—&‘&˜#œrŸv™vÐ&ˆØ�3œŸ™ÐˆÚˆÚˆÚˆä”R—W‘WœRŸY™Y q›\Ó*¬B¯G©G°B«KÔ8Ü”R—Y‘Y˜q¨tÔ4°r¸6°lÔCÜ”R—Y‘Y˜q°Ô6¸¸V¸ÔEÜ”R—Y‘Y˜q°Ô5¸¸F°|ÔDð ”r—v‘v˜x¬°´b·f±fÓ)=¼wÀsÌBÏFÉFÓ?SÐTˆØ˜¤'¨#¬r¯v©vÓ"6Ð7ˆÚˆÚ ˆÚˆä”R—W‘WœRŸY™Y q›\Ó*¬B¯G©G°B«KÔ8Ü”R—Y‘Y˜q¨tÔ4°r¸6°lÔCÜ”R—Y‘Y˜q°Ô6¸¸V¸ÔEÜ”R—Y‘Y˜q°Ô5¸¸F°|ÔDô �m‰m˜E 3Ó'ˆÜ�]‰]˜<Ó(¨#¬r¯}©}¸\Ó/JÈCÐPˆÜ�m‰m˜LÓ)¬2¯=©=¸Ó+FÈÐLˆÚˆÚˆÚˆÜ”R—Y‘Y˜q“\ 2Ô&Ü”R—Y‘Y˜q¨tÔ4°r¸6°lÔCÜ”R—Y‘Y˜q°Ô6¸¸V¸ÔEÜ”R—Y‘Y˜q°Ô5¸¸F°|ÔDô �n‰n˜U CÓ(ˆÜ�^‰^˜A˜sÓ# S¬"¯.©.¸¸CÓ*@À#ÐFˆÜ�n‰n˜Q Ó$¤b§n¡n°Q¸Ó&<¸cÐBˆÚˆÚˆÚˆÜ”R—Y‘Y˜q“\ 2Ô&Ü”R—Y‘Y˜q¨tÔ4°r¸6°lÔCÜ”R—Y‘Y˜q°Ô6¸¸V¸ÔEÜ”R—Y‘Y˜q°Ô5¸¸F°|ÔDô —F‘F�8˜a‘<ˆÜ�f‰fˆXˆØ�ˆÚˆØ�ˆÜ”R—Y‘Y˜xÓ(¨"Ô-Ü”R—Y‘Y˜x°dÔ;¸bÀ&¸\ÔJÜ”R—Y‘Y˜x¸Ô=ÀÀF¸|ÔLÜ”R—Y‘Y˜x°tÔ<¸rÀ6¸lÕKr'   c           	      ó°  — | j                  «       }|j                  d«       |D ]°  }t        j                  g |«      }t        j                  g |«      }t        j                  g t        j                  «      }t        j                  g t        j                  «      }t        j                  g t        j                  «      }| j                  ||||||«       Œ² y )NÚSU)r!  r  r   r   r‰   r  )r   r   râ   r    r!   rC   rD   r#   s           r%   Útest_unique_zero_sizedz!TestUnique.test_unique_zero_sized6  s›   € à—‘Ó ˆØ�‰�TÔØò 	0ˆBÜ—‘˜˜RÓ ˆAÜ—‘˜˜RÓ ˆAÜ—‘˜"œbŸh™hÓ'ˆBÜ—‘˜"œbŸh™hÓ'ˆBÜ—‘˜œRŸX™XÓ&ˆAØ�N‰N˜1˜a  R¨¨BÕ/ñ	0r'   c           	      ó”  —  G d„ dt         j                  «      }g d¢}g d¢dz  }t        j                  g d¢d«      }| j                  «       }|D ]w  }t        j                  g d¢dz  |¬«      }t        j                  g d	¢|¬«      } ||j
                  ||¬
«      }	 ||j
                  ||¬
«      }
| j                  |	|
||||«       Œy y )Nc                   ó   — e Zd Zy)ú1TestUnique.test_unique_subclass.<locals>.SubclassN)r0   r1   r2   r3   r'   r%   ÚSubclassrS  C  s   „ Ør'   rT  r%  r&  r>   r'  r#  r\   r$  )r-   Úbuffer)r   Úndarrayr2  r!  r   rB   r  )r   rT  rC   rD   r#   r   râ   r    r!   r>  r?  s              r%   Útest_unique_subclasszTestUnique.test_unique_subclassB  s°   € ô	”r—z‘zô 	ò ˆÚ" RÑ'ˆÜ�K‰Kš bÓ)ˆð —‘Ó ˆØò 	2ˆBÜ—‘Ò.°Ñ3¸2Ô>ˆAÜ—‘š¨RÔ0ˆAÙ˜!Ÿ'™'¨°AÔ6ˆBÙ˜!Ÿ'™'¨°AÔ6ˆBØ�N‰N˜2˜r 2 r¨1¨bÕ1ñ	2r'   c                 ót   — g d¢}g d¢}t        |d¬«      }t        t        |j                  «       «      |«       y )N)ÚappleÚbananarY  ÚcherryÚdaterZ  ÚfigÚgrape)rY  rZ  r[  r\  r]  r^  F©Úsorted©r	   r   r`  rt   ©r   ÚarrÚ
unq_sortedrB  s       r%   Ú"test_unique_byte_string_hash_basedz-TestUnique.test_unique_byte_string_hash_basedS  s/   € âVˆÚJˆ
ä�C Ô&ˆô 	œ6 "§)¡)£+Ó.°
Õ;r'   c                 ót   — g d¢}g d¢}t        |d¬«      }t        t        |j                  «       «      |«       y )N)	õ   cafÃ©Úcaferg  õ   naÃ¯veÚnaiveõ   rÃ©sumÃ©ri  Úresumerk  )rh  rg  rj  ri  rl  rk  Fr_  ra  rb  s       r%   Ú%test_unique_unicode_string_hash_basedz0TestUnique.test_unique_unicode_string_hash_based]  s4   € ò
ˆò Pˆ
ä�C Ô&ˆô 	œ6 "§)¡)£+Ó.°
Õ;r'   c                 óæ   — t        j                  g d¢t        d ¬«      ¬«      }g d¢}t        |dd¬«      }t	        d„ |D «       «      }t        |d	«       t        d
„ |D «       «      }t        ||«       y )N©!õ   straÃŸeNÚstrasserp  Nõ   niÃ±oÚninoõ   Ã©lÃ¨veÚeleverr  rt  Úbbbbbbbbbbbbbbbbbbbbõ<   ÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸNõ<   Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Úeeeeeeeeeeeeeeeeeeeerw  Únnnnnnnnnnnnnnnnnnnnnnnnnnnnnnõ(   Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Nry  r{  Á,  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbõ   ÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸÃŸNõ   Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Ã©Á,  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer}  Á�  nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnõX  Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Ã±Nr  r�  ©Ú	na_objectr\   ©rv  r|  ry  r  ru  rs  rr  rz  r€  rq  rp  rw  r}  rt  rx  r~  r{  r�  FT©r`  Ú	equal_nanc              3   ó$   K  — | ]  }|d u –— Œ
 y ­wrq   r3   ©Ú.0rz   s     r%   ú	<genexpr>zFTestUnique.test_unique_vstring_hash_based_equal_nan.<locals>.<genexpr>®  ó   è ø€ Ò/ q˜˜dœÑ/ùó   ‚r   c              3   ó&   K  — | ]	  }|€Œ|–— Œ y ­wrq   r3   rˆ  s     r%   rŠ  zFTestUnique.test_unique_vstring_hash_based_equal_nan.<locals>.<genexpr>±  ó   è ø€ Ò; !¨Q©]œAÑ;ùó   ‚Š©r   r   r
   r	   Úsumr   r`  r   ©r   r    Úunq_sorted_wo_nonerB  Ú
count_noneÚ
a1_wo_nones         r%   Ú(test_unique_vstring_hash_based_equal_nanz3TestUnique.test_unique_vstring_hash_based_equal_nanj  sq   € ä�H‰Hò %ôL ¨Ô-ôM'
ˆòP
Ðô* �A˜e¨tÔ4ˆô
 Ñ/¨BÔ/Ó/ˆ
Ü�Z Ô#äÑ; rÔ;Ó;ˆ
Ü˜:Ð'9Õ:r'   c                 óæ   — t        j                  g d¢t        d ¬«      ¬«      }g d¢}t        |dd¬«      }t	        d„ |D «       «      }t        |d«       t        d	„ |D «       «      }t        ||«       y )
Nro  r‚  r\   r„  Fr…  c              3   ó$   K  — | ]  }|d u –— Œ
 y ­wrq   r3   rˆ  s     r%   rŠ  zJTestUnique.test_unique_vstring_hash_based_not_equal_nan.<locals>.<genexpr>ø  r‹  rŒ  r:   c              3   ó&   K  — | ]	  }|€Œ|–— Œ y ­wrq   r3   rˆ  s     r%   rŠ  zJTestUnique.test_unique_vstring_hash_based_not_equal_nan.<locals>.<genexpr>û  rŽ  r�  r�  r’  s         r%   Ú,test_unique_vstring_hash_based_not_equal_nanz7TestUnique.test_unique_vstring_hash_based_not_equal_nan´  sq   € ä�H‰Hò %ôL ¨Ô-ôM'
ˆòP
Ðô* �A˜e¨uÔ5ˆô
 Ñ/¨BÔ/Ó/ˆ
Ü�Z Ô#äÑ; rÔ;Ó;ˆ
Ü˜:Ð'9Õ:r'   c                 ó~   — t        j                  g d¢dz  t        d ¬«      ¬«      }t        t        t
        |d¬«       y )N)
rY  rZ  rY  Nr[  r\  rZ  r]  Nr^  r   r‚  r\   F©r†  )r   r   r
   r   r¶   r	   )r   r    s     r%   Útest_unique_vstring_errorsz%TestUnique.test_unique_vstring_errorsþ  s9   € Ü�H‰Hòð ñô ¨Ô-ô
ˆô 	”j¤&¨!°uÖ=r'   Úarg)r  r  r  c                 óâ   — t        j                  g d¢«      }t        j                  ddgfddi|di¤Ž}t        j                  ddgfddi|di¤Ž}t        ||«      D ]  \  }}t	        ||«       Œ y)zðThese currently never use the hash-based solution.  However,
        it seems easier to just allow it.

        When the hash-based solution is added, this test should fail and be
        replaced with something more comprehensive.
        )
r   r   r   r   r   r<   éÇ   r   r   r   r   r`  FTN)r   r   r	   r6  r   )r   rž  r    Úres_not_sortedÚ
res_sortedrc  re   s          r%   Útest_unsupported_hash_basedz&TestUnique.test_unsupported_hash_based  sw   € ô �H‰HÒ5Ó6ˆäŸ™ A q 6ÑG°%ÐG¸CÀ¸;ÑGˆÜ—Y‘Y  1˜vÑB¨dÐB°s¸D°kÑBˆ
ä  °Ó<ò 	.‰MˆC�Ü˜s HÕ-ñ	.r'   c                 ó<  — t        t        | j                  t        «       t        t        | j                  dt        fdt        fg«       t        t
        t        t        j                  d«      d¬«       t        t
        t        t        j                  d«      d¬«       y )Nr    r!   r>   r   ©Úaxiséþÿÿÿ)	r   rb   Ú_run_axis_testsrá   rà   r   r	   r   r,   )r   s    r%   Útest_unique_axis_errorsz"TestUnique.test_unique_axis_errors  sd   € Ü”i ×!5Ñ!5´vÔ>Ü”i ×!5Ñ!5ØœS�z C¬ =Ð1ô	3ô 	”i¤¬¯©°2«¸QÕ?Ü”i¤¬¯©°2«¸RÖ@r'   c                 óÎ   — d}g d¢g d¢g}t        j                  |«      }t        t        |d¬«      t        |d¬«      |«       t        t        |d¬«      t        |d¬«      |«       y )NzUnique failed on list of lists©r   r   r   r   r¥  r   )r   rr   r   r	   )r   rf   ÚinpÚinp_arrs       r%   Útest_unique_axis_listz TestUnique.test_unique_axis_list   sR   € Ø.ˆÚš)Ð$ˆÜ—*‘*˜S“/ˆÜœ6 #¨AÔ.´°wÀQÔ0GÈÔMÜœ6 #¨AÔ.´°wÀQÔ0GÈÕMr'   c                 ó,  — g }|j                  t        j                  d   «       |j                  t        j                  d   «       |j                  d«       |j                  d«       |j                  dt        fdt        fg«       |j                  dt        fdt
        fg«       |D ]  }| j                  |«       Œ d}t        j                  dt        j                  ¬	«      j                  d
d«      j                  t        «      }t        j                  ddgddggt        ¬	«      }t        t        |d¬«      ||«       d}t        j                  ddgddgddgddgg«      }t        j                  ddgg«      }t        t        |d¬«      ||«       y )NrÐ   r  r  r  r    r!   z&Non-bitwise-equal booleans test failedr>   r\   rW   r   FTr   r¥  z"Negative zero equality test failedç       €r.  )r  r   rÒ   rd   rà   Úfloatr¨  r,   r  rˆ   Úviewr‡   r   r   r	   )r   r   r-   rf   rÊ   r×   s         r%   Útest_unique_axiszTestUnique.test_unique_axis'  sO  € ØˆØ�‰”R—\‘\ ,Ñ/Ô0Ø�‰”R—\‘\ *Ñ-Ô.Ø�‰�_Ô%Ø�‰Ð%Ô&Ø�‰�sœC�j 3¬ *Ð-Ô.Ø�‰�sœC�j 3¬ ,Ð/Ô0àò 	(ˆEØ× Ñ  Õ'ð	(ð 7ˆÜ�y‰y˜¤2§8¡8Ô,×4Ñ4°R¸Ó;×@Ñ@ÄÓFˆÜ—‘˜E 4˜=¨4°¨,Ð7¼tÔDˆÜœ6 $¨QÔ/°¸Ô=à2ˆÜ�x‰x˜$ ˜ s¨D k°D¸#°;ÀÀdÀÐLÓMˆÜ—‘˜D #˜;˜-Ó(ˆÜœ6 $¨QÔ/°¸Õ=r'   r¦  r   rW   c                 óh   — t        j                  g d¢«      }t        ||¬«      }t        |g d¢«       y )N)r   r   r   r   r   r   r   r   r¥  r9   ©r   r   r	   r   )r   r¦  rz   Úuniqs       r%   Útest_unique_1d_with_axisz#TestUnique.test_unique_1d_with_axis=  s'   € ä�H‰HÒ-Ó.ˆÜ�a˜dÔ#ˆÜ˜4¢Õ.r'   )Nr   rW   c                 óô   — t        j                  g d¢g d¢g d¢g d¢g«      }t        |d|¬«      \  }}t        |j                  |€|j                  nd«       t        |t        j                  |||¬«      «       y )N)r   r   r   )r   r   r   T)r  r¦  r   r¥  )r   r   r	   r   Úndimr   Útake)r   r¦  rz   r¶  rA  s        r%   Útest_unique_inverse_with_axisz(TestUnique.test_unique_inverse_with_axisC  sZ   € ä�H‰H’i¢ªI²yÐAÓBˆÜ˜1¨T¸Ô=‰	ˆˆcÜ�S—X‘X¨¨˜qŸvšv¸1Ô=Ü˜1œbŸg™g d¨C°dÔ;Õ<r'   c                 ó  — t        j                  dt         j                  ¬«      }t        |dddd¬«      \  }}}}t	        |j
                  |j
                  «       t        |t        j                  d¬«      «       t        |t        j                  dg«      «       t        |t        j                  ddg«      «       t        |t        j                  dg«      «       t        |d	ddd¬«      \  }}}}t	        |j
                  |j
                  «       t        |t        j                  d¬«      «       t        |t        j                  g «      «       t        |t        j                  g «      «       t        |t        j                  g «      «       d
}t        j                  |¬«      }t        t        |«      «      D ]K  }t        |«      }	||   dk(  rd|	|<   nd	|	|<   t        t        ||¬«      t        j                  |	¬«      «       ŒM y )N)r   r   )rB   r-   r   T©r¦  r  r  r  )r   r   )rB   r   r   )r   r   r   r   r   r   r   r¥  )r   r3  rÁ   r	   r   r-   r   r   Úranger4  r5  )
r   Úsingle_zeror¶  ÚidxrA  ÚcntrB   Úmultiple_zerosr¦  Úexpected_shapes
             r%   Útest_unique_axis_zerosz!TestUnique.test_unique_axis_zerosJ  s�  € ä—h‘h V´2·7±7Ô;ˆÜ$ [°qÀtØ48ÈôNÑˆˆc�3˜ô 	�T—Z‘Z ×!2Ñ!2Ô3Ü˜4¤§¡°Ô!7Ô8Ü˜3¤§¡¨!¨£Ô.Ü˜3¤§¡¨!¨Q¨Ó 0Ô1Ü˜3¤§¡¨!¨£Ô.ô % [°qÀtØ48ÈôNÑˆˆc�3˜ô 	�T—Z‘Z ×!2Ñ!2Ô3Ü˜4¤§¡°Ô!7Ô8Ü˜3¤§¡¨£Ô-Ü˜3¤§¡¨£Ô-Ü˜3¤§¡¨£Ô-ð &ˆÜŸ™¨Ô.ˆÜœ#˜e›*Ó%ò 	?ˆDÜ! %›[ˆNØ�T‰{˜aÒØ'(�˜tÒ$à'(�˜tÑ$äœv n¸4Ô@Ü!Ÿx™x¨nÔ=õ?ñ	?r'   c                 ó`  — t        j                  g d¢d¬«      }t         j                  j                  |d«      }t        j                  |«      }t        j                  |dd¬«      \  }}}d}t        |j                  |j                  |«       t        |j                  |j                  |«       y )N)é@   r   r   r   r   é?   rÇ  r   r   r   r   r   r   rÇ  r   r  r\   r   T)r  r  z6Unique returned different results when asked for index)r   r   ÚmaÚmasked_equalr	   r   rÊ   Úmask)r   rz   r{   r  Úv2r*  r#   rf   s           r%   Útest_unique_maskedzTestUnique.test_unique_maskedn  s~   € ä�H‰HÒFØ"ô$ˆä�E‰E×Ñ˜q !Ó$ˆä�I‰I�a‹LˆÜ—9‘9˜Q¨TÀÔF‰ˆˆAˆqàFˆÜ˜1Ÿ6™6 2§7¡7¨CÔ0Ü˜1Ÿ6™6 2§7¡7¨CÕ0r'   c                 ó˜   — d}dD ]C  }t        j                  dgdgg|«      }t        j                  |d¬«      }t        ||||z  «       ŒE y )Nz*sort order incorrect for integer type '%s'ÚbhilqrW   r   r¥  rµ  )r   Úfmtrâ   r    r!   s        r%   Ú test_unique_sort_order_with_axisz+TestUnique.test_unique_sort_order_with_axis{  sP   € ð ;ˆØò 	/ˆBÜ—‘˜2˜$  ˜ bÓ)ˆAÜ—	‘	˜! !Ô$ˆAÜ˜q ! S¨2¡XÕ.ñ	/r'   c                 óŠ  — t        j                  g d¢g d¢g d¢g d¢g«      j                  |«      }d}t        j                  ddg«      }t        t	        |«      |j                  |«      |«       d}t        j                  g d¢g d¢g«      }t        t	        |d¬«      |j                  |«      |«       d}t        j                  g d	¢g d
¢g d	¢g d
¢g«      }t        t	        |d¬«      |j                  |«      |«       d}t        j                  ddgddggddgddggg«      j                  |«      }t        j
                  |ddgd¬«      }t        t	        |d¬«      ||«       t	        |dddd¬«      \  }}}}	d}t        ||   ||«       d}t        t        j
                  ||d¬«      |«       d}t        |	t        j                  ddg«      |«       t	        |dddd¬«      \  }}}}	d}t        |d d …|f   |«       d}t        t        j
                  ||d¬«      |«       d}t        |	t        j                  g d¢«      |«       y )N)r   r   r   r   )r   r   r   r   z&Unique with 1d array and axis=0 failedr   r   z&Unique with 2d array and axis=0 failedr¥  z&Unique with 2d array and axis=1 failed)r   r   r   r«  z&Unique with 3d array and axis=2 failedr   Tr½  z-Unique's return_index=True failed with axis=0z/Unique's return_inverse=True failed with axis=0z.Unique's return_counts=True failed with axis=0z-Unique's return_index=True failed with axis=1z/Unique's return_inverse=True failed with axis=1z.Unique's return_counts=True failed with axis=1)r   r   r   )r   r   r¬   r   r	   rº  )
r   r-   rÊ   rf   r×   Údata3dr¶  rÀ  rA  rÁ  s
             r%   r¨  zTestUnique._run_axis_tests„  s  € Ü�x‰xšÚ%Ú%Ú%ð'ó (÷ )/©¨u«ð 	ð
 7ˆÜ—‘˜1˜a˜&Ó!ˆÜœ6 $›<¨¯©°uÓ)=¸sÔCà6ˆÜ—‘š<ªÐ6Ó7ˆÜœ6 $¨QÔ/°·±¸uÓ1EÀsÔKà6ˆÜ—‘š9¢i²ºIÐFÓGˆÜœ6 $¨QÔ/°·±¸uÓ1EÀsÔKà6ˆÜ—‘˜Q ˜FØ ˜Fð$à ˜FØ ˜Fð$ð%ó &÷ '-¡f¨U£mð 	ô —‘˜ ! Q ¨aÔ0ˆÜœ6 &¨qÔ1°6¸3Ô?ä$ T°ÀØ48ÈôNÑˆˆc�3˜à=ˆÜ˜4 ™9 d¨CÔ0Ø?ˆÜœ2Ÿ7™7 4¨°1Ô5°tÔ<Ø>ˆÜ˜3¤§¡¨!¨Q¨Ó 0°#Ô6ä$ T°ÀØ48ÈôNÑˆˆc�3˜à=ˆÜ˜4¢ 3 ™<¨Ô.Ø?ˆÜœ2Ÿ7™7 4¨°1Ô5°tÔ<Ø>ˆÜ˜3¤§¡ªÓ 3°SÕ9r'   c           	      óÜ  — t        j                  ddt         j                  t         j                  t         j                  g«      }t        j                  |«      }t        j                  |d¬«      }t	        |t        j                  dt         j                  g«      «       t	        |t        j                  dt         j                  t         j                  t         j                  g«      «       y )Nr   Frœ  ©r   r   r  r	   r   )r   r    r@  Únot_unqs       r%   Útest_unique_nanequalsz TestUnique.test_unique_nanequals°  s‡   € ä�H‰H�a˜œBŸF™F¤B§F¡F¬B¯F©FÐ3Ó4ˆÜ�i‰i˜‹lˆÜ—)‘)˜A¨Ô/ˆÜ˜3¤§¡¨!¬R¯V©V¨Ó 5Ô6Ü˜7¤B§H¡H¨a´·±¼¿¹ÄÇÁÐ-HÓ$IÕJr'   c                 ó@  — t        j                  t         j                  dddt         j                   ddddt         j                  dddt         j                   dg«      }t        j                  |«      t        j                  |d¬«      ft        j
                  |«      t        j                  |d	d¬
«      ft        j                  |«      t        j                  |d	d¬«      ft        j                  |«      t        j                  |d	d	d	d¬«      ffD ]Š  \  }}t        |«      t        |«      k(  sJ ‚t        |t        «      s|f}t        |t        «      s|f}t        ||«      D ]7  \  }}t        t        j                  |«      t        j                  |«      «       Œ9 ŒŒ y )Nr]   r.  g      @r°  r^   g      @Frœ  T)r  r†  )r  r†  )r  r  r  r†  )r   r   r  Úunique_valuesr	   Úunique_countsÚunique_inverseÚ
unique_allr4  Ú
isinstanceÚtupler6  r   rm   )r   rc  Úres_unique_array_apiÚ
res_uniquerj   re   s         r%   Útest_unique_array_api_functionsz*TestUnique.test_unique_array_api_functions¸  sv  € Ü�h‰hä—‘˜˜S #¬¯© wØ�c˜3 ¤R§V¡VØ�T˜3¤§¡ ¨ðó
ˆô × Ñ  Ó%Ü—	‘	˜#¨Ô/ðô
 × Ñ  Ó%Ü—	‘	˜#¨T¸UÔCðô
 ×!Ñ! #Ó&Ü—	‘	˜#¨d¸eÔDðô
 —‘˜cÓ"Ü—	‘	ØØ!%Ø#'Ø"&Ø#ôð	ð1
ò  	AÑ,Ð  *ô0 Ð+Ó,´°J³Ò?Ð?Ð?ÜÐ2´EÔ:Ø(<Ð'>Ð$Ü˜j¬%Ô0Ø(˜]�
ä$'Ð(<¸jÓ$Iò AÑ �˜äœRŸW™W V›_¬b¯g©g°hÓ.?Õ@ñAñ= 	Ar'   c                 óœ  — t        j                  g d¢g d¢g«      }t        j                  |d¬«      \  }}|j                  |j                  «      }t         j
                  t         j                  fD ]Y  } ||«      }t        ||j                  «       t        ||j                  «       t        ||j                  |j                     «       Œ[ y )Nr5   )r   r   r   Tr-  )
r   r   r	   rˆ   rB   rÚ  rÛ  r   r  Úinverse_indices)r   rc  Úexpected_valuesÚexpected_inverseÚfuncr×   s         r%   Útest_unique_inverse_shapez$TestUnique.test_unique_inverse_shapeã  s¡   € ä�h‰hš	¢9Ð-Ó.ˆÜ,.¯I©I°cÈ$Ô,OÑ)ˆÐ)Ø+×3Ñ3°C·I±IÓ>ÐÜ×%Ñ%¤r§}¡}Ð4ò 	KˆDÙ˜#“YˆFÜ˜°·±Ô>ÜÐ/°×1GÑ1GÔHÜ˜s F§M¡M°&×2HÑ2HÑ$IÕJñ		Kr'   rÊ   )r   r   r   )r   r   r   r   Ú	transposeFTr-   c                 óþ   — t        j                  |«      j                  |«      }|r|j                  }t        j                  |«      }t        j                  t        j
                  |«      «      }t        ||d¬«       y )NT)Ústrict)r   Úmatrixr¬   ÚTr	   rr   r   )r   rÊ   rç  r-   ÚmatÚure   s          r%   Útest_unique_with_matrixz"TestUnique.test_unique_with_matrixî  sW   € ô �i‰i˜‹o×$Ñ$ UÓ+ˆÙØ—%‘%ˆCÜ�I‰I�c‹NˆÜ—9‘9œRŸZ™Z¨›_Ó-ˆÜ˜1˜h¨tÖ4r'   c                 ó   — t        j                  t         j                  ddt         j                  g«      }t        j                  dt         j                  g«      }t        j                  |dd¬«      }t	        ||«       y )Nr   r.  T©r¦  r†  rÔ  ©r   Úarr1dre   r×   s       r%   Ú'test_unique_axis0_equal_nan_on_1d_arrayz2TestUnique.test_unique_axis0_equal_nan_on_1d_arrayÿ  sS   € ä—‘œ"Ÿ&™& ! Q¬¯©Ð/Ó0ˆÜ—8‘8˜R¤§¡˜LÓ)ˆÜ—‘˜5 q°DÔ9ˆÜ˜6 8Õ,r'   c                 ó   — t        j                  t         j                  ddt         j                  g«      }t        j                  dt         j                  g«      }t        j                  |dd¬«      }t	        ||«       y )Nr   r.  rW   Trð  rÔ  rñ  s       r%   Ú&test_unique_axis_minus1_eq_on_1d_arrayz1TestUnique.test_unique_axis_minus1_eq_on_1d_array  sS   € Ü—‘œ"Ÿ&™& ! Q¬¯©Ð/Ó0ˆÜ—8‘8˜R¤§¡˜LÓ)ˆÜ—‘˜5 r°TÔ:ˆÜ˜6 8Õ,r'   c                 óþ   — t        j                  t         j                  ddt         j                  g«      }t        j                  t
        d¬«      5  t        j                  |dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   zinteger argument expectedr¼   r.  Frð  )r   r   r  r´   rµ   rb   r	   )r   rò  s     r%   Ú'test_unique_axis_float_raises_typeerrorz2TestUnique.test_unique_axis_float_raises_typeerror  sU   € Ü—‘œ"Ÿ&™& ! Q¬¯©Ð/Ó0ˆÜ�]‰]œ9Ð,GÔHñ 	8Ü�I‰I�e #°Õ7÷	8÷ 	8ñ 	8ús   ÁA3Á3A<râ   ÚFr0  r  r.  r°  i8ÿÿÿiçÿÿÿr   y       €      Ày              @c                 ó”   — t        j                  ||¬«      }t        j                  |«      }t        |«      t        |«      dz
  k(  sJ ‚y )Nr\   r   )r   r   r	   r4  )r   râ   r  ró   rí  s        r%   Ú test_unique_complex_signed_zerosz+TestUnique.test_unique_complex_signed_zeros  s;   € ô
 �H‰H�V 2Ô&ˆÜ�I‰I�a‹LˆÜ�1‹vœ˜V› q™Ò(Ð(Ñ(r'   N)(r0   r1   r2   r  r!  r´   r  ÚfilterwarningsrM  rP  rW  re  rm  r–  rš  r�  r  r£  r©  r®  r³  r·  r»  rÄ  rÌ  rÐ  r¨  rÖ  rà  ræ  r   rÌ   rŠ   rî  ró  rõ  r÷  r-   r;  rú  r3   r'   r%   r  r  x  s:  „ ò6"òpð ‡[�[×ÑÐ NÓOñxLó PðxLòt
0ò2ò"<ò<òH;òTH;òT>ð ‡[�[×Ñ˜UÒ$WÓXñ.ó Yð.òAòNò>ð, ‡[�[×Ñ˜V a¨ WÓ-ñ/ó .ð/ð
 ‡[�[×Ñ˜V¢]Ó3ñ=ó 4ð=ò"?òH1ò/ò*:òXKò)AòV	Kð ‡[�[×ÑØÚ
Ú
ð
â	Ø	
ð	óð ‡[�[×Ñ˜[¨5°$¨-Ó8Ø‡[�[×Ñ˜W r§x¡x°·±Ð&<Ó=ñ5ó >ó 9óð5ò-ò-ò8ð
 ‡[�[×Ñ˜T H B§H¡H¨S£M°8°2·8±8¸C³=Ð#AÓBØ‡[�[×Ñ˜X©°°bÓ)9¹7À4ÈÓ;LÈaÐ(PØ)-©w°t¸TÓ/BÀBÐ(GØ),¨a°±g¸cÀ4Ó6HÈ"Ð(Mð(Oó Pñ)óPó Cñ)r'   r  )Ú__doc__r´   Únumpyr   r   r   r   r   r   r   r	   Únumpy.dtypesr
   Únumpy.exceptionsr   Únumpy.testingr   r   r   r   r   r  r3   r'   r%   ú<module>r     sD   ðñó ã ß R× RÑ RÝ $Ý &÷ó ÷c	#ñ c	#÷L`
)ò `
)r'   