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
U
O±d5Qã@s¦ddlZddlZddlmZddlmZddlmZddl    Z    ddl
Z ddl m Z mZmZmZmZmZddlmZGdd„dƒZGd    d
„d
ƒZGd d „d ƒZd d„ZdS)éN)ÚBytesIO)Úpath)ÚPath)Úassert_Ú assert_equalÚassert_array_equalÚassert_array_almost_equalÚ assert_raisesÚtemppath)Úpicklec@s¤eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'S)(ÚTestFromrecordscCs~tjjdddgdddggdd}t|d     ¡d
ƒt|d jjd ƒt|d jjdƒt|d jjdƒt|djjdƒdS)NéÈÚdbeç333333ó?éÚdeçÍÌÌÌÌÌô?zcol1,col2,col3©Únamesr)r rrÚcol1ÚiÚcol2ÚUé Úcol3Úf)ÚnpÚrecÚ fromrecordsrÚitemÚdtypeÚkindÚitemsize©ÚselfÚr©r&úTd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/core/tests/test_records.pyÚtest_fromrecordssÿz TestFromrecords.test_fromrecordscCs0dtfdtfg}tjjg|d}t|jdƒdS)z0 Verify fromrecords works with a 0-length input ÚaÚb©r ©rN)ÚfloatrrrrÚshape)r$r r%r&r&r'Útest_fromrecords_0lensz%TestFromrecords.test_fromrecords_0lencCs²dddgdddgg}ddd    gd
d d gg}d d d
gd    ddgg}tjj|d tfdtfgd}t|d |ƒt|d|ƒtjj|d dgd}t|d |ƒt|d|ƒt||ƒdS)N)ér)éé)éé)r4r3)r2r1)rr0r0r1r3r4r2rr)r*r+r)rrrÚintr)r$ÚdataZ
expected_aZ
expected_bÚr1Úr2r&r&r'Útest_fromrecords_2d sþz#TestFromrecords.test_fromrecords_2dcCs*tjjddddd}t|d ¡dƒdS)Ns¼abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgzi2,a3,i4r1Úbig©Úformatsr.Ú    byteorderr0)idcsefgidcba©rrÚarrayrrr#r&r&r'Útest_method_array4sz!TestFromrecords.test_method_arraycCs4tjjdddddddgdd    }t|d
 ¡d ƒdS) N©r0é r)©rér*©r1é!Úc©r2é,Úd©r3é7Úex©r4éBr©ééMÚgúu1,f4,a1©r<r0)rg6@óbr>r#r&r&r'Útest_method_array28sÿÿz"TestFromrecords.test_method_array2cCs>tjjdddddddgdd    }t|d
dd …d
 ¡d ƒdS) NrArCrErHrKrNrPrTrUr0r)r2gF@ódr>r#r&r&r'Útest_recarray_slices=sÿÿz$TestFromrecords.test_recarray_slicescCs„t ddddg¡}t ddddg¡}t d    dddg¡}tjj|||gd
d }t|d ¡d ƒd |d<t|jt ddddg¡ƒdS)Nr0rr1r2r)ÚddÚxyzZ12皙™™™™ñ?za,b,cr)rrZç@é")rr?rÚ
fromarraysrrr))r$Úx1Zx2Zx3r%r&r&r'Útest_recarray_fromarraysBsz(TestFromrecords.test_recarray_fromarrayscCsÀt t t¡d¡}t |d¡}t|dƒ}| d¡tjj|dddd}| d¡tjj    |dddd}| d¡t
ƒ}|  |  ¡¡| d    ¡tjj|dddd}|  ¡t||ƒt||ƒdS)
Nr6zrecarray_from_file.fitsÚrbi€úf8,i4,a5r1r:r;r)rÚjoinÚdirnameÚ__file__ÚopenÚseekrrÚfromfiler?rÚwriteÚreadÚcloser)r$Údata_dirÚfilenameÚfdr7r8Z bytes_arrayZr3r&r&r'Útest_recarray_fromfileKs 
 
 
 
 
 
