+
    ei  c                   s    R t ^ RIt^ RIt^ RIHtHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHtHtHtHt  ! R R4      t ! R R4      tR# )	z-Test functions for 1D array set operations.

N)ediff1dintersect1disin	setdiff1dsetxor1dunion1dunique)	AxisError)assert_array_equalassert_equalassert_raisesassert_raises_regexc                   s&	  a  ] tR t^t o R tR tR tR tR tR t	]
P                  P                  R]P                  ! . R*O]P                  R7      R	]P                   R
3]P                  ! . R*O]P                  R7      ]P                  ! . R+O]P"                  R7      R	R3]P                  ! . R,O]P$                  R7      ]P                   ]P                   R3.4      R 4       t]
P                  P                  R]P                  ! . R*O]P(                  R7      R-R.]P                  ! . R/O]P(                  R7      3]P                  ! . R*O]P"                  R7      ]P                  ! ^.]P*                  R7      R	]P                  ! . R0O]P"                  R7      3]P                  ! . R*O]P,                  R7      ^ ^ ]P                  ! . R1O]P,                  R7      3]P                  ! . R*O]P                  R7      ^R2]P                  ! . R3O]P                  R7      3.4      R 4       t]
P                  P                  R. R4O4      R 4       t]
P                  P                  R. R4O4      R 4       tR t]
P                  P                  R. R4O4      R 4       tR t]
P                  P                  R. R4O4      R 4       t]
P                  P                  RR	R.4      R 4       tR t]
P                  P                  R]P$                  ]P(                  3]P(                  ]P$                  3]P@                  ]PB                  3]PB                  ]P@                  3]P@                  ]P(                  3]P(                  ]P@                  3]PD                  ]P                  3.4      ]
P                  P                  R. R4O4      R 4       4       t#]
P                  P                  R]P                  ! R5R6.]PD                  R7      ]P                  ! R7R8.]P                  R7      .4      ]
P                  P                  R. R4O4      R 4       4       t$]
P                  P                  R. R4O4      R 4       t%R t&R t'R  t(R! t)R" t*R# t+R$ t,R% t-R& t.R' t/R( t0R)t1V t2R	# )9
TestSetOpsc                s   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\        WRR7      p\        WC4       \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\        W4      p\        WE4       \        . \        . . 4      4       R# )	   Tassume_uniqueNr            r         r   r   )r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   r   )nparrayr   r   )selfabeccZed   &     G/usr/lib64/python3.14/site-packages/numpy/lib/tests/test_arraysetops.pytest_intersect1dZTestSetOps.test_intersect1d   s    HH\"HH_%XXi D11! HH_%HH*+XXi 1!2{2r23    c                s     ! R  R4      pV! 4       p\        W"4      p\        W24       \        . RO. RO4      p\        V. RO4       R# )c                   s*   a  ] tR t^'t o RR ltRtV tR# )4TestSetOps.test_intersect1d_array_like.<locals>.TestNc                s.    \         P                  ! ^4      # )r   )r   arange)r   dtypeZcopys   &&&r   	__array__Z>TestSetOps.test_intersect1d_array_like.<locals>.Test.__array__(   s    yy|#r!    )NN)__name__
__module____qualname____firstlineno__r%   __static_attributes____classdictcell__Z__classdict__   @r   Testr"   '   s     $ $r!   r/   Nr   r   r   )r   r   )r   r/   r   res   &   r   test_intersect1d_array_likeZ&TestSetOps.test_intersect1d_array_like%   s=    	$ 	$ F!3")Y/3	*r!   c                s6   \         P                  ! . RO4      p\         P                  ! . RO4      p\        WRRR7      w  r4p\         P                  ! . RO4      p\        W64       \        W,          V4       \        W%,          V4       \         P                  ! . RO4      p\         P                  ! . R	O4      p\        WRR7      w  r4p\         P                  ! . RO4      p\        W74       \        W,          V4       \        W%,          V4       \         P                  ! . R
O. RO.4      p\         P                  ! . RO. RO.4      p\        WRRR7      w  r4p\         P                  ! WAP
                  4      p\         P                  ! WRP
                  4      p	\         P                  ! . RO4      p
\        WV,          4       \        WV	,          4       \         P                  ! . RO. RO.4      p\         P                  ! . RO. RO.4      p\        WRR7      w  r4p\         P                  ! WAP
                  4      p\         P                  ! WRP
                  4      p	\         P                  ! . RO4      p
\        WV,          4       \        WV	,          4       R# )r   T)r   return_indices)r4   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   r6   )r   r7   r   i   )r   r   r   r6   )
      r7   	   )r   r6   r   r7   )r   r   r   r6   r6   )r   r   r7   r   r   )r   r   r   r   )r8   r9   r7   r   )r   r   r7   )r   r   r   r   Zunravel_indexshape)r   r   r   r   i1i2ZeeZefZui1Zui2Zea   &          r   test_intersect1d_indicesZ#TestSetOps.test_intersect1d_indices1   s   HH\"HH\"DN	rXXi 1!15"%15"% HH*+HH-.T:	rXXl#1!15"%15"% HHlM23HHlN34DN	rr77+r77+XXl#2v&2v& HHo78HHlN34T:	rr77+r77+XXi 2v&2v&r!   c                sf   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\        W4      p\        WC4       \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\        W4      p\        WC4       \         P                  ! . RO4      p\         P                  ! . R	O4      p\         P                  ! . RO4      p\        W4      p\        WC4       \        . \        . . 4      4       R# )
