K idZddlZddlZddlmZmZmZmZmZm Z m Z ddl m Z ddl mZmZmZmZGddZGdd Zy) z-Test functions for 1D array set operations. N)ediff1d intersect1disin setdiff1dsetxor1dunion1dunique) AxisError)assert_array_equal assert_equal assert_raisesassert_raises_regexc  eZdZdZdZdZdZdZdZe jjde jgde j d e jd fe jgde j e jgd e j d d fe jgde j" e je jd fgdZe jjde jgde j& dde jgde j& fe jgde j e jdge j( d e jgde j fe jgde j* dde jgde j* fe jgde j dde jgde j fgdZe jjdgddZe jjdgddZd Ze jjdgdd!Zd"Ze jjdgdd#Ze jjdd d$gd%Zd&Ze jjd'e j"e j&fe j&e j"fe j>e j@fe j@e j>fe j>e j&fe j&e j>fe jBe jfge jjdgdd(Z"e jjd)e jd*d+ge jB e jd,d-ge j ge jjdgdd.Z#e jjdgdd/Z$d0Z%d1Z&d2Z'd3Z(d4Z)d5Z*d6Z+d7Z,d8Z-d9Z.d:Z/y ); TestSetOpsctjgd}tjgd}tjgd}t||d}t||tjgd}tjgd}tjgd}t||}t||tgtggy)Nrrr)rrrT assume_unique)rrrrr)rrrrrrr)nparrayrr )selfabecceds f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/numpy/lib/tests/test_arraysetops.pytest_intersect1dzTestSetOps.test_intersect1ds HH\ " HH_ % XXi  1D 11b! HH_ % HH* + XXi  1 1b!2{2r23cGdd}|}t||}t||tgdgd}t|gdy)NceZdZddZy)4TestSetOps.test_intersect1d_array_like..TestNc,tjdS)Nr)rarange)rdtypecopys r$ __array__z>TestSetOps.test_intersect1d_array_like..Test.__array__(syy|#r&)NN)__name__ __module__ __qualname__r.r&r$Testr)'s $r&r3rrr)rr )rr3rress r$test_intersect1d_array_likez&TestSetOps.test_intersect1d_array_like%sA $ $ F!Q3")Y/3 *r&ctjgd}tjgd}t||dd\}}}tjgd}t||t|||t|||tjgd}tjgd}t||d\}}}tjgd}t||t|||t|||tjgd gd g}tjgd gd g}t||dd\}}}tj||j }tj||j } tjgd } t| ||t| || tjgdgdg}tjgdgdg}t||d\}}}tj||j }tj||j } tjgd} t| ||t| || y)Nrrrr)rrrT)rreturn_indices)rrr)rrrrrrr)rrrrrrr)r:)rrrr9)rr;r)rrrr9) r; )rr9rr;)rrrr9r9)rrr;rr)rrrr)r=r>r;r)rrr;)rrrr unravel_indexshape) rrr r"i1i2eeefui1ui2eas r$test_intersect1d_indicesz#TestSetOps.test_intersect1d_indices1s HH\ " HH\ "1DN 2r XXi 1b!1R5"%1R5"% HH* + HH- .1T: 2r XXl #1b!1R5"%1R5"% HHlM2 3 HHlN3 41DN 2rr177+r177+ XXl #2qv&2qv& HHo7 8 HHlN3 41T: 2rr177+r177+ XXi 2qv&2qv&r&c^tjgd}tjgd}tjgd}t||}t||tjgd}tjgd}tjgd}t||}t||tjgd}tjgd}tjgd}t||}t||tgtggy) Nrr)rrrr4)r9rrrrrrrr9rr;rrr9rrr;rrrr rrr r!r"s r$ test_setxor1dzTestSetOps.test_setxor1dXs HH\ " HH_ % XXi  QN1b! HHY  HHY  XX( ) QN1b! HH\ " HH\ " XX( ) QN1b!2xB/0r&ctjgd}tjgd}tjgd}t||d}t||tjdgdgdgd gg}tjd d gd dgg}tjgd}t||d}t||y) NrLrMrKTrrr;rrr9rrrNrOs r$test_setxor1d_uniquezTestSetOps.test_setxor1d_uniqueps HH\ " HH\ " XX( ) Q .1b! HHqcA3aS) * HHq!fq!f% & XX( ) Q .1b!r&c tjg}tjdg}tjddg}tgt|tdgt|dtdgt|dtddgt|ddtgt|tdgt|tgdt|d d tgd t|d d gd dgtdd gt|d tgdt|d dgtd dgt|d tgdt|d d gy)Nrrr)to_begin)to_end)rTrU)rrr?rr?)rr9rrr;rr9r;)rrr;)rr9r)rrr r)r zero_elemone_elemtwo_elems r$ test_ediff1dzTestSetOps.test_ediff1ds"HHRL 88QC=88QF#2wy12A3 A >?A3 ! <=B7GI1$MN2wx01A3 129gh1&MN?"8q!faVL NAq678A#>?9gh1v&FGAq678a#@A9gh!Q&HIr&zary, prepend, append, expectedr4r,NrU)rrrrT)?g@g"@cvd|d}tt|5t|||dddy#1swYyxYw)Nz dtype of `z` must be compatiblearyrUrT)r TypeErrorr)rr_prependappendexpectedmsgs r$!test_ediff1d_forbidden_type_castsz,TestSetOps.test_ediff1d_forbidden_type_castssB:8*$89 C 0 & !$ & & & &s/8zary,prepend,append,expectedii)rrrrr)rrrr)rrrrr)rrrrfctj|||}t|||j|jk(sJy)Nr^)rrr r,)rr_rarbrcactuals r$test_ediff1d_scalar_handlingz'TestSetOps.test_ediff1d_scalar_handlings<:#)%,. VX&||x~~---r&kind)Nsorttablec d}tj|tgdh fd}tjdj gd}tj gdgdgd g}|||d d g}d }|||tj d }||||||||||d|||d|dddk7rg} || |||| || | ttj tjfD]} dk(r| tjk(r| tj tjhvrtj gd| } n | thvrtj gd} tj g| } ||  || | || | y)Ncltj|jj}||vSN)rasarrayflattentolist)rr s r$ _isin_slowz(TestSetOps.test_isin.._isin_slows* 1 %%'..0A6Mr&r)otypesexcludedcLt||}||}t||y)Nrj)rr )rr xy isin_slowrjs r$assert_isin_equalz/TestSetOps.test_isin..assert_isin_equals&Q%A!QA q! $r&rrr)r=)rrr) !)r?r;)rr9)r?rrrr9rlr[TFF)r vectorizeboolr+reshaperint64float64)rrjrsr{rr r"dfrxr,ar empty_arrayrzs ` @r$ test_isinzTestSetOps.test_isins LLTFaSI  % IIbM ! !) , HHlI|< =!QV  !Q HHQK!Q!Q!Q !Q!Q!Q 7?A a # a # a #BHHbjj1 8Ew5BJJ#62::..XXl%84&XX23((2U3K k2 . b+ . k; 7 8r&c~dD]>}gd}gd|z}tjgd}t||d|}t||d|d<tjgd }t||d|}t||d \|d<|d <tjgd }t||d|}t||tjgd }gd|z}gd}t|||}t|||gd|zz}gd}t|||}t||tjgd}tjgd|z}tjgd}t|||}t||tjgd}tjgd|z}tjgd}t|||}t||tjddg}tjddg|z}tjddg}t|||}t||Atjdg}tjdg}tjdg}t|||}t|||dvrttgg|gyy)Nrr=rrTFTTT)rrjr;r)FFTT)rr;r)TFTFrrrrrrrrrrrrrrr})FTFTTTTTTFTFFFrw)rrr)TTTTTTTTTTTFTT)rrrrr)rrrrrr)TFTTTrrF>Nrkrrrr )rrjmultrr r!r"s r$test_isin_additionalzTestSetOps.test_isin_additionalsj/ &DA$&A34BQD9A q" %AaD45BQD9A q" %JAaD!A$45BQD9A q" %CDAD A4BQ%A q" %I$$A+BQ%A q" %&A4/0A34BQ%A q" %)A+d23A9:BQ%A q" %!Q A!Q$'A5%.)BQ%A q" %_/ &b HHaSM HHaSM XXug  AD !1b! > ! tB6 ; "r&ctjgd}tjddg}tjgd}t||}t||y)N)rr r"rer"rr rr")TFTFFTFFrrOs r$test_isin_char_arrayzTestSetOps.test_isin_char_arrayPsG HH= > HHc3Z  XXK L AJ1b!r&c dD]X}tjgd}gd|z}ttjt |||t ||d|Z|dvrdD]}tjgdtj }gd|z}tj|tj }ttjt |||t ||d|y y ) zTest isin's invert parameterrrr}rwTinvertrj>Nrkr[N)rrr rrfloat32)rrjrrr s r$test_isin_invertzTestSetOps.test_isin_invertYs  CDCDAD A ryya)>?#AqDA C C > ! GHHG"$**.$HHQbjj1"299T!QT-B#C#'1T#EG  G "r&cZtjgdtj}tjgdtj}tjgdt}t |t ||t tj |t ||dtjgdtj}tjgdtj}tjgd }t ||d }t ||y ) z(Hit the standard isin code with integers)rrrrrreAr[)rrrr)rrrrrrrTrr)rrrrrrrrN)rrrrr rr)rrr rcr!r"s r$!test_isin_hit_alternate_algorithmz,TestSetOps.test_isin_hit_alternate_algorithmns HH,BHH = HH^288 4881>8T!QZ0299X.Q$0GH HH\ 2 HH) : XX/ 0 AT *1b!r&c tjddg}tjgd}tjddg}t|t|||ttj|t||d|y)z&Test that isin works for boolean inputTF)FFFrwrN)rrr rr)rrjrr rcs r$test_isin_booleanzTestSetOps.test_isin_boolean~sn HHdE] # HH* +88UDM*8140 2299X.1T= ?r&rkctjjd}|jddd}|jddd}t ||}|j d}|j d}t |t |||y)z(Test that isin works for timedelta inputrdr=)sizetimedelta64[s]rwN)rrandom RandomStaterandintrastyper )rrjrstaterr truth a_timedelta b_timedeltas r$test_isin_timedeltazTestSetOps.test_isin_timedeltas|&&q) NN1cN + NN1cN +Q hh/0 hh/0 5${Kd"KLr&ctjgdd}|}tjt5t ||ddddy#1swYyxYw)Nrrrrr[rlrw)rrpytestraises ValueErrorrrrr s r$test_isin_table_timedelta_failsz*TestSetOps.test_isin_table_timedelta_failssE HHY&6 7  ]]: & % AG $ % % %s A  Az dtype1,dtype2c&tj|tj}tjgd|}|rtjgd|}ntjgd|}tjgd}|dk(xr(|tjk(xr|tj k(}|r3t jtd5t||| d d d y tt||| |y #1swYy xYw) z7Test that isin works as expected for mixed dtype input.)rrrrr[)ir)rr)TTFFrlzexceed the maximum)matchrwN) r issubdtype signedintegerrint16int8rr RuntimeErrorrr ) rdtype1dtype2rjis_dtype2_signedar1ar2rcexpect_failures r$test_isin_mixed_dtypez TestSetOps.test_isin_mixed_dtypes==1A1ABhh|62 ((>8C((=7C88676 bhh  46RWW#4  |3GH *S#D) * * tC48( C * *s DDdatallllc|d}tj|||}t|ddg|jtj}tj|||}t|ddgy)z>Test values outside intp range (negative ones if 32bit system)rrwFTN)rrr rint32)rrjrqueryr5s r$test_isin_mixed_huge_valsz$TestSetOps.test_isin_mixed_huge_valssaQggdE-3 .{{288$ggdE-3/r&c|tjdD]}tjgdt}tjgd|}tjgdt}t t ||||||}}tjgdt}t t ||||y) z4Test that isin works as expected for bool/int input. AllIntegerrr[rrrr)FTTrw)TTTTN)r typecodesrrr r)rrjr,rr rcs r$test_isin_mixed_booleanz"TestSetOps.test_isin_mixed_booleans\\,/ @E-T:AU3Axx 34@H tAqt4h ?aqAxx 8EH tAqt4h ? @r&cdg}tjdgdz}tjdg}tj||}t||yNrr=Frrrrrcresults r$test_isin_first_array_is_objectz*TestSetOps.test_isin_first_array_is_objectsGfhhsRx 88UG$c"68,r&cd}tjdgdz}tjdg}tj||}t||yrrrs r$ test_isin_second_array_is_objectz+TestSetOps.test_isin_second_array_is_objectsEhhv{#88UG$c"68,r&cdg}tjdgdz}tjdg}tj||}t||y)Nr=Trrs r$ test_isin_both_arrays_are_objectz+TestSetOps.test_isin_both_arrays_are_objectsGfhhv{#88TF#c"68,r&c tjdtfdtfg}tjdg|}tjdgdz|}tjdg}tj ||}t ||y)Nfield1field2)rNr[r=T)rr,intobjectrrr )rdtrrrcrs r$+test_isin_both_arrays_have_structured_dtypez6TestSetOps.test_isin_both_arrays_have_structured_dtypessXX#6(:; <hh {"-hh {R'r288TF#c"68,r&ctjddgt}tjddgt}tjddg}tj||}t ||tj||d}t |tj |tjgdt}|dd}tjgdt}|dd}tjddg}tj||}t ||tj||d}t |tj |tjgdt}|dd}tjddgt}tjdd g}tj||}t ||tj||d}t |tj |y) Nrrr[Tr)r)rrrrV)rrrrF)rrrrr rrs r$'test_isin_with_arrays_containing_tuplesz2TestSetOps.test_isin_with_arrays_containing_tuplesshhay/hhay/88T4L)c"68,c$/6299X#67hh(7#2hhh(7#2h88T4L)c"68,c$/6299X#67hh(7#2hhhay/88T5M*c"68,c$/6299X#67r&ctjgd}tjgd}ttt||dtjgdt }tjgdt }ttt||dtj tjfD]}tjgd|}tjd tj|jg|}ttt||dtj||d }t|d gd gd zztj||d}t|d gd gd zzy )z&Test that isin raises expected errors.)rrrrr)rrr9r;r= quicksortrw)rrrr rr[rl)rVrrrrrVNTFrrk) rrr rrrrriinfomaxrr )rrrobj_ar1obj_ar2r, overflow_ar2rs r$test_isin_errorszTestSetOps.test_isin_errorsshh'hh'(j$S{C((.f=((.f=j$wGhh) =E((+59C88R%)<)<$=UKL c78r [[V%<=;<>;G("  [[V%<=?>? [[VdF^4M5M% [[ WWbhh  XXrww  XXryy ! YY ! XXrxx XXrxx YY !   [[V%<=D> D* [[V%#2995&*%RXX6& [[V%<= 0>  0 [[V%<= @> @----8B =D0$8$'= #r&rcDeZdZdZdZdZdZdZejjdgddZ d Z d Z d Zejjd d dgdZejjd gddZdZdZdZdZdZdZdZejjdgdgdggddgejjdddgejjd ej2ej4gd!Zy")# TestUniquecd}|jd|}t|} t| ||t| t|k(sJ|jd|}t|ddd\} } t| ||t| ||t| t|k(sJ|jd|}t|ddd\} } t| ||t| ||t| t|k(sJ|jd|}t|ddd\} } t| ||t| ||t| t|k(sJ|jd|}t|ddd\} } } t| ||t| ||t| ||t| t|k(sJ|jd |}t|ddd\} } } t| ||t| ||t| ||t| t|k(sJ|jd |}t|ddd\} } } t| ||t| ||t| ||t| t|k(sJ|jd |}t|ddd\} } } } t| ||t| ||t| ||t| ||t| t|k(sJy) Nzcheck {0} failed for type {1}values return_indexTFreturn_inverse return_countszreturn_index and return_inversezreturn_index and return_countsz return_inverse and return_countsz.return_index, return_inverse and return_counts)formatr r type)rrr rBrCr"rbase_msgrdvjj1j2j3s r$ check_allzTestUnique.check_allys2ooh+ 1I1a%Aw$q'!!!oonb1aue,11a%1b#&Aw$q'!!!oo.3ae,11a%1b#&Aw$q'!!!ooor2at,11a%1a%Aw$q'!!!oo?D1dD%0 2r1a%2r3'2r3'Aw$q'!!!oo>C1dE40 2r1a%2r3'2q#&Aw$q'!!!oo@"E1eT40 2r1a%2r3'2q#&Aw$q'!!!oo 468:q$d3 2r21a%2r3'2r3'2q#&Aw$q'!!!r&cg}|jtjd|jtjd|jd|jd|S)NrAllFloat datetime64[D]timedelta64[D])extendrrrb)rtypess r$ get_typeszTestUnique.get_typessO R\\,/0 R\\*-. _% %& r&c gddz}gd}gd}gddz}tjgdd}|j}|D]D}tj||}tj||} |j || ||||Fd}tj t ||}||ddtj t ||} || dd|j || ||||ddg}tjtt|||}tjtt|||} |j || ||||gd }ttj|d d ggd }gd } ddgddgddgg} t|} t| | t|d\} }t| | t|| tjjd}d|d<tj|d\} }t|tjdg}tj|dd}tj|dd}tj|dddd\}}t|jtj t|jtj t|jtj t|jtj dtj"dtj"g}ddtj"g}gd}gd}gd}ttj||ttj|d||fttj|d||fttj|d||fdtj"dt%d tj"t%dtj"g}ddt%d tj"g}gd!}gd"}gd#}ttj||ttj|d||fttj|d||fttj|d||ftj&d$}tj&d%|tj&d&|g}tj&d&tj&d%|g}gd}gd}gd}ttj||ttj|d||fttj|d||fttj|d||ftj(d$}tj(dd'|tj(dd(|g}tj(dd(tj(dd'|g}gd}gd}gd}ttj||ttj|d||fttj|d||fttj|d||ftj"gd)z}tj"g}dg}gd*}d)g}ttj||ttj|d||fttj|d||fttj|d||fy)+Nrrrrrrrr=rrrrrrrrrrrrrrrrrrrO)i)??rr)r()rrr*rr4rrrTr rr&.)r )r r g@r\)rrr)rrrr)rrr)ry@y??)rrr)rrrrr)rrrnatz 2020-12-26z 2020-12-24Dhrr)rmultiplyrrremptylenlistzipr r char chararrayzerosr r,intprcomplex datetime64 timedelta64)rrr rBrCr"rraabbunqinva1a2a2_inva1_idxa3_idxa3_invuaua_idxua_invua_cntr-all_nanss r$test_unique_1dzTestUnique.test_unique_1ds !B &   "R ' KK b )  2B!RB!RB NN2r2r1b 1 2  XXc!fb !1 XXc!fb !1 r2r2q"- # XXd3q!9or * XXd3q!9or * r2r2q"-$299R=8X*>? %1v1v1v& AY2s#Ad3 F2s#63' GG  a #YYq6 F6288A;/ 14031T2151426889<V\\277+V\\277+V\\277+V\\277+"&&#rvv &3 RYYq\2&RYYqt4r6lCRYYq6V ERYYq5F|Drvvxbff)=wsBFF?S T'#rvv"6 7 RYYq\2&RYYqt4r6lCRYYq6V ERYYq5F|DmmE" ]]< (#r}}\/JC PmmL)2==+F LRYYq\2&RYYqt4r6lCRYYq6V ERYYq5F|DnnU# ^^As #S"..C*@# FnnQ$bnnQ&.SubclassN)r/r0r1r2r&r$SubclassrP9s r&rQr"r#r=r$r r[r!)r,buffer)rndarrayr0rrrAr) rrQrBrCr"rrrr r<r=s r$test_unique_subclasszTestUnique.test_unique_subclass8s rzz  "R ' KK b )  2B.32>AR0A!''A6B!''A6B NN2r2r1b 1  2r&arg)r r rctjgd}tjddgfddi|di}tjddgfddi|di}t||D]\}}t ||y)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. ) rrrrrr;rrrrsortedFTN)rrr r4r )rrUrres_not_sorted res_sortedarrrcs r$test_unsupported_hash_basedz&TestUnique.test_unsupported_hash_basedIsw HH5 6Aq6G%GC;GYY1vBdBsDkB  < .MC sH - .r&c<tt|jttt|jdtfdtfgtt t tjddtt t tjddy)Nrr r=raxis) r r`_run_axis_testsrrr r rr+)rs r$test_unique_axis_errorsz"TestUnique.test_unique_axis_errorsYsdi!5!5v>i!5!5SzC=1 3 i2Q?i2R@r&cd}gdgdg}tj|}tt|dt|d|tt|dt|d|y)NzUnique failed on list of listsrrrrr^r)rrpr r )rrdinpinp_arrs r$test_unique_axis_listz TestUnique.test_unique_axis_listasR.)$**S/6#A.wQ0GM6#A.wQ0GMr&c,g}|jtjd|jtjd|jd|jd|jdtfdtfg|jdtfdt fg|D]}|j |d}tjdtj jd d jt}tjd d gd d ggt }tt|d||d}tjddgddgddgddgg}tjddgg}tt|d||y)Nrrrrrr z&Non-bitwise-equal booleans test failedr=r[rVrFTrr^z"Negative zero equality test failedgr,)rrrrbrfloatrar+rrviewrrr r )rrr,rdrrs r$test_unique_axiszTestUnique.test_unique_axishsO R\\,/0 R\\*-. _% %& sCj3*-. sCj3,/0 (E   ' (7yy288,44R;@@FE4=4,7tD6$Q/=2xx$sDkD#;d LMD#;-(6$Q/=r&r_rrVchtjgd}t||}t|gdy)N)rrrrrrrrr^r8rrr r )rr_rxuniqs r$test_unique_1d_with_axisz#TestUnique.test_unique_1d_with_axis~s' HH- .ad#4.r&)NrrVctjgdgdgdgdg}t|d|\}}t|j| |jndt |tj |||y)N)rrr)rrrT)r r_rr^)rrr r ndimr take)rr_rxrnr?s r$test_unique_inverse_with_axisz(TestUnique.test_unique_inverse_with_axissZ HHiIyA B1T= cSXXqvv1=1bggdCd;3!Q 0#6$T48Nc3=43<.?277415t<>3 3S9r&c tjddtjtjtjg}tj|}tj|d}t |tjdtjgt |tjdtjtjtjgy)NrF equal_nan)rrrr r )rrr>not_unqs r$test_unique_nanequalsz TestUnique.test_unique_nanequalss HHaBFFBFFBFF3 4iil))A/3!RVV 567BHHa-H$IJr&c `tjtjdddddtjddg }tj|tj|dftj |tj|ddftj |tj|dd ftj|tj|dddd ffD]>\}}t|t|k(sJt||D]\}}t||@y) NrrrrFrT)rr)r r)r r rr) rrr unique_valuesr unique_countsunique_inverse unique_allr2r4r )rr[res_unique_array_api res_uniquerhrcs r$test_unique_array_api_functionsz*TestUnique.test_unique_array_api_functionsshh1aArvvq!<=  % #/    % #TUC  !!#& #deD   c" !%#'"&#  1  5 , *0+,J? ??$'(%%r}}4 KD#YF  > /1G1G H sFMM&2H2H$I J  Kr&r)rrr)rrrr transposeFTr,ctj|j|}|r |j}tj|}tjtj |}t ||dy)NT)strict)rmatrixrTr rpr )rrrr,maturcs r$test_unique_with_matrixz"TestUnique.test_unique_with_matrix#sWiio$$U+ %%C IIcN99RZZ_-1ht4r&N)r/r0r1rrrKrMrTrrrr\rbrgrkrorsr|rrrarrrrrrrr2r&r$r r wsM6"psLj02" [[U$WX .Y .AN>, [[VaW-/./  [[V]3=4= "?H 1/*:XK5> K [[       [[[5$-8 [[Wrxx&<=5>95r&r )__doc__rnumpyrrrrrrrr numpy.exceptionsr numpy.testingr r r rrr r2r&r$rsARRR&c #c #L{5{5r&