+
    /ieL                        R t ^ RIt^ RIHtHt ^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIHt ^ RIt^ RIHtHtHtHtHt ^ RIt^ RIHt ^ RIHt ^ R	IHt ]! ]! ]4      R
4      t^tRt ]PB                  PD                  t#]R 4       t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1R t2R t3R t4R t5R t6R t7R  t8R! t9R" t:R# t;R$ t<R% t=R& t>R' t?R# )(zTests for netcdf N)joindirname)BytesIO)glob)contextmanager)assert_assert_allcloseassert_equalbreak_cyclesIS_PYPY)raises)netcdf_file)
in_tempdirdatabc               /     "   \        V / VB pR Vn        VP                  R\        4       VP	                  R\
        R4      p\        P                  ! \        4      VR&   RVn        VP                  4        Vx  VP                  4        R# 5i)Created for a testtimeNNNzdays since 2008-01-01Nr   )r   historycreateDimensionN_EG_ELScreateVariable
VARTYPE_EGnparangeunitsflushclose)argskwargsfr   s   *,  X/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/io/tests/test_netcdf.pymake_simpler$      so     T$V$A$AIfh'FJ	:Dii!DG(DJGGI
GGGIs   B
Bc                    \        V P                  R4       V P                  R,          p\        VP                  R4       \        VP                  \
        34       \        VR,          \
        ^,
          4       R# )zExample fileobj tests    Created for a testr   s   days since 2008-01-01N)r	   r   	variablesr   shaper   )	ncfileobjr   s   & r#   check_simpler+   *   sT    ""$9:v&D56h[)b8A:&    c                Z    \         P                  P                  V 4      p\        W!4       R# )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_matchesr3   2   s       55c"D%r,   c                  4
   \         P                  ! 4       p  \        P                  ! 4       p\         P                  ! V4       \        R R4      ;_uu_ 4       p RRR4       \        R R4      ;_uu_ 4       p\        V4       ^VP                  R&   RRR4       \        R 4      ;_uu_ 4       p\        VP                  \        '       * 4       \        V4       \        VP                  R,          ^4       RRR4       \        R R4      ;_uu_ 4       p\        VP                  '       * 4       \        V4       \        VP                  R,          ^4       RRR4       \        R RR7      ;_uu_ 4       p\        VP                  '       * 4       \        V4       RRR4       \        R R4      ;_uu_ 4       p\        V4      ;_uu_ 4       p\        VP                  '       * 4       \        V4       RRR4       RRR4       \        P                  ! 4       ;_uu_ 4        \        '       d   \        P                   ! RR	\"        4       \        R R4      ;_uu_ 4       p\        VR
