+
    ei  c                   sf   ^ RI t^ RIHt ^ RIHtHtHtHtH	t	H
t
HtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHt ]P6                  P8                  P:                  t]P6                  P8                  P>                  t]P6                  P8                  P@                  t ]P6                  P8                  PB                  t"]P6                  P8                  PF                  t$ ! R R4      t% ! R R	4      t& ! R
 R4      t' ! R R4      t( ! R R4      t) ! R R4      t* ! R R4      t+ ! R R4      t,R# )    N)append_fieldsapply_along_fieldsassign_fields_by_namedrop_fieldsfind_duplicatesget_fieldstructurejoin_bymerge_arraysrecursive_fill_fieldsrename_fieldsrepack_fieldsrequire_fieldsstack_arraysstructured_to_unstructuredunstructured_to_structured)MaskedRecords)assert_equal)assert_assert_raisesc                   sn   a  ] tR t^ t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tRtV tR# )TestRecFunctionsc                    \         P                  ! ^^.4      p\         P                  ! . RO4      p\         P                  ! R	R
.RR\        3.R7      p\         P                  ! RR.R\        3RR\        3R\        3.3.R7      pWAW#3V n        R#    BdtypeabbabbN
         A      ?r          @r$   z|S3r            @            @nparrayfloatintdataselfxyzw   &    H/usr/lib64/python3.14/site-packages/numpy/lib/tests/test_recfunctions.pysetup_methodZTestRecFunctions.setup_method#   s    HHaXHH\"HHi+(3,79HHm]3 #Je}tSk.J(KLN1L	    c                sB   V P                   w  rr4\        W"3R R7      p\        V\        P                  ! R\
        3R\
        3.4      4       \        W"3RR7      p\        V\        P                  ! R\
        3R\
        3.4      4       \        W$3R R7      p\        V\        P                  ! R\
        3R
R\        3.4      4       \        W$3RR7      p\        V\        P                  ! R\
        3RR
R\        3.3.4      4       \        W!3R R7      p\        V\        P                  ! R\
        3R\
        3R\        3R\
        3.4      4       \        W!3RR7      p\        V\        P                  ! R\
        3RR\
        3RR\        3R\
        3.3.3.4      4       R	# )TZflatten Fr   r   r   r   r   Nr(   )r7   	zip_descrr   r3   r   r6   r5   )r9   r=   r:   r;   r<   test   &     r?   test_zip_descrZTestRecFunctions.test_zip_descr,   s   yyq !.TXXCy2s)45	7!/TXXCy2s)45	7 !.TXXCy,eEF	H!/TXXCy "\C<$@AC D	E
 !.TXXCy #Sz $e}tSk; <	= !/TXXCy "c3Z&)T5MD#;+G%H%J  KL M	NrA   c                s   \         P                  ! RR.R\        3RR\        3R\        3.3.R7      p\	        VR4      p\         P                  ! R	R
.RR\        3R\        3.3.R7      p\        W#4       \	        VR4      p\         P                  ! RR.R\        3.R7      p\        W#4       \	        VR.4      p\         P                  ! RR.R\        3RR\        3.3.R7      p\        W#4       \	        VRR.4      p\         P                  ! RR.R\        3.R7      p\        W#4       \	        VRR.4      p\         P                  ! RR.. R7      p\        W#4       R# )r   r   r   r   r   r   Nr)   r-   )r*   )r/   r   r.   )r   )r,   )r.   )r1    )r3   r4   r6   r5   r   r   r9   r   rE   control   &   r?   test_drop_fieldsZ!TestRecFunctions.test_drop_fieldsM   sQ   HHm]3 #Je}tSk.J(KLN 1c"((K5#&$s(D"E!FHT# 1c"((D$<c
|<T# 1th'((K5#&*sdC[M.B!CET# 1tTl+((D$<c
|<T# 1sCj)((B82.T#rA   c           	     sB   \         P                  ! ^^RR.33^^RR.33.R\        3RR\        3R\        ^33.3.R	7      p\	        VRR
RR/4      pR
\        3RR\        3R\        ^33.3.pVP                  V4      p\        VP                  V4       \        W$4       R# )r   r,         >@r1   g      N@r   r   r   r   r   r$   BBN)r3   r4   r6   r5   r
   viewr   r   )r9   r   rE   ZnewdtyperL   r>   r?   test_rename_fieldsZ#TestRecFunctions.test_rename_fieldsm   s    HHq1sCj/*QS#J,@A #J D%=4%2D"EFHI Qc4 67#Je}teQZ6H&I JK&&"TZZ*T#rA   c                s   \         P                  ! RR\        3.4      p\        V4      p\	        VR4       \         P                  ! R\
        3RR\        3R\
        3.3.4      p\        V4      p\	        VR	4       \         P                  ! R\
        3R. 3.4      p\        V4      p\	        VR4       \         P                  ! . 4      p\        V4      p\	        VR
4       R# )r$   r   r   r   r   r   Nr(   r$   r   )r   )r   )r   r   rJ   )r   )r   rJ   )r3   r   r5   	get_namesr   r6   r9   ndtyperE      &  r?   test_get_namesZTestRecFunctions.test_get_namesx   s    <#u67 T:&C:tUmdC[-I'JKL T56C:Ry12 T+," T2rA   c                s   \         P                  ! RR\        3.4      p\        V4      p\	        VR4       \         P                  ! R\
        3RR\        3R\
        3.3.4      p\        V4      p\	        VR	4       \         P                  ! R\
        3R. 3.4      p\        V4      p\	        VR
