
    j                         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
                            e	 d          Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    N   )	make_name.   zrequires numpy >=2.0)reasonc                 
   t                      }|                     |dd          }ddgddgg}||d d <   |                                d d          }t          j                            ||           | |         }|j        t          k    sJ 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
<   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as        ]/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/h5py/tests/test_npystrings.pytest_create_with_dtype_Tr#      se   ;;D		%	%d&	%	D	DBEN]B/0DBqqqE


111AJ!!!T***	t	B8vJ!!"((**QQQ-666BtHDGAJ
		#qqqA7<3J!!!T***z%s+++BtHDGAJJ!!"((**QQQ-66666    c                    t          d          }t          d          }t          d          }ddgg}t          j        |d          }|                     ||d          }|                     ||t          j                                                  }|                     ||	          }|||fD ]O}	|	j        j        d
k    sJ t          j        	                    |	
                    d          d d          |           P|||fD ]}
| |
         }	|	j        t          k    sJ t          j        	                    |	                                d d          |           |	
                    d          }	|	j        j        dk    sJ |	d d          }|j        j        dk    sJ t          j        	                    ||           d 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!   s               r"   test_fromdatar2   #   s   	3B	3B	3BENDjS)))G$$Rd#$>>A$$Rd"):O:O:Q:Q$RRA$$Rg$66A!Qi B Bx}####

%%biinnQQQ&7AAAA"b\ / /1x6!!!!

%%bhhjjmT:::YYs^^x}####qqqEw|s""""

%%a..../ /r$   c                    ddg}|                      t                      |t          j        d                    }|j        dk    sJ |                    d          }|j        j        dk    sJ |d d          j        j        dk    sJ t          j        	                    |d d          |           t          j
        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'   s       r"   test_fixed_to_variable_widthr<   ;   s   ()D$$$d&7r&B&B&B 	% 	 	A 7e 	
A7<3QQQ4:?c!!!!J!!!AAA$--- :fC(((AaDDGJ!!!AAA$-----r$   c                    ddg}|                      t                      |t          j        d                    }|j        dk    sJ t          j        dd	          |d
<   t
          j                            |d d          ddg           d S )Nr   r      r6   r)   S3r9   r	   r   r   s   123s   bar)	r   r   r:   r;   r   r   r   r   r   r   r    r&   s      r"   &test_fixed_to_variable_width_too_shortrA   N   s     5>D$$$d&7q&A&A&A 	% 	 	A 7d???? :fC(((AaDJ!!!AAA$(899999r$   c                 j   ddg}ddg}|                      t                      |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    sJ t          j                            |d d          dd	g           t	          j        d
d          |d<   d
|d<   t          j                            |d d          |           d S )Nr   r4      foos   longer than 8 bytesr	   r)   r8   r?   s   lon   1234S5r   r   )r   r   r   r   r   r   r   r   )r   r    bdatar&   r'   s        r"   test_variable_to_fixed_widthrG   \   s<   ()D+,E$$Y[[t3$GGA 	
A7eQQQ4:J!!!AAA$...	A7d????QQQ4:J!!!AAA$(8999 :gT***AaDE!HJ!!!AAA$.....r$   c                     |                      t                      dgd          }t          j        dd          |d<   t          j                            |d d          d           d S )	Nr   r	   r)   r9   r   r   r   rD   )r   r   r   r   r   r   r   r&   s     r"   !test_write_object_into_npystringsrJ   r   s`    $$Y[[wc$JJA:fC(((AaDJ!!!AAA$00000r$   c                 
   |                      t          d          dgt          j                              }|j        t
          k    sJ t          j        dd          |d<   t          j        	                    |d d          d           |                      t          d	          d
t          j        d                    }t          j        dd          |d<   t          j        	                    |d d          d           d S )Nr&   r   r)   r9   r	   r   r   rD   xa)r   asciir
   2345s   2345)
r   r   r:   r;   r   r   r   r   r   r   )r   r&   rL   s      r"   !test_write_npystrings_into_objectrO   x   s    $$#eWD,=,?,? 	% 	 	A 7f:fC(((AaDJ!!!AAA$000 
	%	%d$*;G*D*D 
& 
 
B JvS)))BqEJ!!"QQQ%11111r$   c                    |                      t          d          ddd          }t          |j        t                    sJ |j        dk    sJ |d         dk    sJ |                      t          d          dt          j                    d          }t          |j        t                    sJ |j        dk    sJ |d         dk    sJ |                    d          }|d         dk    sJ d S )	Nr&   r   r	   r   )r   r   	fillvaluerC   r   r'   )r   r   
isinstancerR   bytesr:   r;   r   )r   r&   r'   s      r"   test_fillvaluerU      s    $$#d# 	% 	 	A ak5)))));&    Q46>>>> 	$$#d$*;*=*= 	% 	 	A ak5)))));&    Q46>>>>	AQ45======r$   c                 @   t          j        g dd          }|                     t                      |          }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   )   cr$   rY   )r   arrayr   r   r   r   r   r@   s      r"   test_empty_stringr]      s   8NNN#...D$$Y[[t$<<AJ!!!AAA$(9(9(9:::J!!!((3--"2D999RyD!H!HAbqbEJ!!!AAA$(9(9(9:::J!!!((3--"2D99999r$   c                     |                      t                      dd          }t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )NrQ   i8r
   zHDF5 string datatype)matchr	   )r   r   pytestraises	TypeErrorr   rI   s     r"   test_astype_nonstringrd      s    $$Y[[T$JJA	y(>	?	?	?  	                 s    A##A'*A'c                    g d}t          j        |d          }|                     t                      |d          }|                    d           t           j                            |dd         t          j        d |D             d	gd
z  z   t                               t           j                            |                    d          dd         t          j        |dgd
z  z   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                 6    g | ]}|                                 S  )encode).0ss     r"   
<listcomp>z%test_resized_read.<locals>.<listcomp>   s     r$   r$      r   )	r   r\   r   r   resizer   r   r   r   )r   lr    ds       r"   test_resized_readru      s     	*))A8AS!!!D$$Y[[tg$NNAHHUOOOJ!!!AAA$Q3%!)+6) ) )    J!!!((3--"2BHQ"\QT4U4U4UVVVVVr$   )numpyr   ra   r:   commonr   int__version__split	NUMPY_GE2markskipif
pytestmarkr#   r2   r<   rA   rG   rJ   rO   rU   r]   rd   ru   rl   r$   r"   <module>r      s/              C$$S))!,--2	[I6LMM
7 7 7./ / /0. . .&: : :/ / /,1 1 12 2 2   *: : :  W W W W Wr$   