o
    1ήc	1                     @   s  d dl Zd dlmZmZmZ dd ZdZdZdd Z	G d	d
 d
Z
G dd de
ZG dd de
ZG dd de
ZG dd dZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d ZG d!d" d"eZG d#d$ d$eZG d%d& d&eZG d'd( d(eZG d)d* d*eZG d+d, d,eZG d-d. d.ZG d/d0 d0eZG d1d2 d2eZG d3d4 d4eZG d5d6 d6eZ G d7d8 d8eZ!G d9d: d:eZ"dS );    N)assert_assert_equalassert_array_equalc                 C   s   t | tr)| s
d}n	tdd | D }|dk rd}n	|dk r!d}nd}|t|  S t| }|jd u r9t||j S t|j|j S )	Nr   c                 S   s   g | ]}t |qS  )ord).0cr   r   D/tmp/pip-target-vg8gfxp4/lib/python/numpy/core/tests/test_unicode.py
<listcomp>	   s    z!buffer_length.<locals>.<listcomp>      i         )	
isinstancestrmaxlen
memoryviewshapeitemsizenpprod)arrcharmaxsizevr   r   r	   buffer_length   s   

r   u   ऀu   􀤀c                  C   sL   t jddgdd} | d}| d}t| |k t| |k t|| d S )N1234z1234  Sdtypez>Uz<U)r   arrayastyper   r   )str_arruni_arr1uni_arr2r   r   r	   test_string_cast   s   

r&   c                   @   0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )CreateZerosz(Check the creation of zero-valued arraysc                 C   s`   t t|jjdd  | jk t t||k t |dk t |ddk t t|dk d S )Nr    ascii    r   )r   intr    r   ulenr   encodeselfua	ua_scalarnbytesr   r   r	   content_check0   s
   zCreateZeros.content_checkc                 C   s0   t jdd| j d}| ||d d| j  d S Nr   U%sr   r   r   zerosr-   r4   r0   r1   r   r   r	   test_zeros0D=   s   zCreateZeros.test_zeros0Dc                 C   sP   t jdd| j d}| ||d d| j d  | ||d d| j d  d S N)r   r6   r   r   r   r   r   r7   r9   r   r   r	   test_zerosSDB   s    zCreateZeros.test_zerosSDc                 C   s`   t jdd| j d}| ||d d| j d d d  | ||d d| j d d d  d S 	N)r      r   r6   r   r   r   r   r   r   r>   rA   rA   r7   r9   r   r   r	   test_zerosMDH   s   $(zCreateZeros.test_zerosMDN)__name__
__module____qualname____doc__r4   r:   r<   rB   r   r   r   r	   r(   -   s    r(   c                   @      e Zd ZdZdZdS )TestCreateZeros_1z1Check the creation of zero-valued arrays (size 1)r   NrC   rD   rE   rF   r-   r   r   r   r	   rH   O       rH   c                   @   rG   )TestCreateZeros_2z1Check the creation of zero-valued arrays (size 2)r   NrI   r   r   r   r	   rK   T   rJ   rK   c                   @   rG   )TestCreateZeros_1009z4Check the creation of zero-valued arrays (size 1009)  NrI   r   r   r   r	   rL   Y   rJ   rL   c                   @   r'   )CreateValuesz0Check the creation of unicode arrays with valuesc                 C      t t|jjdd  | jk t t||k t || j| j k t |d| j| j dk | jtkrCt t|d| j k d S t t|d| j k d S Nr   zutf-8r   	r   r,   r    r   r-   r   	ucs_valuer.   
ucs4_valuer/   r   r   r	   r4   a      

