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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
U
P±d8¦ã@s.ddlZddlZddlmZddlmZddlmZddl    m
Z
m Z ddl m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZejjjZejjj Z ejjj!Z!ejjj"Z#ejjj$Z%Gdd„dƒZ&Gdd    „d    ƒZ'Gd
d „d ƒZ(Gd d „d ƒZ)Gdd„dƒZ*Gdd„dƒZ+Gdd„dƒZ,Gdd„dƒZ-dS)éN)Ú MaskedRecords)Ú assert_equal)Úassert_Ú assert_raises)Ú drop_fieldsÚ rename_fieldsÚget_fieldstructureÚrecursive_fill_fieldsÚfind_duplicatesÚ merge_arraysÚ append_fieldsÚ stack_arraysÚjoin_byÚ repack_fieldsÚunstructured_to_structuredÚstructured_to_unstructuredÚapply_along_fieldsÚrequire_fieldsÚassign_fields_by_namec@steZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„ZdS)ÚTestRecFunctionscCstt ddg¡}t dddg¡}tjddgdd    tfgd
}tjd d gd tfddtfdtfgfgd
}||||f|_dS©Nééé
éé©ÚAçð?©ÚBç@©rz|S3r ©Údtype©r©rç@©é©éç@ÚaÚbÚbaÚbb©ÚnpÚarrayÚfloatÚintÚdata©ÚselfÚxÚyÚzÚw©r=úXd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/lib/tests/test_recfunctions.pyÚ setup_methods
 
ÿ
ÿzTestRecFunctions.setup_methodc CsH|j\}}}}t||fdd}t|t dtfdtfg¡ƒt||fdd}t|t dtfdtfg¡ƒt||fdd}t|t dtfddtfg¡ƒt||fdd}t|t dtfdddtfgfg¡ƒt||fdd}t|t dtfdtfdtfd    tfg¡ƒt||fdd}t|t dtfddtfd
dtfd    tfgfgfg¡ƒdS) NT©ÚflattenÚFr"r r-r/r0r.)r6Ú    zip_descrrr2r$r5r4)r8r<r9r:r;Útestr=r=r>Útest_zip_descr sFÿÿÿ
ÿÿ
þÿ
ÿÿÿzTestRecFunctions.test_zip_descrcCs&tjddgdtfddtfdtfgfgd}t|dƒ}tjdd    gddtfdtfgfgd}t||ƒt|dƒ}tjd
d gdtfgd}t||ƒt|dgƒ}tjd d gdtfddtfgfgd}t||ƒt|ddgƒ}tjd
d gdtfgd}t||ƒt|ddgƒ}tjddggd}t||ƒdS)Nr%r(r-r.r/r0r#)r&)r*©r©r))r)r')r))r,r=)r2r3r5r4rr©r8r-rDÚcontrolr=r=r>Útest_drop_fieldsAs,
ÿ
 
ÿ
 
 
 
ÿ
 
z!TestRecFunctions.test_drop_fieldscCsštjddddgffddddgffgd    tfd
d tfd tdffgfgd }t|dddœƒ}dtfd
d tfdtdffgfg}| |¡}t|j|ƒt||ƒdS)Nrrr'ç>@r)r+r,gN@r-r.r/r0r#rÚBB)r-r0)r2r3r5r4rÚviewrr$)r8r-rDZnewdtyperIr=r=r>Útest_rename_fieldsas"ÿÿ 
 z#TestRecFunctions.test_rename_fieldscCs t ddtfg¡}t|ƒ}t|dƒt dtfddtfdtfgfg¡}t|ƒ}t|dƒt dtfdgfg¡}t|ƒ}t|d    ƒt g¡}t|ƒ}t|d
