+
    &i                         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 ^ 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)StringDType)	AxisError)assert_array_equalassert_equalassert_raisesassert_raises_regexc                   &	  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                   \         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ceds   &     ^/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numpy/lib/tests/test_arraysetops.pytest_intersect1dTestSetOps.test_intersect1d   s    HH\"HH_%XXi D11! HH_%HH*+XXi 1!2{2r23    c                     ! R  R4      pV! 4       p\        W"4      p\        W24       \        . RO. RO4      p\        V. RO4       R# )c                   *   a  ] tR t^(t o RR ltRtV tR# )4TestSetOps.test_intersect1d_array_like.<locals>.TestNc                .    \         P                  ! ^4      # )r   )r   arange)r   dtypecopys   &&&r$   	__array__>TestSetOps.test_intersect1d_array_like.<locals>.Test.__array__)   s    yy|#r'    )NN)__name__
__module____qualname____firstlineno__r/   __static_attributes____classdictcell____classdict__s   @r$   Testr*   (   s     $ $r'   r:   Nr   r   r   )r   r   )r   r:   r   ress   &   r$   test_intersect1d_array_like&TestSetOps.test_intersect1d_array_like&   s=    	$ 	$ F!3")Y/3	*r'   c                6   \         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)r@   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   rB   )r   rC   r      )r   r   r   rB   )
      rC   	   )r   rB   r   rC   )r   r   r   rB   rB   )r   r   rC   r   r   )r   r   r   r   )rE   rF   rC   r   )r   r   rC   )r   r   r   r   unravel_indexshape)r   r   r    r"   i1i2eeefui1ui2eas   &          r$   test_intersect1d_indices#TestSetOps.test_intersect1d_indices2   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                f   \         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   r;   )rB   r   r   r   r   r   r   r   rB   r   rC   r   r   rB   r   r   rC   r   r   r   r   r   r   r    r!   r"   s   &    r$   test_setxor1dTestSetOps.test_setxor1dY   s    HH\"HH_%XXi QN1!HHYHHYXX()QN1!HH\"HH\"XX()QN1!2xB/0r'   c                   \         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   NrU   rV   rT   rW   rX   s   &    r$   test_setxor1d_uniqueTestSetOps.test_setxor1d_uniqueq   s    HH\"HH\"XX()Q.1!HHqcA3aS)*HHq!fq!f%&XX()Q.1!r'   c           	        \         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)r_   r`   N)r   r   rG   )r   rB   r   r   rC   )r   r   rC   )r   rB   r   )r   r   r   r   )r   	zero_elemone_elemtwo_elems   &   r$   test_ediff1d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-   Nr`   r_   c                    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aryr`   r_   N)r   	TypeErrorr   )r   rj   prependappendexpectedmsgs   &&&&& r$   !test_ediff1d_forbidden_type_casts,TestSetOps.test_ediff1d_forbidden_type_casts   s?    : 8*$89 C00!$& 1000s	   8A		zary,prepend,append,expectedc                    \         P                  ! VVVR 7      p\        WT4       VP                  VP                  8X  g   Q hR# )ri   N)r   r   r   r-   )r   rj   rl   rm   rn   actuals   &&&&& r$   test_ediff1d_scalar_handling'TestSetOps.test_ediff1d_scalar_handling   s:    : #)%,. 	V&||x~~---r'   kindsortc                  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                 n    \         P                  ! V4      P                  4       P                  4       pW9   # N)r   asarrayflattentolist)r   r    s   &&r$   
