Skip to content

Commit 9374166

Browse files
committed
additioanl test cases for entropy.py ensuring the selction_string is correctly formed with the use of water entropy
1 parent 76f3f82 commit 9374166

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

tests/test_CodeEntropy/test_entropy.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,66 @@ def test_execute_full_workflow(self):
123123
residue_types = set(entry[3] for entry in data_logger.residue_data)
124124
self.assertIn("Conformational", residue_types)
125125

126+
def test_water_entropy_sets_selection_string_when_all(self):
127+
"""
128+
Tests that when `selection_string` is initially 'all' and water entropy is
129+
enabled, the `execute` method sets `selection_string` to 'not water' after
130+
calculating water entropy.
131+
"""
132+
mock_universe = MagicMock()
133+
mock_universe.select_atoms.return_value.n_atoms = 5
134+
135+
args = MagicMock(water_entropy=True, selection_string="all")
136+
run_manager = MagicMock()
137+
level_manager = MagicMock()
138+
data_logger = DataLogger()
139+
140+
manager = EntropyManager(
141+
run_manager, args, mock_universe, data_logger, level_manager
142+
)
143+
manager._get_trajectory_bounds = MagicMock(return_value=(0, 10, 1))
144+
manager._get_number_frames = MagicMock(return_value=11)
145+
manager._calculate_water_entropy = MagicMock()
146+
manager._get_reduced_universe = MagicMock(return_value="reduced")
147+
manager._level_manager.select_levels = MagicMock(return_value=(0, []))
148+
manager._finalize_molecule_results = MagicMock()
149+
manager._data_logger.log_tables = MagicMock()
150+
151+
manager.execute()
152+
153+
manager._calculate_water_entropy.assert_called_once()
154+
assert args.selection_string == "not water"
155+
156+
def test_water_entropy_appends_to_custom_selection_string(self):
157+
"""
158+
Tests that when `selection_string` is a custom value and water
159+
entropy is enabled, the `execute` method appends ' and not water'
160+
to the existing selection string after calculating water entropy.
161+
"""
162+
mock_universe = MagicMock()
163+
mock_universe.select_atoms.return_value.n_atoms = 5
164+
165+
args = MagicMock(water_entropy=True, selection_string="protein")
166+
run_manager = MagicMock()
167+
level_manager = MagicMock()
168+
data_logger = DataLogger()
169+
170+
manager = EntropyManager(
171+
run_manager, args, mock_universe, data_logger, level_manager
172+
)
173+
manager._get_trajectory_bounds = MagicMock(return_value=(0, 10, 1))
174+
manager._get_number_frames = MagicMock(return_value=11)
175+
manager._calculate_water_entropy = MagicMock()
176+
manager._get_reduced_universe = MagicMock(return_value="reduced")
177+
manager._level_manager.select_levels = MagicMock(return_value=(0, []))
178+
manager._finalize_molecule_results = MagicMock()
179+
manager._data_logger.log_tables = MagicMock()
180+
181+
manager.execute()
182+
183+
manager._calculate_water_entropy.assert_called_once()
184+
assert args.selection_string == "protein and not water"
185+
126186
def test_get_trajectory_bounds(self):
127187
"""
128188
Tests that `_get_trajectory_bounds` runs and returns expected types.

0 commit comments

Comments
 (0)