
    (ph                     l   S SK r 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  \R8                  R:                  R<                  r\R8                  R:                  R@                  r \R8                  R:                  RB                  r!\R8                  R:                  RD                  r#\R8                  R:                  RH                  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      
   r      A      ?B       @r!   z|S3r$   dtyper   r         @            @abbabbnparrayfloatintdataselfxyzws        T/var/www/html/venv/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$   r1   r3   r4   r2   )r:   	zip_descrr   r6   r(   r9   r8   )r<   r@   r=   r>   r?   tests         rA   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rD   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,   r1   r2   r3   r4   r'   )r*   )r.   r   r-   )r   )r+   )r-   )r0    )r6   r7   r9   r8   r   r   r<   r1   rJ   controls       rA   test_drop_fields!TestRecFunctions.test_drop_fieldsA   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#rD   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-   r/   r0   g      N@r1   r2   r3   r4   r'   r!   BB)r1   r4   )r6   r7   r9   r8   r   viewr   r(   )r<   r1   rJ   newdtyperR   s        rA   test_rename_fields#TestRecFunctions.test_rename_fieldsa   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#rD   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$   r1   r2   r3   r4   )r1   )r2   )r3   r4   )r1   )r2   rP   rP   )r6   r(   r8   	get_namesr   r9   r<   ndtyperJ   s      rA   test_get_namesTestRecFunctions.test_get_namesl   s    <#u67 T:&C:tUmdC[-I'JKL T56C:Ry12 T+," T2rD   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]   r1   r2   r3   r4   )r1   r2   r3   r4   r1   r2   rP   )r6   r(   r8   get_names_flatr   r9   r_   s      rA   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rD   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rW   z|S1)r!   r$   ri   rW   rW   BBABBB)r!   r$   ri   rW   rk   rl   )r6   r(   r8   r	   r   r9   )r<   r`   rJ   rR   s       rA   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rD   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   rq   rp   )r   )r"   r$   rp   )r   )r%   C)r   r   r   rs   rs   rs   )r   rt   )r   r   r   r!   r$   ri   rj   maskr(   FT
