zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
U
P±dŸOã@sÆdZddlZddlmZddlmZddlmZmZddlm    Z    ddl
m Z m ZddlmZmZm Z mZm Z mZddlmZmZmZdd    lmZGd
d „d ƒZGd d „d ƒZGdd„dƒZdd„ZdS)z^Tests suite for mrecords.
 
:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
 
éN)Úrecarray)ÚmaskedÚnomask)Útemppath)Ú fromrecordsÚ
fromarrays)Ú MaskedRecordsÚ    mrecarrayrÚ fromtextfilerÚaddfield)Úassert_Ú assert_equalÚassert_equal_records)Úpicklec@sêeZdZdddddgZdddd    d
gZd d d ddgZdefdefdgZdddddgZ    e
j e e eeeƒƒe    edZdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3S)4Ú TestMRecordsééééé皙™™™™ñ?皙™™™™@çffffff
@皙™™™™@ç@óoneótwoóthreeófourófiveÚaÚb©Úcú|S8r©ÚmaskÚdtypecCs€|j}| t¡}t|j|jƒt|j|jƒtt|j    t
ƒƒt|j    |j     t
¡ƒdD]}t||||ƒqTt| t¡|ƒdS)N©r r!r#) ÚbaseÚviewr    r Ú
recordmaskrÚ_maskr Ú
isinstanceÚ_datar)Úselfr)ÚmbaseÚfield©r2úSd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/ma/tests/test_mrecords.pyÚ test_byview$s
zTestMRecords.test_byviewcCs¶|j ¡}| t¡}dD]*}tt||ƒ||ƒt||||ƒq|d}tt|tƒƒt|j|jƒt|     ¡dƒt|j
t ƒt|j   ¡dƒt|d|ddƒ|d}tt|tƒƒt|j|jƒt|     ¡dƒt|j
dƒt|j   ¡d    ƒt|d|ddƒt|dtkƒ|dd
…}tt|tƒƒt|j|jƒt|j
dd gƒt|jtjdd    g|j jd ƒt||dd
… t¡ƒdD]"}tt||ƒ|dd
…|ƒqŽdS) Nr(r)rrr)FFFr éÿÿÿÿ)NNNT)TTTrr©r')r)Úcopyr*r    r Úgetattrr r-r'Útolistr+rr,Úitemrrr&ÚnpÚarray)r/r)r0r1Z mbase_firstZ
mbase_lastZmbase_slr2r2r3Útest_get0sD
 
   ÿþÿzTestMRecords.test_getcCsH|j ¡}| t¡}| ¡}d|_d|jjdd…<t|djdddddgƒt|djdddddgƒd|_t|djdgdƒtt     
|d¡dgdƒt|j dgdƒt|j  ¡t jdddddgtd    ƒt|_t|jjdgdƒt|jj dgdƒtt     
|d
¡dgdƒtt     |d
¡d gdƒt|j  ¡t jd dd d dgtd    ƒ| t¡ ¡}d|jd d…<t|jddd ddgƒt|jjdddddgƒt|jd d…<t|j|dƒt|jjdddddgƒddtfg}t    jdddg|d    }| t¡}t    jdddgdddgd}||d<t|j|ƒt|jjdddgƒdS)N)i?Bg@Œµx¯DúN/Arr rrF©rrr)rrrr6r#óN/A)rrrrrr!)Úalphaz|S1Únum)r r)r!r)r#ré
éé©r&)r)r7r*r    Ú
fill_valuer r.r r,ÚmaÚ getmaskarrayr+r9r;r<Úboolrr#r&Zgetdatar!ÚintrrB)r/r)r0ÚndtypeÚdataZrdataÚvalr2r2r3Útest_set_fieldsXsd
 
 
üûÿ
üûÿ 
 zTestMRecords.test_set_fieldscCs¶|j ¡}| t¡}t|dd<t|jdddddgƒt|jjdddddgƒtt     
