@@ -18,7 +18,7 @@ def experiment(self):
1818 experiment = Experiment (name = "test_experiment" , data = data )
1919 return experiment
2020
21- def test_init (self , experiment ):
21+ def test_init_array (self , experiment ):
2222 # THEN EXPECT
2323 assert experiment .name == "test_experiment"
2424 assert isinstance (experiment ._data , sc .DataArray )
@@ -31,6 +31,31 @@ def test_init(self, experiment):
3131 sc .array (dims = ["Q" , "energy" ], values = np .ones ((10 , 11 ))),
3232 )
3333
34+ def test_init_string (self , tmp_path ):
35+ # WHEN
36+ Q = sc .linspace ("Q" , 0.5 , 1.5 , num = 10 , unit = "1/Angstrom" )
37+ energy = sc .linspace ("energy" , - 5 , 5 , num = 11 , unit = "meV" )
38+ values = sc .array (dims = ["Q" , "energy" ], values = np .ones ((10 , 11 )))
39+ data = sc .DataArray (data = values , coords = {"Q" : Q , "energy" : energy })
40+
41+ filename = tmp_path / "test_experiment.h5"
42+ sc .io .save_hdf5 (data , filename )
43+
44+ # THEN
45+ experiment = Experiment (name = "loaded_experiment" , data = str (filename ))
46+
47+ # EXPECT
48+ assert experiment .name == "loaded_experiment"
49+ assert isinstance (experiment ._data , sc .DataArray )
50+ assert "Q" in experiment ._data .dims
51+ assert "energy" in experiment ._data .dims
52+ assert experiment ._data .sizes ["Q" ] == 10
53+ assert experiment ._data .sizes ["energy" ] == 11
54+ assert sc .identical (
55+ experiment ._data .data ,
56+ sc .array (dims = ["Q" , "energy" ], values = np .ones ((10 , 11 ))),
57+ )
58+
3459 def test_init_no_data (self ):
3560 # WHEN
3661 experiment = Experiment (name = "empty_experiment" )
@@ -60,6 +85,21 @@ def test_load_hdf5(self, tmp_path, experiment):
6085 assert sc .identical (data_to_save , loaded_data )
6186 assert new_experiment .name == "loaded_data"
6287
88+ def test_load_hdf5_invalid_name_raises (self , experiment ):
89+ # WHEN / THEN EXPECT
90+ with pytest .raises (TypeError ):
91+ experiment .load_hdf5 ("some_file.h5" , name = 123 )
92+
93+ def test_load_hdf5_invalid_filename_raises (self , experiment ):
94+ # WHEN / THEN EXPECT
95+ with pytest .raises (TypeError ):
96+ experiment .load_hdf5 (123 )
97+
98+ def test_load_hdf5_invalid_file_raises (self , experiment ):
99+ # WHEN / THEN EXPECT
100+ with pytest .raises (OSError ):
101+ experiment .load_hdf5 ("non_existent_file.h5" )
102+
63103 def test_save_hdf5 (self , tmp_path , experiment ):
64104 # WHEN THEN
65105 filename = tmp_path / "saved_data.h5"
@@ -70,27 +110,37 @@ def test_save_hdf5(self, tmp_path, experiment):
70110 original_data = experiment .data
71111 assert sc .identical (original_data , loaded_data )
72112
73- def test_remove_data (self , experiment ):
113+ def test_save_hdf5_default_name (self , tmp_path , experiment ):
114+ # WHEN THEN
115+ current_dir = tmp_path
116+ experiment .name = "default_name_experiment"
117+ expected_filename = current_dir / "default_name_experiment.h5"
118+ experiment .save_hdf5 ()
119+
120+ # EXPECT
121+ loaded_data = sc .io .load_hdf5 (str (expected_filename ))
122+ original_data = experiment .data
123+ assert sc .identical (original_data , loaded_data )
124+
125+ def test_save_hdf5_no_data_raises (self ):
74126 # WHEN
75- experiment . remove_data ( )
127+ experiment = Experiment ( name = "no_data_experiment" )
76128
77129 # THEN EXPECT
78- assert experiment ._data is None
130+ with pytest .raises (AttributeError ):
131+ experiment .save_hdf5 ("should_fail.h5" )
79132
80- def test_load_hdf5_invalid_filename (self , experiment ):
133+ def test_save_hdf5_invalid_filename_raises (self , experiment ):
81134 # WHEN / THEN EXPECT
82135 with pytest .raises (TypeError ):
83- experiment .load_hdf5 (123 )
136+ experiment .save_hdf5 (123 )
84137
85- def test_load_hdf5_invalid_file (self , experiment ):
86- # WHEN / THEN EXPECT
87- with pytest .raises (OSError ):
88- experiment .load_hdf5 ("non_existent_file.h5" )
138+ def test_remove_data (self , experiment ):
139+ # WHEN
140+ experiment .remove_data ()
89141
90- def test_save_hdf5_invalid_filename (self , experiment ):
91- # WHEN / THEN EXPECT
92- with pytest .raises (TypeError ):
93- experiment .save_hdf5 (123 )
142+ # THEN EXPECT
143+ assert experiment ._data is None
94144
95145 def test_repr (self , experiment ):
96146 # WHEN
0 commit comments