Ë
    âQ(h¡!  ã                   ó,  — d Z ddlZddlZddlZddlmZ ddlmZ ddlZddlZddl	m
Z
mZ ddlZddlZddlmZmZmZmZ  ej(                   ej*                  e«      d«      Zej0                  d„ «       Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$y)z$ Tests for fortran sequential files é    N)Úpath)Úiglob)Úassert_equalÚassert_allclose)ÚFortranFileÚ_test_fortranÚFortranEOFErrorÚFortranFormattingErrorÚdatac                  ó*   — t        j                  «       S )N)Ú	threadingÚLock© ó    úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/io/tests/test_fortran.pyÚio_lockr      s   € ä�>‰>ÓÐr   c                 óò  — t        t        j                  t        d«      «      D �]D  }t	        j
                  d|t        j                  «      }|st        d|› d�«      ‚t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      f}|j                  d«      j                  d	d
«      }| 5  t        |dd«      }|j                  |¬«      j                  |d¬«      }|j                  «        d d d «       t        j                   t        j"                  |«      «      j                  |«      j%                  |«      }t'        |«       �ŒG y # 1 sw Y   Œ_xY w)Núfortran-*-*x*x*.datú%fortran-([^-]+)-(\d+)x(\d+)x(\d+).datúCouldn't match ú filename to regexé   é   é   é   Úsú<Úrú<u4©ÚdtypeÚF)Úorder)r   r   ÚjoinÚ	DATA_PATHÚreÚsearchÚIÚRuntimeErrorÚintÚgroupÚreplacer   Úread_recordÚreshapeÚcloseÚnpÚarangeÚprodÚastyper   )r   ÚfilenameÚmÚdimsr!   Úfr   Úexpecteds           r   Útest_fortranfiles_readr9      s"  € Üœ$Ÿ)™)¤IÐ/DÓEÓFó %ˆÜ�I‰IÐ>ÀÌ"Ï$É$ÓOˆÙÜ °°
Ð:LÐMÓNÐNä�A—G‘G˜A“J“¤ Q§W¡W¨Q£Z£´#°a·g±g¸a³j³/ÐBˆà—‘˜“
×"Ñ" 3¨Ó,ˆàñ 	Ü˜H c¨5Ó1ˆAØ—=‘= u�=Ó-×5Ñ5°dÀ#Ð5ÓFˆDØ�G‰GŒI÷	ô
 —9‘9œRŸW™W T›]Ó+×3Ñ3°DÓ9×@Ñ@ÀÓGˆÜ�T˜8Ö$ñ%÷	ð 	ús   ÃAE-Å-E6	c                 ó`  — t        j                  t        d«      }| 5  t        |dd«      5 }|j	                  d«      }d d d «       d d d «       t        d   d   d«       t        |d   d   d	«       t        |d
   d   d«       t        |d   d   ddg«       y # 1 sw Y   Œ\xY w# 1 sw Y   Œ`xY w)Nzfortran-mixed.datr   r   z<i4,<f4,<i8,2<f8Úf0r   r   Úf1gffffff@Úf2r   Úf3gffffff@g333333@)r   r$   r%   r   r-   r   r   )r   r4   r7   Úrecords       r   Útest_fortranfiles_mixed_recordr@   0   s«   € Ü�y‰yœÐ$7Ó8€HØ	ñ 7Ü˜ 3¨Ó.ð 	7°!Ø—]‘]Ð#5Ó6ˆF÷	7÷7ô �˜‘˜a‘ !Ô$Ü�F˜4‘L ‘O SÔ)Ü�˜‘˜a‘ !Ô$Ü�F˜4‘L ‘O c¨3 ZÕ0÷	7ð 	7ú÷7ð 7ús!   �B$«B½B$ÂB!	ÂB$Â$B-c                  ór  — t        t        j                  t        d«      «      D �]ö  } t	        j
                  d| t        j                  «      }|st        d| › d�«      ‚t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      f}|j                  d«      j                  d	d
