Ë
    ÏÍ:j[L  ã                   ó°  — d Z ddlZddlmZm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mZmZ ddlZddlmZmZmZ ddlZddlmZ dd	lmZ  e ee«      d
«      ZdZdZej<                  j>                  Z ed„ «       Z!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„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d „ Z4d!„ Z5d"„ Z6d#„ Z7d$„ Z8d%„ Z9d&„ Z:d'„ Z;d(„ Z<d)„ Z=y)*z Tests for netcdf é    N)ÚjoinÚdirname)ÚBytesIO)Úglob)ÚchdirÚcontextmanager)Úassert_Úassert_allcloseÚassert_equal)Úraises)Únetcdf_fileÚdataé   Úbc               #   ó¦   K  — t        j                  «       5 } t        | «      5  | –— ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   yxY w­w)a®   Create, return, and change directory to a temporary directory

    Examples
    --------
    >>> import os
    >>> my_cwd = os.getcwd()
    >>> with in_tempdir() as tmpdir:
    ...     _ = open('test.txt', 'wt').write('some text')
    ...     assert os.path.isfile('test.txt')
    ...     assert os.path.isfile(os.path.join(tmpdir, 'test.txt'))
    >>> os.path.exists(tmpdir)
    False
    >>> os.getcwd() == my_cwd
    True
    N)ÚtempfileÚTemporaryDirectoryr   )Útds    úo/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/io/tests/test_netcdf.pyÚ
in_tempdirr      sP   è ø€ ô" 
×	$Ñ	$Ó	&ð ¨"Ü�2‹Yñ 	ØŠH÷	÷ð ÷	ð 	ú÷ð üs.   ‚A—A£9¨A°	A¹A	¾AÁAÁ
Ac               /   ó  K  — t        | i |¤Ž}d|_        |j                  dt        «       |j	                  dt
        d«      }t        j                  t        «      |d d  d|_        |j                  «        |–— |j                  «        y ­w)NúCreated for a testÚtime©r   zdays since 2008-01-01)r   ÚhistoryÚcreateDimensionÚN_EG_ELSÚcreateVariableÚ
VARTYPE_EGÚnpÚarangeÚunitsÚflushÚclose)ÚargsÚkwargsÚfr   s       r   Úmake_simpler(   2   sp   è ø€ ä�TÐ$˜VÑ$€AØ$€A„IØ×Ñ�fœhÔ'Ø×Ñ˜F¤J°	Ó:€DÜ�i‰iœÓ!€D‰€GØ(€D„JØ‡G�G„IØ
‚GØ‡G�G…Iùs   ‚BB
c                 óÜ   — t        | j                  d«       | j                  d   }t        |j                  d«       t        |j                  t
        f«       t        |d   t
        dz
  «       y)zExample fileobj tests ó   Created for a testr   s   days since 2008-01-01éÿÿÿÿé   N)r   r   Ú	variablesr"   Úshaper   )Ú	ncfileobjr   s     r   Úcheck_simpler0   ?   sT   € ä�×"Ñ"Ð$9Ô:Ø×Ñ˜vÑ&€DÜ�—‘Ð5Ô6Ü�—‘œh˜[Ô)Ü��b‘œ8 A™:Õ&ó    c                 óZ   — t         j                  j                  | «      }t        ||«       y)a°  
    Asserts that the mask of arr is effectively the same as expected_mask.

    In contrast to numpy.ma.testutils.assert_mask_equal, this function allows
    testing the 'mask' of a standard numpy array (the mask in this case is treated
    as all False).

    Parameters
    ----------
    arr : ndarray or MaskedArray
        Array to test.
    expected_mask : array_like of booleans
        A list giving the expected mask.
    N)r    ÚmaÚgetmaskarrayr   )ÚarrÚexpected_maskÚmasks      r   Úassert_mask_matchesr8   G   s"   € ô  �5‰5×Ñ˜cÓ"€DÜ��}Õ%r1   c                  ód  — t        j                  «       } 	 t        j                  «       }t        j                  |«       t        dd«      5 }	 d d d «       t        dd«      5 }t        |«       d|j                  d<   d d d «       t        d«      5 }|j                  sJ ‚t        |«       t        |j                  d   d«       d d d «       t        dd«      5 }t        |j                   «       t        |«       t        |j                  d   d«       d d d «       t        dd¬«      5 }t        |j                   «       t        |«       d d d «       t        dd«      5 }t        |«      5 }t        |j                   «       t        |«       d d d «       d d d «       t        j                  «       5  t        dd«      5 }t        |d	¬«      5 }t        |j                  «       t        |«       d d d «       d d d «       d d d «       t        dd
