bgMdZddlZddlmZddlmZddlmZmZddlm Z ddl m Z m ZddlmZmZm Z mZm Z mZddlmZmZmZdd lmZGd d ZGd d ZGddZdZdS)z^Tests suite for mrecords. :author: Pierre Gerard-Marchant :contact: pierregm_at_uga_dot_edu N)recarray)maskednomask)temppath) fromrecords fromarrays) MaskedRecords mrecarrayr fromtextfileraddfield)assert_ assert_equalassert_equal_records)picklec eZdZgdZgdZgdZdefdefdgZgdZ e j e e eeee eZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdS) TestMRecords皙?皙@ffffff @皙@@onetwothreefourfiveabc|S8rrrrrmaskdtypec|j}|t}t|j|jt |j|jtt|j tt |j |j tdD]}t||||t |t|dS)Nr%r&r() baseviewr r recordmaskr_maskr isinstance_datar)selfr0mbasefields o/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/numpy/ma/tests/test_mrecords.py test_byviewzTestMRecords.test_byview$sy )$$U%t777U[$*555 5;11222U[$*//(*C*CDDD$ 4 4E eeEl 3 3 3 3UZZ 22E:::::c.|j}|t}dD]B}t t ||||t ||||C|d}t t|tt |j|jt | dt |j tt |j dt |d|dd|d}t t|tt |j|jt | dt |j dt |j d t |d|ddt |dtu|dd }t t|tt |j|jt |j dd gt|jt#jdd g|j j t||dd tdD].}t t |||dd |/dS) Nr/r)rrr )FFFr%)NNNT)TTTrrr-)r0copyr1r rgetattrr r4r-tolistr2rr3itemrrr,nparray)r6r0r7r8 mbase_first mbase_lastmbase_sls r9test_getzTestMRecords.test_get0sy~~ )$$$ 4 4E ..e = = = eeEl 3 3 3 3Ah  ; 22333[& 444[''))+;<<<[+V444[&++--/DEEE[%uSz!}5552Y  :y11222Z%u{333Z&&((*<===Z*D111Z%**,,.@AAAZ_eCjn555CF*,,,!9 8Y//000X^U[111X(1a&111X]X'<'9';,1K,=??? @ @ @ XtBQBx}}Y'?'?@@@$ D DE 51148E? C C C C D Dr;c|j}|t}|}d|_d|jjdd<t|djgdt|djgdd|_t|djdgdzttj |ddgdzt|j dgdzt|j tjgd t t |_t|jjdgdzt|jj dgdzttj |d dgdzttj|d d gdzt|j tjgd t |t}d|jdd<t|jgdt|jjgdt |jdd<t|j|dt|jjgdddt*fg}tjgd| }|t,}tjgdgd}||d<t|j|t|jjgddS)N)i?Bg@xDN/Arr%)rrrrrr*rrF)rrrrrrrKrKrLr>r(N/A)rrrrLrNrNrLrrrrrr)rrrrrr&rrrrr)alphaz|S1num))r%r)r&r)r(r) rrrr,)r0r?r1r fill_valuer%r5rr3ma getmaskarrayr2rArCrDboolrr(r,getdatar&intr rR)r6r0r7ndtypedatardatavals r9test_set_fieldszTestMRecords.test_set_fieldsXs$y~~ )$$ 0 aaaU3Z%777U3Z%777U3Z%s1u---R_U3Z001#a%888U%wqy111U[''))X*** %) *** + + +UW\A3q5)))UW'!Q///R_U3Z001#a%888RZc ++fXaZ888U[''))X*** %) *** + + + )$$))++ UWooo...UW]OOO444 UWd3i(((UW]OOO444"UCL1x666fEEE -((h|||)))444e UY$$$UY^YYY/////r;c|j}|t}t|dd<t |jgdt |jjgdttj dtj dgdtfdtfg}t|dd<t |jgdt |jjgd dS) Nr%rrPrr&r>)rrrrr)rrrrr)r0r?r1r rrr%r3rrCarangerandomrandr]floatr6r0r7s r9test_set_fields_maskz!TestMRecords.test_set_fields_masksy~~ )$$c 2UWooo...UW]OOO444BIaLL")..*;*;<#&*sEl!;===c 2UWooo...UW]OOO44444r;c|j}|t}t|_t tj|ddgdzt |dj |dj t |dj |dj t |j tj dgdztt|_t tj|ddgdzt |j tj d gdztdS) Nr&rrr%r(rrrr>rrK)r0r?r1r rr,rrYrZr3rArCrDr[rris r9 test_set_maskzTestMRecords.test_set_masks6y~~ )$$ R_U3Z001#a%888U3Z%uSz'7888U3Z%uSz'7888U[''))Xyk!m4888 : : : R_U3Z001#a%888U[''))Xyk!m4888 : : : : :r;c|j}|t}gd|_t |jjgdt |jjgdt |jjgdgd|_t |jjgdt |jjgdt |jjgddS)N)rrrrrrrrrr) r0r?r1r r,rr%r&r(ris r9test_set_mask_fromarrayz$TestMRecords.test_set_mask_fromarraysy~~ )$$$__ UW\???333UW\???333UW\???333$__ UW\???333UW\???333UW\???33333r;cB|jt}t jgddt fdt fdt fg}||_t|j jgdt|j jgdt|j jgdd|_||_ t|j jgdt|j jgdt|j jgddS) N)rrrrrrrrrsrKr%r&r(r>)rrrrr)rrrrrF) r0r?r1r rCrDr[r,rr%r&r( fieldmask)r6r7nmasks r9test_set_mask_fromfieldsz%TestMRecords.test_set_mask_fromfieldss   %%i00 C C C;d c4[9;;; UW\???333UW\???333UW\???333 UW\???333UW\???333UW\???33333r;c|j}|t}t|d<t |jtj gdtt |j gd|t}d|dd<t |j j gdt |j jgdt |jj gd t |jjgdt |jj gd t |jjgd|t}t|dd<t |j j gd t |j jgd t |jj gd t |jjgd t |jj gdt |jjgd dS)Nrd)rKrlrKrlrlr>rPrrrr)rrrrrro)@ryrrr)5rzr"r#r$r)rrrrrrr)r0r?r1r rrr3rArCrDr[r2r%r5r&r(ris r9test_set_elementszTestMRecords.test_set_elementss*y~~ )$$))++b  K   HLLL ! ! ! " " " U%777 )$$))++bqb UW]OOO444UW]OOO444UW]$;$;$;<<<UW]OOO444UW]=== ? ? ?UW]OOO444 )$$))++bqb UW]OOO444UW]OOO444UW]$=$=$=>>>UW]OOO444UW]AAA C C CUW]OOO44444r;c|j}|t}| d|dd<t |jjgdt |jjgdt |j jgdt |jj gdt |jj |jj t |jj |j j td#t$rYnt$rwxYw d|dd<td #ttf$rYdSwxYw) NrxrdrO)rrrrr)r r!r"rzr$r*z)Flexible hard masks should be supported !rz.Should have expected a readable buffer object!)r0r?r1r harden_maskrr%r5r&r(r3 ExceptionNotImplementedErrorAssertionError TypeErrorris r9test_setslices_hardmaskz$TestMRecords.test_setslices_hardmasks}y~~ )$$  I"E"##J  8 8 8 (?(?(? @ @ @ BBB D D D  8 8 8  6 6 6  6 6 6GHH H #    D       NE"##JLMM M$Y/    DD s% B?D D.# D.2EEEc|j}|t}|t |jt|_t|j |j | t |j t|_t|j tj |j|jt tj|dj tut#|dj |dj dS)Nr&r%)r0r?r1r r}r _hardmaskrr,rr3 soften_maskrYmake_mask_noneshaper- make_maskrris r9 test_hardmaskzTestMRecords.test_hardmask sy~~ )$$     U[$*555 EO#$$$ U[.tz4:FF H H H U3Z-..&8999U3Z%uSz'788888r;c|j}|t}t dt jdzD]}t j||}t j|}t|j |j t|j |j t|j |j t|j |j dS)Nrr)protocol)r0r?r1r rangerHIGHEST_PROTOCOLdumpsloadsrr-rr5r3)r6r0mrecproto_mrec_s r9 test_picklingzTestMRecords.test_picklingsy~~yy##1f59:: : :E TE222ALOOE dj 1 1 1 dj 9 9 9 dj 1 1 1 dj 9 9 9 9  : :r;cDtjgdgdt}tjgdgdt}tjgdgdd}dtfdtfd g}t |||g|d }|}t |dtjd t t |dtjdt t |dtjdd dS)NrrrrNr+rrronetwothreer)r%r&r'韆i@rJr-rX)rrrr>)rrrr()rrrJ)rYrDr]rhrfilledrrC)r6_a_b_cddtyper mrecfilleds r9 test_filledzTestMRecords.test_filled's0 Xiiiiiis ; ; ; XoooIIIU C C C X---IIIU K K K*sElL92r2,f%;===[[]] Z_bh}C&H&H&HIIIZ_bh/A5:'<'<'< = = =Z_bh/D5:'<'<'< = = = = =r;cTtjgdgdt}tjgdgdt}tjgdgdd}dtfd tfd g}t |||g|d }t |gd dS)NrrNr+rrrVr)r%r&r'rr))rrN)rrr!)NNr")rYrDr]rhrrrA)r6rrrrrs r9 test_tolistzTestMRecords.test_tolist6s Xiiiiiis ; ; ; XoooIIIU C C C X---IIIU K K K*sElL92r2,f%;=== T[[]]... / / / / /r;ctdtd}d|dd<t|ddddS)Nrr0)formatsnamesrSr)r rhr)r6xs r9test_withnameszTestMRecords.test_withnamesCsA af 5 5 5!V QvYq\2&&&&&r;ctddtfddtfg}t|d<t |ddtddg}t|d<t |dtjd |j td d }t|d<d |d<|dt|dtjd d g|j dS)Nri)sr)fr>r)r1g?)f0z > >"9:::QQ AT[[^^Xy)&<,0J888 9 9 9 9 9r;N)__name__ __module__ __qualname__ilistflistslistr]rhrr,rYrDlistzipr0r:rHrbrjrmrprvr{rrrrrrrr;r9rrsj OOE % % %E 8 8 8ECj3, 5F ??D 28DDUE51122V L L LD ; ; ;&D&D&DP505050n 5 5 5::: 4 4 4444"555@NNN:999" : : : = = = / / /''' 99999r;rc&eZdZdZdZdZdZdS)TestViewcDtjdtjd}}dtfdtfg}tjt t|||}t||g|d}d|j d<||||f|_ dS) NrSr%r&r>)g"gXr)FTr) rCrerfrgrhrDrrrr,r_)r6r%r&r^arrrs r9 setup_methodzTestView.setup_method_s)B--!3!3A,e -htC1IIf5551a&;GGG$ ! 1a% r;c|j\}}}}|}tt|tt ||t |j|jdS)N)r_r1r r4r rr3)r6rr%r&rtests r9test_view_by_itselfzTestView.test_view_by_itselfhsa Iq!Syy{{ 4//000T4(((TZ44444r;c r|j\}}}}tdf}||}tt |t jt|tj tt||tt|dt j udS)Nrr>)rr) r_rhr1r r4rY MaskedArrayrrCrDrrr)r6rr%r&rntypers r9test_view_simple_dtypezTestView.test_view_simple_dtypeos Iq!S yy 400111T28DQOO5AAABBBT bi'(((((r;c|j\}}}}dtfdtfg}||}tt |t t |||t|ddtut|j tj |t|j dudS)NABr) r_rhr1r r4r rrrr-rC _fill_value)r6rr%r&ralttypers r9test_view_flexible_typez TestView.test_view_flexible_typews Iq!S<#u.yy!! 4//000T388G#4#4555S ! &'''TZ'!2!2333 D()))))r;N)rrrrrrrrr;r9rr]sP&&&555)))*****r;rc2eZdZejgdgdeZejgdgdeZejgdgddZ defdefd gZ e eee ge d Z e ejeje jfe Ze ee fZd ZdZdZdZdZdS)TestMRecordsImportrrNr+r)r r!r"r)r%r&r')s99999s99999.rMrr>ctjgdgdt}tjgdgdt}tjgdgdd}|j\}}}t d|||fD]-\}}t t||j|j.tjgdgd t} tt| |j |d dS) NrrNr+rrr)r/)rrrrVr>r) rYrDr]rhr_rrr@r3objectrrr-) r6rrrrnrecrrl_xs r9test_fromarraysz"TestMRecordsImport.test_fromarrayss Xiiiiiis ; ; ; XoooIIIU C C C X---IIIU K K K)tQ/BB<88 : :FQ q))/ 9 9 9 9 XoooIIIV D D DZ$*===tAwGGGGGr;cN|j\}}}gd}t|d}t|d}t||t|}t |j|j|jjD]3}t t||t|j|4t| d}t |jdtfdtfdgtdd D]6\} } t t|| t|j| 7t|}t |j|jt|j| t|j|jdS) N))rabcg @r)rxyg@r)r g?rzc1, c2, c3, c4)rzc1,c2,c3c1c2)c3z|S5)rrrr/)r_recfromrecordsrrrr-rr@r5rAr]rhrrr3) r6rrrpalistpampa_mrecr8rns r9test_fromrecordsz#TestMRecordsImport.test_fromrecordss#ytV444F*: ; ; ;&(8999R%%%D!!U[$*---[& L LE .. E0J0J K K K KDKKMM<<<U[D#;u }"MNNN,o>> D DFQ **GDJ,B,B C C C CD!!U[$*---U[$++--888U[$*55555r;c|j\}}}t||gd}t|j|jt |jgdt||d}t|j|jt |jgdt|||j}t|j|jt |j|jt|||j}t|j|jt |j|jdS)Nrr)r-r,)rKrlrKT)rlrlrl)r_rrArr5rr3)r6rrrrs r9test_fromrecords_wmaskz)TestMRecordsImport.test_fromrecords_wmasks#ytVDKKMMjjjIIIU[$*555U[''))+L+L+LMMMDKKMMdCCCU[$*555U[''))+L+L+LMMMDKKMMdjIIIU[$*555U[''))4:+<+<+>+>???DKKMM!%!2!2!4!4666U[$*555U[''))4:+<+<+>+>?????r;cd}t5}t|d5}||dddn #1swxYwYt|dd}dddn #1swxYwYt t |t t|jgdt|j j gdt|j gddS)Nz# 'One (S)','Two (I)','Three (F)','Four (M)','Five (-)','Six (C)' 'strings',1,1.0,'mixed column',,1 'with embedded "double quotes"',2,2.0,1.0,,1 'strings',3,3.0E5,3,,1 'strings',4,-1e-10,,,1 w,ABCDEFG) delimitervarnames)rrrr)rrgOAg|۽) ropenwriter r r4r rFEr3C)r6fcontentpathrmrectxts r9test_fromtextfilez$TestMRecordsImport.test_fromtextfilesg ZZ L4dC "A!!! " " " " " " " " " " " " " " ""43KKKG L L L L L L L L L L L L L L L  7M22333WY ---WY_lll333WY 5 5 566666s3A-A A-A A- A A--A14A1c|j\}}}gdgd}}t|tj||}t |j|t |jj|dS)N)di,rVrW)r_r rYrDrf3r3)r6rrrdms r9 test_addfieldz TestMRecordsImport.test_addfieldsk#ytV!//999Abhqq11122TWa   TW]A&&&&&r;N)rrrrYrDr]rrhrrrrr recfromarraysr5rr_rrrrrrr;r9rrs7 ))))))3 7 7 7B ///  ? ? ?B ,,, yy / / /BCj3, 5F :r2rl&"* + + +D ="(BHbh7v F F FD $ D H H H6664@@@*777&'''''r;rcltjddgddgdtfdtfg}|ddS) N)r2)r4)rr)rrr%r&r+r)rY masked_arrayr]r)ys r9#test_record_array_with_object_fieldrsG  8f SzC=) + + +A aDDDDr;)__doc__numpyrCnumpy.marYrrr numpy.testingrnumpy.core.recordsrrrrnumpy.ma.mrecordsr r r r numpy.ma.testutilsr rr numpy.compatrrrrrrr;r9rs ########"""""" 99999999D "*"*"*"*"*"*"*"*L`'`'`'`'`'`'`'`'F     r;