ó 2ÄČ[c@`sddlmZmZmZddlZddlZddlZddlZddl m Z m Z ddl m Z ddlmZddlmZddlmZmZmZmZmZejddkrÖeZnd Zd ZeegeƒZdZd Z d „Z!d „Z"d„Z#d„Z$d„Z%ej&j'd„ƒZ(d„Z)d„Z*d„Z+e,e-d„Z.d„Z/ej&j'd„ƒZ0ej&j'd„ƒZ1d„Z2d„Z3d„Z4d„Z5dd„Z7d„Z8d„Z9d „Z:d!„Z;d"„Z<d#e=fd$„ƒYZ>dS(%i(tdivisiontabsolute_importtprint_functionN(tsolve_diophantinetinternal_overlap(t _umath_tests(t as_strided(tlong(tassert_t assert_raisest assert_equaltassert_array_equaltassert_allcloseiii i’’’’cC`sŒ|dkrtdgSg}xhdD]`}xWdD]O}td|||d}||||}|jt||||ƒƒq1Wq$W|S(sGReturns slices of length nelems, from start onwards, in direction sign.iiii’’’’(ii(i’’’’i(tsizetappendtslice(tnelemstreststeptsigntstarttstop((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyt_indices_for_nelemss    %cC`sZg}xMdD]E}t|ƒ}|jg|D]}|D]}||f^q6q,ƒq W|S(s$Returns (src, dst) pairs of indices.iii(iii(Rtextend(RRtindtatb((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyt_indices_for_axis,s   7cC`sotƒ}gg}xVt|ƒD]H}g}x3|D]+}x"|D]}|j|g|ƒq?Wq2W|}qW|S(sKReturns ((axis0_src, axis0_dst), (axis1_src, axis1_dst), ... ) index pairs.(RtrangeR(tndimsRRtitnewrestelemtothers((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyt_indices9s     cC`sstjtjtƒƒjtƒ}|jƒ}||||<||||zsc3`s4|]*}tˆjdˆddtjƒƒVqdS(iiR2N(R3R4R#R5(R6R7(tU_maxR9(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys |sics`s|]\}}||VqdS(N((R6Rtub((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys si’’’’tsimplifycs`s/|]%\}}td||d|ƒVqdS(iiN(txrange(R6RR;((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys si †c3`s!|]}t|ƒˆkVqdS(N(tsum(R6tw(R(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys ™scs`s|]\}}||VqdS(N((R6Rtx((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys ”scs`s1|]'\}}d|ko&|knVqdS(iN((R6R@R;((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys ¢s(R#trandomt RandomStatetiinfoR5tmaxRtminR4R/R>tzipRtNoneRt OverflowErrortlentanyt itertoolsR%R)( tmax_inttndimtfeasible_counttinfeasible_countt min_counttAtUtb_ubtXt X_simplifiedtrangesR tr((R8R:RR9s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyttest_diophantine_fuzzesL#,  #   *)#cC`s˜tjtjƒj}tjtjƒj}||kr”|d|ddf}|d|ddf}d|dd}tt|||ƒdƒndS(Nii i(ii(R#RCR5RDtint64R R(tmax_intpt max_int64RQRRR((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyttest_diophantine_overflow¦s c C`s'tj||dtƒ}ttj||ƒtj||dtƒƒ|jdƒ|jdƒ|jdƒ|jƒ}d}||krddjd|jdd|jddfd |j fd |j fd |j fd |j fd |j fd|j fgƒ}nt||d|ƒdS(Ntmax_workiits s sbase_a - base_b = %rtdatas shape_a = %rs shape_b = %rsstrides_a = %rsstrides_b = %rs size_a = %rs size_b = %rterr_msg( R#tmay_share_memorytMAY_SHARE_EXACTR tMAY_SHARE_BOUNDStfillRJtjoint__array_interface__R&tstridesR (RRtgottexactR`((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pytcheck_may_share_memory_exactµs$      $     c C`sœtjddddgdtjƒtjddddgdtjƒdd…dd…ddd…dd…fg}g}x^|D]V}xMtjtdƒtdddƒgfdŒD]}||}|j|ƒqµWq€Wx€|D]x}ttj |dd…d dd…f|dd…d dd…fƒƒttj |dd…d dd…f|dd…d dd…fd dƒƒt |dd…d dd…f|dd…d dd…fƒt |dd…ddd …f|dd…d dd …fƒy4|j ƒ}|j j rwįn|jtjƒ}Wntk rEqįnXt |j ƒdd!|jddddƒdd…ddd …fƒt |dd…ddd …f|jddddƒƒt |dd…ddd …f|jddddƒdd…d dd …fƒt |j ƒdd !|jddddƒdd…ddd …fƒqįWtjd gdtjƒ}t ||ƒt ||jƒƒdS(Ni iiiR2ii’’’’iiiR]iiii i.(R#tzerostint8RKR%RRGRRRaRjtraveltflagstowndatatviewtint16t ValueErrorR'R((txs0txsR@tsstxp((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyttest_may_share_memory_manualĻs<!R 5  HN??   226 c#`stjjdƒ‰|r*|r*tƒ‚n‡fd†‰‡fd†‰||fVxZtdddƒD]F}|||| fV|d|d…f|dd| …ffVqfWt|jƒ}d|d1sc3`s$|]\}}ˆ||ƒVqdS(N((R6tpts(Ry(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys 4sc3`sY|]O\}}}ˆjddƒdkrMˆjdtd|d|ƒƒndVqdS(iiiiN(R4RD(R6R{R|tpa(R9(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys Esc3`s*|] \}}}ˆ|||ƒVqdS(N((R6R{R|R}(Rz(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys Hsc3`sQ|]G}ˆjdddtjƒdkrEˆjdddtjƒndVqdS(iiR2ii N(R4R#R5(R6R7(R9(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys Msc3`s$|]\}}ˆ||ƒVqdS(N((R6R{R|(Ry(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys Rs(R#RARBRrRtlistRgRR&tTrueR/RMRFR$tshuffleR t transpose(R@t same_stepst equal_sizeR7RgRvtstepsts1tt1tt2Rtsteps2ts2R((RyRzR9s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pytiter_random_view_pairss^   0       (    " +c C`s,tjddddgdtjƒ}d}d}t||ƒ}xęt||ƒ|kr't|ƒ\}}tj||ƒ} tj||ƒ} tj||d|||ƒƒ} tj||dtƒ} | | krāt| | ƒn| | kržt| | ƒn| rB| r|d7}q$|d7}qBqBWdS( Nii"iGiaR2iR]i( R#RkRqRŠREtnextRaRbR ( t get_max_workR‚RPR@tfeasiblet infeasiblet pair_iterRRtbounds_overlaptmay_share_answert easy_answert exact_answer((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyt check_may_share_memory_easy_fuzzZs$$!   cC`s tdd„dtddƒdS(NRŒcS`sdS(Ni((RR((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pytsR‚RPiŠ(R”R(((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyttest_may_share_memory_easy_fuzzzscC`s tdd„dtddƒdS(NRŒcS`st|j|jƒdS(Ni(RDR (RR((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyR•sR‚RPiŠ(R”tFalse(((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyt!test_may_share_memory_harder_fuzz„s cC`s/tjdddgdtjƒ}ttj||ƒtƒttj||jƒƒtƒ|dd…ddd…ddd…f}|dd…ddd…ddd…f}ttj||ƒtƒttj||ddƒtƒt tj tj||ddƒt tj tj||dt dƒƒdS( NiiiR2iiR]i( R#RkRlR t shares_memoryRR(R—RGR t TooHardErrorR(R@RR((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyttest_shares_memory_api’s!++cC`sNtjdgƒ}tttj||ddƒtttj||ddƒdS(NiR]i idlDG؆dŖrÓāČYā|gÄO¬s&YR5IlDG؆dŖrÓāČYā|gÄO¬s&YR5I(R#RkR RHRaR™(R@((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyt"test_may_share_memory_bad_max_work scC`sBdd„}|ddd fdtƒ|d d dfdtƒdS(NcS`s t||dddƒ}|dkr3|dk }n|dk rŹttd„t||ƒDƒƒtd„t||ƒDƒƒkƒttd„t||ƒDƒƒƒttd„t||ƒDƒƒƒn|rģt|dk t|ƒƒnt|dkt|ƒƒdS(Nitrequire_ub_nontrivialics`s|]\}}||VqdS(N((R6RR@((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys ®scs`s#|]\}}||dVqdS(iN((R6Rtu((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys ®scs`s1|]'\}}d|ko&|knVqdS(iN((R6R@Rž((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys Æscs`s%|]\}}||dkVqdS(iN((R6R@Rž((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys °s(RRGRR>RFR)RJtrepr(RQRRtexistsRT((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pytcheck§s  B#&iiR ii(iiiii(iiiii(RGRR—(R”((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyt!test_internal_overlap_diophantine¦s c`stjddddgdtjƒ}tjjdƒ‰‡fd†‰d}d }xŖ||krżt‡fd †t|jƒDƒƒ}tj|jƒ}ˆj |ƒt‡fd †t |j |ƒDƒƒ}||j |ƒ}t t|ƒ ƒ|d 7}qTWdS( Nii"iGiaR2iŅc`s‰ˆjd|ddtjƒ}ˆj||ddtjƒ}ˆjdddtjƒdkry||}}|d9}nt|||ƒS(NiiR2ii’’’’(R4R#R5R(RxRRR(R9(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyRyĆs !  iiˆc3`sQ|]G}ˆjdddtjƒdkrEˆjdddtjƒndVqdS(iiR2ii N(R4R#R5(R6R7(R9(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys Ļsc3`s$|]\}}ˆ||ƒVqdS(N((R6R{R|(Ry(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys Ōsi(R#RkRqRARBR/RRMR$R€RFR&RRR(R@tcasesRPR„R†R…R((RyR9s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyttest_internal_overlap_slices¼s$ (cC`sót|ƒ}tƒ}td„|jDƒƒ}xbtj|ŒD]K}td„t|j|ƒDƒƒ}||kr|t }Pq>|j |ƒq>Wt }||krĒt ||dt |j|jfƒƒn|dk rļ||krļt ||ƒn|S(Ncs`s|]}t|ƒVqdS(N(R=(R6Rx((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys ąscs`s|]\}}||VqdS(N((R6R|R?((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys āsR`(RtsetR/R&RKR%R>RFRgRtaddR—R RŸRG(Rtmanual_expectedRhtmRVtvtoffsettexpected((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pytcheck_internal_overlapŪs  "  (cC`sjtjdƒjtjƒ}t|tƒt|jgƒtƒt|dd dd ƒ}t|tƒt|ddddƒ}t|tƒt|ddddƒ}t|tƒt|ddddƒ}t|tƒt|ddddƒ}t|tƒt|ddddƒ}t|tƒt|ddddƒ}t|tƒt|ddddƒ}t|tƒdS(NiRgiiR&iiii÷Ų’’iWi(ii(ii(ii(ii(i(i(i(i(i(i(ii÷Ų’’(iWi(ii÷Ų’’(ii(ii÷Ų’’(ii( R#R$tastypeRlR¬R—R'RR(R@R((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyttest_internal_overlap_manualós&        c `s’tjdƒjtjƒ}d}d}d}tjjdƒ‰x¹t||ƒ|krśˆjdddtjƒ}t ‡fd†t |ƒDƒƒ}t ‡fd†t |ƒDƒƒ}t |d |d |ƒ}t |ƒ}|rķ|d7}qB|d7}qBWdS( NiiidiŅiR2c3`s*|] }ˆjdddtjƒVqdS(iü’’ičR2N(R4R#R5(R6R7(R9(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys &sc3`s*|] }ˆjdddtjƒVqdS(iiR2N(R4R#R5(R6R7(R9(s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pys (sRgR&( R#R$R­RlRARBRER4R5R/RRR¬( R@toverlapt no_overlapRPRMRgR&Rtresult((R9s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyttest_internal_overlap_fuzzs   cC`s/dtfd„ƒY}dtfd„ƒY}xü||gD]ī}tjdƒ}ttj||ddd…ƒ|ddd…ƒƒttj||ddd…ƒ|ddd…ƒ ƒttj||ddd…ƒ|ddd…ƒƒttj||ddd…ƒ|ddd…ƒƒq9WdS( NtMyArraycB`s eZd„Zed„ƒZRS(cS`s ||_dS(N(R_(tselfR_((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyt__init__8scS`s |jjS(N(R_Rf(R“((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyRf;s(t__name__t __module__RµtpropertyRf(((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyR³7s tMyArray2cB`seZd„Zd„ZRS(cS`s ||_dS(N(R_(R“R_((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyRµ@scS`s|jS(N(R_(R“((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyt __array__Cs(R¶R·RµRŗ(((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyR¹?s iiii(tobjectR#R$RRaR™(R³R¹tclsR@((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pyttest_non_ndarray_inputs4s676cC`sLddlm}t|jƒ}d|d    +  D ,(?t __future__RRRtsysRKRtnumpyR#tnumpy.core._multiarray_testsRRt numpy.coreRRĮRt numpy.compatRt numpy.testingRR R R R t version_infoRR=RR R/R&RcRbRRR"R.R1RRRXR\RjRwRR—RŠR”R–R˜R›RœR¢R¤RGR¬R®R²R½RÅRĢR»RĶ(((s@/tmp/pip-build-fiC0ax/numpy/numpy/core/tests/test_mem_overlap.pytsP    (     A   3X        %