z&TestFromrecords.test_recarray_fromfilecCs¾d}tj|dd}tj|dd}tj|dd}tt|ƒƒD]}ttddƒƒ||<q:tjj|||gdd}tt|ƒƒD]D}t|j|ttddƒƒkƒt|j    |dkƒt|j
|dkƒqtdS)    Né
ÚOr+Úf8r0zdate,data1,data2rg) rÚzerosÚrangeÚlenÚlistrr_rÚdateZdata1Zdata2)r$Úcountr)r*rGrZminer&r&r'Útest_recarray_from_obj\sz&TestFromrecords.test_recarray_from_objcCs¾tjddgddgd}tj |¡}tt|ƒt d¡ƒt tjddd¡}tttj |¡ƒ     d    ¡ƒtj tjd
d d¡}tt|ƒ 
d ¡d ƒtj tjd
dd¡}tt|ƒ 
d¡d kƒdS)N)r0gš™™™™™¹?)rgš™™™™™É?)Úfooú<i4)Úbarz<f8r+zi            rec.array([(1, 0.1), (2, 0.2)],
                      dtype=[('foo', '<i4'), ('bar', '<f8')])r2rsz    rec.arrayr1úi4,i4z numpy.recordéÿÿÿÿÚi4z dtype=int32) rr?rrÚreprÚtextwrapÚdedentÚonesrÚ
startswithÚfind©r$r)r&r&r'Útest_recarray_reprjs
ÿ þz"TestFromrecords.test_recarray_reprc    Csltjjddd}tt|ƒt d¡ƒ|d}tt|ƒdƒztjd    dtt|ƒd
ƒW5tjddXdS) N)r0r]Z2003z<i4,<f8,<M8[Y]r+zt            rec.array((1, 2., '2003'),
                      dtype=[('f0', '<i4'), ('f1', '<f8'), ('f2', '<M8[Y]')])r&z(1, 2., '2003')F)Úlegacyz1.13z#(1, 2.0, datetime.date(2003, 1, 1)))rrr?rrr‚rƒZset_printoptions)r$Zarr_0dÚrecordr&r&r'Útest_0d_recarray_reprs z%TestFromrecords.test_0d_recarray_reprcCstjddgdtfdgd}tj |¡}| tj¡}| t tj|jf¡¡}tdt    |ƒdtiƒ}tdt    |ƒdtiƒ}tdt    |ƒdtiƒ}t
t |ƒtjƒt
|jj tjƒt
||ƒt
t |ƒtjƒt
|jj tjƒt
||ƒt
t |ƒtj ƒt
|jj tjƒt
||ƒdS)N©r0ÚABC©rZDEFr{©r}ÚS4r+znumpy.Únumpy) rr?r5rÚviewÚrecarrayr rŠÚevalrrÚtypeÚndarray)r$r)Z    recordarrZrecarrZ
recordviewZ recordarr_rZrecarr_rZ recordview_rr&r&r'Útest_recarray_from_reprŽs$
 
ÿ  
 
z'TestFromrecords.test_recarray_from_reprc Cstjddgdtfdgd}tjdddd    d
gtjd}ttj |¡jjtjƒtttj |¡ƒtj    ƒttj |¡jjtjƒtttj |¡ƒtj    ƒt| 
tj    ¡jjtjƒtt| 
tj    ¡ƒtj    ƒt| 
tj    ¡jjtjƒtt| 
tj    ¡ƒtj    ƒtj tj d    d d¡}| 
d ¡ 
d ¡}tt|ƒtj    ƒt|jjtjƒtj tj d    d ddgd¡}t|djjtjƒtt|dƒtj    ƒGdd„dtj    ƒ}| 
|¡}tt|dƒ|ƒddddg}tjjddddgdfddddgdfg|d}t|j jjtjƒt|j jjtjƒt|jjjtjƒt|jjjtjƒtj tj d    dd¡}t| 
d¡jjtjƒt| 
d¡jjtjƒt| 
d¡jjtjƒt| 
d¡jjtjƒtj d    d dtj d    d dg}|D]P}    tj |    ¡}
|
 