d¡t    j   d¡gdt fd    tfgd
}t|dd<t|jdddddgƒt|jjdddddgƒdS) Nr éþÿÿÿrrrrrrr!r6)r)r7r*r    rr r r,rr;ÚarangeÚrandomÚrandrKÚfloat©r/r)r0r2r2r3Útest_set_fields_masks
 
 ÿ z!TestMRecords.test_set_fields_maskcCsÄ|j ¡}| t¡}t|_tt |d¡dgdƒt|dj    |dj    ƒt|dj    |dj    ƒt|j     
¡t j dgdt dƒt|_tt |d¡dgdƒt|j     
¡t j d    gdt dƒdS)
Nr!rrr r#©rrrr6rr?)r)r7r*r    rr&r rHrIr,r9r;r<rJrrUr2r2r3Ú test_set_maskžs
 
 
ÿ
ÿzTestMRecords.test_set_maskcCsÈ|j ¡}| t¡}dddddg|_t|jjdddddgƒt|jjdddddgƒt|jjdddddgƒdddddg|_t|jjdddddgƒt|jjdddddgƒt|jjdddddgƒdS)Nrr)    r)r7r*r    r&r r r!r#rUr2r2r3Útest_set_mask_fromarray®s
 
z$TestMRecords.test_set_mask_fromarraycCsà|j ¡ t¡}tjdddddgdtfdtfdtfgd}||_t|j    jddd    d    dgƒt|j
jd    d    dddgƒt|j jddd    d    dgƒd
|_||_ t|j    jddd    d    dgƒt|j
jd    d    dddgƒt|j jddd    d    dgƒdS) N)rrr)rrrr?r r!r#r6rrF) r)r7r*r    r;r<rJr&r r r!r#Z    fieldmask)r/r0Znmaskr2r2r3Útest_set_mask_fromfields¼s þz%TestMRecords.test_set_mask_fromfieldscCs²|j ¡}| t¡ ¡}t|d<t|j ¡tj    dddddgt
dƒt|j dddddgƒ| t¡ ¡}d|dd…<t|j j d    d    d
d d    gƒt|j jdddddgƒt|jj d d d ddgƒt|jjdddddgƒt|jj dddddgƒt|jjdddddgƒ| t¡ ¡}t|dd…<t|j j ddd
d d    gƒt|j jdddddgƒt|jj ddd ddgƒt|jjdddddgƒt|jj dddddgƒt|jjdddddgƒdS)NrPr?rWr6rr©rrrrrrrg@rrró5rrrrrrr)r)r7r*r    rr r,r9r;r<rJr+r r.r!r#rUr2r2r3Útest_set_elementsÍs<
ÿþ  ÿ  ÿzTestMRecords.test_set_elementsc    Cs|j ¡}| t¡}| ¡z”d|dd…<t|jjdddddgƒt|jjddd    dd
gƒt|j    jd d d ddgƒt|jj
dddddgƒt|jj
|jj
ƒt|jj
|j    j
ƒWn(t k
rÄYnt k
r؂Yn
Xt dƒ‚zd|dd…<Wnt tfk
r Yn
Xtdƒ‚dS)Nr[rPrrrrrrrrrrrr\rrz)Flexible hard masks should be supported !z.Should have expected a readable buffer object!)r)r7r*r    Ú harden_maskr r r.r!r#r,ÚNotImplementedErrorÚAssertionErrorÚ    ExceptionÚ    TypeErrorrUr2r2r3Útest_setslices_hardmaskís.
 
  ÿz$TestMRecords.test_setslices_hardmaskcCsž|j ¡}| t¡}| ¡t|jƒt|_t    |j
|j
ƒ|  ¡t|j ƒt|_t    |j
t   |j|j¡ƒtt  |dj
¡tkƒt|dj
|dj
ƒdS)Nr!r )r)r7r*r    r^r Z    _hardmaskrr&rr,Z soften_maskrHZmake_mask_noneÚshaper'Z    make_maskr rUr2r2r3Ú test_hardmask
s
 
 
 ÿzTestMRecords.test_hardmaskcCs~|j ¡}| t¡}tdtjdƒD]T}tj||d}t |¡}t    |j
