o 6a" @szddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlmZddlmZddlZddlZddlmZddlZddlmmZddlmZddlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-ddl.m/Z/ddl0m1Z1dd l2m3Z3m2Z2e4d dfd d Z5Gd ddZ6GdddZ7GdddZ8GdddZ9GdddZ:GdddZ;GdddZGdd d Z?Gd!d"d"Z@Gd#d$d$ZAGd%d&d&ZBGd'd(d(ZCGd)d*d*ZDGd+d,d,ZEGd-d.d.ZFGd/d0d0ZGGd1d2d2ZHGd3d4d4ZIGd5d6d6ZJGd7d8d8ZKGd9d:d:ZLGd;d<d<ZMGd=d>d>ZNGd?d@d@ZOGdAdBdBZPGdCdDdDZQGdEdFdFZRGdGdHdHZSGdIdJdJZTGdKdLdLZUGdMdNdNZVGdOdPdPZWGdQdRdRZXGdSdTdTZYdUdVZZdWdXZ[dYdZZ\Gd[d\d\Z]Gd]d^d^Z^Gd_d`d`Z_GdadbdbZ`Gdcdddde`ZaGdedfdfe`ZbdgdhZcdidjZdGdkdldlZeGdmdndnZfGdodpdpZgGdqdrdrZhddsdtdudvdwZie jjjkdxe4egdydzgd{Gd|d}d}ZlGd~ddZmGdddZnGdddZoddlpmqZqGdddZrGdddZsGdddZtGdddZuddZvddZwddZxddZyddZzddZ{ddZ|GdddZ}GdddZ~GdddZGdddZGdddZe'sGdddZGdddZGdddZGdddZGdddZGdddZGdddZddlm'Z'GdddZGdddZGdddZGdddZddZddZe jjkddgejejfejejfge jjkddsejej ejge jjkddsejej ejge jjkdejddƄZddȄZddʄZGdd̄d̃Zdd΄ZdS)N)contextmanager)pickle)Decimal)rational)assert_ assert_raises assert_warns assert_equalassert_almost_equalassert_array_equalassert_raises_regexassert_array_almost_equalassert_allcloseIS_PYPY HAS_REFCOUNTassert_array_less runstringtemppathsuppress_warnings break_cycles) _no_tracing)CommaDecimalPointLocale) timedeltadatetimeCc Cst|}|ttkr|durtdtj|||dS|dur#|j}t|ds+|f}tt j ||j }t |d|dtj }|jdd}||}|dkrU||}|d|dkra||7}||||ddd }tj||||d }|d|S) z Allocate a new ndarray with aligned memory. The ndarray is guaranteed *not* aligned to twice the requested alignment. Eg, if align=4, guarantees it is not aligned to 8. If align=None uses dtype.alignment.Nz$object array alignment not supporteddtypeorder__len__datarr)nprobject ValueErrorzeros alignmenthasattr functoolsreduceoperatormulitemsizeemptyuint8__array_interface__ndarrayfill) shaperralignsizebufptroffsetr!r:B/usr/lib/python3/dist-packages/numpy/core/tests/test_multiarray.py_aligned_zeros&s*   r<c@seZdZddZddZddZddZd d Zej j e d d d dZ ddZ ddZej gdgdddZddZddZddZdS) TestFlagscCstd|_dSN )r$arangeaselfr:r:r;setupKzTestFlags.setupcCsNt}d|jj_tttd|tttd|d|jj_d|jd<d|jd<dS)NFz self.a[0] = 3zself.a[0:1].itemset(3)Tr)localsrAflags writeablerr&r)rCmydictr:r:r;test_writeableNs   zTestFlags.test_writeablecCstd}Gdddtj}||}|d}d|j_d|j_d|j_td}Gddd}t|}|d}d|j_d|j_d|j_d|j_tt d|j_WddS1s\wYdS) Nr?c@ eZdZdS)z3TestFlags.test_writeable_any_base..subclassN__name__ __module__ __qualname__r:r:r:r;subclass\rQ.FTc@eZdZddZdS)z8TestFlags.test_writeable_any_base..frominterfacecSs||_|j|_dSN)arrr1rCrUr:r:r;__init__is zATestFlags.test_writeable_any_base..frominterface.__init__N)rNrOrPrWr:r:r:r; frominterfaceh rX) r$r@r2viewrHrIasarrayrr&)rCrUrQview1view2rXr:r:r;test_writeable_any_baseWs$      "z!TestFlags.test_writeable_any_basecCsZd}t|d}tt|jddtddg}tjj||}|d}tt|jdddS)NdBTwritevalsu1res3S4rd) r$ frombufferrr&setflagsrcorerecords fromstringrCr!rdtypesvaluesr:r:r;test_writeable_from_readonlyxs z&TestFlags.test_writeable_from_readonlycCstd}t|d}t|jj|jddt|jjdu|jddt|jjtddg}tjj ||}|d}t|jj|jddt|jjdu|jddt|jjdS) Nr_r`FraTrcrfrd) bytearrayr$rirrHrIrjrrkrlrmrnr:r:r;test_writeable_from_buffers        z$TestFlags.test_writeable_from_bufferzPyPy always copiesreasoncCsTddl}td}t|jD]}||||}t|jj tt |j t qdS)Nr) rr$r@rangeHIGHEST_PROTOCOLloadsdumpsrrHrI isinstancebasebytes)rCrrAvrdr:r:r;test_writeable_pickles  zTestFlags.test_writeable_picklec Cs~ddlm}|d}|jjrJ|jjsJ|d}d|j_|jjr$Jd|j_|jjs.Jd|j_|d}|jjr.MyArrN)rNrOrP__array_struct__r:rAr:r;MyArrs rr!r ) r$r@setattrrH memoryviewreadonlyr1r[rI)rCrrrIrr:rr;test_readonly_flag_protocolss z&TestFlags.test_readonly_flag_protocolscCsNt|jjjdt|jjddt|jjjdt|jjjdt|jjjdt|jjjdt|jjjdt|jjj dt|jjj dt t t|jjj dWdn1s`wYt t t|jjddt|jjddWdn1swYt|jjjdt|jjddt|jjdddS)NTrFU UPDATEIFCOPYXWRITEBACKIFCOPY)r rArHcarrayfarraybehavedfncforcrrIalignedrr updateifcopywritebackifcopyrBr:r:r;test_otherflagss&  zTestFlags.test_otherflagscCsDtjdtdd}t|jjtjdtdd}t|jjdS)Nz|S4rrFr$r'rrrHrrCrAr:r:r;test_string_aligns zTestFlags.test_string_aligncCs(tjdtddgd}t|jjdS)NrrAi4brrrrr:r:r;test_void_alignszTestFlags.test_void_alignN)rNrOrPrDrKr^rqrspytestmarkskipifrrrr parametrizerrrrr:r:r:r;r=Js" !   (    r=c@rS)TestHashc Cs`tjtjdftjtjdftjtjdftjtjdffD]\}}}t d|D]}t t |d| t d| d||fdt t |d|dt d|dd ||dfdt t |d|dt d|dd ||fdt |dd}t t |d|dt d|dd ||dfdt t |d|dt d|dd ||fdq$qdS) N @r rz %r: -2**%derr_msgz %r: 2**%dz %r: 2**%d - 1) r$int8r0int16uint16int32uint32int64uint64rwr hashmax)rCstutsir:r:r;test_ints0     "" "" zTestHash.test_intN)rNrOrPrr:r:r:r;r rc@TeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)TestAttributescCs@td|_tddd|_tjdtjdddd|_dS) Nr?rrF<rr)r$r@onereshapetwofloat64threerBr:r:r;rDs  zTestAttributes.setupcCst|jjdt|jjdt|jjdd|j_t|jjdd|j_t|jj|jjf|jj}t|jjd||f|jj}t|jjd|d||ft|jjdt|jjd t|jjd |jj}t|jjd t|jj d |t|jj|jj jt|jj t d dS) Nr?rrF)rrFr)r?rrFrr rrr)r rr4rrstridesr.ndimr6nbytesrr|r$r@rCnumr:r:r;test_attributess&zTestAttributes.test_attributescCst|jjttjt|jjttjt|jjjdt|jjjdt|jjj ddvt|jjj ddt|jjj dddS)Nldr<>r rf) r rrr$int_rfloat_charrstrrBr:r:r;test_dtypeattr3szTestAttributes.test_dtypeattrcCstd}tt|t dSNr)r$rrr{int)rC numpy_intr:r:r;test_int_subclassing<s z#TestAttributes.test_int_subclassingc s|jfdd}t|dddtgdtt|dddtt|dddtt|dd d t|dd d td gdtt|d d tddg|d d ddS)Ncs tj|t|j|jdS)N)bufferrr9r)r$r2rr.)r6r9rxr:r; make_arrayGs z3TestAttributes.test_stridesattr..make_arrayrr"rrrr rrrr rrrrFr?)rr r$arrayrr&)rCrr:rr;test_stridesattrDs zTestAttributes.test_stridesattrcs6|jfdd}t|dddtgdt|dddtgd tt|ddd tt|dd dtt|d ddtjj t dd ddd}tt|dj j ftjjj tj dtj dddddtt|ddddddd}d|_ d |ddd _ td}d|_ tt||ddS)Nc sTztj|gt|jd}Wnty}zt|d}~ww|j|_}|S)N)rrr9)r$r2rr. Exception RuntimeErrorr)r6r9rrerr:r;rXs  z7TestAttributes.test_set_stridesattr..make_arrayrr"rrr )rrrFrrr rrrr?r?rrcS ||_dSrTr)rUrr:r:r; set_stridesj z8TestAttributes.test_set_stridesattr..set_stridesr?rr)r")r4rrr:)rr r$rrr&rlib stride_tricks as_stridedr@r.rr TypeError)rCrrrAarr_0dr:rr;test_set_stridesattrUs(   z#TestAttributes.test_set_stridesattrcCsBdD]}td|}td|}|dd|d<t||qdS)Nz?bhilqpBHILQPfdgFDGOrrr r .)r$r/r3r )rCtryr:r:r; test_fill|s    zTestAttributes.test_fillcCsDtjdtjd}tjdtjd}d}||d<||t||dS)Nr rl.)r$r/rr3r )rCrr valuer:r:r;test_fill_max_uint64s  z#TestAttributes.test_fill_max_uint64cCs~tjddgdd}||dt|dd|ddtjdd d gd}|d t|d d d gt|dddgdS)N)r)r ?zi4,f8rrf1r rrAf8r) @rrArrr)r$rr3r r'r rCrr:r:r;test_fill_struct_arrays z%TestAttributes.test_fill_struct_arrayN) rNrOrPrDrrrrr r rrr:r:r:r;rs ' rc@seZdZddZddZddZddZd d Zej d e j e j e je je jgd d Zej d e j e j e je je jgddZdS)TestArrayConstructioncCstd}t||g}t|tdtd}td}t||g}t||d|d<t||dg}t||td}t||gg}t|tdtd}t||g||gg}t|tdtd}t||g}t|tdtd }tj||dg|dgtd }tt|dt|d ||dgt|d|dtjd td }d |d<d |dd df<tgdgdg}t||tdd gdd gd dgg}t||jdS)Nr)rrrr )r rr)rrr)rr)rrr)rrrrFrrTTFFFTT)r$onesrr r%rboolT)rCrrtgtr:r:r; test_arrays>          z TestArrayConstruction.test_arraycCstttjdSrT)rrr$rrBr:r:r;test_array_emptyrEz&TestArrayConstruction.test_array_emptycCsrtgd}tj|dd}d|d<t|gdtj|ddd}d |d<t|gd d |d <t|gd dS)Nr rrFcopyrr r rrFr$rr)r rrrr)r rrr$rr rCrrr:r:r;test_array_copy_falsesz+TestArrayConstruction.test_array_copy_falsecCstgdgdg}tj|dd}d|d<d|d<t|gdgdgt|gd gdgtj|dd d }d |d<d |d<t|gdgdgt|gdgdgdS)Nr"Tr#rrr r)r rr,r%r&r'rFr)r rr)r rFrr(r)r:r:r;test_array_copy_truesz*TestArrayConstruction.test_array_copy_truecCstdddd}tt|jjtt|jjtt|jjtt|jjtdddddddf}tt|jjtt|jjdS)Nr?rr)r$rrascontiguousarrayrH c_contiguous f_contiguousasfortranarrayrCrr:r:r;test_array_contsz%TestArrayConstruction.test_array_contfuncc Cstt|dddWdn1swYtt |Wdn1s.wYtt|ddddddd d WddS1sOwYdS) Nrz bad dtyperr rrrFrrr)rraisesrrCr4r:r:r;test_bad_arguments_errors   "z.TestArrayConstruction.test_bad_arguments_errorcCs&|tjur |dddS|dddS)Nr)r%rr$rr6r:r:r;test_array_as_keywords z+TestArrayConstruction.test_array_as_keywordN)rNrOrPr r!r*r-r3rrrr$rr[ asanyarrayr.r1r7r9r:r:r:r;rs0'    rc@<eZdZddZddZddZddZd d Zd d Zd S)TestAssignmentc Cstddd}td|d<t|gdgdgtddd|d<t|gdgdgtdddd ddd|d<t|gd gd gd d }tt||tdddddS)Nrrr.rr rr rrrr r r r"rFrrrr rcSs ||d<dS)N.r:rArr:r:r;assign z;TestAssignment.test_assignment_broadcasting..assign )r$r@rr rr&rCrArCr:r:r;test_assignment_broadcastings" "z+TestAssignment.test_assignment_broadcastingcsHGddd}tdfdd}tttf||tt|dgdS)Nc@rL)z0TestAssignment.test_assignment_errors..CNrMr:r:r:r;rrRrr cs |d<dSrr:r~rr:r;rC#rDz5TestAssignment.test_assignment_errors..assign)r$r'rAttributeErrorrr&)rCrrCr:rr;test_assignment_errorss   z%TestAssignment.test_assignment_errorscsddlmtfdd}tdg}td}|d ||d<Wdn1s,wYt|ddttdgdS) Nrset_string_functionc 3s>fddddz dVWddddSdddw)z% replace ndarray.__str__ temporarily csSrTr:rrr:r;0zLTestAssignment.test_unicode_assignment..inject_str..F)reprNr:rMrKrMr; inject_str-s z:TestAssignment.test_unicode_assignment..inject_strtestdonebaduåäö)numpy.core.numericrLrr$rr )rCrQa1da0dr:rKr;test_unicode_assignment)s     z&TestAssignment.test_unicode_assignmentcCsvtdg}tdg}Gddd}tttj|dgtttj|dgtttj|d|tttj|d|dS)NrSsdonec@eZdZddZddZdS)z?TestAssignment.test_stringlike_empty_list..bad_sequencecSdSrTr:rBr:r:r; __getitem__ErOzKTestAssignment.test_stringlike_empty_list..bad_sequence.__getitem__cStrTrrBr:r:r;rFrOzGTestAssignment.test_stringlike_empty_list..bad_sequence.__len__NrNrOrPr[rr:r:r:r; bad_sequenceDs r_r)r$rrr&r,setitem)rCurr_r:r:r;test_stringlike_empty_list?s  z)TestAssignment.test_stringlike_empty_listcCstjtjfD]g}ttdd|}ttdd|}t|g}t|d|||d<t|d|||d<t|d||d|d<t|d||d|d<t|d|tt|g}t|d|qdS)Nrr r"r..)r$ longdouble longcomplex nextafterastyperr )rCrtinybtinyatiny1drUr:r:r;test_longdouble_assignmentNs    z)TestAssignment.test_longdouble_assignmentcCs8tjddd}tjdgdd|dd<t|dddS)Nr S20rz1.12345678901234567890rrs1.1234567890123457)r$r'rr rr:r:r;test_cast_to_stringnsz"TestAssignment.test_cast_to_stringN) rNrOrPrGrJrXrbrkrmr:r:r:r;r<s  r<c@$eZdZddZddZddZdS)TestDtypedescrcCs<td}t|ttjtd}t|ttjdS)Nrr)r$rr rr)rCd1d2r:r:r;test_constructionxs  z TestDtypedescr.test_constructioncCs8ttdtdkttdgtdgkdS)Ni4rArsrArt)rr$rrBr:r:r;test_byteorders~s zTestDtypedescr.test_byteorderscCsBddg}td|f}tt|dtd|}tt|ddS)N)rA.cSrrr:rr:r:r;rNrcS|tgtSrTr$rrrr:r:r;rNcSrrTrrr:r:r;rNrrr IndexErrorrr:r:r;test_invalid_subscripts z#TestZeroRank.test_invalid_subscriptcC6|j\}}d|d<t|dd|d<t|ddS)N*.rr itemrr:r:r;"test_ellipsis_subscript_assignment  z/TestZeroRank.test_ellipsis_subscript_assignmentcCr)Nrr:rrrr:r:r;test_empty_subscript_assignmentrz,TestZeroRank.test_empty_subscript_assignmentcCsF|j\}}dd}tt||ddtt||ddtt||dddS)NcS |||<dSrTr:rrr~r:r:r;rCrDz>TestZeroRank.test_invalid_subscript_assignment..assignrrrr:)rrrr&)rCrArrCr:r:r;!test_invalid_subscript_assignments z.TestZeroRank.test_invalid_subscript_assignmentcCs|j\}}t|tjjdt|dtjfjdt|tjdfjdt|dtjfjdt|tjdtjfjdt|dtjtjfjdt|tjtjdfjdt|tjfdjddSNr .r r r?) r r r r r r r r r r rr r$newaxisr4rr:r:r; test_newaxiss zTestZeroRank.test_newaxiscCs@|j\}}dd}tt||tjdftt||tjfddS)NcS ||dSrTr:rrr:r:r; subscriptrDz4TestZeroRank.test_invalid_newaxis..subscriptr2rrrr$r)rCrArrr:r:r;test_invalid_newaxiss z!TestZeroRank.test_invalid_newaxiscCstd}d|d<t|ddtjd|d}d|d<t|ddtttjdddWdn1s9wYtttjdddWddS1sVwYdS)Nr:rF)rrrr)r$r2r rr5r&rCrr r:r:r;test_constructors   "zTestZeroRank.test_constructorcCs"td}tttj|dg|dS)Nrr )r$rrr&addrr:r:r; test_output zTestZeroRank.test_outputcCstd}|j}|j}t|tdtt|tjut|jj dt|jj dt|tdtt|tjut|jj dt|jj ddS)N?rTr ) r$rrealimagr rrr2rH contiguousr0)rCrxrxir:r:r;test_real_imags zTestZeroRank.test_real_imagN)rNrOrPrDrrrrrrrrrrrr:r:r:r;r~s    r~c@LeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestScalarIndexingcCstddgd|_dSNrr )r$rrrBr:r:r;rDzTestScalarIndexing.setupcCs(|j}t|ddt|djddS)N.rr:rr r4rr:r:r;rz*TestScalarIndexing.test_ellipsis_subscriptcCs(|j}t|ddt|djddS)Nr:rrrr:r:r;rrz'TestScalarIndexing.test_empty_subscriptcCs*|j}ttdd|ttdd|dS)NcSrrr:rr:r:r;rNrz;TestScalarIndexing.test_invalid_subscript..cSrrTrrr:r:r;rNrrrr:r:r;rsz)TestScalarIndexing.test_invalid_subscriptcCs"|j}dd}tt||dddS)NcSrrTr:rr:r:r;rC rDzDTestScalarIndexing.test_invalid_subscript_assignment..assignrr)rrrrFr:r:r;rsz4TestScalarIndexing.test_invalid_subscript_assignmentcCs|j}t|tjjdt|dtjfjdt|tjdfjdt|dtjfjdt|tjdtjfjdt|dtjtjfjdt|tjtjdfjdt|tjfdjddSrrrr:r:r;rszTestScalarIndexing.test_newaxiscCs<|j}dd}tt||tjdftt||tjfddS)NcSrrTr:rr:r:r;rrDz:TestScalarIndexing.test_invalid_newaxis..subscriptrrr)rCrArr:r:r;rsz'TestScalarIndexing.test_invalid_newaxiscCs@td}|dd|dd<t|gdtd}|dd|dd<t|gdtd}|ddd|dd<t|gdtddd }|dddddf|dddddf<t|gd gd gtddd }|dddddf|ddddddf<t|gd gd gtd}|dd|dd <t|gdtd}|dd |dd<t|gdtd}|dd|ddd<t|gdtd}|ddd|dd<t|gdtd}|ddd|ddd<t|gdtd}|ddd|ddd<t|gddS)Nrr r"r rrr)rrr rrrr rrrrr@rArrrFr=rF)rrrrr)rr rr r)rrrrr)rr rr r)r$r@r rrr:r:r;test_overlapping_assignment$sB   (*      z.TestScalarIndexing.test_overlapping_assignmentN) rNrOrPrDrrrrrrrr:r:r:r;rs rc@seZdZdZddZddZddZej dej e d d ej d d d gd dZ ddZ ejjeejjdkddddZddZejjddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Z d.d/Z!d0d1Z"d2d3Z#d4d5Z$d6d7Z%d8d9Z&d:S); TestCreationz' Test the np.array constructor cCs"Gddd}tttj|dS)Nc@seZdZdddZdS)z+TestCreation.test_from_attribute..xNcSrZrTr:)rCrr:r:r; __array__[z5TestCreation.test_from_attribute..x.__array__rTrNrOrPrr:r:r:r;rZsr)rr&r$rrr:r:r;test_from_attributeYsz TestCreation.test_from_attributecCs\tjdtjd}ddg}tjddgtd}|D]}d|}ttj||d||dqdS)N AllIntegerFloat123{rzString conversion for %sr)r$ typecodesrrr )rCronstrresultrmsgr:r:r;test_from_string`szTestCreation.test_from_stringcCs"tjgdd}|jdksJtjddgdd}|jdksJtttjddgddWdn1s7wYtttjddgddWdn1sUwYtjddgddd}|jdksmJtttjddgdddWddS1swYdS)NVrV8s1234V4s12345O)r$rrrr5rrgrVr:r:r; test_voidhs   "zTestCreation.test_voididxrUidr:scalarcCstjtjddd|tjddd|gdd}t|tjddgddtt tjtjddd|tjddd|gddWddS1sKwYdS) Nr i,irrrrrrzi,i,i)r$rr rr5r)rCrrUr:r:r;test_structured_void_promotion|s" ""z+TestCreation.test_structured_void_promotioncCsptdjdkr d}n tdjdkrd}ndStttj|tjdtttj|tjdtttj|tjddS)Nintpi)r)4s jrr) r$iinforrr&r/rr'r)rCr4r:r:r;test_too_big_errorszTestCreation.test_too_big_errorrz%malloc may not fail on 32 bit systemsrtcCsNttjjjtjttjjtj dWddS1s wYdSNr) rr$rk _exceptions_ArrayMemoryErrorr/rrrr0rBr:r:r;test_malloc_failss"zTestCreation.test_malloc_failscCstjdtjd}|D]h}tjd|d}tt|dt|dt| tjddd}tt|dt|dt| tjddd}tt|dt|dt| tjdd d}tt|dq dS) NrAllFloat rrrz(2,4)i44i4z(2,4)i4, (2,4)i4)r$rr'r count_nonzerosumranyrCrodtrr:r:r; test_zeross"zTestCreation.test_zeroscCs@tjdtjd}|D]}tjd|d}t| ~q dS)Nrr)ir)r$rr'rrrr:r:r;test_zeros_bigs zTestCreation.test_zeros_bigcCs2tjdtd}t|dgdtt|ddS)Nrrrr)r$r'r%r r rr2r:r:r;test_zeros_objszTestCreation.test_zeros_objcCs(tjddtdfgd}t|dddS)Nr?krrr)r$r'r%r r2r:r:r;test_zeros_obj_objzTestCreation.test_zeros_obj_objcCstjdD] }|dkr qtjd|d}tt||tt|j|jqtjddd}tt||tt|j|jtjddd}tt||tt|j|jtjddd}tt||tt|j|jtjddd}tt||tt|j|jtjdd d}tt||tt|j|jtjdd d}tt||tt|j|jtjdd d}tt||tt|j|jdS) NAllrrrrS5U5rsrtzM8[s]zf4,f4)r$rr'r zeros_liker r)rCcrr:r:r;test_zeros_like_like_zeross6z'TestCreation.test_zeros_like_like_zeroscCs,tdddD] }tj|dd}t|qdS)NrFdrr)rwr$r/r)rCrrr:r:r;test_empty_unicodes zTestCreation.test_empty_unicodecCsttdddgjtttddddgjtttdddgjtttddgdjtttddgddggjtttddgddggjtttgdgdgdgjtdS) NrrPrr rr?)r rr)r r$rrr%complexrBr:r:r;test_sequence_non_homogeneouss(z*TestCreation.test_sequence_non_homogeneouscCsbGddd}Gddd}t|g}t|jdkt|jttktttj|gdS)a)Should not segfault. Class Fail breaks the sequence protocol for new style classes, i.e., those derived from object. Class Map is a mapping type indicated by raising a ValueError. At some point we may raise a warning instead of an error in the Fail case. c@rY)z5TestCreation.test_non_sequence_sequence..FailcSdSNr r:rBr:r:r;rrz=TestCreation.test_non_sequence_sequence..Fail.__len__cStrT)r&rCindexr:r:r;r[ zATestCreation.test_non_sequence_sequence..Fail.__getitem__NrNrOrPrr[r:r:r:r;Fail rc@rY)z4TestCreation.test_non_sequence_sequence..MapcSrrr:rBr:r:r;rrz.Map.__len__cSrrT)KeyErrorrr:r:r;r[rz@TestCreation.test_non_sequence_sequence..Map.__getitem__Nrr:r:r:r;Map rrrN)r$rrr4rr%rr&)rCrrrAr:r:r;test_non_sequence_sequences  z'TestCreation.test_non_sequence_sequencecCs:Gddd}t|||g}t|jttdS)Nc@rY)z4TestCreation.test_no_len_object_type..Point2cSrZrTr:rBr:r:r;rWrz=TestCreation.test_no_len_object_type..Point2.__init__cSs|dvr|St)Nr+rrCindr:r:r;r[sz@TestCreation.test_no_len_object_type..Point2.__getitem__N)rNrOrPrWr[r:r:r:r;Point2rr)r$rr rr%)rCrrr:r:r;test_no_len_object_types z$TestCreation.test_no_len_object_typecCs,Gddd}t|}tt|ddS)Nc@rY)z/TestCreation.test_false_len_sequence..CcSr\rTr)rCrr:r:r;r[*rz;TestCreation.test_false_len_sequence..C.__getitem__cSr)Nrr:rBr:r:r;r,rz7TestCreation.test_false_len_sequence..C.__len__Nr^r:r:r:r;r)s rr)r$rr rrCrrAr:r:r;test_false_len_sequence's z$TestCreation.test_false_len_sequencecCshGddd}td}tt||dd<Wdn1s"wYt|t|kdS)Nc@rn)z/TestCreation.test_false_len_iterable..CcSr\rTrrr:r:r;r[5rz;TestCreation.test_false_len_iterable..C.__getitem__cSstdSNr:)iterrBr:r:r;__iter__7z8TestCreation.test_false_len_iterable..C.__iter__cSr)Nrr:rBr:r:r;r9rz7TestCreation.test_false_len_iterable..C.__len__N)rNrOrPr[rrr:r:r:r;r4 rr)r$r/rr&rlistr r:r:r;test_false_len_iterable2s   z$TestCreation.test_false_len_iterablecCs2Gddd}|gd}ttt|ddS)Nc@rn)z0TestCreation.test_failed_len_sequence..AcSrrT)_data)rCr!r:r:r;rWErz9TestCreation.test_failed_len_sequence..A.__init__cSst||j|SrT)rr)rCrr:r:r;r[Gz.A.__getitem__cS t|jSrT)rrrBr:r:r;rIrz8TestCreation.test_failed_len_sequence..A.__len__N)rNrOrPrWr[rr:r:r:r;ADrrr"r)r rr$r)rCrrr:r:r;test_failed_len_sequenceBs z%TestCreation.test_failed_len_sequencec Csntd}ttjj}dD]&}t|}|j}tj|d||f|dtt tj|d||df|dqdS)Nr)rrlrr)rrr4rr ) r$r'rrrrr.r2rr&)rCr7 max_bytesrr.r:r:r;test_array_too_bigPs    zTestCreation.test_array_too_bigcCsPttj t|}Wdn1swYtj|td}t|||Sr)rr$VisibleDeprecationWarningrr%r )rCseqrArr:r:r;_ragged_creation_s   zTestCreation._ragged_creationcCs|dgddg}t|jdt|jt|ddgdg}t|jdt|jt|dddgg}t|jdt|jtdSNr rrrrr r4rr%rr:r:r;test_ragged_ndim_objectgs     z$TestCreation.test_ragged_ndim_objectcCs|ddgdgdgg}t|jdt|jt|dgddgdgg}t|jdt|jt|dgdgddgg}|jdksCJ|jtksJJdSrr!rr:r:r;test_ragged_shape_objectus    z%TestCreation.test_ragged_shape_objectcCstddg}tgd|d<|d<t|jdksJt|gjdks)Jtddg}tgd|d<tgd|d<t|jdksLJt|gjdksWJdS)Nr"rr rr rr rrr)r$rr4)rCouter outer_raggedr:r:r;test_array_of_ragged_arraysz'TestCreation.test_array_of_ragged_arraycCs@ttdggg}tdtdg}tdgtdgg}dSr)r$rrrr:r:r;test_deep_nonragged_objectsz'TestCreation.test_deep_nonragged_objectN)'rNrOrP__doc__rrrrrrparamEllipsisrrrr$rrr.rrslowrrrrrrrr r rrrrr"r#r(r)r:r:r:r;rUsB     "   rc@steZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZdS)TestStructuredcCstjddgd}tddddd|d<t|jd|dd d dd|jd d }t|dj |dj t|jdj |jdj dS) N)rrF)rArrrrrrFrrAr rr&r#) r$r'r@rr r transposer$r r4rr:r:r;test_subarray_field_accesss   "z)TestStructured.test_subarray_field_accesscCstjjgddddgddggfgddd d gd d ggfgd dtfd gd }|}t||kd d gt||kddgd|d_t||kd dgt||kdd gtdD]#}|d j|d _d|d j|<t||kddgt||kd d gqVtdD](}tdD]!}|}d|d j ||f<t||kdd gt||kd dgqq~tj dgdggdgd }tj gddgd }t||kgdgdgt||kgdgdgtj dgdggdgd }tj gddgd }t||kgdgdgt||kgdgdgtj d d gfgddgfggdgd }tj d d gfd dgfddgfgdgd }t||kgdgdgt||kgdgdgtj d d gfgddgfggdgdd}tj d d gfd dgfddgfgdgd }t||kgdgdgt||kgdgdgtj dddgd }tj dddgd }t }| td t||kdWdn 1swYtj dd!dgd }tj dddgd }t }| td t||kdWdn 1swYtj d"d#gd$d%gd }tj d&d#gd'd(gd }t||kdd gdS))Nr"rAr rrrrrrrr)rA)f4r)rr/rTFrrFr?rrr)rrrrr)rArr)rArr)TFFr&r)rA)r3r$ri1)rA)r3rz elementwise == comparison failed)rA)r3rr rFrr?r rAz>i8rf8)r$rec fromrecordsr%r$r rrwrArrr'rfilter FutureWarning)rCrArrjrr supr:r:r;test_subarray_comparisonsj2     $(&(  z'TestStructured.test_subarray_comparisoncCstjdgdgd}ttj|jdgdd|dg}t||t|dd|ddtjd d gdd gd}tjd d gdd gd}ttj|j|jd dt||kddgttj|j|jd d|j|jd d}t||kddgdd g}ttj|j|dd|j|dd}t|tjd d g|dkddgddg}ttj|j|dd|j|dd}t|tjd d g|dkddgddg}ttj|j|dd t t |j|dddd g}ttj|j|d d t t |j|d dddg}ttj|j|dd t t |j|ddttj|j|jdd t t |j|jdddD]"}dg}ttj|j||d gd}ttj|j||d q)dS)NrrurrvunsafecastingrArr7r8r:r>equivTr=safe)rz>f4 same_kindr9)ri2ryno)rOrKrJrL)rvr:)rr) r$rrcan_castrrgr byteswap newbyteorderrr)rCrArrr rIr:r:r; test_castingsR zTestStructured.test_castingcCs>tjggdd}|ddgtdddg}|dd gdS) N)rArrr)rrrrArr)rr)r`z|Or`r)r$rr')rCrAdat2r:r:r; test_objview$s zTestStructured.test_objviewcCsvtdg}tdd|fg}td|}tjddd|dd <tjd|d|dd<t|dd tjddddS) N)elemrrF)fieldrr?structr r?rrrrY)r$rr'rr )rC struct_dtrrr:r:r; test_setfield-s   zTestStructured.test_setfieldcsdtjddgd}td|dd<t|ddtdtjddgdfdd }tt|dS) Nr )rrrrrr)rrrFcstddd<dS)Nrrr)r$r@r:rr:r; testassignAz7TestStructured.test_setfield_object..testassign)r$r'r@r rr&)rCrr^r:r]r;test_setfield_object6s  z#TestStructured.test_setfield_objectcCsPtdtfdg}tjd|d}t|dgdt|djdgd|d<t|dgdt|dgd d |d|ddk<t|dgdt|dgd d |d<t|dgdt|dgd tjd|djd}t|jdt|d|ttjdd d gddjdttjdddjdttjddddjd|dd}t|jdt|ddgddggt|ddj|jt t t |t tj d|t}t|||dt|}t|jdt||tdd}t||t|}t|jdt||WddS1s!wYdS)NI)SS0rrrb)rdrdrdr)rArrrrrrrhellor)rAS0,S0)rrerArrgzS0,u1f0rrdrz.npy)suffix)r$rrr'r r.r2r/rr evalrPdictrioBytesIOsaveseekloadr)rCrrr xxryytmpr:r:r;test_zero_width_stringFsT              $z%TestStructured.test_zero_width_stringcCs(tjddd}|d}t|j|udS)Nrzi4,f4rr)r$r'rr|rr:r:r;test_base_attr~zTestStructured.test_base_attrc sddtddg}td|tjdgddgd}tjdgddgd}tjdgddgd}tjd gdgdtjdgd d gd}d gd gdgd}tjddg|d}t||t||t||ttfddt||d|dd<ttjddg|dtjdggdd}|d dg|dd g<t|ddtjdgddgd}|ddg|ddg<t|dddS)NcSs |}||d<||dd<|Srr#)rUr~rr:r:r;r^s z2TestStructured.test_assignment..testassignfooi8barrzrrr)bazrzr)ryr)r|rr|rzrnamesformatsoffsetscs SrTr:r:rUr^v4r:r;rN z0TestStructured.test_assignment..r)r rr")rxr{)r}r3ryrrr rr$rrrrAr6) r$rrrrZr rr&r) rCrv1v2v3v5ransrAr:rr;test_assignments2  zTestStructured.test_assignmentcCsJtttddd}|dWddS1swYdS)NrFr)rr&r$r@ritemsetrVr:r:r;test_scalar_assignments  "z%TestStructured.test_scalar_assignmentcCsJtjddd}t|ddgd|dddgt|d|dddS)Nr z (2)3S,(2)3Ur4rrhrrr:)r$r/r rr:r:r;test_structuredscalar_indexings"z-TestStructured.test_structuredscalar_indexingcsXtjdgddttfddttfddttfdddd gdS) Nr))rBrrrrrrcs ddgS)NrArr:r:rr:r;rN z7TestStructured.test_multiindex_titles..c ddgS)NrAr:r:rr:r;rNrcr)Nrr:r:rr:r;rNrrr)r$r'rrr&rBr:rr;test_multiindex_titless z%TestStructured.test_multiindex_titlescCstjdgdd}|d}|jjrJt|j|usJtj||jdjdus)Jtt |}|jjs7Jt|jdusAJdS)Nr rrr) r$rrHrr[r|rrryrz)rCrUrr:r:r;test_structured_asarray_is_views  z.TestStructured.test_structured_asarray_is_viewN)rNrOrPr1rFrSrWr\r`rurvrrrrrr:r:r:r;r.sE:  8% r.c@seZdZddZddZddZddZejj d d Z d d Z d dZ ddZ ejjddddZejjddddZdS)TestBoolcCsrtd}td}t||utd}td}t||uttdgd|uttdd|udS)NrFr Tr:)r$bool_rr)rCa0b0a1b1r:r:r;test_test_internings      zTestBool.test_test_interningcCstjdtd}t||jt|ddd|dddjt|ddd|dddjtjdtd}t||jt|ddd|dddjt|ddd|dddjdS)Nerrrs)r$rrr rr6rir2r:r:r;test_sums$$$(zTestBool.test_sumcsddt|D}td|D]Kfdd|D}tj|td}t|}tt|||tj }|d9}tt|||d9}tt||d||d k<tt||qdS) NcSsg|]}d|qSrr:.0rr:r:r; z0TestBool.check_count_nonzero..rcsg|]}|@dkqSrr:rrrr:r;rrrrr) rwr$rrbuiltinsrr rrZr0)rCpowerlengthpowersrrAravr:rr;check_count_nonzeros   zTestBool.check_count_nonzerocCs|dddS)NrErrBr:r:r;test_count_nonzeroszTestBool.test_count_nonzerocCs|dddS)NrrrBr:r:r;test_count_nonzero_allszTestBool.test_count_nonzero_allcCstdD]B}tjdtd|dd}d|d|<tt|t|tj dtd|dd}d|d|<tt|t|qdS)Nr)rr TF) rwr$r'rr rrrtolistr)rCorAr:r:r;test_count_nonzero_unaligneds   z%TestBool.test_count_nonzero_unalignedcCstdD]9}td||f}tt|dtt|ddt|tdtt|ttjt|dttj uqtddD]>}dD]9}t|||f}tt|dtt|ddt|tdtt|ttjt|dttj uqGqCdS) NrrdFr:r r)a0 T) rwr$rr rrgrr{r2False_True_)rCrnr~valr:r:r;_test_cast_from_flexibles" z!TestBool._test_cast_from_flexiblecC|tjdSrT)rr$voidrBr:r:r;test_cast_from_voidrEzTestBool.test_cast_from_voidz See gh-9847rtcCrrT)rr$unicode_rBr:r:r;test_cast_from_unicodezTestBool.test_cast_from_unicodecCrrT)rr$bytes_rBr:r:r;test_cast_from_bytesrzTestBool.test_cast_from_bytesN)rNrOrPrrrrrrr-rrrrxfailrrr:r:r:r;rs       rc@seZdZeefddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZejjejdkddddZdS)TestZeroSizeFlexiblecCsJt|}|tjkrtj||dfdStd|dfg}tj||ddS)Nrrr)r$rrr'rr:r:r;_zeros%s  zTestZeroSizeFlexible._zeroscCsN|dt}t|jd|dtj}t|jd|dt}t|jddS)Nr?r)rr}r r.r$rrrCzsr:r:r; test_create/s    z TestZeroSizeFlexible.test_createc KsfttjtfD]*}|d|}t||}tt|}|D]}|dd|i|||fd|i|qqdS)Nr?kindr:)r}r$rrrgetattr) rCnamekindskwargsrr sort_method sort_funcrr:r:r;_test_sort_partition7s   z)TestZeroSizeFlexible._test_sort_partitioncC|jddddS)NsortqhsrrrBr:r:r; test_sortArzTestZeroSizeFlexible.test_sortcCr)NargsortrrrrBr:r:r; test_argsortDrz!TestZeroSizeFlexible.test_argsortcC|jddgdddS)N partition introselectrrkthrrBr:r:r;test_partitionGr_z#TestZeroSizeFlexible.test_partitioncCr)N argpartitionrrrrrBr:r:r;test_argpartitionJr_z&TestZeroSizeFlexible.test_argpartitioncCs6ttjtfD]}|d|}|d|dqdS)Nr?rr)r}r$rrrresizerCrrr:r:r; test_resizeMs    z TestZeroSizeFlexible.test_resizecCsPttjtfD]}|d|}t||jt|t||dfjdqdS)Nr?r r) r}r$rrrr rZrr4rr:r:r; test_viewTs  zTestZeroSizeFlexible.test_viewcCs$|dt}t|t|dSr>)rrr rryrzrr:r:r; test_dumps^s zTestZeroSizeFlexible.test_dumpscCs^tdtjdD]$}ttjtfD]}|d|}tj||d}t |}t |j |j qqdS)Nrr r?protocol) rwrrxr}r$rrrrzryr r)rCprotorrpzs2r:r:r; test_picklebs  z TestZeroSizeFlexible.test_picklerFrequires pickle protocol 5rtcCsRtd}g}tj||jdd}tj||d}d|d<|ddks'J|ddS)Nr?rF)buffer_callbackrbuffersr"r)r$r@rrzappendry)rCrr bytes_stringarray_from_bufferr:r:r;test_pickle_with_buffercallbackks  z4TestZeroSizeFlexible.test_pickle_with_buffercallbackN)rNrOrP staticmethodrrrrrrrrrrrrrrrrrxrr:r:r:r;r$s"    rc @s.eZdZgdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZejdejejejejejejejejgddZejdejejejejejejejejgddZ ejdejejejgejdddgd d!Z!d"d#Z"ejdej#ej$gd$d%Z%d&d'Z&d(d)Z'ejdd*d+gd,d-Z(d.d/Z)d0d1Z*d2d3Z+d4d5Z,d6d7Z-d8d9Z.d:d;Z/dd?Z1d@dAZ2dBdCZ3dDdEZ4dFdGZ5dHdIZ6dJdKZ7dLdMZ8dNdOZ9dPdQZ:dRdSZ;dTdUZdZd[Z?d\d]Z@d^d_ZAd`daZBdbdcZCdddeZDdfdgZEejdhejFejGfdidjZHejdhejFejGfejddkdldmZIdndoZJdpdqZKdrdsZLdtduZMdvdwZNdxdyZOdzd{ZPd|d}ZQd~dZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]dS) TestMethods) quicksortheapsortstablecCstgdgdgdg}tgdgdgdg}tdgdgdgg}dD]8}t|j||dtj||dddfddf|d ttj|||d||dddfddfj|d q)t|j|d dttj||d dt|jdd dttj|dd ddS) NTFTFFFTTTFTrNaxiswhererrr)r$rr all)rCrAwh_fullwh_lower_axr:r:r;test_all_wheres.  $"zTestMethods.test_all_wherecCstgdgdgdg}tgdgdgdg}tdgdgdgg}dD]8}t|j||dtj||ddd fddf|d ttj|||d||ddd fddfj|d q)t|j|d dttj||d dt|jdd dttj|dd ddS) Nrrr)FTFFTrrrrr)r$rr r)rCrAr wh_middlerr:r:r;test_any_wheres.  $"zTestMethods.test_any_wherecCsgdg}tddd}|jddgdd}t||ddgd d gg}|jgd dd}t||dgd gg}tddd}|jddgdd}t||tddd}|ddg}t|ddS N)rFrrrrr?rrFrr rrrr)rr rr rr$r@rcompressr rCrrUoutr:r:r; test_compresss     zTestMethods.test_compressc Csxdtjdtd}dtjdtd}dtjdtd}dtjdtd}tgd}|||f}t|gd|||f}t|gdgdg|||f}t|gdgdgtd}tt|jtd |gtd }tjtdgd |d } || usJt|d d t d}tjgd|dd|dd|ddg|dddd}t|tgddS)Nrr rrrrrr rrrr r)r?rrrr:rrFr>rwraprmoder=) r$rrrchooser rrrr@) rCrr x2y2rronedrretr:r:r; test_chooses(    <zTestMethods.test_choosecCsgd}gdgdgdg}tjtjtjtjtjtjtjtjfD]H}t ||}t ||}|dvrBt t |j t t |j ddq!t |j ddd t|j ddt gd |t|j d dt gd |q!dS) N)r rr? rrFrr%)rFrrr)r?rrrF)1rr rri g)r$Tr")ibiX)r$rrrrfloat32r complex64 complex128rrArithmeticErrorprodr r )rCbaba2ctyperAa2r:r:r; test_prods$     zTestMethods.test_prodcCstgd}|d}|gd}t|gd|d}t|gd|jddgdd }t|gd gd gd g|jgd dd }t|gd gdg|jddd }t|gd gd gd gd g|jddd }t|gdgdgdS)Nr rrrrFrrr rrr r r r rrrrrrrFrrr r r rrrrrrrFrFrrr rrr"rrFrr rrr rrrrrrrFrFrFrrr r rrrrrrrFrFrr)r$rrrepeatr )rCmm_rectrr:r:r; test_repeats2       zTestMethods.test_repeatcCstgdgdgdgdg}gdgdg}t|dd|gd gd gd g}t|d d |gdgdgdg}t|jddd|gdgdgdg}t|jjddd|dS)Nr"r2)rrr)r?rrEr.)rrrr?rrErrr%rFrrr)rr?rrErr)r r?rr)rrrr)rrFrrErrr&r#)r rrr?)rrFrr)rrrrEr)r$rr rr)rCrUrr:r:r; test_reshape s"zTestMethods.test_reshapecCsdd}|tddgddg|tdd|tddgd d gd |td d gddgd|tdgdg|tdgdgd dS)NcWsDt|j||t|}|j|d|i}t||||us JdSNr)r roundr$r)rUexpected round_argsrresr:r:r; check_rounds   z+TestMethods.test_round..check_roundg333333??r rgffffff(@g/@r?rr"gL(@gQ/@y@?y@@y)@/@y$@4@r8)rCrDr:r:r; test_roundszTestMethods.test_roundcCsttdgdgdggg}t|gdt|jdddgdgdggtt|jddt|jddgdgdS) Nr rrr"rrrr)r$rr squeezerr&rr:r:r; test_squeeze*s zTestMethods.test_squeezecsjtddgddggtddgddggttfddttfddttfdddS) Nr rrrcs dSrr0r:rr:r;rN4rz,TestMethods.test_transpose..cs ddSrrIr:rr:r;rN5rcsdddS)Nrr rrIr:rr:r;rN6)r$rr r0rr&rBr:rr;test_transpose1s zTestMethods.test_transposec Csd}ttjddg}t|}t||ddd|d}tjdtjd}|jtjtjtjddddddg 7_|jtjddtjtjddddg 7_t|}t||ddd|dS)NzTest real sort order with nansr rr"z!Test complex sort order with nansrr) r$rnanrr r'r&rr)rCrrArr:r:r;r8s && zTestMethods.test_sortrcCsxtjd|d}|ddd}|jD]&}d|}|}|j|dt||||}|j|dt|||qdS)Nrrr"scalar sort, kind=%srr$r@r$ sort_kindsrr rCrrArrrrr:r:r;test_sort_unsignedQs    zTestMethods.test_sort_unsignedcCsztjdd|d}|ddd}|jD]&}d|}|}|j|dt||||}|j|dt|||qdS)N3rr"rMrNrOrQr:r:r;test_sort_signed`s    zTestMethods.test_sort_signedpartrrc Cstjtjtjtjtjtji|}tjdd|d}|ddd}|d |}|d |}t ||dt ||d|j D](}d||f} |} | j |dt | || |} | j |dt | || q>dS) NrSrTrr"??r z#complex sort, %s part == 1, kind=%srN)r$singlecsingledoublecdoublerd clongdoubler@r$rgrrPrr ) rCrVrcdtyperAraibirrrr:r:r;test_sort_complexos*       zTestMethods.test_sort_complexcCsZdD](}tjdD] }tjgd||d}|}|d|}t|||q qdS)NrComplexy?@y@@y@?rz$byte-swapped complex sort, dtype={0})r$rrr$rformatr )rC endiannessrrUrrr:r:r;test_sort_complex_byte_swappings z+TestMethods.test_sort_complex_byte_swappingcCstjddtdD|d}|ddd}|jD]&}d|}|}|j|dt||||}|j|dt|||qdS)NcSsg|]}dt|qS)aaaaaaaachrrr:r:r;rrz0TestMethods.test_sort_string..rrr"kind=%srN)r$rrwr$rPrr rQr:r:r;test_sort_strings    zTestMethods.test_sort_stringcCstjdtd}ttd|dd<|ddd}dD]&}d|}|}|j|dt||||}|j|dt|||qdS)Nrrrr"qhr9rirN)r$r/r%rrwr$rr )rCrArrrrr:r:r;test_sort_objects   zTestMethods.test_sort_objectcCstdtfdtfg}tjddtdD|d}|ddd}dD]&}d |}|}|j|d t||||}|j|d t|||q"dS) NrrcSg|]}||fqSr:r:rr:r:r;rrz4TestMethods.test_sort_structured..rrr"rlrirN) r$rfloatrrrwr$rr )rCrrArrrrr:r:r;test_sort_structureds   z TestMethods.test_sort_structured datetime64[D]timedelta64[D]cCsttjdd|d}|ddd}dD]&}d|}|}|j|dt||||}|j|dt|||qdS)Nrrrr"rlrirN)r$r@r$rr rQr:r:r;test_sort_times   zTestMethods.test_sort_timecCstddgddgg}tddgddgg}tddgddgg}|}|jddt||d|}|jddt||d|}|t||ddS) Nrrr rrztest sort with axis=0ztest sort with axis=1ztest sort with default axis)r$rr$rr )rCrArrrr:r:r;test_sort_axiss    zTestMethods.test_sort_axiscCshtg}d|_t|j |jD]}d|}ttj||d||qd}ttj|dd||dS)Nrz#test empty array sort with axis={0}rz$test empty array sort with axis=None) r$rr4rwrrcr rravelrCrArrr:r:r;test_sort_size_0s  zTestMethods.test_sort_size_0cCs\Gddd}tj|gdtd}|jD]}d|}|}|j|dt|||qdS)Nc@rS)z0TestMethods.test_sort_bad_ordering..BoomcSr)NTr:rCotherr:r:r;__lt__rz7TestMethods.test_sort_bad_ordering..Boom.__lt__N)rNrOrPr|r:r:r:r;BoomrYr}rrrirN)r$rr%rPr$rr )rCr}rArrrr:r:r;test_sort_bad_orderings  z"TestMethods.test_sort_bad_orderingcCstdD]}tjjddtjd}|d}|dddqtdg}tdD]}tjjddtjd}||}|dddq)dS)Nrir6rrr")rrr)rwr$randomrandintr0rZrr)rCrrandrUrr:r:r;test_void_sorts     zTestMethods.test_void_sortcstjdtdgtd}|jD] }tt|j|dqGdddtfddt d D d }tj ||jD] }tt|j|dq;dS) Nrr rrNc@s,eZdZddZeZZZZZZ dS)z,TestMethods.test_sort_raises..Raiserc_td)NzSOMETHING ERRORED)rargsrr:r:r;raises_anythingrz.Raiser.raises_anythingN) rNrOrPr__eq____ne__r|__gt____ge____le__r:r:r:r;Raisersrcsg|]}|gqSr:r:)rrrr:r;r z0TestMethods.test_sort_raises..r?r") r$rrnowr%rPrrrrwrrshuffle)rCrUrr:rr;test_sort_raisess "  zTestMethods.test_sort_raisescCstd}|}|}|jdkr-|jd}|d||||<|d<|dd}|jdkstt||t|t||dS)N@Brrr)r$r@r$r6r rr)rCrdormidr:r:r;test_sort_degradeds     zTestMethods.test_sort_degradedcCsdd}dd}tjddd}||||d||d||d tjddd}||||d||d||d dS) NcSs*t|jjt|jjt|jj dSrTrrHfortranr0r/rUr:r:r;assert_fortrans  z-TestMethods.test_copy..assert_fortrancSs,t|jj t|jj t|jjdSrTrrr:r:r;assert_c#sz'TestMethods.test_copy..assert_crr&r#rr)r$r/r$)rCrrrAr:r:r; test_copys  zTestMethods.test_copycstgd}tgd}tgd}tjj|||gddjdgdtjtgdtjtgd tjtgd jd gdtjtgd tjtgd tjtgdjdgdtjtgdtjtgdtjtgdt t dfddt j dkrd}nd}dd|fg}tjgd|djddtdgdttjgd|ddS)N)r)myfirstr)@@@zid,word,number)rrr#)rrr)rrr)rrrword)rrr)rrr)rrrnumber duplicatecsjddgdS)Nrr#)rr:rr:r;rNMrz-TestMethods.test_sort_order..littlerNrx)rrcol2)rAr rrrrrr)r rrr)rrrr) r$rr@ fromarraysrr rrrr r&sys byteorder)rCx1rx3strtypemydtyper:rr;test_sort_order6s>      zTestMethods.test_sort_ordercsjtjtjtjfD]6}tjd|d}|ddd}|jD] }d||f}t|j|d||t|j|d||qq|dd}|dd}|jD]}d|}t|j|d||t|j|d||qN|d}|d}|jD]}d|}t|j|d||t|j|d||qxd D]*}tj d D]"} tj gd || d} d | }t| tjt | tj d|qqd t fddtdD}|ddd}td} | ddd} |jD]}d|}t|j|d| |t|j|d| |qd tj fddtdDtjd}|ddd}td} | ddd} |jD]}d|}t|j|d| |t|j|d| |q4tjdtd}ttd|dd<|ddd}td} | ddd} |jD]}d|}t|j|d| |t|j|d| |q{tdtfdtfg} tj ddtdD| d}|ddd}td} | ddd} |jD]}d|}t|j|d| |t|j|d| |qtjdddd}|ddd}td} | ddd} dD]}d|}t|j|d| |t|j|d| |qtjdddd}|ddd}td} | ddd} dD]}d|}t|j|d| |t|j|d| |qDt dd gddgg}t ddgddgg}t ddgddgg} t|jdd!|t|jdd!| t|| t g}d"|_t|j |jD]}d# |}ttj||d!tj|tj d|qd$}ttj|dd!tj|tj d|td%} td%}t|jd&d| tjd%td}t|jd&d| t d'dtd%D}t|jd&d| tj d(dtd%Dtjd}t|jd&d| dS))Nrrr"z!scalar argsort, kind=%s, dtype=%srNrr zcomplex argsort, kind=%srrarbz'byte-swapped complex argsort, dtype={0}rfcg|]}t|qSr:rgrrMr:r;rrz,TestMethods.test_argsort..zstring argsort, kind=%scrr:rgrrMr:r;rrzunicode argsort, kind=%srkzobject argsort, kind=%srrcSrpr:r:rr:r:r;rrz!structured array argsort, kind=%srrsrlzdatetime64 argsort, kind=%srtztimedelta64 argsort, kind=%srrrrz&test empty array argsort with axis={0}z'test empty array argsort with axis=Nonerr9cSg|]}dqS aaaaaaaaar:rr:r:r;rrcSrrr:rr:r:r;rr)r$rrr$r@r$rPr rrrrcrrrwrr/r%rrrqrr4rrrwr'r)rCrrArrrr^r_rdrrUrrrrrr:rMr;r[s         "            zTestMethods.test_argsortcCs8td}dd}tt|j|dtt|j|ddS)Nr?äUTF8rN)r$r@decoderr&rrrCrrr:r:r;test_sort_unicode_kinds  z"TestMethods.test_sort_unicode_kindc Cs<tddtjg}d}|j|dd}t|td|d}|j|dd}t|tdd ||jdd tjd tjd }|jddddddtjtjtjg 7_|j ddddtjtjddtjg 7_ d }|j|dd}t|td |d}|j|dd}t|tdd|d}tjddgdd }|tjddd }t|d|d}tjddgdd }|tjddd }t|d|t d}|gdd}t|gd|gdd}t|gdt d}|gdd}t|gd|gdd}t|gdt d}|gdd}t|gd|gdd}t|gdtd}t |j |j dd}|dd|j}||dd<||d}t||||d}t||d||d}t||||d}t||dtd}|gdd}t|gd|gdd}t|gd d!tjd"tjd#tjd$d%f}|D]m}|d&krd'}|d(krtjd|d }td}n tjdd|d }td}||d}t||||d}t||dtjdd)|d*} | |d}t|tjt|tjd || d}t|tjdtjd qdS)+Nrr z*Test real searchsorted with nans, side='l'left)siderz*Test real searchsorted with nans, side='r'rightrrHrrz-Test complex searchsorted with nans, side='l'z-Test complex searchsorted with nans, side='r'r?z.Test searchsorted with little endian, side='l'rsz+Test searchsorted with big endian, side='l'rtr=r>rrr r r)rrr)rrrr0rF)rrFr)rFrFr)rFrFrFrrrDatetime?OMM8[D]?rdr4rr)r$rrL searchsortedr r@r'r&rrrr/r.r6rZrjoinrr2r rr) rCrArrr unalignedrorrrr:r:r;test_searchsorteds &&                        zTestMethods.test_searchsortedcstjgdtjdtt}tfddD|tfddD|dtfdd|D|tfdd|D|ddS) N)z'P:\20x_dapi_cy3\20x_dapi_cy3_20100185_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100186_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100187_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100189_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100190_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100191_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100192_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100193_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100194_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100195_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100196_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100197_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100198_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100199_1rcg|]}|dqSrrrr~rr:r;rf rz9TestMethods.test_searchsorted_unicode..crrrrrr:r;rg rr cg|] }|dqSrrrrr:r;rh crrrrrr:r;ri r)r$rrr@rr rr:rr;test_searchsorted_unicodeP s  z%TestMethods.test_searchsorted_unicodec Cstgd}t|}tttj|dtjdtddtttj|ddgdtttj|dgddtttj|dgddtttj|d gd dtttj|dgd dtttj|dgd ddS) N)rFrr rrr)r rrsorterg?r%r.rrr rrrF)r"rr rr)rrr"rr)r$rrrrrr%r&)rCrArr:r:r;%test_searchsorted_with_invalid_sorterk s   z1TestMethods.test_searchsorted_with_invalid_sortercCsXtjd}|}t|}tddd}t|||j||dtgdd}|}gd}gd}t|j|d|d |gd }t|j|d |d |t d }| }tj ||}t |j |jdd }|dd|j}||dd<||d|}t||||d |}t||d||dd<||d|}t||||d |}t||ddtjdtjdtjddf} | D]} | dkrd} | dkrtjddg| d}tjddgtjd}tddg} ntjgd| d}tjgdtjd}tjgdtjd} ||d|}t|| ||d |}t|| dtjdd| d} | |d|dd}t|tjt|tjd|| d|}t|tjdtjdqtgd}tj dtjd} d| ddd<gd| ddd<| ddd}tjgdtjd} ||d|}t|| ||d |}t|| ddS)Ni,rr rrr)rr(rrr)rr)rrrrrrr?r0rrrrrrrrr)rrr rr)rrrrr rdrrr"r)r$rrrrlinspacer rrr@r$rr/r.r6rZrrrrrr2r r'r)rCrArrrrAkeysrrrorrrsrtr:r:r;test_searchsorted_with_sortery sx           z)TestMethods.test_searchsorted_with_sortercCsGdddtj}td|}tdd|}td|}tt||d| tt||d| tt||d|| tt||d|| dS)Nc@rL)z4TestMethods.test_searchsorted_return_type..ANrMr:r:r:r;r rRrrFr rrr)r$r2r@rZrr{r)rCrrArrr:r:r;test_searchsorted_return_type sz)TestMethods.test_searchsorted_return_typecCTtd}tt|jdtt|jdtjdtd}tt|jdtt|jddSNr?ir)r$r@rr&rr%rCrd_objr:r:r;test_argpartition_out_of_range z*TestMethods.test_argpartition_out_of_rangecCrr)r$r@rr&rr%rr:r:r;test_partition_out_of_range rz'TestMethods.test_partition_out_of_rangecC8td}tt|jdtjdtd}tt|jddSNr?"@r)r$r@rrrr%rr:r:r;test_argpartition_integer  z%TestMethods.test_argpartition_integercCrr)r$r@rrrr%rr:r:r;test_partition_integer rz"TestMethods.test_partition_integercCsltg}d|_t|j |jD]}d|}ttj|d|d||qd}ttj|ddd||dS)Nrz(test empty array partition with axis={0}rrz)test empty array partition with axis=None) r$rr4rwrrcr rrwrxr:r:r;test_partition_empty_array s   z&TestMethods.test_partition_empty_arraycCstg}d|_t|j |jD]}d|}ttj|d|dtj|tj d|qd}ttj|dddtj| tj d|dS)Nrz+test empty array argpartition with axis={0}rrrz,test empty array argpartition with axis=None) r$rr4rwrrcr rrrrwrxr:r:r;test_argpartition_empty_array s  z)TestMethods.test_argpartition_empty_arrayc Cs td}tttj|dddtttj|dddtttj|dddtt|jddddtt|jdddddD]}tg}ttj|d|d|ttj|d|d|t d}ttj|d|dd|t|tj|d|dtj|d|dtgd }| }ttd |t||ddgddgddgfD]h}t|}t |}ttj|d|dd|dttj|d|dd|dt|tj|d|dtj|d|dt|tj|d|dtj|d|dt |j D] }||djd|dqt||qgd gd gd gdgdgdgdgdfD]}t|}t |}ttj|d|dd|dttj|d|dd|dttj|d|dd|dt|tj|d|dtj|d|dt|tj|d|dtj|d|dt|tj|d|dtj|d|dt |j D]}||djd|dqt||q#t d}ttj|d|d|t|tj|d|dtj|d|dtd}ttj|d|dddttj|d|dddt|tj|d|dtj|d|dt|tj|d|dtj|d|dtdddd}ttj|d|dddttj|d|dddt|tj|d|dtj|d|dt|tj|d|dtj|d|dttj|d|dtj|d|dttj|d|dtj|d|dt|tj|d|dtj|d|dtd}t||j d}|j dd} tt|| | | td }t||j dd}|j dd} tt|| | | t d}d!|d<tt|d"dd!tt|d"ddt|t|d"dd!t|t|d"ddtj|d<tt|t|d"dttt|d"dtdd#}t tdd#}tj|t |j D]}ttj|||d|||qOt|tj|d|dtj|d|dt|tj|d|dtj|d|dt |j D]}||djd|dqt||tgd$}gd%}ttj|||d|d&t|tj|||d|d&tddg}|jd|dtt|jdttj|jd'dd(tttj|dttjtj|ddd(tt|jdttj|jd'dd(tttj|dttjtj|ddd(tdd)}|jdd|d|jd!d|dtj|dd|dtj|d!d|dtj|dd|dtj|d*d|d|jdd|d|jd!d|dtj|dd|dtj|d!d|dtj|dd|dtj|d*d|dtt|jddd(tt|jd+dd(tt|jddd(tttj|d*dd(tttj|d+dd(tt|jddd(tt|jd+dd(tttj|d*dd(tttj|d+dd(d,d-tjtjtjfD} | D]\} } t} t}tj| | d.}tj|ttj| | d.d/}ttjj|t|}t |j D]}tj|||d}t|||t|d|||t||||dd| ||tj|||dtj||d|d}| |dd|ftj|g|jd| d.||ddd|fj|dd|fk d0||dd|f|ddd|fjfd1||dd|ddfj|dd|fk d2||dd|f|dd|ddfjfd1| ||t|jddddftj||d|dftj||d|d}| ||ddftj|g|jd| d.||d|ddf||ddfk d0|||ddf|d|ddffd1|||ddddf||ddfk d2|||ddf|dd|ddffd1| ||tj||d|dt|jddddff| }|j||dt|tj|||d| }|j|d|dt|tj||d|d| }|j|d|dt|tj||d|dq$qq9dS)3Nr?rr rNnonsenser)rr)r)rrFrr r"rrrr r?)r rrrrr )r rr r1rFr/r"rri)iriABr)rr"r)rr rrrrFrrrrrrrrrrrrrrrrr)rrr)rrrrrrrrFrrcSsg|] }dD]}||fqqS))rrr:)rrrr:r:r;r s z.TestMethods.test_partition..rrr z %d: %r <= %rrz %d: %r < %r)!r$r@rrrr&rrr rr$rrwr6r rollrLrisnanrr AxisErrorrrr$r%tilemapr0rr4rr)rCrrrokthrrrrrtdrraaeatrpd0rdcr:r:r;r s                 "   ,**.. ,((,,zTestMethods.test_partitioncCstd}t|D]0}t|||||d|dt||d||kd|||d||fd|d}qdS)Nrzkth %drzkth %d, %r not greater equal %drr )r$rrrr)rCrrprevrr:r:r;assert_partitioned s zTestMethods.assert_partitionedc Cstd}d}tt|j|tt|j|tdd}tt|j|ddtt|j|ddtttj||ddtttj||ddtgd}t|d }||d ||t|d d t |t|d t ||t|d td}tj ||t |j t td|tj |t td||t |j td}tj |tgd }tj |t||}||||t||}|||tj |t t|||t |t|||td ddd }|t|dgddg|t|dgdddgdgdddg||t|dgddg||t|dgdddgdgdddgtd}tj |ttdd}ttj j |t|}d}tj||dd}|t|jddddf|j|ddf}t ||t |jdD]}|||ddf|qtj||dd}|tj||ddt|jddddff}t ||t |jdD]}||dd|f|qdS)Nr)rr rir?rrrr )rrrr rr)rr")r rrrrr"rFrrrrEr)r rrr")r$r@rr&rrrrr r rrrwr6rrr0r4) rCrrrrrprparr:r:r;test_partition_iterative s|                      z$TestMethods.test_partition_iterativecCs@tjgdgdd}tj|ddgd}ttj|t|jddgd|t|tj|t|jddgd|t|jD]&}ttj||ddgd|||t|tj||ddgd|||q;tgd}t|}tt|t|j|t|jD]}tt|||||t|t|||||qdS)N))Galahadg333333?&)Arthurg?r)Lancelotgffffff?r))rz|S10)heightr;)agersrrrr#)rrzebrar) r$rrr rrwr6rr )rCrrrr:r:r;test_partition_cdtype, s8   z!TestMethods.test_partition_cdtypecCs<td}dd}tt|jd|dtt|jd|ddS)Nr?rrrrN)r$r@rrr&rrrr:r:r;test_partition_unicode_kindE s  z'TestMethods.test_partition_unicode_kindcCstddD]G}td|dD]=}t|}tj||tjdd}tj|j}d|||dg}t||}tt ||||d||fdqqdS)Nr?rr rrzdata: %r kth: %rr) rwr$r@rrrr6rr r)rCrDrrrrrr:r:r;test_partition_fuzzK s   zTestMethods.test_partition_fuzzcCs0gd}t|d}|t||dgdS)N)rrrrrrr )r$rr r)rCrrr:r:r;test_argpartition_gh5524X s z$TestMethods.test_argpartition_gh5524cCstgdgdgtj}tddgddggddgd d gggtj}tgd tj}tgd tj}tgd tj}tgdtj}t||t|d|t|d|jt||t|d|t|d|jdS)Nr"r2r rrrrFrrrr.)r rrrFrr)r rrrrFrrr)r rFrrrrrrr&)r$rrr flattenr)rCx0ry0y0fy1y1fr:r:r; test_flatten^ s*zTestMethods.test_flattenr4c CsZtddgddgg}tddgddgg}tddgddgg}tddd}tgdgd gd gd g}tgd gd gdgdgdgdg}tjtjtjtjfD]O}||} t || | | t || j | | t || | j | t || j | j | t || j | | t || | j | t || j | j | q\tjtjtjtjfD]0}||} ||} t || | | t || j | | t || | j | t || j | j | qtjtjtjtjfD] }||} t || dddddf| j || dddddf | j t || dddddf| j || dddddf | j t || | dddddfj || | dddddfj t || | dddddfj || | dddddfj t || d| j ddddf| dddddfj || d| j ddddf | dddddfj t || dddddf| d| j ddddfj || dddddf | d| j ddddfj qtjtjtjtjfD]$}||} ||} ||} t || | j | t || j | | qdS)Nr rrr#rr)7E)r#i')r$r&i )r%r'r(i )i@d)r)iDl)r*r.i)r+r/r2i$T)r,r0r3r5iX)r-r1r4r6r7ir"r) r$rr@rr$rr%r&rgr rr$r4)rCr4rArrrddtdtdeteafebfedfeddtfedtdfr:r:r; test_arr_multm s    $$  6>6>   zTestMethods.test_arr_multifdFDcCs*tjd|ddd}tdd}|||}|||}t||||j|j}||j|j}t||t|}tjd|j ddd ddd |}|dd}|d }t |j d d |j d k|||}|||}t||||j|j}||j|j}t||dS) N @rrrrrrr rrr!) r$r@r broadcast_tor$r rrr'r.rZrr1)rCr4rrArret1ret2rr:r:r; test_no_dgemv s&     *   zTestMethods.test_no_dgemvcCstddgddgg}tddgddgg}tddgddgg}tt||||ttt||||||t|}|||t|t||t|}|j||dt|t||dS)Nr rrr!)rr)r$rr dotrrCrArrr:r:r;test_dot s&   zTestMethods.test_dotcC6d}tjddd}tttj||tttj||dSNrrrr)r$rrrrGrCrrr:r:r;test_dot_type_mismatch z"TestMethods.test_dot_type_mismatchc CstjdddtjdD}|D]L}tjdd|}td|d}tjdd|d<t||}tj|||d }t||t |d t t tj|||ddd d t t tj|||j d qdS) Nr cSsg|] }|dvrt|qS)USVMr$r)rcoder:r:r;r sz8TestMethods.test_dot_out_mem_overlap..rrrr.rrr) r$rseedrrrgr<rGr rPrr&r)rCdtypesrrArr rr:r:r;test_dot_out_mem_overlap s   z$TestMethods.test_dot_out_mem_overlapcCs`Gdddtj}td|}td|}td}tj|||dtj|||ddS)Nc@rL)z,TestMethods.test_dot_matmul_out..SubNrMr:r:r:r;Sub rRrUrr)r$r2rrZrGmatmul)rCrUrArrr:r:r;test_dot_matmul_out s  zTestMethods.test_dot_matmul_outcCsNGddd}tttj||tttj||tttj||dS)Nc@rS)z@TestMethods.test_dot_matmul_inner_array_casting_fails..Ac_r\rTNotImplementedError)rCrrr:r:r;r rzJTestMethods.test_dot_matmul_inner_array_casting_fails..A.__array__Nrr:r:r:r;r rYr)rrYr$rGrVinnerrCrr:r:r;)test_dot_matmul_inner_array_casting_fails sz5TestMethods.test_dot_matmul_inner_array_casting_failscCstdddd}t||}tj|||d}t||ut||tdddd}tj|||ddddfd}t|j|jut||dS)Nrrrrr".)r$r@rrVrr r|rHr:r:r;test_matmul_out s   zTestMethods.test_matmul_outcCstdd}t|gdt|dgdt|dgdt|ddd gttj|jdd d ttj|jd dd ttj|jd d d tt|jddd td d }t|ddgddggt|dddgddggt|ddgdggt|ddgd ggtt|jddd t|dddddgddggt|dddddgddggt|jdddddgdggt|dddddgddggdS)NrEr=)rrFr?rr )r rrr"rrrF)axis1axis2rrrrrrrrr9r^r_)r$r@rr diagonalrrr&rr:r:r; test_diagonal+ s&  $zTestMethods.test_diagonalcCstd}t|jj t|jj ttd}t|jj t|jj ttd}t|jj t|jj dSNr)r$eyerbrrHrIrdiagrr:r:r;test_diagonal_view_notwriteableB sz+TestMethods.test_diagonal_view_notwriteablecCsTtd}trtt|dktdD]}|qtr(tt|dkdSdS)Nrrrr)r$r'rrr getrefcountrwrb)rCrArr:r:r;test_diagonal_memleakO s   z!TestMethods.test_diagonal_memleakcCsVtjgtjd}td}tdD] }tj|||dqtr)tt|dkdSdS)Nr@rrr) r$rrrwrGrrrri)rCrAr_r:r:r;test_size_zero_memleakY s  z"TestMethods.test_size_zero_memleakcCs4tdd}t|dt|ddt|ddt|ddtd d }t|d d gt|dd d gt|dd d gt|dddgt|dddd d gt|ddd ddgt|ddd d dgt|jddd ddd gtd}|j|d}||usJdS)NrEr=rrr rr"rrr`rrrrrFrrrar)r$r@rr tracer)rCrArrrr:r:r; test_traced s"  zTestMethods.test_tracecCsBGdddtj}tdd|}|}tt||dS)Nc@rL)z0TestMethods.test_trace_subclass..MyArrayNrMr:r:r:r;MyArray| rRrprr`)r$r2r@rrZrnrr{)rCrprr r:r:r;test_trace_subclassy szTestMethods.test_trace_subclasscCsdtjd}tjd}||dD];}tjgd|d}tjd|d}|gdgdt||tjd|d}|gdgdt||d d qd D]=}tjgd |d}tjd|d}|gdd gd t||tjd|d}|gdd gd t||d d qNtd}d|j_t t |jgdgdgd}t t tj|dd gddS)Nrrr)rr rrrrFrr)r rrFrrrr)FTFTFTTFr"rrF) r$rrr'putr rrHrIrr&r)rCicodesfcodesrrrA bad_arrayr:r:r;test_put s.     zTestMethods.test_putcCsLtddgddgg}t|gdt|jj t|dgdt|jdd gdt|jdd gdt|jd d gdt|jd d jj t|jd d gdt|jd d jj t||d tjddgddggdd }t|gdt|jd d gdt|jd d gdt|jd d jj t|jd d jj t||d t|jd d |jd d d tddgddggddd ddf}t|gd t|jdd gd t|jdd gdt|jd d gd t|jd d gd t|jd d jjtdddd}t|d jjt|djjt|djjtdddd}|dddd d d}t |j }d|d<||_ t|jd d jjt|d tdddtd}|dddd d d}t |j }d|d<||_ tt |jd d |t|jd d tdtdddd dd}t|jdd jjt|jd d jjt|dgdt|d gdtdgg}d|_ t dj dkrtt |d |t|d j |jjfdD]}td}t||dgtt |||qtdddddddd}|ddddf}t|d gdt|dgdt|d gdt|dgd|ddddf}t|d gdt|dgdt|d gdt|dgddS) Nrr rr)rr rrr&)rrr rrr#rKr")rrrr )rrrr r?rrrrrrr)rir)rr&rrwr.)rrrrErrr#)rrrr#rrrEry)rrrrrr?rEr)rrrrErr?rr)r$rr rwrrHrrr@swapaxesrrmay_share_memoryrrr.)rCrArrrr:r:r; test_ravel s(     zTestMethods.test_ravelcCsGdddtj}td|}tt|d|tt|d|tt|d|tt|d|tdddd|}tt|d|tt|d|tt|d|tt|d|dS) Nc@rL)z6TestMethods.test_ravel_subclass..ArraySubclassNrMr:r:r:r; ArraySubclass rRr}r?rr&rrwr)r$r2r@rZrr{rw)rCr}rAr:r:r;test_ravel_subclass szTestMethods.test_ravel_subclassc Cstddddd}t|j}t|jd|}ttj |j ddttj |j ddttj |j ddttj |j ddt d dD]}t d dD]}t ||fD]|\}}| ||}t |j} |j|| |<|j|| |<t|j| t|||fd d |jD\} } } } d d |jD\}}}}t|||||||||f||| || || || ft|||ft|jd t|||f|dkr|}qVqNqGdS) Nr#r rrrOWNDATArcSg|]}|dqSrr:rdimr:r:r;r+ rz-TestMethods.test_swapaxes..cSrrr:rr:r:r;r, r)r$r@rr$indicesr4rrHrrrzrw enumeraterr r)rCrArrrrDrsrcrr4i0r5i2i3j0j1j2j3r:r:r; test_swapaxes s:     zTestMethods.test_swapaxescstgd}tj|jtj|j t|t|ttgdd}tj|jtj|j t|t|ttgd}t|t|t|ttgd}t|t|t|ttgdt}t|ddDt|t|ttgdttt fd d tt fd d dS) N?rWy7@7@r&r"rrk@)rrWr rkcSsg|]}|qSr: conjugate)rrr:r:r;rS rz.TestMethods.test_conjugate..)rr rkrcSrT)conjr:rr:r;rNX rz,TestMethods.test_conjugate..crrTrr:rr:r;rNY r) r$rrr rrrr%rr)rCacr:rr;test_conjugate6 s<  zTestMethods.test_conjugatecCs@tgd}t|}||}||usJt||dS)Nr)r$r empty_likerr )rCrArrCr:r:r;test_conjugate_out[ s    zTestMethods.test_conjugate_outc Csgd}|D]@}tjd|d}tjdg|d}tjdggggg|d}d|}t|}t|||t|}t|||t|} t| ||qdS)Nr5rrrzreu2u4u8rrgr&DGrrrrz dtype: {0})r$rrcrr ) rCrSrrArrrapbpcpr:r:r;test__complex__d s   zTestMethods.test__complex__cCsgd}|D]}tjgd|d}ttt|qtddg}tjd|d}ttt|tjddg|d}ttt|td}ttt|tdgd }ttt|dS) Nrr"rrr4)rr)gMb`?rz1+1jr)r$rrrrr)rCrSrrArrrrr:r:r;test__complex__should_not_workv s    z*TestMethods.test__complex__should_not_workN)^rNrOrPrPr r rrr-r;r>rFrHrKrrrrr$r0rrrfloat16r$rrdrRrrrrrUr`rerrrjrorrrurvryr~rrrrrrrrrrrrrrrrrrrr rrrrrr rGrVr@rFrIrMrTrWr\r]rcrgrjrmrorqrvr|r~rrrrrr:r:r:r;r{s             % fM       QD  M         ([ % rc@rS)TestCequenceMethodscCs8tdtdddvtdtdddvdS)N@g0@r4@)rr$r@rrBr:r:r;test_array_contains sz'TestCequenceMethods.test_array_containsN)rNrOrPrr:r:r:r;r rYrc@r) TestBinopcCsttdgtddgddgtddgddd}t||tddgddgtdg}tdg}||}||}||}||}t||t|d||d||||}t||t|dtdg}tdg}|||}t|dt|dt|ddS) N?rrkr?rFrg @)r r$rr r )rCrrArrr:r:r; test_inplace s0           zTestBinop.test_inplacecstjdtftjdtftjdtftjdtftjdtftjdtftjdtftj dt ftj dt ftj dt ftj dt ftjdt ftjdt ftjdtfdGdddtfdddd d d d d dd}  dfdd } dfdd }||tddd||tddddd||tddddd||tjddddddd||td|dddd||tjd|dddd||tddddd||tjddddddddS)NTF)rsubr-truedivfloordivmoddivmodpowlshiftrshiftandxororrVc@rL)z7TestBinop.test_ufunc_binop_interaction..CoercedNrMr:r:r:r;Coerced rRrcsrTr:rB)rr:r; array_impl rz:TestBinop.test_ufunc_binop_interaction..array_implcSr)Nforwardr:rzr:r:r;op_impl rz7TestBinop.test_ufunc_binop_interaction..op_implcSr)Nreverser:rzr:r:r;rop_impl rz8TestBinop.test_ufunc_binop_interaction..rop_implcSr)Nzin-placer:rzr:r:r;iop_impl rz8TestBinop.test_ufunc_binop_interaction..iop_implc_sd||||fS)N__array_ufunc__r:)rCufuncmethodrrr:r:r;array_ufunc_impl z@TestBinop.test_ufunc_binop_interaction..array_ufunc_impl__main__csdi}|dur ||d<D]}|d|<|d|<|d|<q|dur.||d<|||d}td |}t|tjrLtd d d d |S|S) NrF__array_priority____{0}____r{0}____i{0}__r)r|class_namespacerNz(type('MyType', (base,), class_namespace)rrr)rcrk issubclassr$r2r@rrZ)r|array_priority array_ufuncalleged_moduleropeval_namespaceMyType)rrropsrr:r;make_obj s& z8TestBinop.test_ufunc_binop_interaction..make_objcs2D]\\}}}d|||f}tjdd|dddg} |r,| | dd| D]f} t| d} fdd } |rJt| |t|n6|rWt| |dd |n)t |tj rvt |j tj j urv| | |} t | j|ju|n ttf| ||d t| d }|r||} t| dd |d t| d ||d n)t |tj rt |j tj j ur| ||} t | j|ju|n ttf|||d |r?t | tj r?t| d}|rt| |t|d nW|r||} t| dd |t| d ||t t | ddtu|t | ddd| u|n%t |tj r5t |j tj j ur5t ||| u|n ttf|||d ttd}|durRttdd}|dur\tt}t||| d|t |tj s|ryt|| |d|n|rt|| |dd ||rt||| dd |q.qdS)Nz-op: %s, ufunc: %s, has_inplace: %s, dtype: %srrrrrrcs"dkrtt|t|dS|S)Nrr)rr{tuple)rrr:r; first_out_arg szLTestBinop.test_ufunc_binop_interaction..check..first_out_argrrrr rr"rrlrr)itemsr$r@rrrrcr NotImplementedr{r2rrr __class__rrrr,r)objbinop_override_expectedufunc_override_expectedinplace_override_expected check_scalarr has_inplacerr check_objsrU arr_methodrrC arr_rmethod arr_imethodop_fn)rrrr;check s             z5TestBinop.test_ufunc_binop_interaction..checki)rr )r)rr)r)FFr)T)r$rrqsubtractmultiply true_divide floor_divide remainderrrr left_shift right_shift bitwise_and bitwise_xor bitwise_orrVrr%r2)rCrrrr:)rrrrrrr;test_ufunc_binop_interaction s\               ^  z&TestBinop.test_ufunc_binop_interactioncCsGddd}|}t|dg}td|vod|vtj|dgdd}td|vo,d|vt|ddtj|dgdd}td|voFd|vt|dddS) Nc@rS)zDTestBinop.test_ufunc_override_normalize_signature..SomeClassc_s|SrTr:rCrrinputskwr:r:r;rrrzTTestBinop.test_ufunc_override_normalize_signature..SomeClass.__array_ufunc__NrNrOrPrr:r:r:r; SomeClassqrYrr sig signaturezii->i)r)r)r$rrr )rCrrArr:r:r;'test_ufunc_override_normalize_signatureosz1TestBinop.test_ufunc_override_normalize_signaturecCs6Gddd}|}td}tt|dtt||dttj||ddttj||fddtt||dttj||ddttj||fddtt||dtt|d|dtt|||dttj||dfddttj|||fddttj|d|fddttj|||fddttj|||fddtttj||dWdn1swYtttj||fdtt||dtt||dtt|||dtt|||dttj|||ddttj|||fddttj|||dddS) Nc@rS)z4TestBinop.test_array_ufunc_index..CheckIndexc_sNt|D] \}}||ur|Sqt|dD] \}}||ur$|fSqdSr?)r)rCrrrrrrArDr:r:r;rs zDTestBinop.test_array_ufunc_index..CheckIndex.__array_ufunc__Nrr:r:r:r; CheckIndexrYrrkrrrrr ) r$r@r sinmodfrrr&r)rCrrAdummyr:r:r;test_array_ufunc_indexs:  z TestBinop.test_array_ufunc_indexcCsGdddtj}tdg|}tdg}tdg}t|||t|ddtt||d|d<tj|||dt|ddtt||dS)Nc@rS)z-TestBinop.test_out_override..OutClassc_sFd|vr!|}|dt||}||i||ddd<dSdS)Nrr.)r$popr)rCrrrrtmp_kwr4r:r:r;rs   z=TestBinop.test_out_override..OutClass.__array_ufunc__Nrr:r:r:r;OutClassrYrrrFrrr)r$r2rrZrr rr{)rCrrr`rr:r:r;test_out_overrides  zTestBinop.test_out_overridecCs,Gdddtj}tjdtjd|}t|ddtt |dWdn1s.wYtt |dWdn1sFwYtt |d Wdn1s^wYtt |d Wdn1svwYtt |d WddS1swYdS) Nc@rS)z:TestBinop.test_pow_override_with_errors..PowerOnlyc_s|tjurtdS)NPOWER!)r$rrYrr:r:r;rs zJTestBinop.test_pow_override_with_errors..PowerOnly.__array_ufunc__Nrr:r:r:r; PowerOnlyrYr@r@rrrr r"r)r$r2rrrZr rrY)rCrrAr:r:r;test_pow_override_with_errorss$          "z'TestBinop.test_pow_override_with_errorscsGfddddd}tdddg}t|d|d|t|d |d |t|d|d|t|d |d |t|d|d|dS) NcsBeZdZd ddZddZddZfdd Zfd d ZeZdS) z8TestBinop.test_pow_array_object_dtype..SomeClassNcSrrTrrr:r:r;rWrzATestBinop.test_pow_array_object_dtype..SomeClass.__init__cSr)Nz__mul__ should not be calledAssertionErrorrzr:r:r;__mul__rz@TestBinop.test_pow_array_object_dtype..SomeClass.__mul__cSr)Nz__div__ should not be calledr rzr:r:r;__div__rz@TestBinop.test_pow_array_object_dtype..SomeClass.__div__cs|j|dS)Nr r )rCexprr:r;__pow__rEz@TestBinop.test_pow_array_object_dtype..SomeClass.__pow__cst|r |j|jkSdSrT)r{rrzrr:r;rs  z?TestBinop.test_pow_array_object_dtype..SomeClass.__eq__rT) rNrOrPrWr rrr__rpow__r:rr:r;rs   rcstfdd|DS)Ncsg|]}|qSr:r:rrr:r;rrzJTestBinop.test_pow_array_object_dtype..pow_for..r8)rrUr:rr;pow_forrz6TestBinop.test_pow_array_object_dtype..pow_forr rrrrr"r$rr )rCrobj_arrr:rr;test_pow_array_object_dtypesz%TestBinop.test_pow_array_object_dtypecCsVGdddtj}td|}tt | WddS1s$wYdS)Nc@rS)z2TestBinop.test_pos_array_ufunc_override..Ac_st||dd|Di|S)NcSsg|]}|tjqSr:)rZr$r2rr:r:r;rszVTestBinop.test_pos_array_ufunc_override..A.__array_ufunc__..)r)rCrrrrr:r:r;rs zBTestBinop.test_pos_array_ufunc_override..A.__array_ufunc__Nrr:r:r:r;rrYrry)r$r2rrZrr)rCrtstr:r:r;test_pos_array_ufunc_overrides  "z'TestBinop.test_pos_array_ufunc_overrideN) rNrOrPrrrrrr rrr:r:r:r;r s%90 !rc@r)TestTemporaryElidecCsFddlm}td}||\}}||t||t|||dS)Nr) incref_elide順)rrr$rr )rCrrorigrCr:r:r;test_extension_incref_elides    z.TestTemporaryElide.test_extension_incref_elidecCsVddlm}ddddtdg}||}t|dtdt||d|ddS)Nr)incref_elide_lr rr)rrr$rr )rCrrrCr:r:r;!test_extension_incref_elide_stacks z4TestTemporaryElide.test_extension_incref_elide_stackcCsvtjdtjd}t||ddjtd||d}t|jtdt||d}t|jtd||d}t|jtd||d}t|jttjtjdtjd}t|||tjjtd|tj}t|||j|jtjdtj d}t|||j|jtj tj tj fD]}tjd|d}t |d}t|jtd |jdqdS) Ni@ rrrrrkrzf%d)r$rrr rrr$rgrrdr%r&r\absr.)rCrrrrrrr:r:r;test_temporary_with_cast%s*   "  z+TestTemporaryElide.test_temporary_with_castcCsBtjdtd}tjdtd}d||}t|dt|jddS)N)r rr$r )r$r$)r$rrrr r4)rCrrrr:r:r;test_elide_broadcastFs   z'TestTemporaryElide.test_elide_broadcastcCs$t}tt||@tjudSrT)r$rrrrr:r:r;test_elide_scalarPsz$TestTemporaryElide.test_elide_scalarcCstjdtjd}|jddS)Nrrr)r$r/rrrr:r:r;test_elide_scalar_readonlyUsz-TestTemporaryElide.test_elide_scalar_readonlycCs,tttddjd}t|ddS)Nr rrr)r$r[rCr'flatr )rCrr:r:r;test_elide_readonly^sz&TestTemporaryElide.test_elide_readonlycCs2tdddd}|jd}~t|ddS)Nirr )r$rr(rr rr:r:r;test_elide_updateifcopycsz*TestTemporaryElide.test_elide_updateifcopyN) rNrOrPrr r#r%r&r'r)r*r:r:r:r;rs!  rc@rS)TestCAPIcCsPddlm}t|dt|dt|ddt|dt|ddS) Nr)IsPythonScalarsfoobarr rrrkrA)rr,r)rCr,r:r:r;test_IsPythonScalarks    zTestCAPI.test_IsPythonScalarN)rNrOrPr-r:r:r:r;r+jrYr+c@rS)TestSubscriptingcCs<tgd}tt|dtjtt|dtjudS)Nr"rrc)r$rrr{rrr2rr:r:r;test_test_zero_rankusz$TestSubscripting.test_test_zero_rankN)rNrOrPr/r:r:r:r;r.trYr.c@seZdZejjejdkddddZddZ ejjejdkddd d Z d d Z d dZ ddZ ddZddZddZddZddZddZddZdd Zd!S)" TestPicklingrFzSthis tests the error messages when trying toprotocol 5 although it is not availablertcCsZtd}tjdddvr+tt|dWddS1s$wYdSdS)Nr?r))rr)rrrF)r$r@r version_inforr5 ImportError __reduce_ex__)rCrr:r:r;$test_correct_protocol5_error_message|s   "z1TestPickling.test_correct_protocol5_error_messagecCst}tj|ddfgdtfdtfdtfgd}tjdgdtfdtfdtfgd}tdtjdD]$}t tj ||d }t tj ||d }t |j |j t |j |j q0dS) Nr rkrArrrxxxr rkrr) r%r$rrrqrrwrrxryrzr r)rC my_objectarr_with_objectarr_without_objectrdepickled_arr_with_objectdepickled_arr_without_objectr:r:r;#test_record_array_with_object_dtypes.   z0TestPickling.test_record_array_with_object_dtypercCs\tjgdgdgdd}g}tj|d|jd}t|dks Jtj||d}t||dS) Nr"r2r&r#rF)rrrr)r$rrrzrrryr )rCf_contiguous_arrayrrdepickled_f_contiguous_arrayr:r:r;test_f_contiguous_arraysz$TestPickling.test_f_contiguous_arraycCsrtdddddddf}|jjrJ|jjrJtdtjdD]}t tj ||d}t ||q%dS)NrErrrr r) r$r@rrHr/r0rwrrxryrzr )rCnon_contiguous_arrayrdepickled_non_contiguous_arrayr:r:r;test_non_contiguous_arrays"    z&TestPickling.test_non_contiguous_arrayc CstdtjdD]X}tddgddgddgg}|t|tjdgd tdffd tfd tfgd g}d d|D}|D]}t |t tj ||dd|dq:~~~t |D] }|dus_JqVqdS)Nrr rrrrrr5rArrrcSsg|]}t|qSr:)weakrefrefrrAr:r:r;rrz/TestPickling.test_roundtrip..r%rr) rwrrxr$rr0rrrqr ryrzr)rCrrDATArefsrArDr:r:r;test_roundtrips(zTestPickling.test_roundtripcCstj|ddS)Nlatin1)encoding)rryrCrr:r:r;_loadsrzTestPickling._loadscC0d}tjgdtjd}||}t||dS)Ns}cnumpy.core._internal _reconstruct qcnumpy ndarray qKUbRq(Kcnumpy dtype qUi1KKRq(U|NNJJtbUtb.r%rr$rrrMr rCrrArr:r:r;test_version0_int8 zTestPickling.test_version0_int8cCrN)Nscnumpy.core._internal _reconstruct qcnumpy ndarray qKUbRq(Kcnumpy dtype qUf4KKRq(Utgd}tgdt}d||<t|tgddS)Nr%rhrF)r rFrrrirjr:r:r;test_assign_mask.sz"TestFancyIndexing.test_assign_maskcCstgdgdg}tddgt}tgdgdgt}tgdgdgt}|}d||<t|tgdgd g|}d||<t|tgd gd g|}d||<t|tgd gdgdS) Nr%r<rr rhrlrer?)r?r?r?r?)r r?rr)r?rrr)r$rrr$r )rCxorigr9rmrnrr:r:r;test_assign_mask24s z#TestFancyIndexing.test_assign_mask2N) rNrOrPrfrgrkrorprrr:r:r:r;rds  rdc@rn)TestStringComparectgdtgdtkfdddDtkfdddDtkfdddDtkfdddDtkfd ddDtkfd ddDdS) NThisisexamplervwasrxcg|] }||kqSr:r:rg1g2r:r;rHrz1TestStringCompare.test_string..r=cg|] }||kqSr:r:rr|r:r;rIrcg|] }||kqSr:r:rr|r:r;rJrcg|] }||kqSr:r:rr|r:r;rKrcg|] }||kqSr:r:rr|r:r;rLrcg|] }||kqSr:r:rr|r:r;rMrr(rBr:r|r; test_stringE"zTestStringCompare.test_stringcstgd}dt|kfdd|Dt|kfdd|Dt|kfdd|Dt|kfdd|Dt|kfdd|Dt|kfd d|DdS) N)spamspaspammerzand eggsrcsg|]}|kqSr:r:rr~r:r;rRrz0TestStringCompare.test_mixed..csg|]}|kqSr:r:rrr:r;rSrcsg|]}|kqSr:r:rrr:r;rTrcsg|]}|kqSr:r:rrr:r;rUrcsg|]}|kqSr:r:rrr:r;rVrcsg|]}|kqSr:r:rrr:r;rWrr()rCr}r:rr; test_mixedOs zTestStringCompare.test_mixedcrt) Nrurycr{r:r:rr|r:r;r\rz2TestStringCompare.test_unicode..r=crr:r:rr|r:r;r]rcrr:r:rr|r:r;r^rcrr:r:rr|r:r;r_rcrr:r:rr|r:r;r`rcrr:r:rr|r:r;rarr(rBr:r|r; test_unicodeYrzTestStringCompare.test_unicodeN)rNrOrPrrrr:r:r:r;rsDs rsc@seZdZddddejgdfdddejdgdfejddddgdfejdejddgdfddddedejgdfddddeejdgdfdddeejddgdfdddedejdgdfedejddddgdfeejejddddgdfeejdeejdeejdgdfeejejeejdeejdgdfeejdeejdeejejgdfeddeddeddgdfeddeddeddgdfeddeddeddgdfedededed ed ed gd fed edededededgdfededededededgdfededededededgdfeddeddeddeddgdfeddgddfed ddedddedd dgdfedd!ded"d ded ddgdfed"d#ded"d ded"d!dgdfgd$dfgd%dfgd&dfgd'dfgZ d(d)Z d*d+Z d,d-Z e jd.ddgd/d0Zd1d2Zd3d4Ze jjd5d6d7d8Zd9S): TestArgmaxrr rrr1923-04-14T12:43:121994-06-21T14:43:152001-10-15T04:10:321995-11-25T16:02:162005-01-04T03:14:122041-12-03T14:05:03rF1935-09-14T04:40:111949-10-12T12:32:112010-01-03T05:14:12z2015-11-20T12:20:59z1932-09-23T10:10:13z2014-10-10T03:50:30NaT2015-09-23T10:10:131932-10-10T03:50:302059-03-14T12:43:121996-09-21T14:43:152022-12-25T16:02:161963-10-04T03:14:122013-05-08T18:15:23rrdaysseconds#r"r<r?r#)FFFFT)FFFTF)TFFFF)TFTFFc Cvtjddd}t|jD]+}||}||}tt|j}||t t ||j |j |g|Rkq dSNrr )rrFrrr) r$rnormalrwrrargmaxrremoverrrr0)rCrAramaxaargmaxaxesr:r:r;test_all   (zTestArgmax.test_allc C|jD]<\}}t}|tdt|}Wdn1s wYtt||d|dt|t||d|dqdSNz#invalid value encountered in reducerFr)nan_arrrrBRuntimeWarningr$rr r)rCrUposrEmax_valr:r:r;test_combinations zTestArgmax.test_combinationscCtd}tjdtjd}tt|jd|tjdtjd}tt|jd|tjdtjd}tt|jd|tjdtjd}|jd|dt||ddS N)r?rFrrr"rr r?r?r)r$rrrr&rr rCrArr:r:r;test_output_shape zTestArgmax.test_output_shapercCDtdd|}tjd|tjd}|jd|d}||us JdSNrr rrrr)r$rr/rrrCrrArrr:r:r;test_ret_is_outzTestArgmax.test_ret_is_outcC(tjddd}d|d<t|ddS)NrsrrArtr/r0r:r:r;rs zTestLexsort.test_datetimec Cstjdd}tjgdd}||fD]}t|df}tj|dd}t||q||f||ffD]>\}}t||f}t|t|d|ft|t||dftj|ddtj|dd}}t|t||fq4dS) Nr?rv)abcxywzefghiqwstrr mergesortrNr%r)r$rchoicer-rgrr r)rCrArrarrr~rr:r:r; test_objects  zTestLexsort.test_objectcCs.tddddd}ttjtj|dddS)Nrr~rrrr)r$rrrrr-rr:r:r;test_invalid_axisszTestLexsort.test_invalid_axisN)rNrOrPrrrr$r0rrrrrrrrr$rrrrr8r:r:r:r:r;r)s   r)c@seZdZdZeddZejddgdddZd d Zd d Z d dZ ddZ ddZ ddZ ddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zejjed3d4d5d6Z d7d8Z!ejd9d:gdd;d<Z"d=d>Z#d?d@Z$dAdBZ%dCdDZ&ejj'dEdFZ(dGdHZ)dIdJZ*dKdLZ+dMdNZ,dOdPZ-dQdRZ.dSdTZ/dUdVZ0dWdXZ1dYdZZ2d[d\Z3d]d^Z4d_d`Z5dadbZ6dcddZ7deS)fTestIOz.Test tofile, fromfile, tobytes, and fromstringcCsNd}tjj}||||td}tjtjtj tjg|ddddf<|S)N)rrrrrr )r$rrgrrLinf)rCr4rrr:r:r;rs $zTestIO.xstringpath_obj)paramsccs&|d}|jdkrt|}|VdS)Nfiler=)r+r)rCtmp_pathrequestfilenamer:r:r; tmp_filenames   zTestIO.tmp_filenamecs>ttttjtjdtd}ttfdd|dS)Nrrcs |SrTtofilerrr:r;rNrz$TestIO.test_nofile..)rmrnrIOErrorr$fromfiler0rr2r:rGr; test_nofiles zTestIO.test_nofilecCs4tjgdtjd}tjddtjd}t||dS)Nrrz 1 0 -2.3 0.0 sepr)r$rrrmr )rCr~r r:r:r;test_bool_fromstringszTestIO.test_bool_fromstringcC4tjdtjdd}tjddgtjd}t||dS)Nz#9923372036854775807 104783749223640rKrrMl*MM<3}r)r$rmrrr r)r:r:r;test_uint64_fromstring zTestIO.test_uint64_fromstringcCrO)Nz-25041670086757 104783749223640rKrPle o[rQr)r$rmrrr r)r:r:r;test_int64_fromstringrSzTestIO.test_int64_fromstringcCs&tjddtjdd}|jdksJdS)Nz1,2,r)rMrcountr)r$rmrr4r2r:r:r;test_fromstring_count0szTestIO.test_fromstring_count0cCsHt|d}Wdn1swYt|}t|jdkddS)NrrArray not emptyopenr$rIrr6rCrDrr r:r:r;test_empty_files_texts  zTestIO.test_empty_files_textcCsLt|d}Wdn1swYtj|dd}t|jdkddS)NwbrKrMrrXrYr[r:r:r;test_empty_files_binarys zTestIO.test_empty_files_binarycCs~t|d }||Wdn1swYt|d}tj||jd}Wdn1s2wYt||jdS)Nr]rbr)rZrFr$rIrr r(rCrrDrr r:r:r;test_roundtrip_files   zTestIO.test_roundtrip_filecCs*||tj||jd}t||jdSr)rFr$rIrr r()rCrrDr r:r:r;rIs zTestIO.test_roundtripcCs0t|}||tj|dd}t||dS)NT) allow_pickle)pathlibPathdumpr$rqr )rCrrDrr r:r:r;test_roundtrip_dump_pathlibs  z"TestIO.test_roundtrip_dump_pathlibcCsR|}tj||jd}t||j|d}tj||jd}t||ddS)Nrr&)tobytesr$rirr r(rrCrrr r:r:r;test_roundtrip_binary_strs   z TestIO.test_roundtrip_binary_strcCsd|j}dtt|}tj|dd}t|}t||||t ||||dddS)N@r^rFdecimal) rrwrrrr$rmisfiniter r )rCrrr nan_maskr:r:r;test_roundtrip_str$s  zTestIO.test_roundtrip_strcCs6|j}dtt|}tj|dd}t||dS)Nrkr^)rrwrrrPr$rmr rir:r:r;test_roundtrip_repr-s zTestIO.test_roundtrip_reprcCsh||dd}tj|ddd}||_||_tttj||j dWddS1s-wYdS)Nc_r)NzCan not tell or seek)rHrr:r:r;fail7rz-TestIO.test_unseekable_fromfile..failr`r bufferingr) rFrmrZrptellrrHr$rIr)rCrrDrrrr:r:r;test_unseekable_fromfile3s "zTestIO.test_unseekable_fromfilecCs\||tj|ddd}tj||jd}t||jWddS1s'wYdS)Nr`rrsrrFrmrZr$rIrr r(rar:r:r; test_io_open_unbuffered_fromfile?s "z'TestIO.test_io_open_unbuffered_fromfilecCs2td}||ttj||jt|t |t |d}| |j||ttj||jdWdn1sCwYt |d t |d }||Wdn1sdwYt|t |t |d }||Wdn1swYttj||jddS)Ni@r+brrab) r$r'rFr ospathgetsizerr rIrZrpclose)rCrDrrr:r:r;test_largish_fileFs$         zTestIO.test_largish_filecCsZ||tj|ddd}tj||jd}Wdn1s wYt||jdS)Nr`r"rsrrwrar:r:r;test_io_open_buffered_fromfileZs z%TestIO.test_io_open_buffered_fromfilec Cstjdtjtjdg}|D]\}t|d}||d|dWdn1s,wYdD]6}d||f}t||}|dtj|tjdd| }Wdn1s]wYt |d |d q3qdS) Nrr]r )r`ryz%d %srrrVr?r) rmDEFAULT_BUFFER_SIZErZrprbreadr$rIrrur )rCrDsizesr6rrrrr:r:r;!test_file_position_after_fromfileas&      z(TestIO.test_file_position_after_fromfilec Cs"tjdtjtjdg}|D]}d|f}t|d.}||d|d|d|dtjdgtjd || }Wdn1sKwYt |d |d t|d #}| d |ddtjdgtjd || }Wdn1swYt |d|d qdS)Nrz%dr]r rr?s12rrrrryr) rmrrZrprbr$rrrFrur r)rCrDrr6rrrr:r:r;test_file_position_after_tofileus.          z&TestIO.test_file_position_after_tofilecCst|d}Wdn1swYt|d}ttdtj|tdWdn1s/wYttdtj|tddS)Nrr`zCannot read into object arrayr)rZr r&r$rIr%)rCrDrr:r:r;test_load_object_array_fromfiles   z&TestIO.test_load_object_array_fromfilec Cst|d }||Wdn1swYt|d}tj||jdd}t||jWdn1s9wYt|dM}t|jd}t|jd}|jj|}tj||j||d}t||j||||jj}tj||j|d}t||j||ddWdn1swYt|d}|j|d d Wdn1swYt|d}t t d tj||jd dd WddS1swYdS) Nr]r`r)rr9rr)rrVr9r rUr^z1'offset' argument only permitted for binary files)rrMr9) rZrFr$rIrr r(rr.r r) rCrrDrr  count_items offset_items offset_bytesrr:r:r;test_fromfile_offsets@         "zTestIO.test_fromfile_offsetz bug in PyPy's PyNumber_AsSsize_trtc Csdd}dd}tj}z=t|d$}|||tf|tffD]\}}|t_t|tj|qWdn1s8wYW|t_dSW|t_dS|t_w)NcSr)Nr1r:fdr:r:r;dup_strrz-TestIO.test_fromfile_bad_dup..dup_strcSsddS)NrDr:rr:r:r; dup_bigintrz0TestIO.test_fromfile_bad_dup..dup_bigintr]) r{duprZrFrOSErrorrr$rI) rCrrDrrold_duprrexcr:r:r;test_fromfile_bad_dups   zTestIO.test_fromfile_bad_dupcKsd|vrtj|fi|}n tj|fi|}t||t|d }||Wdn1s1wYtj|fi|}t||dS)NrMr])r$rirmr rZrbrI)rCrrrCrr rr:r:r; _check_froms   zTestIO._check_fromperiodcommaccs\|jdkr dVdS|jdkr)t dVWddS1s"wYdSJ|j)a Including this fixture in a test will automatically execute it with both types of decimal separator. So:: def test_decimal(decimal_sep_localization): pass is equivalent to the following two tests:: def test_decimal_period_separator(): pass def test_decimal_comma_separator(): with CommaDecimalPointLocale(): pass rNr)r+r)rCrBr:r:r;decimal_sep_localizations   " zTestIO.decimal_sep_localizationc Cs2|jdtjtjtjtjtjtjtjg|dddS)Ns3nan +nan -nan NaN nan(foo) +NaN(BAR) -NAN(q_u_u_x_)rKr^)rr$rLrCrDrr:r:r;r s  zTestIO.test_nanc Cs8|jdtjtjtj tjtj tjtj g|dddS)Ns.inf +inf -inf infinity -Infinity iNfInItY -inFrKr^)rr$r<rr:r:r;test_infs $ zTestIO.test_infcC|jdgd|dddS)Ns'1.234 -1.234 .3 .3e55 -123133.1231e+133)X9v?gX9vg333333?g.LKR?KgY]xrKr^rrr:r:r; test_numberss  zTestIO.test_numberscCs |jdtgd|dddS)Ns?@@@@r%rMr)rr$rrCrDr:r:r; test_binary s   zTestIO.test_binaryc CstjdkrdSzVd}tjdtjd}t|}t}|j}t |||j  || dtj |tjd}|tt||kt|d||kt|| d|kWdSttfyiYdSw)zTest workarounds for 32-bit limited fwrite, fseek, and ftell calls in windows. These normally would hang doing something like this. See http://projects.scipy.org/numpy/ticket/1660win32Nlrrr)rplatformr$r@rrtempfileNamedTemporaryFiler@rrrFrprIr~rr MemoryErrorr&)rC fourgbplus testbytesrflikerrAr:r:r;test_big_binarys$   zTestIO.test_big_binarycCr)N1,2,3,4rSrUr^rrr:r:r;r,zTestIO.test_stringcCsL|jdgd|ddd|jdgd|ddd|jdgd|ddddS) NrrSrrU)rVrMrrr"rrr:r:r;test_counted_string/s zTestIO.test_counted_stringcCs|jdgd|tdddS)N1 2 3 4 r%rKrPrrrr:r:r;test_string_with_ws7s zTestIO.test_string_with_wscCs|jdgd|dtdddS)Nrr"rrK)rVrrMrrr:r:r;test_counted_string_with_ws;s z"TestIO.test_counted_string_with_wscCs2|jdgd|dd|jdgd|tdddS)Ns 1 , 2 , 3 , 4rSrUr^rrP)rrqrr:r:r; test_ascii@s   zTestIO.test_asciicCsDtt|jdddg|ddWddS1swYdS)Ns 1.234 1,234rrrKr^)rrrrr:r:r;test_malformedFs  "zTestIO.test_malformedcCr)Ns 1_x_3_x_4_x_5)r rrrF_x_r^rrr:r:r; test_long_sepKs  zTestIO.test_long_sepcCs.tjgdtjd}|jd||dtjddS)Nr%rrrUrL)r$rrr)rCrDr~r:r:r; test_dtypeOszTestIO.test_dtypecCsztjgdtjd}d}t|d }||Wdn1s!wYtj|dtjd}t|jdkt||dS)Nrrs 1,0,-2.3,0r]rUrLr) r$rrrZrbrIrrr )rCrDr~rrr r:r:r;test_dtype_boolSs  zTestIO.test_dtype_boolcCstjgdtd}t|d}|j|ddWdn1s wYt|d }|}Wdn1s9wYtdd|dD}t||dS) Ng)\(?rgGz @rrrrUr^rcSsg|]}t|qSr:)rq)rrr:r:r;rdrz*TestIO.test_tofile_sep..)r$rrqrZrFrsplitr )rCrDrrrrr r:r:r;test_tofile_sep]s   zTestIO.test_tofile_sepcCstjgdtd}t|d}|j|dddWdn1s!wYt|d }|}Wdn1s:wYt|ddS) NrrrrUz%.2f)rMrcrz1.51,2.00,3.51,4.00)r$rrqrZrFrr )rCrDrrrrr:r:r;test_tofile_formatgs   zTestIO.test_tofile_formatcsxtjdtdtdttfddWdn1s!wYtttfddtdS)Nr?rr]csjddS)Nrr^rEr:)rrr:r;rNrrJz,TestIO.test_tofile_cleanup..cs SrTrEr:)rDrr:r;rNwr)r$r'r%rZrrHr{rrr:)rrDrr;test_tofile_cleanupos  zTestIO.test_tofile_cleanupcCstjdddddd}||tj|dd}t|||}tttj |dd}t||WddS1s=wYdS)Nr#rrrrrz(3,4)i4) r$r@rrFrIr rhrrrm)rCrDrrCx_strr:r:r;test_fromfile_subarray_binaryzs    "z$TestIO.test_fromfile_subarray_binarycCsd}tttj|ddd}Wdn1swYt|d }||Wdn1s4wYtttj|dddWddS1sRwYdS)Na12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,z(3,)irUrPr)rr5r&r$rmrZrbrI)rCrDr!rArr:r:r;!test_parsing_subarray_unsupporteds    "z(TestIO.test_parsing_subarray_unsupportedc Cstjddddd}|}tt%tttj |dddWdn1s-wYWdn1s.test_dtype_initrr&)rCrr:r:r;#test_multiple_field_name_occurrencelz.TestRecord.test_multiple_field_name_occurrencecCstttjdtfgtttjdtfgtdtfg}tt|jdtjgd|d}tt|jd|d}tt|jddS)Nr)rr)rr)rrr rr)rrr$rrr[rr)rCrrr r:r:r;test_bytes_fieldssszTestRecord.test_bytes_fieldscCr)NcSr)N)u₹rrrrPr:r:r:r;test_dtype_unicoderzGTestRecord.test_multiple_field_name_unicode..test_dtype_unicoder)rCrr:r:r; test_multiple_field_name_unicoderz+TestRecord.test_multiple_field_name_unicodecCsDtjjjdgdggddd}t|dddt|ddddS)Nrr za,bi4,i4rrrAr)r$rkrlrr rr:r:r;test_fromarrays_unicodesz"TestRecord.test_fromarrays_unicodecCsDd}tjgd|tfgd}|j|dt|dtgddS)Nrr3rr#r")r$rrrr )rCrrr:r:r;test_unicode_orders zTestRecord.test_unicode_ordercCstjdddddgfgd}tt|jddtt|jdtt|d jd dtt|d jd |}td }d||<t||dtd }tt |j|dtt |j|d |d |<t||d tt |d j|dtt |d j|td}td}d|||<t|||dtt ||j|dtt ||j|td}d||<t|d dgd  dt|dd gd  dt|d dgd  dtt |jddtt |jddS)Nr)rr)f2rf3)sf1rrsf1r rssf1z not at allrrrrrr)rr)rruϠ) r$r'rr __setitem__r[r$rr r&r)rCrArfn1fnnfn3sfn1fn2r:r:r;test_field_namess@  zTestRecord.test_field_namescCstjddgdd}d|j_tjddgddgd}d|j_tjddgdd}d|j_tt|dt|d ktt|dt|dktt|dt|d ktt|dt|dkog|d|dkdS) Nr$i1,i2rFr=)num1r5)num2rrr )r$rrHrIrrrHr:r:r;test_record_hashs0zTestRecord.test_record_hashcCs&tjddgdd}ttt|ddS)Nr$r rr)r$rrrrrr:r:r;test_record_no_hashszTestRecord.test_record_no_hashcCs:tjdggggdddtjgdgggddddS)Nr:rErrrr.r)r:r:r:r:r:r8rBr:r:r;test_empty_structure_creations  z(TestRecord.test_empty_structure_creationcCsvtjdgdd}|ddg}t|j|ut|jtddgddgdd gd kd |dd<t|dd dS) Nr)r)rr3)rrrrArrrrrr~r)rr rF)r$rrr|rr r)rCrAr~r:r:r;test_multifield_indexing_views  z(TestRecord.test_multifield_indexing_viewN)rNrOrPrrrrrrr r rrrr:r:r:r;rfs)  rc@rS)TestViewcCsdtjddgdtjfdtjfdtjfdtjfgd}|jdd}|d}t||t|d d gdS) Nr%r<rrrrArrsii)r$rrrZr )rCrr rr:r:r;rs    zTestView.test_basicNrr:r:r:r;rrYrcK|jdi|Sr )meanrArr:r:r;_meanrErcKrr )varrr:r:r;_varrErcKrr )stdrr:r:r;_stdrErc@seZdZeeegZddZddZddZ ddZ d d Z d d Z d dZ ddZddZddZddZddZddZddZejdddd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/S)0 TestStatscCs^tjtdtjd|_|jd|j|_tdd|jjD|_|j dd|_dS)NrrrcSsg|]}tt|qSr:)rrP)rrr:r:r;rrz#TestStats.setup..rrF) r$rrRrwrmatcmatrr(omatrrBr:r:r;rDs zTestStats.setupcCsRtddddfD]}tt|gdtt|gdtt|gdq dS)Nrr y?r)r$rr rrrrr:r:r;test_python_types zTestStats.test_python_typecCsztd}|jD]2}dD]}|||dd}t|j|jkt|j|dkq dD]}|||dd}t|jdkq)qdS)Nrr+T)rkeepdimsr rTr)r$refuncsrrr4)rCmatrrrCr:r:r; test_keepdims s  zTestStats.test_keepdimscCstd}|jD]}td}||dd}||d|d}t||t||qtd}tt||d|dtd}tt||d|ddS)Nrr rrrr)r$rer!r'r r/rr&)rCr"rrrrCr:r:r;test_outs        zTestStats.test_outcCstjd}tjd}|jD]/}ttdgdgd}|jj}||ddjj}t||ut||dd}t|tuq |jD]-}|D](}tjd|d}tj }||ddjj}t||u||ddjj}t||uqDq@t fD].}|D])}tjd|d}|jj}||ddjj}t||u||ddjj}t||uquqqt t fD]/}|D]*}tjd|d}|j jj}||ddjj}t||u||ddjj}t||uqqdS)Nrrr rrr)r$rr!rrrrrrerrrrr)rCrsrtrr"rrCrr:r:r;test_dtype_from_input$sJ           zTestStats.test_dtype_from_inputcCsrtd}|jD].}tjdD]&}t|j}||d|djj}t||u||d|djj}t||uqqdS)Nrrr )rr)r$rer!rrrr)rCr"rrrrCr:r:r;test_dtype_from_dtypeUs    zTestStats.test_dtype_from_dtypecCstfD]$}tdD]}|jjd}||jdd|}||jd|d||}q qtfD]4}tdD]-}|jjd}||jddt|}||jd|dt||}t||t||q1q+dS)Nrr rrddof)rrwrr4rr$sqrtr )rCrr(rrrCr:r:r; test_ddofps        zTestStats.test_ddofc Cs|jjd}ttfD]J}t||dD]@}tjdd0}td||jd|d}t|dk tt |dktt |dj t Wdn1sNwYqq dS)Nr rTrrr'r)rr4rrrwrrrrrrrcategoryr)rCrrr(rrCr:r:r;test_ddof_too_big~s   zTestStats.test_ddof_too_bigc Cstd}|jD]m}dD]<}tjdd,}tdtt|||dtt |dktt |dj t Wdn1sCwYq dD])}tjdd}tdt |||dtgWdn1sowYqKqdS) Nr rTrrrrr)r$r'r!rrrrrrrrr+rr )rCrrrrr:r:r;rs$    zTestStats.test_emptycCs|j|j|jfD]9}dD]}|j|d}t||d|j|}t||q dD]}|j|d}t||dt|j}t||q'qdS)Nr+rrT) rrrrrr4r r$r(rCr"rrrCr:r:r;test_mean_valuess    zTestStats.test_mean_valuescCstttjddddkdS)Nrrrr )rrr$rrBr:r:r;test_mean_float16szTestStats.test_mean_float16cCFttjjjtdjddWddS1swYdSNr?rr)rr$rkrrr@rrBr:r:r;test_mean_axis_error"zTestStats.test_mean_axis_errorc Cstdd}tgdgdgdgdg}tdgdgdgdgg}d dgd fd |gd fd |gd fd |gdfg}|D] \}}}t|j||dt|ttj|||dt|qBtdd}tgd} ddgddgg}t|jd| dt|ttj|d| dt|tt} t|jd |dttj ddtj gWdn1swYtt} t |jddtj Wdn1swYtt} t tj|ddtj WddS1swYdS)Nr)rr)FTFTr)TTFF)FFTTFTr )rE@#@+@r)@r$@r)rkrg!@g-@)r7@rBrrrrrFTTFrEr4r5r6rr) r$r@rrrrrrrrLr rCrAr wh_partial_casesr_wh_resa3d _wh_partialrr:r:r;test_mean_wheresV        "zTestStats.test_mean_wherecCsj|j|j|jfD]*}dD]%}t|||d}t||d}|||}t||d}t||q qdSNrr Nr)rrrrrrrr rCr"rmsqrrrrCr:r:r;test_var_valuess   zTestStats.test_var_values) complex_dtypendec))r%r)r&r)r\rc CshdD]/}|j|}t|||d}t||d}|||}t||d}t|||dqdS)NrErrl)rr$rgrrrrr ) rCrIrJrr"rGrrrCr:r:r;test_var_complex_valuess  z!TestStats.test_var_complex_valuescCsft|jgd}dD]%}t|||d}t||d}|||}t||d}t||q dS)Nr)rr rr"Nr)r$stackrrrrrr rFr:r:r;test_var_dimensionss   zTestStats.test_var_dimensionscCs6|jd}||j}t||dS)Nr&)rr$rgrrRr r)rCr cmat_swappedr:r:r;test_var_complex_byteordersz$TestStats.test_var_complex_byteordercCr0r1)rr$rkrrr@rrBr:r:r;test_var_axis_errorr3zTestStats.test_var_axis_errorc Cstdd}tgdgdgdgdgdg}tdgdgdgdgdgg}d dgd fd dgd fg}|D] \}}}t|j||d t|ttj|||d t|q;tdd}tgd} ddgddgg}t|jd| d t|ttj|d| d t|ttj|d |d tj||dd dttj|d |d tj||ddd fd dtt} t |jddtj Wdn1swYtt} t tj|ddtj WddS1swYdS)NrrrTFTTF)TTFFT)FTTFTFTr)I@rRrRrRrRr )rkrkrkrkrkrrr:r;rrrFrrr) r$r@rrrrrrrr rLr<r:r:r;test_var_wheresX     "zTestStats.test_var_wherecCsL|j|j|jfD]}dD]}tt||d}t||d}t||q qdSrD)rrrr$r)rrr r-r:r:r;test_std_values&s  zTestStats.test_std_valuesc Cs~tddddd}tgdgdgdgdgdg}tdgdgd gd gdgg}d d d td fd d dtd fd |tgdfd |dtd fg}|D]\}}}t|j||d|ttj|||d|qXtdd}tgd} ddgddgg}t|jd| dt|ttj|d| dt|t|jd |dtj||dd dttj|d |d||djd dt|jd |dtj||ddd fd dttj|d |d||ddd fjd dtt } t |jddtj Wdn 1swYtt } t tj|ddtj WddS1s8wYdS)Nrrr"r)TFTFT)TTFTFrQFTrgMH@rFr g'e?)gevT@g fvT @rg @g,I\) @rrrr:r;rrrSrr) r$r@rrrrrrrrr rL) rCrAwhfwhpr>rr?r@rArBrr:r:r;test_std_where-sd    $zTestStats.test_std_wherecCszGdddtj}|gdgdgd}|d}t|j|jk|d}t|j|jk|d}t|j|jkdS)Nc@rY)z*TestStats.test_subclass..TestArraycSst|}||}||_|SrT)r$rrZinfo)clsr!rYrr:r:r;__new__[s  z2TestStats.test_subclass..TestArray.__new__cSst|dd|_dS)NrYr)rrYrLr:r:r;__array_finalize__arz=TestStats.test_subclass..TestArray.__array_finalize__N)rNrOrPr[r\r:r:r:r; TestArrayZs r]r%r<jubbar )r$r2rrrYrr)rCr]datrCr:r:r; test_subclassYs   zTestStats.test_subclassN) rNrOrPrrrr!rDrr#r$r%r&r*r,rr.r/r2rCrHrrrrKrMrOrPrTrUrXr`r:r:r:r;rs2   1  $   % ,rc@rn)TestVdotcCstjdtjd}tjd}td}|dD]}||}t||}tt|tt||dqtdd}|dD]}||}t||}tt|tt||dqAtjdtd}t||}tt|tt||ddS) NrrrarrrrT) r$rrergvdotrisscalarr r)rC dt_numeric dt_complexrArrrCr:r:r;rns$         zTestVdot.test_basiccCztjddgddggdd}tjddgddggdd}t||}tt|||tt|||tt|||dSNr rrrrr#r&)r$rrbr rCrArrCr:r:r;test_vdot_array_order  zTestVdot.test_vdot_array_ordercCs0dD]}t|ddf}t|ddf}t||ddddf<t|d|ddddf<|d}|d}tt||t||tt||t||tt||t||tt|d|t||tt||dt||qdS)N)rrvrrr .rr&)r$r'r@r rbrr$)rCr6rArr:r:r;test_vdot_uncontiguouss. zTestVdot.test_vdot_uncontiguousN)rNrOrPrrirlr:r:r:r;rams rac@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)S)*TestDotcCsbtjdtjdd|_tjdd|_tjd|_tjdd|_tjd|_d|_ dS)Nrrrr r) r$rrRrrrb2b3b4NrBr:r:r;rDs  z TestDot.setupcCs@|j}t||}tddgddgg}t|||jddS)Ngh5?gV?g1-?rl)rr$rGr0rr rq)rCrrCrr:r:r;test_dotmatmats  zTestDot.test_dotmatmatcCsH|j|j}}t||}tdgdgdgdgg}t|||jddS)NgcLU5?g ?g )XF?gс?rl)rrr$rGrr rq)rCrrrCrr:r:r;test_dotmatvecs   zTestDot.test_dotmatveccCs<|j|j}}t||}tgd}t|||jddS)N)gHo?gĊ"?g-P?gNz?rl)rrnr$rGrr rq)rCrrnrCrr:r:r;test_dotmatvec2 zTestDot.test_dotmatvec2cCs<|j|j}}t||}tddg}t|||jddSNgة[?g?rl)rrpr$rGrr rqrCrrprCrr:r:r;test_dotvecmatruzTestDot.test_dotvecmatcCsB|j|j}}t||}tgdg}t|||jddS)N)goc?gTbi\?g2r?gb?rl)rorr$rGr0rr rq)rCrorrCrr:r:r;test_dotvecmat2szTestDot.test_dotvecmat2cCs@|j|j}}t||}tddg}t|||jddSrv)rrpr$rGr0rr rqrwr:r:r;test_dotvecmat3szTestDot.test_dotvecmat3cCsD|j|j}}t||}tddgddgg}t|||jddS)NgcQ0?gXO?g5쵨h?g5?rlrror$rGrr rqrCrrorCrr:r:r;test_dotvecvecouters zTestDot.test_dotvecvecoutercCs<|j|j}}t||}tdgg}t|||jddS)Ng".!?rlr{r|r:r:r;test_dotvecvecinnerruzTestDot.test_dotvecvecinnercCs>td}dg}t||}tgd}t|||jddS)Nrr 333333@)rrrrl)r$rrGrr rqrCrrnrCrr:r:r;test_dotcolumnvect1s  zTestDot.test_dotcolumnvect1cCsBtd}dg}t||}tgd}t|||jddS)Nrr)rrrrl)r$rr0rGrr rqrr:r:r;test_dotcolumnvect2s  zTestDot.test_dotcolumnvect2cCsXtjdtjdd}tjdd}t||}tgdg}t|||jddS)Nrr r)g#:\?gNp?gwr*a?p<e?rlr$rrRrrGrr rqrr:r:r;test_dotvecscalars  zTestDot.test_dotvecscalarcCsbtjdtjdd}tjdd}t||}tdgdgdgdgg}t|||jddS) Nrrr rgpVȅU?gX;'Ii`?g3Tp?rlrrr:r:r;test_dotvecscalar2s  zTestDot.test_dotvecscalar2c Cs~gd}gd}t|t||D]+\}\}}t|}t|}t||}t|} t|j| jkt|| |j dqdS)N)r:rr) r:rrrr:rrrrrl) zip itertoolsproductr$r'rGrr4r rq) rCdimsdoutrdim1dim2rrnrCrr:r:r;rs    zTestDot.test_allcsGfdddtddgddgg}t|}tddgddgg}tddgddgg}t||t||}t|dj|djt|dj|djdS)NcsBeZdZd ddZfddZfddZfdd Zd d ZdS) z#TestDot.test_vecobject..VecNcSs|durg}t||_dSrTr8)rCsequencer:r:r;rWsz,TestDot.test_vecobject..Vec.__init__cs}|j|j|_|SrTrirCr{rVecr:r;__add__z+TestDot.test_vecobject..Vec.__add__cs}|j|j|_|SrTrirrr:r;__sub__rz+TestDot.test_vecobject..Vec.__sub__cs |j}|j|9_|SrT)rr$rrr:r;r sz+TestDot.test_vecobject..Vec.__mul__cSs||SrTr:rzr:r:r;__rmul__$rz,TestDot.test_vecobject..Vec.__rmul__rT)rNrOrPrWrrr rr:rr:r;rs      rrrkrrr )r$r0r.rrGr )rC U_non_contU_contrr' zeros_testr:rr;test_vecobjects zTestDot.test_vecobjectcCsrddlm}tjddgddggtd}tjddgddggtd}tjddgddggtd}|||}t||dS) NrrGr rrrrr)numpy.core.multiarrayrGr$rrqr)rCrGrArrrr:r:r;test_dot_2args/s  zTestDot.test_dot_2argscCsddlm}tjdtjd}tjd}td}tdD]}||||q!tr4t t |d|||dd }t ||t |||||d u|dddf}|dddf}|||}t |||||ut ||dS) NrrrrrrrrrErr)rrGr$rrR random_sampler/rwrr rrir rr$)rCrGrr~rrr2r:r:r;test_dot_3args9s"        zTestDot.test_dot_3argsc Cs8ddlm}tjdtjd}tjd}td}tt||||td}tt||||td}tt||||td }tt||||tt||||j td }tt||||ddddd ftt||||dddd ftjd tj d}tt||||tjd t d}tt||||dS)Nrrrrr)rr)r)r)rr)rrrrrr) rrGr$rrRrr/rr&rr$r)rCrGrr~rr:r:r;test_dot_3args_errorsOs(         " zTestDot.test_dot_3args_errorscCrfrg)r$rrGr rhr:r:r;test_dot_array_ordermrjzTestDot.test_dot_array_ordercsddddfdd }dd}dd tj}d d tj}t||td d d d}|D]\}}}}tj||} tj|} t| | } || |tj|d} || |tj} || | | | ddd}t|| } | ddd}||| | |dddddf}| ddd}t||} |dddddf}| ddd}|||| |dkrt|jdd|fn t|jd|dft|jd|||tj}|||| | dddddf}t||} | dddddf}|||| |||| q.dS)Nrc Ss|d}t|}tj||j|tjd}|jdd}t|D] }|||dkr-nq!|||||jj|d}|j||dS)Nrrr!r#) r$r(r'rr0r1rwrZr) r4r5rrrrqrtaddressr9r:r:r; aligned_arrayys  zBTestDot.test_accelerate_framework_sgemv_fix..aligned_arraycs(|j|||}|dd|dd<|SrT)r4)rUr5rrrrr:r; as_alignedsz?TestDot.test_accelerate_framework_sgemv_fix..as_alignedcSstt|||ddddS)Ngh㈵>gHz>)rtolatol)rr$rG)rrdesiredr:r:r;assert_dot_closerzETestDot.test_accelerate_framework_sgemv_fix..assert_dot_closerrrh)rr)r)Y)rr&r#rr&rrx)r) r$r$rGrrrrr r)rCrrr9rtestdatar5ra_orderA_dX_drA_fX_fA_d_2A_f_2A_d_22X_d_2A_f_22X_f_2X_f_2cA_d_12A_f_12r:rr;#test_accelerate_framework_sgemv_fixwsH              z+TestDot.test_accelerate_framework_sgemv_fixN)rNrOrPrDrrrsrtrxryrzr}r~rrrrrrrrrrrr:r:r:r;rms*  !  rmc@sTeZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ dS) MatmulCommonz5Common tests for '@' operator and numpy.matmul. z?bhilqBHILQefdgFDGOcCsTgd}t|j|D]\}\}}tj||d}tj||d}tt|j||q dS)N) )rr)r6r)rr$)r$r)rr:)r:r )rr:)r:r)rrr rr)rrror$rrr&rV)rCrrdm1dm2rArr:r:r;test_exceptionss  zMatmulCommon.test_exceptionsc Csgd}t|j|D]!\}\}}tj||d}tj||d}|||}t|jdkq |jD] }tjd|d}tjd|d}|||}tt|jdkq0dS)N))rrr r )rr)rrrrrr:) rrror$rrVrr4r) rCrrrrrArrCrr:r:r; test_shapess   zMatmulCommon.test_shapescCstd}td}|jD]<}||}||}||f||f||ffD]}|j|}t|j|kq$|dkrI|||}tt|t|juq dS)Nrrr)r$rrorgrVrrr)rCr"vecrr9r~argrCr:r:r;test_result_typess       zMatmulCommon.test_result_typesc Cstdg}tddgdd}tddg}|jddD]#}||}||}|||}t||||j|}t||qtjddgd d dd}||ddd f|}t|ddS) Nrrrr r"rrTrrr)r$rrrorgrVr r) rCvec1vec2rrrrrCrr:r:r;test_scalar_outputs      zMatmulCommon.test_scalar_outputc Cstddg}tddgdd}tdg}tddgddgg}|jddD]&}||}||}|||}t|||||dd}t||q*tjd d gd d } || | }t|d dS) Nr rrrr"rrrTrr)r$rrrorgrVr ) rCrrtgt1tgt2rrrrCrr:r:r;test_vector_vector_valuess       z&MatmulCommon.test_vector_vector_valuesc CsBtddg}tddgddgg}tj|gddd}tddg}tj|gddd}|jddD]'}||}||}||} |||} t| |||| } t| |q4td d g}td d gd d gg}tj|gddd}td d g}tj|gddd}|||} t| ||||} t| |dS) Nr rrrrrrr?TFr$rrLrorgrVr rCrmat1mat2rrrr~m1rmrCr:r:r;test_vector_matrix_values,          z&MatmulCommon.test_vector_matrix_valuesc CsBtddg}tddgddgg}tj|gddd}tddg}tj|gddd}|jddD]'}||}||}||} |||} t| ||| |} t| |q4td d g}td d gd d gg}tj|gddd}td d g}tj|gddd}|||} t| ||||} t| |dS) Nr rrrrrrFrTFrrr:r:r;test_matrix_vector_values5rz&MatmulCommon.test_matrix_vector_valuescCstddgddgg}tddgddgg}tj||gdd}tj||gdd}tddgd d gg}tddgddgg}tddgdd gg}tj||gdd}tj||fdd} tj||fdd} |jddD]M} || } || } || }|| }|| | }t|||| | }t||||| }t|| || |}t|| |||}t||qktjddgddggtjd } tjddgddggtjd } tj| | gdd}tj| | gdd}| }| }tjddgddggtjd }tj||gdd}tj||fdd} tj||fdd} || | }t|||| | }t||||| }t|| || |}t|| |||}t||dS) Nr rrrrrrr?rrrr)r$rrLrorgrVr r)rCrrmat12mat21tgt11tgt12tgt21tgt12_21tgt11_12tgt11_21rrrmm12m21rCr:r:r;test_matrix_matrix_valuesPsZ                       z&MatmulCommon.test_matrix_matrix_valuesN) rNrOrPr*rorrrrrrrrr:r:r:r;rs rc @seZdZejZddZddZddZed dd Z ed  d d Z ed  dd dddddfZ edZ edZedZejdge e fe je jfe je jfe je jfe e jfe je fe e jfe e jfe e jfe je fe e fe je jfe je jfe edd fe dde fe je ddfedd e jfe edddfe ddde fe je dddfeddde jfe edd fe dde fe je ddfedd e jfe edddfe ddde fe je dddfeddde jfeejfejefe efeje jfRddZddZddZddZddZddZd d!ZdS)" TestMatmulcCs6tjdtd}tjddgddggtd}t||}d}tjdtd}||||t|||dd }tjdtd}|j|||d t|||dd }tjdtjd}t t ||j|||d tjdtj d}|j|||d }t ||ut }|tjd ||j}Wdn1swYt||dS) NrFrrr rrFrzout positional argumentrzout keyword argumentrzCannot cast ufunc .* outputr)r$rrqrrGr'rVr rr rr&rrrBComplexWarningrgr)rCrArrrrrrEr:r:r; test_out_args,  zTestMatmul.test_out_argcCsntd}td}|||jdksJtjtdd|j|||dWddS1s0wYdS)Nrr?znon-broadcastablematchr)r$rrVr4rr5r&r r:r:r;test_empty_outs  "zTestMatmul.test_empty_outcCsJtjdtd}tjddgddggtd}tjddgtd}t||}t||}tjdtd}|j|||dd }|j|usAJt|||j|||ddd d fd }t|||j||j|ddd d fd }t||tjd td}|j|||ddd ddfd }t||tjdtd}|j|j|j|jd }t||dS) Nrrr rrFr)rFrrrkrr)r?rr) r$rrqrrGrVr|r r)rCrArr~rtgt_mvrrr:r:r;test_out_contiguouss&      " zTestMatmul.test_out_contiguousg.@rFrg5@rg>@rNrr8r7rrrcCsHtj|}tj|}t||t|d|d}t||dSr)r$rVrGr r$)rCrr1rr3r:r:r;test_dot_equivalents   zTestMatmul.test_dot_equivalentc Cstddl}t|j}dd}|||}|||}|||}dd|||fD\}}} t| |||dS)NrcSstjjddddS)Nr rv)r?rrr)r$rrr:r:r:r; random_intsrz2TestMatmul.test_matmul_object..random_intscSsg|]}|tqSr:)rgrqrEr:r:r;rrz1TestMatmul.test_matmul_object..) fractionsr$ vectorizeFractionrVr) rCrrrM1M2M3N1N2N3r:r:r;test_matmul_objects  zTestMatmul.test_matmul_objectcCsFddlm}t|dd|ddg}|||}tt||udS)Nr)rrrrFr)rrr$rrVrr)rCr&r~rCr:r:r;test_matmul_object_type_scalar s  z)TestMatmul.test_matmul_object_type_scalarcCs<tjdtd}tjdtd}td}tt|||dS)Nrrr r)r$r/r%r'r rVrHr:r:r;test_matmul_emptys zTestMatmul.test_matmul_emptycCVGddd}td|}ttt||}WddS1s$wYdS)Nc@rS)zCTestMatmul.test_matmul_exception_multiply..add_not_multiplycS|SrTr:rzr:r:r;rrzKTestMatmul.test_matmul_exception_multiply..add_not_multiply.__add__N)rNrOrPrr:r:r:r;add_not_multiplyrYrrr$fullrrrV)rCrrArr:r:r;test_matmul_exception_multiply  "z)TestMatmul.test_matmul_exception_multiplycCr)Nc@rS)z>TestMatmul.test_matmul_exception_add..multiply_not_addcSrrTr:rzr:r:r;r !rzFTestMatmul.test_matmul_exception_add..multiply_not_add.__mul__N)rNrOrPr r:r:r:r;multiply_not_add rYrrr)rCrrArr:r:r;test_matmul_exception_addrz$TestMatmul.test_matmul_exception_addcCstjddgddggtd}t|tjdksJt||}t|tjdks-Jtjtj d}|j ddtj d}| dd dk}t|| d d}t || d d}t||ttjd tdtjdtd}t|rxJdS) Nr rrr<rrrrrF)rr)r$rrrrZr0rVr default_rngPCG64integersrrrGr r'r)rCrArrgrrrrr:r:r;test_matmul_bool's   zTestMatmul.test_matmul_bool)rNrOrPr$rVrrrr@rrrmrnvcvrr'm0rrrrr$rrrrrrr r:r:r:r;rs $                     rc@s*eZdZddlZejZddZddZdS)TestMatmulOperatorrNcCsFGddd}|}td}t|||dt|||ddS)Nc@s eZdZdZddZddZdS)z:TestMatmulOperator.test_array_priority_override..ArvcSrNrr:rzr:r:r; __matmul__CrzETestMatmulOperator.test_array_priority_override..A.__matmul__cSrrr:rzr:r:r; __rmatmul__FrzFTestMatmulOperator.test_array_priority_override..A.__rmatmul__N)rNrOrPrrrr:r:r:r;r@s rr)r$rr rV)rCrrArr:r:r;test_array_priority_override>s  z/TestMatmulOperator.test_array_priority_overridecCsXtt|jtdtdtt|jtdtdtt|jtdtddS)NrFsabcr?)rrrVr$rrr&r@rBr:r:r;test_matmul_raisesNs z%TestMatmulOperator.test_matmul_raises)rNrOrPr,rVrrr:r:r:r;r:s  rcCsRtd}td}tt|j|ddl}tt|j||tttdtt dS)Nrrza @= b) r$rerr __imatmul__r,imatmulexecglobalsrG)rArr,r:r:r;test_matmul_inplaceSs  rcCstdddd}tj||gdd}|jdksJtj||gdd}|jd ks,Jt|d d }t||tj|tdgd d}|jd ksLJdS)NrrrrF)rr"r"rr$)r)rrr)rrr+)rrrrr))r rrrr)r$r@rrVr4rzr )rArrrrr:r:r;test_matmul_axes^s rc@4eZdZddZddZddZddZd d Zd S) TestInnercCrJrK)r$rrrrZrLr:r:r;test_inner_type_mismatchlrNz"TestInner.test_inner_type_mismatchcCs|tjdtjddD]/}tjd|dd}tjddg|d}tjdd g|d}tt|||tt|||q dS) Nrrrrrr:r rr)r$rrr rZ)rCrscarrr:r:r;test_inner_scalar_and_vectorssz&TestInner.test_inner_scalar_and_vectorcCs.tjdtjd}t||}t|ddddS)N)r rrrrrl)r$r'rrZr )rCrArr:r:r; test_vecself{s zTestInner.test_vecselfcCsvtjdtjddD]}tjddgddgg|d}tjddgddgg|d}tjddg|d}tjdd g|d}tt|j||tt||j|tt|||tt|||tjd d gd d gg|d}tt|||tjddgddgg|d}tt|||tt|||td|}|ddd}tjd |d }tt|||q dS)Nrrrr rrrrrrr?rrrFrrr") r$rrr rZrr$r@rgr)rCrrr`rrrArr:r:r;,test_inner_product_with_various_contiguitiess&z6TestInner.test_inner_product_with_various_contiguitiescCstjdtjddD]h}tdddd|}tddddd|}tjgd gd ggd gd ggd gdgggdgdggdgdggdgdggg|d}tt|||tt||dddd|q dS)Nrrrr#rrr0))i)i6ii)i>ii)iifi)ii.i)ifi>i)iii )iii. )iF i^ iv )ii iF )i i iNrrr ) r$rr@rrgrr rZr0)rCrrArrr:r:r;test_3d_tensors<  zTestInner.test_3d_tensorN)rNrOrPrr!r"r#r*r:r:r:r;rjs  rc@rY)TestAlencCsttGtgd}tt|dtgdgdg}tt|dgd}tt|dgdgdg}tt|dWddS1sOwYdS)Nr"r)rrFrr)rrrr$rr alenrCr9r:r:r;rs "zTestAlen.test_basiccCs@ttttddWddS1swYdS)NrFr )rrrr r$r,rBr:r:r;test_singletons "zTestAlen.test_singletonN)rNrOrPrr.r:r:r:r;r+s r+c @seZdZddZddZddZddZej d d e j d ge j d fd e j d ge j d fde dfde j dge j d fgddZdS) TestChoosecCs^dtjdtd|_dtjdtd|_dtjdtd|_dtjdtd|_gd|_dS)Nrr rrrr)r$rrrr rrrrBr:r:r;rDs zTestChoose.setupcCs(t|j|j|jf}t|gddSNr)r$rrrr r r[r:r:r;rrzTestChoose.test_basiccC0t|j|j|jf}t|gdgdgdSr0)r$rrrrr r[r:r:r;test_broadcast1zTestChoose.test_broadcast1cCr1r0)r$rrrrr r[r:r:r;test_broadcast2r3zTestChoose.test_broadcast2rrvr rr"rrcCs&tj|}tdg|j|ksJdSr)r$ result_typerr)rCr expected_dtr:r:r;test_output_dtypes zTestChoose.test_output_dtypeN)rNrOrPrDrr2r4rrrr$rr0r$r7r:r:r:r;r/s r/c@r) TestRepeatcCs"tgd|_|jd|_dS)Nr.r)r$rr9rr:rBr:r:r;rDszTestRepeat.setupcCs$t|jgd}t|gddS)Nr/r0r$r8r9r r[r:r:r;rszTestRepeat.test_basiccCs t|jd}t|gddS)Nrr1r9r[r:r:r;r2szTestRepeat.test_broadcast1cCsbtj|jddgdd}t|gdgdgdgtj|jgddd}t|gdgd gdS) Nrr rrr"r2r3r4r5r$r8r:r r[r:r:r;test_axis_specs   zTestRepeat.test_axis_speccCs`tj|jddd}t|gdgdgdgdgtj|jddd}t|gdgdgdS) Nrrrr"r2r r6r7r:r[r:r:r;r4s   zTestRepeat.test_broadcast2N)rNrOrPrDrr2r;r4r:r:r:r;r8s  r8r rrr)zerorconstantcircularmirrorrrqr%idsc@r) TestNeighborhoodItercCstjddgddgg|d}tjgdgdg|dtjgdgdg|dtjgdgd g|dtjgdgd g|dg}t|gd |dtd }t||tjgd gdg|dtjgd gdg|dtjgdgdg|dtjgdgdg|dg}t|gd |dtd}t||tjgdgdg|dtjgdgdg|dtjgdgdg|dtjgdgdg|dg}t|gd dtd}t||dS)Nrr rrrr>rr)rrrrrrr"rr"r r<r?r rr rr"rr)rrr)rrr )rr r)rrrr rr=r$r_multiarray_teststest_neighborhood_iterator NEIGH_MODEr rCrrrrr:r:r; test_simple2ds8  z"TestNeighborhoodIter.test_simple2dcCstjddgddgg|d}tjgdgdg|dtjgdgdg|dtjgdgdg|dtjgdgd g|dg}t|gd |dtd }t||dS) Nrr rrrrrrrrrrDr?rFrJr:r:r; test_mirror2d1sz"TestNeighborhoodIter.test_mirror2dcCstddd|}gdgdgdgdgdg}t|ddg|d td }t||gd gdgdgdgd g}t|ddg|d td }t|||dddggdgdgddd|dgg}t|ddg|dtd}t||dS)Nr rFr=r"r r)rrFrr"rr<r r r)rrFr rrrr=)r$rrgrGrHrIr rJr:r:r; test_simple<s " " .z TestNeighborhoodIter.test_simplecstddd}tjgdgdgdgdgdgd}t|d d g|dtd }tfd d |Dt||dS)Nr rF)rr r rr)r r rrrr rrrrF)rrrrFrF)rrrFrFrrrrr?csg|]}|jkqSr:rrrr:r;rUrz4TestNeighborhoodIter.test_mirror..) r$rrgrrGrHrIrr rJr:rQr; test_mirrorOs z TestNeighborhoodIter.test_mirrorcCsjtddd|}tjgdgdgdgdgdg|d}t|d d g|d td }t||dS) Nr rF)rrFr rr)rFr rrrrP)rrrrFr )rrrFr rrrrrr>)r$rrgrrGrHrIr rJr:r:r; test_circularYs z"TestNeighborhoodIter.test_circularN)rNrOrPrKrMrOrRrSr:r:r:r;rBs   rBc@,eZdZddZddZddZddZd S) TestStackedNeighborhoodIterc Cs.tj}tjgd|d}tjdg|dtjdg|dtjdg|dtjdg|dtjdg|dtjdg|dtjdg|dg}t|ddgtd ddgtd }t||tjgd |dtjgd |dtjgd|dtjgd |dtjgd |dg}t|ddgtd ddgtd}t||dS)Nr"rrr rrrrr<rEr=rC)rrr r"rr$rrrGtest_neighborhood_iterator_oobrIr rJr:r:r;test_simple_constes0 z-TestStackedNeighborhoodIter.test_simple_constcCsRtj}tjgd|d}tjgd|dtjgd|dtjgd|dtjgd|dtjgd|dg}t|ddgtd dd gtd }t||tjgd|d}tjgd |dtjgd |dtjgd|dtjgd|dtjgd|dg}t|ddgtd ddgtd }t||tjgd|d}tjgd|dtjgd|dtjgd|dtjgd|dtjgd|dg}t|ddgtd ddgtd }t||tjgd|d}tjgd|dtjgd|dtjgd|dtjgd|dtjgd|dg}t|ddgtd ddgtd }t||dS)Nr"rrrNrL)rrrr"rr?r r<rrr=rCrrrrr)rrrr)r rrr rrrr rrrr rrrr rrrr)rrrrrrVrJr:r:r;test_simple_mirrorZ   z.TestStackedNeighborhoodIter.test_simple_mirrorcCsRtj}tjgd|d}tjgd|dtjgd|dtjgd|dtjgd|dtjgd|dg}t|ddgtd dd gtd }t||tjgd|d}tjgd |dtjgd |dtjgd|dtjgd|dtjgd|dg}t|ddgtd ddgtd }t||tjgd|d}tjgd|dtjgd|dtjgd|dtjgd |dtjgd |dg}t|ddgtd ddgtd }t||tjgd|d}tjgd|dtjgd|dtjgd|dtjgd|dtjgd|dg}t|ddgtd ddgtd }t||dS)Nr"r)rrr rr)rr rr"rr>r r<rYrr=rCrrr)rrrr rrZr[r\)rrrrr rVrJr:r:r;test_simple_circularr^z0TestStackedNeighborhoodIter.test_simple_circularcCstj}tjgd|d}tjgd|dg}t|ddgtdddgtd}t||tjgd|d}tjgd|dg}t|ddgtdddgtd }t||tjgd|d}tjgd |dg}t|ddgtdddgtd }t||dS) Nr"r)r rrrr r<r"rrr?)r rrr r>rVrJr:r:r;test_simple_strict_withins&  z5TestStackedNeighborhoodIter.test_simple_strict_withinN)rNrOrPrXr]r_r`r:r:r:r;rUcs 0 0rUc@rS) TestWarningscCs|tddg}tddg}t"tdtjttj|jtd|t |ddgWddS1s7wYdS)Nr ry?y?@r) r$rrrrrrrslicer rr:r:r;test_complex_warnings "z!TestWarnings.test_complex_warningN)rNrOrPrcr:r:r:r;rarrac@r) TestMinScalarTypecC"td}td}t||dS)Nrr0r$min_scalar_typerr rCrwantedr:r:r;test_usigned_shortshort  z)TestMinScalarType.test_usigned_shortshortcCre)Nirrfrhr:r:r;test_usigned_short rkz$TestMinScalarType.test_usigned_shortcCre)Nlrrfrhr:r:r;test_usigned_intrkz"TestMinScalarType.test_usigned_intcCre)Nrrrfrhr:r:r;test_usigned_longlongrkz'TestMinScalarType.test_usigned_longlongcCre)Nlrrfrhr:r:r;r8rkzTestMinScalarType.test_objectN)rNrOrPrjrlrmrnr8r:r:r:r;rds  rd)_dtype_from_pep3118c@r)TestPEP3118DtypecCs,t|}t|}t||d||fddS)Nzspec %r != dtype %rr)r$rror )rCspecriractualr:r:r;_check%s   zTestPEP3118Dtype._checkc Csxtdj}tdD]/}|dkrd}nd|}|d|dd|d||fd |d |ddd|fd q dS) Nrrrr_zb%dxirk)r5rr rhrr)r$rr(rwrs)rCr5rDrr:r:r;test_native_padding+s      z$TestPEP3118Dtype.test_native_paddingcCs<|ddddidfdfi|ddddidfdfidS) Nzx3T{xi}rh)rrr rz^x3T{xi})rr r rsrBr:r:r;test_native_padding_27s z&TestPEP3118Dtype.test_native_padding_2c sxtdjtdj}fdd}tdgdgd}|dtdd||di||d tdd||d i||d tdd||d i||d tdd||di||dtdd||di||dtdd|di||dtdd|d i||dtdd|d i||dtdd|di||dtdd|di|dS)Nrcd|dSrr:rr5r:r;rBz7TestPEP3118Dtype.test_trailing_padding..alignedrh)rrixr.r ixxrixxxrixxxxri7xrz^ixz^ixxz^ixxxz^ixxxxz^i7xr:)r$rr(r.rlrs)rCr6rr|r:rzr;test_trailing_padding<s   """"""z&TestPEP3118Dtype.test_trailing_paddingc Cs`tjdddtdfdgdd}|d|tddd d d dtjdddfg}|d |dS) NrBrrrb,irTrzz(T{b:a:xxxi:b:T{b:f0:=i:f1:}:sub:xxxi:c:}rrrrrrz-T{b:a:=i:b:b:c:b:d:b:e:T{b:f0:xxxi:f1:}:sub:}r$rrsrr:r:r;test_native_padding_3Ss z&TestPEP3118Dtype.test_native_padding_3cCs"tjgddd}|d|dS)NrBr)rrr rTrzzT{b:a:xxxi:b:3b:c:xi:d:}rrr:r:r;%test_padding_with_array_inside_struct_s z6TestPEP3118Dtype.test_padding_with_array_inside_structcCs|dddidfdddS)Nz@T{^i}xirh)rrr)rrFrtrvrBr:r:r;test_byteorder_inside_structfs z-TestPEP3118Dtype.test_byteorder_inside_structc sRtdjtdj}fdd}|dtdgdgdg||ddd fdS) Nrcrxrr:ryrzr:r;rqr{z4TestPEP3118Dtype.test_intra_padding..alignedz(3)T{ix}rhrr rr )r$rr(r.rsrl)rCr6rr:rzr;test_intra_paddingls     z#TestPEP3118Dtype.test_intra_paddingcCs4td}|d|tddg}|d|dS)Nr)rhS1r)rrh4c4srrr:r:r;test_char_vs_string{s  z$TestPEP3118Dtype.test_char_vs_stringcCs$|dddg|dddgdS)Nz (0)I:a:f:b:)rArarrUz (0)I:b:f:a:)rrarrTrvrBr:r:r;test_field_ordersz!TestPEP3118Dtype.test_field_ordercCs>|dddg|dddg|dd|ddgdS)Nii)rhr)rrzii:f0:rzi:f0:rvrBr:r:r;test_unnamed_fieldss z$TestPEP3118Dtype.test_unnamed_fieldsN)rNrOrPrsrurwrrrrrrrrr:r:r:r;rp$s   rpc @seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZejddgejejddged ed!d"ejedded#d"gd$d%Zd&d'Zd(d)Zd*d+Zejjd,d-ejd.d/d fd0d1Z ejjd,d-ejj!ejd2d3d4j"j# d5d-ed6fd7d8Z$d9d:Z%d;d<Z&ejj'd=d>Z(d?d@Z)dAdBZ*dCdDZ+dEdFZ,ejdedGejddHd dIgdJdKZ-dLS)MTestNewBufferProtocolz Test PEP3118 buffers cCst|}t|}t|}t|}t|jj t|jjt|j|jt|j |j t ||t|j|jt|j |j t ||dSrT) r$r[rrrrHrr rr4r )rCrrr rr:r:r;_check_roundtrips     z&TestNewBufferProtocol._check_roundtripcCs&tjgddd}||tjddgddggtjd}||tjdtjdddd ddf}||d d d d dddddddtjfdtjfdtjfdtj fdtj fdtj fdddddtj fg}tjdg|d}||tjddgddggfd t d!ffgd}||tjgd"d#d}||tjgd"d$d}||tjgd"d%d}||tjgd"d&d}||tjgd"d'd}||tjd(krtjgd"d)d}tt|j|tjgd"d*d}||dStjgd"d)d}||tjgd"d*d}tt|j|dS)+NrPrrr rrrr2rrBrrnrrrdxrmrr`rHrrarnLhxQrrDrr|jxkxrrhr9U4rV3rrr)r r r r r r r r r r r r r r r r aaaabbbbsxxxTrrArr"rNrxrtrsz>qrz>gzrgz+infz-infgT?z>erz.rrzjT{b:a:=h:b:i:c:l:d:q:dx:B:e:@H:f:=I:g:L:h:Q:hx:f:i:d:j:^g:k:=Zf:ix:Zd:jx:^Zg:kx:4s:l:=4w:m:3x:n:?:o:@e:p:}zjT{b:a:=h:b:i:c:q:d:q:dx:B:e:@H:f:=I:g:Q:h:Q:hx:f:i:d:j:^g:k:=Zf:ix:Zd:jx:^Zg:kx:4s:l:=4w:m:3x:n:?:o:@e:p:}r)r$rXrZrdrYr[r\rrrr r4rrrrr.rcrrrrr)rCrrr szr:r:r;test_export_record<sJ    z(TestNewBufferProtocol.test_export_recordcCsrtjddgddggfdgd}t|}t|jdt|jdt|jd t|jdt|jdt|j d dS) Nr rrr)rA)rrrz T{(2,2)i:a:}r:rrrrr:r:r;test_export_subarrayfs     z*TestNewBufferProtocol.test_export_subarraycCstjgddd}t|}tjdkrt|jdnt|jdtjgddd}t|}tjdkr9t|jddSt|jddS)Nr"z>irrrz.make_ctype)!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 !rr) rc_uint8rr rr rr$rrwgccollect)rCrc_u8_33dr9rr:r:r;test_error_too_many_dimss     z.TestNewBufferProtocol.test_error_too_many_dimscCs4ttt}td|jvttdtj |dS)N&z format string) rrpointerrrrcr r&r$rr-r:r:r;test_error_pointer_type s z-TestNewBufferProtocol.test_error_pointer_typecCsjtjd}tt}t|Wdn1swY|j}ttd|j 1s.wYdS)Nrz(Unrepresentable .* 'u' \(UCS-2 strings\)) rc_wcharrr&r$r exceptionr rY __cause__)rCr cmrr:r:r;test_error_message_unsupporteds  z4TestNewBufferProtocol.test_error_message_unsupportedc CsftjtjtjhD](}|d}tjddtddtt |Wdn1s+wYqdS)NrTrr .*\bctypes\b) rc_intc_long c_longlongrrrrr$r[)rC c_integerrr:r:r;"test_ctypes_integer_via_memoryview$s z8TestNewBufferProtocol.test_ctypes_integer_via_memoryviewcCsGdddtj}|ddd}tjddtdd tt|}Wdn1s,wYt|d dt|d dd |_ t|d d dS) Nc@s eZdZdejfdejfgZdS)zDTestNewBufferProtocol.test_ctypes_struct_via_memoryview..foorArN)rNrOrPrrc_uint32_fields_r:r:r:r;ry.sryr rrBTrrrrArr) r Structurerrrrr$r[r rA)rCryrrUr:r:r;!test_ctypes_struct_via_memoryview,s  z7TestNewBufferProtocol.test_ctypes_struct_via_memoryviewrrr:cCs^t|t|}tjtd|dd t|Wdn1s#wYt|dS)a If a user extends a NumPy array before 1.20 and then runs it on NumPy 1.20+. A C-subclassed array might in theory modify the new buffer-info field. This checks that an error is raised if this happens (for buffer export), an error is written on delete. This is a sanity check to help users transition to safe code, it may be deleted at any point. z.*z appears to be C subclassedrN)rGcorrupt_or_fix_bufferinforrr5rr)rCrrr:r:r;-test_error_if_stored_buffer_info_is_corrupted;s   zCTestNewBufferProtocol.test_error_if_stored_buffer_info_is_corruptedN).rNrOrPr*rrIrrrrrrrrrrrrrrr+r$rrr&rrrrrvalgrind_errorrrrrHr0rrrr-rrrrrrr:r:r:r;rsPF   *         $rc@rT) TestArrayAttributeDeletioncCsbtd}gd}t}|td|D] }ttt||qWddS1s*wYdS)Nr)r4rr!rrrr(zAssigning the 'data' attribute)r$rrrBrrrIdelattr)rCrAattrrErr:r:r;,test_multiarray_writable_attributes_deletionQs  "zGTestArrayAttributeDeletion.test_multiarray_writable_attributes_deletioncCs.td}gd}|D] }ttt||q dS)Nr) rrHr.r6rr|rrr1rrr\)r$rrrIrrCrArrr:r:r;0test_multiarray_not_writable_attributes_deletionZs zKTestArrayAttributeDeletion.test_multiarray_not_writable_attributes_deletioncC0tdj}gd}|D] }ttt||q dS)Nr)rrrrIr$rrHrrIrrr:r:r;1test_multiarray_flags_writable_attribute_deletionbs zLTestArrayAttributeDeletion.test_multiarray_flags_writable_attribute_deletioncCr)Nr) rr/r0rrrrrrrrrrr:r:r;5test_multiarray_flags_not_writable_attribute_deletionhs zPTestArrayAttributeDeletion.test_multiarray_flags_not_writable_attribute_deletionN)rNrOrPrrrrr:r:r:r;rOs   rc@seZdZGdddZedZejdeidfegidgfeegiddgfeddidfeddiefeddidggfedd ie fed didfed d ie fed d iefg d d Z dS)TestArrayInterfacec@s(eZdZddZddZeddZdS)zTestArrayInterface.FoocCs||_ddi|_dSNtypestrr)riface)rCrr:r:r;rWsszTestArrayInterface.Foo.__init__cCrrT)rqrrBr:r:r; __float__wrz TestArrayInterface.Foo.__float__cCs|jSrT)r rBr:r:r;r1zsz*TestArrayInterface.Foo.__array_interface__N)rNrOrPrWr propertyr1r:r:r:r;Foors r rzval, iface, expectedr4r:NrrrrcCsddi|j_|jj|trttd}t|t r$t |tj |nt |}t t |||jdks8J~trJttd}t ||dSdSr ) rr updaterrrir$rr{rrrr )rCrr rApre_cntrpost_cntr:r:r;test_scalar_interfaces   z(TestArrayInterface.test_scalar_interface) rNrOrPr rrrrrr&r r:r:r:r;rqs          rcCs$Gddd}tt|ddS)Nc@seZdZedZejZdS)z*test_interface_no_shape..ArrayLiker N)rNrOrPr$rr1r:r:r:r; ArrayLikes  r r )r r$r)r r:r:r;test_interface_no_shapesr cCs`tddgddgddgdd}tjd|d }t|jd }t|jd }t|j|jdS) Nrr`r3rrrrr?rdescrr )r$rrr1r r.)my_dtyperAdescr_t typestr_tr:r:r;test_array_interface_itemsizesr cstgd}t|jdd<Gfddd}t|dd<Gfdd d }t|}t|}|dd d}t||t||dS) Nr"r:r4ceZdZZdS)z5test_array_interface_empty_shape..DummyArray1NrNrOrPr1r:) interface1r:r; DummyArray1r rr!cr )z5test_array_interface_empty_shape..DummyArray2Nr r:) interface2r:r; DummyArray2r r r )r$rrlr1rhr[rr )rUr r arr1arr2arr3r:)r r r; test_array_interface_empty_shapes    r csltjgddd}t|jt|d<dd<dd<Gfd d d }t|}t||d ddS) Nr"rrr!rr4rr9cr )z/test_array_interface_offset..DummyArrayNr r: interfacer:r; DummyArrayr r r )r$rrlr1rr[r )rUr r r:r r;test_array_interface_offsets   r csrtjgddd}t|jdd<Gfddd}ttt|WddS1s2wYdS)Nr"rru✓r cr )z8test_array_interface_unicode_typestr..DummyArrayNr r:r r:r;r r r )r$rrlr1rr5rr[)rUr r:r r;$test_array_interface_unicode_typestrs  "r cCsHtdj}z |d=|dd=WdStyYdSty#tw)Nrr r)r$rr(rrr )rr:r:r;test_flat_element_deletions   r! cCs(tjdddgd}tt|djddS)Nr)rr)r rrrr)r$r'rr& __delitem__rr:r:r;test_scalar_element_deletionrr# c@rS)TestMemEventHookcCs&ttd}~ttdS)Nrv)rG!test_pydatamem_seteventhook_startr$r'rtest_pydatamem_seteventhook_endrr:r:r;test_mem_seteventhooks   z&TestMemEventHook.test_mem_seteventhookN)rNrOrPr' r:r:r:r;r$ rYr$ c@rS) TestMapItercCstddt}gdgdf}gd}t|||t|gdgdgdgtd t}tgd f}gd }t|||t|gd dS) NrEr=)r r rr)rrrr)rrrr)rrrkg3@)gZ@rr7r9)rBrgD@g&@r)r rr)rrfffffY@)r) gI@r7rrr) r$r@rrgrqrGtest_inplace_incrementr r)rCrArrdrr:r:r; test_mapiters zTestMapIter.test_mapiterN)rNrOrPr+ r:r:r:r;r( rYr( c@rn) TestAsCArraycCs.tjdtjd}t|d}t|d|dS)Nr#rr)r$r@rZrGtest_as_c_arrayr rCrfrom_cr:r:r; test_1darrays zTestAsCArray.test_1darraycCs8tjdtjddd}t|dd}t|d|dS)Nr#rrrrr)rrr$r@rZrrGr- r r. r:r:r; test_2darrayszTestAsCArray.test_2darraycCs<tjdtjdddd}t|ddd}t|d|dS)Nr#rrrrr r"r1 r. r:r:r; test_3darrayszTestAsCArray.test_3darrayN)rNrOrPr0 r2 r3 r:r:r:r;r, s r, c@rn)TestConversioncCstjdD]T}tdtjd|dkd|ftdtjd|dk d|ftjdD]-}ttjd|dtjd|dkd||fttjd|dtjd|dk d||fq+qdD]u}tdtjd|dkd|ftdtjd|dk d|ftdtjd|dkd|fd D]B}ttjd|dtjd|dkd||fttjd|dtjd|dk d||fttjd|dtjd|dkd||fqq\d tjd D]{}tdtjd|dkd|ftdtjd|dk d|ftdtjd|dkd|fd tjd D]C}ttjd|dtjd|dkd||fttjd|dtjd|dk d||fttjd|dtjd|dkd||fqqdS) Nrr rrztype %s failedztype %s and %s failedBHILQPr"bhilqpbhlqpr)r$rrr)rCrrr:r:r;&test_array_scalar_relational_operation&sT            z5TestConversion.test_array_scalar_relational_operationcCstttdgdtttdgdtttdggdttttddgGddd}tttt|tttt|gtdg}||d<zt}Wn tybt }Ynwt|t|d|d<dS) NFTrr rc@rS)z:TestConversion.test_to_bool_scalar..NotConvertiblecSr\rTrXrBr:r:r;__bool__VrzCTestConversion.test_to_bool_scalar..NotConvertible.__bool__N)rNrOrPr9 r:r:r:r;NotConvertibleUrYr: r) r rr$rrr&rYRecursionError NameErrorr)rCr: self_containingErrorr:r:r;test_to_bool_scalarOs     z"TestConversion.test_to_bool_scalarcCs"tddf}|D]}t|tddt|tdgdt|tdggdtt|tddgtd|tdtd |td td |td Gd dd}td|t|td|t|gGddd}tt|t|tt|t|gqdS)NcS|SrT)__int__rr:r:r;rNgrz3TestConversion.test_to_int_scalar..rr rrr4rF5r6c@rS)z3TestConversion.test_to_int_scalar..HasTrunccSrrdr:rBr:r:r; __trunc__trz=TestConversion.test_to_int_scalar..HasTrunc.__trunc__N)rNrOrPrE r:r:r:r;HasTruncsrYrF rc@rS)z9TestConversion.test_to_int_scalar..NotConvertiblecSr\rTrXrBr:r:r;rA zrzATestConversion.test_to_int_scalar..NotConvertible.__int__N)rNrOrPrA r:r:r:r;r: yrYr: ) rr r$rrrrrrY)rC int_funcsint_funcrF r: r:r:r;test_to_int_scalares(  z!TestConversion.test_to_int_scalarN)rNrOrPr8 r? rI r:r:r:r;r4 %s) r4 c@r) TestWherec Csttjtjtjtjtjtjtjg}|D]d}tj dtd}t t ||d|d|dt t ||d|d|dt t d|d|d|dt t d|d|d|dt | |}t|}| |}d|d<|d|d<t t ||||t t ||||t t |||d|t t ||d||t t |ddd|ddd|ddd|dddt t |ddd|ddd|ddd|dddt t |ddd |ddd |ddd |ddd t t |ddd |ddd |ddd |ddd t t |ddd |ddd |ddd |ddd t t |ddd |ddd |ddd |ddd t t |ddd |ddd |ddd |ddd qdS) N5rrr TFrrrrr)rr$rrrrZr&rdr\rr r ones_likergr)rCdtsrrrrrr:r:r;rs4  "     <<<<<<>zTestWhere.test_basiccCsttdddtdtjgtddd}tjgtjddd}tt|d|tgddtgd}td}tjdd|d ||d d ||d ||d ||d|ddgtd}tjgdtd}|dd}|t||t|<tt|||||dd}|t||t|<tt||||tt||||tjddgtj d}td}t td||j tj td}t td||j tj td}t td||j tj td}t td||j tjdS)NTrrr)gq= ףpg{GzĿgHzGgףp= ӿg{Gzgffffffrgx&1?g/$?g ףp= ǿgx&1?gh|?5?g/$?gףp= ?g|?5^?gh|?5?gʡE?gZd;O?g= ףp=g^I +?NaN5z0lWzXqcsQNFdkp36r5)rrr rr r rrr r rr r rr r rr rrrrkInfinityz -InfinitygP.5_) r r$rrrrrrqr%r$r r)rCr9rrrLrrr:r:r; test_exotics<"   zTestWhere.test_exoticcCsddg}td}td}tt|ddtjf||}t|d|dt|d|d|j}|j}t|||}t|dddf|dddft|dddf|dddfdS)NTF)rrrr )r$r'rrrrr r)rCrrArrr:r:r; test_ndims  ""&zTestWhere.test_ndimcCstgd}td}tjgdtjd}tjgdtjd}tt|||||tj}|tj}tt|||||t }d||dk<tt|||||dk}d||dk<d||<tt||||dS) N FTFFFFTFFFTFr rrrrkrr$r8rrrr rrrrkrr] rr^ r8rrri riau) r$rrrr rrgr$rr)rCrrArrtmpmaskr:r:r;test_dtype_mixs&        zTestWhere.test_dtype_mixcCstgd}tjgdtjd}tjddd}tjgdtjd}tt|||||d}tt|||||d}tt|||||d}tt||||dS) Nr[ r_ rr rtr\ r?rs)r$rrrr rrg)rCrrrArr:r:r; test_foreigns     zTestWhere.test_foreigncCsHddg}td}td}tttj|||tttj|d||dS)NTrrr)r$rrr&r)rCrrArr:r:r; test_errors   zTestWhere.test_errorcCs|td}td}ttd||dttd||dtd}td}ttd||dttd||ddS)Nr1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTFabcdxxxxxxxx)r$rr rrr:r:r;r s    zTestWhere.test_stringcCsBtd}tt|dk}t|ttjgggtjddS)NrgX@r)r$r'vstackrr atleast_2drr)rCribadr:r:r;test_empty_result s zTestWhere.test_empty_resultcCsLgd}tjdtjj|}tdD]}|}|}t||qdS)N)r?rrrrFrrr?)r$rrRrrwnonzeror )rCr4rr benchmarkrr:r:r; test_largedim s    zTestWhere.test_largedimN) rNrOrPrrY rZ ra rb rc rrj rm r:r:r:r;rJ s) rJ c@s`eZdZddZddZddZddZd d Zd d Zd dZ ddZ e ddZ ddZ dS) TestSizeOfcCs tg}tt|dkdSr)r$rrr getsizeofrr:r:r;test_empty_array+ s zTestSizeOf.test_empty_arraycCs<|dj}dD]}tj||d}tt|||kqdS)Nr)r?rrir)r.r$r@rrro )rCr elem_sizerrr:r:r; check_array/ s zTestSizeOf.check_arraycCrrT)rr r$rrBr:r:r;test_array_int326 rEzTestSizeOf.test_array_int32cCrrT)rr r$rrBr:r:r;test_array_int649 rEzTestSizeOf.test_array_int64cCrrT)rr r$r$rBr:r:r;test_array_float32< rEzTestSizeOf.test_array_float32cCrrT)rr r$rrBr:r:r;test_array_float64? rEzTestSizeOf.test_array_float64cCs*td}tt|dt|kdS)Nr.)r$rrrro r2r:r:r;rB s  zTestSizeOf.test_viewc Cs4td}tt|t|dddkdS)Nrr )r$rrrro rr$r2r:r:r;r>F s *zTestSizeOf.test_reshapecCsPtd}t|}|dt|t|k|dt|t|kdS)Nrr)r$rrro rr)rCroldr:r:r;rJ s    zTestSizeOf.test_resizecCstd}tt|jddS)NrrA)r$rrr __sizeof__r2r:r:r;rc S s zTestSizeOf.test_errorN)rNrOrPrp rr rs rt ru rv rr>rrrc r:r:r:r;rn ) s  rn c@rY) TestHashingcCstd}ttt|dSrd)r$rrrrrr:r:r;test_arrays_not_hashableZ s z$TestHashing.test_arrays_not_hashablecCs"tg}tt|tjj dSrT)r$rrr{ collectionsr1Hashablerr:r:r;test_collections_hashable^ rz%TestHashing.test_collections_hashableN)rNrOrPr{ r~ r:r:r:r;rz X s rz c@seZdZeZejejejejej ej ej ej ej ejejejej ejejejejejejgZGdddejZGdddejZGdddZddZd d Zd d Zd dZ dS)TestArrayPriorityc@eZdZdZddZdS)zTestArrayPriority.FoorcOtj|i||SrTr$rrZrZrrr:r:r;r[p r_zTestArrayPriority.Foo.__new__NrNrOrPrr[r:r:r:r;r m  r c@r )zTestArrayPriority.Barg@Y@cOr rTr r r:r:r;r[v r_zTestArrayPriority.Bar.__new__Nr r:r:r:r;Bars r r c@seZdZdZddZeZZeZZeZ Z eZ Z eZ ZeZZeZZeZZeZZeZZeZZeZZeZZeZeZ eZ!eZ"eZ#eZ$dS)zTestArrayPriority.Otherg@@cCr@ rT)rrzr:r:r;_all| rzTestArrayPriority.Other._allN)%rNrOrPrr r__radd__r__rsub__r rrrr__rdiv____mod____rmod__ __truediv__ __rtruediv__ __floordiv__ __rfloordiv____and____rand____xor____rxor____or____ror__ __lshift__ __rlshift__ __rshift__ __rrshift__rrrrr|rr:r:r:r;Othery s,r cCsdtddg}|ddg}|jD]}t|}tt||||j|tt||||j|qdSNr r)r$rr binary_opsrPrr{rCrArrrr:r:r;test_ndarray_subclass  z'TestArrayPriority.test_ndarray_subclasscCs^tddg}|}|jD]}t|}tt||||j|tt||||j|qdSr )r$rr r rPrr{r r:r:r;test_ndarray_other  z$TestArrayPriority.test_ndarray_othercCsd|ddg}|ddg}|jD]}t|}tt||||j|tt||||j|qdSr )r r r rPrr{r r:r:r;test_subclass_subclass r z(TestArrayPriority.test_subclass_subclasscCs^|ddg}|}|jD]}t|}tt||||j|tt||||j|qdSr )r r r rPrr{r r:r:r;test_subclass_other r z%TestArrayPriority.test_subclass_otherN)!rNrOrPr,rrrrr-rrrand_or_rrrgtgeltleneeqr r$r2r r r r r r r r:r:r:r;r c s r c@rT) TestBytestringArrayNonzerocCsttjdgtd dSNrr)rr$rrrBr:r:r;"test_empty_bstring_array_is_falsey rz=TestBytestringArrayNonzero.test_empty_bstring_array_is_falseycC&tjdgtd}d|d<t| dS)Nrr rr$rrrrr:r:r;'test_whitespace_bstring_array_is_falsey zBTestBytestringArrayNonzero.test_whitespace_bstring_array_is_falseycCr )Nrrrr rr:r:r;%test_all_null_bstring_array_is_falsey r z@TestBytestringArrayNonzero.test_all_null_bstring_array_is_falseycCs$tjdgtd}d|d<t|dS)Nrr rr rr:r:r;(test_null_inside_bstring_array_is_truthy s zCTestBytestringArrayNonzero.test_null_inside_bstring_array_is_truthyN)rNrOrPr r r r r:r:r:r;r  r c@(eZdZdZddZddZddZdS) TestUnicodeEncodingz_ Tests for encoding related bugs, such as UCS2 vs UCS4, round-tripping issues, etc cCsXtjddd}tdtjdD]}t|}||d<|d|ks!J||ks)JqdS)z; Tests that GETITEM, SETITEM, and PyArray_Scalar roundtrip r:U1rr N)r$r'rwr maxunicoderhr)rCrUrrAr:r:r;test_round_trip sz#TestUnicodeEncoding.test_round_tripcCs2tddg}td|dd<t|ddgdSNaabbcc)r$rrr rCrr:r:r;test_assign_scalar sz&TestUnicodeEncoding.test_assign_scalarcCs0tddg}|tdt|ddgdSr )r$rr3rr r r:r:r;test_fill_scalar sz$TestUnicodeEncoding.test_fill_scalarN)rNrOrPr*r r r r:r:r:r;r s  r c@rT) TestUnicodeArrayNonzerocCsttjdgtjd dSr )rr$rrrBr:r:r;"test_empty_ustring_array_is_falsey rz:TestUnicodeArrayNonzero.test_empty_ustring_array_is_falseycC(tjdgtjd}d|d<t| dS)Neggsrr rr$rrrrr:r:r;'test_whitespace_ustring_array_is_falsey z?TestUnicodeArrayNonzero.test_whitespace_ustring_array_is_falseycCr )Nr rr rr rr:r:r;%test_all_null_ustring_array_is_falsey r z=TestUnicodeArrayNonzero.test_all_null_ustring_array_is_falseycCs&tjdgtjd}d|d<t|dS)Nr rr rr rr:r:r;(test_null_inside_ustring_array_is_truthy s z@TestUnicodeArrayNonzero.test_null_inside_ustring_array_is_truthyN)rNrOrPr r r r r:r:r:r;r r r c@rn) TestFormatcCs4ttj}td|dtd|dddS)Nz{:0.3g}z3.14r:)r$rpir rcrr:r:r;test_0d s zTestFormat.test_0dcCs&ttjg}td|t|dS)Nz{})r$rr r rcrrr:r:r;test_1d_no_format!szTestFormat.test_1d_no_formatcCs ttjg}ttdj|dS)Nz{:30})r$rr rrrcrr:r:r;test_1d_format!szTestFormat.test_1d_formatN)rNrOrPr r r r:r:r:r;r s r )rc@seZdZddZddZddZejjde gde d d gd d gge j d dde j de e ddgddgddgddde j dgede ge dee gdggddddZddZdS) TestCTypescCs:tgdgdg}tt|jjtt|jjddS)Nr"r2r)r$rr r_ctypesrr4)rCtest_arrr:r:r;test_ctypes_is_available!sz#TestCTypes.test_ctypes_is_availablecCsdddlm}d|_z$tgdgdg}tt|jj|jt t |jj dWt|_dSt|_w)Nr)rr"r2r) numpy.corerrr$rrr{r _missing_ctypesr rr4)rCrr r:r:r;test_ctypes_is_not_available!s  z'TestCTypes.test_ctypes_is_not_availablecCs d|j_|S)NF)rHrIrr:r:r;_make_readonly !szTestCTypes._make_readonlyrUr"rrrfourr$rrrrsrArrrrrNr)1d2d structured overlappingr%r/zempty-2drr@cCsX|}t|}|jtj}~tt|dud~tr"tt|duddSNz,ctypes pointer did not hold onto a referencez3unknowable whether ctypes pointer holds a reference) r$rCrDrdata_asc_void_prrrrCrUarr_ref ctypes_ptrr:r:r;#test_ctypes_data_as_holds_reference$!s z.TestCTypes.test_ctypes_data_as_holds_referencecCsZtdg}t|}|jj}~tt|dud~t r#tt|duddSr ) r$rr$rCrDr_as_parameter_rrrr r:r:r;(test_ctypes_as_parameter_holds_referenceU!s z3TestCTypes.test_ctypes_as_parameter_holds_reference)rNrOrPr r r rrrr$rr'rrlr%r/r r r:r:r:r;r !s2     r c@szeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ e jjddddZddZdS)TestWritebackIfCopycCs:td}tjddd}tj|d|d}t|tddSNrFrrrr)r$rer/rr rwrCr"rrCr:r:r;test_argmax_with_outj!s z(TestWritebackIfCopy.test_argmax_with_outcCs<td }tjddd}tj|d|d}t|tddSr )r$rer/rr rwr r:r:r;test_argmin_with_outp!s z(TestWritebackIfCopy.test_argmin_with_outcCsftdddj}t||dkddgt|tddgddgddggtttj||dkgdS) Nrrr,r"rr r) r$r@rrplacer rrr&rr:r:r;test_insert_noncontiguousv!s"z-TestWritebackIfCopy.test_insert_noncontiguouscCsPtdddj}t|ddgddgt|tddgddgddggdS) Nrrrrr r"rrF)r$r@rrrrr rrr:r:r;test_put_noncontiguous~!s&z*TestWritebackIfCopy.test_put_noncontiguouscCsPtdddj}t||dk|dt|tddgddgddggdS) Nrrrrrr rr)r$r@rrrr rrr:r:r;test_putmask_noncontiguous!s&z.TestWritebackIfCopy.test_putmask_noncontiguouscCsJtjddd}tjddd}tj|ddg|ddt|tddgdS)Nrrrrrraiser)r$r@r/rr rrr:r:r;test_take_mode_raise!sz(TestWritebackIfCopy.test_take_mode_raisecCsjtgdgdgdg}tjddd}ddg}tj|||dd t|tgd gd gd gdS) NrErrrrr?r r)r?r r?)r r?r )r$rr/rr )rCrArchoicesr:r:r;test_choose_mod_raise!s z)TestWritebackIfCopy.test_choose_mod_raisecCs(tddd}|jj}|}~dS)Nrr)r$r@rrr(rrHr:r:r;test_flatiter__array__!sz*TestWritebackIfCopy.test_flatiter__array__cCsLtjdtddd}tj|||d}t|tgdgdgdgdS)Nrrrr)rrr)r6B)EZo)r$r@rqrrGr rrr:r:r; test_dot_out!s&z TestWritebackIfCopy.test_dot_outcCsddlm}m}tdddj}||}t|jj t|j |ud|d<||t |dt|j j dkt |j dd|d<t |ddS)Nr)npy_create_writebackifcopy npy_resolverrr.r)rr r r$r@rrrrHrr|r rr!)rCr r rUarr_wbr:r:r;test_view_assign!s   z$TestWritebackIfCopy.test_view_assignz9increments self in dealloc; ignore since deprecated path.rtcCsjt(}|ttddd}|j}t|t |j dks#JWddS1s.wYdS)Nrrr ) rrrr$r@rrrGnpy_abuse_writebackifcopyrlog)rCrErUr~r:r:r;test_dealloc_warning!s  "z(TestWritebackIfCopy.test_dealloc_warningcCsddlm}m}tdddj}|}trt |}||}t |j j t |j|ud|d<||t||t |jjdkt|jdtrSt|t |d|d<t||dS)Nr)r npy_discardrrr.r)rr r r$r@rrr$rrrirrHrr|r rr!)rCr r rUrarr_cntr r:r:r;test_view_discard_refcount!s"    z.TestWritebackIfCopy.test_view_discard_refcountN)rNrOrPr r r r r r r r r r rrrr r r:r:r:r;r h!s    r c@r) TestArangecCsttdtjdtjdS)Nz size exceededr)r r&r$r@r<rBr:r:r; test_infinite!s zTestArange.test_infinitecCsttdtjddtjdS)Nzcannot compute lengthrr )r r&r$r@rLrBr:r:r; test_nan_step!s zTestArange.test_nan_stepcCsLtttjdddtttjdddtttjdddtttjddddS)Nrr?rr8)rZeroDivisionErrorr$r@rBr:r:r;test_zero_step!szTestArange.test_zero_stepcCs@tttjtttjddtttjddtttjdddS)Nr)steprrr)start)rrr$r@rBr:r:r;test_require_range!s zTestArange.test_require_rangecCsftjdd}tjddd}tjddd}t|dksJt|dks$Jt|dks,Jt||dS)Nr)stopr)r r rr)r$r@rr )rC keyword_stopkeyword_zerotostopkeyword_start_stopr:r:r;test_start_stop_kwarg!s z TestArange.test_start_stop_kwargN)rNrOrPr r r r r r:r:r:r;r !s  r c@r ) TestArrayFinalizez Tests __array_finalize__ cCs6Gdddtj}td|}t|j|judS)Nc@rS)z7TestArrayFinalize.test_receives_base..SavesBasecSs |j|_dSrT)r| saved_baserLr:r:r;r\"rDzJTestArrayFinalize.test_receives_base..SavesBase.__array_finalize__NrNrOrPr\r:r:r:r; SavesBase"rYr r )r$r2rrZrr r|)rCr rAr:r:r;test_receives_base"sz$TestArrayFinalize.test_receives_basecCsVGdddtj}tjtddtd|WddS1s$wYdS)Nc@seZdZeddZdS)z>TestArrayFinalize.test_bad_finalize..BadAttributeArraycSr)Nboohoo!r]rBr:r:r;r\ "zQTestArrayFinalize.test_bad_finalize..BadAttributeArray.__array_finalize__N)rNrOrPr r\r:r:r:r;BadAttributeArray "sr r rr?)r$r2rr5rr@rZ)rCr r:r:r;test_bad_finalize "s"z#TestArrayFinalize.test_bad_finalizecCsGdddtj}Gddd}t|}t|d}tt }||Wdn1s1wY|jj d}~t t ||t t |dud~t t |dud~t t |dud dS) Nc@rS)zBTestArrayFinalize.test_lifetime_on_error..RaisesInFinalizecSst|rTr rLr:r:r;r\"r zUTestArrayFinalize.test_lifetime_on_error..RaisesInFinalize.__array_finalize__Nr r:r:r:r;RaisesInFinalize"rYr c@rL)z7TestArrayFinalize.test_lifetime_on_error..DummyNrMr:r:r:r;Dummy"rr! r:rz!object should not already be deadz*obj_arr should not hold the last referencezno references should remain) r$r2rrCrDrrrZrrrr{r)rCr r! robj_refr obj_subarrayr:r:r;test_lifetime_on_error"s$    z(TestArrayFinalize.test_lifetime_on_errorN)rNrOrPr*r r r$ r:r:r:r;r !s  r cCstd}tt|jdddS)NrFâr#)r$r@rr&rrr:r:r;2test_orderconverter_with_nonASCII_unicode_ordering7"s r& cCsGddd}Gddd|}Gddd|}tjddgd d }||fD]!}|}t||kd t||kd t||kd t||kd q$dS) Nc@rY)z*test_equal_override..MyAlwaysEqualcSr)Nr r:rzr:r:r;rB"rz1test_equal_override..MyAlwaysEqual.__eq__cSr)Nr r:rzr:r:r;rE"rz1test_equal_override..MyAlwaysEqual.__ne__N)rNrOrPrrr:r:r:r; MyAlwaysEqualA"rr' c@seZdZdZdS)z-test_equal_override..MyAlwaysEqualOldrN)rNrOrPrr:r:r:r;MyAlwaysEqualOldH"r r( c@seZdZdZdS)z-test_equal_override..MyAlwaysEqualNewNrr:r:r:r;MyAlwaysEqualNewK"r r) r+rrrr r r)r' r( r) rmy_always_equal_clsmy_always_equalr:r:r;test_equal_override="s r, funnpfunrr rcCs,|t||}||}||}t||dSrT)rr)r- r. rr rrgotrAr:r:r;test_npymath_complexW"s r0 c Csddlm}m}m}m}m}|tj|tj|tj |tj |tj i}dtj tj tj f}tjtjtjf}tjdd.|D] \}} t||D]\} } | | } || } | | }t| |qFqsP    H  $9iuh`C6ZWuf 6 N=B7\ Sc| t<Z)  N&O kC"-    ]&/ Q \q&8  $ G