U
    ƒe’  ã                   @   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ÚabÚcdZefÚc)Zdtyper   ZAAA)ÚnpÚarrayÚTÚmoduleZ	char_testZchange_stringsÚshapeÚpytestZapproxÚAssertionErrorÚcopy)ÚselfÚstringsZinpÚoutÚexpected© r   ú]/var/www/html/assets/scripts/venv/lib/python3.8/site-packages/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 )z—Return 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   Ú Ú1Ú1234Z12345ó    ó    ó   1ó   s   1 s   1234s   12345r   )Úbuffers   123 )r   r)   Ú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   )rA   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@   rB   )r1   rC   )rA   r5   r   Ztest_inout_bytes4r   )r   r0   ÚrestrD   r   r   r   r   Útest_intent_inout\   s    z!TestFixedString.test_intent_inout)r   N)r6   )r   r   r   r   r   r   Ústaticmethodr5   rA   rE   rG   r   r   r   r   r&   '   s   
r&   )Úosr   ÚtextwrapÚnumpyr   r7   r   ZF2PyTestr   r    r&   r   r   r   r   Ú<module>   s   