R7      ;_uu_ 4       p\        VP                  4       \        V4       RRR4       RRR4       RRR4       \        R R4      ;_uu_ 4       p\        VR4      ;_uu_ 4       p\        VP                  '       * 4       \        V4       VP%                  R^4       VP'                  RRR4      p^*VR&   RRR4       RRR4       \        R 4      ;_uu_ 4       p\        V4       \        VP(                  R,          R,          ^*4       RRR4       \        '       d   \+        4        \+        4        \         P                  ! V 4       \,        P.                  ! V4       R#   + '       g   i     ELv; i  + '       g   i     ELS; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELH; i  + '       g   i     ELT; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELz; i  + '       g   i     EL; i  + '       g   i     ELO; i  \        '       d   \+        4        \+        4        \         P                  ! T 4       \,        P.                  ! X4       i ; i)z	simple.ncwNa	appendRanFmmaprbignorez2Cannot close a netcdf_file opened with mmap=True.*Tzr+bapp_dimapp_varir   )r<   )osgetcwdtempfilemkdtempchdirr$   r   r+   _attributesr	   use_mmapr   r   openwarningscatch_warningsfilterwarningsRuntimeWarningr   r   r(   r
   shutilrmtree)cwdtmpdirr"   fobjvars        r#   test_read_write_filesrQ   F   sS   
))+CK!!#
c**a + c**aO)*AMM+& + %%[1O{3Q7	 & c**a

N#O{3Q7 + 511Q

N#O 2 +t$$T""aAJJ'Q # % $$&&w''H"
 k4((D D11QAJJ' O 2 ) ' +u%%T3''1AJJ'Q!!)Q/&&y#|DA ( & %%OY/2B7 &
 7 NN
fQ +** +** &%% +** 211 #"" %$$ 211 )(( '&& ('' &%% &%%
 7 NN
fsG  ?S	 OS	 4OS	 *AO-2S	 APS	 .&PS	 0P=&P)	*P=2%S	 =Q9Q%	*!QQ%	Q9S	 7R!AR	R!$S	 ?0R5/S	 O		S	 O*	$	S	 -O>	8	S	 P		S	 P&	 	S	 )P:4	P==Q		S	 Q"	Q%	%Q60	Q99R
		S	 R	R!!R2	,	S	 5S	 	S	 	ATc                  v   \        4       p \        V R 4      ;_uu_ 4        V P                  4       pRRR4       \        X4      p\        V4      ;_uu_ 4       p\	        V4       RRR4       \        V4      p\        \        \        VRR4       \        4       p\        VR ^R7      ;_uu_ 4       pVP                  4       pRRR4       \        V4      p\        V4      ;_uu_ 4       p\	        V4       \        VP                  ^4       RRR4       \        V4      p\        V^R7      ;_uu_ 4       p\	        V4       \        VP                  ^4       RRR4       R#   + '       g   i     EL2; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r5   NrT)version)	r   r$   getvaluer   r+   assert_raises
ValueErrorr	   version_byte)eg_sio1str_valeg_sio2f2eg_sio3	eg_sio_64f_64s          r#   test_read_write_sior`      s=   iG	Wc	"	"""$ 
# gG	W		R 
 gG*k7C>	I	YQ	/	/4$$& 
0  I	Y		4TT&&* 
   I	Y	*	*dTT&&* 
+	*+ 
#	"	" 
		 
0	/ 
 	
 
+	*	*s;   EE-,F#"F-"F'E*	-E>	F	F$	'F8	c                     \        4       p \        V R R7      pRVn        VP                  R^4       VP	                  R\
        P                  R4      pR	V^ &   RVn        VP                  4        V P                  4       pRp\        W44       R# )
r5   moder   dimrP   ds|   CDF       
      dim             a         b            var                 c         d            xN)rd   i)r   r   r6   r   r   r   int16csyncrU   r	   )raw_filer"   rP   actualexpecteds        r#   
test_bytesrl      s    yHH3'A ACeQ


5"((H
5CCFCEFFH F$H@ "r,   c                  |   \        \        4       R R7      ;_uu_ 4       p V P                  R^4       V P                  RRR	4      p\	        VP                  4       R4       RVn        \	        VP                  4       R4       RVn        \	        VP                  4       R4       RRR4       R#   + '       g   i     R# ; i)
r5   rb   xrP   S1       s     Nrn   )r   r   r   r   r	   _get_encoded_fill_value
_FillValue)r"   rP   s     r#   test_encoded_fill_valueru      s    	WYS	)	)Q	#q!udF3S002G< S002G<$S002G< 
*	)	)	)s   BB**B;	c                     \        \        \        R 4      4       FA  p \        V R4      ;_uu_ 4         RRR4       \        V RRR7      ;_uu_ 4         RRR4       KC  	  R#   + '       g   i     L6; i  + '       g   i     Kk  ; i)z*.ncrS   NFr8   )r   pjoinTEST_DATA_PATHr   )fnames    r#   test_read_example_datarz      sX    eNF34$$ %%00 10 5$$000s   A!A4!A14Bc            	         \        \        R 4      p \        P                  ! 4       ;_uu_ 4        Rp\        P                  ! RV\
        4       \        V RRR7      ;_uu_ 4       pVP                  R,          pRRR4       RRR4       \        \        XP                  ^*4       R#   + '       g   i     L5; i  + '       g   i     L@; i)example_1.ncsCannot close a netcdf_file opened with mmap=True, when netcdf_variables or arrays referring to its data still existr;   rS   Tr8   r   N)rw   rx   rG   rH   rI   rJ   r   r(   rV   RuntimeErrorassignValue)filenamemessager"   time_vars       r#   $test_itemset_no_segfault_on_readonlyr      s     ^^4H		 	 	"	"R'>B3T22a{{6*H 3	 
