
    -i                         S r SSKrSSKJr  SSKrSSKJrJrJ	r	  SSK
Jr  SSKJs  Js  Jr  SSKJs  Js  Jr  SSKJs  Js  Jr  SSKJs  Js  Jr  S rSS jrS r\R:                  4S	 jrS
 rS r S r!S r"S r#g)z"Testing mio5_utils Cython module

    N)BytesIO)assert_array_equalassert_equalassert_)raisesc                  <   S H  n [         R                  " U [         R                  S9nUR                  5       n[        R
                  " U5      n[        UR                  5       U5        [        R
                  " U5      n[        UR                  5       U5        M     g )N)      i   dtype)nparrayuint32byteswapm5ubyteswap_u4r   item)valabcds        X/var/www/html/venv/lib/python3.13/site-packages/scipy/io/matlab/tests/test_mio5_utils.pytest_byteswapr      sk     HHS		*JJLOOAQVVXq!OOAQVVXq!    c                    [         R                  " U 5      n [        R                  " U R                  5      nU R
                  nU(       d4  US-   nSUS-  -
  nSU4SU4SU 4/nU(       a  UR                  SSU45        OBUS-   nS	U-
  nUS
:X  a  SU4SU4SU 4/nOSU4SU4SU 4/nU(       a  UR                  SSU45        [         R                  " SUS9n	X)S'   XYS'   XS'   U	$ )z'Makes a simple matlab tag, full or sde u4   mdtype
byte_countr   paddingu1u2   <r	   r   )r   r   bocto_numpy_code	byteorderitemsizeappendzeros)
base_dtr   r   sdebor    udtr!   all_dttags
             r   	_make_tagr3       s   hhwG			7,,	-B!!J4izA~&S/%'"$ MM9dG454iJ,9o#S)g&(F $S)og&(F MM9dG45
((4v
&CM"JJr   c                     U R                  S5        U R                  S5        U H  nU R                  U5        M     U R                  S5        g )Nr   )truncateseekwrite)streamstringsss      r   _write_streamr;   A   s9    
OOA
KKNQ 
KKNr   c                      " S S5      nU" 5       nXl         Xl        SUl        [        R                  " 5       Ul        SUl        SUl        SUl        U$ )Nc                       \ rS rSrSrg)_make_readerlike.<locals>.RJ    N)__name__
__module____qualname____firstlineno____static_attributes__r@   r   r   Rr>   J   s    r   rF   TF)	
mat_stream
byte_orderstruct_as_recordsysgetdefaultencodinguint16_codecchars_as_strings	mat_dtype
squeeze_me)r8   rH   rF   rs       r   _make_readerlikerQ   I   sP     	ALLA++-ANAAKALHr   c                  2   [        5       n [        U 5      n[        R                  " U5      n[	        [
        UR                  5        [        SS[        R                  SS9nSUS'   [        XR                  5       5        [	        [        UR                  5        g )Ni4r	   Tr.      r    )r   rQ   r   
VarReader5assert_raisesOSErrorread_tagr3   mio5pmiINT32r;   tobytes
ValueError)str_iorP   c_readerr2   s       r   test_read_tagr`   W   so     YF A~~a H'8,,-
D!U]]
5CC&++-(*h//0r   c                     [        SS[        R                  SS9n U R                  5       n[	        U5      n[
        R                  " U5      n[
        R                  " X0R                  5      n[        X@R                  5       5        g )NrS   r	   TrT   )
r3   rZ   r[   r\   r   streamsmake_stream
_read_intor*   r   )r2   tag_strr^   str:   s        r   test_read_streamrg   f   s]    
D!U]]
5CkkmGWF			V	$B2||,AKKM"r   c            	         [        5       n [        U 5      nSS[        R                  4SS[        R                  4SS[        R
                  44 GH   u  p#nS GH  nXQl        [        R                  " U5      n[        UR                  US:H  5        [        UR                  U[        R                  :g  5        S	 H  n[        R                  " U5      R!                  U5      n[#        XXG5      n	U	R%                  5       n
['        X
5        UR)                  5       n[        X5        ['        X
U
5        UR)                  5       n[        X5        UR)                  5       n[        X5        M     GM     GM#     g )
Nr#      rS   r	   i2)r%   >r%   )FT)r   rQ   rZ   miUINT16r[   miINT16rH   r   rV   r   little_endian
is_swappedr'   native_coder   r   newbyteorderr3   r\   r;   read_numeric)r^   rP   r-   r   r   	byte_coder_   sde_fdtr   a_strels               r   test_read_numericry   o   s)   YF A"&ENN!;"&5==!9"&EMM!:!<f $I$L~~a(H//c1AB,,i3??.JK&XXg&33I>bv5		f,**,R%fU3**,R%**,R% ' $!<r   c                  X   [        5       n [        U S5      n[        R                  " U5      n[        R
                  " S5      n[        US[        R                  S5      nUR                  5       n[        X5        UR                  5       n[        UR                  R                  SL 5        g )Nr%   z<u2ri   r   T)r   rQ   r   rV   r   r   r3   rZ   rm   r\   r;   rs   r   flags	writeable)r^   rP   r_   rv   r   rw   rx   s          r   test_read_numeric_writeabler}      s|    YF%A~~a H	%B"b%..!,AIIKE& 				 BBHH$&'r   c                     [        5       n [        U [        R                  5      n[        R
                  " U5      n[        R                  " SS/5      n[        R                  " SUS9n[        R                  US'   SUS'   [        R                  " 5       nUR                  S/5        [        XR                  5       S-   5        U R                  S	5        UR!                  U5      n[#        US
5        S	US'   [        XR                  5       5        U R                  S	5        UR!                  U5      n[#        US
5        U R                  S	5        UR                  S/5        UR!                  U5      n[%        US
/S-  5        g )N)r   r   )r    r   r&   r   r   r	   r    s           r    r$   )r   rQ   r'   rq   r   rV   r   r   r,   rZ   miINT8
VarHeader5set_dimsr;   r\   r6   	read_charr   r   )r^   rP   r_   tag_dtr2   hdrr   s          r   test_zero_byte_stringr      s-    YF1A~~a HXX')=>?F
((4v
&CLLCMC
..
CLL!&++-+56
KKN


S
!CcC&++-(
KKN


S
!Cc
KKNLL!


S
!CsSEAI&r   )F)$__doc__rJ   ior   numpyr   numpy.testingr   r   r   pytestr   rW   scipy.io.matlab._byteordercodesmatlab_byteordercodesr'   scipy.io.matlab._streams_streamsrb   scipy.io.matlab._mio5_params_mio5_paramsrZ   scipy.io.matlab._mio5_utils_mio5_utilsr   r   r3   r;   rq   rQ   r`   rg   ry   r}   r   r@   r   r   <module>r      sm       C C * - - * * , , ) )
"B ), 1#&8
('r   