«      5 }t        |d«      5 }t        |j                   «       t        |«       |j                  dd«       |j!                  ddd«      }d|d d  d d d «       d d d «       t        d«      5 }t        |«       t        |j"                  d   d d  d«       d d d «       t        j                  | «       t%        j&                  |«       y # 1 sw Y   �Œ’xY w# 1 sw Y   �ŒpxY w# 1 sw Y   �Œ7x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   �ŒPxY w# 1 sw Y   �ŒUxY w# 1 sw Y   �ŒZxY w# 1 sw Y   ŒùxY w# 1 sw Y   ŒýxY w# 1 sw Y   ŒÎxY w# t        j                  | «       t%        j&                  «       w xY w)Nz	simple.ncÚwÚar,   Ú	appendRanF©ÚmmapÚrbTzr+bÚapp_dimÚapp_varÚi)r@   é*   )ÚosÚgetcwdr   Úmkdtempr   r(   r   r0   Ú_attributesÚuse_mmapr   r	   ÚopenÚwarningsÚcatch_warningsr   r   r-   ÚshutilÚrmtree)ÚcwdÚtmpdirr'   ÚfobjÚvars        r   Útest_read_write_filesrR   [   s  € ä
�)‰)‹+€Cð@Ü×!Ñ!Ó#ˆÜ
�‰�ÔÜ˜ cÓ*ð 	¨aØ÷	ô ˜ cÓ*ð 	+¨aÜ˜ŒOà)*ˆA�M‰M˜+Ñ&÷	+ô ˜Ó%ð 	8¨à—:’:Ð�:Ü˜ŒOÜ˜Ÿ™ {Ñ3°QÔ7÷		8ô ˜ cÓ*ð 	8¨aÜ˜Ÿ
™
�NÔ#Ü˜ŒOÜ˜Ÿ™ {Ñ3°QÔ7÷	8ô ˜¨5Ô1ð 	°Qä˜Ÿ
™
�NÔ#Ü˜ŒO÷	ô �+˜tÓ$ð 	 ¨Ü˜TÓ"ð   aä˜AŸJ™J˜Ô'Ü˜Q”÷ ÷	 ô ×$Ñ$Ó&ñ 	$Ü�k 4Ó(ð $¨DÜ  ¨DÔ1ð $°QÜ˜AŸJ™JÔ'Ü  ”O÷$÷$÷	$ô �+˜uÓ%ð 	¨Ü˜T 3Ó'ð ¨1Ü˜AŸJ™J˜Ô'Ü˜Q”Ø×!Ñ! )¨QÔ/Ø×&Ñ& y°#°|ÓD�Ø�‘A�÷÷	ô ˜Ó%ð 	8¨Ü˜ŒOÜ˜Ÿ™ YÑ/±Ð2°BÔ7÷	8ô
 	�‰�ŒÜ�‰�fÕ÷{	ñ 	ú÷	+ñ 	+ú÷	8ñ 	8ú÷	8ñ 	8ú÷	ñ 	ú÷ ñ  ú÷	 ñ 	 ú÷$ñ $ú÷$ñ $ú÷	$ñ 	$ú÷ð ú÷	ð 	ú÷	8ð 	8ûô
 	�‰�ŒÜ�‰�fÕúsD  –5N ÁKÁN Á!K*Á<N Â3K7ÃN Ã;LÄN Ä&"LÅN ÅL+Å("LÆ
L+ÆN Æ.MÆ;MÇ	!L8Ç*MÇ2MÇ:N ÈM+ÈAMÉ'M+É/N Ê(M7Ê*N ËK'Ë"N Ë*K4Ë/N Ë7LË<N ÌLÌ	N ÌLÌN ÌL(	Ì#L+Ì+L5Ì0N Ì8MÌ=MÍM	Í
MÍMÍN ÍM(	Í$M+Í+M4Í0N Í7N Í<N Î,N/c                  óÚ  — t        «       } t        | d«      5  | j                  «       }d d d «       t        «      }t        |«      5 }t	        |«       d d d «       t        |«      }t        t        t        |dd«       t        «       }t        |dd¬«      5 }|j                  «       }d d d «       t        |«      }t        |«      5 }t	        |«       t        |j                  d«       d d d «       t        |«      }t        |d¬«      5 }t	        |«       t        |j                  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   ŒqxY w# 1 sw Y   y xY w)Nr:   ÚrTé   )Úversion)	r   r(   Úgetvaluer   r0   Úassert_raisesÚ
ValueErrorr   Úversion_byte)Úeg_sio1Ústr_valÚeg_sio2Úf2Úeg_sio3Ú	eg_sio_64Úf_64s          r   Útest_read_write_siorb   ¡   sJ  € Ü‹i€GÜ	�W˜cÓ	"ñ %Ø×"Ñ"Ó$ˆ÷%ô �gÓ€GÜ	�WÓ	ð  Ü�RÔ÷ô �gÓ€GÜ”*œk¨7°C¸Ô>ä“	€IÜ	�Y ¨QÔ	/ð '°4Ø×$Ñ$Ó&ˆ÷'ô ˜Ó €IÜ	�YÓ	ð + 4Ü�TÔÜ�T×&Ñ&¨Ô*÷+ô ˜Ó €IÜ	�Y¨Ô	*ð +¨dÜ�TÔÜ�T×&Ñ&¨Ô*÷+ð +÷+%ñ %ú÷ð ú÷'ð 'ú÷+ð +ú÷
+ð +ús;   —D0ÁD=ÂE	Ã"EÄ"E!Ä0D:Ä=EÅ	EÅEÅ!E*c                  ó  — t        «       } t        | d¬«      }d|_        |j                  dd«       |j	                  dt
        j                  d«      }d|d	<   d