# , 4 4b9	 32	 
#	"s#   5B7#B$	7B7$B4/B77C	c                     \        4       p \        V R R7      ;_uu_ 4       pVP                  R^4       VP                  R\        R4       ^VP
                  R,          R&   VP                  4        V P                  4       pRRR4       \        X4      p \        V RR7      ;_uu_ 4       p^VP
                  R,          R&   RRR4       R#   + '       g   i     LQ; i  + '       g   i     R# ; i)r5   rb   rn   .Nr6   rr   )	r   r$   r   r   floatr(   r   rU   r   )streamr"   contentss      r#   test_appending_issue_gh_8625r     s    YF	V#	&	&!	#q!	eV, !C		??$ 
' XF	V#	&	&! !C 
'	& 
'	& 
'	&	&s   A C	(C	C	C-	c            
         R R.p \         P                  ! R4      P                  ^8X  d   V P                  R4       \         P                  ! R4      P                  ^8X  d   V P                  R4       \	        \        4       R4      ;_uu_ 4       pVP                  R\        4       V  F   p\        \        VP                  RVR4       K"  	  RRR4       R#   + '       g   i     R# ; i)int64uint64intuintr5   r   Nr   )r   dtypeitemsizeappendr   r   r   r   rV   rW   r   )dtypesr"   dts      r#   test_write_invalid_dtyper     s    x F	xx1$e	xx  A%f	WY	$	$	&(+B*a&6&6IN  
%	$	$	$s   =CC%	c                     \        4       p \        V R R7      ;_uu_ 4       pVP                  R^4       VP                  RRR.4      p^VR&   VP	                  4        \        V P                  4       4      pVP	                  4        \        V P                  4       4      pRRR4       \        XX8H  4       R#   + '       g   i     L ; i)r5   rb   rn   vi2r   N)r   r$   r   r   r   lenrU   r   )r   r"   r   
len_single
len_doubles        r#   test_flush_rewindr   $  s    YF	V#	&	&!	#a S$.!		*+
		*+
 
' J*$% 
'	&s   A>B66C	c                  v   \        \        4       R R7      ;_uu_ 4       p V P                  R^4       V P                  RRR.4       V P                  R\        P
                  R.4       V P                  R\        P                  ! \        P
                  4      R.4       RRR4       R#   + '       g   i     R# ; i)r5   rb   rn   v1r   v2v3N)r$   r   r   r   r   rf   r   )r"   s    r#   test_dtype_specifiersr   2  s     
WYS	)	)Q	#a 	tcU+	rxx#/	rxx1C59	 
*	)	)	)s   A?B''B8	c                  x   \        4       p . ROp\        V R4      ;_uu_ 4       pRVn        VP                  R^
4       VP	                  RRR4      pWR&   RVn        VP                  4        V P                  4       pRRR4       \        X4      p \        V R4      ;_uu_ 4       p\        VP                  R	4       VP                  R,          p\        VP
                  R
4       \        VP                  R4       \        VR,          V4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)    r5   r   	float_varr"   r   metresNrS   r&   s   metres)
r   g?g?g333333?g?g      ?g333333?gffffff?g?g?)r   )
   )r   r   r   r   r   r   r   rU   r	   r(   r)   r   )ioitemsr"   r   r   s        r#   test_ticket_1720r   =  s    	B3E	R		(		+r*$$[#~F	!"			;;= 
 
	B	R		QYY 56KK,	Y__i0Y__e,	!e, 
	 
	 
		s   AD"A)D(D%	(D9	c            	      ^  a \        \        R 4      o\        '       gv   \        P                  ! 4       ;_uu_ 4        \        P
                  ! R4       \        SRR7      ;_uu_ 4       p V P                  R,          R,          p?RRR4       RRR4       V3R lp\        P                  ! 4       ;_uu_ 4        Rp\        P                  ! R	V\        4       V! 4       pRRR4       XP                  4        R#   + '       g   i     L{; i  + '       g   i     L; i  + '       g   i     LH; i)
r|   errorTr8   latr   Nc                     < \        SR R7      ;_uu_ 4       p V P                  R,          R,          uuRRR4       #   + '       g   i     R# ; i)Tr8   r   r   N)r   r(   )r"   r   s    r#   doit!test_mmaps_segfault.<locals>.doit_  s2    --;;u%a( .---s	   <A	r}   r;   )rw   rx   r   rG   rH   simplefilterr   r(   rI   rJ   sum)r"   rn   r   r   r   s       @r#   test_mmaps_segfaultr   T  s    ^^4H7$$&&!!'*XD11QKK&q) 2 ')
 
	 	 	"	"R'>BF	 
