Skip to content

Commit 3a39c69

Browse files
committed
fix update_force_torque_matrices tests within TestLevelsManager
1 parent e81a60f commit 3a39c69

1 file changed

Lines changed: 37 additions & 19 deletions

File tree

tests/test_CodeEntropy/test_levels.py

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,8 @@ def test_build_covariance_matrices_atomic(self):
911911
# Check update_force_torque_matrices call count:
912912
self.assertEqual(level_manager.update_force_torque_matrices.call_count, 6)
913913

914-
def test_update_force_torque_matrices_united_atom(self):
914+
@patch("CodeEntropy.mda_universe_operations.UniverseOperations.new_U_select_atom")
915+
def test_update_force_torque_matrices_united_atom(self, mock_new_U):
915916
"""
916917
Test that `update_force_torque_matrices` correctly updates force and torque
917918
matrices for the 'united_atom' level, assigning per-residue matrices and
@@ -922,9 +923,12 @@ def test_update_force_torque_matrices_united_atom(self):
922923
run_manager = MagicMock()
923924
entropy_manager._run_manager = run_manager
924925

925-
mock_residue_group = MagicMock()
926-
mock_residue_group.trajectory.__getitem__.return_value = None
927-
UniverseOperations.new_U_select_atom.return_value = mock_residue_group
926+
mock_res = MagicMock()
927+
928+
mock_res.trajectory = MagicMock()
929+
mock_res.trajectory.__getitem__.return_value = None
930+
931+
mock_new_U.return_value = mock_res
928932

929933
mock_residue1 = MagicMock()
930934
mock_residue1.atoms.indices = [0, 2]
@@ -934,9 +938,9 @@ def test_update_force_torque_matrices_united_atom(self):
934938
mol = MagicMock()
935939
mol.residues = [mock_residue1, mock_residue2]
936940

937-
f_mat_mock = np.array([[1]])
938-
t_mat_mock = np.array([[2]])
939-
level_manager.get_matrices = MagicMock(return_value=(f_mat_mock, t_mat_mock))
941+
f_mat = np.array([[1]])
942+
t_mat = np.array([[2]])
943+
level_manager.get_matrices = MagicMock(return_value=(f_mat, t_mat))
940944

941945
force_avg = {"ua": {}, "res": [None], "poly": [None]}
942946
torque_avg = {"ua": {}, "res": [None], "poly": [None]}
@@ -948,21 +952,29 @@ def test_update_force_torque_matrices_united_atom(self):
948952
group_id=0,
949953
level="united_atom",
950954
level_list=["residue", "united_atom"],
951-
time_index=5,
955+
time_index=0,
952956
num_frames=10,
953957
force_avg=force_avg,
954958
torque_avg=torque_avg,
955959
frame_counts=frame_counts,
956960
force_partitioning=0.5,
957961
)
958962

959-
expected_keys = [(0, 0), (0, 1)]
960-
for key in expected_keys:
961-
np.testing.assert_array_equal(force_avg["ua"][key], f_mat_mock)
962-
np.testing.assert_array_equal(torque_avg["ua"][key], t_mat_mock)
963-
self.assertEqual(frame_counts["ua"][key], 1)
963+
assert (0, 0) in force_avg["ua"]
964+
assert (0, 1) in force_avg["ua"]
965+
assert (0, 0) in torque_avg["ua"]
966+
assert (0, 1) in torque_avg["ua"]
967+
968+
np.testing.assert_array_equal(force_avg["ua"][(0, 0)], f_mat)
969+
np.testing.assert_array_equal(force_avg["ua"][(0, 1)], f_mat)
970+
np.testing.assert_array_equal(torque_avg["ua"][(0, 0)], t_mat)
971+
np.testing.assert_array_equal(torque_avg["ua"][(0, 1)], t_mat)
964972

965-
def test_update_force_torque_matrices_united_atom_increment(self):
973+
assert frame_counts["ua"][(0, 0)] == 1
974+
assert frame_counts["ua"][(0, 1)] == 1
975+
976+
@patch("CodeEntropy.mda_universe_operations.UniverseOperations.new_U_select_atom")
977+
def test_update_force_torque_matrices_united_atom_increment(self, mock_new_U):
966978
"""
967979
Test that `update_force_torque_matrices` correctly updates force and torque
968980
matrices for the 'united_atom' level when the key already exists.
@@ -975,16 +987,22 @@ def test_update_force_torque_matrices_united_atom_increment(self):
975987
residue = MagicMock()
976988
residue.atoms.indices = [0, 1]
977989
mol.residues = [residue]
990+
mol.trajectory = MagicMock()
978991
mol.trajectory.__getitem__.return_value = None
979992

980993
selected_atoms = MagicMock()
981-
entropy_manager._run_manager.new_U_select_atom.return_value = selected_atoms
994+
selected_atoms.trajectory = MagicMock()
982995
selected_atoms.trajectory.__getitem__.return_value = None
983996

984-
f_mat_1 = np.array([[1.0]], dtype=np.float64)
985-
t_mat_1 = np.array([[2.0]], dtype=np.float64)
986-
f_mat_2 = np.array([[3.0]], dtype=np.float64)
987-
t_mat_2 = np.array([[4.0]], dtype=np.float64)
997+
mock_new_U.return_value = selected_atoms
998+
999+
# First matrices
1000+
f_mat_1 = np.array([[1.0]])
1001+
t_mat_1 = np.array([[2.0]])
1002+
1003+
# Second matrices
1004+
f_mat_2 = np.array([[3.0]])
1005+
t_mat_2 = np.array([[4.0]])
9881006

9891007
level_manager.get_matrices = MagicMock(return_value=(f_mat_1, t_mat_1))
9901008

0 commit comments

Comments
 (0)