o
    Ô­j’  ã                   @   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   sn   t jg d¢dd�j}| jj ||jd ¡\}}|t |¡ks J ‚| 	¡ }d|dd d …f< |t |¡ks5J ‚d S )N)ÚabÚcdÚefÚc)Údtyper   ÚAAA)
ÚnpÚarrayÚTÚmoduleÚ	char_testÚchange_stringsÚshapeÚpytestÚapproxÚcopy)ÚselfÚstringsÚinpÚoutÚexpected© r   úY/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/f2py/tests/test_string.pyÚ	test_char   s   
ÿzTestString.test_charN)
Ú__name__Ú
__module__Ú__qualname__r   ÚgetpathÚsourcesr   ÚmarkÚ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s%J ‚| ¡ dks-J ‚| ¡ dks5J ‚| ¡ dks=J ‚d S )Ns   123  s   123s   B23  s   D23)r   r   r   ÚfooÚtobytes)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ƒsJ ‚|du r#t| ƒ}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ÚbytesÚlenÚrangeÚmin)ÚsÚstartÚendÚiÚjr   r   r   Ú_sint*   s   

zTestFixedString._sintÚinc                 c   sÄ   � |dv r&d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©r>   Ú Ú1Ú1234Ú12345ó    ó    ó   1ó   s   1 s   1234s   12345r   )Úbuffers   123 )r   r1   Úbytes_r   )r   Úintentr   r   r   Ú
_get_input>   s,   €zTestFixedString._get_inputc                 C   s<   |   ¡ D ]}| j |¡}| j|dd�}||ksJ |ƒ‚qd S )Né   ©r:   )rK   r   Útest_in_bytes4r=   )r   r8   Úrr   r   r   r   Útest_intent_inU   s
   üzTestFixedString.test_intent_inc                 C   s`   | j dd�D ]'}| j|dd�}| j |¡}| j|dd�}||ks"J ‚|| j|dd�ks-J ‚qd S )NÚinout)rJ   rL   )r9   rM   )rK   r=   r   Útest_inout_bytes4)r   r8   ÚrestrO   r   r   r   r   Útest_intent_inout\   s   ùz!TestFixedString.test_intent_inout)r   Nr?   )r    r!   r"   r   r#   r$   Ústaticmethodr=   rK   rP   rT   r   r   r   r   r.   '   s    
r.   )Úosr   ÚtextwrapÚnumpyr   r@   r   ÚF2PyTestr   r'   r.   r   r   r   r   Ú<module>   s    