o
    2h                     @   s   d dl Zd dlZd dlZeejdd  dkZejj	e ddZ
dd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N.   zrequires numpy >=2.0)reasonc                 C   s   | j dddd}ddgddgg}||d d < | d d  }tj|| | d }|jtks0J tj| d d  | d	|d
< d	|d d< |dd d  }|jjdksXJ tj|| tj	ddd|d
< d|d d< tj| d d  | d S )Nx)r   r   Tshapedtypefoobarzhello world baz)r   r   r   123Or	   )
create_datasetasstrnptestingassert_array_equalr	   objectastypekindasarray)writable_filedsdataa r   U/var/www/html/chatgem/venv/lib/python3.10/site-packages/h5py/tests/test_npystrings.pytest_create_with_dtype_T
   s    r    c           	      C   s
  ddgg}t j|dd}| jd|dd}| jd|t j d}| jd|d	}|||fD ]}|jjd
ks5J t j|	dd d  | q+dD ]<}| | }|jt
ksSJ t j| d d  | |	d}|jjdksmJ |d d  }|jjdks{J t j|| qFd S )Nr
   r   r   r   r   r   r	   yzr   r   )r   r"   r#   )r   r   r   dtypesStringDTyper	   r   r   r   r   r   r   )	r   r   np_datar   r"   r#   r   namer   r   r   r   test_fromdata    s$   

r)   c                 C   s   ddg}| j d|tjddd}|jdksJ |d}|jjdks$J |d d  jjdks0J tj|d d  | tj	d	dd
|d< d	|d< tj|d d  | d S )Nr
   longer than 8 bytesr      lengthr!   S20r   1234r   r   )
r   h5pystring_dtyper	   r   r   r   r   r   r   )r   r   r   r"   r   r   r   test_fixed_to_variable_width5   s   
r2   c                 C   s^   ddg}| j d|tjddd}|jdksJ tjdd	d
|d< tj|d d  ddg d S )Nr
   r   r      r,   r!   S3r/   r   r   r   s   123s   bar)r   r0   r1   r	   r   r   r   r   r   r   r   r   r   r   &test_fixed_to_variable_width_too_shortH   s   r6   c                 C   s   ddg}ddg}| j d|dd}|d}|jdksJ |d d  jdks'J tj|d d  | |d	}|jd	ks>J |d d  jd	ksIJ tj|d d  dd
g tjddd|d< d|d< tj|d d  | d S )Nr
   r*      foos   longer than 8 bytesr   r   r!   r.   r4   s   lon   1234S5r   r   )r   r   r	   r   r   r   r   )r   r   bdatar   r"   r   r   r   test_variable_to_fixed_widthV   s   

r;   c                 C   s>   | j ddgdd}tjddd|d< tj|d d  d	 d S )
Nr   r
   r   r!   r/   r   r   r   r8   )r   r   r   r   r   r   r   r   r   r   !test_write_object_into_npystringsl   s   r=   c                 C   s   | j ddgt d}|jtksJ tjddd|d< tj|d d  d | j d	d
tdd}tjddd|d< tj|d d  d d S )Nr   r
   r!   r/   r   r   r   r8   xa)   asciir   2345s   2345)	r   r0   r1   r	   r   r   r   r   r   )r   r   r>   r   r   r   !test_write_npystrings_into_objectr   s   rB   c                 C   s   | j ddddd}t|jtsJ |jdksJ |d dks J | j ddt dd}t|jts3J |jdks:J |d dksBJ |d}|d dksOJ d S )	Nr   r   r   r
   )r   r	   	fillvaluer7   r   r"   )r   
isinstancerD   bytesr0   r1   r   )r   r   r"   r   r   r   test_fillvalue   s   
rG   c                 C   s   t jg ddd}| jd|d}t j|d d  g d t j|dd d  | ddg|d d	< |d d	 |d d	< t j|d d  g d
 t j|dd d  | d S )N)r   r   br   r   r   r$   )       a   bcr   r   )   crI   rK   )r   arrayr   r   r   r   r5   r   r   r   test_empty_string   s    rO   c                 C   sN   | j dddd}tjtdd |d W d    d S 1 s w   Y  d S )Nr   rC   i8r   zHDF5 string datatype)matchr   )r   pytestraises	TypeErrorr   r<   r   r   r   test_astype_nonstring   s   "rU   c                 C   s   g d}t j|dd}| jd|dd}|d t j|dd t jd	d
 |D dgd  td t j|ddd t j|dgd  dd dS )zRead default values created by resize(). This triggers a special case
    where libhdf5 returns a char** containing NULL pointers.
    )string1string2string3r   r   dset)N)r   maxshape)
   Nc                 S   s   g | ]}|  qS r   )encode).0sr   r   r   
<listcomp>   s    z%test_resized_read.<locals>.<listcomp>rI      r   )r   rN   r   resizer   r   r   r   )r   lr   dr   r   r   test_resized_read   s   
4rd   )numpyr   rR   r0   int__version__split	NUMPY_GE2markskipif
pytestmarkr    r)   r2   r6   r;   r=   rB   rG   rO   rU   rd   r   r   r   r   <module>   s     