r   Nr   r   )r   r   r   r0   )r6   r   r   r   r   r   r   r   r6   r   r7   r   r   r6   r   r   r7   r   r   r   r   r   r   r   r   r      &    r   test_setxor1dZTestSetOps.test_setxor1dX   s    HH\"HH_%XXi QN1!HHYHHYXX()QN1!HH\"HH\"XX()QN1!2xB/0r!   c                s   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\        WRR7      p\        WC4       \         P                  ! ^.^.^.^..4      p\         P                  ! ^^.^^..4      p\         P                  ! . RO4      p\        WRR7      p\        WC4       R# )r   Tr   NrA   rB   r@   rC   rD   rE   r   test_setxor1d_uniqueZTestSetOps.test_setxor1d_uniquep   s    HH\"HH\"XX()Q.1!HHqcA3aS)*HHq!fq!f%&XX()Q.1!r!   c           	     s   \         P                  ! . 4      p\         P                  ! ^.4      p\         P                  ! ^^.4      p\        . \        V4      4       \        ^ .\        V^ R7      4       \        ^ .\        V^ R7      4       \        R^ .\        VR^ R7      4       \        . \        V4      4       \        ^.\        V4      4       \        . RO\        V^^	R7      4       \        . RO\        V^^.^^.R7      4       \        ^^	.\        V^	R7      4       \        . RO\        V^^.R7      4       \        ^^.\        V^R7      4       \        . R	O\        V^^.R7      4       R# )
r   )to_begin)to_end)rH   rI   N)r   r   r:   )r   r6   r   r   r7   )r   r   r7   )r   r6   r   )r   r   r   r    )r   Z	zero_elemZone_elemZtwo_elemr2   r   test_ediff1dZTestSetOps.test_ediff1d   s"   HHRL	88QC=88QF#2wy12A3	A >?A3	! <=B7GI1$MN2wx01A3 129gh1&MN?"8q!faVL	NAq678A#>?9gh1v&FGAq678a#@A9gh!Q&HIr!   zary, prepend, append, expectedr$   NrI   rH   c                s    R V R2p\        \        V4      ;_uu_ 4        \        VVVR7       RRR4       R#   + '       g   i     R# ; i)z
dtype of `z` must be compatiblearyrI   rH   N)r   	TypeErrorr    )r   rN   prependappendexpectedmsg   &&&&& r   !test_ediff1d_forbidden_type_castsZ,TestSetOps.test_ediff1d_forbidden_type_casts   s?    : 8*$89 C00!$& 1000s	   8A		zary,prepend,append,expectedc                sN    \         P                  ! VVVR 7      p\        WT4       R# )rM   N)r   r    r	   )r   rN   rP   rQ   rR   actualrT   r   test_ediff1d_scalar_handlingZ'TestSetOps.test_ediff1d_scalar_handling   s$    : #)%,. 	V&r!   kindsortc                s  aa R  p\         P                  ! V\        .^0R7      oVV3R lp\         P                  ! ^4      P	                  . RO4      p\         P
                  ! . RO. RO. R	O.4      pV! WE4       R
R.pRpV! Wg4       \         P
                  ! ^4      pV! W4       V! WH4       V! W4       V! ^V4       V! V^4       V! ^^4       SR8w  d   . p	V! W4       V! WI4       V! W4       \        \         P                  \         P                  3 F  p
SR8X  d   V
\         P                  8X  d   K!  V
\         P                  \         P                  09   d   \         P
                  ! . ROV
R7      pM$V
\        09   d   \         P
                  ! . RO4      p\         P
                  ! . V