#
 EEG 21 '& 
#	"s/   ,D	'C6	D	6&D6DD		D	D,	c                     \        4       p \        V R 4      ;_uu_ 4       pVP                  RR. 4      pVP                  RJ g   Q VP                  4       hVP	                  4        RRR4       R#   + '       g   i     R# ; i)r5   zerodimr   FN)r   r$   r   isrecr   )r   r"   r   s      r#   test_zero_dimensional_varr   l  sa    	B	R		Yb1 ww%((		 
			s   AA..A?	c                     \        4       ;_uu_ 4        R p \        V R4      pRVP                  R&   RVP                  R&   VP                  4        \        V R4      p\	        VP                  R,          R4       \	        VP                  R,          R4       VP                  4        RRR4       R#   + '       g   i     R# ; i)	zg_byte_atts.ncr5   s   grailholyfloatswitchrS   s   floatsNr   r   rD   r   r	   r   r"   s     r#   test_byte_gattsr   v  s     
##& (f!)g		#&Q]]6*H5Q]]7+Y7		 
s   BB00C	c                     \        4       ;_uu_ 4        R p \        V R4      pRVP                  R&   VP                  4        \        V R4      p\	        VP                  R,          R4       RVP                  R&   VP                  4        \        V R4      p\	        VP                  R,          R4       \	        VP                  R,          R4       VP                  4        R	R	R	4       R	#   + '       g   i     R	# ; i)
zappend_dat.ncr5   zwas hereKilroyr6   s   was heres   ZootnaughtyrS   Nr   r   s     r#   test_open_appendr     s    	"#&",h		 #&Q]]8,k:#*i 		 #&Q]]8,k:Q]]9-w7		! 
s   CC))C:	c                     ^dp \        4       ;_uu_ 4        \        RR4      ;_uu_ 4       pVP                  RR4       VP                  RRR4       VP                  RV 4       VP                  RRR4      p\        P
                  ! \        V 4      4      VR&   VP                  RV 4       VP                  RRR4      p\        P
                  ! \        V 4      4      VR&   VP                  R	R
R4       VP                  4        VP                  4        RRR4       \        ^4       EF  p\        RR4      ;_uu_ 4       p\        P                  ! VP                  R,          P                  V4      VP                  R,          n        \        P                  ! W 3V4      VP                  R	,          VRR3&   VP                  4        RRR4       \        R4      ;_uu_ 4       p\        VP                  R,          R,          V4       \        VP                  R	,          R,          P                  4       \        P                  ! W 3V4      4       \        VP                  R,          P                  P                  ^ ,          V^,           4       \        VP                  R	,          P                  P                  ^ ,          V^,           4       RRR4       EK  	  \        R4      ;_uu_ 4       p\!        \"        4      ;_uu_ 4       pVP                  R	,          P$                  R,           RRR4       XP&                  p\        VP(                  ^ ,          R4       RRR4       RRR4       R#   + '       g   i     ELb; i  + '       g   i     EL; i  + '       g   i     EK  ; i  + '       g   i     L; i  + '       g   i     Lj; i  + '       g   i     R# ; i)d   zwithRecordDimension.ncr5   r   Nre   rn   r   ytestDatar>   r6   r   r   rr   )r   )r   rn   r   r'   )r'   r   r   )r   r   r   r   r   arrayranger   r   r   r(   r   fullr	   copyr)   rV   KeyErrorrD   valuer    )dataSizer"   rn   r   r>   arexs          r#   test_append_recordDimensionr     s   H	13771fd+VS)4c8,  c62A88E(O,AaDc8,  c62A88E(O,AaDZ.@AGGIGGI 8 qA5s;;q+-99Q[[5H5M5Mq+QF#(3577H;OQR3SJ'1a0	 < 566!Q[[04a8Q[[4X>CCEWWh%91=?Q[[055;;A>!DQ[[499??BAaCH 76 " 122ax((BJ'33F; )BV,	 3A 
777 <;; 766 )( 32A 
s   OC'M*	+O<BM>OC+N
 O*N:	%N''1N:	O*M;5	O>N		ON$
O'N72N:	:O
OO	c            
      V   \         P                  ! ^^^4      p ^dV ^&   \         P                  P                  V ^c4      p\	        \
        R4      p\        VRR7      ;_uu_ 4       pVP                  R,          p\        VP                  R4       \        VP                  ^4       \        VP                  \         P                  ! R4      4       VR,          P                  4       p?\         P                  ! VP                  4       ^4      p\        WV4       RRR4       \!        4       ;_uu_ 4        R	p\        VR
RR7      pVP#                  R\%        V4      4       VP'                  RRR4      pRVn	        RVn        ^Vn
        WR&   VP)                  4        \        VRR7      ;_uu_ 4       pVP                  R,          p\        VP                  R4       \        VP                  ^4       \        VP                  \         P                  ! R4      4       \         P                  ! VP                  4       ^4      pVR,          P                  4       p?\        WV4       RRR4       RRR4       R#   + '       g   i     ELd; i  + '       g   i     L.; i  + '       g   i     R# ; i)   zexample_2.ncTmaskandscaleTemperature'  g{Gz?r   Nzms.ncr5   r>   )r   )r   linspacer.   masked_greaterrw   rx   r   r(   r	   missing_value