«      }t        j                  t        j                  |«      «      j                  |«      j                  |«      }t!        j"                  «       }	 t        j                  t%        t'        j(                  «       «      |t        j*                  | «      «      }t-        |dd«      }|j/                  |j0                  «       |j3                  «        t5        | d«      }t5        |d«      }	t7        |j9                  «       |	j9                  «       | ¬«       |j3                  «        |	j3                  «        t;        j<                  |«       �Œù y # t;        j<                  |«       w xY w)Nr   r   r   r   r   r   r   r   r   r   Úwr   Úrb)Úerr_msg)r   r   r$   r%   r&   r'   r(   r)   r*   r+   r,   r0   r1   r2   r.   r3   ÚtempfileÚmkdtempÚstrr   Úget_native_idÚbasenamer   Úwrite_recordÚTr/   Úopenr   ÚreadÚshutilÚrmtree)
r4   r5   r6   r!   r   ÚtmpdirÚtestFiler7   ÚoriginalfileÚnewfiles
             r   Útest_fortranfiles_writerT   <   s•  € Üœ$Ÿ)™)¤IÐ/DÓEÓFó "ˆÜ�I‰IÐ>ÀÌ"Ï$É$ÓOˆÙÜ °°
Ð:LÐMÓNÐNÜ�A—G‘G˜A“J“¤ Q§W¡W¨Q£Z£´#°a·g±g¸a³j³/ÐBˆà—‘˜“
×"Ñ" 3¨Ó,ˆÜ�y‰yœŸ™ ›Ó'×/Ñ/°Ó5×<Ñ<¸UÓCˆä×!Ñ!Ó#ˆð	"Ü—y‘y¤¤Y×%<Ñ%<Ó%>Ó!?Ø!'¬¯©°hÓ(?óAˆHä˜H c¨%Ó0ˆAØ�N‰N˜4Ÿ6™6Ô"Ø�G‰GŒIÜ ¨$Ó/ˆLÜ˜8 TÓ*ˆGÜ˜×*Ñ*Ó,¨g¯l©l«nØ!)õ+à×ÑÔ Ø�M‰MŒOä�M‰M˜&Ö!ñ/"øô. �M‰M˜&Õ!ús   Ä'CHÈH6c                 ó  — t        j                  t        d«      }| 5  t        |dd«      5 }|j	                  dd«      }d d d «       d d d «       t        j                  d«      j                  dd«      j                  t
        j                  «      }t        j                  dd	gt
        j                  ¬