R7      pV! VX4       V! W4       V! W4       K  	  R# )c                 sn    \         P                  ! V4      P                  4       P                  4       pW9   # N)r   asarrayZflattenZtolist)r   r   s   &&r   
_isin_slowZ(TestSetOps.test_isin.<locals>._isin_slow   s(    

1%%'..0A6Mr!   )ZotypesZexcludedc                 sH   < \        WSR 7      pS! W4      p\        W#4       R# )rX   N)r   r   )r   r   xy	isin_slowrX   s   &&  r   assert_isin_equalZ/TestSetOps.test_isin.<locals>.assert_isin_equal   s     Q%A!Aq$r!   tablerL   Nr   r   r   )r8   i   i   )    r   r   )i   i   i!   )r:   r7   )r   r6   )r:   r   TFF)r   Z	vectorizeboolr#   reshaper   int64float64)r   rX   r\   ra   r   r   r   dZfr^   r$   ZarZempty_arrayr`   s   &f           @r   	test_isinZTestSetOps.test_isin   s{   	 LLTFaSI		% IIbM!!),HHlI|<=! V! HHQK!!! 	!Q!Q!Q 7? Aa#a#a# BHHbjj1Ew5BJJ#62::..XXl%84&XX23((2U3Kk2.b.k7 2r!   c                s   R EFX  p. ROp. ROV,          p\         P                  ! . R	O4      p\        W4RVR7      p\        We4       ^V^ &   \         P                  ! . R
O4      p\        W4RVR7      p\        We4       ^^uV^ &   V^&   \         P                  ! . RO4      p\        W4RVR7      p\        We4       \         P                  ! . RO4      p. ROV,          p. ROp\        W4VR7      p\        We4       V. ROV,          ,           p. ROp\        W4VR7      p\        We4       \         P                  ! . RO4      p\         P                  ! . ROV,          4      p\         P                  ! . R	O4      p\        W4VR7      p\        We4       \         P                  ! . RO4      p\         P                  ! . ROV,          4      p\         P                  ! . RO4      p\        W4VR7      p\        We4       \         P                  ! ^^.4      p\         P                  ! ^^.V,          4      p\         P                  ! RR.4      p\        W4VR7      p\        We4       EK[  	  \         P                  ! ^.4      p\         P                  ! ^.4      p\         P                  ! R.4      p\        W4VR7      p\        We4       VR9   d   \        \        . . VR7      . 4       R# R# )r   TF)r   rX   r]   Nr   r8   r   r   TFTT)FFTT)TFTFr   r   r   r   r   r   r   r   r   r   r   r   r   r   rc   )FTFTTTTTTFTFFF)r   r   r   )TTTTTTTTTTTFTT)r   r   r   r   r   )r   r   r   r   r   r   )TFTTT   NrY   r   r   r   r   )r   rX   multr   r   r   r      &&     r   test_isin_additionalZTestSetOps.test_isin_additional  sC    DA$&A34BQD9Aq%AaD45BQD9Aq%AJAaD!A$45BQD9Aq%CDAD A4BQ%Aq%I$$A+BQ%Aq%&A4/0A34BQ%Aq%)A+d23A9:BQ%Aq%!Q A!Q$'A5%.)BQ%Aq%_ b HHaSMHHaSMXXugD!1!>!tB6; "r!   c                s    \         P                  ! . RO4      p\         P                  ! R R.4      p\         P                  ! . RO4      p\        W4      p\        WC4       R# )r   r   N)r   r   r   rj   er   rt   r   )TFTFFTFFrp   rD   rE   r   test_isin_char_arrayZTestSetOps.test_isin_char_arrayP  sC    HH=>HHc3Z XXKLJ1!r!   c                s   R F]  p\         P                  ! . RO4      p. ROV,          p\        \         P                  ! \	        W4VR7      4      \	        W4RVR7      4       K_  	  VR	9   d   R F  p\         P                  ! . RO\         P
                  R7      p. ROV,          p\         P                  ! V\         P
                  R7      p\        \         P                  ! \	        W4VR7      4      \	        W4RVR7      4       K  	  R# R# )
zTest isin's invert parameterr]   TinvertrX   NrL   rl   rn   rc   ro   )r   r   r   rw   r   float32)r   rX   rq   r   r      &&   r   test_isin_invertZTestSetOps.test_isin_invertY  s    
 DCDAD Aryya)>?#ADAC  >!HHG"$**.$HHQbjj1"299T!T-B#C#'T#EG   "r!   c           	     sb   \         P                  ! . RO\         P                  R7      p\         P                  ! . RO\         P                  R7      p\         P                  ! . RO\        R7      p\	        V\        W4      4       \	        \         P                  ! V4      \        WRR7      4       \         P                  ! . R	O\         P                  R7      p\         P                  ! . R
O\         P                  R7      p\         P                  ! . RO4      p\        WRR7      p\	        WT4       R# )z(Hit the standard isin code with integersrL   Trw   r   N)r   r   r   r   r   r       eA)r   r   r   r|   )rd   r   rd   r   r   r   r   r   )r   r   r   r   r   r|   rm   )r   r   rh   rf   r   r   rw   )r   r   r   rR   r   r   r   r   !test_isin_hit_alternate_algorithmZ,TestSetOps.test_isin_hit_alternate_algorithmn  s     HH,BHH=HH^2884881>8T!Z0299X.Q$0GHHH\2HH):XX/0T*1!r!   c           
     s   \         P                  ! RR.4      p\         P                  ! . RO4      p\         P                  ! RR.4      p\        V\        W#VR7      4       \        \         P                  ! V4      \        W#RVR7      4       R# )z&Test that isin works for boolean inputTFr]   rv   N)FFF)r   r   r   r   rw   )r   rX   r   r   rR   ry   r   test_isin_booleanZTestSetOps.test_isin_boolean~  sj     HHdE]#HH*+88UDM*840	2299X.T=	?r!   c           	     s   \         P                  P                  ^ 4      pVP                  ^ ^d^
R7      pVP                  ^ ^d^
R7      p\	        W44      pVP                  R4      pVP                  R4      p\        V\	        WgVR7      4       R# )z(Test that isin works for timedelta input)Zsizetimedelta64[s]r]   N)r   ZrandomZRandomStateZrandintr   astyper   )r   rX   Zrstater   r   ZtruthZa_timedeltaZb_timedeltas   &&      r   test_isin_timedeltaZTestSetOps.test_isin_timedelta  sx     &&q)NN1cN+NN1cN+Q
hh/0hh/05${d"KLr!   c                s    \         P                  ! . RORR7      pTp\        P                  ! \        4      ;_uu_ 4        \        WRR7       RRR4       R#   + '       g   i     R# ; i)rd   r   rL   rb   r]   Nrd   r   r   )r   r   pytestraises
ValueErrorr   r   r   r      &  r   test_isin_table_timedelta_failsZ*TestSetOps.test_isin_table_timedelta_fails  s@    HHY&67]]:&&G$ '&&&s   AA(	zdtype1,dtype2c                s   \         P                  ! V\         P                  4      p\         P                  ! . ROVR7      pV'       d   \         P                  ! . ROVR7      pM\         P                  ! . R	OVR7      p\         P                  ! . R
O4      pVR8H  ;'       d/    V\         P                  8H  ;'       d    V\         P
                  8H  pV'       d=   \        P                  ! \        RR7      ;_uu_ 4        \        WVVR7       RRR4       R# \        \        WVVR7      V4       R#   + '       g   i     R# ; i)z7Test that isin works as expected for mixed dtype input.rL   rb   zexceed the maximum)Zmatchr]   N)rd   rd   r   r   )ird      )r   rd   i   )TTFF)r   Z
issubdtypeZsignedintegerr   int16int8r   r   RuntimeErrorr   r   )	r   Zdtype1Zdtype2rX   Zis_dtype2_signedar1ar2rR   Zexpect_failures	   &&&&     r   test_isin_mixed_dtypeZ TestSetOps.test_isin_mixed_dtype  s     ==1A1ABhh|62((>8C((=7C8867 6 6bhh446RWW#4 	 |3GHHSD) IH tC48(C IHHs   <D--D>	datac                s    V^,          p\         P                  ! W#VR7      p\        VRR.4       VP                  \         P                  4      p\         P                  ! W#VR7      p\        VRR.4       R# )z>Test values outside intp range (negative ones if 32bit system)r]   FTN)r   r   r   r   int32)r   rX   r   Zqueryr1   s   &&&  r   test_isin_mixed_huge_valsZ$TestSetOps.test_isin_mixed_huge_vals  s]     Qggd-3. {{288$ggd-3/r!   c           	     s   \         P                  R,           F  p\         P                  ! . RO\        R7      p\         P                  ! . ROVR7      p\         P                  ! . RO\        R7      p\	        \        W4VR7      V4       YCrC\         P                  ! . RO\        R7      p\	        \        W4VR7      V4       K  	  R# )	z4Test that isin works as expected for bool/int input.
AllIntegerrL   r]   Nre   rd   rd   rd   rd   )FTT)TTTT)r   	typecodesr   rf   r   r   )r   rX   r$   r   r   rR   s   &&    r   test_isin_mixed_booleanZ"TestSetOps.test_isin_mixed_boolean  s     \\,//E-T:AU3Axx 34@HtAt4h?qxx 8EHtAt4h? 0r!   c                s    R .p\         P                  ! ^.^
,          4      p\         P                  ! R.4      p\         P                  ! W4      p\        WC4       R # )NFrp   r   r   r   rR   resultrE   r   test_isin_first_array_is_objectZ*TestSetOps.test_isin_first_array_is_object  sC    fhhsRx 88UG$"6,r!   c                s    ^p\         P                  ! R.^
,          4      p\         P                  ! R.4      p\         P                  ! W4      p\        WC4       R# )r   NFrp   r   rE   r    test_isin_second_array_is_objectZ+TestSetOps.test_isin_second_array_is_object  sA    hhv{#88UG$"6,r!   c                s    R .p\         P                  ! R .^
,          4      p\         P                  ! R.4      p\         P                  ! W4      p\        WC4       R # )NTrp   r   rE   r    test_isin_both_arrays_are_objectZ+TestSetOps.test_isin_both_arrays_are_object  sC    fhhv{#88TF#"6,r!   c                s0   \         P                  ! R \        3R\        3.4      p\         P                  ! R.VR7      p\         P                  ! R.^
,          VR7      p\         P                  ! R.4      p\         P
                  ! W#4      p\        WT4       R# )Zfield1Zfield2NrL   T)r   N)r   r$   intobjectr   r   r   )r   dtr   r   rR   r   r   r   +test_isin_both_arrays_have_structured_dtypeZ6TestSetOps.test_isin_both_arrays_have_structured_dtype  so     XX#6(:;<hh	{"-hh	{R'r288TF#"6,r!   c                s2   \         P                  ! R^.\        R7      p\         P                  ! R^.\        R7      p\         P                  ! RR.4      p\         P                  ! W4      p\	        WC4       \         P                  ! WRR7      p\	        V\         P
                  ! V4      4       \         P                  ! . RO\        R7      pVRR p\         P                  ! . RO\        R7      pVRR p\         P                  ! RR.4      p\         P                  ! W4      p\	        WC4       \         P                  ! WRR7      p\	        V\         P
                  ! V4      4       \         P                  ! . R	O\        R7      pVRR p\         P                  ! R^.\        R7      p\         P                  ! RR.4      p\         P                  ! W4      p\	        WC4       \         P                  ! WRR7      p\	        V\         P
                  ! V4      4       R# )