_isin_slow(TestSetOps.test_isin.<locals>._isin_slow   s(    

1%%'..0A6Mr'   )otypesexcludedc                 H   < \        WSR 7      pS! W4      p\        W#4       R# )rv   N)r   r   )r   r    xy	isin_slowrv   s   &&  r$   assert_isin_equal/TestSetOps.test_isin.<locals>.assert_isin_equal   s     Q%A!Aq$r'   tablerg   Nr   r   r   )rE         )    r   r   )      !   )rG   rC   )r   rB   )rG   r   TFF)r   	vectorizeboolr,   reshaper   int64float64)r   rv   r~   r   r   r    r"   dfr   r-   arempty_arrayr   s   &f           @r$   	test_isin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                   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   rv   r   Nr   rE   r   r   TFTT)FFTT)TFTFr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )FTFTTTTTTFTFFF)r   r   r   )TTTTTTTTTTTFTT)r   r   r   r   r   )r   r   r   r   r   r   )TFTTT>   Nrw   r   r   r   r   )r   rv   multr   r    r!   r"   s   &&     r$   test_isin_additional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                    \         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"   r   er"   r   r    )TFTFFTFFr   rX   s   &    r$   test_isin_char_arrayTestSetOps.test_isin_char_arrayQ  sC    HH=>HHc3Z XXKLJ1!r'   c                   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invertrv   Nrg   r   r   r   >   Nrw   )r   r   r   r   r   float32)r   rv   r   r   r    s   &&   r$   test_isin_invertTestSetOps.test_isin_invertZ  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           	     b   \         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 integersrg   Tr   r   N)r   r   r   r   r   r       eA)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    rn   r!   r"   s   &     r$   !test_isin_hit_alternate_algorithm,TestSetOps.test_isin_hit_alternate_algorithmo  s     HH,BHH=HH^2884881>8T!Z0299X.Q$0GHHH\2HH):XX/0T*1!r'   c           
        \         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   r   N)FFF)r   r   r   r   r   )r   rv   r   r    rn   s   &&   r$   test_isin_booleanTestSetOps.test_isin_boolean  sj     HHdE]#HH*+88UDM*840	2299X.T=	?r'   c           	        \         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)sizetimedelta64[s]r   N)r   randomRandomStaterandintr   astyper   )r   rv   rstater   r    trutha_timedeltab_timedeltas   &&      r$   test_isin_timedeltaTestSetOps.test_isin_timedelta  sx     &&q)NN1cN+NN1cN+Q
