o
    8ήcq                     @   s  d dl Zd dlZd dlmZmZ d dlmZmZ d dl	m
Z
 d dlmZmZ eejdk 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$d0d1 Z%d2d3 Z&d4d5 Z'd6d7 Z(d8d9 Z)d:d; Z*d<d= Z+d>d? Z,d@dA Z-dBdC Z.dDdE Z/dFdG Z0dHdI Z1dJdK Z2dLdM Z3dNdO Z4dPdQ Z5dRdS Z6dTdU Z7dVdW Z8dXdY Z9dZd[ Z:d\d] Z;d^d_ Z<d`da Z=dbdc Z>ddde Z?dfdg Z@dhdi ZAeG djdk dkeZBeCdlkreD  dS dS )m    N)jit
from_dtype)typesutils)Dict)TestCaseskip_ppc64le_issue4563)      zrequires Python 3.7+c                 C   s   | | S N xir   r   E/tmp/pip-target-vg8gfxp4/lib/python/numba/tests/test_unicode_array.pygetitem   s   r   c                 C   s   | | | S r   r   r   r   jr   r   r   getitem2      r   c                 C   s   || |< | S r   r   )r   r   vr   r   r   setitem      r   c                 C   s   || | |< | S r   r   r   r   yr   r   r   r   setitem2   s   r   c                 C   s   d| |< | S )N123r   r   r   r   r   setitem_literal   r   r   c                 C   s   d| || < d S )N{   r   )r   r   r   r   r   r   getitem_key#      r   c                 C      t | | S r   )lenr   r   r   r   
return_len'   r   r#   c                 C   r!   r   )boolr   r   r   r   return_bool+   r   r%   c                 C   s   | | | | kS r   r   r   r   r   r   equal_getitem/   r    r&   c                 C   s   | | | | kS r   r   r   r   r   r   notequal_getitem3   r    r'   c                 C   s   | | | | k S r   r   r   r   r   r   lessthan_getitem7   r    r(   c                 C   s   | | | | kS r   r   r   r   r   r   greaterthan_getitem;   r    r)   c                 C   s   | | | | kS r   r   r   r   r   r   lessequal_getitem?   r    r*   c                 C   s   | | | | kS r   r   r   r   r   r   greaterequal_getitemC   r    r+   c                 C   s   | | || v S r   r   r   r   r   r   contains_getitem2G   r    r,   c                 C   s,   | | |k}|| | k}||kr|S t d)Nz#x[i] == v and v == x[i] are unequal
ValueErrorr   r   r   r1r2r   r   r   equal_getitem_valueK   
   r2   c                 C   s,   | | |k}|| | k}||kr|S t d)Nz#x[i] != v and v != x[i] are unequalr-   r/   r   r   r   notequal_getitem_valueS   r3   r4   c                 C      | |   S r   )isasciir   r   r   r   return_isascii[   r   r7   c                 C   r5   r   )isupperr   r   r   r   return_isupper_   r   r9   c                 C   r5   r   )upperr   r   r   r   return_upperc   r   r;   c                 C   r!   r   )strr   r   r   r   