ƒdS) Nr"r ©rr r-r.r/r0)r-)r.)r/r0)r-)r.r=r=)r2r$r4Ú    get_namesrr5©r8ÚndtyperDr=r=r>Útest_get_namesls
"
 
 
zTestRecFunctions.test_get_namescCs t ddtfg¡}t|ƒ}t|dƒt dtfddtfdtfgfg¡}t|ƒ}t|dƒt dtfdgfg¡}t|ƒ}t|d    ƒt g¡}t|ƒ}t|d
ƒdS) Nr"r rOr-r.r/r0)r-r.r/r0©r-r.r=)r2r$r4Úget_names_flatrr5rQr=r=r>Útest_get_names_flat~s
"
 
 
z$TestRecFunctions.test_get_names_flatc    Csæt ddtfg¡}t|ƒ}t|ggdœƒt dtfddtfdgfg¡}t|ƒ}t|ggdgdgdœƒt dtfddtfdd    tfd
tfgfgfg¡}t|ƒ}ggdgdgddgddgd œ}t||ƒt g¡}t|ƒ}t|iƒdS) Nr"r rOrÚBA©rLz|S1)rr rWrLrLÚBBAÚBBB)rr rWrLrYrZ)r2r$r4rrr5)r8rRrDrIr=r=r>Útest_get_fieldstructures(
ÿÿ ÿ
 
z(TestRecFunctions.test_get_fieldstructurecCsŠtjddddddgddddddgdtfd    d
tfd gfgd }t|d dd}ddg}tt|dƒ|ƒt|d||dƒt|ddd}dddddg}tt|dƒ|ƒt|d||dƒt|d    dd}ddddg}tt|dƒ|ƒt|d||dƒt|d
dd}ddddg}tt|dƒ|ƒt|d||dƒt|ddd}dddddg}tt|dƒ|ƒt|d||dƒdS)N)r©r!r )rr\)r)rr )r)r!ÚC)r©rr)rr^)r©rrrr rWrX©Úmaskr$FT©Z
ignoremaskÚ return_indexrréÿÿÿÿ)Úkeyrcrér+r)rL)Úmar3r5r4r
rÚsortedrHr=r=r>Útest_find_duplicates«s@
ÿÿü  z%TestRecFunctions.test_find_duplicatesc    CsÆdtfg}tjdddddddgdddddddgd |¡}t|ddd}dddd    g}tt|d
ƒ|ƒt|d||d
ƒt|d dd}ddddd    d g}tt|d
ƒ|ƒt|d||d
ƒdS) Nr-rrrfr©raTrbr)rdFé)r5rgr3rMr
rrh)r8rRr-rDrIr=r=r>Útest_find_duplicates_ignoremaskÌs
ÿÿ z0TestRecFunctions.test_find_duplicates_ignoremaskcCs~tjddd}tjd|d}tt|ƒt d¡ƒtt|ƒjdƒttt|ƒdd|ƒt tj|f¡}tt|ƒjtjkƒdS)Nzu1,f4,i8T©Zalignrr#é )    r2r$ÚzerosrrÚitemsizeÚrecordrÚtype)r8Údtr-r=r=r>Útest_repack_fieldsÛsz#TestRecFunctions.test_repack_fieldscCs¶tjddddgd}t|ƒ}t|tjdddƒtjdd    d
d gd d dgd}tjt|ddgƒdd}t|t ddddg¡ƒtjt|dgƒdd}t|t ddddg¡ƒt d¡ d¡}t||j    ƒ}tjddddgfddd dgfd!d"d#d$gfd%d&d'd(gfgdd)d*d+gfd,gd}t||ƒtjdd    d
d gd d dgd}tt
tj|ƒt d-d.d/dg¡ƒtt
tj|ddgƒt ddddg¡ƒtjdd    d
d gd d0d1gd}t|ƒ}t||j    ƒ}t |j |kƒt |j |kƒtjd2d3d4gddgd5d6ggfd7d8d!gd9d:gd;d<ggfgd=d>d?gd}t|ƒ}t||j    ƒ}t |j |kƒt |j |kƒt     dt fd@t fg¡}    t     dA|    fd)|    fdB|    fg¡}
t d!|
¡} t| t d} t| tjdCt dƒdDdE„} dFdG„}dOdHdI„}|| |tjtjƒd4ƒƒ}t||ƒdJtj|fƒ|| | tjd3ƒd3ƒƒ}t||ƒdKtj|fƒ|tjƒ}t||ƒdLtj|fƒ|tj| | tjd3ƒd3ƒƒ}t||ƒdMtj|fƒ|ƒ}tttt d4|¡ƒtttt d4|¡tjdttttjdNtjdƒdS)PNr)©r-Úi4)r.zf4,u2)ÚcÚf4rr#)r)r+Úf8)rrr+)r)r+é)rzéé )rr|é )r9rv)r:rx)r;ryr9r;rd)Zaxisr'g@g"@ç&@rg@ç@ç$@rr)rrr+)r,rzç @r)r~r}g*@g,@é)g0@ég2@g3@r.)Úf0rx)Úf1Úu2)rwrx©rgUUUUUU@gUUUUUU@gUUUUUU!@)r:rv)r;rvrrrfrkrzr{é    r|r}rné)Zx0rv)Úx1)rvr)Zx2)rv©rrr:r-rw)rrkcSst ||f¡S©N)r2r$)rsÚshaper=r=r>Úsubarray szBTestRecFunctions.test_structured_to_unstructured.<locals>.subarraycWst dd„t|ƒDƒ¡S)NcSsg|]\}}d |¡|f‘qS)zx{})Úformat)Ú.0Úirsr=r=r>Ú
<listcomp>$szXTestRecFunctions.test_structured_to_unstructured.<locals>.structured.<locals>.<listcomp>)r2r$Ú    enumerate)Zdtsr=r=r>Ú
structured#szDTestRecFunctions.test_structured_to_unstructured.<locals>.structuredcSs2t d|¡}t||d}t||ƒ}|j|j|jfS)Nr=r#)r2rorrrr$)rsr$ÚarrÚretZbackarrr=r=r>Úinspect&s  
zATestRecFunctions.test_structured_to_unstructured.<locals>.inspect)rkrGrF)r+)rfr)N)r2rorrr3ZmeanÚarangeZreshaperr$rrÚbaser5Úint32rÚ
ValueErrorÚNotImplementedError)r8r-Úoutr.rwZwantÚdÚddZdddZpointZtriangler•ÚresrŽr”r—rsr=r=r>Útest_structured_to_unstructuredçs–ÿ    ý
þü
ÿ ÿÿÿ ÿÿþ   
 
 
ÿÿz0TestRecFunctions.test_structured_to_unstructuredcCsJt d¡}dtfdtfg}t |¡}t||d}t||d}t||ƒdS)N)rrr9r:r#)r2ror4r$rr)r8r-Ztest_dtype_argsZ
test_dtypeZfield1Zfield2r=r=r>Útest_unstructured_to_structuredAs 
 
  z0TestRecFunctions.test_unstructured_to_structuredcCs^tjddddgd}ddg}tt||ƒt d|¡ƒtjddg|d}t||d    d
