
    Khӫ                     d   S SK rS SKJr  S SKJr  S SKJr  S SKJ	r	J
r
  S SKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  \R6                  R8                  R:                  r\R6                  R8                  R>                  r\R6                  R8                  R@                  r \R6                  R8                  RB                  r"\R6                  R8                  RF                  r$ " S S5      r% " S S	5      r& " S
 S5      r' " S S5      r( " S S5      r) " S S5      r* " S S5      r+ " S S5      r,g)    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                   b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)TestRecFunctions   c                    [         R                  " SS/5      n[         R                  " / SQ5      n[         R                  " SS/SS[        4/S9n[         R                  " S	S
/S[        4SS[        4S[        4/4/S9nXAX#4U l        g N      
         A      ?B       @r"   z|S3r%   dtyper   r         @            @abbabbnparrayfloatintdataselfxyzws        S/var/www/html/env/lib/python3.13/site-packages/numpy/lib/tests/test_recfunctions.pysetup_methodTestRecFunctions.setup_method   s    HHaXHH\"HHi+(3,79HHm]3 #Je}tSk.J(KLN1L	    c                    U R                   u  pp4[        X"4SS9n[        U[        R                  " S[
        4S[
        4/5      5        [        X"4SS9n[        U[        R                  " S[
        4S[
        4/5      5        [        X$4SS9n[        U[        R                  " S[
        4SS[        4/5      5        [        X$4SS9n[        U[        R                  " S[
        4SSS[        4/4/5      5        [        X!4SS9n[        U[        R                  " S[
        4S[
        4S[        4S	[
        4/5      5        [        X!4SS9n[        U[        R                  " S[
        4SS[
        4S
S[        4S	[
        4/4/4/5      5        g )NTflatten Fr'   r%   r2   r4   r5   r3   )r;   	zip_descrr   r7   r)   r:   r9   )r=   rA   r>   r?   r@   tests         rB   test_zip_descr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rE   c                    [         R                  " SS/S[        4SS[        4S[        4/4/S9n[	        US5      n[         R                  " SS	/SS[        4S[        4/4/S9n[        X#5        [	        US5      n[         R                  " S
S/S[        4/S9n[        X#5        [	        US/5      n[         R                  " SS/S[        4SS[        4/4/S9n[        X#5        [	        USS/5      n[         R                  " S
S/S[        4/S9n[        X#5        [	        USS/5      n[         R                  " SS// S9n[        X#5        g )Nr*   r-   r2   r3   r4   r5   r(   )r+   )r/   r   r.   )r   )r,   )r.   )r1    )r7   r8   r:   r9   r   r   r=   r2   rK   controls       rB   test_drop_fields!TestRecFunctions.test_drop_fields@   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#rE   c           	      8   [         R                  " SSSS/44SSSS/44/S	[        4S
S[        4S[        S44/4/S9n[	        USSS.5      nS[        4S
S[        4S[        S44/4/nUR                  U5      n[        UR                  U5        [        X$5        g )Nr   r   r,         >@r.   r0   r1   g      N@r2   r3   r4   r5   r(   r"   BB)r2   r5   )r7   r8   r:   r9   r   viewr   r)   )r=   r2   rK   newdtyperS   s        rB   test_rename_fields#TestRecFunctions.test_rename_fields`   s    HHq1sCj/*QS#J,@A #J D%=4%2D"EFHI Qc 67#Je}teQZ6H&I JK&&"TZZ*T#rE   c                    [         R                  " SS[        4/5      n[        U5      n[	        US5        [         R                  " S[
        4SS[        4S[
        4/4/5      n[        U5      n[	        US5        [         R                  " S[
        4S/ 4/5      n[        U5      n[	        US	5        [         R                  " / 5      n[        U5      n[	        US
5        g )Nr'   r%   r"   r%   r2   r3   r4   r5   )r2   )r3   )r4   r5   )r2   )r3   rQ   rQ   )r7   r)   r9   	get_namesr   r:   r=   ndtyperK   s      rB   test_get_namesTestRecFunctions.test_get_namesk   s    <#u67 T:&C:tUmdC[-I'JKL T56C:Ry12 T+," T2rE   c                    [         R                  " SS[        4/5      n[        U5      n[	        US5        [         R                  " S[
        4SS[        4S[
        4/4/5      n[        U5      n[	        US5        [         R                  " S[
        4S/ 4/5      n[        U5      n[	        US	5        [         R                  " / 5      n[        U5      n[	        US
5        g )Nr'   r%   r^   r2   r3   r4   r5   )r2   r3   r4   r5   r2   r3   rQ   )r7   r)   r9   get_names_flatr   r:   r`   s      rB   test_get_names_flat$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rE   c           	         [         R                  " SS[        4/5      n[        U5      n[	        U/ / S.5        [         R                  " S[
        4SS[        4S/4/5      n[        U5      n[	        U/ / S/S/S.5        [         R                  " S[
        4SS[
        4SS	[
        4S
[
        4/4/4/5      n[        U5      n/ / S/S/SS/SS/S.n[	        X#5        [         R                  " / 5      n[        U5      n[	        U0 5        g )Nr'   r%   r^   r"   BArX   z|S1)r"   r%   rj   rX   rX   BBABBB)r"   r%   rj   rX   rl   rm   )r7   r)   r9   r	   r   r:   )r=   ra   rK   rS   s       rB   test_get_fieldstructure(TestRecFunctions.test_get_fieldstructure   s    <#u67!&)T"-. C:tUm]-K'LMN!&)T"SGC5IJ C:4+#'5#,)E"F"H IJ K "&)C5+sDk;T# "!&)T2rE   c                    [         R                  " / SQ/ SQS[        4SS[        4S/4/S9n[	        USS	S
9nSS/n[        [        US   5      U5        [        US   XS      5        [	        USS	S9n/ SQn[        [        US   5      U5        [        US   XS      5        [	        USS	S9n/ SQn[        [        US   5      U5        [        US   XS      5        [	        USS	S9n/ SQn[        [        US   5      U5        [        US   XS      5        [	        USS	S9n/ SQn[        [        US   5      U5        [        US   XS      5        g )N)r   r&   r%   )r   rr   rq   )r   )r#   r%   rq   )r   )r&   C)r   r   r   rt   rt   rt   )r   ru   )r   r   r   r"   r%   rj   rk   maskr)   FT
ignoremaskreturn_indexr   r   )keyr{   )r   r   r      r0   )r   r   r   r.   rX   )r   r   r   r~   r.   )mar8   r:   r9   r   r   sortedrR   s       rB   test_find_duplicates%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*rE   c                 R   S[         4/n[        R                  " / SQ/ SQS9R                  U5      n[	        USSS9n/ SQn[        [        US   5      U5        [        US	   X#S      5        [	        US
SS9n/ SQn[        [        US   5      U5        [        US	   X#S      5        g )Nr2   )r   r   r   r   r   r~   r~   )r   r   r   r   r   r   r   rx   Try   )r   r   r~   r.   r|   r   F)r   r   r   r~   r.      )r:   r   r8   rY   r   r   r   )r=   ra   r2   rK   rS   s        rB   test_find_duplicates_ignoremask0TestRecFunctions.test_find_duplicates_ignoremask   s    *HH*/115f 	
qTEVDH%w/T!WaRk*qUF$VDH%w/T!WaRk*rE   c                    [         R                  " SSS9n[         R                  " SUS9n[        [	        U5      [         R                  " S5      5        [        [	        U5      R
                  S5        [        [	        [	        U5      SS9U5        [         R                  " [         R                  U45      n[        [	        U5      R                  [         R                  L 5        g )Nzu1,f4,i8Talignr   r(      )	r7   r)   zerosr   r   itemsizerecordr   type)r=   dtr2   s      rB   test_repack_fields#TestRecFunctions.test_repack_fields   s    XXj-HHQb!]2&(<=]1%..3]=#4DA2F XXryy"o&b!&&"))34rE   c           	         [         R                  " S/ SQS9n[        U5      n[        U[         R                  " SSS95        [         R                  " / SQ/ SQS9n[         R
                  " [        USS	/   5      S
S9n[        U[         R                  " / SQ5      5        [         R
                  " [        US/   5      S
S9n[        U[         R                  " / SQ5      5        [         R                  " S5      R                  S5      n[        XRR                  5      n[         R                  " SSSS/4SSSS/4SSSS/4SSSS/4/SS S!S"/4S#/S9n[        X65        [         R                  " / SQ/ SQS9n[        [        [         R
                  U5      [         R                  " / S$Q5      5        [        [        [         R
                  USS	/   5      [         R                  " / SQ5      5        [         R                  " / SQ/ S%QS9n[        U5      n[        XR                  5      n	[        [         R                  " X5      5        [        [         R                  " X5      5        [        US	S/   5      n
[        U
SS&/S'S/S(S'/S)S//5        [        [         R                  " X5      5        [         R                  " S&S*S+/SS/S,S'//4S-S.S/S(S)/S/S0//4// S1QS9n[        U5      n[        XR                  5      n	[        [         R                  " X5      5        [        [         R                  " X5      5        US S S
2   n[        U5      n[        U/ S2Q/ S3Q/5        U/ S4Q   n[        U5      n
[        U
/ S5Q/ S6Q/5        [         R                  " S&S*S+/SS/S,S'//S74S-S.S/S(S)/S/S0//S84// S9QS9n[        U/ S:Q   5      n[        [         R                  " X5      5        [        U/ S3Q/ S2Q/5        [         R                  " S[        4S;[        4/5      n[         R                  " S<U4S U4S=U4/5      n[         R                  " SU5      n[        U[        S9n[        U[         R                  " S>[        S95        S? nS@ nSPSA jnU" U" U" [         R                  [         R                  5      S+5      5      n[        U" U5      SB[         R                  U45        U" U" U" [         R                  S*5      S*5      5      n[        U" U5      SC[         R                  U45        U" [         R                  5      n[        U" U5      SD[         R                  U45        U" [         R                  U" U" [         R                  S*5      S*5      5      n[        U" U5      SE[         R                  U45        U" 5       n[        [         [        [         R                  " S+U5      5        [        ["        [        [         R                  " S+U5      [         R                  S9  [        ["        [        [         R                  " SF[         R                  S95        [         R                  " SGSH/SSI/S9n[        USJSK9nUR%                  [         R&                  5      n[        USLSK9n[        USJSK9n	[        [         R                  " Xx5      5        [        [)        U5      [         R&                  L 5        [        [)        U	5      [         R&                  L 5        [        UU5        [        U	U5        [         R*                  " USM-  SNUR                  UR,                  SO9nUUS S & [        USLSK9n[        USJSK9n	[        [         R                  " Xx5      5        [        [)        U5      [         R*                  L 5        [        [)        U	5      [         R*                  L 5        [        UU5        [        U	U5        g )QNr.   )r2   i4)r3   zf4,u2)cf4r   r(   )r.   r0   f8))r   r   r0   )r.   r0      )r         )r   r      )r>   r   )r?   r   )r@   r   r>   r@   r|   )axis)r,   g      @      "@      &@)r#         @      @      $@r   r   )r#   r   r,   r   r0   )r1   r          @r   r   )r   r   g      *@g      ,@   )g      0@   g      2@g      3@r   r3   )f0r   )f1u2)r   r   r   )gUUUUUU@gUUUUUU@gUUUUUU!@r   )r   )r?   r   )r@   r   r   r   r   r   r   r~   r   r   	   r      )x0r   x1)r   r   x2)r   r   r   )r   r   r   r   r   r   r   )r   r   r~   r.   r0   r   r   )r   r   r   )r.   r0   r   r   r   r~   r   )r   r   r   r   r   r   r       @   )r   r   r   )ignoredu1)r   r   r   r?   r2   r   )r   r   c                 0    [         R                  " X45      $ N)r7   r)   )r   shapes     rB   subarrayBTestRecFunctions.test_structured_to_unstructured.<locals>.subarray:  s    88RK((rE   c            	          [         R                  " [        U 5       VVs/ s H  u  pSR                  U5      U4PM     snn5      $ s  snnf )Nzx{})r7   r)   	enumerateformat)dtsir   s      rB   
structuredDTestRecFunctions.test_structured_to_unstructured.<locals>.structured=  s6    88	#Ouqell1or2OPPOs   A
c                     [         R                  " SU 5      n[        X!S9n[        X05      nUR                  UR
                  UR
                  4$ )NrQ   r(   )r7   r   r   r   r   r)   )r   r)   arrretbackarrs        rB   inspectATestRecFunctions.test_structured_to_unstructured.<locals>.inspect@  s?    ((2r"C,S>C09G99cii66rE   )r   rP   rO   )r0   )r~   r   r   r   r~   r.   )r3   r   T)copyFmemmapzw+)moder)   r   r   )r7   r   r   r   r8   meanarangereshaper   r)   r   r   shares_memoryr:   int32r   
ValueErrorNotImplementedErrorrY   recarrayr   r   r   )r=   tmp_pathr2   outr3   r   wantdddddddd_attrib_revd_revdd_revd_attrib_revpointtriangler   resr   r   r   r   d_plaindd_expecteds                           rB   test_structured_to_unstructured0TestRecFunctions.test_structured_to_unstructured   s   HHQKL(+S"((556HHEBDgg0C:?bIS"((#;<=gg0C5:DS"((#;<=IIbM!!%((GG4xx1i24i24i#s4i#s46 ( <">?-/	0 	SHHEBD'3XX>?	A'C:?XX67	9 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	)	Q	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+-88E+J	L ((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+&rE   c                     [         R                  " S5      nS[        4S[        4/n[         R                  " U5      n[	        XS9n[	        XS9n[        XE5        g )N)r   r   r>   r?   r(   )r7   r   r9   r)   r   r   )r=   r2   test_dtype_args
test_dtypefield1field2s         rB   test_unstructured_to_structured0TestRecFunctions.test_unstructured_to_structuredx  sL    HHW<#u6XXo.
+AE+A@V$rE   c                    [         R                  " S/ SQS9nSS/n[        [        X5      [         R                  " SU5      5        [         R                  " SS/US9n[        XSS	9  [        U[         R                  " S
S/UR                  S95        [        X5        [        U[         R                  " SS/UR                  S95        [         R                  " SSSS/4/S9nSS/4/n[        [        X5      [         R                  " SU5      5        [         R                  " SS/US9n[        XSS	9  [        U[         R                  " SS/UR                  S95        [        X5        [        U[         R                  " SS/UR                  S95        [         R                  " S5      [         R                  " S5      p1[        X15        [        US   S5        g )Nr   )r   r3   r   r   r   r(   r3   r   r   r   r   F)zero_unassigned)r   r   r   )r   r~   r.   )r   r   r   )r   r~   r.   r2   r   )r   )r~   )r   )r   r~   ))r   r   ))r   r~   r~   r   rQ   )r7   onesr   r   r8   r   r)   )r=   r2   newdtr3   s       rB   test_field_assignment_by_name.TestRecFunctions.test_field_assignment_by_name  ss   GGADEk*^A-rwwq%/@AHHeU^51aE:Q''!2!''BCa#Q''!2!''BC GGAs[+$>?@A}%&^A-rwwq%/@AHHgw'u5aE:Q(H!5QWWEFa#Q(H!5QWWEF xx{BHHQK1a#QrUArE   r;   N)__name__
__module____qualname____firstlineno__rC   rL   rT   r[   rb   rg   rn   r   r   r   r   r   r   __static_attributes__rQ   rE   rB   r   r      sI    !NB$@	$$$6+B+
5P'd%rE   r   c                        \ rS rSrS rS rSrg)TestRecursiveFillFieldsi  c                    [         R                  " SS/S[        4S[        4/S9n[         R                  " SUR
                  S9n[        X5      n[         R                  " / SQS[        4S[        4/S9n[        X45        g )Nr   r   r         4@r"   r%   r(   r   r  r  )r           )r7   r8   r:   r9   r   r)   r
   r   r=   r2   r3   rK   rS   s        rB   test_simple_flexible,TestRecursiveFillFields.test_simple_flexible  sk    HHh)3*sEl1KLHHT)$Q*((8#&*sEl!;=T#rE   c                    [         R                  " SS/SS/S[        4S[        4/S9n[         R                  " SUR
                  S	9n[        X5      n[         R                  " / S
Q/ SQS[        4S[        4/S9n[        X45        g )Nr  r  r   r   rv   r"   r%   rw   r   r(   r  )r  rv   ru   )r   r8   r:   r9   r   r)   r
   r   r  s        rB   test_masked_flexible,TestRecursiveFillFields.test_masked_flexible  sz    HHh)0@ #Je57HHT)$Q*((8 8#&*sEl!;= 	T#rE   rQ   N)r   r   r   r   r	  r  r   rQ   rE   rB   r  r    s    $	$rE   r  c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestMergeArraysi  c           	         [         R                  " SS/5      n[         R                  " / SQ5      n[         R                  " SS/SS[        4/S9n[         R                  " S	S
/S[        4SS[        4S[        4S/ 4/4/S9nXAX#4U l        g )Nr   r   r   r!   r$   r'   r%   r(   r   )r   r,   rQ   r.   )r0   r1   rQ   r2   r3   r4   r5   bcr6   r<   s        rB   rC   TestMergeArrays.setup_method  s    HHaXHH\"HH	"<#u*FHHH 12:tUmdC[4*%MNOQ 1L	rE   c                    U R                   u  pp[        U5      n[        R                  " SS/S[        4/S9n[        XE5        [        U45      n[        XE5        [        USS9n[        XC5        [        USS9n[        XC5        g )NrO   r   r   r(   FrG   T)r;   r   r7   r8   r:   r   r=   _r>   r@   rK   rS   s         rB   	test_soloTestMergeArrays.test_solo  sv    yyqA((D$<s}=T#QD!T#Au-TAt,TrE   c                     U R                   S   n[        USS9n[        X!5        [        USS9n[        R                  " SS/S[
        4S[        4S	[
        4/S
9n[        X#5        g )Nr   FrG   T)r   r   r,   )r.   r0   r1   r2   r4   r5   r(   )r;   r   r   r7   r8   r:   r9   r=   rA   rK   rS   s       rB   test_solo_w_flatten#TestMergeArrays.test_solo_w_flatten  sc    IIaLAu-TAt,((K5#&*tUmdC[!IKT#rE   c                 T   U R                   u  pp1[        X#4SS9n[        R                  " / SQS[        4S[        4/S9n[        XE5        [        X#4SS9n[        R                  " / SQ/ SQS[        4S[        4/S	9n[        XE5        [        UR                  UR                  5        g )
NFusemask)r   r   )r   r   )r|   r    r   r   r(   Tru   ru   rv   rw   )r;   r   r7   r8   r:   r   r   rx   r=   r  r>   r?   rK   rS   s         rB   test_standardTestMergeArrays.test_standard  s     yyqQFE2((7#'+c{!;=T#QFD1((7 8#'+c{!;= 	T#TYY-rE   c                    U R                   u  pp[        X#4SS9n[        R                  " SS/S[        4SS[
        4/S9n[        XE5        [        X#4S	S9n[        R                  " S
S/S[        4SSS[
        4/4/S9n[        XE5        g )NTrG   )r   r"   r#   )r   r%   r&   r   r'   r%   r(   F)r   r!   )r   r$   r   r;   r   r7   r8   r:   r9   r   r  s         rB   test_flattenTestMergeArrays.test_flatten  s    yyqQFD1((L,7#'+|c5\!JLT#QFE2((NN;#'+#',e)E"F"HI 	T#rE   c                 ^   U R                   u  p  n[        X!4SS9n[        R                  " SS/S[        4S[        4S[
        4S[        4/S	9n[        XE5        [        X!4S
S9nS[        4SS[        4SS[
        4S[        4S/ 4/4/4/n[        R                  " SS/US	9n[        XE5        g )NTrG   )r   r   r   r,   )r   r.   r0   r1   r   r2   r4   r5   r(   Fr   r3   r  )r#   r  )r   r  r(  )r=   rA   r>   r  rK   rS   controldtypes          rB   test_flatten_wflexible&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#rE   c                 2   U R                   u  p  n[        R                  " / SQ/ SQS9n[        X#4SS9n[        R                  " / SQ/ SQS[        4S	[        4/S
9n[        XE5        [        X#4SSS9n[        XE5        [        [        U[        5      5        g )Nr   r   r~   r   r   r   r   Tr   )r   r   r   )r|   r~   )r  ru   rv   r   r   rw   )r!  
asrecarray)	r;   r   r8   r   r:   r   r   
isinstancer   )r=   r  r>   mxrK   rS   s         rB   test_wmasked_arrays#TestMergeArrays.test_wmasked_arrays
  s    yyq!XXii0QGT2((4 8#'+c{!;= 	T#QGTdCT#
4/0rE   c                    [        [        R                  " SS/5      R                  S[        4/5      [        R                  " / SQ5      45      n[
        R                  " / SQ/ SQS[        4S[        4/S9n[        X5        g )	Nr   r   r2   )r   r  rW   )r  r  )r|   rW   r#  r   rw   )r   r7   r8   rY   r:   r   r9   r   )r=   rK   rS   s      rB   test_w_singlefield"TestMergeArrays.test_w_singlefield  sk    RXXq!f-22S#J<@XXo68 :((: 8#&*tUm!<> 	T#rE   c                     U R                   S   n[        U[        R                  " / SQ5      R	                  S[
        4/5      45        [        R                  " / SQSS[        4S[
        4/S9  g )Nr|   r   rs   )r"   r#   r   r%   r&   r   )z-1r|   r   r'   r%   r(   )r;   r   r7   r8   rY   r:   r9   )r=   r@   s     rB   test_w_shorter_flex#TestMergeArrays.test_w_shorter_flex   sZ    IIbM 	a,/44sCj\BCD
?$sElS#J?	ArE   c           	          U R                   u  pp4[        US   US   US   4SS9n[        R                  " S/S[        4S[        4SSS	[
        4/4/S
9n[        XV5        g )Nr   Fr   )r   r   r"   r   r   r   f2r'   r%   r(   r(  )r=   r  r>   r?   r@   rK   rS   s          rB   test_singlerecord!TestMergeArrays.test_singlerecord/  sr    yyqQqT1Q41.>((-.#'+#'+#',e)E"F"HI 	T#rE   r   N)r   r   r   r   rC   r  r  r%  r)  r-  r6  r9  r>  rC  r   rQ   rE   rB   r  r    s5    !	$. $$"1$A$rE   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestAppendFieldsi9  c                    [         R                  " SS/5      n[         R                  " / SQ5      n[         R                  " SS/SS[        4/S9n[         R                  " S	S
/S[        4SS[        4S[        4/4/S9nXAX#4U l        g r   r6   r<   s        rB   rC   TestAppendFields.setup_method<      HHaXHH\"HH	"<#u*FHHHm]3 #Je}tSk.J(KLN1L	rE   c                     U R                   u  p  n[        US/ SQS9n[        R                  " / SQ/ SQS[        4S[        4/S9n[        X45        g )Nr"   r   r   r"  r#  r   rw   r;   r   r   r8   r:   r   r=   r  r>   rK   rS   s        rB   test_append_single#TestAppendFields.test_append_singleE  sM    yyq!Q,7((7 8#'+Sz!:= 	T#rE   c                     U R                   u  p  n[        US/ SQSS//S9n[        R                  " / SQ/ SQS[        4S	[        4S
[        4/S9n[        X45        g )Nr^   r   d      r   ))r   r   rP  )r   r   rQ  )r|   r    r|   )r   r   r   rR  )r   r   r   r   r"   r%   rw   rK  rL  s        rB   test_append_double#TestAppendFields.test_append_doubleN  s]    yyq!Q
,c
1KL((E A#'+SzC:!FI 	T#rE   c                     U R                   S   n[        US/ SQS9n[        R                  " / SQ/ SQSS[        4S[
        4/S	9n[        X#5        g )
Nr|   rs   r   r   )r<  r=  )r|         r    )rR  rR  r   r   r   r'   r%   rw   )r;   r   r   r8   r9   r:   r   )r=   r@   rK   rS   s       rB   test_append_on_flex$TestAppendFields.test_append_on_flexW  sN    IIbMQ,7((H A".esCj!IL 	T#rE   c           	          U R                   S   n[        US/ SQS9n[        R                  " / SQ/ SQS[        4SS	[
        4S
[        4/4S[        4/S9n[        X#5        g )Nr   rs   r   r   ))r   r+   r   )r.   r/   r   )r|   )r|   rV  r    )r   ru   r   r[  )r   r2  r   r2   r3   r4   r5   rw   )r;   r   r   r8   r:   r9   r   r  s       rB   test_append_on_nested&TestAppendFields.test_append_on_nested`  sh    IIaLQ,7(( 1!N#&*#&$s(D"E#&*".0 	T#rE   r   N)
r   r   r   r   rC   rM  rS  rX  r\  r   rQ   rE   rB   rF  rF  9  s    !$$$$rE   rF  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestStackArraysio  c                    [         R                  " SS/5      n[         R                  " / SQ5      n[         R                  " SS/SS[        4/S9n[         R                  " S	S
/S[        4SS[        4S[        4/4/S9nXAX#4U l        g r   r6   r<   s        rB   rC   TestStackArrays.setup_methodq  rI  rE   c                     U R                   u  p  n[        U45      n[        X25        [        X2L 5        [        U5      n[        X25        [        X2L 5        g r   )r;   r   r   r   )r=   r  r>   rK   s       rB   r  TestStackArrays.test_soloz  sJ    yyq!QD!T	AT	rE   c                 6   U R                   u  pp1[        X"4SS9n[        R                  " / SQ5      n[	        XE5        [        X#4SS9n[        R                  " / SQ5      n[	        XE5        [        X24SS9n[        R                  " / SQ5      n[	        XE5        g )NFr   )r   r   r   r   )r   r   r   r   r    )r   r   r    r   r   )r;   r   r7   r8   r   r$  s         rB   test_unnamed_fields#TestStackArrays.test_unnamed_fields  s}    yyqQFE2((<(T#QFE2((-.T#QFE2((-.T#rE   c                 $   U R                   u  pp[        X#45      n[        R                  " / SQ/ SQS[        4SS[
        4/S9n[        XE5        [        UR                  UR                  5        [        X245      n[        R                  " / SQ/ SQSS[
        4S	[        4/S9n[        XE5        [        UR                  UR                  5        [        X3U45      n[        R                  " / S
Q/ SQSS[
        4S	[        4/S9n[        XE5        g )N))r   r|   r|   )r   r|   r|   )r|   r"   r   )r|   r%   r   )r   r   r   rh  r1  r1  r   r'   r%   rw   )r"   r   r|   r%   r   r|   r|   r|   r   r|   r|   r   )r   r   r   rm  rW  rW  rB  )ri  rj  ri  rj  rk  rl  )rm  rm  rm  rm  rW  rW  )r;   r   r   r8   r:   r9   r   rx   r  s         rB   test_unnamed_and_named_fields-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#rE   c                    U R                   u  pp[        R                  " / SQSS[        4S[        4/S9n[	        X445      n[
        R                  " / SQSS[        4S[        4// SQS9n[        XV5        [        UR                  UR                  5        [	        X4U45      nSS[        4S[        4S	[        4/n[
        R                  " / S
QU/ SQS9n[        XV5        [        UR                  UR                  5        g )Nr2   r         Y@r3   r        i@r   rW        r@r'   r%   rs   r(   )ri  rj  rr  rt  rv  rm  rm  rR  rR  rR  r)   rx   f3))r"   r   r|   r|   )r%   r   r|   r|   )r2   r   rs  r|   )r3   r  ru  r|   )r   rW   rw  r|   )r|   r|   r|   r   )r|   r|   r|   r   )r   r   r   r   r{  r   r   r   r   r|  r|  r   r   r   r   r}  )	r;   r7   r8   r9   r   r   r   rx   r:   )r=   r  r>   r@   zzrK   rS   ra   s           rB   test_matching_named_fields*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-rE   c                 |   U R                   u      p[        R                  " / SQSS[        4S[        4/S9nSSSS	S
.n[	        X#4US9n[
        R                  " / SQSS[        4S[        4// SQS9n[        XV5        [        UR                   UR                   5        [        UR                  UR                  5        g )Nrq  r'   r%   rs   r(   z???g     8    g    i)r"   r%   rs   D)defaults))r"   r   r  )r%   r   r  rr  rt  rv  rx  ry  )r;   r7   r8   r9   r   r   r   rx   )r=   r  r@   r~  r  rK   rS   s          rB   test_defaultsTestStackArrays.test_defaults  s    yyAqXXL)C<#uFHUgFQGh7(( U #/esEl!K!B	C 	T#TYY-TYY-rE   c                    S[         4S[        4S[        4/n[        R                  " S/S/US9nS[         4S[        4S[        4/n[        R                  " S/US9n[        R                  " SS/SS	/US9n[        X$4S
S9n[        Xe5        [        UR                  UR                  5        [        [        5         [        X$4SS9  S S S 5        g ! , (       d  f       g = f)Nr"   r%   rs   r0  r   r   r   rw   r.   r0   r   r(   rR  T)autoconvertF)
r:   boolr9   r   r8   r   r   rx   r   	TypeError)r=   adtyper2   bdtyper3   rS   rK   s          rB   test_autoconversion#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                 ^   S[         4S[        4S[        4/n[        R                  " S/S/US9nS[         4S[        4S[        4/n[        R                  " S/US9n[        X$45      n[        R                  " SS/SS	/US9n[        XV5        [        UR                  UR                  5        g )
N)r2   r"   )r3   r%   )r   rs   r0  r  rw   r  r(   rR  )r:   r  r9   r   r8   r   r   rx   )r=   r  r2   r  r3   rK   rS   s          rB   test_checktitles TestStackArrays.test_checktitles  s    s#j$%7*e9LMHHi[	{&As#j$%7*e9LMHHi[/QF#((Iy1I8N!')T#TYY-rE   c           
         [         R                  " SS/SS[        S4/S9n[         R                  " SS/S	4S
S/S4SS/S4/SS[        S4S[        4/S9n[        X45      n[        R                  " SS/S4SS/S4SS/S	4SS/S4SS/S4/SS/S4SS/S4SS/S4SS/S4SS/S4/UR
                  S9n[        UR
                  UR
                  5        [        X45        [        UR                  UR                  5        g )NrA  )r%   r   r'   r%   rO   r(   r2   r   rs  r3   r  ru  r   rW   rw  rs      Ar#   r      Br&      a   b   cFT)r;   rx   r)   )r7   r8   r9   r   r   r)   r   rx   )r=   r@   r~  r   expecteds        rB   test_subdtype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}}-rE   r   N)r   r   r   r   rC   r  re  rn  r  r  r  r  r  r   rQ   rE   rB   r_  r_  o  s0    !	$ $@.8."4
..rE   r_  c                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)
TestJoinByi  c                 
   [         R                  " [        [        [         R                  " S5      [         R                  " SS5      [         R                  " SS5      5      5      S[
        4S[
        4S[
        4/S	9U l        [         R                  " [        [        [         R                  " S
S5      [         R                  " SS5      [         R                  " SS5      5      5      S[
        4S[
        4S[
        4/S	9U l        g )Nr   2   <   rP  n   r2   r3   r   r(   r0   r   A   K   r   r7   r8   listzipr   r:   r2   r3   r=   s    rB   rC   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rE   c           	          U R                   U R                  p![        SXSS9n[        R                  " / SQS[
        4S[
        4S[
        4S[
        4S[
        4/S	9n[        X45        g )
Nr2   inner)jointype))r0   7   r  i   rP  )r   8   B   j   e   )r   9   C   k   f   )r   :   D   l   g   )r   ;   E   m   h   b1b2r   r   r(   r2   r3   r   r7   r8   r:   r   r  s        rB   test_inner_joinTestJoinBy.test_inner_join#  sc    vvtvv1sA73(( 3 $'*tSkD#;#&*sCj":;
 	T#rE   c                     U R                   U R                  p![        SX5        [        R                  " / SQS[
        4S[
        4S[
        4S[
        4/S9  g )Nre   ))r0   r  r  rP  )r   r  r  r  )r   r  r  r  )r   r  r  r  )r   r  r  r  r2   r3   r   r   r(   )r2   r3   r   r7   r8   r:   r=   r2   r3   s      rB   	test_joinTestJoinBy.test_join/  sO    vvtvv1 	
A!
 % sc3Zsc3Z1	2rE   c                    [         R                  " S/S[        4/S9n[         R                  " S[         R                  " / SQ5      4/S[        4S/S9n[        SX5      n[	        X2R                  [        R                  5      5        g )NrO   r}   r(   r   r0  )valueuint16r~   )r7   r8   r:   r   r   rY   r   MaskedArray)r=   foobarr   s       rB   test_join_subdtypeTestJoinBy.test_join_subdtypeC  sm    hhv$cl^-hhBHHW-./$cl,BCEeS&S((2>>23rE   c           	          U R                   U R                  p![        SXS5      n[        R                  " / SQ/ SQS[
        4S[
        4S[
        4S[
        4/S	9n[        X45        g )
Nre   outer)r   r  rP  r|   r   3   r  r|   r   4   r  r|   r~   5   r  r|   r.   6   r  r|   r0   r  r  r|   )r0   r  r|   rP  r   r  r  r|   )r   r  r|   r  r   r  r  r|   )r   r  r|   r  r   r  r  r|   )r   r  r|   r  r   r  r  r|   )r   r  r|   r  )r   F   r|   r  )r   G   r|   r  )r   H   r|   r  )r   I   r|   r  )r   J   r|   r  )r|  r|  r|  r|  r|  r|  r   r   r   r   r|  r  r|  r  r|  r  r|  r  r  r  r  r  r  r2   r3   r   r   rw   r2   r3   r   r   r8   r:   r   r  s        rB   test_outer_joinTestJoinBy.test_outer_joinL  sc    vvtvv1z11(( 	B	!= $'*sCj#&*sCj":);, 	T#rE   c           	          U R                   U R                  p![        SXS5      n[        R                  " / SQ/ SQS[
        4S[
        4S[
        4S[
        4/S	9n[        X45        g )
Nre   	leftouter)
r  r  r  r  r  r  r  r  r  r  )
r|  r|  r|  r|  r|  r|  r|  r|  r|  r|  r2   r3   r   r   rw   r  r  s        rB   test_leftouter_joinTestJoinBy.test_leftouter_joinh  sa    vvtvv1z15(( @
!=
 $'*sCj3*sCj!Q
S 	T#rE   c                     [         R                  " S/ SQS9n[         R                  " S/ SQS9n[        SS/XSSS	9n[	        UR
                  R                  / S
Q5        g )Nr~   r   r   r   r(   r   r   r   r   r3   r  F)r  r!  )r3   r   a1a2)r7   r   r   r   r   r)   names)r=   r2   r3   js       rB   test_different_field_order%TestJoinBy.test_different_field_ordery  sK    HHQEFGGADES#JwFQWW]]$:;rE   c                     [         R                  " S/ SQS9n[         R                  " S/ SQS9n[        [        [
        / SQX5        g )Nr~   r  r(   r  )r2   r3   r3   )r7   r   r   r   r   r   r  s      rB   test_duplicate_keysTestJoinBy.test_duplicate_keys  s2    HHQEFGGADEj'?AArE   c                 4   [         R                  " SS/5      n[         R                  " SS/5      n[         R                  " / SQ5      n[         R                  " SS/US9n[         R                  " SS	/US9n[        S
XE5      n[	        UR                  U5        g )N)r}   S5r  <f4r}   S10)r  value1r  )value2r  Sarahr   Johnr1   r(   r  r   r  r   r}   r7   r)   r8   r   r   r=   a_dtypeb_dtypeexpected_dtyper2   r3   r   s          rB   #test_same_name_different_dtypes_key.TestJoinBy.test_same_name_different_dtypes_key  s    ((M+;<=((N,<=> #B C HHo}5WEHHo}5WEeQ"SYY/rE   c                 4   [         R                  " SS/5      n[         R                  " SS/5      n[         R                  " / SQ5      n[         R                  " SS/US9n[         R                  " SS	/US9n[        S
XE5      n[	        UR                  U5        g )Nr  r  )r  <f8))r}   z|S10r  )r  r  r  r  r(   r  r  r}   r  r	  s          rB   test_same_name_different_dtypes*TestJoinBy.test_same_name_different_dtypes  s    ((N,<=>((N,<=> #C D HHo}5WEHHo}5WEeQ"SYY/rE   c                    [         R                  " S[        S4S/5      n[         R                  " / SQ[         R                  4/ SQS4/US9n[         R                  " S[        S4S/5      n[         R                  " / SQS4/ S	QS4/US9n[         R                  " S[        S4SS/5      n[         R                  " / SQ[         R                  S4/US9n[        SX$5      n[        UR                  U5        [        Xv5        g )
Nposr~   )fr  )r   r   r   r0  r  r(   )gr  )r~   r   r   )r7   r)   r:   r8   pir   r   )r=   r
  r2   r  r3   r  r  r   s           rB   test_subarray_key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#rE   c                 R   [         R                  " SSS9nSUl        [        [	        UR
                  5      S5        [         R                  " SS/U5      n[         R                  " SS	/U5      n[        S
X#5      n[         R                  " / SQ5      n[        UR                  U5        g )Nzi1,f4Tr   )kvr~   r   )r~   r   r2  r   r  ))r  i1)v1r   )v2r   )	r7   r)   r  r   lendescrr8   r   r   )r=   r   r2   r3   r   r  s         rB   test_padded_dtypeTestJoinBy.test_padded_dtype  s    XXgT*BHHq!HHff%r*HHff%r*c1   #
  	SYY/rE   re   N)r   r   r   r   rC   r  r  r  r  r  r  r  r  r  r  r"  r   rQ   rE   rB   r  r    s@    F
$2(4$8$"<B

00$0rE   r  c                   <    \ rS rSr\S 5       rS rS rS rS r	Sr
g)	TestJoinBy2i  c                    [         R                  " [        [        [         R                  " S5      [         R                  " SS5      [         R                  " SS5      5      5      S[
        4S[
        4S[
        4/S	9U l        [         R                  " [        [        [         R                  " S5      [         R                  " S
S5      [         R                  " SS5      5      5      S[
        4S[
        4S[
        4/S	9U l        g )Nr   r  r  rP  r  r2   r3   r   r(   r  r  r   r  )clss    rB   rC   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rE   c           	          U R                   U R                  p![        SXSSSS9n[        R                  " / SQS[
        4S[
        4S[
        4S	[
        4S
[
        4/S9n[        X45        g )Nr2   rI   2r  	r1postfix	r2postfixr  
)r   r  r  rP  rP  )r   r  r  r  r  )r   r  r  r  r  )r~   r  r  r  r  )r.   r  r  r  r  )r0   r  r  r  r  )r   r  r  r  r  )r   r  r  r  r  )r   r  r  r  r  )r   r  r  r  r  r3   r  r   r   r(   r  r  s        rB   test_no_r1postfixTestJoinBy2.test_no_r1postfix  sl    vvtvv1sWF(( J
 $'*sCj4+#&*sCj":; 	T#rE   c           
      Z    [        [        [        SU R                  U R                  SSS9  g )Nr2   rI   )r,  r-  )r   r   r   r2   r3   r  s    rB   test_no_postfixTestJoinBy2.test_no_postfix  s!    j'3 "b	2rE   c           	          U R                   U R                  p![        SXSSSS9n[        R                  " / SQS[
        4S[
        4S[
        4S	[
        4S
[
        4/S9n[        X45        g )Nr2   1rI   r  r+  r.  r  r3   r   r   r(   r  r  s        rB   test_no_r2postfixTestJoinBy2.test_no_r2postfix  sl    vvtvv1WF(( J
 $'*tSkC:#&*sCj":; 	T#rE   c                    [         R                  " [        [        [         R                  " SS/S5      [         R
                  " [         R                  " S5      S5      [         R                  " SS5      [         R                  " SS5      5      5      S[        4S	[        4S
[        4S[        4/S9n[         R                  " [        [        [         R                  " SS/S5      [         R
                  " [         R                  " S5      S5      [         R                  " SS5      [         R                  " SS5      5      5      S[        4S	[        4S
[        4S[        4/S9n[         R                  " / SQS[        4S	[        4S[        4S[        4S[        4S[        4/S9n[        S	S/XSSSS9n[        UR                  UR                  5        [        XC5        g )Nr   r   r0   r   r  r  r   r  r2   r3   r   r(   r  r  r   )
)r   r   r  r  r   r   )r   r   r  r  r   r   )r   r   r  r  r   r   )r   r   r  r  r   r~   )r   r   r  r  r   r.   )r   r   r  r  r   r0   )r   r~   r  r     r   )r   r~   r  r  r   r   )r   r.   r  r     r   )r   r.   r  r  r   r   r  r  c1c2r5  r*  r  r+  )r7   r8   r  r  tilerepeatr   r:   r   r   r)   )r=   r2   r3   rS   rK   s        rB   test_two_keys_two_vars"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#rE   rQ   N)r   r   r   r   classmethodrC   r/  r2  r6  r?  r   rQ   rE   rB   r%  r%    s*    E E$2$$rE   r%  c                   $    \ rS rSrSrS rS rSrg)TestAppendFieldsObji  z3
Test append_fields with arrays containing objects
c                 <    SSK Jn  [        U" SSS5      S9U l        g )Nr   )datei  r   )obj)datetimerE  dictr;   )r=   rE  s     rB   rC    TestAppendFieldsObj.setup_method  s    !T$1-.	rE   c                 <   U R                   S   n[        R                  " US4US4/S[        4S[        4/S9n[        R                  " SS/[
        S9n[        US	US
S9n[        R                  " USS4USS4/S[        4S[        4S	[
        4/S9n[        XE5        g)z7Test append_fields when the base array contains objectsrF  r#   r&   r"   r%   r(   r   r   rs   F)r;   r!  N)r;   r7   r8   objectr9   r:   r   r   )r=   rF  r>   r?   rK   rS   s         rB   test_append_to_objects*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#rE   r   N)r   r   r   r   __doc__rC   rL  r   rQ   rE   rB   rC  rC    s    
/	$rE   rC  )-numpyr7   numpy.mar   numpy.ma.mrecordsr   numpy.ma.testutilsr   numpy.testingr   r   numpy.lib.recfunctionsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   librecfunctions_get_fieldspecget_fieldspecr_   rf   
_zip_descrrJ   
_zip_dtype	zip_dtyper   r  r  rF  r_  r  r%  rC  rQ   rE   rB   <module>r\     s      + + 0? ? ? ? ?
 ##22FF))	$$33FF**	FF**	G GT$ $.B$ B$J3$ 3$lh. h.Va0 a0H?$ ?$B$ $rE   