return_strg   r   r=   c                 C   r!   r   )bytesr   r   r   r   return_bytesk   r   r?   c                 C   r!   r   )hashr   r   r   r   return_hasho   r   rA   c                 C      | |  || S r   )findr   r   r   r   return_finds      rD   c                 C   rB   r   )rfindr   r   r   r   return_rfindw   rE   rG   c                 C   rB   r   )
startswithr   r   r   r   return_startswith{   rE   rI   c                 C   rB   r   )endswithr   r   r   r   return_endswith   rE   rK   c                 C   r5   r   splitr   r   r   r   return_split1   r   rN   c                 C   rB   r   rL   r   r   r   r   return_split2   rE   rO   c                 C   s   | | j || |dS )N)sepmaxsplitrL   )r   r   r   r   rQ   r   r   r   return_split3   s   rR   c                 C      | |  |S r   centerr   r   wr   r   r   return_center1      rX   c                 C      | |  ||| S r   rT   r   r   rW   r   r   r   r   r   return_center2      r\   c                 C   rS   r   ljustrV   r   r   r   return_ljust1   rY   r`   c                 C   rZ   r   r^   r[   r   r   r   return_ljust2   r]   ra   c                 C   rS   r   rjustrV   r   r   r   return_rjust1   rY   rd   c                 C   rZ   r   rb   r[   r   r   r   return_rjust2   r]   re   c                 C   s   | |  || || gS r   join)r   r   r   r   zkr   r   r   return_join   s   rj   c                 C   rS   r   )zfillrV   r   r   r   return_zfill   rY   rl   c                 C   r5   r   lstripr   r   r   r   return_lstrip1   r   ro   c                 C   rB   r   rm   r   r   r   r   return_lstrip2   rE   rp   c                 C   r5   r   rstripr   r   r   r   return_rstrip1   r   rs   c                 C   rB   r   rq   r   r   r   r   return_rstrip2   rE   rt   c                 C   r5   r   stripr   r   r   r   return_strip1   r   rw   c                 C   rB   r   ru   r   r   r   r   return_strip2   rE   rx   c                 C   s   | | ||  S r   r   r   r   r   r   
return_add   r    ry   c                 C   s   | |  || 7  < | | S r   r   r   r   r   r   return_iadd   s   rz   c                 C   s   | | ||  S r   r   r   r   r   r   
return_mul   r    r{   c                 C   s
   | |  S r   r   r   r   r   r   
return_not      
r|   c                 C   s
   d | S )N,rf   )str_arrr   r   r   join_string_array   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!d" Zd#d$ Zd%d& Zd'd( Zed)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Z d;d< Z!d=d> Z"d?d@ Z#dAdB Z$dCdD Z%dEdF Z&dGdH Z'dIdJ Z(dKdL Z)dMdN Z*dOdP Z+dQdR Z,dSdT Z-dUdV Z.dWdX Z/dYdZ Z0d[d\ Z1d]d^ Z2d_d` Z3dadb Z4dcdd Z5dedf Z6dgdh Z7diS )jTestUnicodeArrayc                 O   s(   ||i |}|  ||i || d S r   )assertPreciseEqual)selfpyfunccfuncargskwargsexpectedr   r   r   _test   s   zTestUnicodeArray._testc                 C   s  t ddt}td}| ||ddt|dd | td ||dd W d    n1 s1w   Y  td}| ||ddt|dd | td ||dd W d    n1 s`w   Y  tdd	g}| ||ddt|dd | ||dd
t|dd
 | ||d
dt|d
d | td ||d
d
 W d    n1 sw   Y  tddg}| ||ddt|dd | ||dd
t|dd
 | ||d
dt|d
d | td ||d
d
 W d    d S 1 sw   Y  d S )NTnopython   12r   r   zindex out of range   12   3   3)r   r   nparrayr   assertRaisesRegex
IndexError)r   	cgetitem2arrr   r   r   test_getitem2   s2   

"zTestUnicodeArray.test_getitem2c                 C   s   t }tdd|}| ||dd | ||tdd | ||tddgd | ||tddgd | ||dd | ||tdd | ||tdd	gd | ||tdd	gd d S )
NTr   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   test_getitem  s   zTestUnicodeArray.test_getitemc                 C   s   t }tdd|}tddftdgdftddftdgdffD ]&\}}i }tt|jtj	}|||| |||| | 
|| t| q%d S )NTr   r   r   r      123)r   r   r   r   r   emptyr   dtyper   int64assertEqualr<   )r   r   r   r   r   d1d2r   r   r   test_getitem_key  s   
z!TestUnicodeArray.test_getitem_keyc                 C   s   t }tdd|}td}| |||dd td}td}||dd}||dd}| || | || tdg}tdg}||d	d
}||d	d
}| || | || d S )NTr      r   "   r   s   34r   r   34)r   r   r   r   r   r   )r   r   r   r   x1x2y1y2r   r   r   test_setitem   s    


zTestUnicodeArray.test_setitemc           	      C   s  t }tdd|}tddg}tddg}||d|d}||d|d}| || | || tddg}tddg}||d|d}||d|d}| || | || td}td}td}td}||d	|d	}||d	|d	}| || | || td
}td
}d}d}||d	|d}||d	|d}| || | || td}td}d}d}||d	|d}||d	|d}| || | || td}td}d}d}||d	|d}||d	|d}| || | || td}td}d}d}||d	|d}||d	|d}| || | || td}td}d}d}||d	|d}||d	|d}| || | || td}td}d}d}||d	|d}||d	|d}| || | || td}td}d}d}||d	|d}||d	|d}| || | || td}td}d}d}||d	|d}||d	|d}| || | || td}td}d}d}||d	|d}||d	|d}| || | || d S )NTr   r   ABCr   r   r      ABCr   r   )i  )r   )r   )u   ABǩ)u   AB􈨎)ABCD)AB)s   ABCD)s   AB)r   r   r   r   r   )	r   r   r   r   r   r   r   z1z2r   r   r   test_setitem25  s   





















zTestUnicodeArray.test_setitem2c                 C   s   t }tdd|}td}td}||d}||d}| || | || tddg}tddg}||d}||d}| || | || tddg}tddg}||d}||d}| || | || d S )NTr   r   r   5678r   r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   test_setitem_literal  s(   







z%TestUnicodeArray.test_setitem_literalc                 C   s   t }tdd|}| ||tdd | ||tdd | ||tdd | ||tdd | ||tddgd	 | ||tdd
gd	 | ||tddgd | ||tdd
gd d S )NTr    r       r   r   r   r   r   r   )r#   r   r   r   r   r   r   r   r   test_return_len     z TestUnicodeArray.test_return_lenc                 C   s   t }tdd|}| ||tdd | ||tdd | ||tdd | ||tdd | ||tddgd | ||tddgd | ||tddgd	 | ||tddgd	 d S )
NTr   r   r   r   r   r   r   r   )r%   r   r   r   r   r   r   r   r   test_return_bool  r   z!TestUnicodeArray.test_return_boolc                 C   s  t dd|}| ||tddgdd | ||ddd | ||ddd | ||tddd | ||td	dd | ||td
dgdd | ||td
dgdd | ||tddgdd | ||tddgdd | ||tddgdd | ||tddgdd | ||tddgdd | ||tddgdd | ||tddgdd | ||tddgdd | ||tddgdd | ||tddgdd d S )NTr   r   r   r   r   r   r   1234   1   2r   12r   r   r   r   r   r   r   r   r   _test_op_getitem  s$    z!TestUnicodeArray._test_op_getitemc                 C      |  t d S r   )r   r&   r   r   r   r   test_equal_getitem  rY   z#TestUnicodeArray.test_equal_getitemc                 C   r   r   )r   r'   r   r   r   r   test_notequal_getitem  rY   z&TestUnicodeArray.test_notequal_getitemc                 C   r   r   )r   r(   r   r   r   r   test_lessthan_getitem  rY   z&TestUnicodeArray.test_lessthan_getitemc                 C   r   r   )r   r)   r   r   r   r   test_greaterthan_getitem  rY   z)TestUnicodeArray.test_greaterthan_getitemc                 C   r   r   )r   r*   r   r   r   r   test_lessequal_getitem  rY   z'TestUnicodeArray.test_lessequal_getitemc                 C   r   r   )r   r+   r   r   r   r   test_greaterequal_getitem  rY   z*TestUnicodeArray.test_greaterequal_getitemc                 C   s   t dd|}| ||tddgdd | ||ddd | ||ddd | ||td	d
d	 | ||td	gdd	 | ||td	gdd | ||tdd
d | ||tdgdd | ||tdgdd d S )NTr   r   r   r   r   r   r   r   r   abcr      ar   r   r   r   r   _test_op_getitem_value  s   z'TestUnicodeArray._test_op_getitem_valuec                 C   r   r   )r   r2   r   r   r   r   test_equal_getitem_value  rY   z)TestUnicodeArray.test_equal_getitem_valuec                 C   r   r   )r   r4   r   r   r   r   test_notequal_getitem_value  rY   z,TestUnicodeArray.test_notequal_getitem_valuec                 C   s   t }tdd|}td}td}| |||d|d | |||d|d td}td}| |||d|d | |||d|d d}td}| |||d	|d | |||d|d	 d
}td}| |||d	|d | |||d|d	 d S )NTr   r   12345r   r   s   12345r   r   r   )r,   r   r   r   r   )r   r   r   r   r   r   r   r   test_contains_getitem2  s$   





z'TestUnicodeArray.test_contains_getitem2c                 C   r   t }tdd|}| ||tdd | ||tdgd | ||tdd | ||tdgd d S )NTr   r   r   r      1234é)r7   r   r   r   r   r   r   r   r   test_return_isascii.  s   z$TestUnicodeArray.test_return_isasciic                 C   r   NTr   r   r   r      abc)r9   r   r   r   r   r   r   r   r   test_return_isupper7     z$TestUnicodeArray.test_return_isupperc                 C   D   t }tdd|}| ||tdd | ||tdgd d S )NTr   r   r   r   )r=   r   r   r   r   r   r   r   r   test_return_str@     z TestUnicodeArray.test_return_strc                 C   r   )NTr      1234r   r   )r?   r   r   r   r   r   r   r   r   test_return_bytesF  r   z"TestUnicodeArray.test_return_bytesc                 C   r   r   )r;   r   r   r   r   r   r   r   r   test_return_upperL  r   z"TestUnicodeArray.test_return_upperc                 C   s  t }tdd|}|tdd}td}ttdd }| ||  ko)|kn   | ||tdd | ||tdgd | ||tdd | ||tdgd | ||td	d | ||td	gd | ||td
d | ||td
gd d S )NTr   r   r   r   r   r   	1234u00e9u   1234􈨎r   )rA   r   r   r   r@   
assertTruer   )r   r   r   hash1hash2hash3r   r   r   	test_hashU  s   zTestUnicodeArray.test_hashc              	   C      t }tdd|}| ||tddtdd | ||tdddd | ||ddtdd | ||td	dtd
d | ||td	ddd | ||ddtd
d d S NTr   r   r   23)r   r   )r   r      23)r   )r   )rD   r   r   r   r   r   r   r   r   test_return_findj       z!TestUnicodeArray.test_return_findc              	   C   r   r   )rG   r   r   r   r   r   r   r   r   test_return_rfindt  r   z"TestUnicodeArray.test_return_rfindc              	   C   r   r   )rI   r   r   r   r   r   r   r   r   test_return_startswith~       z'TestUnicodeArray.test_return_startswithc              	   C   r   r   )rK   r   r   r   r   r   r   r   r   test_return_endswith  r   z%TestUnicodeArray.test_return_endswithc                 C   B   t }tdd|}| ||tdd | ||tdd d S )NTr   12 34r   r   )rN   r   r   r   r   r   r   r   r   test_return_split1     z#TestUnicodeArray.test_return_split1c              	   C   r   )NTr   r   r    r   r   )r      12 34    r   )r   )rO   r   r   r   r   r   r   r   r   test_return_split2  r   z#TestUnicodeArray.test_return_split2c              	   C   s   t }tdd|}| ||tddtddd | ||tddddd | ||d	dtddd | ||td
dtddd | ||td
dddd | ||ddtddd d S )NTr   1 2 3 4r   r   r   r   r   r      1 2 3 4r   r   r   )rR   r   r   r   r   r   r   r   r   test_return_split3  s    z#TestUnicodeArray.test_return_split3c                 C   F   t }tdd|}| ||tddd | ||tddd d S NTr   r   r   (   r   )r`   r   r   r   r   r   r   r   r   test_return_ljust1     z#TestUnicodeArray.test_return_ljust1c              
   C      t }tdd|}| ||tdddtdd | ||tddddd | ||d	ddtdd | ||td