«      }t        d   |j                  «       t        |d   |j                  «       y # 1 sw Y   Œ­xY w# 1 sw Y   Œ±xY w)Nzfortran-3x3d-2i.datr   r   z(3,3)<f8z2<i4é	   r   éÿÿÿÿéþÿÿÿr    r   r   )r   r$   r%   r   r-   r0   r1   r.   r3   Úfloat64ÚarrayÚint32r   rK   )r   r4   r7   r?   ÚaxÚbxs         r   Ú"test_fortranfile_read_mixed_recordr^   W   sÇ   € ô �y‰yœÐ$9Ó:€HØ	ñ 7Ü˜ 3¨Ó.ð 	7°!Ø—]‘] :¨vÓ6ˆF÷	7÷7ô 
�‰�3‹×	Ñ	  1Ó	%×	,Ñ	,¬R¯Z©ZÓ	8€BÜ	�‰�2�r�(¤"§(¡(Ô	+€Bä�˜‘˜BŸD™DÔ!Ü�˜‘˜BŸD™DÕ!÷	7ð 	7ú÷7ð 7ús!   �C6«C*¾C6Ã*C3	Ã/C6Ã6C?c                 ó$  — t        j                  t        | «      t        t        j                  «       «      d«      }t        j                  t        j                  |«      d¬«       dt        j                  d«      t        j                  d«      t        j                  d«      ff}dt        j                  j                  d	d
g¬«      j                  t        j                  «      t        j                  j                  d	ddg¬«      j                  t        j                  «      t        j                  j                  d	dg¬«      j                  t        j                  «      ff}||g}|D ]‹  \  }}t        |d«      5 } |j                  |Ž  d d d «       t        |d«      5 } |j                   |Ž }d d d «       t#        t%        |«      t%        «      «       t'        ||«      D ]  \  }	}
t#        |
|	«       Œ Œ� y # 1 sw Y   ŒnxY w# 1 sw Y   ŒVxY w)Nútest.datT©Úexist_ok)Úf4rc   Úi4r   r   éd   )Ú4f4z(3,3)f4Ú8i4éÿ   r   )Úsizeé   rB   r   )r   r$   rG   r   rH   ÚosÚmakedirsÚdirnamer0   Úfloat32r[   ÚrandomÚrandintr3   r   rJ   r-   r   ÚlenÚzip)rP   ÚtfÚr1Úr2Úrecordsr!   Úar7   ÚbÚaaÚbbs              r   Ú#test_fortranfile_write_mixed_recordr{   o   s¦  € Ü	�‰”3�v“;¤¤I×$;Ñ$;Ó$=Ó >À
Ó	K€BÜ‡K�K”—‘˜RÓ ¨4Õ0à
œrŸz™z¨!›}¬b¯j©j¸«m¼R¿X¹XÀc»]ÐKÐ	L€BØ
#Ü�9‰9×Ñ˜S¨ sÐÓ+×2Ñ2´2·:±:Ó>Ü�9‰9×Ñ˜S¨¨1 vÐÓ.×5Ñ5´b·j±jÓAÜ�9‰9×Ñ˜S¨ sÐÓ+×2Ñ2´2·8±8Ó<ð>ð
?€Bð �2ˆh€Gàò 
!‰ˆˆqÜ˜˜SÓ!ð 	 QØˆA�N‰N˜AÑ÷	ô ˜˜SÓ!ð 	& QØ�—‘˜uÐ%ˆA÷	&ô 	”S˜“VœS ›VÔ$ä˜!˜Q“iò 	!‰FˆB�Ü˜˜RÕ ñ	!ñ
!÷	ð 	ú÷	&ð 	&ús   Å=G:Æ!HÇ:H	ÈH	c                 ó  — t        j                  t        | «      t        t        j                  «       «      d«      }t        j                  t        j                  |«      d¬«       t        j                  j                  d«      }d\  }}}|j                  |||«      }t        |d«      5 }|j                  |j                  «       d d d «       |5  t        j                   ||||«      }	d d d «       t        |d«      5 }|j#                  d«      j                  }
d d d «       t%        	|«       t%        
|«       d\  }}}|j                  |||«      j'                  t        j(                  «      }t        |d«      5 }|j                  |j                  «       d d d «       |5  t        j*                  ||||«      }	d d d «       t        |d«      5 }|j#                  d	«      j                  }
d d d «       t%        |	|«       t%        |
|«       d\  }}}|j                  ||«      }|j                  |«      j'                  t        j,                  «      }t        |d«      5 }|j                  |j                  |j                  «       d d d «       |5  t        j.                  ||||«      \  }	}d d d «       t        |d«      5 }|j#                  d
d«      \  }
}|
j                  }
d d d «       t%        |	|«       t%        |
|«       t%        |«       t%        |«       y # 1 sw Y   �ŒTxY w# 1 sw Y   �Œ>xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒªxY w# 1 sw Y   �Œ”xY w# 1 sw Y   �ŒqxY w# 1 sw Y   ŒäxY w# 1 sw Y   ŒÊxY w# 1 sw Y   Œ xY w)Nr`   Tra   r   )é   r   r   rB   r   z	(2,3,5)f8z	(2,3,5)i4z(3,5)f8Ú2i4)r   r$   rG   r   rH   rk   rl   rm   r0   ro   ÚRandomStateÚrandnr   rJ   rK   r   Úread_unformatted_doubler-   r   r3   r[   Úread_unformatted_intÚintcÚread_unformatted_mixed)rP   r   r4   Úrngr5   ÚnÚkrw   r7   Úa2Úa3rx   Úb2Úb3s                 r   Útest_fortran_roundtriprŒ   ‡   s	  € Ü�y‰yœ˜V›¤c¬)×*AÑ*AÓ*CÓ&DØ#ó%€Hä‡K�K”—‘˜XÓ&°Õ6ä
�)‰)×
Ñ
 Ó