|_        |j                  «        | j                  «       }d}t        ||«       y )Nr:   ©Úmoder   Údimr,   rQ   )rf   iñØÿÿr   Úds|   CDF       
      dim             a         b            var                 c         d            xØñ€)r   r   r;   r   r   r    Úint16ÚcÚsyncrW   r   )Úraw_filer'   rQ   ÚactualÚexpecteds        r   Ú
test_bytesrn   ½   s�   € Ü‹y€HÜ�H 3Ô'€Að €A„CØ×Ñ�e˜QÔØ
×
Ñ
˜5¤"§(¡(¨HÓ
5€CØ€Cˆ�FØ€C„EØ‡F�F„Hà×ÑÓ €Fð$€Hô@ �˜Õ"r1   c                  óZ  — t        t        «       d¬«      5 } | j                  dd«       | j                  ddd«      }t	        |j                  «       d«       d	|_        t	        |j                  «       d	«       d
|_        t	        |j                  «       d«       d d d «       y # 1 sw Y   y xY w)Nr:   rd   Úxr,   rQ   ÚS1©rp   ó    ó   s     )r   r   r   r   r   Ú_get_encoded_fill_valueÚ
_FillValue)r'   rQ   s     r   Útest_encoded_fill_valuerw   î   s�   € Ü	”W“Y SÔ	)ð =¨QØ	×Ñ˜#˜qÔ!Ø×Ñ˜u d¨FÓ3ˆÜ�S×0Ñ0Ó2°GÔ<Ø ˆŒÜ�S×0Ñ0Ó2°GÔ<Ø$ˆŒÜ�S×0Ñ0Ó2°GÔ<÷=÷ =ñ =ús   –BB!Â!B*c                  óÌ   — t        t        t        d«      «      D ]0  } t        | d«      5  	 d d d «       t        | dd¬«      5  	 d d d «       Œ2 y # 1 sw Y   Œ$xY w# 1 sw Y   ŒIxY w)Nz*.ncrT   Fr=   )r   ÚpjoinÚTEST_DATA_PATHr   )Úfnames    r   Útest_read_example_datar|   ù   sh   € ä”eœN¨FÓ3Ó4ò ˆÜ˜ Ó$ñ 	Ø÷	ä˜ ¨%Ô0ñ 	Ø÷	ð 	ñ÷	ð 	ú÷	ð 	ús   ©AÁAÁA	ÁA#	c                  óJ  — t        t        d«      } t        j                  «       5  d}t        j                  d|t
        «       t        | dd¬«      5 }|j                  d   }d d d «       d d d «       t        t        j                  d«       y # 1 sw Y   Œ-xY w# 1 sw Y   Œ1xY w)	Núexample_1.ncúsCannot close a netcdf_file opened with mmap=True, when netcdf_variables or arrays referring to its data still existÚignorerT   Tr=   r   rC   )ry   rz   rJ   rK   ÚfilterwarningsÚRuntimeWarningr   r-   rX   ÚRuntimeErrorÚassignValue)ÚfilenameÚmessager'   Útime_vars       r   Ú$test_itemset_no_segfault_on_readonlyrˆ     s�   € ô ”^ ^Ó4€HÜ	×	 Ñ	 Ó	"ñ +ðRˆä×Ñ ¨'´>ÔBÜ˜ 3¨TÔ2ð 	+°aØ—{‘{ 6Ñ*ˆH÷	+÷	+ô ”, × 4Ñ 4°bÕ9÷		+ð 	+ú÷	+ð +ús#   ¥,BÁBÁ!BÂB	ÂBÂB"c                  ó�  — t        «       } t        | d¬«      5 }|j                  dd«       |j                  dt        d«       d|j
                  d   d<   |j                  «        | j                  «       }d d d «       t        «      } t        | d¬«      5 }d|j
                  d   d<   d d d «       y # 1 sw Y   Œ=xY w# 1 sw Y   y xY w)	Nr:   rd   rp   rU   rr   r,   .r;   )	r   r(   r   r   Úfloatr-   r#   rW   r   )Ústreamr'   Úcontentss      r   Útest_appending_issue_gh_8625r�     s¹   € Ü‹Y€Fä	�V #Ô	&ð %¨!Ø	×Ñ˜#˜qÔ!Ø	×Ñ˜œe VÔ,Ø !ˆ�‰�CÑ˜ÑØ	�‰Œ	Ø—?‘?Ó$ˆ÷%ô �XÓ€FÜ	�V #Ô	&ð "¨!Ø !ˆ�‰�CÑ˜Ñ÷"ð "÷%ð %ú÷"ð "ús   ˜AB0ÂB<Â0B9Â<Cc            	      ó   — ddg} t        j                  d«      j                  dk(  r| j                  d«       t        j                  d«      j                  dk(  r| j                  d«       t	        t        «       d«      5 }|j                  dt        «       | D ]  }t        t        |j                  d|d«       Œ! 	 d d d «       y # 1 sw Y   y xY w)	NÚint64Úuint64Úinté   Úuintr:   r   r   )r    ÚdtypeÚitemsizeÚappendr   r   r   r   rX   rY   r   )Údtypesr'   Údts      r   Útest_write_invalid_dtyper™   !  s¯   € Ø�xÐ €FÜ	‡x�x�ƒ×Ñ 1Ò$Ø�‰�eÔÜ	‡x�x�Ó× Ñ  AÒ%Ø�‰�fÔä	”W“Y Ó	$ð O¨Ø	×Ñ˜&¤(Ô+Øò 	OˆBÜœ* a×&6Ñ&6¸ÀÀIÕNñ	O÷O÷ Oñ Oús   Á?;CÃCc                  ór  — t        «       } t        | d¬«      5 }|j                  dd«       |j                  dddg«      }d|d d  |j	                  «        t        | j                  «       «      }|j	                  «        t        | j                  «       «      }d d d «       t        k(  «       y # 1 sw Y   ŒxY w)Nr:   rd   rp   é   ÚvÚi2r,   )r   r(   r   r   r#   ÚlenrW   r	   )r‹   r'   rœ   Ú