ddtdd | ||td
dddd | ||dddtdd d S NTr   r   r   r   =)r  r   r   r      =)r  r   )ra   r   r   r   r   r   r   r   r   test_return_ljust2     

 z#TestUnicodeArray.test_return_ljust2c                 C   r   r   )rd   r   r   r   r   r   r   r   r   test_return_rjust1  r  z#TestUnicodeArray.test_return_rjust1c              
   C   r  r  )re   r   r   r   r   r   r   r   r   test_return_rjust2  r  z#TestUnicodeArray.test_return_rjust2c                 C   r   r   )rX   r   r   r   r   r   r   r   r   test_return_center1  r  z$TestUnicodeArray.test_return_center1c              
   C   r  r  )r\   r   r   r   r   r   r   r   r   test_return_center2  r  z$TestUnicodeArray.test_return_center2c                 C   s6  t }tdd|}| ||tddtddtdd | ||tddtdddd | ||d	dtddtdd | ||d	dtdddd | ||td
dtddtdd | ||td
dtdddd | ||ddtddtdd | ||ddtdddd d S )NTr   r~   r   r   r   r   r   )r~      ,r   r   r   )r  )rj   r   r   r   r   r   r   r   r   test_return_join  s4   



z!TestUnicodeArray.test_return_joinc                 C   r   r   )rl   r   r   r   r   r   r   r   r   test_return_zfill  r  z"TestUnicodeArray.test_return_zfillc                 C   r   NTr     123  r        123  )ro   r   r   r   r   r   r   r   r   test_return_lstrip1
  r   z$TestUnicodeArray.test_return_lstrip1c              	   C   r   NTr   r  r   r   r   r   )r  r  r   r   )r  )rp   r   r   r   r   r   r   r   r   test_return_lstrip2       z$TestUnicodeArray.test_return_lstrip2c                 C   r   r  )rs   r   r   r   r   r   r   r   r   test_return_rstrip1  r   z$TestUnicodeArray.test_return_rstrip1c              	   C   r   r  )rt   r   r   r   r   r   r   r   r   test_return_rstrip2$  r  z$TestUnicodeArray.test_return_rstrip2c                 C   r   r  )rw   r   r   r   r   r   r   r   r   test_return_strip10  r   z#TestUnicodeArray.test_return_strip1c              	   C   r   r  )rx   r   r   r   r   r   r   r   r   test_return_strip27  r  z#TestUnicodeArray.test_return_strip2c              	   C   r   )NTr   abr   cdr  r   )r     ab   cdr  r  )ry   r   r   r   r   r   r   r   r   test_return_addC  r  z TestUnicodeArray.test_return_addc              	   C   s   t }tdd|}| ||tddtdd | ||tdddd |dgdtdd}|dgdtdd}| || | ||tddtd	d | ||tddd
