o
    gi                     @   s   d dl Zd dlZd dlZddlm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   )	make_name.   zrequires numpy >=2.0)reasonc                 C   s   t  }| j|ddd}ddgddgg}||d d < | d d  }tj|| | | }|jtks3J tj| d d  | d|d	< d|d
 d
< |dd d  }|jj	dks[J tj|| tj
ddd|d	< d|d
 d
< tj| d d  | d S )N)r   r   Tshapedtypefoobarzhello world baz)r   r   r   123Or
   )r   create_datasetasstrnptestingassert_array_equalr
   objectastypekindasarray)writable_filenamedsdataa r    X/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/h5py/tests/test_npystrings.pytest_create_with_dtype_T   s"   r"   c                 C   s(  t d}t d}t d}ddgg}tj|dd}| j||dd}| j||tj d}| j||d	}|||fD ]}	|	jjd
ksAJ tj	|	
dd d  | q7|||fD ]<}
| |
 }	|	jtksbJ tj	|	 d d  | |	
d}	|	jjdks|J |	d d  }|jjdksJ tj	|| qUd S )Nxyzr   r   r   r   r   r
   r   r   )r   r   r   r   dtypesStringDTyper
   r   r   r   r   r   r   )r   nxnynzr   np_datar#   r$   r%   r   nr   r    r    r!   test_fromdata#   s*   

r/   c                 C   s   ddg}| j t |tjddd}|jdksJ |d}|jjdks%J |d d  jjdks1J tj	|d d  | tj
ddd	|d
< d|d
< tj	|d d  | d S )Nr   longer than 8 bytes   lengthr&   S20r   1234r   r   )r   r   h5pystring_dtyper
   r   r   r   r   r   r   )r   r   r#   r$   r    r    r!   test_fixed_to_variable_width;   s   
r8   c                 C   s`   ddg}| j t |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      r2   r&   S3r5   r   r   r   s   123s   bar)	r   r   r6   r7   r
   r   r   r   r   r   r   r#   r    r    r!   &test_fixed_to_variable_width_too_shortN   s   r<   c                 C   s   ddg}ddg}| j t |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sJJ tj|d d  dd	g tjd
dd|d< d
|d< tj|d d  | d S )Nr   r0      foos   longer than 8 bytesr   r&   r4   r:   s   lon   1234S5r   r   )r   r   r   r
   r   r   r   r   )r   r   bdatar#   r$   r    r    r!   test_variable_to_fixed_width\   s   

rA   c                 C   s@   | j t dgdd}tjddd|d< tj|d d  d d S )	Nr   r   r&   r5   r   r   r   r>   )r   r   r   r   r   r   r   r#   r    r    r!   !test_write_object_into_npystringsr   s   rC   c                 C   s   | j tddgt d}|jtksJ tjddd|d< tj	|d d  d | j td	d
tdd}tjddd|d< tj	|d d  d d S )Nr#   r   r&   r5   r   r   r   r>   xa)r   asciir   2345s   2345)
r   r   r6   r7   r
   r   r   r   r   r   )r   r#   rD   r    r    r!   !test_write_npystrings_into_objectx   s   rG   c                 C   s   | j tddddd}t|jtsJ |jdksJ |d dks"J | j tddt dd}t|jts7J |jdks>J |d dksFJ |d}|d dksSJ d S )	Nr#   r   r   r   )r	   r
   	fillvaluer=   r   r$   )r   r   
isinstancerI   bytesr6   r7   r   )r   r#   r$   r    r    r!   test_fillvalue   s   
rL   c                 C   s   t jg ddd}| jt |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'   )       a   bcr   r   )   crN   rP   )r   arrayr   r   r   r   r   r;   r    r    r!   test_empty_string   s    rT   c                 C   sP   | j t ddd}tjtdd |d W d    d S 1 s!w   Y  d S )NrH   i8r   zHDF5 string datatype)matchr   )r   r   pytestraises	TypeErrorr   rB   r    r    r!   test_astype_nonstring   s   "rZ   c                 C   s   g d}t j|dd}| jt |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   )N)r   maxshape)
   Nc                 S   s   g | ]}|  qS r    )encode).0sr    r    r!   
<listcomp>   s    z%test_resized_read.<locals>.<listcomp>rN      r   )	r   rS   r   r   resizer   r   r   r   )r   lr   dr    r    r!   test_resized_read   s   
4rh   )numpyr   rW   r6   commonr   int__version__split	NUMPY_GE2markskipif
pytestmarkr"   r/   r8   r<   rA   rC   rG   rL   rT   rZ   rh   r    r    r    r!   <module>   s"    