len_singleÚ
len_doubles        r   Útest_flush_rewindr¡   .  sœ   € Ü‹Y€FÜ	�V #Ô	&ð ,¨!Ø	×Ñ˜#˜aÔ Ø×Ñ˜S $¨¨Ó.ˆØˆ‰!ˆØ	�‰Œ	Ü˜Ÿ™Ó*Ó+ˆ
Ø	�‰Œ	Ü˜Ÿ™Ó*Ó+ˆ
÷,ô ˆJ˜*Ñ$Õ%÷,ð ,ús   ˜A>B-Â-B6c                  óR  — t        t        «       d¬«      5 } | j                  dd«       | j                  dddg«       | j                  dt        j
                  dg«       | j                  dt	        j                  t        j
                  «      dg«       d d d «       y # 1 sw Y   y xY w)	Nr:   rd   rp   r›   Úv1r�   Úv2Úv3)r(   r   r   r   r    rh   r”   )r'   s    r   Útest_dtype_specifiersr¦   <  s„   € ô 
”W“Y SÔ	)ð :¨QØ	×Ñ˜#˜aÔ Ø	×Ñ˜˜t c UÔ+Ø	×Ñ˜œrŸx™x¨#¨Ô/Ø	×Ñ˜œrŸx™x¬¯©Ó1°C°5Ô9÷	:÷ :ñ :ús   –A>BÂB&c                  ó*  — t        «       } g d¢}t        | d«      5 }d|_        |j                  dd«       |j	                  ddd«      }||d d  d|_        |j                  «        | j                  «       }d d d «       t        «      } t        | d	«      5 }t        |j                  d
«       |j                  d   }t        |j
                  d«       t        |j                  d«       t        |d d  |«       d d d «       y # 1 sw Y   ŒŠxY w# 1 sw Y   y xY w)N)