"€Cð �G€A€qˆ!Ø�	‰	�!�Q˜Ó€AÜ	�X˜sÓ	#ð  qØ	�‰�q—s‘sÔ÷à	ñ FÜ×2Ñ2°1°a¸¸HÓEˆ÷Fô 
�X˜sÓ	#ð * qØ�]‰]˜;Ó'×)Ñ)ˆ÷*ä��QÔÜ��QÔð �G€A€qˆ!Ø�	‰	�!�Q˜Ó×!Ñ!¤"§(¡(Ó+€AÜ	�X˜sÓ	#ð  qØ	�‰�q—s‘sÔ÷à	ñ CÜ×/Ñ/°°1°a¸ÓBˆ÷Cä	�X˜sÓ	#ð * qØ�]‰]˜;Ó'×)Ñ)ˆ÷*ä��QÔÜ��QÔð �G€A€qˆ!Ø�	‰	�!�Q‹€AØ�	‰	�!‹×ÑœBŸG™GÓ$€AÜ	�X˜sÓ	#ð ! qØ	�‰�q—s‘s˜AŸC™CÔ ÷!à	ñ IÜ×5Ñ5°a¸¸A¸xÓH‰ˆˆB÷Iä	�X˜sÓ	#ð  qØ—‘˜y¨%Ó0‰ˆˆBØ�T‰Tˆ÷ô ��QÔÜ��QÔÜ��QÔÜ��QÕ÷Iñ ú÷Fñ Fú÷*ñ *ú÷ñ ú÷Cñ Cú÷*ñ *ú÷!ð !ú÷Ið Iú÷ð úsl   Â*LÃL%Ã=L2Å;L?Æ!MÇMÉ'M&ÊM2Ê="M>ÌL"Ì%L/Ì2L<Ì?M	ÍMÍM#Í&M/Í2M;Í>Nc                 ó  — t        j                  t        | «      t        t        j                  «       «      d«      }t        j                  t        j                  |«      d¬«       t        j                  j                  d«      }t        |d«      5 }|j                  |j                  d«      «       |j                  |j                  d«      «       d d d «       t        |d«      5 }t        |j                  «       «      dk(  sJ ‚t        |j                  «       «      dk(  sJ ‚t!        j"                  t$        «      5  |j                  «        d d d «       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)	NÚscratchTra   r   rB   r}   r   r   )r   r$   rG   r   rH   rk   rl   rm   r0   ro   r   r   rJ   r€   rq   Ú
read_realsÚpytestÚraisesr	   ©rP   r4   r…   r7   s       r   Útest_fortran_eof_okr“   ¸   s!  € Ü�y‰yœ˜V›¤c¬)×*AÑ*AÓ*CÓ&DØ"ó$€Hä‡K�K”—‘˜XÓ&°Õ6Ü
�)‰)×
Ñ
 Ó
"€CÜ	�X˜sÓ	#ð % qØ	�‰�s—y‘y “|Ô$Ø	�‰�s—y‘y “|Ô$÷%ô 
�X˜sÓ	#ð  qÜ�1—<‘<“>Ó" aÒ'Ð'Ð'Ü�1—<‘<“>Ó" aÒ'Ð'Ð'Ü�]‰]œ?Ó+ñ 	Ø�L‰LŒN÷	÷ð ÷%ð %ú÷	ð 	ú÷ð ús2   ÂAEÃ&AE6Ä<E*ÅE6ÅE'Å*E3	Å/E6Å6E?c                 óh  — t        j                  t        | «      t        t        j                  «       «      d«      }t        j                  t        j                  |«      d¬«       t        j                  j                  d«      }t        |d«      5 }|j                  |j                  d«      «       |j                  |j                  d«      «       d d d «       t        |d«      5 }|j                  d	«       d d d «       t        |d
«      5 }t!        |j#                  «       «      dk(  sJ ‚t!        |j#                  «       «      dk(  sJ ‚t%        j&                  t(        «      5  |j#                  «        d d d «       d d d «       y # 1 sw Y   Œ³xY w# 1 sw Y   Œ™xY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)NrŽ   Tra   r   rB   r}   r   Úabó   ÿr   )r   r$   rG   r   rH   rk   rl   rm   r0   ro   r   r   rJ   r€   rL   Úwriterq   r�   r�   r‘   r
   r’   s       r   Útest_fortran_eof_broken_sizer˜   Ç   sO  € Ü�y‰yœ˜V›¤c¬)×*AÑ*AÓ*CÓ&DØ"ó$€Hä‡K�K”—‘˜XÓ&°Õ6Ü
