bg-OddlZddlZddlmZddlmZddlmZddl Z ddl Z ddl m Z mZmZmZmZmZddlmZGddZGd d ZGd d Zd ZdS)N)BytesIO)path)Path)assert_ assert_equalassert_array_equalassert_array_almost_equal assert_raisestemppath)pickleceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdS)TestFromrecordsctjgdgdgd}t|ddt|djjdt|djjd t|djjd t|d jjd dS) N)idbeg333333?)de?zcol1,col2,col3namesrcol1icol2U col3f)nprec fromrecordsritemdtypekinditemsizeselfrs p/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/numpy/core/tests/test_records.pytest_fromrecordsz TestFromrecords.test_fromrecordss F   1 1 1>>>B"2  4 4QqTYY[["3444QvY_)3///QvY_)3///QvY_-r222QvY_)3/////cdtfdtfg}tjg|}t |jddS)z0 Verify fromrecords works with a 0-length input abr!rN)floatrrrrshape)r%r!r&s r'test_fromrecords_0lenz%TestFromrecords.test_fromrecords_0lensFuU|, F  r  / /QWd#####r)cgdgdg}gdgdg}gdgdg}tj|dtfdtfg }t |d|t |d|tj|ddg }t |d|t |d|t ||dS) N))r))))r7r6)r5r4)rr3)r3r4r6)r7r5r)rr5r7)r6r4r3r+r,r-r)rrrintr)r%data expected_a expected_br1r2s r'test_fromrecords_2dz#TestFromrecords.test_fromrecords_2d s $ $ $ $ $ $  ii+ ii+ V  c3Z#s,D  E ERWj)))RWj)))V  S#J  7 7RWj)))RWj)))Rr)ctjdddd}t|dddS)Nsabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgzi2,a3,i4r4bigformatsr0 byteorderr3)idcsefgidcbarrarrayrr r$s r'test_method_arrayz!TestFromrecords.test_method_array4sB FLL):QRWL X XQqTYY[["=>>>>>r)ctjgdd}t|dddS)N)r3 r+)rr,)r4!c)r5,d)r67ex)r7Br)Mgu1,f4,a1rBr3)rg6@brDr$s r'test_method_array2z"TestFromrecords.test_method_array28sR FLL111:D  F FQqTYY[[/22222r)ctjgdd}t|ddddddS)NrHrUrVr3r)r5gF@drDr$s r'test_recarray_slicesz$TestFromrecords.test_recarray_slices=s^ FLL111:D  F FQqt!tWQZ__&&88888r)c~tjgd}tjgd}tjgd}tj|||gd}t |ddd|d<t |jtjgddS) N)r3rr4r5)r+ddxyz12)皙?rr4r5za,b,crr3)rr]@")rrEr fromarraysrr r+)r%x1x2x3r&s r'test_recarray_fromarraysz(TestFromrecords.test_recarray_fromarraysBs Xlll # # X... / / Xnnn % % F  r2rl'  : :QqTYY[[.1111QS"(<<<0011111r)ctjtjtd}tj|d}t |d}|dt j|ddd}|dt j |ddd}|dt}| | |d t j|ddd}| t||t||dS) Nr9zrecarray_from_file.fitsrbif8,i4,a5r4r@rAr)rjoindirname__file__openseekrrfromfilerErwritereadcloser)r%data_dirfilenamefdr<r= bytes_arrayr3s r'test_recarray_fromfilez&TestFromrecords.test_recarray_fromfileKs29T\(33V<<9X'@AA (D ! !  V__R1_ N N  V\\"jU\ K K ii "''))$$$ V__[*AQV_ W W  RRr)c |d}tj|d}tj|d}tj|d}tt|D]"}t tdd||<#tj|||gd}tt|D]w}t|j|t tddkt|j |dkt|j |dkxdS) N Or-f8r3zdate,data1,data2rg) rzerosrangelenlistrrcrdatedata1data2)r%countr+r,rLrmines r'test_recarray_from_objz&TestFromrecords.test_recarray_from_obj\s HU# & & & HU$ ' ' ' HU$ ' ' 's1vv & &Aa %%AaDDv  !Q2D EEs1vv , ,A TYq\T%2,,%7%77 9 9 9 TZ]c) + + + TZ]c) + + + + , ,r)cPtjddgddg}tj|}tt |t jdtjtjdd}tt tj| d tjtjd d }tt | d d tjtjd d}tt | dd kdS)N)r3g?)rg?)foo>> FLL'222 3 3T!WW\\.112666 FLL$/// 0 0Q ]++r122222r)ctjdd}tt |t jd|d}tt |d tjdtt |d tjd dS#tjd wxYw) N)r3ra2003z.CN)__name__ __module__ __qualname__rr)r'Crs Dr)r))r+f4,f4)r,V8)rL)f4r)rNi8rr3r3s11111111r3rr)rrrr)rrEr8int64rrr!rrrrrr+r,voidrLfloat32rNint32fieldsr) r%r+r,r&rvrrL test_dtypearrsarrrarr2s r'test_recarray_viewsz#TestFromrecords.test_recarray_viewss Hi,"CL-8 : : : H[[[ 1 1 1 RV\\!__*/;;;T"&,,q//**BK888RV\\!__*/:::T"&,,q//**BK888 QVVBK((.3RY???T!&&--.. <<<QVVBK((.3RX>>>T!&&--.. <<< FLL'222 3 3 VVD\\  w ' 'T"XXr{+++RX]BI... FLL+;+;+;<<< = =QsV\& 222T!C&\\2;///          FF1IIT!C&\\1%%%... FLL5+!ua8 +!ua8:AK  M MQSY^RY///QSY^RW---QSY^RZ000QSY^RX... FLL'222 3 3QVVG__*/;;;QVVH%%+0"(;;;QVVD\\',bg666QVVO,,27BBB)))271D+A+A+AB 0 0C&,,s##C88CI,9 2:FFD #). 9 9 9 dT#YY / / / /  0 0r)ctjgdd}tjgdd}t |j|jkt |j|jktt|D]E}t || || kFdS)N))r3abcg @r)rxyg@r3)r g?rzc1, c2, c3, c4r) rrrErrr!r0rrr )r%rapaks r'test_recarray_from_namesz(TestFromrecords.test_recarray_from_namess V\\.... // V  !.!.!..  // BH$%%%BH$%%%s2ww 2 2A BqEJJLLBqEJJLL0 1 1 1 1 2 2r)ctjgdd}gd|_t |dgdt t |jt |jud|_t |jdkgd|_t|dgdgd |_ t|d gd gt t|j tj jdS) N))r3rgffffff@)rr^g@)r4wrsrzfield, shape, meanr)r`g@gffffff @meanr3r4)ABrr0r6field)r6r6r6)rrrErr rrvarr0rr isinstance collectionsrCallable)r%rs r'test_recarray_conflict_fieldsz-TestFromrecords.test_recarray_conflict_fieldss V\\)))133"//!"V*ooo>>>RW bf-...F"###"??2g;(9:::2g; 444 28[_%=>>?????r)ctjddgdtfdtfg}t |jddgt |djdt |jdd gt |d jd tjdtfdtfg}tjddg|}t |jddgt |djdt |jdd gt |d jd dS) N)r3r+)rbbbr+r,r-r3rrrr) rrrr8objectrr+r,r!)r%r+ndtypes r'$test_fromrecords_with_explicit_dtypez4TestFromrecords.test_fromrecords_with_explicit_dtypes( F  *5(+SzC=&A  C CQS1a&!!!QqTVQQS3,'''QrUWe$$$C:V}566 F  *5V  D DQS1a&!!!QqTVQQS3,'''QrUWe$$$$$r)ctjddgddtfg}|tj}t |jd|jdkddS) N)abc r3)rrrrrr-rr3F)rrEr8rrrrrs r'test_recarray_stringtypesz)TestFromrecords.test_recarray_stringtypesse Hk:.)E3<8 : : : FF2;  QU1Xq)511111r)c*tjddftjddfd}tjddgddd tfd tfgfd tfd |fg }t t |jtjt t |dtjt t |j tj t t |dtj t |j jjtj t t |d tj t |j jjtj t t|j jj|t t |jtjt t |d tjt t |dj tj t t |ddtj t |dj jdt |dj d dt |ddjdt |ddd dt |dj jdt |dj ddt |dd jdt |dd dddS)NS5rr7)rD)rrr3)abcdefgehi)r)rr4r3)rjklmnrrrrbazquxr-rr3sfgehir)rr!rrEr8rrrrrrrrdictrrrr)r% qux_fieldsr+s r'test_recarray_returntypesz)TestFromrecords.test_recarray_returntypessHTNNA.bhtnna5HII FLL@?A -!&#sc3Z(@ A!& uj.A C  D D T!%[["*---T!E(^^RZ000T!%[["+...T!E(^^R[111QU[%ry111T!E(^^R[111QU[%ry111T!%+,--z:::T!%[["*---T!E(^^RZ000T!A$(^^RY///T!A$u+&& 222QqTXZ###QqTXc]A&&&QqT%[]A&&&QqT%[%q)))QqTXZ***QqTXc]H---QqT%[]H---QqT%[%x00000r)cdgdzdgdzg}tj|}t|dgdt|dgdtjdd g}tj|| }t|jd t|dgd t|dgd dS)Ntestr4f0)rrrf1)rrr)rz|S4)rz|Sr-r5)testrr)r)r)r))rrrcrr!r#)r%colsrdts r'test_zero_width_stringsz'TestFromrecords.test_zero_width_strings4s1 rdQh'f%%SY 8 8 8999SY --- X}l3 4 4fB//S\1%%%SY ; ; ;<<<SY00000r)N)rrrr(r1r>rFrXr[rgryrrrrrrrrrrrrr)r'rrs5000$$$ (???333 999 222" , , ,333* . . .///.<0<0<0|222 @ @ @ % % %2221118 1 1 1 1 1r)rceZdZdZdS) TestPathUsagec td5}t|}tjdtjdd}d|d<|jd5}||dddn #1swxYwYtj j |dd }t||ddddS#1swxYwYdS) Nz.bin)suffix{r{rj)g?r{rr6wb)rBr0) r rrrandomseedrandastyperntofilecorerecordsrpr)r%rr+rvxs r'test_tofile_fromfilez"TestPathUsage.test_tofile_fromfileEsf V $ $ $ %::D INN3    r""))*55A#AaD4 B                ((1;/1)33A q! $ $ $ % % % % % % % % % % % % % % % % % %s6A6C8B) C8)B- -C80B- 1:C88C<?C<N)rrrr rr)r'rrCs# % % % % %r)rceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZejdgddZejdgddZdZdS) TestRecordcZtjddggd|_dS)Nr3rr4)r5r6r7)rrrr)rrr-)rrrr9)r%s r' setup_methodzTestRecord.setup_methodTs:F&& 9'=#4#4#4'55 r)c|j}t|jddd|d_t|jdddSNrr3r9rrrs r'test_assignment1zTestRecord.test_assignment1ZsF IQVAY"""! QVAY"""""r)c|j}t|jddd|jd<t|jdddSrrrs r'test_assignment2zTestRecord.test_assignment2`sF IQVAY"""q QVAY"""""r)cF|j}d}tt||dS)Nc d|d_dS)Nr3r)col5)r s r'assign_invalid_columnzATestRecord.test_invalid_assignment..assign_invalid_columnisAaDIIIr))r9r AttributeError)r%r+rs r'test_invalid_assignmentz"TestRecord.test_invalid_assignmentfs3 I    n&;Q?????r)cjtjddgdg}d|j_t t 5ddg|_dddn #1swxYwYt t 5|jddgg|j j dRddddS#1swxYwYdS) Nr.)r3)rrr-Frr4r) rrrEflags writeabler ValueErrorrsetfieldr!rr$s r'test_nonwriteable_setfieldz%TestRecord.test_nonwriteable_setfieldns0 FLL$k]L ; ;! : & &  a&AC                : & & 4 4 AJ!u 3qw~c2 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s$ AA"A:!B((B,/B,c|jddg}t|jjdt|jjgd|jddgtjjdt t fddS)Nrr)rr)rr)rz|V4)rrcjjS)N)r!descr)ysr'z5TestRecord.test_out_of_order_fields..s !'-r))r9rr!rr&r r!)r%r r's @r'test_out_of_order_fieldsz#TestRecord.test_out_of_order_fieldsws Ivv& 'QW]$4555QW]DDD F F F Ivv& 'QW]$4555j"7"7"7"788888r)c tjdgfgdtjfdtjdfg}tdtjdzD]z}t |t jt j||t |dt jt j|d|{dS)Nr3r+r,rr-rprotocol) rrErrr HIGHEST_PROTOCOLrloadsdumpsr%r+protos r' test_pickle_1zTestRecord.test_pickle_1s Hq"gYRXbh8J&K L L L1f59:: K KE FLa%)H)H)HII J J J 1v|FL1BG-I-I-I J J K K K K K Kr)c D|j}tdtjdzD]z}t |tjtj||t |dtjtj|d|{dS)Nrr3r+r)r9rr r-rr.r/r0s r' test_pickle_2zTestRecord.test_pickle_2s I1f59:: K KE FLa%)H)H)HII J J J 1v|FL1BG-I-I-I J J K K K K K Kr)cx|j}tdtjdzD]}tjtj|d|}t |jjt |jj t |jj t |jj dS)Nrr3rr+) r9rr r-r.r/rr c_contiguous f_contiguousr aligned)r%r+r1rs r' test_pickle_3zTestRecord.test_pickle_3s I1f59:: & &Efl1Q4%@@@AAB BH) * * * BH) * * * BH& ' ' ' BH$ % % % %  & &r)ctjddg}tjd|}tdf}||d<d|d<|d \}}|tjjjusJ|\}}t|trJtt||d tj |d }tj|} |d | ksJtjt"5|tjd ||usJ ddddS#1swxYwYdS) N)objr|)r8rr3r-semanr;*r8r r|)rr!empty bytearray __reduce__r multiarrayscalarrbytesr RuntimeErrorr r/r.pytestwarnsDeprecationWarning) r%rr+r9ctorargsr!r;dump unpickleds r'test_pickle_voidzTestRecord.test_pickle_voids X|\2 3 3 HQb ! ! !'""$%%qT__&& drw)00000 sc5)))))lD%444|AaD!!L&& ty    \, - - 5 54 t,,44444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s#D77D;>D;c>tjddg}tjd|tj}tjgd|_tjddtfdtfd tfg}|ddgdS) N)rr)rr|rr-r)rr r'z) rr!r~rrrErrr/r8)r%rr&rs r'test_objview_recordzTestRecord.test_objview_records X}l3 4 4 HU" % % % * *2; 7 7##[sFmc5\C:%N O O O C9 r)ctjddtdfg}d|d_t |djtjddS)Nr3r r6r-r)rrr/r rr)r%rs r'test_record_scalar_setitemz%TestRecord.test_record_scalar_setitemsNk!S%O#4555ASVXrwqzz*****r)ctjddtfdtfgttfddS)N)r4r r'r-cdgS)Nnofieldr)rsr'r(z/TestRecord.test_missing_field..sYK(8r))rr~r8r KeyError)r%rs @r'test_missing_fieldzTestRecord.test_missing_fieldsDhtS#Jc #;<<<h 8 8 8 899999r)ctjdtjdddgg}tj|}dS)Nr{)r+z Test that nested structured types are treated as records too r+r,rLNinnerr4r)rr!r]r~rrrr)r%r[rdt_outerr9data0s r'test_nested_fields_are_recordsz)TestRecord.test_nested_fields_are_recordssXRXbh#rxI(7(S T T8gr]O,,x8$$))"+66$ ,,,,,$w-55555Q%+++++%.")4444444r)ctjdtjfdtjfdtjfg}|ddg}|j|jksJtjd|fg}tjd|tj}t|dj||d}t|dj|dS)z) test that trailing padding is preserved r+r,rLr`r4rN)rr!r]r#r~rrr)r%r dt_padded_endrar9rbs r'test_nested_dtype_paddingz$TestRecord.test_nested_dtype_paddingsXRXbh#rxI J JC: %44448g}5677x8$$))"+66T'](-888QU7^)=99999r)N)rrrrrrrr#r)r2r4r9rLrOrQrVrZrEmark parametrizer^rcrfrr)r'r r Ssb555 ### ### @@@444 9 9 9KKKKKK&&&5552+++ ::: ((( [Y 22 , ,32 , [Y 22 5 532 5 : : : : :r)r cgd}ttj|gkgd}ttj|dgkgd}ttj|ddgkgd}ttj|ddgkdS)N)r3rr4r5r6r7)r3rr3r5r6r7r3)r3rr3r5r3r7rr4r)rrr3r5r3r7rr4)rrrfind_duplicate)l1l2l3s r'test_find_duplicaterns   B BF ! !" % % +,,,   B BF ! !" % %! ,--- ! ! !B BF ! !" % %!Q /000 ! ! !B BF ! !" % %!Q /00000r))collections.abcrriorosrpathlibrrErr numpy.testingrrrr r r numpy.compatr rrr rnrr)r'rusl  p1p1p1p1p1p1p1p1f % % % % % % % % g:g:g:g:g:g:g:g:T 1 1 1 1 1r)