4       \         P                  ! . 4      p\        V4      p\	        VR4       R# )r$   r   r   r   r   r   Nr(   rS   )r   r   r   r   r   r   rJ   )r3   r   r5   get_names_flatr   r6   rU   rW   r?   test_get_names_flatZ$TestRecFunctions.test_get_names_flat   s    <#u67f%T:&C:tUmdC[-I'JKLf%T12C:Ry12f%T:&"f%T2rA   c                s(   \         P                  ! RR\        3.4      p\        V4      p\	        VR . R. /4       \         P                  ! R \
        3RR\        3R.3.4      p\        V4      p\	        VR . R. RR.RR./4       \         P                  ! R \
        3RR\
        3RR\
        3R\
        3.3.3.4      p\        V4      pR . R. RR.RR.RRR.RRR./p\	        W#4       \         P                  ! . 4      p\        V4      p\	        V/ 4       R# )	r$   r   BArP   ZBBAZBBBNr(   rP   z|S1)r3   r   r5   r   r   r6   )r9   rV   rE   rL   rM   r?   test_get_fieldstructureZ(TestRecFunctions.test_get_fieldstructure   s3    <#u67!&)TCS"-. C:tUm]-K'LMN!&)TCS"dSGTC5IJ C:4+#'5#,)E"F"H IJ K "&)CTC5$3+usDk;T# "!&)T2rA   c                sp   \         P                  ! . RO. ROR\        3RR\        3R.3.R7      p\	        VRRR7      p^ ^.p\        \        VR,          4      V4       \        V^ ,          WR,          ,          4       \	        VRRR	7      p. ROp\        \        VR,          4      V4       \        V^ ,          WR,          ,          4       \	        VRRR	7      p. ROp\        \        VR,          4      V4       \        V^ ,          WR,          ,          4       \	        VRRR	7      p. ROp\        \        VR,          4      V4       \        V^ ,          WR,          ,          4       \	        VRRR	7      p. ROp\        \        VR,          4      V4       \        V^ ,          WR,          ,          4       R
# )r+   r   r$   r\   rP   maskr   FTZ
ignoremaskreturn_index)keyrb   N)r+   r'   r   )r   re   rd   )r   )r%   r   rd   )r+   )r'   C)r    r    r    rg   rg   rg   )r   rh   )r    r   r    r]   )r    r   r+      r0   )r    r   r+   r.   )r    r   r+   rk   r.   )mar4   r6   r5   r   r   sortedrK   rM   r?   test_find_duplicatesZ%TestRecFunctions.test_find_duplicates   s_   HH FB #Je}m.L(MN	P qUFa&VDH%w/T!WaRk*qc=!VDH%w/T!WaRk*qc=VDH%w/T!WaRk*qd>VDH%w/T!WaRk*qd>!VDH%w/T!WaRk*rA   c                s   R \         3.p\        P                  ! . RO. ROR7      P                  V4      p\	        VRRR7      p. ROp\        \        VR	,          4      V4       \        V^ ,          W#R	,          ,          4       \	        VRRR7      p. R
Op\        \        VR	,          4      V4       \        V^ ,          W#R	,          ,          4       R# )r   r`   Tra   FN)r   r   r   r+   r+   rk   rk   )r    r    r   r    r    r    r   )r    r   rk   r.   rj   )r    r   r+   rk   r.      )r6   rl   r4   rQ   r   r   rm   )r9   rV   r   rE   rL   r>   r?   test_find_duplicates_ignoremaskZ0TestRecFunctions.test_find_duplicates_ignoremask   s    *HH*/115f 	
qTEVDH%w/T!WaRk*qUF$VDH%w/T!WaRk*rA   c                s   \         P                  ! R RR7      p\         P                  ! ^VR7      p\        \	        V4      \         P                  ! R 4      4       \        \	        V4      P
                  ^4       \        \	        \	        V4      RR7      V4       \         P                  ! \         P                  V34      p\        \	        V4      P                  \         P                  J 4       R# )zu1,f4,i8TZalignr   N)	r3   r   zerosr   r   ZitemsizeZrecordr   type)r9   dtr   rW   r?   test_repack_fieldsZ#TestRecFunctions.test_repack_fields   s    XXj-HHQb!]2&(<=]1%..3]=#4DA2F XXryy"o&b!&&"))34rA   c           	     s   \         P                  ! ^. ROR7      p\        V4      p\        V\         P                  ! RRR7      4       \         P                  ! . R O. R!OR7      p\         P
                  ! \        VRR.,          4      R"R	7      p\        V\         P                  ! . R#O4      4       \         P
                  ! \        VR.,          4      R"R	7      p\        V\         P                  ! . R$O4      4       \         P                  ! ^4      P                  R4      p\        WRP                  4      p\         P                  ! ^ R%R
R.3^R&RR.3^
R'RR.3^R(RR.3.RRR)R*.3R+.R7      p\        W64       \         P                  ! . R O. R!OR7      p\        \        \         P
                  V4      \         P                  ! . R,O4      4       \        \        \         P
                  VRR.,          4      \         P                  ! . R#O4      4       \         P                  ! . R O. R-OR7      p\        V4      p\        WP                  4      p	\        \         P                  ! W4      4       \        \         P                  ! W4      4       \        VRR.,          4      p