r   gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?g      à?g333333ã?gffffffæ?gš™™™™™é?gÍÌÌÌÌÌì?r:   r   Ú	float_varé
   r'   )r¨   ÚmetresrT   r*   s   metres)r©   )r   r   r   r   r   r"   r#   rW   r   r-   r.   r
   )ÚioÚitemsr'   r¨   rŒ   s        r   Útest_ticket_1720r­   G  s÷   € Ü	‹€Bâ3€Eä	�R˜Ó	ð ! Ø(ˆŒ	Ø	×Ñ˜+ rÔ*Ø×$Ñ$ [°#°~ÓFˆ	Øˆ	‘!ˆØ"ˆ	ŒØ	�‰Œ	Ø—;‘;“=ˆ÷!ô 
�Ó	€BÜ	�R˜Ó	ð - Ü�Q—Y‘YÐ 5Ô6Ø—K‘K Ñ,ˆ	Ü�Y—_‘_ iÔ0Ü�Y—_‘_ eÔ,Ü˜	¡!˜ eÔ,÷-ð -÷!ð !ú÷-ð -ús   ›AC=ÂA!D	Ã=DÄ	Dc                  óÐ  ‡— t        t        d«      Št        j                  «       5  t        j                  d«       t        ‰d¬«      5 } | j                  d   d d  }~d d d «       d d d «       ˆfd„}t        j                  «       5  d}t        j                  d|t        «        |«       }d d d «       j                  «        y # 1 sw Y   ŒhxY w# 1 sw Y   ŒlxY w# 1 sw Y   Œ2xY w)	Nr~   ÚerrorTr=   Úlatc                  ón   •— t        ‰d¬«      5 } | j                  d   d d  cd d d «       S # 1 sw Y   y xY w)NTr=   r°   )r   r-   )r'   r…   s    €r   Údoitz!test_mmaps_segfault.<locals>.doith  s5   ø€ Ü˜¨Ô-ð 	)°Ø—;‘;˜uÑ%¡aÐ(÷	)÷ 	)ò 	)ús   �+«4r   r€   )
ry   rz   rJ   rK   Úsimplefilterr   r-   r�   r‚   Úsum)r'   rp   r²   r†   r…   s       @r   Útest_mmaps_segfaultrµ   ^  sÉ   ø€ Ü”^ ^Ó4€Hä	×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ&Ü˜¨Ô-ð 	°Ø—‘˜EÑ"¡1Ð%ˆAà÷	÷ô)ô
 
×	 Ñ	 Ó	"ñ ðRˆä×Ñ ¨'´>ÔBÙ‹Fˆ÷	ð
 ‡E�E…G÷	ð 	ú÷ð ú÷ð ús/   ¦#CÁ	CÁCÂ%CÃC	Ã	CÃCÃC%c                  óÞ   — t        «       } t        | d«      5 }|j                  ddg «      }|j                  du sJ |j                  «       ‚|j	                  «        d d d «       y # 1 sw Y   y xY w)Nr:   Úzerodimr�   F)r   r(   r   Úisrecr#   )r«   r'   rœ   s      r   Útest_zero_dimensional_varr¹   u  sd   € Ü	‹€BÜ	�R˜Ó	ð  Ø×Ñ˜Y¨¨bÓ1ˆð �w‰w˜%ÑÐ( §¡Ó(ÐØ	�‰Œ	÷÷ ñ ús   —AA#Á#A,c                  óV  — t        «       5  d} t        | d«      }d|j                  d<   d|j                  d<   |j                  «        t        | d«      }t	        |j                  d   d«       t	        |j                  d   d«       |j                  «        d d d «       y # 1 sw Y   y xY w)	Nzg_byte_atts.ncr:   s   grailÚholyÚfloatsÚwitchrT   s   floats©r   r   rG   r$   r   ©r…   r'   s     r   Útest_byte_gattsrÀ     s�   € ô 
