Skip to content

Commit fac0bfa

Browse files
Added some tests
1 parent 6b3c0cc commit fac0bfa

File tree

1 file changed

+64
-14
lines changed

1 file changed

+64
-14
lines changed

tests/unit_tests/experiment/test_experiment.py

Lines changed: 64 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)