hh/0hh/05${d"KLr'   c                    \         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)r   r   rg   r   r   Nr   r   r   )r   r   pytestraises
ValueErrorr   r   r   r    s   &  r$   test_isin_table_timedelta_fails*TestSetOps.test_isin_table_timedelta_fails  s@    HHY&67]]:&&G$ '&&&s   AA(	zdtype1,dtype2c                   \         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.rg   r   zexceed the maximummatchr   N)r   r   r   r   )ir      )r   r      )TTFF)r   
issubdtypesignedintegerr   int16int8r   r   RuntimeErrorr   r   )	r   dtype1dtype2rv   is_dtype2_signedar1ar2rn   expect_failures	   &&&&     r$   test_isin_mixed_dtype 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                    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   rv   r   queryr<   s   &&&  r$   test_isin_mixed_huge_vals$TestSetOps.test_isin_mixed_huge_vals  s]     Qggd-3. {{288$ggd-3/r'   c           	        \         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.
AllIntegerrg   r   Nr   r   r   r   r   )FTT)TTTT)r   	typecodesr   r   r   r   )r   rv   r-   r   r    rn   s   &&    r$   test_isin_mixed_boolean"TestSetOps.test_isin_mixed_boolean  s     \\,//E-T:AU3Axx 34@HtAt4h?qxx 8EHtAt4h? 0r'   c                    R .p\         P                  ! ^.^
,          4      p\         P                  ! R.4      p\         P                  ! W4      p\        WC4       R # )NFr   r   r   r   rn   results   &    r$   test_isin_first_array_is_object*TestSetOps.test_isin_first_array_is_object  sC    fhhsRx 88UG$"6,r'   c                    ^p\         P                  ! R.^
,          4      p\         P                  ! R.4      p\         P                  ! W4      p\        WC4       R# )r   NFr   r   s   &    r$    test_isin_second_array_is_object+TestSetOps.test_isin_second_array_is_object  sA    hhv{#88UG$"6,r'   c                    R .p\         P                  ! R .^
,          4      p\         P                  ! R.4      p\         P                  ! W4      p\        WC4       R # )NTr   r   s   &    r$    test_isin_both_arrays_are_object+TestSetOps.test_isin_both_arrays_are_object  sC    fhhv{#88TF#"6,r'   c                0   \         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# )field1field2Nrg   T)r   N)r   r-   intobjectr   r   r   )r   dtr   r   rn   r   s   &     r$   +test_isin_both_arrays_have_structured_dtype6TestSetOps.test_isin_both_arrays_have_structured_dtype  so     XX#6(:;<hh	{"-hh	{R'r288TF#"6,r'   c                2   \         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   rg   Tr   NFr   )r   )r   r   r   ra   )r   r   r   r   )r   r   r   r   r   r   r   s   &    r$   'test_isin_with_arrays_containing_tuples2TestSetOps.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           	     *   \         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.	quicksortr   rg   r   NTFrw   )r   r   r   r   r   )r   r   rB   rC   rE   )r   r   r   r    r   ra   )ra   r   r   r   r   )r   r   r   r   r   r   r   r   iinfomaxr   r   )r   r   r   obj_ar1obj_ar2r-   overflow_ar2r   s   &       r$   test_isin_errors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                   \         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   )r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )	r   r   r    r!   r"   r   r   ezzs	   &        r$   test_union1dTestSetOps.test_union1d=  s    HH_%HH*+XX()AM1! HHi+,HH_%XX()AM1!2wr2/r'   c                H   \         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# )rB   N)rB   r   r   r   r   r   r   r   r  r1   )r   r   r   r   r,   uint32r   r-   rX   s   &    r$   test_setdiff1dTestSetOps.test_setdiff1dO  s    HH-.HH*+XXq!faO1!IIbMIIbMXXr2haO1!2yR01HHR#Yq"%++RYY7r'   c                    \         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    rn   rs   s   &    r$   test_setdiff1d_unique TestSetOps.test_setdiff1d_uniquea  sD    HHYHHY88QF#1t4V&r'   c                    \         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    s)r   r   r   r   r   s   &  r$   test_setdiff1d_char_array$TestSetOps.test_setdiff1d_char_arrayh  s6    HH_%HH_%9Q?BHHcUO<r'   c                    \         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   rC   )rG   rC   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r    c1aux1aux2c2s   &      r$   test_manywaysTestSetOps.test_manywaysm  sM    HH_%HH*+a^1 q}t"2"r'   r1   r;   )r   r   r   )      ?      @g      "@i   i  )r   r   r   r   )r   r   r   )r   r   r   r   )r   r   r   r%  )Nrw   r   l            l           l         l        )3r2   r3   r4   r5   r%   r=   rQ   rY   r\   re   r   markparametrizer   r   r   nanr   r   rp   r   r   r   rt   r   r   r   r   r   r   r   r   uint8uint16uint64r   r   r   r   r   r   r   r   r	  r  r  r  r  r!  r6   r7   r8   s   @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                     a  ] tR tRt o R tR tR tR tR t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. R0O. R0O.. R1O^.4      ]P                  P!                  RRR.4      ]P                  P!                  R ]P>                  ]P@                  .4      R! 4       4       4       t!R" t"R# t#R$ t$]P                  P!                  R%]PJ                  ! R&4      ]PJ                  ! R'4      .4      ]P                  P!                  R(]&! R)R.4      ]&! R2R.4      ^ .R3]&! R3R24      R..R4^R5]&! R4R24      R*..4      R+ 4       4       t'R,t(V t)R# )6
TestUniqueix  c                   R pVP                  RV4      p\        V4      p	\        WV4       \        V	4      \        V4      8X  g   Q hVP                  RV4      p\        VRRR4      w  r\        WV4       \        WV4       \        V	4      \        V4      8X  g   Q hVP                  RV4      p\        VRRR4      w  r\        WV4       \        WV4       \        V	4      \        V4      8X  g   Q hVP                  RV4      p\        VRRR4      w  r\        WV4       \        WV4       \        V	4      \        V4      8X  g   Q hVP                  RV4      p\        VRRR4      w  rp\        WV4       \        WV4       \        WV4       \        V	4      \        V4      8X  g   Q hVP                  RV4      p\        VRRR4      w  rp\        WV4       \        WV4       \        WV4       \        V	4      \        V4      8X  g   Q hVP                  R	V4      p\        VRRR4      w  rp\        WV4       \        WV4       \        WV4       \        V	4      \        V4      8X  g   Q hVP                  R
V4      p\        VRRR4      w  rr\        WV4       \        WV4       \        WV4       \        WV4       \        V	4      \        V4      8X  g   Q h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)formatr   r   type)r   r   r    rJ   rK   r"   r   base_msgro   vjj1j2j3s   &&&&&&&       r$   	check_allTestUnique.check_allz  s   2ooh+1I1%Aw$q'!!!oonb1aue,1%1#&Aw$q'!!!oo.3ae,1%1#&Aw$q'!!!ooor2at,1%1%Aw$q'!!!oo?D1dD%0	r1%23'23'Aw$q'!!!oo>C1dE40	r1%23'2#&Aw$q'!!!oo@"E1eT40	r1%23'2#&Aw$q'!!!oo  468:q$d3r1%23'23'2#&Aw$q'!!!r'   c                    . 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   rm   )r   typess   & r$   	get_typesTestUnique.get_types  sO    R\\,/0R\\*-._%%&r'   c           	     :   . 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                  ! \         P                  ! V4      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                  ! \         P                  ! V4      4      \         P                  ! V4      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                  ! \         P                  ! V4      4      \         P                  ! V4      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   ONNN r#  Tr1  .)r0  )r0  r1  :r   NNg       @)r2          natz
2020-12-26z
2020-12-24DhN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   )rH  i      ?      )y      ?        rT  r   )r   r   rU  r   r;   )r   r   r   )r   r   r   r   )r   r   r   y       @      y      ?      ?)r   r   r   )r   r   r   r   r   )r   r   r   r   )r   multiplyrC  r   r;  emptylenlistzipr   rw   r   char	chararrayzerosr   r-   intpr(  complex
datetime64timedelta64)r   r   r    rJ   rK   r"   rB  r   aabbunqinva1a2a2_inva1_idxa3_idxa3_invuaua_idxua_invua_cntrK  all_nanss   &                       r$   test_unique_1dTestUnique.test_unique_1d  s   !B&"R'KKb)  B!B!BNN2211  XXc!fb!1XXc!fb!1rrq- #XXd3q9or*XXd3q9or*rrq- $GGBIIbM"rN	
 %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RWWRYYq\*BGGBK8RYYqt4r6lCRYYq6VERYYq5F|D rvvxbff)=wsBFF?ST'#rvv"67 RWWRYYq\*BGGBK8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           	        V P                  4       pVP                  R 4       V F  p\        P                  ! . V4      p\        P                  ! . V4      p\        P                  ! . \        P                  4      p\        P                  ! . \        P                  4      p\        P                  ! . \        P                  4      pV P                  W4WVWr4       K  	  R# )SUN)rC  rA  r   r   r   r;  )r   rB  r   r   r    rJ   rK   r"   s   &       r$   test_unique_zero_sized!TestUnique.test_unique_zero_sized4  s     TBR AR A"bhh'B"bhh'BRXX&ANN1/ r'   c           	         ! 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                       ] tR tRtRtR# )1TestUnique.test_unique_subclass.<locals>.SubclassiA  r1   N)r2   r3   r4   r5   r6   r1   r'   r$   Subclassry  A  s    r'   rz  rg   )r-   bufferNrP  rQ  rR  rN  rO  )r   ndarrayrV  rC  r   rI   r;  )r   rz  rJ   rK   r"   rB  r   r   r    rb  rc  s   &          r$   test_unique_subclassTestUnique.test_unique_subclass@  s    	rzz 	 "R'KKb)  B.32>AR0A!''6B!''6BNN2211 r'   c                v    . ROp. ROp\        VRR7      p\        \        VP                  4       4      V4       R# )appleFsortedN)r  bananar  cherrydater  figgrape)r  r  r  r  r  r  r   r   r  r}   r   arr