‹ñ 	Ø#ˆÜ˜ #Ó&ˆØ (ˆ�‰�fÑØ!)ˆ�‰�gÑØ	�‰Œ	Ü˜ #Ó&ˆÜ�Q—]‘] 6Ñ*¨HÔ5Ü�Q—]‘] 7Ñ+¨YÔ7Ø	�‰Œ	÷	÷ 	ñ 	ús   ‹BBÂB(c                  óÀ  — t        «       5  d} t        | d«      }d|j                  d<   |j                  «        t        | d«      }t	        |j                  d   d«       d|j                  d<   |j                  «        t        | d	«      }t	        |j                  d   d«       t	        |j                  d   d«       |j                  «        d d d «       y # 1 sw Y   y xY w)
Nzappend_dat.ncr:   zwas hereÚKilroyr;   s   was heres   ZootÚnaughtyrT   r¾   r¿   s     r   Útest_open_appendrÄ   Ž  s¹   € ä	‹ñ Ø"ˆÜ˜ #Ó&ˆØ",ˆ�‰�hÑØ	�‰Œ	ô ˜ #Ó&ˆÜ�Q—]‘] 8Ñ,¨kÔ:Ø#*ˆ�‰�iÑ Ø	�‰Œ	ô ˜ #Ó&ˆÜ�Q—]‘] 8Ñ,¨kÔ:Ü�Q—]‘] 9Ñ-¨wÔ7Ø	�‰Œ	÷!÷ ñ ús   ‹C CÃCc            
      ó”  — d} t        «       5  t        dd«      5 }|j                  dd «       |j                  ddd«       |j                  d| «       |j                  ddd«      }t	        j
                  t        | «      «      |d d  |j                  d	| «       |j                  d	dd
«      }t	        j
                  t        | «      «      |d d  |j                  ddd«       |j                  «        |j                  «        d d d «       t        d«      D �]s  }t        dd«      5 }t	        j                  |j                  d   j                  |«      |j                  d   _        t	        j                  | | f|«      |j                  d   |d d …d d …f<   |j                  «        d d d «       t        d«      5 }t        |j                  d   d   |«       t        |j                  d   dd d …d d …f   j                  «       t	        j                  | | f|«      «       t        |j                  d   j                  j                  d   |dz   «       t        |j                  d   j                  j                  d   |dz   «       d d d «       �Œv t        d«      5 }t!        t"        «      5 }|j                  d   j$                  d    d d d «       j&                  }t        |j(                  d   d«       d d d «       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   �ŒmxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒfxY w# 1 sw Y   ŒExY w# 1 sw Y   y xY w)Néd   zwithRecordDimension.ncr:   r   rg   r   rp   rr   Úy)rÇ   ÚtestDatarB   )r   rp   rÇ   rU   r;   r+   r   r,   r   )r   r   r   r   r    ÚarrayÚranger#   r$   r–   r-   r   Úfullr   Úcopyr.   rX   ÚKeyErrorrG   Úvaluer%   )ÚdataSizer'   rp   rÇ   rB   ÚarÚexs          r   Útest_append_recordDimensionrÒ   £  sÝ  € Ø€Hä	‹ñ $-äÐ1°3Ó7ð 	¸1Ø×Ñ˜f dÔ+Ø×Ñ˜V S¨)Ô4Ø×Ñ˜c 8Ô,Ø× Ñ   c¨6Ó2ˆAÜ—8‘8œE (›OÓ,ˆA‰aˆDØ×Ñ˜c 8Ô,Ø× Ñ   c¨6Ó2ˆAÜ—8‘8œE (›OÓ,ˆA‰aˆDØ×Ñ˜Z¨Ð.@ÔAØ�G‰GŒIØ�G‰GŒI÷	ô �q“ó 	IˆAäÐ5°sÓ;ð ¸qÜ+-¯9©9°Q·[±[ÀÑ5H×5MÑ5MÈqÓ+Q�—‘˜FÑ#Ô(Ü35·7±7¸HÀhÐ;OÐQRÓ3S�—‘˜JÑ'¨ª1ªa¨Ñ0Ø—‘”	÷ô Ð5Ó6ð I¸!Ü˜QŸ[™[¨Ñ0°Ñ4°aÔ8Ü˜QŸ[™[¨Ñ4°RººA°XÑ>×CÑCÓEÜŸW™W h°Ð%9¸1Ó=ô?ä˜QŸ[™[¨Ñ0×5Ñ5×;Ñ;¸AÑ>ÀÀ!ÁÔDÜ˜QŸ[™[¨Ñ4×9Ñ9×?Ñ?ÀÑBÀAÀaÁCÔH÷Iñ Ið	Iô" Ð1Ó2ð 	-°aÜœxÓ(ð <¨BØ—‘˜JÑ'×3Ñ3°FÒ;÷<à—‘ˆBÜ˜Ÿ™ ™ VÔ,÷		-÷A$-ð $-÷	ñ 	ú÷ñ ú÷Iñ Iú÷<ð <ú÷	-ð 	-ú÷A$-ð $-ús…   �L>šC%K?Ã?#L>Ä"A?LÆ!L>Æ4C
LÉ>L>ÊL2Ê$L&Ë-L2Ë.L>Ë?L		ÌL>ÌLÌL>ÌL#ÌL>Ì&L/Ì+L2Ì2L;	Ì7L>Ì>Mc                  óÔ  — t        j                  ddd«      } d| d<   t         j                  j                  | d«      }t	        t
        d«      }t        |d¬	«      5 }|j                  d
   }t        |j                  d«       t        |j                  d«       t        |j                  t        j                  d«      «       |d d  j                  «       }~t        j                  |j                  «       d«      }t        ||«       d d d «       t!        «       5  d}t        |dd¬	«      }|j#                  d