r   rL   Tr{   NFr   )r   )r   r   r   rJ   )r   r   r   r   )r   r   r   r   r   rw   r   rE   r   'test_isin_with_arrays_containing_tuplesZ2TestSetOps.test_isin_with_arrays_containing_tuples  su   hhay/hhay/88T4L)"6,$/6299X#67 hh(7#2hhh(7#2h88T4L)"6,$/6299X#67hh(7#2hhhay/88T5M*"6,$/6299X#67r!   c           	     s*   \         P                  ! . R	O4      p\         P                  ! . R
O4      p\        \        \        WRR7       \         P                  ! . RO\
        R7      p\         P                  ! . RO\
        R7      p\        \        \        W4RR7       \         P                  \         P                  3 F  p\         P                  ! . ROVR7      p\         P                  ! R\         P                  ! V4      P                  .VR7      p\        \        \        WRR7       \         P                  ! WRR7      p\        VR.R.^,          ,           4       \         P                  ! WRR7      p\        VR.R.^,          ,           4       K  	  R# )z&Test that isin raises expected errors.Z	quicksortr]   rL   rb   NTFrY   )r   r   r   r   r   )r   r   r6   r7   r8   )r   r   r   r   r   rJ   )rJ   r   r   r   r   )r   r   r
   r   r   r   r   rh   ZiinfoZmaxr   r   )r   r   r   Zobj_ar1Zobj_ar2r$   Zoverflow_ar2r      &       r   test_isin_errorsZTestSetOps.test_isin_errors  s    hh'hh'(j${C ((.f=((.f=j$wGhh)E((+59C88R%)<)<$=UKL
 cg WWST:Fvv!';<WWSV<Fvv!';<' *r!   c                s   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\        W4      p\        WC4       \         P                  ! . RO. RO.4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\        WV4      p\        W4       \        . \        . . 4      4       R# )	r   N)r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   )rd   r   r   r   r   )rd   r   r   r   r   r   )r   r   r   r   )	r   r   r   r   r   r^   r_   ZezZzs	   &        r   test_union1dZTestSetOps.test_union1d<  s    HH_%HH*+XX()AM1! HHi+,HH_%XX()AM1!2wr2/r!   c                sH   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! ^^.4      p\        W4      p\        WC4       \         P                  ! ^4      p\         P                  ! ^4      p\         P                  ! ^^.4      p\        W4      p\        WC4       \        . \        . . 4      4       \         P                  ! R\         P
                  4      p\        \        V. 4      P                  \         P
                  4       R# )r6   N)r6   r   r   r   r   r   r   r   r   r&   )r   r   r   r   r#   Zuint32r	   r$   rD   rE   r   test_setdiff1dZTestSetOps.test_setdiff1dN  s    HH-.HH*+XXq!faO1!IIbMIIbMXXr2haO1!2yR01HHR#Yq"%++RYY7r!   c                s    \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! ^^.4      p\        WRR7      p\        WC4       R# )r   Tr   N)r   r   r   )r   r   r   )r   r   r   r	   )r   r   r   rR   rV   rE   r   test_setdiff1d_uniqueZ TestSetOps.test_setdiff1d_unique`  sD    HHYHHY88QF#1t4V&r!   c                s    \         P                  ! . RO4      p\         P                  ! . RO4      p\        \        W4      \         P                  ! R.4      4       R# )r   r   N)r   r   r   )r   r   Zs)r   r   r   r   r   r   r   test_setdiff1d_char_arrayZ$TestSetOps.test_setdiff1d_char_arrayg  s6    HH_%HH_%9Q?BHHcUO<r!   c                s    \         P                  ! . RO4      p\         P                  ! . RO4      p\        W4      p\        W4      p\	        W4      p\        WT4      p\        W64       R# )r   N)r   r   r   r   r7   )r:   r7   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   Zc1Zaux1Zaux2Zc2   &      r   test_manywaysZTestSetOps.test_manywaysl  sM    HH_%HH*+a^1 q}t"2"r!   r&   r0   )r   r   r   )      ?g      @g      "@i   i  )rd   r   r   r   )r   r   r   )rd   r   r   rd   )r   r   r   r   )NrY   rb   l            l           l         l        )3r'   r(   r)   r*   r    r3   r?   rF   rG   rK   r   markparametrizer   r   rh   nanrx   r   rU   r   ri   r   rW   rk   rs   ru   rz   r}   r~   r   r   uint8Zuint16Zuint64r   r   r   r   r   r   r   r   r   r   r   r   r   r   r+   r,   r-   r.   r   r   r      s9    4$
+%'N10"J& [[= 
)288	,				 
)288	,	)2::	.			 
,bgg	.				%@ .
&/.
& [[%
((9BHH
-


((<rxx
0
2 ((9BJJ
/
((A3bjj
)

((9BJJ
/
1 ((9BHH
-


((<rxx
0
2 ((9BHH
-


((=
1
3	
*.+*. [[V%<=78 >78r [[V%<=;< >;<z" [[V%<=G >G("  [[V%<=? >? [[VdF^4M 5M% [[WWbhhXXrwwXXryy!YY!XXrxx XXrxx YY!	
 [[V%<=D >D* [[V
%#2995
&*%RXX6&  [[V%<=	0 >	
	0 [[V%<=
@ >
@----8B =D0$8$'=
# #r!   r   c                   sX  a  ] tR tRt o R tR tR tR tR t]	P                  P                  R. RO4      R 4       tR	 tR
 tR t]	P                  P                  R^ R.4      R 4       t]	P                  P                  R. R O4      R 4       tR tR tR tR tR tR tR t]	P                  P                  R. R!O. R!O.. R"O^.4      ]	P                  P                  RRR.4      ]	P                  P                  R]P4                  ]P6                  .4      R 4       4       4       tRtV tR# )#
TestUniqueiw  c                s   R pVP                  RV4      p\        V4      p	\        WV4       VP                  RV4      p\        VRRR4      w  r\        WV4       \        WV4       VP                  RV4      p\        VRRR4      w  r\        WV4       \        WV4       VP                  RV4      p\        VRRR4      w  r\        WV4       \        WV4       VP                  RV4      p\        VRRR4      w  rp\        WV4       \        WV4       \        WV4       VP                  RV4      p\        VRRR4      w  rp\        WV4       \        WV4       \        WV4       VP                  R	V4      p\        VRRR4      w  rp\        WV4       \        WV4       \        WV4       VP                  R
V4      p\        VRRR4      w  rr\        WV4       \        WV4       \        WV4       \        WV4       R# )z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_countsN)Zformatr   r   )r   r   r   r<   r=   r   r   Zbase_msgrS   vZjZj1Zj2Zj3s   &&&&&&&       r   	check_allZTestUnique.check_ally  s   2ooh+1I1% oonb1aue,1%1#& oo.3ae,1%1#& ooor2at,1%1% oo?D1dD%0	r1%23'23' oo>C1dE40	r1%23'2#& oo@"E1eT40	r1%23'2#& oo  468:q$d3r1%23'23'2#&r!   c                s    . pVP                  \        P                  R ,          4       VP                  \        P                  R,          4       VP                  R4       VP                  R4       V# )r   AllFloatdatetime64[D]timedelta64[D])extendr   r   rQ   )r   typess   & r   	get_typesZTestUnique.get_types  sO    R\\,/0R\\*-._%%&r!   c           	     sr   . RO^
,          p. ROp. ROp. RO^
,          p\         P                  ! . RO^
4      pV P                  4       pV FB  p\         P                  ! W4      p\         P                  ! W'4      p	V P	                  WW4WW4       KD  	  Rp\         P
                  ! \        V4      V4      pWR&   \         P
                  ! \        V4      V4      p	W)R&   V P	                  WW4WW4       RR.p\         P                  ! \        \        W4      4      V4      p\         P                  ! \        \        W"4      4      V4      p	V P	                  WW4WW4       . ROp\        \         P                  ! V4      RR.4       . ROp. ROp
^ ^.^ ^.^^..p\        V4      p\        W4       \        VRR7      w  r\        W4       \        W4       \         P                  P                  ^4      pRVR&   \         P                  ! VRR7      w  r\        V\         P                  ! ^4      4       . p\         P                  ! VRR7      ^,          p\         P                  ! VRR7      ^,          p\         P                  ! VRRR	7      R
,          w  pp\        VP                  \         P                   4       \        VP                  \         P                   4       \        VP                  \         P                   4       \        VP                  \         P                   4       R\         P"                  R\         P"                  .pRR\         P"                  .p. ROp. R Op. R!Op\        \         P                  ! V4      V4       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       R"\         P"                  R#\%        R\         P"                  4      \%        R\         P"                  4      .pR#R"\%        R\         P"                  4      .p. R$Op. R%Op. R&Op\        \         P                  ! V4      V4       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       \         P&                  ! R4      p\         P&                  ! R4      V\         P&                  ! R4      V.p\         P&                  ! R4      \         P&                  ! R4      V.p. ROp. R Op. R!Op\        \         P                  ! V4      V4       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       \         P(                  ! R4      p\         P(                  ! ^R4      V\         P(                  ! ^R4      V.p\         P(                  ! ^R4      \         P(                  ! ^R4      V.p. ROp. R Op. R!Op\        \         P                  ! V4      V4       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       \         P"                  .^,          p\         P"                  .p^ .p. R'Op^.p\        \         P                  ! V4      V4       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       \        \         P                  ! VRR7      VV34       R# )(r   ZONNN r   Tr   .)r   )r   r   :r   NNg       @)r           natz
2020-12-26z
2020-12-24ZDZhNr   r   r   r   r   r   r   r   r   r   r   r   r   rd   r   r   r   rd   r   rd   r   r   r   r   r   r   )r   i      ?              ?      )r   r   r   )r   r   r   r   r0   )r   rd   r   )r   r   rd   r   )r   r   r   y       @      y      ?      ?)r   rd   r   )r   r   rd   r   r   )r   r   r   r   )r   multiplyr   r   r   emptylenlistzipr   r   ZcharZ	chararrayZzerosr	   r$   Zintpr   ZcomplexZ
datetime64Ztimedelta64)r   r   r   r<   r=   r   r   r   aabbunqinvZa1Za2Za2_invZa1_idxZa3_idxZa3_invZuaZua_idxZua_invZua_cntr   Zall_nanss   &                       r   test_unique_1dZTestUnique.test_unique_1d  s   !B&"R'KKb)  B!B!BNN2211  XXc!fb!1XXc!fb!1rrq- #XXd3q9or*XXd3q9or*rrq- $299R=8X*>? %1v1v1v&AY2#Ad3
2#6' GGa #YYq6
6288A;/ 14031T215142688:<V\\277+V\\277+V\\277+V\\277+ "&&#rvv&3RYYq\2&RYYqt4r6lCRYYq6VERYYq5F|D rvvxbff)=wsBFF?ST'#rvv"67 RYYq\2&RYYqt4r6lCRYYq6VERYYq5F|D mmE"]]<(#r}}\/JCPmmL)2==+FLRYYq\2&RYYqt4r6lCRYYq6VERYYq5F|D nnU#^^As#S"..C*@#FnnQ$bnnQ&<cBRYYq\2&RYYqt4r6lCRYYq6VERYYq5F|D FF8a<ffXRYYx("-RYYxd;b&\JRYYx=F|LRYYxt<r6lKr!   c           	     s   V P                  4        F  p\        P                  ! . V4      p\        P                  ! . V4      p\        P                  ! . \        P                  4      p\        P                  ! . \        P                  4      p\        P                  ! . \        P                  4      pV P	                  W#WEWa4       K  	  R # rZ   )r   r   r   rh   r   )r   r   r   r   r<   r=   r   r   r   test_unique_zero_sizedZ!TestUnique.test_unique_zero_sized.  s    .."BR AR A"bhh'B"bhh'BRXX&ANN1/ #r!   c           	     s    ! R  R\         P                  4      p. ROp. RO^
,          p\         P                  ! . RO^
4      pV P                  4       pV Fy  p\         P                  ! . RO^
,          VR7      p\         P                  ! . R	OVR7      pV! VP
                  WgR7      p	V! VP
                  WhR7      p
V P                  WW#WF4       K{  	  R# )
c                   s    ] tR tRtRtR# )1TestUnique.test_unique_subclass.<locals>.Subclassi9  r&   N)r'   r(   r)   r*   r+   r&   r!   r   Subclassr   9  s    r!   r   rL   )r$   ZbufferNr   r   r   r   r   )r   Zndarrayr   r   r   r;   r   )r   r   r<   r=   r   r   r   r   r   r   r   r>   r   test_unique_subclassZTestUnique.test_unique_subclass8  s    	rzz 	 "R'KKb)  B.32>AR0A!''6B!''6BNN2211 r!   argc                s    \         P                  ! . RO4      p\         P                  ! ^^.3RR/VR/B p\         P                  ! ^^.3RR/VR/B p\        W44       F  w  rV\	        WV4       K  	  R# )zThese 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.
ZsortedFTN)
r   r   r   r   r   r7   i   r   r   r   )r   r   r   r   r   )r   r   r   Zres_not_sortedZ
res_sortedarrrR   rr   r   test_unsupported_hash_basedZ&TestUnique.test_unsupported_hash_basedI  sl     HH56Aq6G%GC;GYY1vBdBsDkB
 <MCs- =r!   c                sB   \        \        V P                  \        4       \        \        V P                  R \        3R\        3.4       \        \
        \        \        P                  ! ^
4      ^R7       \        \
        \        \        P                  ! ^
4      RR7       R# )r   r   axisNi)	r
   rO   _run_axis_testsr   r   r   r   r   r#   )r   s   &r   test_unique_axis_errorsZ"TestUnique.test_unique_axis_errorsY  sd    i!5!5v>i!5!5SzC=1	3 	i2Q?i2R@r!   c                s    R p. RO. RO.p\         P                  ! V4      p\        \        V^ R7      \        V^ R7      V4       \        \        V^R7      \        V^R7      V4       R# )zUnique failed on list of listsr   Nrd   r   rd   )r   r[   r   r   )r   rS   ZinpZinp_arrr2   r   test_unique_axis_listZ TestUnique.test_unique_axis_lista  sR    .)$**S/6#A.wQ0GM6#A.wQ0GMr!   c                sF   . pVP                  \        P                  R ,          4       VP                  \        P                  R,          4       VP                  R4       VP                  R4       VP                  R\        3R\        3.4       VP                  R\        3R\
        3.4       V F  pV P                  V4       K  	  Rp\        P                  ! ^
\        P                  R7      P                  R^4      P                  \        4      p\        P                  ! RR	.R	R	..\        R7      p\        \        V^ R
7      WS4       Rp\        P                  ! RR.RR.RR.RR..4      p\        P                  ! RR..4      p\        \        V^ R
7      WS4       R# )r   r   r   r   r   r   z&Non-bitwise-equal booleans test failedrL   FTr   z"Negative zero equality test failedr   NrJ   g       )r   r   r   rQ   r   Zfloatr   r#   r   rg   Zviewrf   r   r   r   )r   r   r$   rS   r   r   r   r   test_unique_axisZTestUnique.test_unique_axish  sF   R\\,/0R\\*-._%%&sCj3*-.sCj3,/0E  '  7yy288,44R;@@FE4=4,7tD6$Q/=2xx$sDkD#;dLMD#;-(6$Q/=r!   r   c                sj    \         P                  ! . RO4      p\        W!R7      p\        V. RO4       R# )r   r   N)r   r   r   r   r   r   r   r   r5   r   r   r   r   )r   r   r^   uniqs   &&  r   test_unique_1d_with_axisZ#TestUnique.test_unique_1d_with_axis~  s%    HH-.a#4.r!   Nc           	     s    \         P                  ! . RO. RO. RO. RO.4      p\        VRVR7      w  r4\        VP                  Vf   VP                  M^4       \        V\         P                  ! W4VR7      4       R# )r   T)r   r   Nr   )r   r   r   )r   r   r   )r   r   r   r	   Zndimr   take)r   r   r^   r   r   ry   r   test_unique_inverse_with_axisZ(TestUnique.test_unique_inverse_with_axis  sV    HHiIyAB1T=	SXXqvv1=1bggdd;<r!   c                s*   \         P                  ! R\         P                  R7      p\        V^ RRRR7      w  r#rE\	        VP
                  VP
                  4       \        V\         P                  ! RR7      4       \        V\         P                  ! ^ .4      4       \        V\         P                  ! ^ ^ .4      4       \        V\         P                  ! ^.4      4       \        V^RRRR7      w  r#rE\	        VP
                  VP
                  4       \        V\         P                  ! RR7      4       \        V\         P                  ! . 4      4       \        V\         P                  ! . 4      4       \        V\         P                  ! . 4      4       R	p\         P                  ! VR7      p\        \        V4      4       FO  p\        V4      p	Wh,          ^ 8X  d   ^ W&   M^W&   \        \        WxR7      \         P                  ! V	R7      4       KQ  	  R# )
r   )r;   r$   Tr   r   r   r   )r;   r   N)r   rd   )r   rd   )rd   r   rd   r   rd   r   rd   )r   r   r   r   r	   r$   r   r   Zranger   r   )
r   Zsingle_zeror   idxr   cntr;   Zmultiple_zerosr   Zexpected_shapes
   &         r   test_unique_axis_zerosZ!TestUnique.test_unique_axis_zeros  s{   hhV277;$[qt48N3 	TZZ!2!234!783!.3!Q 013!. %[qt48N3 	TZZ!2!234!783-3-3- &.#e*%D!%[N{a'($'($vn@!xxn=? &r!   c                sf   \         P                  ! . RORR7      p\         P                  P                  V^ 4      p\         P                  ! V4      p\         P                  ! VRRR7      w  rEpRp\        VP                  VP                  V4       \        VP                  VP                  V4       R# )@   r   rL   T)r   r   z6Unique returned different results when asked for indexN)r   rd   r   r   r   ?   r   rd   rd   rd   r   r   rd   r   rd   )r   r   ZmaZmasked_equalr   r   r   Zmask)r   r^   r_   r   Zv2r   r   rS   r   r   test_unique_maskedZTestUnique.test_unique_masked  s|    HHF"$EEq!$IIaL99QTFqF166277C0166277C0r!   c                s    R pR FH  p\         P                  ! R.^ ..V4      p\         P                  ! V^ R7      p\        W4W,          4       KJ  	  R# )z*sort order incorrect for integer type '%s'Zbhilqr   NrJ   r   )r   Zfmtr   r   r   rE   r    test_unique_sort_order_with_axisZ+TestUnique.test_unique_sort_order_with_axis  sG     ;B2$b)A		!!$AqSX. r!   c                s   \         P                  ! . RO. RO. RO. RO.4      P                  V4      pRp\         P                  ! ^ ^.4      p\        \	        V4      VP                  V4      V4       Rp\         P                  ! . RO. RO.4      p\        \	        V^ R7      VP                  V4      V4       Rp\         P                  ! . RO. RO. RO. RO.4      p\        \	        V^R7      VP                  V4      V4       Rp\         P                  ! ^^.^^ ..^ ^.^ ^ ...4      P                  V4      p\         P
                  ! V^^ .^R7      p\        \	        V^R7      WC4       \	        V^ RRRR7      w  rgrRp\        W',          Wc4       R	p\        \         P
                  ! Wh^ R7      V4       R
p\        V	\         P                  ! ^^.4      V4       \	        V^RRRR7      w  rgrRp\        VRV3,          V4       Rp\        \         P
                  ! Wh^R7      V4       Rp\        V	\         P                  ! . RO4      V4       R# )rd   z&Unique with 1d array and axis=0 failedz&Unique with 2d array and axis=0 failedr   z&Unique with 2d array and axis=1 failedz&Unique with 3d array and axis=2 failedTr   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=1r   z/Unique's return_inverse=True failed with axis=1z.Unique's return_counts=True failed with axis=1N)rd   r   rd   rd   )r   rd   rd   rd   )rd   rd   r   r   )r   r   r   )r   r   r   r   r   r   )
r   r$   r   rS   r   Zdata3dr   r   r   r   s
   &&        r   r   ZTestUnique._run_axis_tests  s
   xx%%%' ( )/u 	
 71a&!6$<u)=sC6<676$Q/u1EsK69iIFG6$Q/u1EsK6QFF$FF$% & '-fUm 	 !Qa06&q16?$T48N3=49d0?277415t<>3!Q 0#6$T48N3=43<.?277415t<>3 3S9r!   c           	     s   \         P                  ! ^^\         P                  \         P                  \         P                  .4      p\         P                  ! V4      p\         P                  ! VRR7      p\	        V\         P                  ! ^\         P                  .4      4       \	        V\         P                  ! ^\         P                  \         P                  \         P                  .4      4       R# )r   F	equal_nanN)r   r   r   r   r   )r   r   r   Znot_unqr2   r   test_unique_nanequalsZ TestUnique.test_unique_nanequals  s    HHaBFFBFFBFF34iil))A/3!RVV 567BHHa-H$IJr!   c                sB   \         P                  ! \         P                  ^^^^^\         P                  ^^.	4      p\         P                  ! V4      \         P                  ! VRR7      3\         P
                  ! V4      \         P                  ! VRRR7      3\         P                  ! V4      \         P                  ! VRRR7      3\         P                  ! V4      \         P                  ! VRRRRR7      33 F$  w  r#\        W#4       F  w  rE\        WE4       K  	  K&  	  R# )r   Fr   T)r   r   )r   r   )r   r   r   r   N)
r   r   r   Zunique_valuesr   Zunique_countsunique_inverse
unique_allr   r   )r   r   Zres_unique_array_apiZ
res_uniquerV   rR   r   r   test_unique_array_api_functionsZ*TestUnique.test_unique_array_api_functions  s    hh1aArvvq!<=   %		#/
   %		#TUC
 !!#&		#deD
 c"		!%#'"&#	1
, 2 %((<$I "64 %J31
r!   c                s   \         P                  ! . RO. RO.4      p\         P                  ! VRR7      w  r#VP                  VP                  4      p\         P
                  \         P                  3 F[  pV! V4      p\        W%P                  4       \        W5P                  4       \        WP                  VP                  ,          4       K]  	  R# )r   Tr   Nr0   )r   r   r   )
r   r   r   rg   r;   r   r   r   r   Zinverse_indices)r   r   Zexpected_valuesZexpected_inverseZfuncr   r   r   test_unique_inverse_shapeZ$TestUnique.test_unique_inverse_shape  s    hh	9-.,.IIc$,O)+33CII>%%r}}4D#YF>/1G1GHsMM&2H2H$IJ	 5r!   r   	transposeFTr$   c                s   \         P                  ! V4      P                  V4      pV'       d   VP                  p\         P                  ! V4      p\         P                  ! \         P
                  ! V4      4      p\        WVR R7       R# )T)ZstrictN)r   Zmatrixr   ZTr   r[   r   )r   r   r   r$   ZmatZurR   s   &&&&   r   test_unique_with_matrixZ"TestUnique.test_unique_with_matrix#  sU     iio$$U+%%CIIcN99RZZ_-1t4r!   r&   )r   r   r   rJ   )Nrd   rJ   )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   ri   r   r+   r,   r-   r.   r   r   r   w  sP    6"psLj02" [[U$WX. Y.AN>, [[VaW-/ ./
 [[V]3= 4="?H1/*:XK5>	K [[


		
	 [[[5$-8[[Wrxx&<=5 > 95r!   r   )Z__doc__r   Znumpyr   r    r   r   r   r   r   r   Znumpy.exceptionsr   Znumpy.testingr   r	   r
   r   r   r   r&   r!   r   <module>r      sA      R R R & c	# c	#L{5 {5r!   