o 6a @sddlZddlZddlZddlZddlZddlmmZ ddl m Z m Z e ejjZe ejjZdZdddZe ZdZdd ed Dd d ed Dd d ed d Ddd ed d Ddd ed d DeeddZdd ed Ddd ed Ddd ed d Ddd ed d Ddd ed d DeedddgZdd eDZejddZddZddZdd Z d!d"Z!d#d$Z"d%d&Z#d'd(Z$d)d*Z%d+d,Z&d-d.Z'ej(j)d/d0Z*d1d2Z+d3d4Z,dS)5N) assert_raises assert_equalllcCg|]}t|qS) INT64_MIN.0jrrA/usr/lib/python3/dist-packages/numpy/core/tests/test_extint128.py rcCg|]}t|qSr) INT64_MAXr rrr rrcCrr INT64_MIDr rrr rricCg|]}dt|qSrrr rrr rcCg|]}td|qSrrr rrr rriFcCrr) INT128_MINr rrr rrcCrr) INT128_MAXr rrr r rcCrr INT128_MIDr rrr r!rcCrrrr rrr r"rcCrrrr rrr r#rFcCsg|]}|dkr|qS)rr)r xrrr r(rc's\dgfdd}z|VWdSty-ddl}dtd|f}t|w)z} Iterate over Cartesian product of *args, and if an exception is raised, add information of the current iterate. Nc3s$tjD] }|d<|VqdSNr) itertoolsproduct)vargsvaluerr iterate4s zexc_iter..iteraterz At: %r %s) Exception tracebackrepr format_excAssertionError)r$r&r(msgrr#r exc_iter+s  r-c Cstjdftjdftjdfg}t|tt?}|D]3\}}}|\}}|||}t|kr/tks:ntt t j |||qt |||}||krJt ||qWddS1sVwYdS)Nrr) operatoraddsubmulr- INT64_VALUESr rr OverflowErrormtextint_safe_binopr) opsitxopabpyopopcdrrr test_safe_binopBs   "r@cCsVtt}|D]\}t|}||krt||qWddS1s$wYdSN)r-r3r5 extint_to_128rr8r:r;rrr test_to_128Ys    "rDcCs|tt0}|D]$\}t|krtksntttj|qt|}||kr+t||qWddS1s7wYdSrA) r- INT128_VALUESr rrr4r5 extint_to_64rrCrrr test_to_64as    "rGcCsdttt#}|D]\}}||}t||}||krt||qWddS1s+wYdSrA)r-r3r5extint_mul_64_64rr8r:r;r>r?rrr test_mul_64_64l    "rJcCsttt7}|D]+\}}||}t|krtks$ntttj||qt||}||kr3t||qWddS1s?wYdSrA) r-rErrrr4r5extint_add_128rrIrrr test_add_128u    "rMcCsttt7}|D]+\}}||}t|krtks$ntttj||qt||}||kr3t||qWddS1s?wYdSrA) r-rErrrr4r5extint_sub_128rrIrrr test_sub_128rNrPcCs\tt }|D]\}| }t|}||krt||qWddS1s'wYdSrA)r-rEr5extint_neg_128rr8r:r;r>rrr test_neg_128s    "rScCstt8}|D],\}|dkr| d>ddd@ }n |d>ddd@}t|}||kr3t||qWddS1s?wYdS)Nrrrr)r-rEr5extint_shl_128rrRrrr test_shl_128s    "rUcCsttt,}|D] \}|dkr| d? }n|d?}t|}||kr't||qWddS1s3wYdS)Nrr)r-rEr5extint_shr_128rrRrrr test_shr_128s    "rWcCsdttt#}|D]\}}||k}t||}||krt||qWddS1s+wYdSrA)r-rEr5 extint_gt_128rrIrrr test_gt_128rKrYcCstttU}|D]I\}}|dkrt||\}}nt| |\}}| }| }t||\}}||ks>||ks>||||krQt||t||t||||qWddS1s]wYdSr)r-rEINT64_POS_VALUESdivmodr5extint_divmod_128_64r)r8r:r;r>crr?drrrr test_divmod_128_64s     "r_cCsdttt#}|D]\}}||}t||}||krt||qWddS1s+wYdSrA)r-rErZr5extint_floordiv_128_64rrIrrr test_floordiv_128_64s    "racCslttt'}|D]\}}||d|}t||}||kr#t||qWddS1s/wYdS)Nr)r-rErZr5extint_ceildiv_128_64rrIrrr test_ceildiv_128_64s    "rc)-r contextlibr/pytestnumpynpnumpy.core._multiarray_testscore_multiarray_testsr5 numpy.testingrriinfoint64maxrminr rrrrrangelistr3rErZcontextmanagerr-r@rDrGrJrMrPrSrUrWrYmarkslowr_rarcrrrr sp