U
    #cg1                     @   s  d dl Z 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rR| sd}ntdd | D }|dk r4d}n|dk rBd}nd}|t|  S t| }|jd krrt||j S t|j|j S d S )	Nr   c                 S   s   g | ]}t |qS  )ord).0cr   r   A/tmp/pip-unpacked-wheel-b2rbor69/numpy/core/tests/test_unicode.py
<listcomp>   s     z!buffer_length.<locals>.<listcomp>      i         )	
isinstancestrmaxlen
memoryviewshapeitemsizenpprod)ZarrZcharmaxsizevr   r   r	   buffer_length   s    

r   u   ऀu   􀤀c               	   C   sx   t jddgdd} | d}| d}tt | |ks>tW 5 Q R X tt | |ks`tW 5 Q R X t|| d S )NZ1234z1234  Sdtypez>Uz<U)r   arrayastypepytestZwarnsFutureWarningAssertionErrorr   )Zstr_arrZuni_arr1Zuni_arr2r   r   r	   test_string_cast"   s    

r#   c                   @   s0   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uaZ	ua_scalarnbytesr   r   r	   content_check6   s
    zCreateZeros.content_checkc                 C   s0   t jdd| j d}| ||d d| j  d S Nr   U%sr   r   r   zerosr)   r/   r,   r-   r   r   r	   test_zeros0DC   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   r1   r   r   r   r   r   r2   r4   r   r   r	   test_zerosSDH   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   r1   r   r   r   r   r   r   r9   r<   r<   r2   r4   r   r   r	   test_zerosMDN   s    $zCreateZeros.test_zerosMDN)__name__
__module____qualname____doc__r/   r5   r7   r=   r   r   r   r	   r$   3   s
   r$   c                   @   s   e Zd ZdZdZdS )TestCreateZeros_1z1Check the creation of zero-valued arrays (size 1)r   Nr>   r?   r@   rA   r)   r   r   r   r	   rB   U   s   rB   c                   @   s   e Zd ZdZdZdS )TestCreateZeros_2z1Check the creation of zero-valued arrays (size 2)r   NrC   r   r   r   r	   rD   Z   s   rD   c                   @   s   e Zd ZdZdZdS )TestCreateZeros_1009z4Check the creation of zero-valued arrays (size 1009)  NrC   r   r   r   r	   rE   _   s   rE   c                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )CreateValuesz0Check the creation of unicode arrays with valuesc                 C   s   t t|jjdd  | jk t t||k t || j| j k t |d| j| j dk | jtkrt t|d| j k nt t|d| j k d S Nr   zutf-8r   	r   r(   r   r   r)   r   	ucs_valuer*   
ucs4_valuer+   r   r   r	   r/   g   s    

zCreateValues.content_checkc                 C   s8   t j| j| j d| j d}| ||d d| j  d S )Nr1   r   r   r   r   r   rJ   r)   r/   r4   r   r   r	   test_values0D|   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   r1   r   r   r   r   rL   r4   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   r9   r   r1   r   r:   r;   rL   r4   r   r   r	   test_valuesMD   s    .$zCreateValues.test_valuesMDNr>   r?   r@   rA   r/   rM   rN   rO   r   r   r   r	   rG   d   s
   rG   c                   @   s   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r>   r?   r@   rA   r)   
ucs2_valuerJ   r   r   r   r	   rQ      s   rQ   c                   @   s   e Zd ZdZdZeZdS )TestCreateValues_1_UCS4z9Check the creation of valued arrays (size 1, UCS4 values)r   Nr>   r?   r@   rA   r)   rK   rJ   r   r   r   r	   rT      s   rT   c                   @   s   e Zd ZdZdZeZdS )TestCreateValues_2_UCS2z9Check the creation of valued arrays (size 2, UCS2 values)r   NrR   r   r   r   r	   rV      s   rV   c                   @   s   e Zd ZdZdZeZdS )TestCreateValues_2_UCS4z9Check the creation of valued arrays (size 2, UCS4 values)r   NrU   r   r   r   r	   rW      s   rW   c                   @   s   e Zd ZdZdZeZdS )TestCreateValues_1009_UCS2z<Check the creation of valued arrays (size 1009, UCS2 values)rF   NrR   r   r   r   r	   rX      s   rX   c                   @   s   e Zd ZdZdZeZdS )TestCreateValues_1009_UCS4z<Check the creation of valued arrays (size 1009, UCS4 values)rF   NrU   r   r   r   r	   rY      s   rY   c                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )AssignValuesz2Check the assignment of unicode arrays with valuesc                 C   s   t t|jjdd  | jk t t||k t || j| j k t |d| j| j dk | jtkrt t|d| j k nt t|d| j k d S rH   rI   r+   r   r   r	   r/      s    

zAssignValues.content_checkc                 C   s@   t jdd| j d}| j| j |d< | ||d d| j  d S r0   r   r3   r)   rJ   r/   r4   r   r   r	   rM      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 r6   r[   r4   r   r   r	   rN      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 r8   r[   r4   r   r   r	   rO      s
    $zAssignValues.test_valuesMDNrP   r   r   r   r	   rZ      s
   rZ   c                   @   s   e Zd ZdZdZeZdS )TestAssignValues_1_UCS2z;Check the assignment of valued arrays (size 1, UCS2 values)r   NrR   r   r   r   r	   r\      s   r\   c                   @   s   e Zd ZdZdZeZdS )TestAssignValues_1_UCS4z;Check the assignment of valued arrays (size 1, UCS4 values)r   NrU   r   r   r   r	   r]      s   r]   c                   @   s   e Zd ZdZdZeZdS )TestAssignValues_2_UCS2z;Check the assignment of valued arrays (size 2, UCS2 values)r   NrR   r   r   r   r	   r^      s   r^   c                   @   s   e Zd ZdZdZeZdS )TestAssignValues_2_UCS4z;Check the assignment of valued arrays (size 2, UCS4 values)r   NrU   r   r   r   r	   r_      s   r_   c                   @   s   e Zd ZdZdZeZdS )TestAssignValues_1009_UCS2z>Check the assignment of valued arrays (size 1009, UCS2 values)rF   NrR   r   r   r   r	   r`      s   r`   c                   @   s   e Zd ZdZdZeZdS )TestAssignValues_1009_UCS4z>Check the assignment of valued arrays (size 1009, UCS4 values)rF   NrU   r   r   r   r	   ra     s   ra   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 )Nr1   r   r   )r   r   rJ   r)   newbyteorderr   r   r,   r-   ua2ua3r   r   r	   rM     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   r1   r   r<   r   r   rJ   r)   rc   r   allr   rd   r   r   r	   rN     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   r9   r   r1   r   r;   rh   rd   r   r   r	   rO   &  s     zByteorderValues.test_valuesMDc                 C   s   t j| j| j gd d| j d}t |dd d d }||fD ]R}|j|j d}t||k	  t|d |d k |j|jd}t
|| q@d S rg   )r   r   rJ   r)   repeatr   r   rc   r   ri   r   )r,   test1test2r-   re   rf   r   r   r	   test_values_cast1  s    "z ByteorderValues.test_values_castc                 C   s   t j| j| j gd d| j d}t |dd d d }||fD ]d}t d| jd   }|j|d}t||k	  t|d |d k |j|jd}t
|| q@d S )Nr   r1   r   r   r<   )r   r   rJ   r)   rj   r   rc   r   r   ri   r   )r,   rk   rl   r-   Zlonger_typere   rf   r   r   r	   test_values_updowncast>  s    "z&ByteorderValues.test_values_updowncastN)	r>   r?   r@   rA   rM   rN   rO   rm   rn   r   r   r   r	   rb     s   
rb   c                   @   s   e Zd ZdZdZeZdS )TestByteorder_1_UCS2z4Check the byteorder in unicode (size 1, UCS2 values)r   NrR   r   r   r   r	   ro   O  s   ro   c                   @   s   e Zd ZdZdZeZdS )TestByteorder_1_UCS4z4Check the byteorder in unicode (size 1, UCS4 values)r   NrU   r   r   r   r	   rp   U  s   rp   c                   @   s   e Zd ZdZdZeZdS )TestByteorder_2_UCS2z4Check the byteorder in unicode (size 2, UCS2 values)r   NrR   r   r   r   r	   rq   [  s   rq   c                   @   s   e Zd ZdZdZeZdS )TestByteorder_2_UCS4z4Check the byteorder in unicode (size 2, UCS4 values)r   NrU   r   r   r   r	   rr   a  s   rr   c                   @   s   e Zd ZdZdZeZdS )TestByteorder_1009_UCS2z7Check the byteorder in unicode (size 1009, UCS2 values)rF   NrR   r   r   r   r	   rs   g  s   rs   c                   @   s   e Zd ZdZdZeZdS )TestByteorder_1009_UCS4z7Check the byteorder in unicode (size 1009, UCS4 values)rF   NrU   r   r   r   r	   rt   m  s   rt   )$r    Znumpyr   Znumpy.testingr   r   r   r   rS   rK   r#   r$   rB   rD   rE   rG   rQ   rT   rV   rW   rX   rY   rZ   r\   r]   r^   r_   r`   ra   rb   ro   rp   rq   rr   rs   rt   r   r   r   r	   <module>   s>   "*
/
B