o 6a2@s"ddlZddlZddlZddlmZmZmZmZm Z m Z ddl m Z e ejZeje ejjkZdejZeeeekZ[ddZeeedZejjejdekd d d d Zejjed d ddZejjed d ejdejej e!e"fddZ#ddZ$ejjed d ddZ%ddZ&ddZ'ddZ(ddZ)Gdd d Z*d!d"Z+ejjed#d ejjed d d$d%Z,ejjed#d ejjed d d&d'Z-ejjed(d ejjed d d)d*Z.Gd+d,d,e Z/ejd-dd.dgd/d0Z0ejd1d2d3gd4d5Z1dS)6N)assert_ assert_equal assert_raises assert_warnsassert_array_equaltemppath)CommaDecimalPointLocalecCs,dtj}t|||g}t|d|dS)z?Confirm that extracting a value doesn't convert to python floatr N)LD_INFOepsnparrayr)oarB/usr/lib/python3/dist-packages/numpy/core/tests/test_longdouble.pytest_scalar_extractions rg?z%repr precision not enough to show epsreasoncCs,dtj}ttt||dt|dS)Nr z repr was %s)r r rr longdoublereprrrrrtest_repr_roundtrip s "rNeed strtold_lcCs(dtj}ttt|d|dS)Nr ascii)r r rr rrencoderrrrtest_repr_roundtrip_bytes(s rstrtypecCsdtj}|tjtfvr|t|d}n|t|}|t|ks%Jtj|gd|d}|| tjk s;J||k sCJt|gd ||k sTJdS)z Test that string representations of long-double roundtrip both for array casting and scalar coercion, see also gh-15608. r rdtypeN) r r r bytes_bytesrrrasarrayastypeall)rro_stro_strarrrrr#test_array_and_stringlike_roundtrip.s  &r)cCs tttjdtttjddS)Nspamz1.0 flub)r ValueErrorr rrrrrtest_bogus_stringHsr,cCsNdtj}dt|d}t|gd}ttj|dtjd|d|ddS)Nr  sepr!z reading '%s')err_msg)r r rr r r fromstringr)rsrrrrtest_fromstringMs  r4c CsdD]}ttjdd|dtgdttjdd|dtgdttjdd|dtgd ttttjd |dd td gWdn1sSwYttttjd |dd td gWdn1svwYttttjd|dd td gWdn1swYttttjd|dd td gWdn1swYttttjd|dd td gWdn1swYttttjd|dd tdgWdn 1swYqdS)Ncomplexcdoublecfloatz 1, 2 , 3 ,4,r/?@@g@z1j, -2j, 3j, 4e1j?yy@yD@z1+1j,2-2j, -3+3j, -4e1+4jy??y@y@yD@z1+2 j,3r!r0r;z1+ 2j,3z1 +2j,3z1+jz1+z1j+1r?)rr r2r rDeprecationWarning)ctyperrrtest_fromstring_complexVsT                rDcCsNttttjdtddtgdWddS1s wYdS)Nz1. 2. 3. flop 4.r-rAr;r<r=rrBrr r2floatr rrrrtest_fromstring_bogusvs  "rHcCsHttttjdddtgWddS1swYdS)Nxxxxxxr0rrBrr r2r rrrrtest_fromstring_empty|s "rMcCsJttttjdddtdgWddS1swYdS)N 1xx3x4x5x6rJrKr rLrrrrtest_fromstring_missings  "rOc@seZdZdejZeegdZd ddeDZ ddZ dd Z e jjed d d d Ze jjed d ddZe jjed d ddZe jjed d ddZdS) TestFileBasedr r.cCsg|]}t|dqS) )r).0trrr szTestFileBased.c Cst>}t|d }|dWdn1swYtttj|tdd}Wdn1s5wYWdn1sDwYt|t gddS)Nwtz1. 2. 3. flop 4. r-rArE) ropenwriterrBr fromfilerGrr selfpathfresrrrtest_fromfile_boguss   z!TestFileBased.test_fromfile_bogusc CsdD]}t*}t|d }|dWdn1swYtj||dd}Wdn1s5wYt|tgdt*}t|d }|dWdn1s]wYtj||dd}Wdn1stwYt|tgdt*}t|d }|d Wdn1swYtj||dd}Wdn1swYt|tgd t>}t|d }|d Wdn1swYtttj||dd}Wdn1swYWdn 1swYt|td gt@}t|d }|d Wdn 1s/wYtttj||dd}Wdn 1sLwYWdn 1s\wYt|td gt@}t|d }|dWdn 1swYtttj||dd}Wdn 1swYWdn 1swYt|td gt@}t|d }|dWdn 1swYtttj||dd}Wdn 1swYWdn 1swYt|td gt@}t|d }|dWdn 1s.wYtttj||dd}Wdn 1sKwYWdn 1s[wYt|td gt@}t|d }|dWdn 1swYtttj||dd}Wdn 1swYWdn 1swYt|tdgqdS)Nr5rVz1, 2 , 3 ,4 r9rAr:z1j, -2j, 3j, 4e1j r>z1+1j,2-2j, -3+3j, -4e1+4j r@z1+2 j,3 r;z1+ 2j,3 z1 +2j,3 z1+j z1+ z1j+1 r?) rrWrXr rYrr rrB)r[rCr\r]r^rrrtest_fromfile_complexs                         z#TestFileBased.test_fromfile_complexrrc Cs~t,}t|d}||jWdn1swYtj|tjdd}Wdn1s2wYt||jdS)NrVrRrA) rrWrXoutr rYrrtgtrZrrr test_fromfiles zTestFileBased.test_fromfilec C|t+}t|d}||jWdn1swYtj|tjd}Wdn1s1wYt||jdSNrVr ) rrWrXrar genfromtxtrrrbrZrrrtest_genfromtxt zTestFileBased.test_genfromtxtc Crdre) rrWrXrar loadtxtrrrbrZrrr test_loadtxtrhzTestFileBased.test_loadtxtcCsXt}|jj|ddtj|tjdd}Wdn1swYt||jdS)Nr-rKrA)rrbtofiler rYrr)r[r\r^rrrtest_tofile_roundtrips z#TestFileBased.test_tofile_roundtripN)__name__ __module__ __qualname__r r ldblr r rbjoinrar_r`pytestmarkskipifstring_to_longdouble_inaccuratercrgrjrlrrrrrPs,  R   rPcCsdtj}tt|dkdS)Nr 1)r r rrrrrrtest_repr_exacts rwz BUG #2376cCs dtj}td|dkdS)Nr z{0:.40g}rv)r r rformatrrrr test_formats rycCsdtj}td|dkdS)Nr z%.40grv)r r rrrrr test_percents rzzarray repr problemcCsVdtj}t|g}tjdgtjd}t||kstdtt|t|kdS)Nr r zprecision loss creating arrays) r r r r rr&r+rr)rrbrrrtest_array_repr%s  r|c@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)TestCommaDecimalPointLocalecCsd}t|tt|dS)Ng?)rr rr)r[rrrrtest_repr_roundtrip_foreign7sz7TestCommaDecimalPointLocale.test_repr_roundtrip_foreigncCs*d}tjt|tdd}t|d|dS)NgX9v?r-rAr)r r2rrGr)r[r]rrrrtest_fromstring_foreign_repr;sz8TestCommaDecimalPointLocale.test_fromstring_foreign_reprcCsLttttjdtddtdgWddS1swYdSN1,234r-rAr;rFr[rrr!test_fromstring_best_effort_float@s  "z=TestCommaDecimalPointLocale.test_fromstring_best_effort_floatcCsNttttjdtjddtdgWddS1s wYdSr)rrBrr r2rr rrrrtest_fromstring_best_effortEs  "z7TestCommaDecimalPointLocale.test_fromstring_best_effortcCs.d}tj|tjdd}t|dt|dS)Nz1.234r-rAr)r r2rr)r[r3rrrrtest_fromstring_foreignJsz3TestCommaDecimalPointLocale.test_fromstring_foreigncCs.tgd}tjdtjdd}t||dS)N)r rrz1,2,3,4,r9rA)r r r2rr)r[rr{rrrtest_fromstring_foreign_sepOsz7TestCommaDecimalPointLocale.test_fromstring_foreign_sepcCsNtttjdtjdd}t|ddWddS1s wYdS)Nrr-rArr )rrBr r2rr)r[r{rrrtest_fromstring_foreign_valueTs "z9TestCommaDecimalPointLocale.test_fromstring_foreign_valueN) rmrnror~rrrrrrrrrrr}5s r}int_valicCst|}tjddG}tddtt|t|ksJtttjj ttj j r9|rA|dj tusIJWddSWddSWddS1sTwYdS)NT)recordalwaysrQr) strwarningscatch_warningsfilterwarningsRuntimeWarningr rallclosefinfomaxdoublecategory)rstr_valwrrrtest_longdouble_from_intZs  "rbool_valTFcCs t|tt|ksJdS)N)r rint)rrrrtest_longdouble_from_boolns r)2rrrnumpyr numpy.testingrrrrrrnumpy.core.tests._localesrrrr r rlongdouble_longer_than_double_orrurlenrepr_precisionrsrt precisionrr parametrizestr_r"rr#r)r,r4rDrHrMrOrPrwryrzr|r}rrrrrrsr               %