|j
ƒt |j |j ƒt    |j |j ƒt |j |j ƒq$dS)Nrr)Úprotocol)r)r7r*r    ÚrangerÚHIGHEST_PROTOCOLÚdumpsÚloadsr r'rr.r,)r/r)ÚmrecÚprotoÚ_Zmrec_r2r2r3Ú test_picklings
 
 
zTestMRecords.test_picklingcCsÎtjdddgdddgtd}tjdddgdddgtd}tjd    d
d gdddgd d}d tfdtfdg}t|||g|dd}| ¡}t|d tjdtdƒt|dtjdtdƒt|dtjdd dƒdS)Nrrrrr%rrrÚoneÚtwoÚthreer$r r!r"©韆çðiø@r>©r'rG)rrrsr6)rrrtr#)rorpr>)rHr<rKrTrÚfilledr r;)r/Ú_aÚ_bÚ_cÚddtyperkZ
mrecfilledr2r2r3Ú test_filled's ÿÿÿzTestMRecords.test_filledcCs’tjdddgdddgtd}tjdddgdddgtd}tjd    d
d gdddgd d}d tfdtfdg}t|||g|dd}t| ¡dddgƒdS)Nrrrrr%rrrrorprqr$r r!r"rrru)rrN)rrr)NNr)rHr<rKrTrr r9)r/rwrxryrzrkr2r2r3Ú test_tolist6s ÿÿÿzTestMRecords.test_tolistcCs0tdtdd}d|dd<t|dddƒdS)Nrr))ÚformatsÚnamesrCr)r    rTr )r/Úxr2r2r3Útest_withnamesCs zTestMRecords.test_withnamescCsºtddtfddtfgd}t|d<t| d¡ ¡dƒtddgd}t|d<t| d¡ ¡tjd    |j    d ¡ƒtd
d d}t|d<d |d<| d¡t
| d¡tjd d g|j    dƒdS)NrÚi)Úsr$Úfr6r)ró1gð?)Zf0z<f8)rr)rrzi4, (2,3)float, floatrWr?) r    rKrTrr rvr:r;r<r'r)r/ZeasyZsoloZmultr2r2r3Útest_exotic_formatsIs"ÿ 
 
 
ÿÿz TestMRecords.test_exotic_formatsN)Ú__name__Ú
__module__Ú __qualname__ZilistÚflistÚslistrKrTrzr&rHr<ÚlistÚzipr)r4r=rOrVrXrYrZr]rcrernr{r|r€r…r2r2r2r3rs* (7   rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
ÚTestViewcCsnt d¡tj d¡}}dtfdtfg}tjtt||ƒƒ|d}t||g|dd}d|j    d<||||f|_
dS)    NrCr r!r6)g"ÀgÀXÀru)FTr) r;rQrRrSrTr<r‹rŒrr&rM)r/r r!rLÚarrrkr2r2r3Ú setup_method_s 
zTestView.setup_methodcCs@|j\}}}}| ¡}tt|tƒƒt||ƒt|j|jƒdS)N)rMr*r r-rrr,)r/rkr r!rŽÚtestr2r2r3Útest_view_by_itselfhs
 
zTestView.test_view_by_itselfcCsd|j\}}}}tdf}| |¡}tt|tjƒƒt|tj    t
t ||ƒƒtdƒt|dtj kƒdS)Nrr6)rr) rMrTr*r r-rHZ MaskedArrayr r;r<r‹rŒr)r/rkr r!rŽÚntyperr2r2r3Útest_view_simple_dtypeos 
zTestView.test_view_simple_dtypecCs~|j\}}}}dtfdtfg}| |¡}tt|tƒƒt|| |¡ƒt|ddtkƒt|j    t
     |¡ƒt|j dkƒdS)NÚAÚBr) rMrTr*r r-rrrr r'r;Z _fill_value)r/rkr r!rŽZalttyperr2r2r3Útest_view_flexible_typews
