Ë
    âQ(h  ã                   óô   — d Z ddlZddlmZ ddlZddlmZmZm	Z	 ddl
mZ ddlmc mc mZ ddlmc mc mZ ddlmc mc mZ ddlmc mc mZ d„ Zdd„Zd„ Zej:                  fd	„Zd
„ Zd„ Z d„ Z!d„ Z"d„ Z#y)z# Testing mio5_utils Cython module

é    N)ÚBytesIO)Úassert_array_equalÚassert_equalÚassert_)Úraisesc                  ó8  — dD ]•  } t        j                  | t         j                  ¬«      }|j                  «       }t	        j
                  |«      }t        |j                  «       |«       t	        j
                  |«      }t        |j                  «       |«       Œ— y )N)é   é   i   ©Údtype)ÚnpÚarrayÚuint32ÚbyteswapÚm5uÚbyteswap_u4r   Úitem)ÚvalÚaÚbÚcÚds        úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/io/matlab/tests/test_mio5_utils.pyÚtest_byteswapr      sp   € ðò 	"ˆô �H‰H�S¤§	¡	Ô*ˆØ�J‰J‹LˆÜ�O‰O˜AÓˆÜ�Q—V‘V“X˜qÔ!Ü�O‰O˜AÓˆÜ�Q—V‘V“X˜qÕ!ñ	"ó    c                 ó¬  — t        j                  | «      } t        j                  | j                  «      }| j
                  }|s/|dz   }d|dz  z
  }d|fd|fd| fg}|rQ|j                  dd|f«       n<|dz   }d	|z
  }|d
k(  rd|fd|fd| fg}nd|fd|fd| fg}|r|j                  dd|f«       t        j                  d|¬«      }	||	d<   ||	d<   ||	d<   |	S )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!  € ä�h‰h�wÓ€GÜ	×	Ñ	˜7×,Ñ,Ó	-€BØ×!Ñ!€JÙØ�4‰iˆØ�z A‘~Ñ&ˆØ˜S�/Ø Ð%Ø˜'Ð"ð$ˆñ Ø�M‰M˜9 d¨GÐ4Õ5à�4‰iˆØ�J‘,ˆØ�Š9Ø �oØ# SÐ)Ø˜gÐ&ð(‰Fð $ SÐ)Ø �oØ˜gÐ&ð(ˆFñ Ø�M‰M˜9 d¨GÐ4Ô5Ü
�(‰(�4˜vÔ
&€CØ€Cˆ�MØ"€CˆÑØ€Cˆ�JØ€Jr   c                 óš   — | j                  d«       | j                  d«       |D ]  }| j                  |«       Œ | j                  d«       y )Nr   )ÚtruncateÚseekÚwrite)ÚstreamÚstringsÚss      r   Ú_write_streamr;   A   s>   € Ø
‡O�O�AÔØ
‡K�K�„NØò ˆØ�‰�Q�ðà
‡K�K�…Nr   c                 ó®   —  G d„ d«      } |«       }| |_         ||_        d|_        t        j                  «       |_        d|_        d|_        d|_        |S )Nc                   ó   — e Zd Zy)ú_make_readerlike.<locals>.RN)Ú__name__Ú
__module__Ú__qualname__© r   r   ÚRr>   J   s   „ Ør   rC   TF)	Ú
mat_streamÚ
byte_orderÚstruct_as_recordÚsysÚgetdefaultencodingÚuint16_codecÚchars_as_stringsÚ	mat_dtypeÚ
squeeze_me)r8   rE   rC   Úrs       r   Ú_make_readerlikerN   I   sT   € ÷ñ á	‹€AØ€A„LØ€A„LØ€AÔÜ×+Ñ+Ó-€A„NØ€AÔØ€A„KØ€A„LØ€Hr   c                  ó8  — t        «       } t        | «      }t        j                  |«      }t	        t
        |j                  «       t        ddt        j                  d¬«      }d|d<   t        | |j                  «       «       t	        t        |j                  «       y )NÚi4r	   T©r.   é   r    )r   rN   r   Ú
VarReader5Úassert_raisesÚOSErrorÚread_tagr3   Úmio5pÚmiINT32r;   ÚtobytesÚ
ValueError)Ústr_iorM   Úc_readerr2   s       r   Útest_read_tagr]   W   sq   € ô ‹Y€FÜ˜Ó €AÜ�~‰~˜aÓ €Hä”'˜8×,Ñ,Ô-ä
�D˜!œUŸ]™]°Ô
5€CØ€CˆÑÜ�&˜#Ÿ+™+›-Ô(Ü”*˜h×/Ñ/Õ0r   c                  ó  — t        ddt        j                  d¬«      } | j                  «       }t	        |«      }t        j                  |«      }t        j                  || j                  «      }t        || j                  «       «       y )NrP   r	   TrQ   )
r3   rW   rX   rY   r   ÚstreamsÚmake_streamÚ
_read_intor*   r   )r2   Útag_strr[   Ústr:   s        r   Útest_read_streamrd   f   sa   € Ü
�D˜!œUŸ]™]°Ô
5€CØ�k‰k‹m€GÜ�WÓ€FÜ	×	Ñ	˜VÓ	$€BÜ×Ñ˜2˜sŸ|™|Ó,€AÜ��C—K‘K“MÕ"r   c            	      óê  — t        «       } t        | «      }ddt        j                  fddt        j                  fddt        j
                  ffD �]"  \  }}}dD �]  }||_        t        j                  |«      }t        |j                  |dk(  «       t        |j                  |t        j                  k7  «       d	D ]±  }t        j                  |«      j!                  |«      }t#        ||||«      }	|	j%                  «       }