add_offsetscale_factorfloat32
compressedroundr   r   r   r   r   r   )	ttmry   r"   Tempfoundrk   newfnametemps	            r#   test_maskandscaler     s   
BBAAaD			a	$B..1E	U	.	.!{{=)T''.T__b)T&&

4(89Q""$88BMMOQ/( 
/ 
#D9	-R1s4DE! Q		55;;}-D++T2"-**BJJt,<=xx3HG&&(EE, 6 
 
/	.	.* 65 
s3   #B2I0/A=J,B2J	J0J	JJJ(	c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       RRR4       R#   + '       g   i     R# ; i)example_3_maskedvals.ncTr   var1_fillval0r   NFTFrw   rx   r   r(   r3   ry   r"   vardatas      r#   !test_read_withValuesNearFillValuer     sK    .";<E	U	.	.!++o.q1G%9: 
/	.	.	.   )AA*	c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       \        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   Tr   var2_noFillvalr   NFFF         rw   rx   r   r(   r3   r	   r   s      r#   test_read_withNoFillValuer     sX     .";<E	U	.	.!++./2G%:;Wg& 
/	.	.	.s   7A''A8	c                      R p \        \        R4      p\        VRR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       \        W0^^.4       RRR4       R#   + '       g   i     R# ; i)r   r   Tr   var3_fillvalAndMissingValuer   N)TFFr   )IRRELEVANT_VALUEry   r"   r   s       r#   &test_read_withFillValueAndMissingValuer     sc     .";<E	U	.	.!++;<Q?G%9:WA67 
/	.	.	.s   7A))A:	c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   Tr   var4_missingValuer   Nr   r   r   s      r#   test_read_withMissingValuer     sN     .";<E	U	.	.!++1215G%9: 
/	.	.	.r   c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   Tr   var5_fillvalNaNr   Nr   r   r   s      r#   test_read_withFillValNaNr     sL    .";<E	U	.	.!++/03G%9: 
/	.	.	.r   c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   Tr   	var6_charr   Nr   r   r   s      r#   test_read_withCharr    sK    .";<E	U	.	.!++k*1-G%9: 
/	.	.	.r   c            	          \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        VRR.RR.RR..4       RRR4       R#   + '       g   i     R# ; i)r   Tr   var7_2dr   FNr   r   s      r#   test_read_with2dVarr    s]    .";<E	U	.	.!++i(+GtUmeU^eT]%ST 
/	.	.	.s   0A  A1	c                      \        \        R 4      p \        V RRR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       \        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   F)r   r9   r   r   Nr   r   r   r   s      r#   test_read_withMaskAndScaleFalser     s\     .";<E 
UU	;	;q++;<Q?G%:;Wi( 
<	;	;	;s   7A((A9	)@__doc__r?   os.pathr   rw   r   rK   rA   rG   r   r   r   
contextlibr   numpyr   numpy.testingr   r   r	   r
   r   pytestr   rV   scipy.ior   scipy._lib._tmpdirsr   __file__rx   r   r   markthread_unsafe
pytestmarkr$   r+   r3   rQ   r`   rl   ru   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r,   r#   <module>r     s    	 *      % 2 2  *   *wx(&1
 [[&&
 	 	'&(Nb+8.#b=: "
O&:-.0*'-R"-R;'8;;;U	)r,   