d |dgdtd	d}|dgdtd	d}| || d S )NTr   r  r   r  r  r   r  r  r  )rz   r   r   r   r   r   )r   r   r   r   resultr   r   r   test_return_iaddO  s     z!TestUnicodeArray.test_return_iaddc              	   C   s~   t }tdd|}| ||tdddd | ||ddtdd | ||tdddd | ||ddtdd d S )NTr   r  r   )   r   r  )r{   r   r   r   r   r   r   r   r   test_return_mul_  s   z TestUnicodeArray.test_return_mulc                 C   s   t }tdd|}| ||tdd | ||tdd | ||dd | ||tdd | ||td	d | ||d
d d S )NTr   r  r   r  r   r   r   r   )r   )r|   r   r   r   r   r   r   r   r   test_return_noth  s   z TestUnicodeArray.test_return_notc                 C   s.   t }tdd|}| ||tddg d S )NTr   hithere)r   r   r   r   r   r   r   r   r   	test_joint  s   zTestUnicodeArray.test_joinN)8__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   require_py37r   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      sl    t
		

	r   __main__)Enumpyr   unittestnumbar   r   
numba.corer   r   numba.typedr   numba.tests.supportr   r   skipIf	PYVERSIONr-  r   r   r   r   r   r   r#   r%   r&   r'   r(   r)   r*   r+   r,   r2   r4   r7   r9   r;   r=   r?   rA   rD   rG   rI   rK   rN   rO   rR   rX   r\   r`   ra   rd   re   rj   rl   ro   rp   rs   rt   rw   rx   ry   rz   r{   r|   r   r   r*  mainr   r   r   r   <module>   s         
 