t%        |«      «       |j'                  d
dd«      }d|_	        d|_        d|_
        ||d d  |j)                  «        t        |d¬	«      5 }|j                  d
   }t        |j                  d«       t        |j                  d«       t        |j                  t        j                  d«      «       t        j                  |j                  «       d«      }|d d  j                  «       }~t        ||«       d d d «       d d d «       y # 1 sw Y   �ŒDxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)Né   é   é   rÆ   é   éc   zexample_2.ncT©ÚmaskandscaleÚTemperatureé'  g{®Gáz„?rU   zms.ncr:   rB   )rÛ   )r    Úlinspacer3   Úmasked_greaterry   rz   r   r-   r   Úmissing_valueÚ
add_offsetÚscale_factorÚfloat32Ú
compressedÚroundr
   r   r   rž   r   r$   )	ÚtÚtmr{   r'   ÚTempÚfoundrm   ÚnewfnameÚtemps	            r   Útest_maskandscalerë   Ì  sû  € Ü
�‰�B˜˜BÓ€AØ€A€a�DÜ	�‰×	Ñ	˜a Ó	$€BÜ”. .Ó1€EÜ	�U¨Ô	.ð )°!Ø�{‰{˜=Ñ)ˆÜ�T×'Ñ'¨Ô.Ü�T—_‘_ bÔ)Ü�T×&Ñ&¬¯
©
°4Ó(8Ô9Ø‘Q�×"Ñ"Ó$ˆØÜ—8‘8˜BŸM™M›O¨QÓ/ˆÜ˜˜xÔ(÷)ô 
‹ñ -ØˆÜ˜ #°DÔ9ˆØ	×Ñ˜-¬¨R«Ô1Ø×Ñ ¨sÐ4DÓEˆØ!ˆÔØ ˆÔØˆŒØˆ‰QˆØ	�‰Œ	ä˜°Ô5ð 	-¸Ø—;‘;˜}Ñ-ˆDÜ˜×+Ñ+¨TÔ2Ü˜Ÿ™¨"Ô-Ü˜×*Ñ*¬B¯J©J°tÓ,<Ô=Ü—x‘x §¡£°Ó3ˆHØ™�G×&Ñ&Ó(ˆEØÜ˜E 8Ô,÷	-÷-ð -÷)ñ )ú÷*	-ð 	-ú÷-ð -ús3   ÁB)IÄA6IÆB)IÈ4IÉIÉI	ÉIÉI'c                  ó¨   — t        t        d«      } t        | d¬«      5 }|j                  d   d d  }t	        |g d¢«       d d d «       y # 1 sw Y   y xY w)Núexample_3_maskedvals.ncTrÙ   Úvar1_fillval0©FTF©ry   rz   r   r-   r8   ©r{   r'   Úvardatas      r   Ú!test_read_withValuesNearFillValueró   õ  sN   € ä”.Ð";Ó<€EÜ	�U¨Ô	.ð ;°!Ø—+‘+˜oÑ.©qÐ1ˆÜ˜GÒ%9Ô:÷;÷ ;ñ ;úó   ž!AÁAc                  óÄ   — t        t        d«      } t        | d¬«      5 }|j                  d   d d  }t	        |g d¢«       t        |g d¢«       d d d «       y # 1 sw Y   y xY w)Nrí   TrÙ   Úvar2_noFillval©FFF©r,   rU   r×   ©ry   rz   r   r-   r8   r   rñ   s      r   Útest_read_withNoFillValuerú   ü  s[   € ô ”.Ð";Ó<€EÜ	�U¨Ô	.ð '°!Ø—+‘+Ð.Ñ/±Ð2ˆÜ˜GÒ%:Ô;Ü�WšgÔ&÷'÷ 'ñ 'ús   ž/AÁAc                  óÊ   — d} t        t        d«      }t        |d¬«      5 }|j                  d   d d  }t	        |g d¢«       t        || ddg«       d d d «       y # 1 sw Y   y xY w)	NrÜ   rí   TrÙ   Úvar3_fillvalAndMissingValue)TFFrU   r×   rù   )ÚIRRELEVANT_VALUEr{   r'   rò   s       r   Ú&test_read_withFillValueAndMissingValuerþ     si   € ð ÐÜ”.Ð";Ó<€EÜ	�U¨Ô	.ð 8°!Ø—+‘+Ð;Ñ<¹QÐ?ˆÜ˜GÒ%9Ô:Ü�WÐ/°°AÐ6Ô7÷8÷ 8ñ 8ús    0AÁA"c                  ó¨   — t        t        d«      } t        | d¬«      5 }|j                  d   d d  }t	        |g d¢«       d d d «       y # 1 sw Y   y xY w)Nrí   TrÙ   Úvar4_missingValuerï   rð   rñ   s      r   Útest_read_withMissingValuer    sQ   € ô ”.Ð";Ó<€EÜ	�U¨Ô	.ð ;°!Ø—+‘+Ð1Ñ2±1Ð5ˆÜ˜GÒ%9Ô:÷;÷ ;ñ ;úrô   c                  ó¨   — t        t        d«      } t        | d¬«      5 }|j                  d   d d  }t	        |g d¢«       d d d «       y # 1 sw Y   y xY w)Nrí   TrÙ   Úvar5_fillvalNaNrï   rð   rñ   s      r   Útest_read_withFillValNaNr    sO   € Ü”.Ð";Ó<€EÜ	�U¨Ô	.ð ;°!Ø—+‘+Ð/Ñ0±Ð3ˆÜ˜GÒ%9Ô:÷;÷ ;ñ ;úrô   c                  ó¨   — t        t        d«      } t        | d¬«      5 }|j                  d   d d  }t	        |g d¢«       d d d «       y # 1 sw Y   y xY w)Nrí   TrÙ   Ú	var6_charrï   rð   rñ   s      r   Útest_read_withCharr    sN   € Ü”.Ð";Ó<€EÜ	�U¨Ô	.ð ;°!Ø—+‘+˜kÑ*©1Ð-ˆÜ˜GÒ%9Ô:÷;÷ ;ñ ;úrô   c                  ó¶   — t        t        d«      } t        | d¬«      5 }|j                  d   d d  }t	        |ddgddgddgg«       d d d «       y # 1 sw Y   y xY w)Nrí   TrÙ   Úvar7_2dFrð   rñ   s      r   Útest_read_with2dVarr
  #  sd   € Ü”.Ð";Ó<€EÜ	�U¨Ô	.ð U°!Ø—+‘+˜iÑ(©Ð+ˆÜ˜G t¨U m°e¸U°^ÀeÈTÀ]Ð%SÔT÷U÷ Uñ Uús   ž(AÁAc                  óÆ   — t        t        d«      } t        | dd¬«      5 }|j                  d   d d  }t	        |g d¢«       t        |g d¢«       d d d «       y # 1 sw Y   y xY w)Nrí   F)rÚ   r>   rü   r÷   rø   rù   rñ   s      r   Útest_read_withMaskAndScaleFalser  )  s_   € ô ”.Ð";Ó<€Eô 
�U¨°UÔ	;ð )¸qØ—+‘+Ð;Ñ<¹QÐ?ˆÜ˜GÒ%:Ô;Ü�WšiÔ(÷)÷ )ñ )ús   Ÿ/AÁA )>Ú__doc__rD   Úos.pathr   ry   r   rL   r   rJ   r«   r   r   Ú
contextlibr   r   Únumpyr    Únumpy.testingr	   r
   r   Úpytestr   rX   Úscipy.ior   Ú__file__rz   r   r   ÚmarkÚthread_unsafeÚ
pytestmarkr   r(   r0   r8   rR   rb   rn   rw   r|   rˆ   r�   r™   r¡   r¦   r­   rµ   r¹   rÀ   rÄ   rÒ   rë   ró   rú   rþ   r  r  r  r
  r  © r1   r   ú<module>r     s  ðÙ Û 	ß *Û Û Û Ý Ý ß ,ã ß @Ñ @ã Ý *å  á‘w˜xÓ(¨&Ó1€à€Ø€
ð �[‰[×&Ñ&€
ð ñó ðð* ñ	ó ð	ò'ò&ò(CòL+ò8.#òb=òò:ò "ò
Oò&ò:ò-ò.ò.òòò*'-òR"-òR;ò'ò8ò;ò;ò;òUó	)r1   