t|tjd d g|jdƒt||ƒt|tjd dg|jdƒtjddddgfgd}ddgfg}tt||ƒt d|¡ƒtjddg|d}t||d    d
t|tjddg|jdƒt||ƒt|tjddg|jdƒt d¡t d¡}}t||ƒt|ddƒdS)Nrru)r.ry©rwÚu1r#©r.rx©rr)rfr)F)Zzero_unassigned)rrr)rrfr))rrr)rrfr)r-)r‡)©rf)r¦)©rrf))rr))rrfrfrr=)r2Úonesrrr3rr$)r8r-Znewdtr.r=r=r>Útest_field_assignment_by_nameJs&
 
 
z.TestRecFunctions.test_field_assignment_by_nameN)Ú__name__Ú
__module__Ú __qualname__r?rErJrNrSrVr[rirlrtr¡r¢rªr=r=r=r>rs    !  ! Z    rc@seZdZdd„Zdd„ZdS)ÚTestRecursiveFillFieldscCsftjddgdtfdtfgd}tjd|jd}t||ƒ}tjdddgdtfdtfgd}t||ƒdS)N©rr€©rç4@rr r#r§©rç)r2r3r5r4ror$r    r©r8r-r.rDrIr=r=r>Útest_simple_flexiblehs
 ÿz,TestRecursiveFillFields.test_simple_flexiblecCsttjddgddgdtfdtfgd}tjd|jd    }t||ƒ}tjddd
