o
    1ήcM`                     @   s   d dl Zd dlmZ d dlmZmZmZmZm	Z	 ddiZ
ddiZG dd dZG d	d
 d
ZG dd dZG dd dZG dd dZG dd deZG dd deZG dd dZG dd dZG dd dZdd ZdS )    N_vec_string)assert_assert_equalassert_array_equalassert_raisesassert_raises_regexunicodeTFc                   @   D   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )	TestBasicc                 C   sN   t jddgddggdd}t j|}t|jjd t|dd	gd
dgg d S )Nabc   long   
0123456789Odtype
      abc   2s   long
   0123456789)nparraycharr   r   itemsizer   selfAB r   I/tmp/pip-target-vg8gfxp4/lib/python/numpy/core/tests/test_defchararray.pytest_from_object_array   s   


z TestBasic.test_from_object_arrayc                 C   sx   t jddgddggdd}ttt jj|f t jj|fi t}t|jjdt dd	jj  t	|ddgd
dgg d S )Nr      Sigma Σr   r   r   r   r   aUlong)
r   r   r   
ValueErrorr   kw_unicode_truer   r   r   r   r   r   r   r    test_from_object_array_unicode   s   


z(TestBasic.test_from_object_array_unicodec                 C   s   t ddgddgg}t|jjt j t j|}t|| t|j|j t|j|j d|d< t	|d |d k t j
|}t|| t|j|j d|d< t	|d |d k t	|d |d k d S )Nr   s   foos   long   r   changedr   r   zchanged again)r   r   r   r   typestring_r   r   shaper   asarray)r   r   r   Cr   r   r    test_from_string_array   s    


z TestBasic.test_from_string_arrayc                    s   t ddgddgg t jjt j t j }t|  t|j j t|j j t jj fi t	}t|  t|j j t|j j  fdd}t
t| d S )Nr   r"   r   r   c                      s   t jj fi t d S N)r   r   r   kw_unicode_falser   r   r   r    fail<   s   z/TestBasic.test_from_unicode_array.<locals>.fail)r   r   r   r   r+   unicode_r   r   r-   r'   r   UnicodeEncodeError)r   r   r4   r   r3   r    test_from_unicode_array/   s   


z!TestBasic.test_from_unicode_arrayc                 C   s8   t jdg}t jdg}tt|| jjt j d S )Nr      Σ)r   r   r   r   
issubclassr   r+   r5   r   r   r   r    test_unicode_upconvertA   s   z TestBasic.test_unicode_upconvertc                 C   sD   t jd}tt|d tt|d d tt|jjt j	 d S )Nr      r      )
r   r   r   r   lenr   r9   r   r+   r,   r   r   r   r   r    test_from_stringF   s   zTestBasic.test_from_stringc                 C   sP   t jd}tt|d tt|d d t|jd tt|jj	t j
 d S )Nr8   r;   r      )r   r   r   r   r=   r   r   r9   r   r+   r5   r>   r   r   r    test_from_unicodeL   s
   zTestBasic.test_from_unicodeN)
__name__
__module____qualname__r!   r(   r0   r7   r:   r?   rA   r   r   r   r    r      s    	r   c                   @   r
   )TestVecStringc                 C      dd }t t| d S )Nc                   S      t dtjd d S )Nr#   bogusr   r   r,   r   r   r   r    r4   V      z4TestVecString.test_non_existent_method.<locals>.fail)r   AttributeErrorr   r4   r   r   r    test_non_existent_methodT      z&TestVecString.test_non_existent_methodc                 C   rF   )Nc                   S   rG   )Nr;   striprI   r   r   r   r    r4   ]   rJ   z1TestVecString.test_non_string_array.<locals>.failr   	TypeErrorrL   r   r   r    test_non_string_array[   rN   z#TestVecString.test_non_string_arrayc                 C   rF   )Nc                   S      t dgtjdd d S )Nr#   rO   r;   rI   r   r   r   r    r4   d      z3TestVecString.test_invalid_args_tuple.<locals>.failrP   rL   r   r   r    test_invalid_args_tupleb   rN   z%TestVecString.test_invalid_args_tuplec                 C   rF   )Nc                   S   s   t dgdd d S )Nr#   BOGUSrO   r   r   r   r   r    r4   k   rJ   z3TestVecString.test_invalid_type_descr.<locals>.failrP   rL   r   r   r    test_invalid_type_descri   rN   z%TestVecString.test_invalid_type_descrc                 C   rF   )Nc                   S   rS   )Nr#   rO   r;   rI   r   r   r   r    r4   r   rT   z6TestVecString.test_invalid_function_args.<locals>.failrP   rL   r   r   r    test_invalid_function_argsp   rN   z(TestVecString.test_invalid_function_argsc                 C   rF   )Nc                   S   s   t dgtjd d S )Nr#   rO   r   r   int_r   r   r   r    r4   y   s   z4TestVecString.test_invalid_result_type.<locals>.failrP   rL   r   r   r    test_invalid_result_typew   rN   z&TestVecString.test_invalid_result_typec                 C   rF   )Nc                   S   s    t ddggtjdg df d S )Nr   deffind)r#   djrZ   r   r   r   r    r4      s    z0TestVecString.test_broadcast_error.<locals>.fail)r   r&   rL   r   r   r    test_broadcast_error~   rN   z"TestVecString.test_broadcast_errorN)
rB   rC   rD   rM   rR   rU   rW   rY   r\   ra   r   r   r   r    rE   S   s    rE   c                   @      e Zd Zdd Zdd ZdS )TestWhitespacec                 C   D   t ddgddggt j| _t ddgddggt j| _d S )	Nabc 123  z789 zxyz r   123789xyzr   r   view	chararrayr   r   r   r   r   r    setup_method      

zTestWhitespace.setup_methodc                 C   s   t t| j| jk t t| j| jk t t| j| jk t t| j| jk  t t| j| jk   t t| j| jk  d S r1   )r   r   allr   r   anyrm   r   r   r    test1   s   zTestWhitespace.test1N)rB   rC   rD   rn   rr   r   r   r   r    rc      s    rc   c                   @   rb   )TestCharc                 C   s   t jdddt j| _d S )Nabc1cr   )r   r   rk   rl   r   rm   r   r   r    rn      s   zTestChar.setup_methodc                 C   s.   t | jjd t | j d d  d d S )Nr@   r   s   AB)r   r   r-   uppertobytesrm   r   r   r    test_it   s    zTestChar.test_itN)rB   rC   rD   rn   ry   r   r   r   r    rs      s    rs   c                   @   L   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )TestComparisonsc                 C   rd   )	Nr   rg   rh   ri   efgrf   051tuvrj   rm   r   r   r    rn      ro   zTestComparisons.setup_methodc                 C   s"   t | j| jkddgddgg d S NTFr   r   r   rm   r   r   r    test_not_equal      "zTestComparisons.test_not_equalc                 C   s"   t | j| jkddgddgg d S NFTr   rm   r   r   r    
test_equal   r   zTestComparisons.test_equalc                 C   s"   t | j| jkddgddgg d S r   r   rm   r   r   r    test_greater_equal   r   z"TestComparisons.test_greater_equalc                 C   s"   t | j| jkddgddgg d S r   r   rm   r   r   r    test_less_equal   r   zTestComparisons.test_less_equalc                 C   s"   t | j| jkddgddgg d S r   r   rm   r   r   r    test_greater   r   zTestComparisons.test_greaterc                 C   s"   t | j| jk ddgddgg d S r   r   rm   r   r   r    	test_less   r   zTestComparisons.test_lessc                 C   sD   t j| j| j}t jdd}tt|t j tt|t j d S Nr#   )r   r   equalr   r   r   
isinstancendarray)r   out1out2r   r   r    	test_type   s   zTestComparisons.test_typeN)rB   rC   rD   rn   r   r   r   r   r   r   r   r   r   r   r    r{      s    r{   c                   @      e Zd ZdZdd ZdS )TestComparisonsMixed1Ticket #1276c                 C   2   t |  tddgddggtjtj| _d S )Nr|   rf   r}   r~   )r{   rn   r   r   r5   rk   rl   r   rm   r   r   r    rn         

z"TestComparisonsMixed1.setup_methodNrB   rC   rD   __doc__rn   r   r   r   r    r          r   c                   @   r   )TestComparisonsMixed2r   c                 C   r   )Nr   rg   rh   ri   )r{   rn   r   r   r5   rk   rl   r   rm   r   r   r    rn      r   z"TestComparisonsMixed2.setup_methodNr   r   r   r   r    r      r   r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!S )"TestInformationc                 C   sP   t ddgddgddggt j| _t ddgddgddggt j| _d S )N abc  12345	MixedCase123 	 345   UPPER    Σ rj   rm   r   r   r    rn      s   

zTestInformation.setup_methodc                 C   sn   t ttj| jjjtj t	tj| jddgddgddgg t	tj| j
ddgddgddgg d S )N   r   	      r<   )r   r9   r   r   str_lenr   r   r+   integerr   r   rm   r   r   r    test_len   s   &*zTestInformation.test_lenc                 C   s   t t| jdjjtj t| jdddgddgddgg t| jdddgddgddgg t| jdddddgddgddgg t| j	dddgddgddgg t| j	dddgddgddgg d S )Nr   r#   r;   r   rg   r   )
r   r9   r   countr   r+   r   r   r   r   rm   r   r   r    
test_count   s   $$($(zTestInformation.test_countc                    s   t t jdjjtj t jdddgddgddgg t jdddddgddgddgg  fdd}t	t
| d S )	Nr    r;   r   3r<   c                          j dd d S Nr   fdjk)r   endswithr   rm   r   r    r4      rJ   z+TestInformation.test_endswith.<locals>.fail)r   r9   r   r   r   r+   r   bool_r   r   rQ   rL   r   rm   r    test_endswith   
   $(zTestInformation.test_endswithc                 C   s   t t| jdjjtj t| jdddgddgddgg t| jdddgddgddgg t| jdddddgddgddgg t| jdd	gddgddgddgg d S 
Nr#   r;      r   r   r   1P)	r   r9   r   r^   r   r+   r   r   r   rm   r   r   r    	test_find   
   $$(,zTestInformation.test_findc                    N    fdd}t t| ttjdddk tttjddjjtj	 d S )Nc                          j d d S r   )r   indexr   rm   r   r    r4         z(TestInformation.test_index.<locals>.failabcbabr;   )
r   r&   r   r   r   r   r9   r   r+   r   rL   r   rm   r    
test_index      
"zTestInformation.test_indexc                 C   s@   t t| j jjtj t| j ddgddgddgg d S r   )	r   r9   r   isalnumr   r+   r   r   r   rm   r   r   r    test_isalnum      &zTestInformation.test_isalnumc                 C   s@   t t| j jjtj t| j ddgddgddgg d S r   )	r   r9   r   isalphar   r+   r   r   r   rm   r   r   r    test_isalpha  r   zTestInformation.test_isalphac                 C   s@   t t| j jjtj t| j ddgddgddgg d S r   )	r   r9   r   isdigitr   r+   r   r   r   rm   r   r   r    test_isdigit  r   zTestInformation.test_isdigitc                 C   s@   t t| j jjtj t| j ddgddgddgg d S r   )	r   r9   r   islowerr   r+   r   r   r   rm   r   r   r    test_islower  r   zTestInformation.test_islowerc                 C   @   t t| j jjtj t| j ddgddgddgg d S NF)	r   r9   r   isspacer   r+   r   r   r   rm   r   r   r    test_isspace  r   zTestInformation.test_isspacec                 C   r   r   )	r   r9   r   istitler   r+   r   r   r   rm   r   r   r    test_istitle  r   zTestInformation.test_istitlec                 C   s@   t t| j jjtj t| j ddgddgddgg d S r   )	r   r9   r   isupperr   r+   r   r   r   rm   r   r   r    test_isupper  r   zTestInformation.test_isupperc                 C   s   t t| jdjjtj t| jdddgddgddgg t| jdddgddgddgg t| jdddddgddgddgg t| jdd	gddgddgddgg d S r   )	r   r9   r   rfindr   r+   r   r   r   rm   r   r   r    
test_rfind  r   zTestInformation.test_rfindc                    r   )Nc                      r   r   )r   rindexr   rm   r   r    r4   $  r   z)TestInformation.test_rindex.<locals>.failr   r   r<   )
r   r&   r   r   r   r   r9   r   r+   r   rL   r   rm   r    test_rindex"  r   zTestInformation.test_rindexc                    s   t t jdjjtj t jdddgddgddgg t jdddddgddgddgg  fdd}t	t
| d S )	Nr   r   r;   r   r   r<   c                      r   r   )r   
startswithr   rm   r   r    r4   0  rJ   z-TestInformation.test_startswith.<locals>.fail)r   r9   r   r   r   r+   r   r   r   r   rQ   rL   r   rm   r    test_startswith+  r   zTestInformation.test_startswithN)rB   rC   rD   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r      s"    
		r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1S )2TestMethodsc                 C   sT   t jddgddgddggddt j| _t d	dgddgddggt j| _d S )
Nr   r   r   r   r   r   Sr   r   rj   rm   r   r   r    rn   7  s   

zTestMethods.setup_methodc                 C      ddgddgddgg}t t| j jjtj t| j | ddgd	d
gddgg}t t| j	 jjtj
 t| j	 | d S )N    abc        12345	   Mixedcase   123 	 345      Upper    σ r   r   	Mixedcaser   Upper)r   r9   r   
capitalizer   r+   r   r,   r   r   r5   r   tgtr   r   r    test_capitalize@     zTestMethods.test_capitalizec                 C   s   t t| jdjjtj | jddg}ttj	
|ddgddgddgg | jdd}t t|d t t|d tj	dddgddgg}dd	gd
dgg}t t|jjtj t|| d S )Nr      r      #   FOO      s
      FOO    s           FOO         s         FOO      s     FOO   )r   r9   r   centerr   r+   r   r,   r   r   r   rp   r   r   r   r/   r   r   r   r    test_centerM  s   $zTestMethods.test_centerc                 C   s(   t jdg}t|dd dk d S )Ns   \u03a3zunicode-escaper   r8   )r   r   r   r   decoder>   r   r   r    test_decode\  s   zTestMethods.test_decodec                 C   s.   | j d}t|d d tddk d S )Nunicode_escaper   z \u03a3 latin1)r   encoder   str)r   r   r   r   r    test_encode`  s   "zTestMethods.test_encodec                 C   s   | j  }t|d dk d S )N)r   r   s   123      345  )r   