|
jjpÜ|
jtj¡} t| jj|    jjƒtt| ƒt|    ƒƒqºdS)NrŒrŽr{rr+r0rr1r2r3zf4,i4rs)r)r€)r*r€)rGr~rGc@s eZdZdS)z.TestFromrecords.test_recarray_views.<locals>.CN)Ú__name__Ú
__module__Ú __qualname__r&r&r&r'ÚCÃsr›)r)úf4,f4)r*ÚV8)rG)Zf4r)rJ©Úi8r~©r0r0s11111111r~rœ)r€rrrž)rr?r5Úint64rrr r•rŠr“r’r„r)r*ZvoidrGÚfloat32rJÚint32Úfieldsr–) r$r)r*r%Úrvr›rGZ
test_dtypeZarrsÚarrrZarr2r&r&r'Útest_recarray_views¥s^
 
ÿÿ
 
ÿÿÿ z#TestFromrecords.test_recarray_viewscCs~tjjdddgdd}tjjdddgdd}t|j|jkƒt|j|jkƒtt|ƒƒD] }t||     ¡||     ¡kƒqXdS)N)r0ÚabcgÀ™™ @r)rZxygÀÌÌ@r0)rú g ™™Ù?rzc1, c2, c3, c4r)
rrr?rrr r.rurvr)r$ÚraÚpaÚkr&r&r'Útest_recarray_from_namesãs$ýüýüz(TestFromrecords.test_recarray_from_namescCs¸tjjdddgdd}dddg|_t|d    dddgƒtt|jƒt|jƒkƒd
|_t|jd
kƒd d d g|_t    |dd d d ggƒd|_
t    |ddddggƒtt |j
t j jƒƒdS)N)r0r¨gffffff@)rr[gÍÌÌÌÌÌ@)r1Zwrsrzfield, shape, meanrr\gš™™™™™@gffffff
@Úmean©r0r1ÚAÚBr›r.r3Úfield)rrr?r®rrr•Úvarr.rr²Ú
isinstanceÚ collectionsr¨ÚCallable)r$rªr&r&r'Útest_recarray_conflict_fieldsós
ÿþ  z-TestFromrecords.test_recarray_conflict_fieldscCsÎtjjddgdtfdtfgd}t|jddgƒt|djdƒt|jdd    gƒt|d
jd    ƒt dtfdtfg¡}tjjddg|d}t|jddgƒt|djdƒt|jdd    gƒt|d
jd    ƒdS) N)r0r))rÚbbbr)r*r+r0rrr¸r)    rrrr5Úobjectrr)r*r )r$r)Zndtyper&r&r'Ú$test_fromrecords_with_explicit_dtypes ÿz4TestFromrecords.test_fromrecords_with_explicit_dtypecCsDtjddgddtfgd}| tj¡}t|jd|jdkdƒdS)    N)úabc r0)r¨r©r{rr}r+rr0F)rr?r5r’r“rr{r‡r&r&r'Útest_recarray_stringtypess
 
 
ÿ z)TestFromrecords.test_recarray_stringtypescCsât d¡dft d¡dfdœ}tjjddgddd    tfd
tfgfd tfd |fgd }tt|jƒtjƒtt|dƒtjƒtt|j    ƒtj
ƒtt|dƒtj
ƒt|j    jjtj ƒtt|d ƒtj
ƒt|j jjtj ƒtt |j jjƒ|ƒtt|jƒtjƒtt|d ƒtjƒtt|dj    ƒtj ƒtt|ddƒtj ƒt|dj    jdƒt|dj    d    dƒt|ddjdƒt|ddd    dƒt|dj jdƒt|dj ddƒt|dd jdƒt|dd ddƒdS)NZS5rr4)r›ÚD)r»r r0)ÚabcdeZfgehi)r¨)rr1r0)r¿Zjklmnr¼r}r°r±ÚbazÚquxr+r{r0sfgehir¾)rr rr?r5rr•r{r–r}r“rŠrÁÚdictr¤rÀr°r¾)r$Z
qux_fieldsr)r&r&r'Útest_recarray_returntypess<ÿþþz)TestFromrecords.test_recarray_returntypescCsždgddgdg}tj |¡}t|ddddgƒt|ddddgƒt ddg¡}tjj||d}t|jd    ƒt|dd
d
d
gƒt|dd d d gƒdS) NÚtestr1ÚÚf0Úf1)rÆz|S4)rÇz|Sr+r2stestó)rrr_rr r")r$ÚcolsrÚdtr&r&r'Útest_zero_width_strings4s  z'TestFromrecords.test_zero_width_stringsN)r˜r™ršr(r/r9r@rWrYrarprzrˆr‹r—r§r­r·rºr½rÃrËr&r&r&r'r s&        >r c@seZdZdd„ZdS)Ú TestPathUsagec
Cs†tddr}t|ƒ}tj d¡tj d¡ d¡}d|d<| d¡}| |¡W5QRXtj    j
j |ddd    }t ||ƒW5QRXdS)
Nz.bin)Úsuffixé{rqrc)gà?rqr¿r3Úwb)r<r.) r
rrÚrandomÚseedZrandZastypergZtofileÚcoreÚrecordsrir)r$rr)roÚxr&r&r'Útest_tofile_fromfileEs   
þz"TestPathUsage.test_tofile_fromfileN)r˜r™ršrÕr&r&r&r'rÌCsrÌc@s¼eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zej dddd g¡d!d"„ƒZej dddd g¡d#d$„ƒZd%d&„Zd'S)(Ú
TestRecordcCs tjjddgdddgd|_dS)N)r0rr1)r2r3r4©rr|©rr|)rr|r+)rrrr6©r$r&r&r'Ú setup_methodTs  þÿzTestRecord.setup_methodcCs4|j}t|jddƒd|d_t|jddƒdS©Nrr0©r6rrr‡r&r&r'Útest_assignment1Zs
zTestRecord.test_assignment1cCs4|j}t|jddƒd|jd<t|jddƒdSrÛrÜr‡r&r&r'Útest_assignment2`s
zTestRecord.test_assignment2cCs|j}dd„}tt||ƒdS)NcSsd|d_dS)Nr0r)Zcol5)rÔr&r&r'Úassign_invalid_columniszATestRecord.test_invalid_assignment.<locals>.assign_invalid_column)r6r    ÚAttributeError)r$r)rßr&r&r'Útest_invalid_assignmentfsz"TestRecord.test_invalid_assignmentc    Csptjjddgdgd}d|j_ttƒddg|_W5QRXttƒ"|jddgf|j    j
džŽW5QRXdS)    Nr,)r0)rr€r+Frr1r) rrr?ÚflagsÚ    writeabler    Ú
ValueErrorrZsetfieldr r¤r#r&r&r'Útest_nonwriteable_setfieldns 
 