gddd gdtfdtfgd}t||ƒdS) Nr¯r°©rrr_rr r`r§r#r²r^)rgr3r5r4ror$r    rr´r=r=r>Útest_masked_flexibleqsÿ
 þz,TestRecursiveFillFields.test_masked_flexibleN)r«r¬r­rµr·r=r=r=r>r®fs    r®c@s\eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dS)ÚTestMergeArrayscCszt ddg¡}t dddg¡}tjddgdd    tfgd
}tjd d gd tfddtfdtfdgfgfgd
}||||f|_dS)Nrrrrrrrr"r r#©r)rr'r=©r))r+r,r=r-r.r/r0Úbcr1r7r=r=r>r?€s
ÿ þzTestMergeArrays.setup_methodcCs||j\}}}}t|ƒ}tjddgdtfgd}t||ƒt|fƒ}t||ƒt|dd}t||ƒt|dd}t||ƒdS)NrFr‡r„r#Fr@T)r6r r2r3r5r©r8Ú_r9r;rDrIr=r=r>Ú    test_soloŠs
 
 
 
 zTestMergeArrays.test_solocCs^|jd}t|dd}t||ƒt|dd}tjddgdtfdtfd    tfgd
}t||ƒdS) NrFr@T)rrr')r)r+r,r-r/r0r#)r6r rr2r3r5r4©r8r<rDrIr=r=r>Útest_solo_w_flatten™s
 
 
ÿz#TestMergeArrays.test_solo_w_flattencCsœ|j\}}}}t||fdd}tjdddgdtfdtfgd}t||ƒt||fd    d}tjdddgd
d
d gdtfdtfgd }t||ƒt|j|jƒdS) NF©Úusemask©rr©rr©rdrr„r…r#Tr^r_r`)r6r r2r3r5rrgra©r8r½r9r:rDrIr=r=r>Ú test_standard¤s ÿ
 þ
zTestMergeArrays.test_standardcCsŒ|j\}}}}t||fdd}tjddgdtfddtfgd}t||ƒt||fd    d}tjd
d gdtfd ddtfgfgd}t||ƒdS) NTr@)rrr)rr r!r„r"r r#F)rr)rrr…©r6r r2r3r5r4rr¼r=r=r>Ú test_flatten´s
ÿ
 
ÿÿzTestMergeArrays.test_flattencCs°|j\}}}}t||fdd}tjddgdtfdtfdtfdtfgd    }t||ƒt||fd
d}dtfd dtfd dtfdtfd gfgfgfg}tjddg|d    }t||ƒdS)NTr@)rrrr')rr)r+r,r„r-r/r0r#Fr…r.r»)rr¹)rrºrÈ)r8r<r9r½rDrIZ controldtyper=r=r>Útest_flatten_wflexibleÂs(
ÿÿ
ÿÿ
ÿz&TestMergeArrays.test_flatten_wflexiblecCs˜|j\}}}}tjdddgdddgd}t||fdd}tjdd    d
gd d d gdtfdtfgd}t||ƒt||fddd}t||ƒtt|tƒƒdS)NrrrfrrjTrÁ©rrr‹)rdrfr¶r^r_r„r…r`)rÂZ
asrecarray)    r6rgr3r r5rrÚ
isinstancer)r8r½r9ZmxrDrIr=r=r>Útest_wmasked_arraysÓs þ
 
z#TestMergeArrays.test_wmasked_arrayscCsdtt ddg¡ dtfg¡t dddg¡fƒ}tjddd    gd
d
d gdtfd tfgd }t||ƒdS)Nrrr-r€r±rKr¯r°)rdrKr^r_r…r`)r r2r3rMr5rgr4r)r8rDrIr=r=r>Útest_w_singlefieldàsÿ þz"TestMergeArrays.test_w_singlefieldcCsT|jd}t|t dddg¡ dtfg¡fƒtjdddgd    d
tfdtfgd dS) Nrdrrrr]©rrr©r r!r)z-1rdrr"r r#)r6r r2r3rMr5r4)r8r;r=r=r>Útest_w_shorter_flexés
 
    $ ÿz#TestMergeArrays.test_w_shorter_flexcCsd|j\}}}}t|d|d|dfdd}tjdgdtfdtfddd    tfgfgd
}t||ƒdS) NrFrÁ)rr©rrr„r…Úf2r"r r#rÈ)r8r½r9r:r;rDrIr=r=r>Útest_singlerecordøsþÿz!TestMergeArrays.test_singlerecordN) r«r¬r­r?r¾rÀrÇrÉrÊrÍrÎrÑrÔr=r=r=r>r¸}s
      r¸c@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) ÚTestAppendFieldscCstt ddg¡}t dddg¡}tjddgdd    tfgd
}tjd d gd tfddtfdtfgfgd
}||||f|_dSrr1r7r=r=r>r?s
ÿ
ÿzTestAppendFields.setup_methodcCsX|j\}}}}t|ddddgd}tjdddgd    d    d
gd tfdtfgd }t||ƒdS) Nrrrr©r6rÃrÄrÅr^r_r„r`©r6r rgr3r5r©r8r½r9rDrIr=r=r>Útest_append_singles þz#TestAppendFields.test_append_singlecCsf|j\}}}}t|ddddgddggd}tjdd    d
gd d d gd tfdtfdtfgd}t||ƒdS)NrOrrrédéÈrÖ)rrrÚ)rrrÛ)rdrrd©rrr)rrrr„rr r`r×rØr=r=r>Útest_append_doubles þz#TestAppendFields.test_append_doublecCsV|jd}t|ddddgd}tjddd    gd
d
d gd d tfdtfgd}t||ƒdS)Nrdr]rrrrÖrÏrÐ)rdçð¿rrÜ©rrrr"r r`)r6r rgr3r4r5r)r8r;rDrIr=r=r>Útest_append_on_flex s
 þz$TestAppendFields.test_append_on_flexcCsf|jd}t|ddddgd}tjddd    gd