�)‰)×
Ñ
 Ó
"€CÜ	�X˜sÓ	#ð % qØ	�‰�s—y‘y “|Ô$Ø	�‰�s—y‘y “|Ô$÷%ô 
ˆh˜Ó	ð  Ø	�‰�Ô÷ä	�X˜sÓ	#ð  qÜ�1—<‘<“>Ó" aÒ'Ð'Ð'Ü�1—<‘<“>Ó" aÒ'Ð'Ð'Ü�]‰]Ô1Ó2ñ 	Ø�L‰LŒN÷	÷ð ÷%ð %ú÷ð ú÷
	ð 	ú÷ð ús>   ÂAFÃ&FÄAF(Å"FÅ3F(ÆFÆFÆF%	Æ!F(Æ(F1c                 óð  — t        j                  t        | «      t        t        j                  «       «      d«      }t        j                  t        j                  |«      d¬«       t        j                  j                  d«      }t        |d«      5 }|j                  |j                  d«      «       |j                  |j                  d«      «       d d d «       t        |d«      5 }|j                  d	«       d d d «       t        |d
«      5 }t!        j"                  t$        «      5  |j'                  «        d d d «       d d d «       y # 1 sw Y   ŒwxY w# 1 sw Y   Œ]xY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)NrŽ   Tra   r   rB   r}   r   zw+bs   ÿÿr   )r   r$   rG   r   rH   rk   rl   rm   r0   ro   r   r   rJ   r€   rL   r—   r�   r‘   r
   r�   r’   s       r   Útest_fortran_bogus_sizerš   Ø   s  € Ü�y‰yœ˜V›¤c¬)×*AÑ*AÓ*CÓ&DØ"ó$€Hä‡K�K”—‘˜XÓ&°Õ6Ü
�)‰)×
Ñ
 Ó
"€CÜ	�X˜sÓ	#ð % qØ	�‰�s—y‘y “|Ô$Ø	�‰�s—y‘y “|Ô$÷%ô 
ˆh˜Ó	ð  !Ø	�‰�Ô÷ä	�X˜sÓ	#ð  qÜ�]‰]Ô1Ó2ñ 	Ø�L‰LŒN÷	÷ð ÷%ð %ú÷ð ú÷	ð 	ú÷ð ús=   ÂAEÃ&EÄE,Ä&E Ä7E,ÅEÅEÅ E)	Å%E,Å,E5c                 óX  — t        j                  t        | «      t        t        j                  «       «      d«      }t        j                  t        j                  |«      d¬«       t        j                  j                  d«      }t        |d«      5 }|j                  |j                  d«      «       |j                  |j                  d«      «       d d d «       t        |d«      5 }|j                  t        j                   |«      d	z
  «       d d d «       t        |d
«      5 }t#        |j%                  «       «      dk(  sJ ‚t'        j(                  t*        «      5  |j%                  «        d d d «       d d d «       y # 1 sw Y   Œ«xY w# 1 sw Y   Œ{xY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)NrŽ   Tra   r   rB   r}   r   r•   é   r   )r   r$   rG   r   rH   rk   rl   rm   r0   ro   r   r   rJ   r€   rL   ÚtruncateÚgetsizerq   r�   r�   r‘   r
   r’   s       r   Útest_fortran_eof_broken_recordrŸ   ç   sD  € Ü�y‰yœ˜V›¤c¬)×*AÑ*AÓ*CÓ&DØ"ó$€Hä‡K�K”—‘˜XÓ&°Õ6Ü
