@@ -313,6 +313,47 @@ def test_surf_rate_parameter_format(self):
313313 assert "SURF.surface.particle number concentration.# m-3" in conds ["rate_parameters" ]
314314 assert conds ["rate_parameters" ]["SURF.surface.particle number concentration.# m-3" ] == 1e12
315315
316+ def test_integer_values_converted_to_float64 (self ):
317+ """Test that integer values (like 0) are converted to np.float64."""
318+ import numpy as np
319+
320+ manager = ConditionsManager ()
321+
322+ # Test with inline data containing integer 0
323+ data_block = {
324+ "headers" : ["time.s" , "ENV.temperature.K" , "PHOTO.rate1.s-1" ],
325+ "rows" : [[0 , 300.0 , 0 ]] # Integer 0 values
326+ }
327+ manager ._load_inline_data (data_block )
328+
329+ # Check that values are stored as float64
330+ df = manager ._df
331+ assert df ["time.s" ].dtype == np .float64
332+ assert df ["ENV.temperature.K" ].dtype == np .float64
333+ assert df ["PHOTO.rate1.s-1" ].dtype == np .float64
334+
335+ # Test with CSV-like data
336+ with tempfile .TemporaryDirectory () as tmpdir :
337+ csv_content = """time.s,ENV.temperature.K,PHOTO.rate2.s-1
338+ 0,298.15,0
339+ 3600,310.0,1e-5
340+ """
341+ csv_path = os .path .join (tmpdir , "test.csv" )
342+ with open (csv_path , 'w' ) as f :
343+ f .write (csv_content )
344+
345+ manager2 = ConditionsManager ()
346+ manager2 ._read_csv (csv_path )
347+
348+ df2 = manager2 ._df
349+ assert df2 ["time.s" ].dtype == np .float64
350+ assert df2 ["ENV.temperature.K" ].dtype == np .float64
351+ assert df2 ["PHOTO.rate2.s-1" ].dtype == np .float64
352+
353+ # Verify the values are correct
354+ assert df2 .loc [0 , "time.s" ] == 0.0
355+ assert df2 .loc [0 , "PHOTO.rate2.s-1" ] == 0.0
356+
316357
317358if __name__ == "__main__" :
318359 pytest .main ([__file__ , "-v" ])
0 commit comments