unq_sortedrf  s   &   r$   "test_unique_byte_string_hash_based-TestUnique.test_unique_byte_string_hash_basedQ  s/    VJ
C& 	6"))+.
;r'   c                v    . ROp. ROp\        VRR7      p\        \        VP                  4       4      V4       R# )   caféFr  N)	r  cafer     naïvenaive   résumér  resumer  )r  r  r  r  r  r  r  r  s   &   r$   %test_unique_unicode_string_hash_based0TestUnique.test_unique_unicode_string_hash_based[  s4    
 P
C& 	6"))+.
;r'   c                h   \         P                  ! . R NRNRNR NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRN\        RR7      R7      p. ROp\        VR	R
R7      p\	        R V 4       4      p\        V^4       \        R V 4       4      p\        WR4       R# )   straßeNstrasse   niñonino   élèveeleve	na_objectrg   FTr  	equal_nanc              3   (   "   T F  qR J x  K
  	  R # 5irz   r1   .0r   s   & r$   	<genexpr>FTestUnique.test_unique_vstring_hash_based_equal_nan.<locals>.<genexpr>       /BqdB   c              3   0   "   T F  qf   K  Vx  K  	  R # 5irz   r1   r  s   & r$   r  r         ;r!AAr   
bbbbbbbbbbbbbbbbbbbb<   ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß<   ééééééééééééééééééééééééééééééeeeeeeeeeeeeeeeeeeeennnnnnnnnnnnnnnnnnnnnnnnnnnnnn(   ññññññññññññññññññññ,  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb   ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß   éééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé,  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee  nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnX  ññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r	   r   sumr   r  r   r   r   unq_sorted_wo_nonerf  
count_none
a1_wo_nones   &     r$   (test_unique_vstring_hash_based_equal_nan3TestUnique.test_unique_vstring_hash_based_equal_nanh  s   HH %% % 	%
 % % % % % % % % % %  !%" #%$ %%& '%( )%* +%, -%. /%0 1%4 5%6 7%8 9%: ;%< =%> ?%@ A%B C%D E%F G%H I%L -M'
P
* Aet4
 /B//
Z#;r;;
::r'   c                h   \         P                  ! . R NRNRNR NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRN\        RR7      R7      p. ROp\        VR	R	R
7      p\	        R V 4       4      p\        V^4       \        R V 4       4      p\        WR4       R# )r  Nr  r  r  r  r  r  rg   Fr  c              3   (   "   T F  qR J x  K
  	  R # 5irz   r1   r  s   & r$   r  JTestUnique.test_unique_vstring_hash_based_not_equal_nan.<locals>.<genexpr>  r  r  c              3   0   "   T F  qf   K  Vx  K  	  R # 5irz   r1   r  s   & r$   r  r    r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   &     r$   ,test_unique_vstring_hash_based_not_equal_nan7TestUnique.test_unique_vstring_hash_based_not_equal_nan  s   HH %% % 	%
 % % % % % % % % % %  !%" #%$ %%& '%( )%* +%, -%. /%0 1%4 5%6 7%8 9%: ;%< =%> ?%@ A%B C%D E%F G%H I%L -M'
P
* Aeu5
 /B//
Z#;r;;
::r'   c                    \         P                  ! . RO^,          \        RR7      R7      p\        \        \
        VRR7       R# )r  Nr  rg   Fr  )
r  r  r  Nr  r  r  r  Nr  )r   r   r	   r   r   r   )r   r   s   & r$   test_unique_vstring_errors%TestUnique.test_unique_vstring_errors  s9    HH  -
 	j&!u=r'   argc                    \         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.
