
    SBg                         S r SSKJr  SSKJr  SSKrSSKJr  SSK	J
r  SS jrSS jrSS jrSS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrg)zGThese tests are based on the doctests from `numpy/lib/recfunctions.py`.    )Any)assert_typeN)recfunctionsc                     [         R                  " SS/S[         R                  4S[         R                  4/S9n [         R                  " [        S5      4U R                  S9n[        R                  " X5      n[        U[         R                  [        [
           [         R                  [         R                     4   5        g )N)   g      $@)   g      4@ABdtype   )nparrayint64float64zerosintr   rfnrecursive_fill_fieldsr   ndarraytuplevoid)abouts      K/usr/lib/python3/dist-packages/numpy/typing/tests/data/pass/recfunctions.pytest_recursive_fill_fieldsr      s     hh	IRXXbjj 12A 	#a&!''*A

#
#A
)CRZZc
BHHRWW,= =>?    c                     [         R                  " [        R                  " SS[        4/S9R
                  5      n [         R                  " [        R                  " SS[        4S[        4/S9R
                  5      n [        R
                  " S[        4SS[        4S[        4/4/5      n[         R                  " U5      n g 	N)r   r	   r   r
   r   r   b_ab_b)r   	get_namesr   emptyr   r   floatnamesadtypes     r   test_get_namesr)      s    MM"((4c
|<BBCEMM"((4c
S%L/IJPPQEXXSzC5#,)E#FGHFMM&!Er   c                     [         R                  " [        R                  " SS[        4/S9R
                  5      n [         R                  " [        R                  " SS[        4S[        4/S9R
                  5      n [        R
                  " S[        4SS[        4S[        4/4/5      n[         R                  " U5      n g r    )r   get_names_flatr   r$   r   r   r%   r&   s     r   test_get_names_flatr,      s    rxxc3ZLAGGHErxxc3Z#u4NOUUVEXXSzC5#,)E#FGHFv&Er   c                      [         R                  " SSSS/4/5      n [        [        R                  " U 5      [
        [
        [        [         R                  [           4      5        g )N)r   <i4r   )r!   z<f8)r"   r.   )r   r   r   r   flatten_descrr   strr   ndtypes    r   test_flatten_descrr3   '   sK    XX|cNN+K%LMNF!!&)5sBHHSM7I1J+KLr   c            	          [         R                  " S[        4SS[        4SS[        4S[        4/4/4/5      n [        [        R
                  " U 5      [        [        [        [           4   5        g )Nr	   r
   B_AB_BB_B_AB_B_B)	r   r   r   r   r   get_fieldstructuredictr0   listr1   s    r   test_get_fieldstructurer<   ,   sc    XX	c
	s|ewnwn%EFGH F &&v.S$s)^0DEr   c            
      v   [        [        R                  " [        R                  " [        S5      4[        R                  5      [        R                  " [        S5      4[        R                  5      45      [        R                  [        [
           [        R                  [        R                     4   5        g )Nr   r   )r   r   merge_arraysr   onesr   int_r   recarrayr   r   r    r   r   test_merge_arraysrC   4   sq    GGSVIrww'GGSVIrzz*
 	 	E#J 112r   c                     S[         R                  4SS[         R                  4S[         R                  4/4/n [         R                  " [	        S5      4U S9n[        [        R                  " US5      [         R                  [        [           [         R                  [         R                     4   5        [        [        R                  " USSS9[         R                  R                  [        [           [         R                  [         R                     4   5        [        [        R                  " US5      [         R                  R                  [        [           [         R                  [         R                     4   5        g )	Nr   r   r!   r"   r   r   T)
asrecarray)r   r   doubler?   r   r   r   drop_fieldsr   r   r   r   recrA   rec_drop_fieldsr2   r   s     r   test_drop_fieldsrK   >   s    BHHoubii&85"((:K%LMNF
Q	(A3


5:rxx001 340
c
BHHRWW$556 As#
c
BHHRWW$556r   c                  t   S[         R                  4SS[         R                  4S[         R                  4/4/n [         R                  " [	        S5      4U S9n[        [        R                  " USSS	.5      [         R                  [        [           [         R                  [         R                     4   5        g )
Nr   r   r!   r"   r   r   r	   r6   )r   r"   )r   r   rF   r?   r   r   r   rename_fieldsr   r   r   r   rJ   s     r   test_rename_fieldsrN   P   s    BHHoubii&85"((:K%LMNF
Q	(A!3u56


5:rxx001r   c            	         [         R                  " SSS9n [        [        R                  " U 5      [         R                  [         R
                     5        [        [        R                  " U R                  S5      5      [         R
                  5        [        [        R                  " [         R                  " [        S5      4U S95      [         R                  [        [           [         R                  [         R
                     4   5        g )Nzu1, <i8, <f8T)alignr   r   r   )r   r   r   r   repack_fieldsr   typer?   r   r   r   )dts    r   test_repack_fieldsrT   Z   s    HH^4@B!!"%rxx'89!!"''!*-rww7"''3q6)267


5:rxx001r   c                      [         R                  " S/ SQS9n [        [        R                  " U 5      [
        R                  [           5        g )N   r   i4)r   zf4,u2)cf4r   r   )r   r   r   r   structured_to_unstructurednptNDArrayr   r   s    r   test_structured_to_unstructuredr`   e   s1    
GHA..q13;;s3CDr   c                     [         R                  " / SQ5      n [         R                  " S[         R                  S9R	                  S5      n[        [        R                  " X5      [        R                  [         R                     5        g )NrW      r   )rV      )r   r   arangeint32reshaper   r   unstructured_to_structuredr]   r^   r   )rS   r   s     r   rg   rg   j   sR    HH%RSB
		"BHH%--f5A..q5s{{2777KLr   c                  
   [         R                  " S/ SQS9n [        [        R                  " [         R
                  U 5      [         R                  [        [           [         R                  [         R                     4   5        g NrV   ))xrY   )yr[   )zf8r   r   r?   r   r   apply_along_fieldsmeanr   r   r   r   r   r   s    r   test_apply_along_fieldsrr   p   Q    
@AArww*


5:rxx001r   c                  
   [         R                  " S/ SQS9n [        [        R                  " [         R
                  U 5      [         R                  [        [           [         R                  [         R                     4   5        g ri   rn   rq   s    r   test_assign_fields_by_nameru   x   rs   r   c                      [         R                  " S/ SQS9n [        [        R                  " U SS/5      [         R
                  [        [           [         R                  [         R                     4   5        g )NrV   )rX   )r   rm   rZ   u1r   )r   r[   rw   )
r   r?   r   r   require_fieldsr   r   r   r   r   r_   s    r   test_require_fieldsrz      sR    
@AA1{K89


5:rxx001r   c                     [         R                  " [        S5      4[         R                  5      n [	        [
        R                  " U 5      [         R                  [        [           [         R                  [         R                     4   5        [         R                  " [        S5      4SS[        4/5      n[         R                  " [        S5      4SS[         R                  4S[         R                  4/5      n[	        [
        R                  " X45      [         R                  R                  [        [        S4   [         R                  [         R                     4   5        g )Nr   )r	   z|S3r
   C.)r   r   r   re   r   r   stack_arraysr   r   r   r?   r%   r   maMaskedArrayr   )rj   rl   zzs      r   test_stack_arraysr      s    
#a&BHH%A


5:rxx112
 	Q	L3,78A	#a&\C+<sBJJ>OP	QB!!
%S/288BGG+<<=r   c            	         [         R                  " S[        4/5      n [         R                  R	                  S/ SQS9R                  U 5      n[        [        R                  " U5      [         R                  R                  [        [         R                  [         R                     4   5        [        [        R                  " USSS9[        [         R                  R                  [        [         R                  [         R                     4   [         R                  [        [         R                  [         R                     4   4   5        g )Nr      )r   r   r   r   r   r   r   )maskT)
ignoremaskreturn_index)r   r   r   r~   r?   viewr   r   find_duplicatesr   r   r   r   r   r@   rJ   s     r   test_find_duplicatesr      s    XXSzl#F


10
166v>A##A&(9(9#rxx?P:P(QRA$TBEEc288BGG#445JJsBHHRWW--.0	
r   )returnN)__doc__typingr   typing_extensionsr   numpyr   numpy.typingr]   	numpy.libr   r   r   r)   r,   r3   r<   rC   rK   rN   rT   r`   rg   rr   ru   rz   r   r   rB   r   r   <module>r      sl    M  )   )@"'M
F$E
Mr   