\        V
^^.^^.^^.^^
..4       \        \         P                  ! W4      4       \         P                  ! ^^^.^^.^^..3^^	^
.^^.^^..3.. R.OR7      p\        V4      p\        WP                  4      p	\        \         P                  ! W4      4       \        \         P                  ! W4      4       VRRR"1,          p\        V4      p\        V. R/O. R0O.4       V. R1O,          p\        V4      p
\        V
. R2O. R3O.4       \         P                  ! ^^^.^^.^^..^ 3^^	^
.^^.^^..^@3.. R4OR7      p\        V. R5O,          4      p\        \         P                  ! W4      4       \        V. R0O. R/O.4       \         P                  ! R\        3R\        3.4      p\         P                  ! RV3RV3RV3.4      p\         P                  ! ^
V4      p\        V\        R7      p\        V\         P                  ! R6\        R7      4       R pR pR7R lpV! V! V! \         P                  \         P                  4      ^4      4      p\        V! V4      R8\         P                  V34       V! V! V! \         P                  ^4      ^4      4      p\        V! V4      R9\         P                  V34       V! \         P                  4      p\        V! V4      R:\         P                  V34       V! \         P                  V! V! \         P                  ^4      ^4      4      p\        V! V4      R;\         P                  V34       V! 4       p\        \         \        \         P                  ! ^V4      4       \        \"        \        \         P                  ! ^V4      \         P                  R7       \        \"        \        \         P                  ! R<\         P                  R7      4       \         P                  ! R=R>.RR?.R7      p\        VRR7      pVP%                  \         P&                  4      p\        VRR7      p\        VRR7      p	\        \         P                  ! Wx4      4       \        \)        V4      \         P&                  J 4       \        \)        V	4      \         P&                  J 4       \        VV4       \        V	V4       \         P*                  ! VR,          RVP                  VP,                  R7      pVVR&   \        VRR7      p\        VRR7      p	\        \         P                  ! Wx4      4       \        \)        V4      \         P*                  J 4       \        \)        V	4      \         P*                  J 4       \        VV4       \        V	V4       R# )@r.   r   r   cr   f8r:   r;   r<   )Zaxisr,         "@      @       @g      *@g      ,@g      2@g      3@Nc                 s0    \         P                  ! W34      # N)r3   r   )ru   shapes   &&r?   subarrayZBTestRecFunctions.test_structured_to_unstructured.<locals>.subarrayF  s    88RK((rA   c                  s~    \         P                  ! \        V 4       UUu. uF  w  rR V 2V3NK  	  upp4      # u uppi )r:   )r3   r   Z	enumerate)ZdtsZiru   s   *  r?   
structuredZDTestRecFunctions.test_structured_to_unstructured.<locals>.structuredI  s3    88	#Guq!gr]GHHGs   9
c                 s    \         P                  ! RV 4      p\        W!R 7      p\        W04      pVP                  VP
                  VP
                  3# )r   rJ   )r3   rs   r   r   r}   r   )ru   r   arrZretZbackarrs   &&   r?   inspectZATestRecFunctions.test_structured_to_unstructured.<locals>.inspectL  s?    ((2r"C,S>C09G99cii66rA   T)ZcopyFmemmapzw+)Zmoder   r}   :NNNr   i4)r   )r   zf4,u2)rw   f4r+   )r.   r0   ))r   r+   r0   )r.   r0      )r         )r    r      )r:   r   )r;   r   )r<   rx   rj   )r,   g      @ry         &@)r%   rz         @      $@)r%   r+   )r1   r   )r   r   )g      0@   )f0r   )f1Zu2)rw   r   r+   )gUUUUUU@gUUUUUU@gUUUUUU!@r   )r   )r;   r   )r<   r   )x0r   x1)r   r+   x2)r   r+   r+   )r   	   r    r   r         )r   r+   rk   r.   r0   rp   r   )r   r   r   )r.   r0   rp   r   r+   rk   r   )r   r   r   r   r   r    r   )r   r   r   )Zignoredu1)r   r   r   )r    rp   r|   )rp   rI   rH   )r0   )rk   r    r   r+   rk   r.   )r   r   )r3   rs   r   r   r4   ZmeanarangeZreshaper   r   r   r   Zshares_memoryr6   Zint32r   