r  FTN)
r   r   r   r   r   rC      r   r   r   )r   r   r   rZ  r   )r   r  r   res_not_sorted
res_sortedr  rn   s   &&     r$   test_unsupported_hash_based&TestUnique.test_unsupported_hash_based  sl     HH56Aq6G%GC;GYY1vBdBsDkB
 <MCs- =r'   c                B   \        \        V P                  \        4       \        \        V P                  R \        3R\        3.4       \        \
        \        \        P                  ! ^
4      ^R7       \        \
        \        \        P                  ! ^
4      RR7       R# )r   r    axisN)	r   rk   _run_axis_testsr   r   r
   r   r   r,   )r   s   &r$   test_unique_axis_errors"TestUnique.test_unique_axis_errors  sd    i!5!5v>i!5!5SzC=1	3 	i2Q?i2R@r'   c                    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r   r   r   )r   r{   r   r   )r   ro   inpinp_arrs   &   r$   test_unique_axis_list TestUnique.test_unique_axis_list  sR    .)$**S/6#A.wQ0GM6#A.wQ0GMr'   c                F   . 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 failedrg   FTr  z"Negative zero equality test failedrJ  Nra          )rA  r   r   rm   r   floatr  r,   r)  r   viewr   r   r   r   )r   rB  r-   ro   r   r   s   &     r$   test_unique_axisTestUnique.test_unique_axis%  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                j    \         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   rA   r   r   r   r   )r   r  r   uniqs   &&  r$   test_unique_1d_with_axis#TestUnique.test_unique_1d_with_axis;  s%    HH-.a#4.r'   Nc           	         \         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)r1  r  Nr  )r   r   r   )r   r   r   )r   r   r   r   ndimr   take)r   r  r   r  re  s   &&   r$   test_unique_inverse_with_axis(TestUnique.test_unique_inverse_with_axisA  sV    HHiIyAB1T=	SXXqvv1=1bggdd;<r'   c                *   \         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   )rI   r-   Tr  r0  r1  r2  )rI   r  N)r   r   )r   r   )r   r   r   r   r   r   r   )r   rW  r   r   r   r-   r   r   rangerX  rY  )