expandtabsr   )r   Tr   r   r    test_expandtabsd  s   
zTestMethods.test_expandtabsc                 C   sj   | j d}tjddg|}tt|jjtj	 t
ddgddgdd	gg}ttjddg|| d S )
Nascii,#z	 ,a,b,c, r   z	1,2,3,4,5zM#i#x#e#d#C#a#s#ez1,2,3, ,	, ,3,4,5, , , z	U#P#P#E#R)r   r   r   r   joinr   r9   r   r+   r5   r   r   )r   A0r   r   r   r   r    	test_joinh  s   
zTestMethods.test_joinc                 C   s   t t| jdjjtj | jddg}ttj	
|ddgddgddgg | jdd}t|dddgddgddgg t t|d tj	dddgdd	gg}d
dgddgg}t t|jjtj t|| d S )Nr   r   r   r   FTr   r   r   s
   FOO       s   FOO                 s   FOO            s   FOO     )r   r9   r   ljustr   r+   r   r,   r   r   r   r   rp   r   r   r   r   r    
test_ljustt  s   $
zTestMethods.test_ljustc                 C   r   )Nr   r   r   s	   mixedcaser      upperr   r   r   	mixedcaser   rw   )r   r9   r   lowerr   r+   r   r,   r   r   r5   r   r   r   r    
test_lower  r   zTestMethods.test_lowerc                 C   s   ddgddgddgg}t t| j jjtj t| j | ddgdd	gd
dgg}t| jddg| ddgddgddgg}t t| j	 jjtj
 t| j	 | d S )Ns   abc r   r   	   MixedCaser      UPPER    abcs   2345   ixedCase
   23 	 345     1   Mu   Σ r   r   r   r   r   )r   r9   r   lstripr   r+   r   r,   r   r   r5   r   r   r   r    test_lstrip  "   zTestMethods.test_lstripc                 C   H   | j ddg}ddgddgddgg}tt|jjtj t|| d S )	N   3r  )r   r   r   r   r   r      12r     45r   r  r
  )r  r  s	    	 345   )r  r   r   )	r   	partitionr   r9   r   r+   r   r,   r   r   r   r   r   r   r    test_partition     zTestMethods.test_partitionc                 C   sN   | j ddgddg}ddgddgd	d
