
    1Vh                         d dl Zd dlZd dlZ eej
                  j                  d      d          dk\  Zej                  j                  e d      Z
d Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zy)    N.   zrequires numpy >=2.0)reasonc                    | j                  ddd      }ddgddgg}||d d  |j                         d d  }t        j                  j	                  ||       | d   }|j
                  t        k(  sJ t        j                  j	                  |j                         d d  |       d	|d
<   d	|d   d<   |j                  d      d d  }|j
                  j                  dk(  sJ t        j                  j	                  ||       t        j                  dd      |d
<   d|d   d<   t        j                  j	                  |j                         d d  |       y )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as       J/home/dcms/DCMS/lib/python3.12/site-packages/h5py/tests/test_npystrings.pytest_create_with_dtype_Tr!   
   s#   		%	%cs	%	CBEN]B/0DBqE

1AJJ!!!T*	s	B88vJJ!!"((*Q-6BtHDGAJ
		#qA77<<3JJ!!!T*zz%s+BtHDGAJJJ!!"((*Q-6    c                    ddgg}t        j                  |d      }| j                  d|d      }| j                  d|t         j                  j	                               }| j                  d|	      }|||fD ]O  }|j
                  j                  d
k(  sJ t         j                  j                  |j                  d      d d  |       Q dD ]  }| |   }|j
                  t        k(  sJ t         j                  j                  |j                         d d  |       |j                  d      }|j
                  j                  dk(  sJ |d d  }|j
                  j                  dk(  sJ t         j                  j                  ||        y )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   s	            r    test_fromdatar,       s]   ENDjjS)G$$St3$?A$$St299;P;P;R$SA$$Sw$7A!Qi Bxx}}###


%%biinQ&7AB   /4 xx6!!!


%%bhhjmT:YYs^xx}}###qEww||s"""


%%a./r"   c                    ddg}| j                  d|t        j                  d            }|j                  dk(  sJ |j	                  d      }|j                  j
                  dk(  sJ |d d  j                  j
                  dk(  sJ t        j                  j                  |d d  |       t        j                  d	d
      |d<   d	|d<   t        j                  j                  |d d  |       y )Nr   longer than 8 bytesr      lengthr$   S20r   1234r   r   )
r   h5pystring_dtyper   r   r   r   r   r   r   )r   r   r   r%   s       r    test_fixed_to_variable_widthr6   5   s    ()D$$$d//r: 	% 	A 77e 	
A77<<3Q4::??c!!!JJ!!!A$- ::fC(AaDDGJJ!!!A$-r"   c                     ddg}| j                  d|t        j                  d            }|j                  dk(  sJ t	        j
                  dd	
      |d<   t        j                  j                  |d d  ddg       y )Nr   r   r      r0   r$   S3r3   r   r   r   s   123s   bar)r   r4   r5   r   r   r   r   r   r   r   r   s      r    &test_fixed_to_variable_width_too_shortr;   H   sy     5>D$$$d//q9 	% 	A 77d?? ::fC(AaDJJ!!!A$(89r"   c                 (   ddg}ddg}| j                  d|d      }|j                  d      }|j                  dk(  sJ |d d  j                  dk(  sJ t        j                  j                  |d d  |       |j                  d	      }|j                  d	k(  sJ |d d  j                  d	k(  sJ t        j                  j                  |d d  dd
g       t        j                  dd      |d<   d|d<   t        j                  j                  |d d  |       y )Nr   r.      foos   longer than 8 bytesr   r   r$   r2   r9   s   lon   1234S5r   r   )r   r   r   r   r   r   r   )r   r   bdatar   r%   s        r    test_variable_to_fixed_widthrA   V   s   ()D+,E$$St3$?A 	
A77eQ4::JJ!!!A$.	A77d??Q4::JJ!!!A$(89 ::gT*AaDE!HJJ!!!A$.r"   c                     | j                  ddgd      }t        j                  dd      |d<   t        j                  j	                  |d d  d	       y )
Nr   r   r   r$   r3   r   r   r   r>   )r   r   r   r   r   r   r   s     r    !test_write_object_into_npystringsrD   l   sG    $$Swc$BA::fC(AaDJJ!!!A$0r"   c                    | j                  ddgt        j                               }|j                  t        k(  sJ t        j                  dd      |d<   t
        j                  j                  |d d  d       | j                  d	d
t        j                  d            }t        j                  dd      |d<   t
        j                  j                  |d d  d       y )Nr   r   r$   r3   r   r   r   r>   xa)   asciir	   2345s   2345)	r   r4   r5   r   r   r   r   r   r   )r   r   rF   s      r    !test_write_npystrings_into_objectrJ   r   s    $$5'!2!2!4 	% 	A 77f::fC(AaDJJ!!!A$0 
	%	%D 1 1' : 
& 
B JJvS)BqEJJ!!"Q%1r"   c                    | j                  dddd      }t        |j                  t              sJ |j                  dk(  sJ |d   dk(  sJ | j                  ddt	        j
                         d      }t        |j                  t              sJ |j                  dk(  sJ |d   dk(  sJ |j                  d      }|d   dk(  sJ y )	Nr   r   r   r   )r
   r   	fillvaluer=   r   r%   )r   
isinstancerM   bytesr4   r5   r   )r   r   r%   s      r    test_fillvaluerP      s    $$SC5$QAakk5)));;&   Q46>> 	$$4t002f 	% 	A akk5)));;&   Q46>>	AQ45==r"   c                    t        j                  g dd      }| j                  d|      }t         j                  j	                  |d d  g d       t         j                  j	                  |j                  d      d d  |       ddg|d d	 |d d	 |d d	 t         j                  j	                  |d d  g d
       t         j                  j	                  |j                  d      d d  |       y )N)r   r   br   r   r   r'   )r"      a   bcr   r   )   cr"   rT   )r   arrayr   r   r   r   r:   s      r    test_empty_stringrX      s    88N#.D$$St$4AJJ!!!A$(9:JJ!!!((3-"2D9RyD!H!HAbqEJJ!!!A$(9:JJ!!!((3-"2D9r"   c                     | j                  ddd      }t        j                  t        d      5  |j	                  d       d d d        y # 1 sw Y   y xY w)Nr   rL   i8r	   zHDF5 string datatype)matchr   )r   pytestraises	TypeErrorr   rC   s     r    test_astype_nonstringr_      sH    $$ST$BA	y(>	? 	  s   AA)numpyr   r\   r4   int__version__split	NUMPY_GE2markskipif
pytestmarkr!   r,   r6   r;   rA   rD   rJ   rP   rX   r_    r"   r    <module>ri      s      $$S)!,-2	[[I6LM
7,/*.&:/,12 &:r"   