zCreateValues.content_checkc                 C   s8   t j| j| j d| j d}| ||d d| j  d S )Nr6   r   r   r   r   r!   rR   r-   r4   r9   r   r   r	   test_values0Dv   s   zCreateValues.test_values0Dc                 C   s^   t j| j| j gd d| j d}| ||d d| j d  | ||d d| j d  d S )Nr   r6   r   r   r   r   rU   r9   r   r   r	   test_valuesSD{   s   " zCreateValues.test_valuesSDc                 C   sz   t j| j| j gd gd gd d| j d}| ||d d| j d d d  | ||d d| j d d d  d S )Nr   r>   r   r6   r   r?   r@   rU   r9   r   r   r	   test_valuesMD   s   .$(zCreateValues.test_valuesMDNrC   rD   rE   rF   r4   rV   rW   rX   r   r   r   r	   rN   ^   s    rN   c                   @      e Zd ZdZdZeZdS )TestCreateValues_1_UCS2z9Check the creation of valued arrays (size 1, UCS2 values)r   NrC   rD   rE   rF   r-   
ucs2_valuerR   r   r   r   r	   r[          r[   c                   @   rZ   )TestCreateValues_1_UCS4z9Check the creation of valued arrays (size 1, UCS4 values)r   NrC   rD   rE   rF   r-   rS   rR   r   r   r   r	   r_      r^   r_   c                   @   rZ   )TestCreateValues_2_UCS2z9Check the creation of valued arrays (size 2, UCS2 values)r   Nr\   r   r   r   r	   ra      r^   ra   c                   @   rZ   )TestCreateValues_2_UCS4z9Check the creation of valued arrays (size 2, UCS4 values)r   Nr`   r   r   r   r	   rb      r^   rb   c                   @   rZ   )TestCreateValues_1009_UCS2z<Check the creation of valued arrays (size 1009, UCS2 values)rM   Nr\   r   r   r   r	   rc      r^   rc   c                   @   rZ   )TestCreateValues_1009_UCS4z<Check the creation of valued arrays (size 1009, UCS4 values)rM   Nr`   r   r   r   r	   rd      r^   rd   c                   @   r'   )AssignValuesz2Check the assignment of unicode arrays with valuesc                 C   rO   rP   rQ   r/   r   r   r	   r4      rT   zAssignValues.content_checkc                 C   s@   t jdd| j d}| j| j |d< | ||d d| j  d S r5   r   r8   r-   rR   r4   r9   r   r   r	   rV      s   zAssignValues.test_values0Dc                 C   sp   t jdd| j d}| j| j |d< | ||d d| j d  | j| j |d< | ||d d| j d  d S r;   rf   r9   r   r   r	   rW      s
    zAssignValues.test_valuesSDc                 C   s   t jdd| j d}| j| j |d< | ||d d| j d d d  | j| j |d< | ||d d| j d d d  d S r=   rf   r9   r   r   r	   rX      s
   $(zAssignValues.test_valuesMDNrY   r   r   r   r	   re      s    re   c                   @   rZ   )TestAssignValues_1_UCS2z;Check the assignment of valued arrays (size 1, UCS2 values)r   Nr\   r   r   r   r	   rg      r^   rg   c                   @   rZ   )TestAssignValues_1_UCS4z;Check the assignment of valued arrays (size 1, UCS4 values)r   Nr`   r   r   r   r	   rh      r^   rh   c                   @   rZ   )TestAssignValues_2_UCS2z;Check the assignment of valued arrays (size 2, UCS2 values)r   Nr\   r   r   r   r	   ri      r^   ri   c                   @   rZ   )TestAssignValues_2_UCS4z;Check the assignment of valued arrays (size 2, UCS4 values)r   Nr`   r   r   r   r	   rj      r^   rj   c                   @   rZ   )TestAssignValues_1009_UCS2z>Check the assignment of valued arrays (size 1009, UCS2 values)rM   Nr\   r   r   r   r	   rk      r^   rk   c                   @   rZ   )TestAssignValues_1009_UCS4z>Check the assignment of valued arrays (size 1009, UCS4 values)rM   Nr`   r   r   r   r	   rl      r^   rl   c                   @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )ByteorderValuesz?Check the byteorder of unicode arrays in round-trip conversionsc                 C   sN   t j| j| j d| j d}| }t|d |d k | }t|| d S )Nr6   r   r   )r   r!   rR   r-   newbyteorderr   r   r0   r1   ua2ua3r   r   r	   rV   
  s
   zByteorderValues.test_values0Dc                 C   sd   t j| j| j gd d| j d}| }t||k  t|d |d k | }t|| d S Nr   r6   r   rA   r   r!   rR   r-   rn   r   allr   ro   r   r   r	   rW     s   "zByteorderValues.test_valuesSDc                 C   sp   t j| j| j gd gd gd d| j d}| }t||k  t|d |d k | }t|| d S )Nr   r>   r   r6   r   r@   rs   ro   r   r   r	   rX      s    zByteorderValues.test_valuesMDc                 C   s   t j| j| j gd d| j d}t |dd d d }||fD ])}|j|j d}t||k	  t|d |d k |j|jd}t
|| q d S rr   )r   r!   rR   r-   repeatr"   r    rn   r   rt   r   )r0   test1test2r1   rp   rq   r   r   r	   test_values_cast+  s   "z ByteorderValues.test_values_castc                 C   s   t j| j| j gd d| j d}t |dd d d }||fD ]2}t d| jd   }|j|d}t||k	  t|d |d k |j|jd}t
|| q d S )Nr   r6   r   r   rA   )r   r!   rR   r-   ru   r    rn   r"   r   rt   r   )r0   rv   rw   r1   longer_typerp   rq   r   r   r	   test_values_updowncast8  s   "z&ByteorderValues.test_values_updowncastN)	rC   rD   rE   rF   rV   rW   rX   rx   rz   r   r   r   r	   rm     s    
rm   c                   @   rZ   )TestByteorder_1_UCS2z4Check the byteorder in unicode (size 1, UCS2 values)r   Nr\   r   r   r   r	   r{   I  r^   r{   c                   @   rZ   )TestByteorder_1_UCS4z4Check the byteorder in unicode (size 1, UCS4 values)r   Nr`   r   r   r   r	   r|   O  r^   r|   c                   @   rZ   )TestByteorder_2_UCS2z4Check the byteorder in unicode (size 2, UCS2 values)r   Nr\   r   r   r   r	   r}   U  r^   r}   c                   @   rZ   )TestByteorder_2_UCS4z4Check the byteorder in unicode (size 2, UCS4 values)r   Nr`   r   r   r   r	   r~   [  r^   r~   c                   @   rZ   )TestByteorder_1009_UCS2z7Check the byteorder in unicode (size 1009, UCS2 values)rM   Nr\   r   r   r   r	   r   a  r^   r   c                   @   rZ   )TestByteorder_1009_UCS4z7Check the byteorder in unicode (size 1009, UCS4 values)rM   Nr`   r   r   r   r	   r   g  r^   r   )#numpyr   numpy.testingr   r   r   r   r]   rS   r&   r(   rH   rK   rL   rN   r[   r_   ra   rb   rc   rd   re   rg   rh   ri   rj   rk   rl   rm   r{   r|   r}   r~   r   r   r   r   r   r	   <module>   s>    "*
/
B