d
d gd tfd dtfdtfgfdtfgd}t||ƒdS)Nrr]rrrrÖ)rr&r)r)r*r)rd)rdrÞr)rr^r)rrËrr-r.r/r0r`)r6r rgr3r5r4rr¿r=r=r>Útest_append_on_nested)s 
þÿþûz&TestAppendFields.test_append_on_nestedN)r«r¬r­r?rÙrÝràrár=r=r=r>rÕs
                rÕc@sTeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dS)ÚTestStackArrayscCstt ddg¡}t dddg¡}tjddgdd    tfgd
}tjd d gd tfddtfdtfgfgd
}||||f|_dSrr1r7r=r=r>r?:s
ÿ
ÿzTestStackArrays.setup_methodcCsP|j\}}}}t|fƒ}t||ƒt||kƒt|ƒ}t||ƒt||kƒdSrŒ)r6r rr)r8r½r9rDr=r=r>r¾Cs
 
 
zTestStackArrays.test_solocCsš|j\}}}}t||fdd}t ddddg¡}t||ƒt||fdd}t dddddg¡}t||ƒt||fdd}t dddddg¡}t||ƒdS)NFrÁrrrrr)r6r r2r3rrÆr=r=r>Útest_unnamed_fieldsNs
 
z#TestStackArrays.test_unnamed_fieldscCs|j\}}}}t||fƒ}tjddddgddddgdtfdd    tfgd
}t||ƒt|j|jƒt||fƒ}tjd d d dgddddgdd    tfdtfgd
}t||ƒt|j|jƒt|||fƒ}tjd d d d d dgddddddgdd    tfdtfgd
}t||ƒdS)N)rrdrd)rrdrd)rdrr)rdr r)rrr)rrrr„r"r r`©rrrd©r rrd)rdrdr)rdrdr©rrrrßrÓ)r6r rgr3r5r4rrar¼r=r=r>Útest_unnamed_and_named_fields^sV ÿÿü
 ÿÿü
