U
    h                     @   sf   d dl Z d dlZd dlZd dlZddlmZ G dd dejZG dd dejZ	G dd	 d	ejZ
dS )
    N   )utilc                   @   s.   e Zd ZeddddgZejjdd Z	dS )
TestStringtestssrcstringzchar.f90c                 C   sp   t jdddgddj}| jj||jd \}}|t|ksBt	|
 }d|dd d f< |t|kslt	d S )NabZcdZefc)Zdtyper   ZAAA)nparrayTmoduleZ	char_testZchange_stringsshapepytestZapproxAssertionErrorcopy)selfstringsinpoutexpected r   @/tmp/pip-unpacked-wheel-08rs7oyb/numpy/f2py/tests/test_string.py	test_char   s     zTestString.test_charN)
__name__
__module____qualname__r   getpathsourcesr   markZslowr   r   r   r   r   r      s   r   c                   @   s&   e Zd ZeddddgZdd ZdS )TestDocStringArgumentsr   r   r   zstring.fc                 C   s~   t d}t d}t d}t d}| j|||| | dksJt| dksZt| dksjt| dksztd S )Ns   123  s   123s   B23  s   D23)r
   r   r   Zfootobytesr   )r   abr	   dr   r   r   test_example   s    



z#TestDocStringArguments.test_exampleN)r   r   r   r   r   r   r%   r   r   r   r   r       s   r    c                   @   sF   e Zd ZeddddgZedddZdd
dZdd Z	dd Z
dS )TestFixedStringr   r   r   zfixed_string.f90r   Nc                 C   s|   t | tjr|  } nt | tr(|  } t | ts6t|dkrFt| }d}t	|t
|t| D ]}|| | d|  7 }q^|S )zReturn the content of a string buffer as integer value.

        For example:
          _sint('1234') -> 4321
          _sint('123A') -> 17321
        Nr   
   )
isinstancer
   ndarrayr!   strencodebytesr   lenrangemin)sstartendijr   r   r   _sint*   s    

zTestFixedString._sintinc                 c   s   |dkrJdV  dV  dV  dV  dV  dV  dV  d	V  d
V  dV  dV  t jdt jddV  t dV  t dV  t dV  t d
V  t d	V  t dV  t dV  t dV  d S )N)r6    1Z1234Z12345           1   s   1 s   1234s   12345r   )buffers   123 )r
   r)   Zbytes_r   )r   intentr   r   r   
_get_input>   s*    zTestFixedString._get_inputc                 C   s<   |   D ].}| j|}| j|dd}||kst|qd S )N   r2   )r?   r   Ztest_in_bytes4r5   r   )r   r0   rr   r   r   r   test_intent_inU   s    zTestFixedString.test_intent_inc                 C   s`   | j ddD ]N}| j|dd}| j|}| j|dd}||ksDt|| j|ddkstqd S )NZinout)r>   r@   )r1   rA   )r?   r5   r   Ztest_inout_bytes4r   )r   r0   restrB   r   r   r   r   test_intent_inout\   s    z!TestFixedString.test_intent_inout)r   N)r6   )r   r   r   r   r   r   staticmethodr5   r?   rC   rE   r   r   r   r   r&   '   s   
r&   )osr   textwrapZnumpyr
   r7   r   ZF2PyTestr   r    r&   r   r   r   r   <module>   s   