r   single_zeror  idxre  cntrI   multiple_zerosr  expected_shapes
   &         r$   test_unique_axis_zeros!TestUnique.test_unique_axis_zerosH  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                f   \         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)  rg   T)r0  r2  z6Unique returned different results when asked for indexN)r  r   r   r   r   ?   r  r   r   r   r   r   r   r  r   )r   r   mamasked_equalr   r   r   mask)r   r   r   r6  v2rS  r"   ro   s   &       r$   test_unique_maskedTestUnique.test_unique_maskedl  s|    HHF"$EEq!$IIaL99QTFqF166277C0166277C0r'   c                    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'bhilqr  Nra   r  )r   fmtr   r   r    s   &    r$    test_unique_sort_order_with_axis+TestUnique.test_unique_sort_order_with_axisy  sG     ;B2$b)A		!!$AqSX. r'   c                   \         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# )r   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=1rG  z/Unique's return_inverse=True failed with axis=1z.Unique's return_counts=True failed with axis=1N)r   r   r   r   )r   r   r   r   )r   r   r   r  )r   r   r   )r   r   r   r   r   r  )
r   r-   r   ro   r   data3dr  r  re  r  s
   &&        r$   r  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           	        \         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   Fr  Nr   r   r(  r   r   )r   r   rd  not_unqs   &   r$   test_unique_nanequals TestUnique.test_unique_nanequals  s    HHaBFFBFFBFF34iil))A/3!RVV 567BHHa-H$IJr'   c                v   \         P                  ! \         P                  R RR\         P                  ) RR RR\         P                  RRR \         P                  ) R.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#\        V4      \        V4      8X  g   Q h\        V\        4      '       g   V3p\        V\        4      '       g   V3p\        W#4       F9  w  rE\        \         P                  ! V4      \         P                  ! V4      4       K;  	  K  	  R# )r#  rJ  g      @r$  g      @Fr  T)r2  r  )r1  r  )r0  r1  r2  r  Nr  )r   r   r(  unique_valuesr   unique_countsunique_inverse