ignoremaskreturn_indexr   r   )keyrz   )r   r   r      r/   )r   r   r   r-   rW   )r   r   r   r}   r-   )mar7   r9   r8   r   r   sortedrQ   s       rA   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*rD   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 )Nr1   )r   r   r   r   r   r}   r}   )r   r   r   r   r   r   r   rw   Trx   )r   r   r}   r-   r{   r   F)r   r   r   r}   r-      )r9   r~   r7   rX   r   r   r   )r<   r`   r1   rJ   rR   s        rA   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*rD   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'      )	r6   r(   zerosr   r   itemsizerecordr   type)r<   dtr1   s      rA   test_repack_fields#TestRecFunctions.test_repack_fields   s    XXj-HHQb!]2&(<=]1%..3]=#4DA2F XXryy"o&b!&&"))34rD   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-   )r1   i4)r2   zf4,u2)cf4r   r'   )r-   r/   f8))r   r   r/   )r-   r/      )r         )r   r      )r=   r   )r>   r   )r?   r   r=   r?   r{   )axis)r+   g      @      "@      &@)r"         @      @      $@r   r   )r"   r   r+   r   r/   )r0   r          @r   r   )r   r   g      *@g      ,@   )g      0@   g      2@g      3@r   r2   )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-   r/   r   r   )r   r   r   )r-   r/   r   r   r   r}   r   )r   r   r   r   r   r   r       @   )r   r   r   )ignoredu1)r   r   r   r>   r1   r   )r   r   c                 0    [         R                  " X45      $ N)r6   r(   )r   shapes     rA   subarrayBTestRecFunctions.test_structured_to_unstructured.<locals>.subarray;  s    88RK((rD   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{})r6   r(   	enumerateformat)dtsir   s      rA   
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$ )NrP   r'   )r6   r   r   r   r   r(   )r   r(   arrretbackarrs        rA   inspectATestRecFunctions.test_structured_to_unstructured.<locals>.inspectA  s?    ((2r"C,S>C09G99cii66rD   )r   rO   rN   )r/   )r}   r   r   r   r}   r-   )r2   r   T)copyFmemmapzw+)moder(   r   r   )r6   r   r   r   r7   meanarangereshaper   r(   r   r   shares_memoryr9   int32r   
ValueErrorNotImplementedErrorrX   recarrayr   r   r   )r<   tmp_pathr1   outr2   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                           rA   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+&rD   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'   )r6   r   r8   r(   r   r   )r<   r1   test_dtype_args
test_dtypefield1field2s         rA   test_unstructured_to_structured0TestRecFunctions.test_unstructured_to_structuredy  sL    HHW<#u6XXo.
+AE+A@V$rD   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   r2   r   r   r   r'   r2   r   r   r   r   F)zero_unassigned)r   r   r   )r   r}   r-   )r   r   r   )r   r}   r-   r1   r   )r   )r}   )r   )r   r}   ))r   r   ))r   r}   r}   r   rP   )r6   onesr   r   r7   r   r(   )r<   r1   newdtr2   s       rA   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rD   r:   N)__name__
__module____qualname____firstlineno__rB   rK   rS   rZ   ra   rf   rm   r   r   r   r   r   r   __static_attributes__rP   rD   rA   r   r      sI    !NB$@	$$$6+B+
5P'd%rD   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           )r6   r7   r9   r8   r   r(   r
   r   r<   r1   r2   rJ   rR   s        rA   test_simple_flexible,TestRecursiveFillFields.test_simple_flexible  sk    HHh)3*sEl1KLHHT)$Q*((8#&*sEl!;=T#rD   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   ru   r!   r$   rv   r   r'   r  )r  ru   rt   )r~   r7   r9   r8   r   r(   r
   r   r  s        rA   test_masked_flexible,TestRecursiveFillFields.test_masked_flexible  sz    HHh)0@ #Je57HHT)$Q*((8 8#&*sEl!;= 	T#rD   rP   N)r   r   r   r   r  r  r   rP   rD   rA   r   r     s    $	$rD   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+   rP   r-   )r/   r0   rP   r1   r2   r3   r4   bcr5   r;   s        rA   rB   TestMergeArrays.setup_method  s    HHaXHH\"HH	"<#u*FHHH 12:tUmdC[4*%MNOQ 1L	rD   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 )NrN   r   r   r'   FrF   T)r:   r   r6   r7   r9   r   r<   _r=   r?   rJ   rR   s         rA   	test_soloTestMergeArrays.test_solo  sv    yyqA((D$<s}=T#QD!T#Au-TAt,TrD   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   FrF   T)r   r   r+   )r-   r/   r0   r1   r3   r4   r'   )r:   r   r   r6   r7   r9   r8   r<   r@   rJ   rR   s       rA   test_solo_w_flatten#TestMergeArrays.test_solo_w_flatten  sc    IIaLAu-TAt,((K5#&*tUmdC[!IKT#rD   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rt   rt   ru   rv   )r:   r   r6   r7   r9   r   r~   rw   r<   r  r=   r>   rJ   rR   s         rA   test_standardTestMergeArrays.test_standard  s     yyqQFE2((7#'+c{!;=T#QFD1((7 8#'+c{!;= 	T#TYY-rD   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 )NTrF   )r   r!   r"   )r   r$   r%   r   r&   r$   r'   F)r   r    )r   r#   r   r:   r   r6   r7   r9   r8   r   r  s         rA   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#rD   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 )NTrF   )r   r   r   r+   )r   r-   r/   r0   r   r1   r3   r4   r'   Fr   r2   r  )r"   r  )r   r  r'  )r<   r@   r=   r  rJ   rR   controldtypes          rA   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#rD   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  rt   ru   r   r   rv   )r   
asrecarray)	r:   r~   r7   r   r9   r   r   
isinstancer   )r<   r  r=   mxrJ   rR   s         rA   test_wmasked_arrays#TestMergeArrays.test_wmasked_arrays  s    yyq!XXii0QGT2((4 8#'+c{!;= 	T#QGTdCT#
4/0rD   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   r1   )r   r  rV   )r  r  )r{   rV   r"  r   rv   )r   r6   r7   rX   r9   r~   r8   r   )r<   rJ   rR   s      rA   test_w_singlefield"TestMergeArrays.test_w_singlefield  sk    RXXq!f-22S#J<@XXo68 :((: 8#&*tUm!<> 	T#rD   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   rr   )r!   r"   r   r$   r%   r   )z-1r{   r   r&   r$   r'   )r:   r   r6   r7   rX   r9   r8   )r<   r?   s     rA   test_w_shorter_flex#TestMergeArrays.test_w_shorter_flex!  sZ    IIbM 	a,/44sCj\BCD
?$sElS#J?	ArD   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?   rJ   rR   s          rA   test_singlerecord!TestMergeArrays.test_singlerecord0  sr    yyqQqT1Q41.>((-.#'+#'+#',e)E"F"HI 	T#rD   r   N)r   r   r   r   rB   r  r  r$  r(  r,  r5  r8  r=  rB  r   rP   rD   rA   r  r    s5    !	$. $$"1$A$rD   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestAppendFieldsi:  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   r5   r;   s        rA   rB   TestAppendFields.setup_method=      HHaXHH\"HH	"<#u*FHHHm]3 #Je}tSk.J(KLN1L	rD   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   rv   r:   r   r~   r7   r9   r   r<   r  r=   rJ   rR   s        rA   test_append_single#TestAppendFields.test_append_singleF  sM    yyq!Q,7((7 8#'+Sz!:= 	T#rD   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   rO  )r   r   rP  )r{   r   r{   )r   r   r   rQ  )r   r   r   r   r!   r$   rv   rJ  rK  s        rA   test_append_double#TestAppendFields.test_append_doubleO  s]    yyq!Q
,c
1KL((E A#'+SzC:!FI 	T#rD   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{   rr   r   r   )r;  r<  )r{         r   )rQ  rQ  r   r   r   r&   r$   rv   )r:   r   r~   r7   r8   r9   r   )r<   r?   rJ   rR   s       rA   test_append_on_flex$TestAppendFields.test_append_on_flexX  sN    IIbMQ,7((H A".esCj!IL 	T#rD   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   rr   r   r   ))r   r*   r   )r-   r.   r   )r{   )r{   rU  r   )r   rt   r   rZ  )r   r1  r   r1   r2   r3   r4   rv   )r:   r   r~   r7   r9   r8   r   r  s       rA   test_append_on_nested&TestAppendFields.test_append_on_nesteda  sh    IIaLQ,7(( 1!N#&*#&$s(D"E#&*".0 	T#rD   r   N)
r   r   r   r   rB   rL  rR  rW  r[  r   rP   rD   rA   rE  rE  :  s    !$$$$rD   rE  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)TestStackArraysip  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   r5   r;   s        rA   rB   TestStackArrays.setup_methodr  rH  rD   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=   rJ   s       rA   r  TestStackArrays.test_solo{  sJ    yyq!QD!T	AT	rD   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   r6   r7   r   r#  s         rA   test_unnamed_fields#TestStackArrays.test_unnamed_fields  s}    yyqQFE2((<(T#QFE2((-.T#QFE2((-.T#rD   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   rg  r0  r0  r   r&   r$   rv   )r!   r   r{   r$   r   r{   r{   r{   r   r{   r{   r   )r   r   r   rl  rV  rV  rA  )rh  ri  rh  ri  rj  rk  )rl  rl  rl  rl  rV  rV  )r:   r   r~   r7   r9   r8   r   rw   r  s         rA   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#rD   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r1   r         Y@r2   r        i@r   rV        r@r&   r$   rr   r'   )rh  ri  rq  rs  ru  rl  rl  rQ  rQ  rQ  r(   rw   f3))r!   r   r{   r{   )r$   r   r{   r{   )r1   r   rr  r{   )r2   r  rt  r{   )r   rV   rv  r{   )r{   r{   r{   r   )r{   r{   r{   r   )r   r   r   r   rz  r   r   r   r   r{  r{  r   r   r   r   r|  )	r:   r6   r7   r8   r   r~   r   rw   r9   )r<   r  r=   r?   zzrJ   rR   r`   s           rA   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-rD   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 )Nrp  r&   r$   rr   r'   z???g     8    g    i)r!   r$   rr   D)defaults))r!   r   r  )r$   r   r  rq  rs  ru  rw  rx  )r:   r6   r7   r8   r   r~   r   rw   )r<   r  r?   r}  r  rJ   rR   s          rA   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-rD   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$   rr   r/  r   r   r   rv   r-   r/   r   r'   rQ  T)autoconvertF)
r9   boolr8   r~   r7   r   r   rw   r   	TypeError)r<   adtyper1   bdtyper2   rR   rJ   s          rA   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)r1   r!   )r2   r$   )r   rr   r/  r  rv   r  r'   rQ  )r9   r  r8   r~   r7   r   r   rw   )r<   r  r1   r  r2   rJ   rR   s          rA   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-rD   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 )Nr@  )r$   r   r&   r$   rN   r'   r1   r   rr  r2   r  rt  r   rV   rv  rr      Ar"   r      Br%      a   b   cFT)r:   rw   r(   )r6   r7   r8   r   r~   r(   r   rw   )r<   r?   r}  r   expecteds        rA   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}}-rD   r   N)r   r   r   r   rB   r  rd  rm  r~  r  r  r  r  r   rP   rD   rA   r^  r^  p  s0    !	$ $@.8."4
..rD   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   <   rO  n   r1   r2   r   r'   r/   r   A   K   r   r6   r7   listzipr   r9   r1   r2   r<   s    rA   rB   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rD   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 )
Nr1   inner)jointype))r/   7   r  i   rO  )r   8   B   j   e   )r   9   C   k   f   )r   :   D   l   g   )r   ;   E   m   h   b1b2r   r   r'   r1   r2   r   r6   r7   r9   r   r  s        rA   test_inner_joinTestJoinBy.test_inner_join$  sc    vvtvv1sA73(( 3 $'*tSkD#;#&*sCj":;
 	T#rD   c                     U R                   U R                  p![        SX5        [        R                  " / SQS[
        4S[
        4S[
        4S[
        4/S9  g )Nrd   ))r/   r  r  rO  )r   r  r  r  )r   r  r  r  )r   r  r  r  )r   r  r  r  r1   r2   r   r   r'   )r1   r2   r   r6   r7   r9   r<   r1   r2   s      rA   	test_joinTestJoinBy.test_join0  sO    vvtvv1 	