ValueErrorZNotImplementedErrorrQ   Zrecarrayrt   r   r}   )r9   Ztmp_pathr   Zoutr   rw   ZwantdZddZdddZdd_attrib_revZd_revZdd_revZd_attrib_revZpointZtriangler   resr~   r   r   ru   Zd_plainZdd_expecteds   &&                      r?   test_structured_to_unstructuredZ0TestRecFunctions.test_structured_to_unstructured   s   HHQKL(+S"((667HHEBDgg0C:?bIS"((#789gg0C5:DS"((#789IIbM!!&)(GG4xx1i24i24i#s4i#s46 ( <">?-/	0 	SHHEBD'3XXCD	F'C:?XX34	6 HHEBD'*(WW5  '(  () 31c3Z=A]aVaVb!Wr2h$GH  23 HHq1q'a!HAh#781b'RHr2h#78:45 (*(WW5  '(  () $B$+E2V835 	6 +,2<@]%:%?%A 	B HHq1q'QFQF#3R81b'RHr2h#7<>GH (*<(=>  '(R/46 	7 3*sCj1288c5\C<#uFGhhr8$(C8S"((7#67	)	I	7 BHHbhh!?CDWR[42"67"((A!6:;WR[42"67!WR[42"67(8BHHa+@!"DEWR[42"67\j"<bhhq"oN 	)+E+-88Ar?"((	L)+E+-88F"((+K	M ((FF+K3MN0tD LL%'6(6  '(RBKK'(S	R[[()R%S+& IIh)#MM#MM+ !'6(6  '(RBII%&S	RYY&'R%S+&rA   c                s    \         P                  ! R4      pR\        3R\        3.p\         P                  ! V4      p\	        WR7      p\	        WR7      p\        WE4       R# )r!   r:   r;   r   N)r!   r+   )r3   rs   r5   r   r   r   )r9   r   Ztest_dtype_argsZ
test_dtypeZfield1Zfield2rF   r?   test_unstructured_to_structuredZ0TestRecFunctions.test_unstructured_to_structured  sL    HHW<#u6XXo.
+AE+A@V$rA   c                s   \         P                  ! ^. ROR7      pR	R.p\        \        W4      \         P                  ! ^V4      4       \         P                  ! R
R.VR7      p\        WRR7       \        V\         P                  ! RR.VP                  R7      4       \        W4       \        V\         P                  ! RR.VP                  R7      4       \         P                  ! ^RRR.3.R7      pRR.3.p\        \        W4      \         P                  ! ^V4      4       \         P                  ! RR.VR7      p\        WRR7       \        V\         P                  ! RR.VP                  R7      4       \        W4       \        V\         P                  ! RR.VP                  R7      4       \         P                  ! ^4      \         P                  ! ^ 4      r1\        W14       \        VR,          ^4       R# )r+   r   r   F)Zzero_unassignedNr   rx   rw   r   )r   r   r   r   r   r   r   )r   r   r+   )r   rk   r.   )r    r   r+   )r    rk   r.   )r   )rk   )r   )r   rk   ))r    r+   ))r    rk   rJ   )r3   onesr   r   r4   r   r   )r9   r   Znewdtr   rM   r?   test_field_assignment_by_nameZ.TestRecFunctions.test_field_assignment_by_name  st   GGADEk*^A-rwwq%/@AHHff%U3aE:Q)Y!7qwwGHa#Q)Y!7qwwGH GGAs[+$>?@A}%&^A-rwwq%/@AHHgw'u5aE:Q)Y!7qwwGHa#Q)Y!7qwwGH xx{BHHQK1a#QrUArA   r7   N)__name__
__module____qualname____firstlineno__r@   rG   rN   rR   rX   r[   r^   rn   rq   rv   r   r   r   __static_attributes____classdictcell__Z__classdict__   @r?   r   r       sQ     !NB$@	$$$6+B+
5O'b% rA   r   c                   s,   a  ] tR tRt o R tR tRtV tR# )TestRecursiveFillFieldsi  c                s   \         P                  ! RR.R\        3R\        3.R7      p\         P                  ! RVP
                  R7      p\        W4      p\         P                  ! . ROR\        3R\        3.R7      p\        W44       R# )	r   r$   r   r   Nr   r   r+         4@r   r   r   )r            )r3   r4   r6   r5   rs   r   r	   r   r9   r   r   rE   rL   r>   r?   test_simple_flexibleZ,TestRecursiveFillFields.test_simple_flexible  sk    HHh)3*sEl1KLHHT)$Q*((8#&*sEl!;=T#rA   c                s"   \         P                  ! RR.RR	.R\        3R\        3.R7      p\         P                  ! R
VP
                  R7      p\        W4      p\         P                  ! . RO. ROR\        3R\        3.R7      p\        W44       R# )r   r$   r   r_   r   Nr   r   r    r   ri   r   r   )r   ri   rh   )rl   r4   r6   r5   rs   r   r	   r   r   r>   r?   test_masked_flexibleZ,TestRecursiveFillFields.test_masked_flexible  sz    HHh)0@ #Je57HHT)$Q*((8 8#&*sEl!;= 	T#rA   rJ   N)r   r   r   r   r   r   r   r   r   r   r?   r   r     s     $	$ 	$rA   r   c                   s\   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tRtV tR# )TestMergeArraysi  c           	     s&   \         P                  ! ^^.4      p\         P                  ! . R	O4      p\         P                  ! R
R.RR\        3.R7      p\         P                  ! RR.R\        3RR\        3R\        3R. 3.3.R7      pWAW#3V n        R# )r   r   r   r   r   r   r   bcNr   r#   r&   r(   r   )r+   r,   rJ   r.   )r0   r1   rJ   r2   r8   r>   r?   r@   ZTestMergeArrays.setup_method  s    HHaXHH\"HH	"<#u*FHHH 12:tUmdC[4*%MNOQ 1L	rA   c                s    V P                   w  rr\        V4      p\        P                  ! RR.R\        3.R7      p\        WE4       \        V34      p\        WE4       \        VRR7      p\        WC4       \        VRR7      p\        WC4       R# )	r   r   r   FrB   TNrH   r   )r7   r   r3   r4   r6   r   r9   _r:   r<   rE   rL   rF   r?   	test_soloZTestMergeArrays.test_solo  sv    yyqA((D$<s}=T#QD!T#Au-TAt,TrA   c                s    V P                   ^ ,          p\        VRR7      p\        W!4       \        VRR7      p\        P                  ! R	R
.R\
        3R\        3R\
        3.R7      p\        W#4       R# )r    FrB   Tr   r   r   r   N)r   r+   r,   )r.   r0   r1   )r7   r   r   r3   r4   r6   r5   r9   r=   rE   rL   rM   r?   test_solo_w_flattenZ#TestMergeArrays.test_solo_w_flatten  sc    IIaLAu-TAt,((K5#&*tUmdC[!IKT#rA   c                sn   V P                   w  rr1\        W#3R R7      p\        P                  ! . ROR\        3R\        3.R7      p\        WE4       \        W#3RR7      p\        P                  ! . RO. R	OR\        3R\        3.R7      p\        WE4       \        VP                  VP                  4       R# )
Fusemaskr   r   r   Tr_   N)r   r    )r+   r!   )rj   r"   rh   rh   ri   )r7   r   r3   r4   r6   r   rl   r`   r9   r   r:   r;   rE   rL   rF   r?   test_standardZTestMergeArrays.test_standard  s     yyqQFE2((7#'+c{!;=T#QFD1((7 8#'+c{!;= 	T#TYY-rA   c                s2   V P                   w  rr\        W#3R R7      p\        P                  ! RR	.R\        3R
R\
        3.R7      p\        WE4       \        W#3RR7      p\        P                  ! RR.R\        3RR
R\
        3.3.R7      p\        WE4       R# )TrB   r   r   r   Fr   N)r   r$   r%   )r+   r   r'   r(   )r   r#   )r+   r&   r7   r   r3   r4   r6   r5   r   r   rF   r?   test_flattenZTestMergeArrays.test_flatten  s    yyqQFD1((L,7#'+|c5\!JLT#QFE2((NN;#'+#',e)E"F"HI 	T#rA   c                sx   V P                   w  r p\        W!3R R7      p\        P                  ! RR.R\        3R\        3R\
        3R\        3.R7      p\        WE4       \        W!3RR7      pR\        3RR\        3R	R\
        3R\        3R
. 3.3.3.p\        P                  ! RR.VR7      p\        WE4       R# )TrB   r   r   r   r   r   Fr   r   r   N)r   r   r+   r,   )r+   r.   r0   r1   )r%   r   )r+   r   r   )r9   r=   r:   r   rE   rL   Zcontroldtype   &      r?   test_flatten_wflexibleZ&TestMergeArrays.test_flatten_wflexible  s    yyq!QFD1((NN;#'+#&*tUmdC["JK 	T#QFE2s!%c
),e}tSkDRT:.V(W(Y !Z[ ((35KL!-/T#rA   c                sL   V P                   w  r p\        P                  ! . R	O. R
OR7      p\        W#3RR7      p\        P                  ! . RO. ROR\        3R\        3.R7      p\        WE4       \        W#3RRR7      p\        WE4       \        \        V\        4      4       R# )r   ro   Tr   r   r   r_   )r   Z
asrecarrayNr   r+   rk   r   r    r    )r   r   r   )rj   rk   )r   rh   ri   )	r7   rl   r4   r   r6   r   r   Z
isinstancer   )r9   r   r:   ZmxrE   rL   rF   r?   test_wmasked_arraysZ#TestMergeArrays.test_wmasked_arrays  s    yyq!XXii0QGT2((4 8#'+c{!;= 	T#QGTdCT#
4/0rA   c                s   \        \        P                  ! ^^.4      P                  R\        3.4      \        P                  ! . RO4      34      p\
        P                  ! . RO. ROR\        3R\        3.R7      p\        W4       R# )r   r   r   r_   N)r   r   rO   )r   r   )rj   rO   r   )r   r3   r4   rQ   r6   rl   r5   r   )r9   rE   rL   rW   r?   test_w_singlefieldZ"TestMergeArrays.test_w_singlefield#  sk    RXXq!f-22S#J<@XXo68 :((: 8#&*tUm!<> 	T#rA   c                s    V P                   R,          p\        V\        P                  ! . RO4      P	                  R\
        3.4      34       \        P                  ! . RORR\        3R\
        3.R7       R# )	r   rf   r   r   Nrj   r   )r$   r%   r    r   r'   r!   )z-1rj   r!   r(   )r7   r   r3   r4   rQ   r6   r5   )r9   r<      & r?   test_w_shorter_flexZ#TestMergeArrays.test_w_shorter_flex,  sZ    IIbM 	a,/44sCj\BCD
