
    4iū                     l   S SK r S SKrS SK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  S SKJr  S SKJr  S SK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)append_fieldsapply_along_fieldsassign_fields_by_namedrop_fieldsfind_duplicatesget_fieldstructurejoin_bymerge_arraysrecursive_fill_fieldsrename_fieldsrepack_fieldsrequire_fieldsstack_arraysstructured_to_unstructuredunstructured_to_structured)MaskedRecords)assert_equal)assert_assert_raisesc                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 r\R                  R                  SS9S 5       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[	        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 )N      
         A      ?B       @r!   z|S3r$   dtyper   r         @            @abbabbTflatten F)nparrayfloatint	zip_descrr   r(   )selfxyzwtests         c/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/numpy/lib/tests/test_recfunctions.pytest_zip_descrTestRecFunctions.test_zip_descr#   s   HHaXHH\"HHi+(3,79HHm]3 #Je}tSk.J(KLN !.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    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    )r8   r9   r;   r:   r   r   r=   r1   rB   controls       rC   test_drop_fields!TestRecFunctions.test_drop_fieldsI   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#rF   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   )r8   r9   r;   r:   r   viewr   r(   )r=   r1   rB   newdtyperL   s        rC   test_rename_fields#TestRecFunctions.test_rename_fieldsi   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#rF   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   rJ   rJ   )r8   r(   r:   	get_namesr   r;   r=   ndtyperB   s      rC   test_get_namesTestRecFunctions.test_get_namest   s    <#u67 T:&C:tUmdC[-I'JKL T56C:Ry12 T+," T2rF   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$   rW   r1   r2   r3   r4   )r1   r2   r3   r4   r1   r2   rJ   )r8   r(   r:   get_names_flatr   r;   rY   s      rC   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rF   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$   rW   r!   BArQ   z|S1)r!   r$   rc   rQ   rQ   BBABBB)r!   r$   rc   rQ   re   rf   )r8   r(   r:   r   r   r;   )r=   rZ   rB   rL   s       rC   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rF   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   rk   rj   )r   )r"   r$   rj   )r   )r%   C)r   r   r   rm   rm   rm   )r   rn   )r   r   r   r!   r$   rc   rd   maskr(   FT
ignoremaskreturn_indexr   r   )keyrt   )r   r   r      r/   )r   r   r   r-   rQ   )r   r   r   rw   r-   )mar9   r;   r:   r   r   sortedrK   s       rC   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*rF   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   rw   rw   )r   r   r   r   r   r   r   rq   Trr   )r   r   rw   r-   ru   r   F)r   r   r   rw   r-      )r;   rx   r9   rR   r   r   ry   )r=   rZ   r1   rB   rL   s        rC   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*rF   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'      )	r8   r(   zerosr   r   itemsizerecordr   type)r=   dtr1   s      rC   test_repack_fields#TestRecFunctions.test_repack_fields   s    XXj-HHQb!]2&(<=]1%..3]=#4DA2F XXryy"o&b!&&"))34rF   z"memmap is thread-unsafe (gh-29126))reasonc           	         [         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@   ru   )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   rw   r~   r   	   r      )x0r   x1)r   r   x2)r   r   r   )r   r   r   r   r   r   r   )r   r   rw   r-   r/   r~   r   )r   r   r   )r-   r/   r~   r   r   rw   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)r8   r(   )r   shapes     rC   subarrayBTestRecFunctions.test_structured_to_unstructured.<locals>.subarrayC  s    88RK((rF   c                      [         R                  " [        U 5       VVs/ s H  u  pSU 3U4PM     snn5      $ s  snnf )Nr>   )r8   r(   	enumerate)dtsir   s      rC   
structuredDTestRecFunctions.test_structured_to_unstructured.<locals>.structuredF  s3    88	#Guq!gr]GHHGs   :
c                     [         R                  " SU 5      n[        X!S9n[        X05      nUR                  UR
                  UR
                  4$ )NrJ   r'   )r8   r   r   r   r   r(   )r   r(   arrretbackarrs        rC   inspectATestRecFunctions.test_structured_to_unstructured.<locals>.inspectI  s?    ((2r"C,S>C09G99cii66rF   )r~   rI   rH   )r/   )rw   r   r   r   rw   r-   )r2   r   T)copyFmemmapzw+)moder(   r   r   )r8   r   r   r   r9   meanarangereshaper   r(   r   r   shares_memoryr;   int32r   