gg}tt|jjtj t|| d S )Nr     as
   ##########   @r   r   s   12##########45s	   MixedC@ses   12########## 	 ##########45  r  )	r   replacer   r9   r   r+   r   r,   r   )r   Rr   r   r   r    test_replace  s   zTestMethods.test_replacec                 C   s   t t| jdjjtj | jddg}ttj	
|ddgddgddgg | jdd}t t|d t|dddgddgddgg tj	dddgdd	gg}d
dgddgg}t t|jjtj t|| d S )Nr   r   r   r   FTr   r   r   s
          FOOs                    FOOs               FOOs        FOO)r   r9   r   rjustr   r+   r   r,   r   r   r   rp   r   r   r   r   r   r    
test_rjust  s   $
zTestMethods.test_rjustc                 C   r  )	Nr  r  )r   r   r   r  r  r  )s   123 	 r     45   )r   r   r  )	r   
rpartitionr   r9   r   r+   r   r,   r   r  r   r   r    test_rpartition  r  zTestMethods.test_rpartitionc                 C   X   | j d}dgdggddgdggg ddggg}tt|jjtj t|	 | d S 	Nr  r   r   r  r  r  )r  s    	 r#  r  )
r   rsplitr   r9   r   r+   r   object_r   tolistr   r   r   r   r   r    test_rsplit  s   
zTestMethods.test_rsplitc                 C   s   t t| j jjtj ddgddgddgg}t| j | ddgddgd	d
gg}t| jddg| ddgddgddgg}t t| j	 jjtj
 t| j	 | d S )Nr	  r   r   r  	   123 	 345r  r   s   1234s   123 	 345     UPP   5s   ERu    Σr   r   r   	123 	 345r   )r   r9   r   rstripr   r+   r   r,   r   r   r5   r   r   r   r    test_rstrip  s"   zTestMethods.test_rstripc                 C   s   ddgddgddgg}t t| j jjtj t| j | ddgdd	gd