�)‰)×
Ñ
 Ó
"€CÜ	�X˜sÓ	#ð % qØ	�‰�s—y‘y “|Ô$Ø	�‰�s—y‘y “|Ô$÷%ô 
ˆh˜Ó	ð . Ø	�
‰
”4—<‘< Ó)¨"Ñ,Ô-÷.ä	�X˜sÓ	#ð  qÜ�1—<‘<“>Ó" aÒ'Ð'Ð'Ü�]‰]Ô1Ó2ñ 	Ø�L‰LŒN÷	÷ð ÷%ð %ú÷.ð .ú÷	ð 	ú÷ð ús=   ÂAE<Ã&(FÄ"8F ÅFÅ+F Å<FÆFÆF	ÆF Æ F)c                 óÚ  — t        j                  t        | «      t        t        j                  «       «      d«      }t        j                  t        j                  |«      d¬«       d\  }}}t        j                  dt        j                  ||ffg«      }t        j                  ||¬«      }t        |d«      5 }|j                  |d   «       |j                  |«       |j                  |«       d d d «       t        |d	«      5 }|j                  t        j                   |«      d
z
  «       d d d «       t        |d«      5 }t#        |j%                  |¬«      «      dk(  sJ ‚t#        |j%                  |¬«      «      |k(  sJ ‚t'        j(                  t*        «      5  |j%                  |¬«       d d d «       d d d «       y # 1 sw Y   ŒÏxY w# 1 sw Y   ŒŸxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)NrŽ   Tra   )r   r}   é   Úfieldr    rB   r   r•   rœ   r   r   )r   r$   rG   r   rH   rk   rl   rm   r0   r!   rY   Úzerosr   rJ   rL   r�   rž   rq   r-   r�   r‘   r
   )rP   r4   r†   r5   ÚqÚdtrw   r7   s           r   Ú!test_fortran_eof_multidimensionalr¦   ÷   s“  € Ü�y‰yœ˜V›¤c¬)×*AÑ*AÓ*CÓ&DØ"ó$€Hä‡K�K”—‘˜XÓ&°Õ6Ø�G€A€qˆ!Ü	�‰�GœRŸZ™Z¨!¨Q¨Ð0Ð1Ó	2€BÜ
�‰�˜"Ô€AÜ	�X˜sÓ	#ð  qØ	�‰�q˜‘tÔØ	�‰�qÔØ	�‰�qÔ÷ô 
ˆh˜Ó	ð . Ø	�
‰
”4—<‘< Ó)¨"Ñ,Ô-÷.ä	�X˜sÓ	#ð $ qÜ�1—=‘= r�=Ó*Ó+¨qÒ0Ð0Ð0Ü�1—=‘= r�=Ó*Ó+¨qÒ0Ð0Ð0Ü�]‰]Ô1Ó2ñ 	$Ø�M‰M ˆMÔ#÷	$÷$ð $÷ð ú÷.ð .ú÷
	$ð 	$ú÷$ð $ús=   Â87F=Ä(G	Ä?AG!ÆGÆ,G!Æ=GÇ	GÇG	ÇG!Ç!G*)%Ú__doc__rE   rN   rk   r   Úglobr   r   r&   Únumpy.testingr   r   Únumpyr0   r�   Úscipy.ior   r   r	   r
   r$   rm   Ú__file__r%   Úfixturer   r9   r@   rT   r^   r{   rŒ   r“   r˜   rš   rŸ   r¦   r   r   r   ú<module>r®      sŸ   ðÙ *ã Û Û 	Ý Ý Û Û 	ç 7Û Û ÷.ó .ð ˆD�I‰I�l�d—l‘l 8Ó,¨fÓ5€	ð ‡�ñó ðò%ò&	1ò"ò6"ò0!ò0.òbòò"òó $r   