A!
 % sc3Zsc3Z1	2rD   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 )NrN   r|   r'   r   r/  )valueuint16r}   )r6   r7   r9   r   r   rX   r~   MaskedArray)r<   foobarr   s       rA   test_join_subdtypeTestJoinBy.test_join_subdtypeD  sm    hhv$cl^-hhBHHW-./$cl,BCEeS&S((2>>23rD   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 )
Nrd   outer)r   r  rO  r{   r   3   r  r{   r   4   r  r{   r}   5   r  r{   r-   6   r  r{   r/   r  r  r{   )r/   r  r{   rO  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  r1   r2   r   r   rv   r1   r2   r   r~   r7   r9   r   r  s        rA   test_outer_joinTestJoinBy.test_outer_joinM  sc    vvtvv1z11(( 	B	!= $'*sCj#&*sCj":);, 	T#rD   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 )
Nrd   	leftouter)
r  r  r  r  r  r  r  r  r  r  )
r{  r{  r{  r{  r{  r{  r{  r{  r{  r{  r1   r2   r   r   rv   r  r  s        rA   test_leftouter_joinTestJoinBy.test_leftouter_joini  sa    vvtvv1z15(( @
!=
 $'*sCj3*sCj!Q
S 	T#rD   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   r2   r  F)r  r   )r2   r   a1a2)r6   r   r   r   r   r(   names)r<   r1   r2   js       rA   test_different_field_order%TestJoinBy.test_different_field_orderz  sK    HHQEFGGADES#JwFQWW]]$:;rD   c                     [         R                  " S/ SQS9n[         R                  " S/ SQS9n[        [        [
        / SQX5        g )Nr}   r  r'   r  )r1   r2   r2   )r6   r   r   r   r   r   r  s      rA   test_duplicate_keysTestJoinBy.test_duplicate_keys  s2    HHQEFGGADEj'?AArD   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   Johnr0   r'   r  r   r  r   r|   r6   r(   r7   r   r   r<   a_dtypeb_dtypeexpected_dtyper1   r2   r   s          rA   #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/rD   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          rA   test_same_name_different_dtypes*TestJoinBy.test_same_name_different_dtypes  s    ((N,<=>((N,<=> #C D HHo}5WEHHo}5WEeQ"SYY/rD   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   r/  r  r'   )gr  )r}   r   r   )r6   r(   r9   r7   pir   r   )r<   r	  r1   r
  r2   r  r  r   s           rA   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#rD   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   r1  r   r  ))r  i1)v1r   )v2r   )	r6   r(   r  r   lendescrr7   r   r   )r<   r   r1   r2   r   r  s         rA   test_padded_dtypeTestJoinBy.test_padded_dtype  s    XXgT*BHHq!HHff%r*HHff%r*c1   #
  	SYY/rD   rd   N)r   r   r   r   rB   r  r  r  r  r  r  r  r  r  r  r!  r   rP   rD   rA   r  r    s@    F
$2(4$8$"<B

00$0rD   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  rO  r  r1   r2   r   r'   r  r  r   r  )clss    rA   rB   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rD   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 )Nr1   rH   2r  	r1postfix	r2postfixr  
)r   r  r  rO  rO  )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  )r   r  r  r  r  r2   r  r   r   r'   r  r  s        rA   test_no_r1postfixTestJoinBy2.test_no_r1postfix  sl    vvtvv1sWF(( J
 $'*sCj4+#&*sCj":; 	T#rD   c           
      Z    [        [        [        SU R                  U R                  SSS9  g )Nr1   rH   )r+  r,  )r   r   r   r1   r2   r  s    rA   test_no_postfixTestJoinBy2.test_no_postfix  s!    j'3 "b	2rD   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 )Nr1   1rH   r  r*  r-  r  r2   r   r   r'   r  r  s        rA   test_no_r2postfixTestJoinBy2.test_no_r2postfix  sl    vvtvv1WF(( J
 $'*tSkC:#&*sCj":; 	T#rD   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   r/   r   r  r  r   r  r1   r2   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   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c2r4  r)  r  r*  )r6   r7   r  r  tilerepeatr   r9   r   r   r(   )r<   r1   r2   rR   rJ   s        rA   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#rD   rP   N)r   r   r   r   classmethodrB   r.  r1  r5  r?  r   rP   rD   rA   r$  r$    s*    E E$2$$rD   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     rA   rB    TestAppendFieldsObj.setup_method  s    !T$1-.	rD   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   rr   F)r:   r   N)r:   r6   r7   objectr8   r9   r   r   )r<   rF  r=   r>   rJ   rR   s         rA   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#rD   r   N)r   r   r   r   __doc__rB   rL  r   rP   rD   rA   rC  rC     s    
/	$rD   rC  ).pytestnumpyr6   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^   re   
_zip_descrrI   
_zip_dtype	zip_dtyper   r   r  rE  r^  r  r$  rC  rP   rD   rA   <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$ $rD   