unique_allrX  
isinstancetuplerZ  r   rw   )r   r  res_unique_array_api
res_uniquers   rn   s   &     r$   test_unique_array_api_functions*TestUnique.test_unique_array_api_functions  si   hhS#wc3RVVT3
   %		#/
   %		#TUC
 !!#&		#deD
 c"		!%#'"&#	1
, 0 +,J???2E::(<'>$j%00(]
$'(<$I RWWV_bggh.?@ %J=1
r'   c                   \         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   TrI  Nr;   )r   r   r   )
r   r   r   r   rI   r  r  r   r/  inverse_indices)r   r  expected_valuesexpected_inversefuncr   s   &     r$   test_unique_inverse_shape$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                   \         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)strictN)r   matrixr   Tr   r{   r   )r   r   r!  r-   maturn   s   &&&&   r$   test_unique_with_matrix"TestUnique.test_unique_with_matrix  sU     iio$$U+%%CIIcN99RZZ_-1t4r'   c                   \         P                  ! \         P                  ^ ^ \         P                  .4      p\         P                  ! R\         P                  .4      p\         P                  ! V^ RR7      p\	        W24       R# )r   rJ  Tr  r  Nr  r   arr1drn   r   s   &   r$   'test_unique_axis0_equal_nan_on_1d_array2TestUnique.test_unique_axis0_equal_nan_on_1d_array  sQ    "&&!Q/088RL)5qD96,r'   c                   \         P                  ! \         P                  ^ ^ \         P                  .4      p\         P                  ! R\         P                  .4      p\         P                  ! VRRR7      p\	        W24       R# )r   rJ  Tr+  Nra   r  r,  s   &   r$   &test_unique_axis_minus1_eq_on_1d_array1TestUnique.test_unique_axis_minus1_eq_on_1d_array  sQ    "&&!Q/088RL)5rT:6,r'   c                &   \         P                  ! \         P                  ^ ^ \         P                  .4      p\        P                  ! \
        RR7      ;_uu_ 4        \         P                  ! VRRR7       RRR4       R#   + '       g   i     R# ; i)r   zinteger argument expectedr   rJ  Fr+  N)r   r   r(  r   r   rk   r   )r   r-  s   & r$   'test_unique_axis_float_raises_typeerror2TestUnique.test_unique_axis_float_raises_typeerror
  sS    "&&!Q/0]]9,GHHIIe#7 IHHHs   A??B	r   FrL  r/  rJ  y              @c                    \         P                  ! W!R 7      p\         P                  ! V4      p\        V4      \        V4      ^,
          8X  g   Q hR# )rg   N)r   r   r   rX  )r   r   r/  r  r'  s   &&&  r$    test_unique_complex_signed_zeros+TestUnique.test_unique_complex_signed_zeros  s9    
 HHV&IIaL1vVq(((r'   r1   )r0  r1  r2  ra   )Nr   ra   )r   r   r   )r   r   r   r  i8iy             )*r2   r3   r4   r5   r;  rC  rq  ru  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.  r1  r4  r-   r_  r8  r6   r7   r8   s   @r$   r-  r-  x  s    6"pxLt
02"<<H;TH;T> [[U$WX. Y.AN>, [[VaW-/ ./
 [[V]3= 4="?H1/*:XK)AV	K [[


		
	 [[[5$-8[[Wrxx&<=5 > 95--8
 [[TBHHSM288C=#AB[[Xb)974;La(P)-wtT/BB(G),agc46H"(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-  r1   r'   r$   <module>r?     sD      R R R $ & c	# c	#L^
) ^
)r'   