?$sElS#J?	ArA   c           	     s    V P                   w  rr4\        V^ ,          V^ ,          V^ ,          3RR7      p\        P                  ! R	.R\        3R\        3RR
R\
        3.3.R7      p\        WV4       R# )r    Fr   r   r   f2r   r   N)r   r    r$   r   r(   r   )r9   r   r:   r;   r<   rE   rL   r   r?   test_singlerecordZ!TestMergeArrays.test_singlerecord:  sr    yyqQqT1Q41.>((-.#'+#'+#',e)E"F"HI 	T#rA   r   N)r   r   r   r   r@   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r   r     s=     !	$. $$"1$A$ $rA   r   c                   s>   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestAppendFieldsiD  c                r   r   r2   r8   r>   r?   r@   ZTestAppendFields.setup_methodG      HHaXHH\"HH	"<#u*FHHHm]3 #Je}tSk.J(KLN1L	rA   c                s    V P                   w  r p\        VR . ROR7      p\        P                  ! . RO. ROR\        3R \        3.R7      p\        W44       R# )r$   r   r   r_   Nr   r   r   r7   r   rl   r4   r6   r   r9   r   r:   rE   rL   r>   r?   test_append_singleZ#TestAppendFields.test_append_singleP  sM    yyq!Q,7((7 8#'+Sz!:= 	T#rA   c                s    V P                   w  r p\        VR. RO^d^..R7      p\        P                  ! . RO. R	OR\        3R \        3R\        3.R7      p\        W44       R# )
