^aW fddlZddlZddlZddlZddlZddlmZddlZddl m cm Z ddl mcmZddlm cmZddlm cmZddlmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"ddl#m$Z$ddl%m&Z&dej j'j()DZ*de*DZ+Gdd Z,Gd d Z-d Z.Gd dZ/ej01dde2eDdZ3ej01dde2eDej4dZ5ej01dej6ej7gdZ8ej09e ddZ:ej01dde;ej<dzgdZ=ej09e!dej01dde;ej<dzgdZ>dZ?ej09e dej01ddej<dze;dej<zgd Z@d!ZAej09e!dej01d"ejBjCejBjDejd#d$%ejd&d'%gd(ZEd)ZFej01d*ejGd+d,ZHej01d*ejGd+ej01d-d.d/gd0ZIGd1d2ZJdS)3N)param) assert_ assert_equal assert_raisesassert_array_equalassert_almost_equalassert_array_almost_equalassert_no_warningsassert_allclose HAS_REFCOUNTsuppress_warningsIS_WASMIS_PYPY)requires_memory)picklecFg|]}t|tj|S) isinstancenpufunc).0objs o/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib64/python3.11/site-packages/numpy/core/tests/test_ufunc.py rs8222!#rx002222c$g|] }d|jv |S)zO->O)types)rufs rrrs$GGGbFbh4F4Fr4F4F4Frc&eZdZdZdZdZdZdS)TestUfuncKwargscDtttjdddtttjddttttjdddgtttjdddtttjddd tttjddd tttjddd tttjdddgdS)Nsafe)castingx)dtypex)extobjx)outxii->i)sigx) signaturexF)subokxT)wherexr TypeErrorraddintselfs rtest_kwarg_exactz TestUfuncKwargs.test_kwarg_exactsiA????iAc::::iAv>>>>iAD9999iAG<<<<iA'BBBBiAe<<<<iAtf======rcNtttjdddddS)Nr"r#r*)sig signaturerr0rr1r3s rtest_sig_signaturez"TestUfuncKwargs.test_sig_signature's2iA7 ' ) ) ) ) ) )rctttjdddttttjdddtdS)Nr"r#r*)r7dtype)r8r<r/r3s rtest_sig_dtypezTestUfuncKwargs.test_sig_dtype+sXiA7 ! ! ! !iA ! ! ! ! ! !rcPtttjdddgddS)Nr"r#r'T)extobjparrotr9r3s rtest_extobj_refcountz$TestUfuncKwargs.test_extobj_refcount1s'iAtfTJJJJJJrN)__name__ __module__ __qualname__r5r:r=rArrrr r sU>>>)))!!! KKKKKrr c (eZdZdZejejfejejfejejfejejfejejfej ej fejejfej ej fgZ e j de ejddfdZdZe j de eddfdZGdd Zd Zefd Zd Zefd ZefdZdZe j dedZdS)TestUfuncGenericLoopsabTest generic loops. The loops to be tested are: PyUFunc_ff_f_As_dd_d PyUFunc_ff_f PyUFunc_dd_d PyUFunc_gg_g PyUFunc_FF_F_As_DD_D PyUFunc_DD_D PyUFunc_FF_F PyUFunc_GG_G PyUFunc_OO_O PyUFunc_OO_O_method PyUFunc_f_f_As_d_d PyUFunc_d_d PyUFunc_f_f PyUFunc_g_g PyUFunc_F_F_As_D_D PyUFunc_F_F PyUFunc_D_D PyUFunc_G_G PyUFunc_O_O PyUFunc_O_O_method PyUFunc_On_Om Where: f -- float d -- double g -- long double F -- complex float D -- complex double G -- complex long double O -- python object It is difficult to assure that each of these loops is entered from the Python level as the special cased loops are a moving target and the corresponding types are architecture dependent. We probably need to define C level testing ufuncs to get at them. For the time being, I've just looked at the signatures registered in the build directory to find relevant functions. zinput_dtype,output_dtyperr"ctjd|||}||ddd}t||t|j|dSN r<r#rfullr rr<r4 input_dtype output_dtypefxyxsyss rtest_unary_PyUFuncz(TestUfuncGenericLoops.test_unary_PyUFuncis_ WRQ| < < < QrUU33Q3ZARX|,,,,,rc ||zSNr)rQrRs rf2zTestUfuncGenericLoops.f2ps !t rctjd|||}|||ddd}t||t|j|dSrHrKrMs rtest_binary_PyUFuncz)TestUfuncGenericLoops.test_binary_PyUFuncssa WRQ| < < < Qr2YYsss^ARX|,,,,,rceZdZdZdZdS)TestUfuncGenericLoops.fooc*tjdSNr"rbool_r3s r conjugatez#TestUfuncGenericLoops.foo.conjugate|8A;; rc*tjdSr^r_r4rs r logical_xorz%TestUfuncGenericLoops.foo.logical_xorrbrN)rBrCrDrarerrrfoor\{s2        rrfctjdt}ttjtj|dkdS)NrIrJr")ronesobjectrallabsr4rQs rtest_unary_PyUFunc_O_Oz,TestUfuncGenericLoops.test_unary_PyUFunc_O_Os@ GBf % % %rvayyA~&&'''''rctjd|t}ttjtj|dkdS)NrIrJT)rrLrirrjrar4rfrQs r$test_unary_PyUFunc_O_O_method_simplez:TestUfuncGenericLoops.test_unary_PyUFunc_O_O_method_simplesI GBV , , ,r|A$.//00000rctjdt}ttjtj||dkdSrH)rrhrirrjr1rls rtest_binary_PyUFunc_OO_Oz.TestUfuncGenericLoops.test_binary_PyUFunc_OO_OsC GBf % % %rva||q())*****rctjd|t}ttjtj||dS)NrIrJrrLrirrjreros rtest_binary_PyUFunc_OO_O_methodz5TestUfuncGenericLoops.test_binary_PyUFunc_OO_O_methodsH GBV , , ,r~a++,,-----rctjd|t}ttjtj||dS)N)rIr#rJrtros r test_binary_PyUFunc_On_Om_methodz6TestUfuncGenericLoops.test_binary_PyUFunc_On_Om_methodsH GJV 4 4 4r~a++,,-----rc"tjddgd}t|dtsJtj|}|jtjdksJt |tjddgddS)Ny?@y@OrJry?y@@)rarrayrcomplexrar<rr4arrress rtest_python_complex_conjugatez3TestUfuncGenericLoops.test_python_complex_conjugateshd|3///#a&'*****l3yBHSMM))))3$S A A ABBBBBrrcztjtjdz Gfddtj}tjtj}tj|d}tjd5 ||}||}t |d|nV#t$rI}tt|5||dddn #1swxYwYYd}~nd}~wwxYwddddS#1swxYwYdS) z9Compare the result of the object loop with non-object onec"eZdZfdZxZS)ITestUfuncGenericLoops.test_unary_PyUFunc_O_O_method_full..MyFloatcv tS#t$r fdcYSwxYw)NcTttjjSrW)getattrrcoreumath)attrvalsrzgTestUfuncGenericLoops.test_unary_PyUFunc_O_O_method_full..MyFloat.__getattr__..s #?727=$#?#?#D#Dr)super __getattr__AttributeError)r4r __class__rs `rrzUTestUfuncGenericLoops.test_unary_PyUFunc_O_O_method_full..MyFloat.__getattr__sYE 77..t444%EEEDDDDDDDDEs %88)rBrCrDr __classcell__)rrs@rMyFloatrsH E E E E E E E E E ErrrJrzraiserjN) rfloat64pir{errstater astype Exceptionrtype) r4rrnum_arrobj_arrres_numres_objexcrs @r"test_unary_PyUFunc_O_O_method_fullz8TestUfuncGenericLoops.test_unary_PyUFunc_O_O_method_fullsjq!! E E E E E E Ebj E E E(3bj111(773< RZ 2>2>"B DI  [7CC>@fQ---DC-  [7CC?AQ!---DC-(((8;1111+++36....47....CCC [W&9::HH;:HHHrrFcdSrWrrrr_pickleable_module_globalrsDrc FeZdZdZdZejeddZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ ej!dddgd Z"ej!de#d!d"#e#d$d%#gd&Z"ej!d'gd(d)Z$d*Z%d+Z&d,Z'd-Z(ej!d.e)j*e)j+gd/Z,d0Z-d1Z.eje/d2d3Z0d4Z1d5Z2d6Z3d7Z4d8Z5d9Z6ej!d:d;gdge)j7d<fd=dge)j7d=fe)j8d>e)j7d?fggd@AdBZ9dCZ:dDZ;dEZdHZ?dIZ@dJZAdKZBdLZCdMZDdNZEdOZFdPZGdQZHdRZIdSZJdTZKdUZLdVZMdWZNdXZOdYZPdZZQd[ZRd\ZSd]ZTd^ZUd_ZVd`ZWdaZXdbZYeZdcddZ[deZ\dfZ]dgZ^dhZ_diZ`djZadkZbdlZcej!dmdnej!doe)jdgdpe)jddqgdrgdqgge)jdgdsgdtgdpgfduZeej!dvdwe)jdgdxfd=gdyfdzfej!d{e)jf d|fd}Zgd~ZhdZidZjdZkdZldZmdZndZodZpdZqej!de)jrdese)jrdetjufdZve)j*e)jwe)jxe)jye)jze)j{e)j|e)j}gZ~ej!de)jde)jdzej!d.e~dZej!de)jdej!d.e)j*e)jwe)jxgdZdZdZdZdZej!de)j8d=e)j8d<e)jddgdZdZdZdZdZdZdZdZdZdZdZdZdZdZej!d.e)je)jgej!d%ddefeddfdedfgdZej!d.e)je)je)jgej!d%edefedefdeefgdZej!d.e)je)je)jgdZej!d.e)je)je)jgdZej!d.e)je)je)jgdZdZdZdZdZej!ddqdrgdZej!dgdej!ddqdrgej!de)j*je)j{jgdZdZdZdZdZej!de)jde)jdgdZej!de)jde)jdgdZej!de)jde)jdgdZdS) TestUfuncc vtdtjdzD]}ttjtjt j|t jutjtjtj |}t|tj udS)Nr#r")protocol) rangerHIGHEST_PROTOCOLrloadsdumpsrsin_rational_teststest_add)r4protors r test_picklezTestUfunc.test_pickles1f59:: 5 5E FLbf7<">">">??BD&I J J J ,v|O,D5: < < <==C C?33 4 4 4 4 5 5rcdd}ttj|tjudS)NsMcnumpy.core _ufunc_reconstruct p0 (S'numpy.core.umath' p1 S'cos' p2 tp3 Rp4 .)rrrrcos)r4astrings rtest_pickle_withstringz TestUfunc.test_pickle_withstrings/H W%%/00000rz 'is' check does not work on PyPyreasonctjt_t jt jtj}|tjusJdSrW)umt_pickleable_module_global_ufuncrrrrrrds rtest_pickle_name_is_qualnamez&TestUfunc.test_pickle_name_is_qualnamesG +.*M!'l6<(A(GHHIIc9999999rc d}tj|}tjtt tj|dz tj|dz dz}t tj||dddgddS)Nr#)r"rw) raranger{listzipravelrr1reduceat)r4LrQidxs rtest_reduceat_shifting_sumz$TestUfunc.test_reduceat_shifting_sums  IaLLhtC !a% 0 0")AE2B2BQ2FGGHHIIOOQQ26??1c2233Q37FFFFFrcdS)aLTry to check presence and results of all ufuncs. The list of ufuncs comes from generate_umath.py and is as follows: ===== ==== ============= =============== ======================== done args function types notes ===== ==== ============= =============== ======================== n 1 conjugate nums + O n 1 absolute nums + O complex -> real n 1 negative nums + O n 1 sign nums + O -> int n 1 invert bool + ints + O flts raise an error n 1 degrees real + M cmplx raise an error n 1 radians real + M cmplx raise an error n 1 arccos flts + M n 1 arccosh flts + M n 1 arcsin flts + M n 1 arcsinh flts + M n 1 arctan flts + M n 1 arctanh flts + M n 1 cos flts + M n 1 sin flts + M n 1 tan flts + M n 1 cosh flts + M n 1 sinh flts + M n 1 tanh flts + M n 1 exp flts + M n 1 expm1 flts + M n 1 log flts + M n 1 log10 flts + M n 1 log1p flts + M n 1 sqrt flts + M real x < 0 raises error n 1 ceil real + M n 1 trunc real + M n 1 floor real + M n 1 fabs real + M n 1 rint flts + M n 1 isnan flts -> bool n 1 isinf flts -> bool n 1 isfinite flts -> bool n 1 signbit real -> bool n 1 modf real -> (frac, int) n 1 logical_not bool + nums + M -> bool n 2 left_shift ints + O flts raise an error n 2 right_shift ints + O flts raise an error n 2 add bool + nums + O boolean + is || n 2 subtract bool + nums + O boolean - is ^ n 2 multiply bool + nums + O boolean * is & n 2 divide nums + O n 2 floor_divide nums + O n 2 true_divide nums + O bBhH -> f, iIlLqQ -> d n 2 fmod nums + M n 2 power nums + O n 2 greater bool + nums + O -> bool n 2 greater_equal bool + nums + O -> bool n 2 less bool + nums + O -> bool n 2 less_equal bool + nums + O -> bool n 2 equal bool + nums + O -> bool n 2 not_equal bool + nums + O -> bool n 2 logical_and bool + nums + M -> bool n 2 logical_or bool + nums + M -> bool n 2 logical_xor bool + nums + M -> bool n 2 maximum bool + nums + O n 2 minimum bool + nums + O n 2 bitwise_and bool + ints + O flts raise an error n 2 bitwise_or bool + ints + O flts raise an error n 2 bitwise_xor bool + ints + O flts raise an error n 2 arctan2 real + M n 2 remainder ints + real + O n 2 hypot real + M ===== ==== ============= =============== ======================== Types other than those listed will be accepted, but they are cast to the smallest compatible type for which the function is defined. The casting rules are: bool -> int8 -> float32 ints -> double Nrr3s rtest_all_ufunczTestUfunc.test_all_ufuncs b rr#rctjddd\}}}}}t|dt|dt|dt||jft|ddS)Nr#r" (i),(i)->())r"r"rrrrtest_signaturer size_inferredr4enablednum_dimsixsflagssizess rtest_signature0zTestUfunc.test_signature04s/2/A q-0!0!,3uWa   X{+++S&!!!UT/1222UE"""""rctjddd\}}}}}t|dt|dt|dt|dt|ddS)Nr#r"z (),()->()rrrrrrrrrs rtest_signature1zTestUfunc.test_signature1>s|/2/A q+00,3uWa   X{+++S"UBUBrctjddd\}}}}}t|dt|dt|dt||jfdzt|ddS)Nr#r"z(i1,i2),(J_1)->(_kAB)r#r"r")rr"r#rwrrrrrrrs rtest_signature2zTestUfunc.test_signature2Hs/2/A q)0+0+,3uWa   Xy)))S,'''UT/1!3444U,-----rctjddd\}}}}}t|dt|dt|dt||jfdzt|ddS)Nr#r"z(i1, i12), (J_1)->(i12, i2)r#r"r#)rr"r#r"rwrrrrs rtest_signature3zTestUfunc.test_signature3Rs/2/A q10303,3uWa   Xy)))S/***UT/1!3444U,-----rctjddd\}}}}}t|dt|dt|dt||jfdzt|ddS)Nr#r"z(n,k),(k,m)->(n,m)r#r#r#rr"r"r#rr#rwrrrrrs rtest_signature4zTestUfunc.test_signature4[s/2/A q&0(0(,3uWa   Xy)))S,---UT/1!3444UL)))))rc"tjddd\}}}}}t|dt|dt|dt||j|jz|j|j|jzft|ddS)Nr#r"z(n?,k),(k,m?)->(n?,m?)rrr)rrrr can_ignorers rtest_signature5zTestUfunc.test_signature5es/2/A q*0,0,,3uWa   Xy)))S,---UT/$/A!/!/$/AC D D D UL)))))rctjddd\}}}}}t|dt|dt|dt|dt|ddS)Nr"z(3)->()r"rrrwrrs rtest_signature6zTestUfunc.test_signature6qs|/2/A q)00,3uWa   Xv&&&S$UD!!!UD!!!!!rctjddd\}}}}}t|dt|dt|dt|d|jdft|ddS)Nrwr"z(3),(03,3),(n)->(9)r"r#r"r"rrrr"r#rrwr rrs rtest_signature7zTestUfunc.test_signature7zs/2/A q'0)0),3uWa   X|,,,S/***UQ 2A6777UJ'''''rctjddd\}}}}}t|dt|dt|dt||j|jdft|ddS)Nrwr"z(3?),(3?,3?),(n)->(9)rrrrrrrrrrs rtest_signature8zTestUfunc.test_signature8s/2/A q)0+0+,3uWa   X|,,,S/***UT_d.@!DEEEUJ'''''rctjddd\}}}}}t|dt|dt|dt|dt|ddS)Nr"z ( 3) -> ( )rrrrrs rtest_signature9zTestUfunc.test_signature9s|/2/A q/0#0#,3uWa   Xv&&&S$UD!!!UD!!!!!rctjddd\}}}}}t|dt|dt|dt||j|jdft|ddS)Nrwr"z ( 3? ) , (3? , 3?) ,(n )-> ( 9)rrrrrrs rtest_signature10zTestUfunc.test_signature10s/2/A q40606,3uWa   X|,,,S/***UT_d.@!DEEEUJ'''''rctt5tjdddddddS#1swxYwYdS)Nr#r"z ((i)),(i)->()r ValueErrorrrr3s r(test_signature_failure_extra_parenthesisz2TestUfunc.test_signature_failure_extra_parenthesiss : & & 6 6  q!_ 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 9==ctt5tjdddddddS#1swxYwYdS)Nr#r"z (i),)i(->()r r3s r.test_signature_failure_mismatching_parenthesisz8TestUfunc.test_signature_failure_mismatching_parenthesis : & & 4 4  q!] 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4r ctt5tjdddddddS#1swxYwYdS)Nr#r"z(i),->()r r3s r2test_signature_failure_signature_missing_input_argz>>?Hyy J J J HT & & & q#1Q &&&!!! \, - - = = F1cs8 < < < < = = = = = = = = = = = = = = =Q """!!! q#78<<<<Q """!!! \, - - A A F1cwAx @ @ @ @ A A A A A A A A A A A A A A AQ """!!! q#-1hGGGGQ """""sH)B  BB)DDD GG  G 5II"Ictjdgdgd}tjdgdg}t||tjdgdgd}tjdgdg}t||t jt 5tjdddddddS#1swxYwYdS)NrwrNNNr7rWr8)rr1rmaximumrraisesr0)r4res1res2s rtest_signature_all_Nonez!TestUfunc.test_signature_all_NonesvqcA3$6777vqcA34&&&z1#s(:;;;z1#s##4&&& ]9 % % , , F1a7 + + + + , , , , , , , , , , , , , , , , , ,sB??CCcttjtj}tjdd||dfdS)Nrwrr-)rrr<rr1)r4 float_dtypes rtest_signature_dtype_typez#TestUfunc.test_signature_dtype_typesA28BJ//00  q! [$?@@@@@@r get_kwargc,ttSNrJdictrQdts rrzTestUfunc.st!}}}rc2ttddfSNr-r9r;s rrzTestUfunc.stq$o666rcHtjd}tjtj|}||usJtjdi||j|ksJtjdd}tj||fi|djdksJdS)Nint64r"r#sm8m8[s]r"r#)rr<rrrr1 timedelta)r4r6r@int64_2tds r&test_signature_dtype_instances_allowedz0TestUfunc.test_signature_dtype_instances_alloweds !!,v|E2233G####v11ii001175@@@@ \!S ! !vb"00 $006'AAAAAArc"t|Sr8r:rQs rrzTestUfunc.sDqMMMrr<idc(t|ddfSr>rJrKs rrzTestUfunc.sDAtT?;;;rr8c Fd}tjt|5tjdi|tjddddn #1swxYwYtjt|5tjdi|tjddddn #1swxYwYtjt|5tjdi|dddddS#1swxYwYdS)Nz/The `dtype` and `signature` arguments to ufuncsmatchrwrr@zm8[ns])rwr)rr/r0rr1r< newbyteorder)r4r6msgs rrHz0TestUfunc.test_signature_dtype_instances_alloweds@ ]9C 0 0 0 H H F G G99RXg%6%6%C%C%E%EFF G G G H H H H H H H H H H H H H H H ]9C 0 0 0 : : F 9 999RXh%7%788 9 9 9 : : : : : : : : : : : : : : : ]9C 0 0 0 0 0 F / /99X.. / / / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s5?A))A-0A--CC C .DDDr)r same_kindr$ctjtjdtjdd}|jdksJtjtjdtjdd}|jdksJt jt5tjdtjdddddn #1swxYwYt jt5tjdtjddddddS#1swxYwYdS)N?r#drJ)NNrWr-rw) rldexpfloat32int_r<rr/r0uint64)r4rrs rtest_partial_signature_mismatchz)TestUfunc.test_partial_signature_mismatchshrz"~~rwqzz===yChrz"~~rwqzz=NOOOyC]9 % % 2 2 HR1S 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ]9 % % D D HR11B C C C C D D D D D D D D D D D D D D D D D Ds$**C  C$'C$*D;;D?D?c*tjt5tjtjdtjdddddn #1swxYwYtjtjdtjdtjt5tjtjdtjddddddS#1swxYwYdS)Nr"r#)erWNr,)rr/r0rr1float16r[rr3s r*test_partial_signature_mismatch_with_cachez4TestUfunc.test_partial_signature_mismatch_with_cachest ]9 % % F F F2:a==")A,,4D E E E E F F F F F F F F F F F F F F F rz!}}bjmm,,, ]9 % % F F F2:a==")A,,4D E E E E F F F F F F F F F F F F F F F F F Fs##sii-izii>i)Nrs->i)rr/r0rr1r UnicodeDecodeErrorr3s rtest_signature_errorszTestUfunc.test_signature_errors$s ]9MOOO ) ) F1a4 ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) )]: & & , , F1a7 + + + + , , , , , , , , , , , , , , ,]: & & , , F1a7 + + + + , , , , , , , , , , , , , , ,]: & & + + F1a6 * * * * + + + + + + + + + + + + + + +]: & & 1 1 F1a< 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]- . . 3 3 F1a> 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3skAAA$BB B ,CCC4DDD<E  E$'E$F))F-0F-c.tjgdd}tj||dtj|dtjdd}tj||dtj||ddS)N)z 2010-01-02z 1999-03-14z1833-03z>M8[D]rJMrIrCm)rr{r.reducerr1)r4r'r~s rtest_forced_dtype_timesz!TestUfunc.test_forced_dtype_times9s H<<.call_ufuncIs!53&59,777 7r)rV@@rJnorNequivrbr$) rr{rYrr<rRrrr/r0r)r4rrsr~arr_bsexpectedrs ` rtest_cast_safetyzTestUfunc.test_cast_safetyDs  8 8 8 8 8h|||2:666CI224455:c??jd+++8S))) ]9 % % - - Jvt , , , , - - - - - - - - - - - - - - -j1118S)))]9 % % B B JvRZ A A A A B B B B B B B B B B B B B B Bjrz6BBB:cjj44558S)))))s$B00B47B41DDDc  tjd}tjd}tjd}dD]}tj|}||}||}t j|| g|| gD]#\}} |dvr t |t | z }nt|t| z }tj|| } ttj | j d} t| || |dvrt| jjd kn"t| jj|jkdD]9} tj| } tt tj|| | :d D]} tj| } |dvr$tt tj|| | ?t|t| z }ttj | j d} t#5}|t&tjtj | js(ttj | jd }nd }dddn #1swxYwYtjd d 5tj|| | } dddn #1swxYwYtj| s| dkr{t| || |t| jj| jkdD]T} tj| } t |t | z }ttj | j d} t#5}|t&tjtj | js(ttj | jd }nd }dddn #1swxYwYtj|| | } tj| st| || |t| jj| jkV%tjdtj }tj||} t| dkt| jjd ktj||} t| dkt| jjd kdS)NrIrbhilqBHILQefdgFDGFDGgV瞯<)rtol bhilqBHILQrrJefdggwMhignore)invalidoverr^)ratolrrV)rr{r<r itertoolsproductr|float true_dividemaxfinfo resolutionr rnamerr0r filter UserWarningisnantinyrisfiniterhr`)r4r'r(tgttcr<aabbrQrRrrtcoutdtoutsuprs rtest_true_dividezTestUfunc.test_true_dividecs HRLL HRLLhsmm%G :G :B"B"B"B")2s)b2#Y??A :A :1;;!!**WQZZ/CC((588+CnQ**28C==3U;;St4444%%CINi78888CINbg5777*PPEHUOOE!)R^QOOOOO#>>EHUOOEU{{%iAUSSSSS#AhhuQxx/"28E??#=uEE.00.CJJ{333#%8BHUOO,@#A#A.'*28E??+?'H'H'- ............... [IIIDD"$.AU"C"C"CCDDDDDDDDDDDDDDD!{3//%ESLL$'St$GGGG %* <===="::EHUOOE!!**WQZZ/Crx95AAD*,,* ;///!x(<==*#&rx';V#D#DDD#)D *************** .AU;;;C;s++! #C4dCCCCCINej89999:eA :H GBbh ' ' 'nQ""s  )+,,,naR##s  )+,,,,,s8A0K K K $L L L A0Q Q Q cJtjdtj}t|dz |jdz z ddtjdtj}t|dz |jdz z dddS)NrJ$@rr )rrhrYrsumsizerr4r's rtest_sum_stabilityzTestUfunc.test_sum_stabilitys GCrz * * *QWMMOOafsl:AqAAA GCrz * * *QWMMOOafsl:ArBBBBBrfp errors don't work in wasmc &ttjtjtjtjfD]}dD]:}t jd5}t jdt|||dzzdz }tj | }tt|d|ztj d|dz|}ttj||tt|d|zttj|ddd|tt|d |zdddn #1swxYwY>>VUVWWW!\\ # # # # #rc ttjddgddggddgdttjddgddggdd ddg d d gdS) NrVrtru@TFwherer@)rrr"@)rrrr3s rtest_sum_wherezTestUfunc.test_sum_wheresRVb"XBx0u FFFKKKRVb"XBx0q"#'-11135r( < < < < ()z (2,)->(1,)z(4, 3)->(4, 1))idscRtjtd5tj||dddn #1swxYwYtjtd5tjtjd||ddddS#1swxYwYdS)Nznon-broadcastablerPr!r)rr/r rpositiver1rhrs rtest_out_broadcast_errorsz#TestUfunc.test_out_broadcast_errorsNs]:-@ A A A & & K % % % % & & & & & & & & & & & & & & &]:-@ A A A . . F272;; - - - - . . . . . . . . . . . . . . . . . .s!?AA%*BB #B cd}tjddd}tt j||tj||zd|d }tjdd}|d z}tt j||tj||zd|dS) Nz type castrshortrJrrrrztype cast on one argumentr)rrrrrrrr )r4rSr'r(s rtest_type_castzTestUfunc.test_type_cast\s Iaw ' ' ' / / 7 73;q!,,bfQqSr.B.B.B#& ( ( ( () IaLL  ( ( G!#+a"3"3RVAaCb5I5I5I*- / / / / / /rcd}tjddd}tt j||tj||zd|d }tjdd d}tt j||tj||zd|tjd d }tjd d }t||zjtjdt||zjtjdt||zjtjdt||zjtjdttj |jtjdttj |jtjdttj |jtjdttj |jtjddS)Nz big endianrz>i4rJrrrrz little endianzf8zQ'("d;;;;3;q!,,bfQqSr.B.B.BCPPPP IbMM ! !!Q * * C C' QwZT22223;q!,,bfQqSr.B.B.BCPPPPPPrcd}tjdd}tjdddz}tjdd }t j|||t |tj||zd | d |dd<t j||| t |tj||zd | d}tjdd }t j|||t |tj||zd | d |dd<t j||| t |tj||zd | d}tjdd }t j|||dt |dtj||zd | d |dd<t j|||d t |dtj||zd | dS)Nzoutput argumentrr#rwr#rrr"rr2rJrrrr!zoutput argument with type castint16z(output argument with incontiguous layoutr#rwr).r)rrrr%rrrr)r4rSr'r(rs rtest_output_argumentzTestUfunc.test_output_arguments6 IbMM ! !) , , IaLL  + +a / HV5 ) ) ) Aq!1bfQqSr222C@@@@!!! Aqa    1bfQqSr222C@@@@. HV7 + + + Aq!1bfQqSr222C@@@@!!! Aqa    1bfQqSr222C@@@@8 HYg . . . Aq!F)$$$1V9bfQqSr&:&:&:CHHHH!!! Aqai((((1V9bfQqSr&:&:&:CHHHHHHrc tj}tjdd}tjddd}|||}t |||zd|||gd}t |||zd|||gd }t |||zd|||gd }t |||zd|||ddg}t |||zd|||tjdtjdtj g}t |||zd|||d d g}t |||zd |||d d g}t || dd d |zdtt|||dtt|||dgtt|||ddgtt|||ddgtt|||ddgttj|||gdttj|||gdttj|||gdtt|||d dgtj}tjdd}tjdddz}|||}t |tj|||||gd}t |tj|||||gd}t |tj|||||gd}t |tj| dd d | d ddd tjd}||||gd}t%||ut |tj||tjd}||||gd}t%||ut |tj|| dd dd tt|||d tt|||dtt|||dtt|||gtt|||d!gtt|||gd"tt|||d#dgd#dgd#dggtt|||d!d!d#dggtt|||gd$ttj|||gdttj|||gd%tt|||gd&tjd'}tt|||d tt||||ddd f(tt||d|d dgtt||||d d dgtttjd)d)d gtt|||d dgd*+dS),N;@rwrwrwr3@rwr"rwrrrr)axes)rrr)rrrrJrr#r")r r)rrr)rrrrrrrr#r#r#r")r r r )rDrr))rrrDr rw)r#r#rwr")r"r )r"r#r#rw)r r )rwrrr r+r)r r N)r r r)r r )rrrr!rVT)r r@)rrrrrrrint8r{int32 transposerr0r  AxisErrormatrix_multiplymatmulrrr%r1)r4rr'r(rmmrWzs rtest_axes_argumentzTestUfunc.test_axes_arguments+ IcNN " "9 - - Ic3   ' ' 2 2 GAqMM1q1ukk"oo... GAq111 2 2 21q1ukk"oo... GAq||| , , ,1q1ukk"oo... GAq / / /1q1ukk"oo... GAqBx ( ( (1q1ukk"oo... GAq RXb-I-I-IJ K K K1q1ukk"oo... GAq1v & & &1q1ukk!nn--- GAq1v & & &1q{{1a33a7< > >Q1bi1oo771aCCDDD iQ2222iQ2222iQ0NOOOOj"a4444j"a(<<<<iQ0B0B0BCCCCi!Qr2hR2r(%C E E E Ei!Qh2r(%C E E E EiQ0J0J0JKKKKblB1<<<@@@@blB13K3K3KLLLLj"a1O1O1OPPPP HV  j"a1...j"a!!!Q$8888j"adAQF;;;;j"a!Aq6BBBBiRqc::::iQAtDDDDDDrc tj}tjdd}tjddd}|||}t |||zd|||d}t |||zdtj|}|||d|}t||ut |||||d }t |||zd tjd d }tjd d d }tjddd }t tj |||d tj||z|zd t tj |d tj |d t tj |dtj |dtj |}tj ||d }t||ut |tj |d tj ||d}t||ut |tj |dtt|||d d d gtt|||d gtj}tt|||dtjd|j}tt"tj ||d tttjddd dS)Nrrrrr rr)rr"rrrrIrr}r"rr")rr r"r#rwrJrV)rrrrrrr zeros_likerinnerwtcumsum empty_likerr0rrr<r r1) r4rr'r(rr"rWrrs rtest_axis_argumentzTestUfunc.test_axis_argumentsc+ IcNN " "9 - - Ic3   ' ' 2 2 GAqMM1q1ukk"oo... GAqr " " "1q1ukk"oo...mA GAqrs + + +S1a   GAqq ! ! !1q1ukk!nn--- IaLL  ( ( Ib"   % %f - - Ib"   % %f - -3;q!QQ7776!a%!)!444 6 6 63:aa000")AA2F2F2FGGG3:ab11129QR3H3H3HIIImA Jqc * * *q1bi222333 Jqc * * *q1bi333444 i!QQaVDDDDi!QaS9999  iQ2222hy000j#*aSqAAAAiRa888888rc tj}tjdd}tjddd}|||}t |||zd|||d}t |||zd|||d }t |||zdd tj|}|||d | }t||ut |||||dd }t |||zdd|||dd }t |||zdd |||d d }t |||zd d|||d d }t |||zd d |||gd d}t |||zd|||gdd }t |||zdd |||d d gd}t |||zd |||gdd }t |||zd d |||d dgd}t || ddd |zd|||d dgd }t || ddd |zdd |||gdd }t || ddd |zdd |||gdd }t ||| dd dzd d |||gdd }t || dd d| d ddzdd tj dtjdddtj tj fz}tj |}tj |d}t ||tj |d }t ||ddtj tj ftj dtjdddtj tj fz}tj|\}} tj|d\} } t | |t | | tj|d \} } t | |ddtj tj ft | | ddtj tj ftjdd}tjddd}tjddd} t tj||| d tj||z| zdd t tj||| d d tj||z| zd d t!t"|||dtj} t!t"| ||d t!t"| ||dt!t"tjddddS) Nrrrrr rFkeepdimsT)r#r"rr#rr )r r#)rrrrr#r")rr#r#)rr#r)rr#r"rwrrrrIrr}rtruerV)rrrrrrrrrreyenewaxisumldetslogdetrrr0rr1)r4rr'r(rr"rWrz expected_s expected_lcsclrrs rtest_keepdims_argumentz TestUfunc.test_keepdims_argument>s+ IcNN " "9 - - Ic3   ' ' 2 2 GAqMM1q1ukk"oo... GAq5 ) ) )1q1ukk"oo... GAq4 ( ( (1q1ukk"tk<<===mA GAq4S 1 1 1S1a   GAqrE 2 2 21q1ukk"uk==>>> GAqrD 1 1 11q1ukk"tk<<=== GAqq5 1 1 11q1ukk!ek<<=== GAqq4 0 0 01q1ukk!dk;;<<< GAq111E B B B1q1ukk"oo... GAq444t D D D1q1ukk"tk<<=== GAq1v 6 6 61q1ukk!nn--- GAqyyy4 8 8 81q1ukk!dk;;<<< GAq1v 6 6 61q{{1a33a7<>>6!a%!)"tDDD F F F3;q!QQFFF6!a%!)!dCCC E E E i!Q@@@@  iQD9999iQE::::iR%@@@@@@rctjdd}tjddd}tjddd}tt j|||tj||z|zdtjd d d }tjd d d }tjddd }tt j|||tj||z|zddS)NrrrIrr}rrrd|r,iD)rrrrrrrr4r'r(rs r test_innerwtzTestUfunc.test_innerwts( IaLL  ( ( Ib"   % %f - - Ib"   % %f - -3;q!Q//!AB1G1G1GHHH Ic3   ' ' 2 2 Ic3   ' ' 2 2 Ic3   ' ' 2 23;q!Q//!AB1G1G1GHHHHHrctjgd}tjgd}tjgd}ttj|||tj||z|zddS)z/Test generalized ufunc with zero-sized operandsrrJrrN)rr{rrrrr6s rtest_innerwt_emptyzTestUfunc.test_innerwt_emptysy HRt $ $ $ HRt $ $ $ HRt $ $ $3;q!Q//!AB1G1G1GHHHHHrc tjd}ttj||tjdtjd}tj|d||}t ||ut|tjtjd|d|d ftttjtjdtjdtttj|tj dtttj|tj dtjd tttj|tj dtjdd S) z Test with fixed-sized signature.rwrwrwrr#r"rrru)rwrN) rr&rrcross1dr%rvstackrr r)r4r'r"results r test_cross1dzTestUfunc.test_cross1ds< F1II3;q!,,bhv.>.>???hvQqT1c**# 629bhqkk1Q4!A$-G#H#HIIIj#+rvayy"&))DDDj#+q")B--@@@j#+q")B--&AQAQRRRj#+q")B--!MMMMMrcTtjdd}tjd}|ddtjf}tjdddz}t j||}t j||}t||tttj||t j||}t|| t j||}t j||}t||tjd}|tjddf}tjdd dz} t j||} t j||} t| | tttj||t j||} t| | t j| |} t j| |} t| | |j }| d d }t j||} t j||}t|| tttj||t j||}t|| t j| |}t j| |}t||tj |}t j| || }t||d |dd<t j| || }t||tj | }tttj|||t j|||}t|| dS)Nrrr#rrr"rwr)rr#r"r"rwrrr!r)rrrr'rrrrrr squeezerswapaxesr)r4mat single_veccol_vec col_vec_array mm_col_vecmatmul_col_vec matmul_colrow_vec row_vec_array mm_row_vecmatmul_row_vec matmul_rowmm_row_col_vecmatmul_row_col_vecmatmul_row_colmm_row_col_arraymatmul_row_col_arrayr"s rtest_can_ignore_signaturez#TestUfunc.test_can_ignore_signaturesimm##I..Yq\\ QQQ ]+ ! ,,\::Q> (g66 C11>:666 j#"5sJGGGZZ00 :z'9'9';';<<<(m<< C77>:666Yq\\ RZ]+ " --o>>B (#66 GS11>:666j#"5z3GGGZ C00 :z'9'9';';<<<(<< M377>:666)%..r266 ,Wg>> Z99-~>>>j#"5z:NNNJ ;;>>+A+A+C+CDDD.}mLL"z-GG/1ABBBm,--!-CHHH3 0111AAAj 3???3 0111mN++j#"5z:   jZ553 6 6 8 899999rc|tj|tjdSrW)compare_matrix_multiply_resultsrr@rr3s rtest_matrix_multiplyzTestUfunc.test_matrix_multiplys4 ,,RX666 ,,RY77777rcrtjtjdtjd}t |tjdtjtjdtjd}t |tjddS)N)rrI)rIrr)rIrI)rrrrhrr%res r test_matrix_multiply_umath_emptyz*TestUfunc.test_matrix_multiply_umath_emptys!"''"2"2BGG4D4DEE3 0 0111!"''"2"2BGG4D4DEE3 2 233333rc,tjtjddd|}tjtjddd|}d|jjz}fdfdd}d}dt ddd fdzfz}d }|D]F} |D]?} |D]8} |D]1} || | } || | }|o| jdu}|o|jdu}| j d |j d kr|| j d |j d rttj | |tj |d tjfdd | d tjddfzd |dt!| j dt!|j z3:AHt#|d ddS)Nr#rwrrJzmatrix multiply on type %sc|dkrdgfSd}|dz }|D]9}t|D]'}||dz gz}||||dz <|dz ||<||fz }(:|S)Nr"rr)r)nretbasepermrnew permute_ns rraz.permute_nsAvvv C9QqS>>D " "q""A!A#,C"1vC!HqSCFC6MCC " Jrc|dkrdSd}|dz }|D]1}||tdfzfz }||tddfzfz }2|S)Nr)rrr")slice)r\r]r^slslice_ns rrez:TestUfunc.compare_matrix_multiply_results..slice_nssAvvuC71Q3<)++E!QKK>)++Jrc&||kp |dkp|dkSr^r)s1s2s r broadcastablez@TestUfunc.compare_matrix_multiply_results..broadcastables81rQw1"' 1rrTrr.rr rzreference check)rr{randomrandr<rrcrr^shaper rrrr'rBstrr)r4tpd1d2rSri permute_3slice_3refp1p2rgrha1a2rares @@rrVz)TestUfunc.compare_matrix_multiply_resultss~ XbinnQ1--R 8 8 8 XbinnQ1--R 8 8 8*RX]:           2 2 2IaLL '!**tT2!6!6 8 :<< J JB J J! J JB% J J\\"--b1\\"--b1!9bgT&9!9bgT&9HRLBHRL88 - bhqk28A; G G95 # 3B ; ; "r#rz/':'C'CB'K'K')#rz!!!*;'<(=CE!G!G!G(+#bh----:=bh---/I)I JJJJ J J J S$(9::::::rc.tjdtdd}tj|jd|jddz zdzf|j}tj||tj tj |dddf|z dzd }|tj |jdt}t||tttj|dS) NrrJrrwrr"r#rr)rrrrrrmr<reuclidean_pdistsqrtrtriboolrrr )r4r'r"r(s rtest_euclidean_pdistzTestUfunc.test_euclidean_pdist4s Ib & & & . .q! 4 4h agaj1n5:s r test_cumsumzTestUfunc.test_cumsum>s: IbMMA6188::.....rctjgdt}ttj|dtjd|Dtttj|dtjd|Dtttj|dtjd|Dtttj|dtjd |Dtttj|dtjd |Dtttj|dtjd |Dtttj|dtjd |Dtttj|dtjd |Dtttj|tjd|Dtttj|dttj|ddS)N)rwNTFtestrJcg|]}|pdSrWrrrQs rrz1TestUfunc.test_object_logical..F!7!7!7!)t!7!7!7rTcg|]}|pdSTrrs rrz1TestUfunc.test_object_logical..Hrrrcg|]}|pdSrrrs rrz1TestUfunc.test_object_logical..Js!5!5!5a!'r!5!5!5rblahcg|]}|pdSrrrs rrz1TestUfunc.test_object_logical..Ls!9!9!9!!+v!9!9!9rcg|]}|odSrWrrs rrz1TestUfunc.test_object_logical..O!8!8!8!*!8!8!8rcg|]}|odSrrrs rrz1TestUfunc.test_object_logical..Qrrcg|]}|odSrrrs rrz1TestUfunc.test_object_logical..Ss!6!6!6q!(!6!6!6rcg|]}|odSrrrs rrz1TestUfunc.test_object_logical..Us!:!:!:1!,!:!:!:rcg|]}| Srrrs rrz1TestUfunc.test_object_logical..Xs!3!3!3Aa%!3!3!3rrw)rr{rir logical_or logical_and logical_notrmrs rtest_object_logicalzTestUfunc.test_object_logicalCs H777v F F FR]1d++!7!7Q!7!7!7vFFF H H HR]1d++!7!7Q!7!7!7vFFF H H HR]1b))!5!51!5!5!5VDDD F F FR]1f--!9!9q!9!9!9HHH J J J R^At,,!8!8a!8!8!8GGG I I IR^At,,!8!8a!8!8!8GGG I I IR^Ar**!6!6A!6!6!6fEEE G G GR^Av..!:!:!:!:!:&III K K K R^A&&!3!3!3!3!36BBB D D D R]))!,,a000R^**1--t44444rc4Gdd}tj|}t||kdttj||dtj|g}t||ktjdgttj||tjdgttj||ttjdgdS)NceZdZdZdS)8TestUfunc.test_object_comparison..HasComparisonscdS)N==r)r4others r__eq__z?TestUfunc.test_object_comparison..HasComparisons.__eq___strN)rBrCrDrrrrHasComparisonsr^s#     rrTrJr)rr{requalri)r4rarr0darr1ds rtest_object_comparisonz TestUfunc.test_object_comparison]s        ))**Ue^T***RXeU++T222..**+,,Ue^RXtf%5%5666RXeU++RXtf-=-=>>>RXeU&99928TF;K;KLLLLLrctjgdt}ttj|dttj|dttj|dtjgdt}ttj|dttj|dttj|d ttj |d ttj|d ttj|d ttjd ggtd ttjd dgggtd d dgttjd gtd dttjd gddggtdgd d ggddS)N)r'r(rrJabcrr'TFTr#rTFr"rr"rrw)rr)rr#rw) rr{rirrrminprodanyrjrs rtest_object_array_reductionz%TestUfunc.test_object_array_reductionks H___F 3 3 3RVAYY&&&RVAYY$$$RVAYY$$$ H((( 7 7 7RVAYY"""RWQZZ###RVAYY%%%RVAYY&&&RVAYY%%%RVAYY&&&RXse62226688!<<<RXAxj777;;FCCaVLLLRXqc00044Q4??CCCRXsQFm6:::c1#eT]c;;YYY H H H H Hrctjdt}dtdD|dd<tj||tj||t |tjddDttjdt}dtdD|d ddf<tj||d tj||d t |d ddftjd dDtdS) NrrJcg|]}dgSrrrrs rrzBTestUfunc.test_object_array_accumulate_inplace..(((!1#(((rr!cg|]}dg|z Srrrs rrzBTestUfunc.test_object_array_accumulate_inplace..$B$B$BqaSU$B$B$Br)r"rwrrIr#rcg|]}dgSr#rrs rrzBTestUfunc.test_object_array_accumulate_inplace..+++QaS+++rrrrcg|]}dg|z Srrrs rrzBTestUfunc.test_object_array_accumulate_inplace..rr)rrhrirr1 accumulaterr{r4r~s r$test_object_array_accumulate_inplacez.TestUfunc.test_object_array_accumulate_inplace~sbgav&&&((uQxx(((AAA #3''' #3'''38$B$BM$B$B$B&QQQ    gfF+++++%((+++AqqqD  #3R000 #3R0003q!!!t98$B$BM$B$B$B&QQQ     rcvtjtjgdt}t |tjgdtt jt5tjgdddddS#1swxYwYdS)N)r"rr#rJ)r"r"rwr"Nr#) rr1rr{rirrr/r0res r$test_object_array_accumulate_failurez.TestUfunc.test_object_array_accumulate_failuresf& A A ABB3& A A ABBB ]9 % % , , F  lll + + + , , , , , , , , , , , , , , , , , ,s?"B..B25B2ctjdt}dtdD|dd<tjdt}dtdD|dd<tj|tjd|tj|tjd|t||tjdt}dtdD|dddf<tjdt}d tdD|dddf<tj|tjd|d tj|tjd|d t||dS) NrrJcg|]}dgSrrrs rrz@TestUfunc.test_object_array_reduceat_inplace..rrcg|]}dgSrrrs rrz@TestUfunc.test_object_array_reduceat_inplace..rrr!rcg|]}dgSrrrs rrz@TestUfunc.test_object_array_reduceat_inplace..rrrcg|]}dgSrrrs rrz@TestUfunc.test_object_array_reduceat_inplace..rrrr) rrrirr1rrrrhrs r"test_object_array_reduceat_inplacez,TestUfunc.test_object_array_reduceat_inplaceshq'''((uQxx(((AAAhq'''((uQxx(((AAA RYq\\s333 RYq\\s3333$$$gfF+++++%((+++AqqqD gfF+++++%((+++AqqqD  RYq\\s<<< RYq\\s<<<3$$$$$rctjtjgdtddg}t |tjddgtt jt5tjgdddgddddS#1swxYwYdS)NrrJr"r#r) rr1rr{rirrr/r0res r"test_object_array_reduceat_failurez,TestUfunc.test_object_array_reduceat_failuresfoobh|||6BBBQFKK3$& A A ABBB ]9 % % 2 2 FOOLLL1a& 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s%B44B8;B8cgtjgtfD]}ttj|dttj|dttj|dttj|dtttj |tttj |dS)NrJrr"FT) rr{rirrrrrjrr rrrs rtest_zerosize_reductionz!TestUfunc.test_zerosize_reductionsbhr0001 1 1A A & & & Q ' ' ' E * * * D ) ) ) *bfa 0 0 0 *bfa 0 0 0 0  1 1rctjddg}ttj|jdtjddg}ttj|jdtjddg}ttj|jdtjddg}ttj|jddS)NFr"rr)rr{rrrjrrs rtest_axis_out_of_boundsz!TestUfunc.test_axis_out_of_boundss HeU^ $ $blAE2222 HeU^ $ $blAE3333 HeU^ $ $blAE2222 HeU^ $ $blAE333333rc ttjdddttjdddttjdddttjdddttjdddttjdddttj ddtttjtj ddtj utttjtj ddtj utttjtj ddtj utttjtj ddtj utttjddtj uGdd tj}tjd |}tttj||udS) Nrwrr @TFg@ceZdZdS)0TestUfunc.test_scalar_reduction..MyArrayNrBrCrDrrrMyArrayr Drrr")rrrrrrjrrrcrmrrrYr`ndarrayr{view)r4rr's rtest_scalar_reductionzTestUfunc.test_scalar_reductionsL RVAA&&&***RWSq)))3///RVDq)))4000RVE***E222RVAA&&&***RVCa(((#... RX__Q''+++ RWRZ__155566"*DEEERVBJsOO!44455CDDDRVBJsOO!44455CDDDRVBJsOO!44455CDDD RVAA&&&''283444     bj    HQKK  W % %RVAYY7*+++++rctjdtj}tjdtj}tjdtj}tj|||t |dtjd}tjdtj}tj|d|t |ddS)N)r3r1r!r#irJr) rrhr@rr1rr%rYsubtractr4r'r(rs rtest_casting_out_paramz TestUfunc.test_casting_out_params GJ ) ) GJ ) ) GJ + + q!Q HUOO HU"* - - - Aqa    Qrctjd}tjd}tjd}tj||||dzdkt |gdtjddddz}tj|ddg|ddgddggt |dd gd d ggtj|d|d d gt |dd gdd ggdS)Nrr#r"r"r)rr#rrrrrrrwrrrTF) rrrhr%r1rrrcrrs rtest_where_paramzTestUfunc.test_where_params  IaLL GAJJ HQKK q!1q5A:////Q---... IaLL A & & * QF1a&1a&)9::::Q!R2q'*+++ Aqae}5555Q!R2q'*+++++rctjdtj}tjdtj}dtjdtjz}tj|||gdt |gddS)NrIr) r"rrr"rrr"r"r"rr) r#rrr#rrr#r#r#r)rrhr@rr1rrs rtest_where_param_buffer_outputz(TestUfunc.test_where_param_buffer_outputs GB ! ! GB ! ! "'"bj)) ) q!"@"@"@AAAAQ@@@AAAAArctjdgtj}tjdgt}t tj||dgtjdgtj}tjdgt}t tj||dgdS)Nr"rJTr)rr{r@r}rr{rr4r'rls rtest_where_param_allocz TestUfunc.test_where_param_allocs HaS ) ) ) HdV4 ( ( (RWQa(((1#... HaS + + + HdV4 ( ( (RWQa(((1#.....rctjd}tjd}|dk}tj|d}tj||||tj||j|}t |||k||t|| rJdS)N)r)rr"rr)rr") rrk full_likeless broadcast_tormrrr}r)r4r'r(rr"b_wheres rtest_where_with_broadcastingz&TestUfunc.test_where_with_broadcastings I  Y ' ' I  Y ' 'Cl1a   1Es++++/!QW--e4AeHw.U1B1B41H1HIIIv;??$$$$$$$rc d|d<d|d<ttj|ddttj|dgdttj|dgd ttj|d ddgttj|dgdgd gd gttj|dgd gdgttj|d gd gd gttj|d|d|d<d|d<ttj|ddttj|dgdttj|dgdttj|d ddgttj|dgd gdgd gttj|dgdgd gttj|d gdgd gttj|d|d|d<d|d<ttj|ddttj|dgdttj|dgd ttj|d ddgttj|dgdgd gd gttj|dgdgd gttj|d gd gd gttj|d|dS)Nr".r)r"rrrr)rr"r"r"r)rr"r"rD)r"r"r"r"r#)r"r"r"r)rr"r)r"rr"r)r"rr"r")rrminimumrmrs rcheck_identityless_reductionz&TestUfunc.check_identityless_reduction%s#' RZ&&qt&44a888RZ&&qv&66 EEERZ&&qv&66 BBBRZ&&qv&66A???RZ&&qq&11%1\\<<<$N P P PRZ&&qq&11%1\\<<<$@ B B BRZ&&qq&11%.YY $: < < <RZ&&qr&22A666#' RZ&&qt&44a888RZ&&qv&66 EEERZ&&qv&66 BBBRZ&&qv&66A???RZ&&qq&11%1\\<<<$N P P PRZ&&qq&11%1\\<<<$@ B B BRZ&&qq&11%.YY $: < < <RZ&&qr&22A666#' RZ&&qt&44a888RZ&&qv&66 EEERZ&&qv&66 BBBRZ&&qv&66A???RZ&&qq&11%1\\<<<$N P P PRZ&&qq&11%1\\<<<$@ B B BRZ&&qq&11%.YY $: < < <RZ&&qr&22A66666rlctjdd}ddg|dddf<ddg|dddf<tj|d}~|ddksJ|ddksJdS) N)r#luint8r"rwrrrr)rr%r.rmr}s r&test_identityless_reduction_huge_arrayz0TestUfunc.test_identityless_reduction_huge_arraySshz7++FAAAqD VAAArE j!,, 1v{{{{2w!||||||rc\tjdd}||dS)NrCorderrrrrs r"test_identityless_reduction_corderz,TestUfunc.test_identityless_reduction_corder^0 HYc * * * ))!,,,,,rc\tjdd}||dS)NrFrrrs r"test_identityless_reduction_forderz,TestUfunc.test_identityless_reduction_forderbrrctjdddd}||dS)N)r#rrwrrr"r#rrrBrrs r&test_identityless_reduction_otherorderz0TestUfunc.test_identityless_reduction_otherorderfs@ HYc * * * 3 3Aq 9 9 ))!,,,,,rctjdddd}|ddddddf}||dS)N)rwrrrrr"r#rrs r%test_identityless_reduction_noncontigz/TestUfunc.test_identityless_reduction_noncontigjs[ HYc * * * 3 3Aq 9 9 abb!""abbjM ))!,,,,,rctjdd}|ddd}d|_|ddddddf}||dS)N)ii1rJr"rrwrr)rrrrmrrs r/test_identityless_reduction_noncontig_unalignedz9TestUfunc.test_identityless_reduction_noncontig_unalignedosm H^4 0 0 0 abbEJJTJ " " abb!""abbjM ))!,,,,,rcHttjgtt usJtjdt}tjg|tjt|dtusJdS)z The type of the result should always depend on the selected loop, not necessarily the output (only relevant for object arrays). rJNr"r<r) rrr1rmrir2r{rr)r4r"s r$test_reduce_identity_depends_on_loopz.TestUfunc.test_reduce_identity_depends_on_loopvs BFMM"FM3344;;;;ht6***  bc 444CG}}%%%%%%rcLttjgddttjgtjtjttjgtj tj ttjdgddttjdgddttjdgddttjdgddt ttjjgdt ttjjgdtj t5tjgdtdddn #1swxYwYttjgtj dtj dgt}tj|d}t|ddS) Nrrrr)rr<rIrJr)rrr.rmrinfrr r1rr/ri_NoValuer{r4r'rs rtest_initial_reductionz TestUfunc.test_initial_reductionsB RZ&&r1&55q999 RZ&&r26&::BFCCCRZ&&rBF7&;;bfWEEE RZ&&sA&66:::RZ&&sA&66:::RZ&&sA&66:::RZ&&sA&66::: j"*"3RFFFFj"&-TBBBB ]: & & : : FMM"d&M 9 9 9 : : : : : : : : : : : : : : : RV]]2r{];;Q??? HbT ( ( (fmmAqm))S"s(HHHc~tjd}tj|djdksJt jt5tj|ddddn #1swxYwYtjd}t jt5tj|ddddn #1swxYwYtj|dd}t|tj ddS)N)rrr"rrr)rrrr) rr%rrmrmrr/r rrhr}s r test_empty_reduction_and_idenityz*TestUfunc.test_empty_reduction_and_idenityshv~$$Sq$1174???? ]: & & / / N ! !#A ! . . . / / / / / / / / / / / / / / /hy!! ]: & & / / N ! !#A ! . . . / / / / / / / / / / / / / / /n##Ca#;;300000s$"BB B "C..C25C2r)rr"Nr)FTTTF)TFFFTFctjddd}|}tj|}tj|||tj|||}||}t||t||dS)Nrrwrrr) rrrcopyrrr1rmrrr)r4rrr'a_copya_checkrchecks rtest_reduction_with_wherez#TestUfunc.test_reduction_with_wheres IbMM ! !!Q ' '-"" A7%0000fmmADm66 D!!S%   1f%%%%%rr rr)TTF)NTrrctjddd}|}tj|jtj }tj|||tj ||||}| ||}t||dS)Nrrwr)rrrr) rrrrrLrmrrr.rmrr) r4rrrr'rrrrs r%test_reduction_with_where_and_initialz/TestUfunc.test_reduction_with_where_and_initials IbMM ! !!Q ' ''!'BF7++ A7%0000jE7KK D' 22S%     rctjddd}gd}tttjj||dS)Nrrwr r)rrrrr r.rmrs r#test_reduction_where_initial_neededz-TestUfunc.test_reduction_where_initial_neededsL IbMM ! !!Q ' ' j"*"3Qa@@@@@@rctjgdgdg}tj|d}t |gdtj|d}t |ddgtj|d }t ||t t tjj|d dS) N) @rtrt)rVrg?rr)rrrr"rtrrr)rr{dividermrrr rs r*test_identityless_reduction_nonreorderablez4TestUfunc.test_identityless_reduction_nonreorderables Hooo'7'7'78 9 9iqq))S///***iqq))S3*%%%iqr**S!j")"2AFCCCCCCrcd}d}d}ttjjd||tjjdd||tjjdd||tjjdd||tjjdd|tjjgtjtjdd||tjjdd||tjjdd||tjjdd||tjjddtjgtjtjddtjtjfD]}|tjd d|tjd d|tjd d|tjdddS) Nc||i|dSrWrrPargsrrs rokz+TestUfunc.test_reduce_zero_axis..oks At v     rc2tt|g|Ri|dSrW)rr rs rerrz,TestUfunc.test_reduce_zero_axis..errs( *a 9$ 9 9 9& 9 9 9 9 9rc ||tj||fd||tj||fd||tj|dz|dz|fd||tj|dz||dzfd||tj||dz|dzfd||tj|dz||dzfd||tj|dz|dz|dz|dz|dzfd||tjd ||fd ||tjd ||fd||tj|d |fd||tjd ||fd||tjd ||fddS) Nr"rrr#rDrrwrr"r#rIr)rr%)expectfuncr\rls rtz*TestUfunc.test_reduce_zero_axis..ts' F41a&)) 2 2 2 2 F41a&)) 2 2 2 2 F416161"566Q ? ? ? ? F4161a1f"566Q ? ? ? ? F41a1fa1f"566V D D D D F4161a1f"566V D D D D F4161616"#q&!q&#233&/ 1 1 1 1 F42q!*--F ; ; ; ; F42q!*--F ; ; ; ; F41b!*--A 6 6 6 6 F42q!*--A 6 6 6 6 F42q!*--A 6 6 6 6 6 6rrrrr)r'r)rr')r'r')rrr.identityrmr%r1r)r4rr!r&rs rtest_reduce_zero_axiszTestUfunc.test_reduce_zero_axiss5    : : : 7 7 7& RZ($/// "bjR((( "bjB''' #rz "a((( #rz !Q''' BJ r""" "(6**444 "bfmR$$$ "bfmQ### "bfmR### "bfmQ"""  b  bhv&&R 000 :rv& 4 4B MM"(7++!M 4 4 4 MM"(7++!M 4 4 4 MM"(8,,1M 5 5 5 MM"(6**M 3 3 3 3  4 4rcptjgdt}tt tj|dgdt ttj|d|d}t t||dt tj|d|dt|gd dS) NrrJg?)g@g@gffffff@r!c||z }dSrWr)r'r(s r add_inplacez0TestUfunc.test_safe_casting..add_inplace4s FAAArrr"rr)rr{r2rr r1rr0)r4r'r,s rtest_safe_castingzTestUfunc.test_safe_casting)s HYYYc * * *-bfa==*?? , , ,iCQ7777    ia555261cq(CCCC1iii(((((rctjgdd}tjgdd}tjdtj}tj|||}tjgdtj}t ||tj||}t ||tj||tj|}t ||tt5tj|tjdddddS#1swxYwYdS)Nr#i8rJrw)rr#rr!r#) rr{rrrationalrrruint16rr0)r4r'r(rr>targets rtest_ufunc_custom_outzTestUfunc.test_ufunc_custom_out<sv HYYYd + + + HYYYd + + + HQo6 7 7 7!)!Q22)))?+CDDDVV$$$!)!Q//VV$$$!)!QXXbi-@-@aHHHVV$$$9 % % 6 6  $Q ! 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s(E  EEc tjdddd}tjdddd}tj|ddddf|t |tjgdgd gd gd gdtjd }tj|dt |dtj|ddgt |d dS)NrlrJrrrwr)rr#rrw)rr r)rrr7)rrrrrrI)rrr opflag_tests inplace_addrr{r&s rtest_operand_flagszTestUfunc.test_operand_flagsXs Ib $ $ $ , ,Q 2 2 Ias # # # + +Aq 1 1 3B38a000Q,,,   ..."07:<<< = = = HQKK A&&&Q QF+++Qrcddlmcm}tjdgd}tjdgd}|||}t |tjdgdtt|j dS)Nrrzu8,u8,u8rJ)r#rr) numpy.core._struct_ufunc_testsr_struct_ufunc_testsrr{ add_tripletrr RuntimeError register_fail)r4 struct_ufuncr'r(r>s rtest_struct_ufunczTestUfunc.test_struct_ufunces========= Hi[ 3 3 3 Hi[ 3 3 3))!Q//VRXykDDDEEElL$>?????rcvtjtjddtjddtjddgtj}tjtjddtjddtjddgtj}tj||}tjtjdtjddtjddgtj}t ||dS)Nr"r#rwrrJ)rr{rr1test_add_rationalsr)r4r'r(r>rzs rtest_custom_ufunczTestUfunc.test_custom_ufuncos' H  %a + +  %a + +  %a + + -"*  , , , H  %a + +  %a + +  %a + + -"*  , , , !3Aq998  %a ( (  %a + +  %a + + -"* ,,, VX&&&&&rctt5tjt jddtjt dfddddS#1swxYwYdS)Nr"r-)rr0rmultiplyrr1r2r3s rtest_custom_ufunc_forced_sigz&TestUfunc.test_custom_ufunc_forced_sigs 9 % % I I K033Q#2#;S$"G I I I I I I I I I I I I I I I I I I I I I Is.MyThingrc||_dSrWrm)r4rms r__init__z:TestUfunc.test_custom_array_like..MyThing.__init__s " rc|jdSNrrOr3s r__len__z9TestUfunc.test_custom_array_like..MyThing.__len__sz!}$rcxjdz c_t|ts|f}t||jkrt d|jt|dS)Nr"boo) getitem_countrtuplerndim IndexErrorrm)r4rMyThings r __getitem__z=TestUfunc.test_custom_array_like..MyThing.__getitem__sr%%*%%!!U++Aq66DI%%$U+++wtz#a&&''2333rc(xjdz c_|Sr^) rmul_count)r4rrZs r__rmul__z:TestUfunc.test_custom_array_like..MyThing.__rmul__s""a'"" rN) rBrCrD__array_priority__r]rVrPrSr[r^)rZsrrZrLsu!% JM # # # % % % 4 4 4 4 4       rrZrr;r"r#)rrrr]rV)r4rZs @rtest_custom_array_likez TestUfunc.test_custom_array_likes          2 1 ggfoo%%"a');<<<%*G,ABBBBBrr'rIrJc|}tj|gddt |gdt jt5tj|gddddn #1swxYwY|}tj|gdt |gd|}tj gd}tj|gd|t |gdt jt5tj|gdgddddn #1swxYwYt jt5tj|gddd gdgddddS#1swxYwYdS) Nr#rr#r") rr"rrwrrrrrr)r#rrw) rr"rrrrrrrr1r1r1) rr"rwrirrrrrr#) rrr1atrrr/r rr{)r4r'rr(s rtest_ufunc_at_basiczTestUfunc.test_ufunc_at_basicsu VVXX  "iii###R777888 ]: & & % % FIIb))) $ $ $ % % % % % % % % % % % % % % %VVXX r999%%%R:::;;; VVXX H___ % %  "iii###R;;;<<< ]: & & 4 4 KNN1iii 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4]: & & 1 1 FIIaaVQK 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s6##BBB&FFF3(G((G,/G,typecode AllIntegerFloatc |tjurn|tjdvrZtjd|}tjddtj}tjdd|}nXtjd|}tjdd tj}tjd |}|}tj d 5}tj d | |||dddn #1swxYwYtj d 5}tj d t||D]%\} } ||| | || | dzd & dddn #1swxYwYt||t|dkr{t|dksJ|dj|djksJt#|djddt#|djddksJdSdS)Nrjr1rJr')rr<r"rMi Trrrr-rrI)rr typecodesrhrkrandintrdrrrrrrgrrrcategoryrnmessage) r4rirr'indxvalsatagw_atw_looprrs rtest_ufunc_at_inner_loopsz#TestUfunc.test_ufunc_at_inner_loopss BI  (bl<.H"H"H8,,,A9$$Sr$AAD9Q(333DDH---A9$$TBG$DDD9T222Dvvxx  $D 1 1 1 $T  !( + + + HHQd # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $D 1 1 1 EV  !( + + +D$ E E1d1gqd1QqS5k8DDDDD E E E E E E E E E E E E E E E E T1 v;;??t99q====7#vay'99999tAw'',F1I4E0F0Fss0KKKKK ?LKs%>,D66D:=D:A F..F25F2ComplexcDtjd|}tjtjdtjtjddtjg}|jd}||||tj|}|tj ur dx|d<|d<nH|dxxd|tj ur|n| zz cc<|dxxd|tj ur|n| zz cc<t||dS) NrIrJrr8rrrr") rrh concatenaterdrLr<rrg ones_likerHr1r)r4rirr'rrvaluerzs r!test_ufunc_at_inner_loops_complexz+TestUfunc.test_ufunc_at_inner_loops_complexs GBh ' ' '~rwq888!wr1BG<<<>?? R   D%   <?? BK  (* *HQK(1++ QKKK1"&ufE EKKK QKKK2%26//vF FKKK1h'''''rctjd}tj|t dtjdt |tjddS)Nr)rr%r1rgrcrhrrs rtest_ufunc_at_ellipsisz TestUfunc.test_ufunc_at_ellipsissUhqkk  #uT{{BGAJJ///3 +++++rctjdtj}tjd}tj||tj|gdksJdS)NrrJ)rrri8r)rrhrrrindexed_negativergrj)r4r~rrs rtest_ufunc_at_negativez TestUfunc.test_ufunc_at_negativesfgarx(((y|| T***vc33334444444rcVtjdtj}tjdt}d|d<d|d<d|dd<tjdt}tj||||d|ksJdS) Ni rJrIrrr"r1i )rr%rrr1rgr)r4indicesr(r's rtest_ufunc_at_largezTestUfunc.test_ufunc_at_large s(4rx000 HT ' ' '!!$%% HQe $ $ $  !Wa   tquuwwrc(tjd}tjd}tjt|tj}tj||||dt|ksJdS)NrIirJr)rr%rhrrr1rg)r4r~valuesindexs rtest_cast_index_fastpathz"TestUfunc.test_cast_index_fastpathsqhrllVBH555  #uf%%%1vV$$$$$$rr|rVc tjd}tjtjdd}tj|||t |tj|d|zdS)NrMr#)rr%repeatrr1rgrr)r4r|r~rs r#test_ufunc_at_scalar_value_fastpathz-TestUfunc.test_ufunc_at_scalar_value_fastpathshhtnn ")D//1--  #ue$$$3 S!e) < <=====rc tjddd}tjgdgdgdg}tj|t dgdf|t|gdgdgd gtjd ddd}tjgd }tj|t dt dgdf|t|gd gdgd ggdgdgdggdgdgdggtjddd}tjgdgdgdg}tj|gdt df|t|gdgdgdgtjd ddd}tjgd }tj|t dgdt df|t|gdgdgdggdgdgdggdgdgdggtjddd}tjgd }tj|dgdf|t|gd gd gd!gtjd ddd}tjgd }tj|gddt df|t|gdgd gd!ggd"gd#gd$ggd%gd&gd'ggtjd ddd}tjgd }tj|t dt dt df|t|gd(gd)gdggd*gd+gdggd%gd,gdggdS)-Nrrwrd)r3r3r3)r5r5r5r"r#r")rf)rw)ri_4r)r1r3r5)rire)ri)r)r)ri)r8i))rir#)iri)r)ri])jrr)rrIr7)rif)si=)r8rr})rio)r2iFrr)rrr)ric)rrr)rr)vi@)r)rr)r1ri.)gi1)mi7)pi:)yiC)rrrr{r1rgrcrr&s rtest_ufunc_at_multiDzTestUfunc.test_ufunc_at_multiD&s IaLL A & & HoooH I I  !eDkk999-q111Q }}}EFFF IbMM ! !!Q * * H___ % %  !eDkk5;; :A>>>Qmmmmmmmmnnnnnnnnnn   IaLL A & & HoooH I I  !iiit-q111QOOO___EFFF IbMM ! !!Q * * H___ % %  !eDkk999eDkk:A>>>Qkkoooolloooolloooo  ! ! ! IaLL A & & H___ % %  !a^Q'''Q 999=>>> IbMM ! !!Q * * H___ % %  !iiiE$KK0!444Qkkkkkkoommmmoommmm     IbMM ! !!Q * * H___ % %  !eDkk5;;d .rrrrrr)rrrcrgrr{rs rtest_ufunc_at_dtypeszTestUfunc.test_ufunc_at_dtypes~sR IbMM  A|||S)))Q!C!C!CDDEEEEErc>tjd}|dzdk}tj||gdt |gdtjdd}tj|gdt |gd dS) NrIr#r)rr#rrr) r"r"r"rwr"rr"rr"ru4rJrb) rr"r#rwrlrrrr)rrrrgrinvert)r4r'rs rtest_ufunc_at_booleanzTestUfunc.test_ufunc_at_booleans IbMMA   Auooo...Q666777 Ib % % % Q """QCCCDDDDDrcFtjd}|dddfddddf}tj|ddgdt |tjdtjgdtjd}tjgdtjd}tj||dt |gd tjd dgt }tttjj|ddgdt |tjd dgt tttj jtjd dgtjgd }tj |dgdt|tjgd dS)Nrrr"rwrr)r"r#rwrrP)r"rrrr'rJrIr)rrr1rgrr{r<rRrirr0r modfr.r)r4origr'rrs rtest_ufunc_at_advancedz TestUfunc.test_ufunc_at_advancedsy|| DM!!!QqS& !  !aVQ41...BHSMM$>$>$@$@AA,,, (B(B(D(DEE  &%###6<<<0003(&111iFQFA>>>628S!HF#C#C#CDDD j"'*bimmaSAAA HYYY   a!a   Q++,,,,,rc>tjd}tjd}tttjj|dg|tjddgddggg}tttjjj j|dgdS)Nrrrr"r#rwr) rrhrr0rrgr{linalg _umath_linalgr)r&s rtest_at_not_none_signaturez$TestUfunc.test_at_not_none_signatures GI   GI  iq1#q999 H1v1v&' ( (i!8!A;ctjdg}tj|dgdg|ddksJdS)Nrr)rr{rrgrs rtest_at_output_castingz TestUfunc.test_at_output_castingsBhtnn  C!qc"""1v{{{{{{rctjd}tjt5tj|ddggdddddS#1swxYwYdS)Nrrr"r)rrrr/r r1rgrs rtest_at_broadcast_failurez#TestUfunc.test_at_broadcast_failuresill ]: & & . . FIIcAq6999 - - - . . . . . . . . . . . . . . . . . .s&A!!A%(A%c tjj}tjdt}tjd|j}|dz}t |||t ||d|t ||d|t ||dd|t ||dd|t ||dd|t ||dd|t ||ddd|t ||dd||t ||dd||t ||ddd|t ||dddd |t ||dddd |d |jzt ||dddd d|t ||dddd d |t ||dddd dd |t ||dddd dd |t ||dddd |t ||dddd |t ||dddd |t ||dddd dd |tt|tt||dddd dd d tt||dtt||dtt||ddd tt||ddtt||dtt||ddtt||dddtt||dtt||ddtt||ddddtt||dddtt||dtt||dd ddtt||ddd ddtt||dddddS)N)rr#rJrrrrrr!Fr"Trrr)rr<r"r#)r<r"r#)r"r#)r"r#rrr"r)rr<r#)r<r"r)r#r<r")rr<rr)r#rr")rr<r#r"r)rr<r"r) rr1rmrhr2r<rrrmrr0)r4rPrWors rtest_reduce_argumentszTestUfunc.test_reduce_argumentss FM GE % % % GD ( ( ( EQQqTT1QQqq\\\1%%%QQq!WWa   QQq!4(((!,,,QQq!3'''+++QQq!S\\1%%%QQq!T]]A&&&QQq!Tt,,,a000QQq!Tq)))1---QQq!T1%%q)))QQq!T4((!,,,QQq!T4%888!<<<QQq!T4.. $.0I0IJJJQQq!T422A666QQq!T4:::A>>>QQq!T4488!<<<QQq!T4>>>BBBQQqq$GGGKKKQQq!4TEBBBAFFFQQq!Tte<<.MyAcBt||d|Di|S)Nc3TK|]#}|tjV$dSrW)rrr)rinputs r zOTestUfunc.test_structured_equal..MyA.__array_ufunc__.. sL0C0C2716 2:0F0F0C0C0C0C0C0Cr)r)r4rmethodinputsrrs r__array_ufunc__z.MyA.__array_ufunc__ sM-wuf--0C0C;A0C0C0CNFLNNNrN)rBrCrDrrrrMyAr s( N N N N Nrr(@rrwzf8,f8,f8rJ)TFFFrT) rrrrrrAr{r}rrj)r4rr'ramrar3s rtest_structured_equalzTestUfunc.test_structured_equal s N N N N N"* N N N IcNN " "1Q ' ' VV:V ' ' / / 1 1ggcll666dCCCRVFsbe|455t<<<<27 GRWbh bm J BF J("'2= Hbl$  HSMM  Hb"X   . .A )Q1 - - - )Q1 - - - - . .rNctjgdt}||||}|jtksJdS)NTNFrJr-)rr{rir<)r4rr8r'rs r%test_logical_ufuncs_object_signaturesz/TestUfunc.test_logical_ufuncs_object_signatures/ sN H((( 7 7 7eAqI...yF""""""rctjgd}tjt5||||ddddS#1swxYwYdS)Nrr-)rr{rr/r0)r4rr8r's r+test_logical_ufuncs_mixed_object_signaturesz5TestUfunc.test_logical_ufuncs_mixed_object_signatures9 s H((( ) ) ]9 % % - - E!Q) , , , , - - - - - - - - - - - - - - - - - -sA  AActjdd}tjddg}t||||ddgd||dksJtjdtj}|ddgd|j}t|||||tjd tj}|||dksJtjd gd }tjd |j}|||d ksJdS) N1V3rJrVrtTr#r!rrwrr")rr{rrmr%rrr<)r4rr'rr"rzs r$test_logical_ufuncs_support_anythingz.TestUfunc.test_logical_ufuncs_support_anythingD sX HT & & & Hb"X  55A;;tTlD(A(ABBB||A$&&&&hq)))5$t,,33CI>>55A3///:::hr***||A3|''4//// HaS $ $ $hr)))||A3|''1,,,,,,rctjtd5|dgdgdddn #1swxYwYtjtd5|gdddddS#1swxYwYdS)a Logical ufuncs are normally well defined by working with the boolean equivalent, i.e. casting all inputs to bools should work. However, casting strings to bools is *currently* weird, because it actually uses `bool(int(str))`. Thus we explicitly reject strings. This test should succeed (and can probably just be removed) as soon as string to bool casts are well defined in NumPy. zcontain a loop with signaturerPr3N)r20)rr/r0rm)r4rs r!test_logical_ufuncs_reject_stringz+TestUfunc.test_logical_ufuncs_reject_stringX s]9,K L L L  E3%#                  ]9,K L L L * * LL ) ) ) * * * * * * * * * * * * * * * * * *s7;;BB Bctjd}tjddg}|}tjt 5||||dddddS#1swxYwYdS)NrrVrtrxr-)rr{rrr/r0)r4rr'rr"s r"test_logical_ufuncs_out_cast_checkz,TestUfunc.test_logical_ufuncs_out_cast_checki s HSMM Hb"X  ffhh ]9 % % 2 2 E!QC 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2sA55A9<A9ctjdd}tjdd}tj|tj|ksJt tj|tj|t tj|dgtj|dgdS)NrIz>i8rJz(>(@(@AAA6$$S)) #3'''8S)))))rctjdtjddd}|dddd ddd fdd d }tjd tjdd}|ddd ddf}|}tj||d }tj||d }t||t|dddf|dddft|dddf|dddfdS)NirJrrrrrr"r7rr#rrrrw) rrrrrrr1rmr)r4rQy_baserR y_base_copyr0r1s rtest_reduce_noncontig_outputz&TestUfunc.test_reduce_noncontig_output sJ IfBH - - - 5 5aQ ? ? ac!Bq&1n  ' '1a 0 03bh///771== 33Q3qqq5Mkkmm V]]1!&&((] 3 3 V]]1!!] , , RVAaaaC[+ac"2333VAaaaC[+ac"233333r with_castctjd}tjd}|r|tj}t jt d5tj|ddg|dddn #1swxYwYt jt d5tj ||ddddS#1swxYwYdS)Nrrwz (shape|size)rPrr!) rrrrrr/r r1rr)r4rr~r"s r/test_reduceat_and_accumulate_out_shape_mismatchz9TestUfunc.test_reduceat_and_accumulate_out_shape_mismatch sYillill  )**RZ((C ]:^ < < < 2 2 FOOC!QSO 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]:^ < < < , , F  cs  + + + , , , , , , , , , , , , , , , , , ,s$%%BBB<"C++C/2C/ out_shape)rrrr"r")r"rwrr#f_reducectjddd}tj||j}||d|}||jkr>t t5||d||ddddS#1swxYwYdS||d||}t||ut||dS)Nrrrwrr$rr"r#) rrrrr<rmrr rr)r4r r#rr'r" correct_outrs r"test_reduce_wrong_dimension_outputz,TestUfunc.test_reduce_wrong_dimension_output s9 IcNN " "1a ( (hy!'**hqq8<<<  ) ) )z** @ @h???? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @HQQC(CCCE ESL ! ! ! uk 2 2 2 2 2s0B  BBcptjd}tjd}tjd}tj|d|dtj|d|dddfdt t 5tj|d|ddddn #1swxYwYt t 5tj|d|dddfdddddS#1swxYwYdS) N)r"rIr)rwr"rTr"rF)rrhrr1rmrr )r4r' out_correct out_incorrects r+test_reduce_output_does_not_broadcast_inputz5TestUfunc.test_reduce_output_does_not_broadcast_input s GG  x'' ((   abkD AAA  abk!!!Q$&7% HHH : & & H H FMM!"-$M G G G H H H H H H H H H H H H H H H : & & O O FMM!"-1*=M N N N O O O O O O O O O O O O O O O O O Os$!$CCC0.D++D/2D/cGddtj}tjd}tjtjd|||}tjtjd||usJttj||usJdS)NceZdZdS)7TestUfunc.test_reduce_output_subclass_ok..MyArrNrrrrMyArrr+ rrr,rrr!)rrrr1rmrhrr)r4r,r"s rtest_reduce_output_subclass_okz(TestUfunc.test_reduce_output_subclass_ok s     BJ   hrll  bgajjc ***hhuoov}}RWQZZS}11S8888BFMM#&&''5000000rcFtdtjjvdS)N )rrinner1d_no_docrr3s rtest_no_doc_stringzTestUfunc.test_no_doc_string s!C.6677777rc~tjttjd}|dsJdS)Nzloop of ufunc does not support)rr/r0rr{rQ)r4rs rtest_invalid_argszTestUfunc.test_invalid_args s6mIrw55yy9:::::::rnatcV tj|rJdS#t$rYdSwxYwrW)rrr0r4r4s rtest_nat_is_not_finitez TestUfunc.test_nat_is_not_finite sE {3'' ' '' ' '    DD   ((cV tj|sJdS#t$rYdSwxYwrW)rrr0r6s rtest_nat_is_nanzTestUfunc.test_nat_is_nan sB 8C== =     DD r8cV tj|rJdS#t$rYdSwxYwrW)risinfr0r6s rtest_nat_is_not_infzTestUfunc.test_nat_is_not_inf sC x}} $ $$ $ $    DD r8)rBrCrDrrrrskipifrrrrrrrrrrrrrrrrrr rrrrr)r2r5rrHrr\r`rfrirnrr1r{r{rrrrrrrrrrrrhrrrrrrr r/r7r9r?rTrWrYrVr~rrrrrrrrrrrrrrrrrrrrrrrrrrr r{rrrrrr)r.r4r;rCrFrIr`rr2rr1rhrrHrr.rrrindexed_ufuncsrnrwr}rrrrrrrrrrrrrrrrrrrrrrirrer}rrr r rrrrrrmr$r(r-r1r3 datetime64 timedelta64r7r:r=rrrrrs 5 5 5111  [(JKK::LK:GGG Q Q Q hMJ###   ......*** * * *"""(((((("""(((666444111444;;;###< , , ,AAA  [[ $ $ 6 6+899 B B99 B [[ E))g 6 6 6 E;; L L L+NOO00OO0 [Y(G(G(GHH D DIH DFFF . . .333* ( ( ( [Wrvrw&788**98*> .. >> . / / /<<<.QQQ III6gEgEgER*9*9*9XMAMAMA^IIIIII N N NE:E:E:N888444 4;4;4;l:::/// 5554 M M MHHH&(,,,%%%&222111 4 4 4,,,8    , , , B B B / / / % % %,7,7,7\_[!!"!------------ --- & & &@111" [V\22 [Wxrx0C0C0C'D'D'/rx$%4&0I'J'J'/rx1E1E1E1E1E1E1D1D1D1F(G(G'HII & & II32 & [. ("(+>+>+>"?"?@ "5"5"56*,-- [Y"&" 66!!76 -- !AAA D D D?4?4?4B)))&6668   @@@'''(III CCC> [S&RYr555&RYr1IJJJ#  11   18fbk2;j"*bgrw@N [BL6g9NNPP [Wn55LL65PPL: [Zi)@AA [Wrvr{BK&HII ( (JIBA (,,,555   %%% [W GBGBKKB'566>>66>N!N!N!`777FFF E E E---4III+++  ... >+>+>+@ = = =...& [Wnbm ,.. [[T6"VT4$8VT"$%%##%%.. #  [W ^R]BN ;== [[v&t(<&())--))== -  [W ^R]BN ;==--==-$ [W ^R]BN ;== * *== * [WnbmR^ <>>22>>2 H H H!!!.***(444* [[4-88 , ,98 , [[EEEGG [Z$77 [Z"&-9J)KLL 3 3ML87GG 3 O O O111888;;;  [U]R]5%9%9>2>%;P;P$QRRSR  [U]R]5%9%9>2>%;P;P$QRRSR  [U]R]5%9%9>2>%;P;P$QRRSRrrrcg|]D}ttt|tj/tt|ESrrrrrrs rrr O#I#I#Ia#-gb!nnbh#G#G#I72q>>#I#I#Irc:|jD]}d|vsd|vr |d\}}d|D}tjd5tjd||}dddn #1swxYwYt |t rgt |}t|t|ksJt||D]$\}}|j tj |ksJ%|j tj |ksJdS) z Check all ufuncs that the correct type is returned. Avoid object and boolean types since many operations are not defined for for them. Choose the shape so even dot and matmul will succeed rz?->c8g|]}tjd|S)r;)rrhrr&s rrz$test_ufunc_types..' s$000q""000rTrrN) rsplitrrfilterwarningsrrWrrr<r) rtypinpr"rroutsrr&s rtest_ufunc_typesrO sx{.. #:: 99T??S00C000  $D 1 1 1    #H - - -%,C                c5 ! ! .::Ds88s4yy((((C . .1w"(1++----- .9 -----..s A33A7 :A7 cg|]D}ttt|tj/tt|ESrrCrs rrr3 rDrc|jD]v}ttdt|zr0|d\}}d|D}d|D}|D]}t dd|_|D]}t dd|_t jd5t jd ||}||}d d d n #1swxYwYt|dkr|f}|f}t||D]m\} } | j } tj | tjr2tj| j} d | z} t#||| | ]t%| | nxd S) zs Check that contiguous and non-contiguous calls to ufuncs have the same results for values in range(9) zO?mMrGc8g|]}tjd|S)rrrrIs rrz,test_ufunc_noncontiguous..A s"...Q"(1a.....rcJg|] }tjd|ddd!S)r8NrwrSrIs rrz,test_ufunc_noncontiguous..B s-4441"(2q//##A#&444rr"rTrrNr#)rr)rrsetrJrflatrrrKrrr<r issubdtypefloatingrepsr r)rrLrMr"args_cargs_nr'res_cres_nc_arn_arr<res_epstols rtest_ufunc_noncontiguousrb3 s{)) s6{{SXX% & &  99T??S..#...44444  A1QZZAFF  A1QZZAFF  $D 1 1 1 # #  #H - - -E6NEE6NE # # # # # # # # # # # # # # # s88q==HEHEeU++ ) )JD$B}R-- )(2,,*iu3SAAAAAT4(((( )'))s1CC #C c$tjdgdd}tj|sJ|jdkr ||dS|jdkr |||dSt d)Nlr0rr"r#zufunc with more than 2 inputs)rr{rrrqrr )rr(s rtest_ufunc_warn_with_nanrd[ s $%t,,11$77A 8A;;; yA~~ a a a8999rzPython lacks refcountsrc"d}tj|gttjdzzdgz|gtdtjzzzt}tjt |tj}tj |}tj t5tj |||ddddn #1swxYwY|tj |ksJ|ddksJtj t5tj |||tjd dddn #1swxYwY|tj |ksJ|ddksJdS) N{rstringrJrr-rr")r"r<r)rr{r2BUFSIZErirhrrdsys getrefcountrr/r r1)r|r~r"counts rtest_ufunc_out_casterrorsrll s E (E7Sc!1222:7Srz!12223:@ B B BC '#c(("' * * *C OE " "E z " "44 sCS(3333444444444444444 COE** * * * * r7a<<<< z " "CC sCSBBBBCCCCCCCCCCCCCCC COE** * * * * r7a<<<<<dr-)rr/r0rr1r{rrrtest_trivial_loop_invalid_castrv s y, . . .99 rx5!!18888999999999999999999s+AAAoffsetr#cd}tj|g|zdgz|gtdtjzzzt}tjdtj}t j|}tj td5tj |tj|ddddn #1swxYwY|t j|ksJ|d ||zksJdS) NrfrgrrJrzinvalid literalrP)r<r"rr) rr{r2rhrirdrirjrr/r r1rm)rwr|r~r"rks rtest_reduce_casterrorsry sW E (E7V#:7Srz!12223:@ B B BC (2RW % % %C OE " "E z): ; ; ;AA  cc4 @@@ AAAAAAAAAAAAAAA COE** * * * * r7UV^ # # # # # #s.CCCcTtjt5tjgdddddn #1swxYwYtjt5tjgdddddS#1swxYwYdS)N)r"r#Nrr)rr/r0rr1rmrrr%test_object_reduce_cleanup_on_failurer{ s y ! !//  lllA .../////////////// y ! !$$  lll###$$$$$$$$$$$$$$$$$$s#$A  AA."BB!$B!rcDtj|dgSrR)rr1rrKs rrr sA3 7 7rrrLcDtj|dgS)Nr#)rlogrgrKs rrr s !aS 1 1rrgc`tjtjdtj g}tjd5t jt d5||dddn #1swxYwYdddn #1swxYwYtjtjdtj g}tjd5t jt5||dddn #1swxYwYddddS#1swxYwYdS)Nrwarnrz invalid valuerPr) rr{rrrr#rr/rs)rr~s rtest_ufunc_methods_floaterrorsr s (BFAw' ( (C   \. @ @ @   F3KKK                (BFAw' ( (C  ! ! ! ]- . .   F3KKK               slB  A6* B 6A: :B =A: >B  BBD#3 D ? D# D D#D D##D'*D'c|dkrdStj|jsdS|jjdkrtj|jSdS)NrFrT)rsignbitrr<kindr)r|s r_check_neg_zeror sP ||u :ej ! !u {3z%*%%% 4rr<AllFloatcZtj|}|jdkr$|t dd}n|d}tj|}tj|}t ||zsJ||z }t |sJdS)Nr)rr<rrr|r{r)r<neg_zeror~arr2s rtest_addition_negative_zeror s HUOOE zS::gdD1122::d## (8  C 8H  D 3: & &&& &4KC 3   r use_initialTFctj|}|jdkr$|t dd}n|d}i}|r||d<nt jdtddD]~}tj|g|z|}tj |fi|}|dks|rt|sJHtj |j rJtj |j rJdS)Nrrrz1-0. propagation in sum currently requires initialrrJ)rr<rrr|rxfailrr{rrrrr)r<rrrrrr~rs r"test_addition_reduce_negative_zeror s% HUOOE zS::gdD1122::d## FJ$y HIII1c]],,hzA~U333fS##F## q55K5"3'' ' '' 'z#(++ + ++z#(++ + ++ +,,rc eZdZdZdZdZejde j de j dfde j de j dfe j dde j dfdgd Z d Zd Z ej eed  d dZejdgddZdZdZdS)TestLowlevelAPIAccesscFtjd}tjd}tjd}tj||df}||||fksJtj||dfd}||||fksJtj|tdf}||||fksJt jt5tj||dfdddddS#1swxYwYdS)Nr f4r)NNrr-rvrw)rr<r1resolve_dtypesr2rr/r0)r4r rrrs rtest_resolve_dtypes_basicz/TestLowlevelAPIAccess.test_resolve_dtypes_basic s| Xd^^ Xd^^ Xd^^ F ! !2r4. 1 1RRL     F ! !B#); " = =RRL     F ! !2sD/ 2 2RRL    ]9 % % @ @ F ! !2r4.$ ! ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s$%DDDctjd}tj||df}|||tjtfksJtjd}t jt5tj||dfddddS#1swxYwYdS)NS010i)rr<rrr}rr/r0)r4rrdtss rtest_weird_dtypesz'TestLowlevelAPIAccess.test_weird_dtypes/ s Xd^^ H # #RTN 3 3RRXd^^,,,,,huoo ]9 % % 6 6 H # #S#t$4 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s#B66B:=B:ctjd}tjt5tj|||fdddddS#1swxYwYdS)Nr T reduction)rr<rr/NotImplementedErrorr1r)r4r s rtest_resolve_dtypes_reductionz3TestLowlevelAPIAccess.test_resolve_dtypes_reduction; s Xd^^ ]. / / @ @ F ! !2r2,$ ! ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s%A  A$'A$dtypesrNrP)r r Nctjt5tj|ddddS#1swxYwYdSrW)rr/r0rr1r)r4rs rtest_resolve_dtypes_errorsz0TestLowlevelAPIAccess.test_resolve_dtypes_errors@ s ]9 % % * * F ! !& ) ) ) * * * * * * * * * * * * * * * * * *s AA A ctjd}tjd}tjd|dfd}||||fksJdS)Ni2longTr)rr<r1r)r4rlong_rs rrz3TestLowlevelAPIAccess.test_resolve_dtypes_reductionI s] Xd^^  f##T2t$4#EEueU+++++++rcvtjd}tjt5tjd||fdddn #1swxYwYtjt5tjdddddS#1swxYwYdS)Nr)NNr )rr<rr/r0r1rr8)r4rs r$test_resolve_dtypes_reduction_errorsz:TestLowlevelAPIAccess.test_resolve_dtypes_reduction_errorsP s Xd^^ ]9 % % 2 2 F ! !4R. 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]9 % % 1 1 F  / 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s##AA!$A! B..B25B2 pythonapiz2`ctypes.pythonapi` required for capsule unpacking.rc  tjtjd}tjtjd}tjtjd}tjtjtj|||tj G fddtj}tj d}tj ||f\}}|||fksJtj |tjtj j_tj tj|tjd}tj|tj|j}tjd|} ||j|| jj| jj| jj|| jjd | jjd |jt9| tjd| dS) Nr#r"cZeZdZdfdejfdejfdejfdejfgZdS);TestLowlevelAPIAccess.test_loop_access..call_info_t strided_loopcontextauxdatarequires_pyapino_floatingpoint_errorsN)rBrCrDctc_void_pc_byte_fields_)strided_loop_tsr call_info_trc sF0BK(BK(!29-*BI6 HHHrrr snumpy_1.24_ufunc_call_inforIrJr)rARRAYc_char_p c_ssize_t CFUNCTYPEc_intr Structurerr<r_resolve_dtypes_and_context_get_strided_looprPyCapsule_GetPointerrestype py_objectcastPOINTERcontentsrrrctypesdatarmrrr) r4data_tdim_t strides_trr r< call_info_obj call_infor~rs @rtest_loop_accessz&TestLowlevelAPIAccess.test_loop_accessY s"+q))q))HR\1-- "+vuiNN       ",   Xd^^KCCRHMMMb"X~~~~ %%m44446K )1L55 ]++ 9::<< GIrz+'>'>??H i"%%%!sz 88   #*,Q/1CA1FGG!  # # # 32R!8!8!8 899999rr)r"r)r"rc tjd}tj||f\}}t jt d5tj||ddddS#1swxYwYdS)Nr zfixed_strides.*tuple.*or NonerP) fixed_strides)rr<rrrr/r0r)r4rr r<rs r)test__get_strided_loop_errors_bad_stridesz?TestLowlevelAPIAccess.test__get_strided_loop_errors_bad_strides s Xd^^ ??RII I ]9,K L L L L L K ) ))7 ) K K K L L L L L L L L L L L L L L L L L Ls"BB Bctjd}tj||f\}}t jt d5tjddddn #1swxYwYt jtd5tj |dddn #1swxYwYtj|t jt5tj|ddddS#1swxYwYdS)Nr  PyCapsulerPznot the capsule!z.*incompatible context) rr<rrrr/r rr0r1)r4r r<rs r+test__get_strided_loop_errors_bad_call_infozATestLowlevelAPIAccess.test__get_strided_loop_errors_bad_call_info s Xd^^ ??RII I ]:[ 9 9 9 > > K ) )*< = = = > > > > > > > > > > > > > > >]9,D E E E 0 0 F $ $Y / / / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %%i000 ]9 % % 5 5 K ) )) 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s6 BBB& CCC EE Ectjdtj}d|dd<d|dd<tj|}t |dd|dddS)N)iirJr"ri)rr%rrr)r4r&rs rtest_long_arraysz&TestLowlevelAPIAccess.test_long_arrays se H[ 2 2 2!Q"c VAYYRU1Xr"vc{+++++r)rBrCrDrrrrrrrr<rrr>hasattrrrrrrrrrrr s@@@, 6 6 6@@@  [X RXc]]HBHSMM * 828C==("(3-- 0 RXc]]D("(3-- 0  ( !! ** !! *,,,111 [GGB 444GII(:(:II(:T [Y(@(@(@AALLBAL 5 5 5,,,,,rr)Krrrirrrrnumpyrnumpy.core._umath_testsr _umath_testsrnumpy.linalg._umath_linalgrrr(numpy.core._operand_flag_tests_operand_flag_testsr9numpy.core._rational_testsr numpy.testingrrrrrr r r r r rrnumpy.testing._private.utilsr numpy.compatrr__dict__r UNARY_UFUNCSrr rFrrrrdirrO_no_nep50_warningrbsignrrdr>rlr2rhrprtrvryr{r1rrmrrrnrrrrrrrsP  %%%%%%%%%(((((((((555555555444444444 98888822rw}5<<>>222 GGLGGGKKKKKKKK4@H@H@H@H@H@H@H@HF   X%X%X%X%X%X%X%X%vJ#I#I33r77#I#I#IJJ..JJ.2#I#I33r77#I#I#IJJ")")JJ")J27BH"566 : :76 :  $-EFFGF>33rzC/?+@+@'ABB::CB:G$BCC33rzC/?+@+@'ABB::CBDC:999 $-EFF BJM33s2:~../11$$11GF$4$$$G$BCC  BFM 77J G G G 11d ; ; ; =>>   >>DC ",z":;;   <;  ",z":;;u 66,,76<;,2I,I,I,I,I,I,I,I,I,I,r