@@ -19,7 +19,10 @@ def experiment(self):
1919 return experiment
2020
2121 def test_get_data (self , experiment ):
22+ # WHEN
2223 data = experiment .get_data ("test_data" )
24+
25+ # THEN EXPECT
2326 assert isinstance (data , sc .DataArray )
2427 assert "Q" in data .dims
2528 assert "energy" in data .dims
@@ -28,3 +31,81 @@ def test_get_data(self, experiment):
2831 assert sc .identical (
2932 data .data , sc .array (dims = ["Q" , "energy" ], values = np .ones ((10 , 11 )))
3033 )
34+
35+ def test_remove_all_data (self , experiment ):
36+ # WHEN
37+ experiment .remove_all_data ()
38+ data = experiment .get_data ()
39+
40+ # THEN EXPECT
41+ assert data == {}
42+
43+ def test_get_all_data (self , experiment ):
44+ # WHEN
45+ data = experiment .get_data ()
46+
47+ # THEN EXPECT
48+ assert isinstance (data , dict )
49+ assert "test_data" in data
50+ assert isinstance (data ["test_data" ], sc .DataArray )
51+
52+ def test_load_hdf5 (self , tmp_path , experiment ):
53+ # WHEN
54+ filename = tmp_path / "test.h5"
55+ data_to_save = experiment .get_data ("test_data" )
56+ sc .io .save_hdf5 (data_to_save , filename )
57+
58+ # THEN
59+ new_experiment = Experiment ("new_experiment" )
60+ new_experiment .load_hdf5 (str (filename ), "loaded_data" )
61+ loaded_data = new_experiment .get_data ("loaded_data" )
62+
63+ # EXPECT
64+ assert sc .identical (data_to_save , loaded_data )
65+
66+ def test_save_hdf5 (self , tmp_path , experiment ):
67+ # WHEN THEN
68+ filename = tmp_path / "saved_data.h5"
69+ experiment .save_hdf5 ("test_data" , str (filename ))
70+
71+ # EXPECT
72+ loaded_data = sc .io .load_hdf5 (str (filename ))
73+ original_data = experiment .get_data ("test_data" )
74+ assert sc .identical (original_data , loaded_data )
75+
76+ def test_save_all_hdf5 (self , tmp_path , experiment ):
77+ # WHEN THEN
78+ folder = tmp_path / "data_folder"
79+ experiment .save_all_hdf5 (str (folder ))
80+
81+ # EXPECT
82+ import os
83+
84+ files = os .listdir (folder )
85+ assert "test_data.h5" in files
86+ loaded_data = sc .io .load_hdf5 (str (folder / "test_data.h5" ))
87+ original_data = experiment .get_data ("test_data" )
88+ assert sc .identical (original_data , loaded_data )
89+
90+ def test_append_data (self , experiment ):
91+ # WHEN
92+ name = "new_data"
93+ Q = sc .linspace ("Q" , 1.0 , 2.0 , num = 5 , unit = "1/Angstrom" )
94+ energy = sc .linspace ("energy" , - 10 , 10 , num = 6 , unit = "meV" )
95+ values = sc .array (dims = ["Q" , "energy" ], values = np .ones ((5 , 6 )) * 2 )
96+ new_data = sc .DataArray (data = values , coords = {"Q" : Q , "energy" : energy })
97+
98+ # THEN
99+ experiment .append_data (new_data , name )
100+
101+ # EXPECT
102+ assert experiment ._data .keys () == {"test_data" , "new_data" }
103+ data = experiment .get_data (name )
104+ assert isinstance (data , sc .DataArray )
105+ assert "Q" in data .dims
106+ assert "energy" in data .dims
107+ assert data .sizes ["Q" ] == 5
108+ assert data .sizes ["energy" ] == 6
109+ assert sc .identical (
110+ data .data , sc .array (dims = ["Q" , "energy" ], values = np .ones ((5 , 6 )) * 2 )
111+ )
0 commit comments