r$   r   r   r   r_   NrS   r   ))r   r    d   )r+   r!   i   )rj   r"   rj   )r    r    r    r   )r   r    r   r   r   r>   r?   test_append_doubleZ#TestAppendFields.test_append_doubleY  s]    yyq!Q
,c
1KL((E A#'+SzC:!FI 	T#rA   c                s    V P                   R,          p\        VR. ROR7      p\        P                  ! . RO. R	OR
R\        3R\
        3.R7      p\        W#4       R# )r   rf   r   r   r_   Nrj   r   )r   r   )rj         r"   )r   r   r   r   r    r(   )r7   r   rl   r4   r5   r6   r   )r9   r<   rE   rL   rM   r?   test_append_on_flexZ$TestAppendFields.test_append_on_flexb  sN    IIbMQ,7((H A".esCj!IL 	T#rA   c           	     s    V P                   ^ ,          p\        VR. R	OR7      p\        P                  ! . R
O. ROR\        3RR\
        3R\        3.3R\        3.R7      p\        W#4       R# )r    rf   r   r   r   r   r   r_   Nr   ))r   r*   r    )r.   r/   r!   )rj   )rj   r   r"   )r    rh   r    r   )r   r   r    )r7   r   rl   r4   r6   r5   r   r   rM   r?   test_append_on_nestedZ&TestAppendFields.test_append_on_nestedk  sh    IIaLQ,7(( 1!N#&*#&$s(D"E#&*".0 	T#rA   r   N)r   r   r   r   r@   r   r   r   r   r   r   r   r   r?   r   r   D  s#     !$$$$ $rA   r   c                   sV   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tRtV tR# )TestStackArraysiz  c                r   r   r2   r8   r>   r?   r@   ZTestStackArrays.setup_method|  r   rA   c                s    V P                   w  r p\        V34      p\        W24       \        W2J 4       \        V4      p\        W24       \        W2J 4       R # r|   )r7   r   r   r   )r9   r   r:   rE   rM   r?   r   ZTestStackArrays.test_solo  sJ    yyq!QD!T	AT	rA   c                sJ   V P                   w  rr1\        W"3R R7      p\        P                  ! . RO4      p\	        WE4       \        W#3R R7      p\        P                  ! . RO4      p\	        WE4       \        W23R R7      p\        P                  ! . RO4      p\	        WE4       R# )Fr   N)r   r+   r   r+   )r   r+   r    r!   r"   )r    r!   r"   r   r+   )r7   r   r3   r4   r   r   rF   r?   test_unnamed_fieldsZ#TestStackArrays.test_unnamed_fields  s}    yyqQFE2((<(T#QFE2((-.T#QFE2((-.T#rA   c                s8   V P                   w  rr\        W#34      p\        P                  ! . RO. ROR\        3RR\
        3.R7      p\        WE4       \        VP                  VP                  4       \        W234      p\        P                  ! . R	O. R
ORR\
        3R\        3.R7      p\        WE4       \        VP                  VP                  4       \        W3V34      p\        P                  ! . RO. RORR\
        3R\        3.R7      p\        WE4       R# )r   r   r   r_   r   N))r   rj   rj   )r+   rj   rj   )rj   r$   r   )rj   r   r+   )r    r   r   r   r   r   r(   )r$   r   rj   r   r+   rj   rj   rj   r   rj   rj   r+   )r    r    r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r7   r   rl   r4   r6   r5   r   r`   r   rF   r?   test_unnamed_and_named_fieldsZ-TestStackArrays.test_unnamed_and_named_fields  s    yyqQF#(( 8!7#'+|c5\!J	L
 	T#TYY-QF#(( 8!7".etSk!J	L
 	T#TYY-Q1I&(( 8!7 #/etSk!JL 	T#rA   c                s   V P                   w  rr\        P                  ! . RORR\        3R\        3.R7      p\	        W434      p\
        P                  ! . R	ORR\        3R\        3.. R
OR7      p\        WV4       \        VP                  VP                  4       \	        W4V34      pRR\        3R\        3R\        3.p\
        P                  ! . ROV. ROR7      p\        WV4       \        VP                  VP                  4       R# )r   r   rf   r   r   r`   Zf3Nr   r         Y@r   r         i@rw   rO        r@r(   )r   r   r   r   r   r   r   r   r   r   ))r$   r   rj   rj   )r   r+   rj   rj   )r   r   r   rj   )r   r   r   rj   )rw   rO   r   rj   )rj   rj   rj   r   )rj   rj   rj   r+   )r    r    r   r   r   r    r    r    r   r   r   r   r   r   r    r   )	r7   r3   r4   r5   r   rl   r   r`   r6   )r9   r   r:   r<   zzrE   rL   rV      &       r?   test_matching_named_fieldsZ*TestStackArrays.test_matching_named_fields  s    yyqXXL)C<#uFHQG$(( U #/esEl!K!B	C 	T#TYY-QAJ'esElT3KH(( > "(!=> 	T#TYY-rA   c                s   V P                   w    r\        P                  ! . R
ORR\        3R\        3.R7      pRRRRRRRR/p\	        W#3VR7      p\
        P                  ! . RORR\        3R\        3.. ROR7      p\        WV4       \        VP                   VP                   4       \        VP                  VP                  4       R	# )r   r$   r   rf   r   z???ZD)defaultsr   Nr   r(   g     8    g    i))r$   r   r  )r   r+   r  r   r   r   r   )r7   r3   r4   r5   r   rl   r   r`   )r9   r   r<   r   r  rE   rL   r   r?   test_defaultsZTestStackArrays.test_defaults  s    yyAqXXL)C<#uFHUCgFQGh7(( U #/esEl!K!B	C 	T#TYY-TYY-rA   c                s   R \         3R\        3R\        3.p\        P                  ! R	.R
.VR7      pR \         3R\        3R\        3.p\        P                  ! R.VR7      p\        P                  ! R	R.R
R.VR7      p\        W$3RR7      p\        We4       \        VP                  VP                  4       \        \        4      ;_uu_ 4        \        W$3RR7       RRR4       R#   + '       g   i     R# ; i)r$   r   rf   r_   r   T)ZautoconvertFNr   r    r   r    r.   r0   rp   r   )
r6   boolr5   rl   r4   r   r   r`   r   Z	TypeError)r9   adtyper   bdtyper   rL   rE   r   r?   test_autoconversionZ#TestStackArrays.test_autoconversion  s    *sDkC<8HHi[	{&A*sElS%L9HHi[/((Iy1I8N!')QF5T#TYY-9%%!U3 &%%%s   C))C:	c                sr   R\         3R\        3R\        3.p\        P                  ! R.R.VR7      pR\         3R\        3R\        3.p\        P                  ! R	.VR7      p\        W$34      p\        P                  ! RR	.RR
.VR7      p\        WV4       \        VP                  VP                  4       R# )r   r_   r   N)r   r$   )r   r   )rw   rf   r   r  r  r   )r6   r  r5   rl   r4   r   r   r`   )r9   r	  r   r
  r   rE   rL   r   r?   test_checktitlesZ TestStackArrays.test_checktitles  s    s#j$%7*e9LMHHi[	{&As#j$%7*e9LMHHi[/QF#((Iy1I8N!')T#TYY-rA   c           
     s   \         P                  ! RR.RR\        R3.R7      p\         P                  ! RR.R3RR.R3R	R
.R3.RR\        R3R\        3.R7      p\        W34      p\        P                  ! RR.^ 3RR.^ 3RR.R3RR.R3RR
.R3.RR.R3RR.R3RR.R3RR.R3RR.R3.VP
                  R7      p\        VP
                  VP
                  4       \        W44       \        VP                  VP                  4       R# )r$   r   r   r   r   r   r   r   r   rw   rO   r   rf   s   Ar%   s   Br'   s   as   bs   cFT)r7   r`   r   Nr   )r   r+   r(   rH   )r3   r4   r5   r   rl   r   r   r`   )r9   r<   r   r   expectedr>   r?   test_subdtypeZTestStackArrays.test_subdtype  sM   HHh
eT 235 XX3%seT 2S3%4F
eT 2S%LAC A7#88ua ua vu%vu%vu%' &&''' ((
  	SYY/S#SXXx}}-rA   r   N)r   r   r   r   r@   r   r   r   r  r  r  r  r  r   r   r   r   r?   r   r   z  s8     !	$ $@.8."4
.. .rA   r   c                   sh   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tRtV tR# )
TestJoinByi%  c                s   \         P                  ! \        \        \         P                  ! ^
4      \         P                  ! ^2^<4      \         P                  ! ^d^n4      4      4      R\
        3R\
        3R\
        3.R7      V n        \         P                  ! \        \        \         P                  ! ^^4      \         P                  ! ^A^K4      \         P                  ! ^d^n4      4      4      R\
        3R\
        3R\
        3.R7      V n        R# r    r   r   rw   r   r   Nr3   r4   listzipr   r6   r   r   r9      &r?   r@   ZTestJoinBy.setup_method&  s    $s299R="))B2C#%99S##6 8 9"%sc3Z#s DF $s299Q#3RYYr25F#%99S##6 8 9"%sc3Z#s DFrA   c           	     s    V P                   V P                  r!\        R WRR7      p\        P                  ! . R	OR \
        3R\
        3R\
        3R\
        3R\
        3.R7      p\        W44       R# )
r   inner)jointypeb1b2rw   r   r   N))r0   7   A   i   r   )rp   8   B   j   e   )r   9   C   k   f   )r   :   D   l   g   )r   ;   E   m   h   r   r   r   r3   r4   r6   r   r   r>   r?   test_inner_joinZTestJoinBy.test_inner_join.  sc    vvtvv1sA73(( 3 $'*tSkD#;#&*sCj":;
 	T#rA   c                s    V P                   V P                  r!\        RW4       \        P                  ! . ROR \
        3R\
        3R\
        3R\
        3.R7       R# )r   r   rw   r   r   NrY   ))r0   r  r  r   )rp   r  r  r   )r   r!  r#  r$  )r   r%  r'  r(  )r   r)  r+  r,  )r   r   r   r3   r4   r6   r9   r   r   rW   r?   	test_joinZTestJoinBy.test_join:  sO    vvtvv1 	
A!
 % sc3Zsc3Z1	2rA   c                s    \         P                  ! R.R\        3.R7      p\         P                  ! ^\         P                  ! . RO4      3.R\        3R.R7      p\        RW4      p\	        W2P                  \        P                  4      4       R# )r   rc   r   NrH   r   )valueZuint16rk   )r3   r4   r6   r   r   rQ   rl   ZMaskedArray)r9   ZfooZbarr   rM   r?   test_join_subdtypeZTestJoinBy.test_join_subdtypeM  sm    hhv$cl^-hhBHHY/01$cl,BCEeS&S((2>>23rA   c           	         V P                   V P                  r!\        RWR4      p\        P                  ! . RO. R	OR \
        3R\
        3R\
        3R\
        3.R7      p\        W44       R# )
r   r   Zouterrw   r   r_   NrY   )r    2   r   rj   r   3   r   rj   r+   4   r$  rj   rk   5   r(  rj   r.   6   r,  rj   r0   r  r  rj   )r0   r  rj   r   rp   r  r  rj   )rp   r  rj   r   r   r!  r#  rj   )r   r"  rj   r$  r   r%  r'  rj   )r   r&  rj   r(  r   r)  r+  rj   )r   r*  rj   r,  )r    F   rj   r  )r   G   rj   r  )r   H   rj   r#  )r   I   rj   r'  )r   J   rj   r+  )r   r   r   r   r   r   r    r    r   r    r   rH  r   rH  r   rH  r   rH  rH  rH  rH  rH  rH  r   r   r   rl   r4   r6   r   r   r>   r?   test_outer_joinZTestJoinBy.test_outer_joinV  sc    vvtvv1z11(( 	B	!= $'*sCj#&*sCj":);, 	T#rA   c           	     r3  )
r   r   Z	leftouterrw   r   r_   NrY   )
r4  r6  r8  r:  r<  r>  r?  r@  rA  rB  )
r   r   r   r   r   r   r   r   r   r   rI  r   r>   r?   test_leftouter_joinZTestJoinBy.test_leftouter_joinr  sa    vvtvv1z15(( @
!=
 $'*sCj3*sCj!Q
S 	T#rA   c                s    \         P                  ! ^. ROR7      p\         P                  ! ^. R	OR7      p\        RR.WRRR7      p\	        VP
                  P                  . R
O4       R# )rk   r   rw   r   r  F)r  r   Nr   r   r   r   r   r   )r   rw   Za1Za2)r3   rs   r   r   r   r   names)r9   r   r   ZjrM   r?   test_different_field_orderZ%TestJoinBy.test_different_field_order  sK    HHQEFGGADES#JwFQWW]]$:;rA   c                s    \         P                  ! ^. ROR7      p\         P                  ! ^. ROR7      p\        \        \
        . ROW4       R# )rk   r   NrL  rM  )r   r   r   )r3   rs   r   r   r   r   r/  rW   r?   test_duplicate_keysZTestJoinBy.test_duplicate_keys  s2    HHQEFGGADEj'?AArA   c                sB   \         P                  ! RR.4      p\         P                  ! RR.4      p\         P                  ! . RO4      p\         P                  ! RR.VR7      p\         P                  ! R	R
.VR7      p\        R WE4      p\	        VP                  V4       R# )rc   r   N)rc   ZS5r1  <f4rc   ZS10)rS  Zvalue1rR  )value2rR  Sarahr{   Johnr1   rW  r   rY  r   r3   r   r4   r   r   r9   a_dtypeb_dtypeexpected_dtyper   r   r   r   r?   #test_same_name_different_dtypes_keyZ.TestJoinBy.test_same_name_different_dtypes_key  s    ((M+;<=((N,<=> #B C HHo}5WEHHo}5WEeQ"SYY/rA   c                sB   \         P                  ! RR.4      p\         P                  ! RR.4      p\         P                  ! . RO4      p\         P                  ! RR.VR7      p\         P                  ! R	R
.VR7      p\        R WE4      p\	        VP                  V4       R# )rc   r   NrS  rQ  )r1  <f8))rc   z|S10rT  )rU  rb  rV  rX  rZ  r[  r\  r]  r   r?   test_same_name_different_dtypesZ*TestJoinBy.test_same_name_different_dtypes  s    ((N,<=>((N,<=> #C D HHo}5WEHHo}5WEeQ"SYY/rA   c                s   \         P                  ! R \        ^3R.4      p\         P                  ! . RO\         P                  3. ROR3.VR7      p\         P                  ! R \        ^3R.4      p\         P                  ! . RO^3. ROR3.VR7      p\         P                  ! R \        ^3RR.4      p\         P                  ! . RO\         P                  ^3.VR7      p\        R W$4      p\        VP                  V4       \        Wv4       R# )	Zposr   r   N)ZfrR  )r   r   r   r   )ZgrR  )rk   r+   r   )r3   r   r6   r4   Zpir   r   )r9   r^  r   r_  r   r`  r  r   r  r?   test_subarray_keyZTestJoinBy.test_subarray_key  s    ((UCO\:;HHy"%%(9c*:;7K((UCO\:;HHy!ny#&67wGE3?L,"OP88i23>JeQ"SYY/S#rA   c                sZ   \         P                  ! R RR7      pRVn        \        \	        VP
                  4      ^4       \         P                  ! RR.V4      p\         P                  ! RR	.V4      p\        RW#4      p\         P                  ! . R
O4      p\        VP                  V4       R# )zi1,f4Trr   kN)re  Zvr   )rk   r+   r   r   ))re  Zi1)Zv1r   )Zv2r   )	r3   r   rN  r   ZlenZdescrr4   r   r   )r9   ru   r   r   r   r`  rF   r?   test_padded_dtypeZTestJoinBy.test_padded_dtype  s    XXgT*BHHq!HHff%r*HHff%r*c1   #
  	SYY/rA   rY   N)r   r   r   r   r@   r.  r0  r2  rJ  rK  rO  rP  ra  rc  rd  rf  r   r   r   r   r?   r  r  %  sH     F
$2&4$8$"<B

00$0 0rA   r  c                   sH   a  ] tR tRt o ]R 4       tR tR tR tR t	Rt
V tR# )	TestJoinBy2i  c                s   \         P                  ! \        \        \         P                  ! ^
4      \         P                  ! ^2^<4      \         P                  ! ^d^n4      4      4      R\
        3R\
        3R\
        3.R7      V n        \         P                  ! \        \        \         P                  ! ^