t'        | |
«       |j)                  «       }t        ||«       t'        | |
|
«       |j)                  «       }t        ||«       |j)                  «       }t        ||«       Œ³ �Œ �Œ% y )
Nr#   é   rP   r	   Úi2éÿÿÿÿ)r%   ú>r%   )FT)r   rN   rW   ÚmiUINT16rX   ÚmiINT16rE   r   rS   r   Úlittle_endianÚ
is_swappedr'   Únative_coder   r   Únewbyteorderr3   rY   r;   Úread_numeric)r[   rM   r-   r   r   Ú	byte_coder\   Úsde_fÚdtr   Úa_strÚels               r   Útest_read_numericrv   o   sJ  € ä‹Y€FÜ˜Ó €Aà"&¨¬E¯N©NÐ!;Ø"&¨¬5¯=©=Ð!9Ø"&¨¬E¯M©MÐ!:ð!<ó &Ñˆ��fð $ó 	&ˆIØ$ˆAŒLÜ—~‘~ aÓ(ˆHÜ˜×/Ñ/°¸cÑ1AÔBÜ˜×,Ñ,¨i¼3¿?¹?Ñ.JÔKØ&ò &�Ü—X‘X˜gÓ&×3Ñ3°IÓ>�Ü˜b # v¨uÓ5�ØŸ	™	›�Ü˜f eÔ,Ø×*Ñ*Ó,�Ü˜R Ô%ä˜f e¨UÔ3Ø×*Ñ*Ó,�Ü˜R Ô%Ø×*Ñ*Ó,�Ü˜R Õ%ò&ò	&ñ&r   c                  óV  — t        «       } t        | d«      }t        j                  |«      }t	        j
                  d«      }t        |dt        j                  d«      }|j                  «       }t        | |«       |j                  «       }t        |j                  j                  du «       y )Nr%   z<u2rf   r   T)r   rN   r   rS   r   r   r3   rW   rj   rY   r;   rp   r   ÚflagsÚ	writeable)r[   rM   r\   rs   r   rt   ru   s          r   Útest_read_numeric_writeablerz   ‹   s~   € ä‹Y€FÜ˜ Ó%€AÜ�~‰~˜aÓ €HÜ	�‰�%‹€BÜ�"�bœ%Ÿ.™.¨!Ó,€AØ�I‰I‹K€EÜ�&˜%Ô Ø	×	Ñ	Ó	 €BÜˆB�H‰H×Ñ $Ð&Õ'r   c                  ó  — t        «       } t        | t        j                  «      }t	        j
                  |«      }t        j                  ddg«      }t        j                  d|¬«      }t        j                  |d<   d|d<   t	        j                  «       }|j                  dg«       t        | |j                  «       dz   «       | j                  d	«       |j!                  |«      }t#        |d
«       d	|d<   t        | |j                  «       «       | j                  d	«       |j!                  |«      }t#        |d
«       | j                  d	«       |j                  dg«       |j!                  |«      }t%        |d
gdz  «       y )N)r   r   )r    r   r&   r   r   r	   r    s           r   ú r$   )r   rN   r'   rn   r   rS   r   r   r,   rW   ÚmiINT8Ú
VarHeader5Úset_dimsr;   rY   r6   Ú	read_charr   r   )r[   rM   r\   Útag_dtr2   Úhdrr   s          r   Útest_zero_byte_stringrƒ   ˜   s1  € ô ‹Y€FÜ˜¤§¡Ó1€AÜ�~‰~˜aÓ €HÜ�X‰XÐ'Ð)=Ð>Ó?€FÜ
�(‰(�4˜vÔ
&€CÜ—L‘L€Cˆ�MØ€CˆÑÜ
�.‰.Ó
€Cà‡L�L�!�ÔÜ�&˜#Ÿ+™+›-¨+Ñ5Ô6Ø
‡K�K�„NØ
×
Ñ
˜SÓ
!€CÜ��cÔà€CˆÑÜ�&˜#Ÿ+™+›-Ô(Ø
‡K�K�„NØ
×
Ñ
˜SÓ
!€CÜ��cÔà
‡K�K�„NØ‡L�L�!�ÔØ
×
Ñ
˜SÓ
!€CÜ�s˜S˜E A™IÕ&r   )F)$Ú__doc__rG   Úior   Únumpyr   Únumpy.testingr   r   r   Úpytestr   rT   Úscipy.io.matlab._byteordercodesÚmatlabÚ_byteordercodesr'   Úscipy.io.matlab._streamsÚ_streamsr_   Úscipy.io.matlab._mio5_paramsÚ_mio5_paramsrW   Úscipy.io.matlab._mio5_utilsÚ_mio5_utilsr   r   r3   r;   rn   rN   r]   rd   rv   rz   rƒ   rB   r   r   ú<module>r’      sm   ðñó å ã ç CÑ CÝ *ç -Ó -ß *Ó *ß ,Ó ,ß )Ó )ò
"óòBð ),¯©ó ò1ò#ò&ò8
(ó'r   