z TestView.test_view_flexible_typeN)r†r‡rˆrr‘r“r–r2r2r2r3r]s    rc@sÐeZdZejdddgdddgedZejdddgdddgedZejd    d
d gdddgd dZ    d efdefdgZ
e eee    ge
ddZ e ejeje    jfe
dZe ee
fZdd„Zdd„Zdd„Zdd„Zdd„ZdS)ÚTestMRecordsImportrrrrr%rrrrrrr$r r!r")s99999s99999.r@rur6c
CsÆtjdddgdddgtd}tjdddgdddgtd}tjd    d
d gdddgd d}|j\}}}td |||fƒD]\}}tt||ƒj|jƒqptjddd    gdddgt    d}    t
t |    |j d|dƒdS)Nrrrrr%rrrrorprqr$r(r6) rHr<rKrTrMrŒr r8r,Úobjectrrr')
r/rwrxryrkÚnrecrmrƒÚlÚ_xr2r2r3Útest_fromarrayss z"TestMRecordsImport.test_fromarraysc Cs|j\}}}dddg}t|dd}t|dd}t||ƒt|ƒ}t|j|jƒ|jjD]}tt||ƒt|j|ƒƒqVt|     ¡dd}t|jdt
fdt fd    gƒt d
d ƒD] \}    }
tt||    ƒt|j|
ƒƒq¨t|ƒ}t|j|jƒt|j|  ¡ƒt|j|jƒdS) N)rÚabcgÀ™™ @r)rZxygÀÌÌ@r)rú g ™™Ù?rzc1, c2, c3, c4)r~zc1,c2,c3Úc1Úc2)Úc3z|S5)rŸr r¡r()rMÚrecfromrecordsrrr r'r~r8r.r9rKrTrŒrvr,) r/rkr™rzZpalistÚpaÚmpaÚ_mrecr1rƒÚnr2r2r3Útest_fromrecords›s( þ  
 z#TestMRecordsImport.test_fromrecordscCsö|j\}}}t| ¡|dddgd}t|j|jƒt|j ¡dddgƒt| ¡|dd}t|j|jƒt|j ¡dddgƒt| ¡||jd}t|j|jƒt|j ¡|j ¡ƒt| ¡||j ¡d}t|j|jƒt|j ¡|j ¡ƒdS)Nrr)r'r&r?rWT)rMrr9rr.r r,)r/rkr™rzr¥r2r2r3Útest_fromrecords_wmaskµs 
ÿz)TestMRecordsImport.test_fromrecords_wmaskc
Cs”d}tƒ4}t|dƒ}| |¡W5QRXt|ddd}W5QRXtt|tƒƒt|jddddgƒt|j    j
ddddgƒt|j dddd    gƒdS)
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ú,ZABCDEFG)Ú    delimiterÚvarnamesrrg€OAg»½×Ùß|Û½) rÚopenÚwriter
r r-rr ÚFÚEr,ÚC)r/ZfcontentÚpathrƒZmrectxtr2r2r3Útest_fromtextfileÊsÿ z$TestMRecordsImport.test_fromtextfilecCsT|j\}}}dddgdddg}}t|tj||dƒ}t|j|ƒt|jj|ƒdS)NédéÈi,rrrF)rMr rHr<r Zf3r,)r/rkr™rzÚdÚmr2r2r3Ú test_addfieldÝs
  z TestMRecordsImport.test_addfieldN)r†r‡rˆrHr<rKrwrTrxryrzrrkÚ recfromarraysr.r™rMrœr§r¨r³r¸r2r2r2r3r—ƒs" ÿ ÿ
 r—cCs0tjddgddgdtfdtfgd}|ddS)    N)rÚ2)rÚ4)rr)rrr r!r%r)rHZ masked_arrayrKr˜)Úyr2r2r3Ú#test_record_array_with_object_fieldæs ýr½)Ú__doc__Únumpyr;Znumpy.marHrrrZ numpy.testingrZnumpy.core.recordsrr¢rr¹Znumpy.ma.mrecordsrr    r
r Znumpy.ma.testutilsr r rZ numpy.compatrrrr—r½r2r2r2r3Ú<module>s     D&c