4      \         P                  ! ^A^K4      \         P                  ! ^d^n4      4      4      R\
        3R\
        3R\
        3.R7      V n        R# r  r  )Zclsr  r?   r@   ZTestJoinBy2.setup_method  s    c"))B-2r1B"$))C"57 8!$c
S#Jc
CE c"))B-2r1B"$))C"57 8!$c
S#Jc
CErA   c           	         V P                   V P                  r!\        R WRRRR7      p\        P                  ! . ROR \
        3R\
        3R\
        3R\
        3R\
        3.R	7      p\        W44       R
# )r   rC   2r  	r1postfix	r2postfixr  r   r  rw   r   r   N
)r    r5  r  r   r   )r   r7  r  r   r   )r+   r9  r"  r$  r$  )rk   r;  r&  r(  r(  )r.   r=  r*  r,  r,  )r0   r  rC  r  r  )rp   r  rD  r  r  )r   r!  rE  r#  r#  )r   r%  rF  r'  r'  )r   r)  rG  r+  r+  r-  r   r>   r?   test_no_r1postfixZTestJoinBy2.test_no_r1postfix  sl    vvtvv1sWF(( J
 $'*sCj4+#&*sCj":; 	T#rA   c           
     sb    \        \        \        R V P                  V P                  RRR7       R# )r   rC   )rk  rl  N)r   r   r   r   r   r  r  r?   test_no_postfixZTestJoinBy2.test_no_postfix  s!    j'3 "b	2rA   c           	     rh  )r   1rC   r  rj  r  r   rw   r   r   Nrm  r-  r   r>   r?   test_no_r2postfixZTestJoinBy2.test_no_r2postfix  sl    vvtvv1WF(( J
 $'*tSkC:#&*sCj":; 	T#rA   c                s   \         P                  ! \        \        \         P                  ! ^