ValueErrorNotImplementedErrorrR   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                           rC   test_structured_to_unstructured0TestRecFunctions.test_structured_to_unstructured   s   HHQKL(+S"((667HHEBDgg0C:?bIS"((#789gg0C5:DS"((#789IIbM!!&)(GG4xx1i24i24i#s4i#s46 ( <">?-/	0 	SHHEBD'3XXCD	F'C:?XX34	6 HHEBD'*(WW5  '(  () 31c3Z=A]aVaVb!Wr2h$GH  23 HHq1q'a!HAh#781b'RHr2h#78:45 (*(WW5  '(  () $B$+E2V835 	6 +,2<@]%:%?%A 	B HHq1q'QFQF#3R81b'RHr2h#7<>GH (*<(=>  '(R/46 	7 3*sCj1288c5\C<#uFGhhr8$(C8S"((7#67	)	I	7 BHHbhh!?CDWR[42"67"((A!6:;WR[42"67!WR[42"67(8BHHa+@!"DEWR[42"67\j"<bhhq"oN 	)+E+-88Ar?"((	L)+E+-88F"((+K	M ((FF+K3MN0tD LL%'6(6  '(RBKK'(S	R[[()R%S+& IIh)#MM#MM+ !'6(6  '(RBII%&S	RYY&'R%S+&rF   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'   )r8   r   r:   r(   r   r   )r=   r1   test_dtype_args
test_dtypefield1field2s         rC   test_unstructured_to_structured0TestRecFunctions.test_unstructured_to_structured  sL    HHW<#u6XXo.
+AE+A@V$rF   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   rw   r-   )r   r   r   )r   rw   r-   r1   r   )r   )rw   )r   )r   rw   ))r   r   ))r   rw   rw   r   rJ   )r8   onesr   r   r9   r   r(   )r=   r1   newdtr2   s       rC   test_field_assignment_by_name.TestRecFunctions.test_field_assignment_by_name  st   GGADEk*^A-rwwq%/@AHHff%U3aE:Q)Y!7qwwGHa#Q)Y!7qwwGH GGAs[+$>?@A}%&^A-rwwq%/@AHHgw'u5aE:Q)Y!7qwwGHa#Q)Y!7qwwGH xx{BHHQK1a#QrUArF   rJ   N)__name__
__module____qualname____firstlineno__rD   rM   rT   r[   r`   rg   rz   r   r   pytestmarkthread_unsafer   r   r   __static_attributes__rJ   rF   rC   r   r   !   sh    $NL$@	$$$6+B+
5 [[&JKO' LO'b%rF   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           )r8   r9   r;   r:   r   r(   r   r   r=   r1   r2   rB   rL   s        rC   test_simple_flexible,TestRecursiveFillFields.test_simple_flexible  sk    HHh)3*sEl1KLHHT)$Q*((8#&*sEl!;=T#rF   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   ro   r!   r$   rp   r   r'   r  )r  ro   rn   )rx   r9   r;   r:   r   r(   r   r   r  s        rC   test_masked_flexible,TestRecursiveFillFields.test_masked_flexible  sz    HHh)0@ #Je57HHT)$Q*((8 8#&*sEl!;= 	T#rF   rJ   N)r   r   r   r   r  r  r   rJ   rF   rC   r   r     s    $	$rF   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$ )Nr   r   r   r    r#   r&   r$   r'   r   )r   r+   rJ   r-   )r/   r0   rJ   r1   r2   r3   r4   bcr8   r9   r:   r;   r=   r>   r?   r@   rA   s        rC   _create_arraysTestMergeArrays._create_arrays  s    HHaXHH\"HH	"<#u*FHHH 12:tUmdC[4*%MNOQ QzrF   c                    U R                  5       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 )NrH   r   r   r'   Fr5   T)r  r
   r8   r9   r;   r   r=   _r>   r@   rB   rL   s         rC   	test_soloTestMergeArrays.test_solo  s{    ((*
aA((D$<s}=T#QD!T#Au-TAt,TrF   c                     U R                  5       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   Fr5   T)r   r   r+   )r-   r/   r0   r1   r3   r4   r'   )r  r
   r   r8   r9   r;   r:   r=   rA   rB   rL   s       rC   test_solo_w_flatten#TestMergeArrays.test_solo_w_flatten  si    !!$Au-TAt,((K5#&*tUmdC[!IKT#rF   c                 \   U R                  5       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   )ru   r   r   r   r'   Trn   rn   ro   rp   )r  r
   r8   r9   r;   r   rx   rq   r=   r  r>   r?   rB   rL   s         rC   test_standardTestMergeArrays.test_standard  s     ((*
aQFE2((7#'+c{!;=T#QFD1((7 8#'+c{!;= 	T#TYY-rF   c                     U R                  5       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 )NTr5   )r   r!   r"   )r   r$   r%   r   r&   r$   r'   F)r   r    )r   r#   r   r  r
   r8   r9   r;   r:   r   r  s         rC   test_flattenTestMergeArrays.test_flatten  s    ((*
aQFD1((L,7#'+|c5\!JLT#QFE2((NN;#'+#',e)E"F"HI 	T#rF   c                 j   U R                  5       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[        4S/ 4/4/nS[        4SU4/n[        R                  " SS/US	9n[        XE5        g )NTr5   )r   r   r   r+   )r   r-   r/   r0   r   r1   r3   r4   r'   Fr2   r  r   )r"   r  )r   r  r&  )r=   rA   r>   r  rB   rL   f1_descrcontroldtypes           rC   test_flatten_wflexible&TestMergeArrays.test_flatten_wflexible  s    ((*
aQFD1((NN;#'+#&*tUmdC["JK 	T#QFE2#Je}tSkD":&N OPsdH%56((35KL!-/T#rF   c                 8   U R                  5       S   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[        X45        [        X4SSS9n[        X45        [        [        U[        5      5        g )Nr   r   r   rw   r   r   r   r}   Tr  )r   r   r   )ru   rw   )r  rn   ro   r   r   rp   )r  
asrecarray)	r  rx   r9   r
   r;   r   r   
isinstancer   )r=   r>   mxrB   rL   s        rC   test_wmasked_arrays#TestMergeArrays.test_wmasked_arrays  s    !!$XXii0QGT2((4 8#'+c{!;= 	T#QGTdCT#
4/0rF   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   rP   )r   r   )ru   rP   r!  r   rp   )r
   r8   r9   rR   r;   rx   r:   r   )r=   rB   rL   s      rC   test_w_singlefield"TestMergeArrays.test_w_singlefield  sk    RXXq!f-22S#J<@XXo68 :((: 8#&*tUm!<> 	T#rF   c                     U R                  5       S   n[        U[        R                  " / SQ5      R	                  S[
        4/5      45        [        R                  " / SQSS[        4S[
        4/S9  g )Nru   r   rl   )r!   r"   r   r$   r%   r   )z-1ru   r   r&   r$   r'   )r  r
   r8   r9   rR   r;   r:   )r=   r@   s     rC   test_w_shorter_flex#TestMergeArrays.test_w_shorter_flex(  s`    !"% 	a,/44sCj\BCD
?$sElS#J?	ArF   c           	          U R                  5       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@   rB   rL   s          rC   test_singlerecord!TestMergeArrays.test_singlerecord6  sw    ((*
aQqT1Q41.>((-.#'+#'+#',e)E"F"HI 	T#rF   rJ   N)r   r   r   r   r  r  r  r#  r'  r,  r5  r8  r=  rB  r   rJ   rF   rC   r  r    s5    	$. $$ 1$A$rF   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$ Nr   r   r   r    r#   r&   r$   r'   r)   r,   r1   r2   r3   r4   r  r  s        rC   r  TestAppendFields._create_arraysC      HHaXHH\"HH	"<#u*FHHHm]3 #Je}tSk.J(KLNQzrF   c                     U R                  5       S   n[        US/ SQS9n[        R                  " / SQ/ SQS[        4S[        4/S9n[        X#5        g )	Nr   r!   r   datar   r!  r   rp   r  r   rx   r9   r;   r   r=   r>   rB   rL   s       rC   test_append_single#TestAppendFields.test_append_singleL  sQ    !!$Q,7((7 8#'+Sz!:= 	T#rF   c                     U R                  5       S   n[        US/ SQSS//S9n[        R                  " / SQ/ SQS	[        4S
[        4S[        4/S9n[        X#5        g )Nr   rW   r   d      rK  ))r   r   rR  )r   r   rS  )ru   r   ru   )r   r   r   rT  )r   r   r   r   r!   r$   rp   rM  rN  s       rC   test_append_double#TestAppendFields.test_append_doubleU  sa    !!$Q
,c
1KL((E A#'+SzC:!FI 	T#rF   c                     U R                  5       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 )
Nru   rl   r   rK  )r;  r<  )ru         r   )rT  rT  r   r   r   r&   r$   rp   )r  r   rx   r9   r:   r;   r   )r=   r@   rB   rL   s       rC   test_append_on_flex$TestAppendFields.test_append_on_flex^  sT    !"%Q,7((H A".esCj!IL 	T#rF   c           	          U R                  5       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   rl   r   rK  ))r   r*   r   )r-   r.   r   )ru   )ru   rX  r   )r   rn   r   r]  )r   r1  r   r1   r2   r3   r4   rp   )r  r   rx   r9   r;   r:   r   r  s       rC   test_append_on_nested&TestAppendFields.test_append_on_nestedg  sn    !!$Q,7(( 1!N#&*#&$s(D"E#&*".0 	T#rF   rJ   N)
r   r   r   r   r  rO  rU  rZ  r^  r   rJ   rF   rC   rE  rE  @  s    $$$$rF   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)TestStackArraysiv  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$ rG  r  r  s        rC   r  TestStackArrays._create_arraysx  rI  rF   c                     U R                  5       S   n[        U45      n[        X!5        [        X!L 5        [        U5      n[        X!5        [        X!L 5        g )Nr   )r  r   r   r   )r=   r>   rB   s      rC   r  TestStackArrays.test_solo  sN    !!$QD!T	AT	rF   c                 >   U R                  5       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   r8   r9   r   r"  s         rC   test_unnamed_fields#TestStackArrays.test_unnamed_fields  s    ((*
aQFE2((<(T#QFE2((-.T#QFE2((-.T#rF   c                 ,   U R                  5       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   ru   ru   )r   ru   ru   )ru   r!   r   )ru   r$   r   )r   r   r   rj  r0  r0  r   r&   r$   rp   )r!   r   ru   r$   r   ru   ru   ru   r   ru   ru   r   )r   r   r   ro  rY  rY  rA  )rk  rl  rk  rl  rm  rn  )ro  ro  ro  ro  rY  rY  )r  r   rx   r9   r;   r:   r   rq   r  s         rC   test_unnamed_and_named_fields-TestStackArrays.test_unnamed_and_named_fields  s    ((*
a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#rF   c                 
   U R                  5       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   rP        r@r&   r$   rl   r'   )rk  rl  rt  rv  rx  ro  ro  rT  rT  rT  r(   rq   f3))r!   r   ru   ru   )r$   r   ru   ru   )r1   r   ru  ru   )r2   r   rw  ru   )r   rP   ry  ru   )ru   ru   ru   r   )ru   ru   ru   r   )r   r   r   r   r}  r   r   r   r   r~  r~  r   r   r   r   r  )	r  r8   r9   r:   r   rx   r   rq   r;   )r=   r  r>   r@   zzrB   rL   rZ   s           rC   test_matching_named_fields*TestStackArrays.test_matching_named_fields  s    ((*
aXXL)C<#uFHQG$(( U #/esEl!K!B	C 	T#TYY-QAJ'esElT3KH(( > "(!=> 	T#TYY-rF   c                    U R                  5       S   n[        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[        XE5        [        UR                  UR                  5        [        UR                  UR                  5        g )Nru   rs  r&   r$   rl   r'   z???g     8    g    i)r!   r$   rl   D)defaults))r!   r   r  )r$   r   r  rt  rv  rx  rz  r{  )	r  r8   r9   r:   r   rx   r   rL  rq   )r=   r@   r  r  rB   rL   s         rC   test_defaultsTestStackArrays.test_defaults  s    !"%XXL)C<#uFHUgFQGh7(( U #/esEl!K!B	C 	T#TYY-TYY-rF   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$   rl   r/  r   r   r   rp   r-   r/   r~   r'   rT  T)autoconvertF)
r;   boolr:   rx   r9   r   r   rq   r   	TypeError)r=   adtyper1   bdtyper2   rL   rB   s          rC   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   rl   r/  r  rp   r  r'   rT  )r;   r  r:   rx   r9   r   r   rq   )r=   r  r1   r  r2   rB   rL   s          rC   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-rF   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$   rH   r'   r1   r   ru  r2   r   rw  r   rP   ry  rl      Ar"   r      Br%      a   b   cFT)rL  rq   r(   )r8   r9   r:   r   rx   r(   r   rq   )r=   r@   r  r   expecteds        rC   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}}-rF   rJ   N)r   r   r   r   r  r  rg  rp  r  r  r  r  r  r   rJ   rF   rC   ra  ra  v  s0    	$ $@.8."4
..rF   ra  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n[         R                  " [        [        [         R                  " S
S5      [         R                  " SS5      [         R                  " SS5      5      5      S[
        4S[
        4S[
        4/S	9nX4$ )Nr   2   <   rR  n   r1   r2   r   r'   r/   r   A   K   r   )r8   r9   listzipr   r;   r=   r1   r2   s      rC   r  TestJoinBy._create_arrays"  s    HHT#biimRYYr2->#%99S##68 9"%sc3Z#s DF HHT#bii2.		"b0A#%99S##68 9"%sc3Z#s DF trF   c           	          U R                  5       u  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   rR  )r~   8   B   j   e   )r   9   C   k   f   )r   :   D   l   g   )r   ;   E   m   h   b1b2r   r   r'   )r  r	   r8   r9   r;   r   r  s        rC   test_inner_joinTestJoinBy.test_inner_join+  sd    ""$sA73(( 3 $'*tSkD#;#&*sCj":;
 	T#rF   c                     U R                  5       u  p[        SX5        [        R                  " / SQS[        4S[        4S[        4S[        4/S9  g )Nr^   ))r/   r  r  rR  )r~   r  r  r  )r   r  r  r  )r   r  r  r  )r   r  r  r  r1   r2   r   r   r'   )r  r	   r8   r9   r;   r  s      rC   	test_joinTestJoinBy.test_join6  sP    ""$ 	
A!
 % sc3Zsc3Z1	2rF   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 )NrH   rv   r'   r   r/  )valueuint16rw   )r8   r9   r;   r	   r   rR   rx   MaskedArray)r=   foobarr   s       rC   test_join_subdtypeTestJoinBy.test_join_subdtypeG  sm    hhv$cl^-hhBHHY/01$cl,BCEeS&S((2>>23rF   c           	          U R                  5       u  p[        SXS5      n[        R                  " / SQ/ SQS[        4S[        4S[        4S[        4/S	9n[        X45        g )
Nr^   outer)r   r  rR  ru   r   3   r  ru   r   4   r  ru   rw   5   r  ru   r-   6   r  ru   r/   r  r  ru   )r/   r  ru   rR  r~   r  r  ru   )r~   r  ru   r  r   r  r  ru   )r   r  ru   r  r   r  r  ru   )r   r  ru   r  r   r  r  ru   )r   r  ru   r  )r   F   ru   r  )r   G   ru   r  )r   H   ru   r  )r   I   ru   r  )r   J   ru   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   rp   r  r	   rx   r9   r;   r   r  s        rC   test_outer_joinTestJoinBy.test_outer_joinP  sd    ""$z11(( 	B	!= $'*sCj#&*sCj":);, 	T#rF   c           	          U R                  5       u  p[        SXS5      n[        R                  " / SQ/ SQS[        4S[        4S[        4S[        4/S	9n[        X45        g )
Nr^   	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   rp   r  r  s        rC   test_leftouter_joinTestJoinBy.test_leftouter_joink  sb    ""$z15(( @
!=
 $'*sCj3*sCj!Q
S 	T#rF   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 )Nrw   r   r   r   r'   r   r   r   r   r2   r  F)r  r  )r2   r   a1a2)r8   r   r   r	   r   r(   names)r=   r1   r2   js       rC   test_different_field_order%TestJoinBy.test_different_field_order{  sK    HHQEFGGADES#JwFQWW]]$:;rF   c                     [         R                  " S/ SQS9n[         R                  " S/ SQS9n[        [        [
        / SQX5        g )Nrw   r  r'   r  )r1   r2   r2   )r8   r   r   r   r   r	   r  s      rC   test_duplicate_keysTestJoinBy.test_duplicate_keys  s2    HHQEFGGADEj'?AArF   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)rv   S5r  <f4rv   S10)r  value1r  )value2r  Sarahr   Johnr0   r'   r  r   r  r   rv   r8   r(   r9   r	   r   r=   a_dtypeb_dtypeexpected_dtyper1   r2   r   s          rC   #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/rF   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))rv   z|S10r  )r   r  r  r  r'   r  r  rv   r  r  s          rC   test_same_name_different_dtypes*TestJoinBy.test_same_name_different_dtypes  s    ((N,<=>((N,<=> #C D HHo}5WEHHo}5WEeQ"SYY/rF   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posrw   )fr  )r   r   r   r/  r  r'   )gr  )rw   r   r   )r8   r(   r;   r9   pir	   r   )r=   r	  r1   r
  r2   r  r  r   s           rC   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#rF   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vrw   r   )rw   r   r1  r   r  ))r  i1)v1r   )v2r   )	r8   r(   r  r   lendescrr9   r	   r   )r=   r   r1   r2   r   r  s         rC   test_padded_dtypeTestJoinBy.test_padded_dtype  s    XXgT*BHHq!HHff%r*HHff%r*c1   #
  	SYY/rF   rJ   N)r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r!  r   rJ   rF   rC   r  r  !  s?    	$2"4$6$ <B

00$0rF   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  rR  r  r1   r2   r   r'   r  r  r   )r8   r9   r  r  r   r;   r1   r2   )clss    rC   setup_method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rF   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   r7   2r  	r1postfix	r2postfixr  
)r   r  r  rR  rR  )r   r  r  r  r  )r   r  r  r  r  )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  r  r  r  )r   r  r  r  r  r2   r  r   r   r'   r1   r2   r	   r8   r9   r;   r   r  s        rC   test_no_r1postfixTestJoinBy2.test_no_r1postfix  sl    vvtvv1sWF(( J
 $'*sCj4+#&*sCj":; 	T#rF   c           
      Z    [        [        [        SU R                  U R                  SSS9  g )Nr1   r7   )r,  r-  )r   r   r	   r1   r2   )r=   s    rC   test_no_postfixTestJoinBy2.test_no_postfix  s!    j'3 "b	2rF   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   1r7   r  r+  r.  r  r2   r   r   r'   r/  r  s        rC   test_no_r2postfixTestJoinBy2.test_no_r2postfix  sl    vvtvv1WF(( J
 $'*tSkC:#&*sCj":; 	T#rF   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   rw   )r   r   r  r  r   r-   )r   r   r  r  r   r/   )r   rw   r  r     r~   )r   rw   r  r  r   r   )r   r-   r  r     r   )r   r-   r  r     r   r  r  c1c2r6  r*  r  r+  )r8   r9   r  r  tilerepeatr   r;   r	   r   r(   )r=   r1   r2   rL   rB   s        rC   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#rF   rJ   N)r   r   r   r   classmethodr'  r0  r3  r7  rA  r   rJ   rF   rC   r$  r$    s*    E E$2$$rF   r$  c                       \ 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      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[        XV5        g)z7Test append_fields when the base array contains objectsr   )datei  r   r"   r%   r!   r$   r'   r   r   rl   F)rL  r  N)	datetimerG  r8   r9   objectr:   r;   r   r   )r=   rG  objr>   r?   rB   rL   s          rC   test_append_to_objects*TestAppendFieldsObj.test_append_to_objects  s    !4AHHsBi#r+!6]S%L9;HHb"XS)Q!U;((S#rNS#rN;#&-#uSz!JLT#rF   rJ   N)r   r   r   r   __doc__rK  r   rJ   rF   rC   rE  rE    s    

$rF   rE  ).r   numpyr8   numpy.marx   numpy.lib.recfunctionsr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   numpy.ma.mrecordsr   numpy.ma.testutilsr   numpy.testingr   r   librecfunctions_get_fieldspecget_fieldspecrX   r_   
_zip_descrr<   
_zip_dtype	zip_dtyper   r   r  rE  ra  r  r$  rE  rJ   rF   rC   <module>r[     s          " , + 0##22FF))	$$33FF**	FF**	B BJ$ $.@$ @$F3$ 3$lh. h.V\0 \0~?$ ?$D$ $rF   