z%TestRecord.test_nonwriteable_setfieldcsb|jddg}t|jjdƒt|jjdddgƒ|jddg‰tˆjjdƒtt‡fdd    „ƒdS)
Nrr)rrr×rØ)rÅz|V4)rrcsˆjjS)N)r Údescrr&©Úyr&r'Ú<lambda>‚rÈz5TestRecord.test_out_of_order_fields.<locals>.<lambda>)r6rr rrær    rä)r$rÔr&rçr'Útest_out_of_order_fieldswsÿz#TestRecord.test_out_of_order_fieldsc    Cs|tjdgfgdtjfdtjdfgd}tdtjdƒD]@}t|t tj||d¡ƒt|dt tj|d|d¡ƒq6dS)Nr0r)r*rr+r©Úprotocol)    rr?r£rur ÚHIGHEST_PROTOCOLrÚloadsÚdumps©r$r)Úprotor&r&r'Ú test_pickle_1„s &ÿzTestRecord.test_pickle_1c    Cs\|j}tdtjdƒD]@}t|t tj||d¡ƒt|dt tj|d|d¡ƒqdS)Nrr0rër)r6rur rírrîrïrðr&r&r'Ú test_pickle_2Œs ÿzTestRecord.test_pickle_2cCsh|j}tdtjdƒD]L}t tj|d|d¡}t|jjƒt|jj    ƒt|jj
ƒt|jj ƒqdS)Nrr0rrë) r6rur rírîrïrrâÚ c_contiguousÚ f_contiguousrãZaligned)r$r)rñr«r&r&r'Ú test_pickle_3“s   zTestRecord.test_pickle_3c
    CsÖt ddg¡}tjd|d}tdƒf}||d<d|d<|d     ¡\}}|tjjjksXt‚|\}}t    |t