dgg}t| jddg| ddgddgddgg}t t| j	 jjtj
 t| j	 | d S )Nr   r   r   r  r-  r  r   s   234s   ixedCasr  r.  s   15s   EReMr8   r   r   r   r0  r   )r   r9   r   rO   r   r+   r   r,   r   r   r5   r   r   r   r    
test_strip  r  zTestMethods.test_stripc                 C   r&  r'  )
r   splitr   r9   r   r+   r   r)  r   r*  r+  r   r   r    
test_split  s   
zTestMethods.test_splitc                 C   sL   t jdg }tt|jjt j t|j	dk tt
|d dk d S )Nzabc
fds
werrX   r   r<   )r   r   r   
splitlinesr   r9   r   r+   r)  r-   r=   r>   r   r   r    test_splitlines  s   zTestMethods.test_splitlinesc                 C   r   )N    ABC r   r   s	   mIXEDcASEr   r  r   r   r   	mIXEDcASEr   rw   )r   r9   r   swapcaser   r+   r   r,   r   r   r5   r   r   r   r    test_swapcase  r   zTestMethods.test_swapcasec                 C   r   )Ns    Abc r   r   r   r   r   r   r   r   r   r   r   )r   r9   r   titler   r+   r   r,   r   r   r5   r   r   r   r    
test_title  r   zTestMethods.test_titlec                 C   r   )Nr8  r   r   s	   MIXEDCASEr   r  r   r   r   	MIXEDCASEr   r   )r   r9   r   rw   r   r+   r   r,   r   r   r5   r   r   r   r    
test_upper%  r   zTestMethods.test_upperc                    V    fdd}t t| tt j jjtj	 t
 j ddgddgddgg d S )Nc                          j   d S r1   )r   	isnumericr   rm   r   r    r4   4     z(TestMethods.test_isnumeric.<locals>.failFT)r   rQ   r   r9   r   rB  r   r+   r   r   r   rL   r   rm   r    test_isnumeric2     