^.^4      \         P
                  ! \         P                  ! ^4      ^4      \         P                  ! ^2^<4      \         P                  ! ^
^4      4      4      R\        3R\        3R\        3R\        3.R7      p\         P                  ! \        \        \         P                  ! ^
^.^4      \         P
                  ! \         P                  ! ^4      ^4      \         P                  ! ^A^K4      \         P                  ! ^ ^
4      4      4      R\        3R\        3R\        3R\        3.R7      p\         P                  ! . ROR\        3R\        3R\        3R\        3R\        3R	\        3.R7      p\        RR.WR
RRR7      p\        VP                  VP                  4       \        WC4       R# )r    re  r   r   rw   r   r  r  Zc1Zc2rp  ri  r  rj  N)
)r    r    r5  r  r    r    )r   r    r7  r  r   r   )r    r   r9  r"  r   r+   )r   r   r;  r&  r   rk   )r    r+   r=  r*  r   r.   )r   r+   r  rC  i   r0   )r    rk   r  rD  i   rp   )r   rk   r!  rE  r   r   )r    r.   r%  rF  i   r   )r   r.   r)  rG  i   r   )r3   r4   r  r  ZtileZrepeatr   r6   r   r   r   )r9   r   r   rL   rE   r>   r?   test_two_keys_two_varsZ"TestJoinBy2.test_two_keys_two_vars  sw   HHT#bggr2h2BIIbiilA4N iiB/2r1BD E #Jc
S#Jc
KM HHT#bggr2h2BIIbiilA4N iiB/1b1AC D #Jc
S#Jc
KM (( L
 $'*sCj4+#'+c{T3K"IJ #JsWNTZZ/T#rA   rJ   N)r   r   r   r   Zclassmethodr@   rn  ro  rq  rr  r   r   r   r   r?   rg  rg    s2     E E$2$$ $rA   rg  c                   s0   a  ] tR tRt o RtR tR tRtV tR# )TestAppendFieldsObji	  z3
Test append_fields with arrays containing objects
c                s4    ^ RI Hp RV! R^^4      /V n        R# )r    )dateobji  N)Zdatetimert  r7   )r9   rt  r   r?   r@   Z TestAppendFieldsObj.setup_method  s    !Dq!,-	rA   c                s^   V P                   R,          p\        P                  ! VR3VR3.R\        3R\        3.R7      p\        P                  ! ^
^.\
        R7      p\        VRVRR	7      p\        P                  ! VR^
3VR^3.R\        3R\        3R\
        3.R7      p\        WE4       R
# )z7Test append_fields when the base array contains objectsru  r%   r'   r$   r   r   rf   F)r7   r   N)r7   r3   r4   Zobjectr5   r6   r   r   )r9   ru  r:   r;   rE   rL   rF   r?   test_append_to_objectsZ*TestAppendFieldsObj.test_append_to_objects  s    iiHHsBi#r+!6]S%L9;HHb"XS)Q!U;((S#rNS#rN;#&-#uSz!JLT#rA   r   N)	r   r   r   r   Z__doc__r@   rv  r   r   r   r   r?   rs  rs  	  s     
.	$ 	$rA   rs  )-Znumpyr3   Znumpy.marl   Znumpy.lib.recfunctionsr   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   Znumpy.ma.mrecordsr   Znumpy.ma.testutilsr   Znumpy.testingr   r   ZlibZrecfunctionsZ_get_fieldspecZget_fieldspecrT   rZ   Z
_zip_descrrD   Z
_zip_dtypeZ	zip_dtyper   r   r   r   r   r  rg  rs  rJ   rA   r?   <module>rw     s         " , + 0##22FF))	$$33FF**	FF**	F FR$ $.A$ A$H3$ 3$lh. h.V`0 `0F?$ ?$B$ $rA   