ƒrnt‚t t ||d
ƒt  |d    ¡}t  |¡}    |d    |    ks¤t‚t t¡|t d ¡|ƒ|ksÈt‚W5QRXdS) N)Úobjrr)r5rr0r+semanr÷é*r5ré rr)rr ÚemptyÚ    bytearrayÚ
__reduce__rÒZ
multiarrayZscalarÚAssertionErrorr´Úbytesr    Ú RuntimeErrorr rïrîÚpytestZwarnsÚDeprecationWarning)
r$rÊr)r6ZctorÚargsr r÷ÚdumpZ    unpickledr&r&r'Útest_pickle_voids
 
 zTestRecord.test_pickle_voidcCsft ddg¡}tjd|d tj¡}t dddg¡|_tjdd    tfd
tfd t    fgd}|d    d
gdS) N)r{rŸ)r}rrr¯r+r0rr1)rrÔrèÚz)
rr rtr’r“r?r{r¹r-r5)r$rÊr%rªr&r&r'Útest_objview_record¶s
 zTestRecord.test_objview_recordcCs:tjddtdfgd}d|d_t|djt d¡ƒdS)Nr0rÔr3r+r)rr“r-rÔrr„)r$rr&r&r'Útest_record_scalar_setitemÀs
z%TestRecord.test_record_scalar_setitemcs0tjddtfdtfgd‰tt‡fdd„ƒdS)N)r1rÔrèr+cs
ˆdgS)NZnofieldr&r&©r¦r&r'réÉrÈz/TestRecord.test_missing_field.<locals>.<lambda>)rrtr5r    ÚKeyErrorrÙr&rr'Útest_missing_fieldÆszTestRecord.test_missing_fieldcCs,t d¡tjdddgdg}tj |¡}dS)Nrq)r)z<u2)r*z<f4r+)rZaranger„rr_)r$Zarraysr¦r&r&r'Ú(test_fromarrays_nested_structured_arraysËsþz3TestRecord.test_fromarrays_nested_structured_arraysÚnfieldsrr0rcCs|t dtjfdtjfdtjfgd|…¡}t d|¡ tj¡}|jjtjksPt‚|jtjks`t‚||_|jjtjksxt‚dS)Nr)r*rGr1)    rr Úuint8rtr’r“r•rŠrý)r$r rÊr6r&r&r'Útest_assign_dtype_attributeÒs *z&TestRecord.test_assign_dtype_attributecCs¢t dtjfdtjfdtjfgd|…¡}t d|fg¡}t d|¡ tj¡}t|tjƒs^t‚t|dtjƒsrt‚|d}t|tjƒsŠt‚t|dtjƒsžt‚dS)z> Test that nested structured types are treated as records too r)r*rGNÚinnerr1r)    rr r rtr’r“r´rýrŠ)r$r rÊÚdt_outerr6Údata0r&r&r'Útest_nested_fields_are_recordsßs*z)TestRecord.test_nested_fields_are_recordscCsŽt dtjfdtjfdtjfg¡}|ddg}|j|jks>t‚t d|fg¡}t d|¡ tj¡}t|dj|ƒ|d}t|dj|ƒdS)z) test that trailing padding is preserved r)r*rGrr1rN)    rr r r"rýrtr’r“r)r$rÊZ dt_padded_endrr6rr&r&r'Útest_nested_dtype_paddingís" z$TestRecord.test_nested_dtype_paddingN)r˜r™ršrÚrÝrÞrárårêròrórörrrr
r rÚmarkZ parametrizerrrr&r&r&r'rÖSs&     
 
 
 
rÖcCs¦ddddddg}ttj |¡gkƒddddddg}ttj |¡dgkƒddddddddg}ttj |¡ddgkƒddddddddg}ttj |¡ddgkƒdS)Nr0rr1r2r3r4)rrrZfind_duplicate)Úl1Úl2Úl3r&r&r'Útest_find_duplicateýsr)Úcollections.abcrµr‚ÚiorÚosrÚpathlibrrr‘rZ numpy.testingrrrrr    r
Z numpy.compatr r rÌrÖrr&r&r&r'Ú<module>s     5+