þþúz-TestStackArrays.test_unnamed_and_named_fieldsc
Csô|j\}}}}tjdddgddtfdtfgd}t||fƒ}tjdd    dddgddtfdtfgd
d
d d d gd }t||ƒt|j|jƒt|||fƒ}ddtfdtfd tfg}tjdddddddg|dddddddgd }t||ƒt|j|jƒdS)N©r-r€çY@©r.r±çi@©rwrKçÀr@r"r r]r#rärårærÜ©r$raZf3)rrrdrd)r rrdrd)r-r€rérd)r.r±rërd)rwrKrírd)rdrdrdr)rdrdrdr)rrrr©rrrr)rrrr)    r6r2r3r4r rgrrar5)r8r½r9r;ÚzzrDrIrRr=r=r>Útest_matching_named_fields~sN ÿ þÿü
ýþû
z*TestStackArrays.test_matching_named_fieldscCsª|j\}}}}tjdddgddtfdtfgd}dd    d
d d œ}t||f|d }tjdddddgddtfdtfgdddddgd}t||ƒt|j|jƒt|j|jƒdS)Nrèrêrìr"r r]r#z???g8À瀇ÃÀgðiøÀ)rr r]ÚD)Údefaults)rrrò)r rròrærÜrî)r6r2r3r4r rgrra)r8r½r;rðrôrDrIr=r=r>Ú test_defaultsšs* ÿþÿü
zTestStackArrays.test_defaultsc    Cs¸dtfdtfdtfg}tjdgdg|d}dtfdtfdtfg}tjdg|d}tjddgdd    g|d}t||fd
d }t||ƒt|j|jƒtt    ƒt||fd d W5QRXdS) Nrr r]©rrrf©rrrr`©r)r+rkr#rÜT)Z autoconvertF)
r5Úboolr4rgr3r rrarÚ    TypeError)r8Úadtyper-Úbdtyper.rIrDr=r=r>Útest_autoconversion«sÿ
 
z#TestStackArrays.test_autoconversioncCsdtfdtfdtfg}tjdgdg|d}dtfdtfdtfg}tjdg|d}t||fƒ}tjddgdd    g|d}t||ƒt|j|jƒdS)
N)r-r)r.r )rwr]rör÷r`rør#rÜ)r5rùr4rgr3r rra)r8rûr-rür.rDrIr=r=r>Útest_checktitles¹s ÿ
z TestStackArrays.test_checktitlesc    Cstjddgddtdfgd}tjddgd    fd
d gd fd dgdfgddtdfdtfgd}t||fƒ}tjddgdfddgdfddgd    fdd gd fddgdfgddgdfddgdfddgdfddgdfddgdfg|jd}t|j|jƒt||ƒt|j|jƒdS)NrÒ)r rr"r rFr#r-r€rér.r±rërwrKrír]óArróBr!óaóbócFT)r6rar$)r2r3r4r rgr$rra)r8r;rðr Úexpectedr=r=r>Ú test_subdtypeÅs@ÿ þ
 
 
ÿþ 
 
 
 
 
û
 
 
 
 
ûò
zTestStackArrays.test_subdtypeN) r«r¬r­r?r¾rãrçrñrõrýrþrr=r=r=r>râ8s       râc@sleZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„ZdS)Ú
TestJoinByc    CsŽtjttt d¡t dd¡t dd¡ƒƒdtfdtfdtfgd    |_tjttt d
d ¡t d d ¡t dd¡ƒƒdtfdtfdtfgd    |_dS)Nré2é<rÚénr-r.rwr#r+r‚éAéKrž©r2r3ÚlistÚzipr˜r5r-r.©r8r=r=r>r?äs
ÿþ
ÿþzTestJoinBy.setup_methodcCsb|j|j}}td||dd}tjdddddgdtfd    tfd
tfd tfd tfgd }t||ƒdS)Nr-Úinner)Újointype)r+é7r
éirÚ)rké8éBéjée)rzé9éCékéf)r{é:éDélég)rˆé;éEéméhÚb1Úb2rwržr#©r-r.rr2r3r5rr´r=r=r>Útest_inner_joinìsþÿýzTestJoinBy.test_inner_joincCsN|j|j}}td||ƒtjdddddgdtfdtfd    tfd
tfgd dS) NrT)r+rrrÚ)rkrrr)rzrrr)r{rrr)rˆr r"r#r-r.rwržr#)r-r.rr2r3r5©r8r-r.r=r=r>Ú    test_joinøs þ ÿýzTestJoinBy.test_joincCs`tjdgdtfgd}tjdt dddg¡fgdtfdgd}td||ƒ}t|| tj¡ƒdS)NrFrer#rrrf)ÚvalueZuint16rf)r2r3r5rrrMrgZ MaskedArray)r8ZfooÚbarr r=r=r>Útest_join_subdtype sÿ
ÿ zTestJoinBy.test_join_subdtypecCs¢|j|j}}td||dƒ}tjddddddd    d
d d d dddddddddgddddddddddddddddddddgdtfdtfdtfdtfgd}t||ƒdS)NrTÚouter©rrrÚrd©ré3rrd©ré4rrd©rfé5rrd©r)é6r#rd©r+rrrd)r+r
rdrÚ©rkrrrd)rkrrdr©rzrrrd)rzrrdr©r{rrrd)r{rrdr©rˆr r"rd)rˆr!rdr#)réFrdr)r|éGrdr)r}éHrdr)rnéIrdr)r‰éJrdr"rï)rrrrr-r.rwržr`©r-r.rrgr3r5rr´r=r=r>Útest_outer_joins`÷
÷
ÿìzTestJoinBy.test_outer_joinc Csz|j|j}}td||dƒ}tjddddddd    d
d d g
d d d d d d d d d d g
dtfdtfdtfdtfgd}t||ƒdS)NrTZ    leftouterr.r/r1r3r5r7r8r9r:r;rïr-r.rwržr`rAr´r=r=r>Útest_leftouter_join1s2üüö zTestJoinBy.test_leftouter_joincCsXtjddddgd}tjddddgd}tddg||dd    d
}t|jjddd d gƒdS) Nrfrur¥r£r#rwr.rF)rrÂZa1Za2)r2ror©rrr$Únames)r8r-r.Újr=r=r>Útest_different_field_orderBsz%TestJoinBy.test_different_field_ordercCsBtjddddgd}tjddddgd}tttdddg||ƒdS)Nrfrur¥r£r#r-r.)r2ror©rr›rr(r=r=r>Útest_duplicate_keysJszTestJoinBy.test_duplicate_keyscCslt ddg¡}t ddg¡}t dddg¡}tjddg|d}tjd    d
g|d}td ||ƒ}t|j|ƒdS) N)reZS5©r*ú<f4©reZS10©Zvalue1rI)Úvalue2rI©ÚSarahr©ÚJohnr,r#©rNr€©rPrre©r2r$r3rr©r8Úa_dtypeÚb_dtypeÚexpected_dtyper-r.r r=r=r>Ú#test_same_name_different_dtypes_keyOsÿ z.TestJoinBy.test_same_name_different_dtypes_keycCslt ddg¡}t ddg¡}t dddg¡}tjddg|d    }tjd
d g|d    }td ||ƒ}t|j|ƒdS) NrJrH)r*ú<f8)rez|S10rK)rLrYrMrOr#rQrRrerSrTr=r=r>Útest_same_name_different_dtypes[sÿ z*TestJoinBy.test_same_name_different_dtypescCsÐt dtdfdg¡}tjdddgtjfdddgdfg|d}t dtdfdg¡}tjdddgdfdddgdfg|d}t dtdfddg¡}tjdddgtjdfg|d}td||ƒ}t|j|ƒt||ƒdS)    NÚposrf)ÚfrIrrr³r#)ÚgrI)r2r$r5r3Úpirr)r8rUr-rVr.rWrr r=r=r>Útest_subarray_keyhs(&  zTestJoinBy.test_subarray_keycCsptjddd}d|_tt|jƒdƒt ddg|¡}t dd    g|¡}td
||ƒ}t d d d g¡}t|j|ƒdS)Nzi1,f4Trm)ÚkÚvrfr¨)rfrrËr‹r`)r`Úi1)Zv1rx)Zv2rx)    r2r$rDrÚlenÚdescrr3rr)r8rsr-r.r rWr=r=r>Útest_padded_dtypevs ÿzTestJoinBy.test_padded_dtypeN)r«r¬r­r?r'r)r,rBrCrFrGrXrZr_rer=r=r=r>rãs       rc@s8eZdZedd„ƒZdd„Zdd„Zdd„Zd    d
„Zd S) Ú TestJoinBy2c    CsŒtjttt d¡t dd¡t dd¡ƒƒdtfdtfdtfgd    |_tjttt d¡t d
d ¡t dd¡ƒƒdtfdtfd tfgd    |_dS) NrrrrÚr    r-r.rwr#r
r ržr )Úclsr=r=r>r?ˆs
ÿþ
ÿþzTestJoinBy2.setup_methodc Csp|j|j}}td||dddd}tjdddd    d
d d d ddg
dtfdtfdtfdtfdtfgd}t||ƒdS)Nr-rBÚ2r©Ú    r1postfixÚ    r2postfixr©rrr
rÚrÚ©rr0rrr©rr2rrr©rfr4rrr©r)r6r!r#r#©r+rr<rr©rkrr=rr©rzrr>rr©r{rr?rr©rˆr r@r"r"r.r%rwržr#r&r´r=r=r>Útest_no_r1postfix‘s2ÿüÿûzTestJoinBy2.test_no_r1postfixc    Cstttd|j|jddddS)Nr-rB)rjrk)rr›rr-r.rr=r=r>Útest_no_postfix sÿzTestJoinBy2.test_no_postfixc Csp|j|j}}td||dddd}tjdddd    d
d d d ddg
dtfdtfdtfdtfdtfgd}t||ƒdS)Nr-Ú1rBrrirlrmrnrorprqrrrsrtrur$r.rwržr#r&r´r=r=r>Útest_no_r2postfix¤s2ÿüÿûzTestJoinBy2.test_no_r2postfixc Cs6tjttt ddgd¡t t d¡d¡t dd¡t dd¡ƒƒdtfd    tfd
tfd tfgd }tjttt ddgd¡t t d¡d¡t d d¡t dd¡ƒƒdtfd    tfd
tfd tfgd }tjddddddddddg
dtfd    tfdtfdtfdtfdtfgd }td    dg||ddd d!}t    |j
|j
ƒt    ||ƒdS)"Nrr|r+rrrrr`r-r.rwr#r
r r)rrrr
rr)r|rr0rr|r)rrr2rr}r)r|rr4rrnrf)rrr6r!r‰r))r|rrr<r‚r+)rrfrr=érk)r|rfrr>rƒrz)rr)rr?ér{)r|r)r r@érˆr$r%Zc1Úc2rxrhrri) r2r3r rZtileÚrepeatr˜r5rrr$)r8r-r.rIrDr=r=r>Útest_two_keys_two_vars³sL&
 