zTestMethods.test_isnumericc                    r@  )Nc                      rA  r1   )r   	isdecimalr   rm   r   r    r4   >  rC  z(TestMethods.test_isdecimal.<locals>.failFT)r   rQ   r   r9   r   rF  r   r+   r   r   r   rL   r   rm   r    test_isdecimal<  rE  zTestMethods.test_isdecimalN)rB   rC   rD   rn   r   r   r   r   r   r   r  r  r  r  r   r"  r%  r,  r2  r3  r5  r7  r;  r=  r?  rD  rG  r   r   r   r    r   6  s2    			
r   c                   @   rz   )TestOperationsc                 C   rd   )	Nr   rg   rh   ri   r|   456r}   r~   rj   rm   r   r   r    rn   H  ro   zTestOperations.setup_methodc                 C   sT   t ddgddggt j}t|| j| j  tt| j| j d d dk d S )Nabcefg123456789051xyztuvr   r   )	r   r   rk   rl   r   r   r   r   r=   )r   ABr   r   r    test_addN  s   
$zTestOperations.test_addc                 C   s2   t ddgddggt j}t|d| j  d S )Nqabcq123q789qxyzq)r   r   rk   rl   r   r   )r   QAr   r   r    	test_raddT  s   
zTestOperations.test_raddc              	   C   s   | j }dD ])}t|d | |d | g|d | |d | ggtj}t|| j |  qt dfD ]}ttd ||  W d    n1 sJw   Y  q4d S N)r   r<   r         r*   )r   r;   )r;   r   )r;   r;   qrszCan only multiply by integers	r   r   r   rk   rl   r   objectr   r&   r   r   rArobr   r   r    test_mulY  s    
zTestOperations.test_mulc              	   C   s   | j }dD ])}t|d | |d | g|d | |d | ggtj}t||| j   qt dfD ]}ttd ||  W d    n1 sJw   Y  q4d S rW  r[  r]  r   r   r    	test_rmulf  s    
zTestOperations.test_rmulc                 C   s   t ddgddggt j}t ddgddgg}t d	d
gddggt j}t|||  t ddgddggt j}t ddgddggt j}t||d  t ddgd	dggt j}t||ddgddgg  dS )zTicket #856z%dz%f%s%rr<   rX     r;   r   z7.00000019r   z%.3fz1.00024r   r@   N)r   r   rk   rl   r   )r   Fr/   FCr   A1A2r   r   r    test_modr  s   
zTestOperations.test_modc              	   C   sx   t d| j t| jk t d| j t| jk dt fD ]}ttd || j  W d    n1 s4w   Y  qd S )Nrc  rd  *   z*unsupported operand type.* and 'chararray')r   r   r   reprr\  r   rQ   )r   r`  r   r   r    	test_rmod  s   zTestOperations.test_rmodc                 C   s   t jddgddggddt j}|dd }t|| t|j|u  t|jj|ju  |ddddf }t|| t|j|u  t|jj|ju  t|d d	k dS )
z>Regression test for https://github.com/numpy/numpy/issues/5982re   zdef zgeh zijk S4r   Nr*   r   )r   r   rk   rl   r   r   base)r   arrsl1sl2r   r   r    
test_slice  s   

zTestOperations.test_sliceN)rB   rC   rD   rn   rO  rV  ra  rb  rm  rp  rv  r   r   r   r    rH  G  s    	rH  c                  C   s    t d} t| g  jdk dS )z Regression test for ticket 1948.rv   r   N)r   rl   r   size)sr   r   r    test_empty_indexing  s   
ry  )numpyr   numpy.core.multiarrayr   numpy.testingr   r   r   r   r   r'   r2   r   rE   rc   rs   r{   r   r   r   r   rH  ry  r   r   r   r    <module>   s$   G3j  U