B sz)assert_shapes_correct..cSsg|] }|jqSr)shape)rarrrrs)r lenr) input_shapesexpected_shapeinarraysZ outarraysZ outshapesexpectedrrrassert_shapes_correct s rcCs"dd|D}tttf|dS)NcSsg|]}t|qSr)rr)rrrrrrsz4assert_incompatible_shapes_raise..)r ValueErrorr )rrrrr assert_incompatible_shapes_raisesrFc Cstj|td}ttj|}t||}|r>|j}|j}|r^|ddd}|ddd}||}t||\}} t || dS)N)dtype) rrintZmultiplyreducearangereshapeTr r) Zshape0Zshape1Z transposedZflippedZx0nZx1yZb0Zb1rrrassert_same_as_ufunc sr)cCs:td}td}t||\}}t||t||dS)N )rr$r r)xr(bxbyrrr test_same6s    r.cCsvtdddgg}tdgdgdgg}t||\}}tdddgdddgdddgg}|j}t||t||dS)N)rarrayr r&r)r+r(r,r-Zbx0Zby0rrr test_one_off>s" r3c Cs`ddddddddd d g }xB|D]:}|g}t||||g}t|||||g}t||qWdS) Nr)r/)r1)rr/)rr1)r/r)r1r)r/r1)r1r/)r1r1)r)datarrZ input_shapes2Z input_shapes3rrrtest_same_input_shapesHs"    r5cCsddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgd dgdgdd gdgddgdgddgdgdd gd gg }x.|D]&\}}t||t|ddd |qWdS) N)r/)r1)r/r1)r1r1)r1r/)r/r/)r/r)rr)rr/r!)r)r4rrrrr(test_two_compatible_by_ones_input_shapescs              r6cCsddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgdd gd gdd gd gdd gd gdd gd gddgd gdd gd gdd gd gdd gd gdd gd gg}x.|D]&\}}t||t|ddd |qWdS) Nr)r1)r1r1)r1r/)r/)r/r/)r/r1)r)rr)rr/)r/rr!)r)r4rrrrr3test_two_compatible_by_prepending_ones_input_shapes|s.                    r7cCsJddgddgdddgddgg}x&|D]}t|t|dddq$WdS)N)r1))r0r1)r0)r/r1r8)r0r1r1r!)r)r4rrrr)test_incompatible_shapes_raise_valueerrors  r9c"Csddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgd dgdgdd gdgddgdgddgdgdd gd gd dgdgddgdgddgdgddgdgd dgdgddgdgddgdgddgdgd dgdgd dgdgd d gd gd dgdgd d gdgddgdgd dgdgdd gdgdd gd gddgdgd dgdgd d gd gg!}x|D]\}}t|d |d d|d |d ft|d |d t|d |d dd |krTt|d |d ddt|d |d ddqTWdS)N)r/)r1)r/r1)r1r1)r1r/)r/r/)r/r)rr)rr/r)rrr/z Shapes: %s %sTF)r))r4rrrrrtest_same_as_ufuncsR                                 r:cCsvtddtdgtddtdgtddtdgtddtdgtddtdgtdd td gtddtdgtdd tddd gtdd tdddgdddgggtddtdgtddtdgtddtdgtddtdgtd dtdgtddtdgg}x(|D] \}}}t||}t||qNWdS)Nr)r)r/r/)r1r1)r0r0)r/r0r1)r/r1r!)r0r1)r/r0)rr0)r0r/)r0r)rr2ronesr$r%rr)r4 input_arrayrractualrrrtest_broadcast_to_succeedss$$ r>c szddgddgddgddgddgddgddgd dgdd gdd gdd gg }x.|D]&\}t|ttfd dqLWdS)N)rr)r/)r1)r0)r8)r/r0)r0r/)r/r/r!)r!)r!r0cs tS)N)rr)arr target_shaperr z*test_broadcast_to_raises..)rrr r)r4Z orig_shaper)r?r@rtest_broadcast_to_raisess  rCcsttdttddgdtttddtttdtddtttdgddtttdgd dtttdgddgdtdgdtd gdttfd d dS) Nrr/r0)r0)r/r/)r1r8)r/r0 dr1cstS)N)r r)bad_argsrrrArBz&test_broadcast_shape..)rr rr;r rrr)rFrtest_broadcast_shape s   rGcCs"tdg}t|}tdg}t|tdgtddddg}t|dd|jfd}tddg}t||tddddg}t|ddd|jfd}tddddgddddgddddgg}t||td d g}tjd |d }tdd |d<t|dd|jfd}ddddggd}dgdgd}t|j|t||dt||dtjd dd }t|dd|jfd}t|j|jtdgdgd}tjd |d }t|dd|jfd}t|j|jddt dD}tj|t d }t|dd|jfd}t|j|jt|gd|dS)Nr/r0r1r8)r0)rstrides)r1r8r)numZi4)objO)r8)r rIrJZV4)namesZformatscSsg|] }t|qSr)r)rirrrrBsz#test_as_strided..) rr2r ritemsizer emptyr$rranger)ra_viewrZdtZ expected_numZ expected_objrrrrtest_as_stridedsB   (  rUcCstd}t|dd}t|jj t|dd}t|jjd|d<t|t|dd|j_t|dd}t|dd}t|jj dS)Nr*F) writeableTr1.)rr;r r flagsrVrZ full_like)r?viewrrras_strided_writeableHs      rYc@seZdZddZdS)VerySimpleSubClasscOsd|d<tj|||S)NTsubok)rr2rX)clsargskwargsrrr__new__[szVerySimpleSubClass.__new__N)__name__ __module__ __qualname__r_rrrrrZZsrZc@seZdZddZddZdS)SimpleSubClasscOs$d|d<tj|||}d|_|S)NTr[Zsimple)rr2rXinfo)r\r]r^selfrrrr_aszSimpleSubClass.__new__cCst|ddd|_dS)NrdrMz finalized)getattrrd)rerJrrr__array_finalize__gsz!SimpleSubClass.__array_finalize__N)r`rarbr_rgrrrrrc`srccCstddddg}tt|tkt|dd|jfd}tt|tjkt|dd|jfdd}tt|tktddddg}t|dd|jfdd}tt|tkt|jd kt t | d d}t ||\}}tt|tjktt|tjkt|j |j kt ||dd \}}tt|tkt|jd ktt|tjkt|j |j kd }t||}tt|tjkt|j |kt||dd }tt|tkt|jd kt|j |kdS) Nr/r0r1r8)r0)rrHT)rrHr[zsimple finalizedr!)r[)r0r8)rZr typer rPrndarrayrcrdr$rr%r rr)rrSbZb_viewrrrrtest_subclassesks8 rkc Cstdddg}t|d}t|jjdtt|jt ddx6t |t d|gD] }x|D]}t|jjdqZWqPWd|j_t d|\}}t|jjdd}dg}t td||}t d }t ||\}} t |j| jkdS) Nr/r0r1)r0r1FrT)r0)r/)rr2rrrWrVr r __setitem__slicer r rr r) Zoriginalresultresults_rrHZ tricky_arrayotherfirstsecondrrrtest_writeables"   rtcCsXtjdtd}tjdgdtd}t|d}t||t|td\}}t||dS)Nr)r r1)r1)rr2objectrrr r;)r<rr=rprrrtest_reference_typess   rv__main__)FF))Z __future__rrrZnumpyrZnumpy.core.test_rationalrZ numpy.testingrrrr r Znumpy.lib.stride_tricksr r r rrrr)r.r3r5r6r7r9r:r>rCrGrUrYrirZrcrkrtrvr`rrrrs4     4- %