ÿþ&
 
ÿþüÿûÿz"TestJoinBy2.test_two_keys_two_varsN)    r«r¬r­Ú classmethodr?rvrwryrr=r=r=r>rf‡s 
rfc@s eZdZdZdd„Zdd„ZdS)ÚTestAppendFieldsObjz;
    Test append_fields with arrays containing objects
    cCs$ddlm}t|dddƒd|_dS)Nr)ÚdateiÐr)Úobj)Údatetimer‚Údictr6)r8r‚r=r=r>r?Îs z TestAppendFieldsObj.setup_methodcCs|jd}tj|df|dfgdtfdtfgd}tjddgtd}t|d    |d
d }tj|ddf|ddfgdtfdtfd    tfgd}t||ƒd S) z7Test append_fields when the base array contains objectsrƒrr!rr r#rrr]F)r6rÂN)r6r2r3Úobjectr4r5r r)r8rƒr9r:rDrIr=r=r>Útest_append_to_objectsÒs
ÿÿz*TestAppendFieldsObj.test_append_to_objectsN)r«r¬r­Ú__doc__r?r‡r=r=r=r>rÈsr).ZpytestÚnumpyr2Znumpy.margZnumpy.ma.mrecordsrZnumpy.ma.testutilsrZ numpy.testingrrZnumpy.lib.recfunctionsrrrr    r
r r r rrrrrrrÚlibZ recfunctionsZ_get_fieldspecZ get_fieldspecrPrUZ
_zip_descrrCZ
_zip_dtypeZ    zip_dtyperr®r¸rÕrârrfrr=r=r=r>Ú<module>s0   D
 
 
 
 
T6,%A