def test_fit_translation_bad_plane(fit_universe, plane): ts = fit_universe[0].trajectory.ts test_u = fit_universe[0] ref_u = fit_universe[1] # what happens if a bad string for center is given? with pytest.raises(ValueError): fit_translation(test_u, ref_u, plane=plane)(ts)
def test_fit_translation_bad_ag(fit_universe, universe): ts = fit_universe[0].trajectory.ts test_u = fit_universe[0] ref_u = fit_universe[1] # what happens if something other than an AtomGroup or Universe is given? with pytest.raises(AttributeError): fit_translation(universe, ref_u)(ts)
def test_fit_translation_no_options(fit_universe): test_u = fit_universe[0] ref_u = fit_universe[1] fit_translation(test_u, ref_u)(test_u.trajectory.ts) # what happens when no options are passed? assert_array_almost_equal(test_u.trajectory.ts.positions, ref_u.trajectory.ts.positions, decimal=6)
def test_fit_translation_com(fit_universe): test_u = fit_universe[0] ref_u = fit_universe[1] fit_translation(test_u, ref_u, weights="mass")(test_u.trajectory.ts) # what happens when the center o mass is used? assert_array_almost_equal(test_u.trajectory.ts.positions, ref_u.trajectory.ts.positions, decimal=6)
def test_fit_translation_no_masses(fit_universe): ts = fit_universe[0].trajectory.ts test_u = fit_universe[0] # create a universe without masses ref_u = make_Universe() # what happens Universe without masses is given? with pytest.raises(AttributeError): fit_translation(test_u, ref_u, weights="mass")(ts)
def test_fit_translation_no_masses(fit_universe): ts = fit_universe[0].trajectory.ts test_u = fit_universe[0] # create a universe without masses ref_u = make_Universe() # what happens Universe without masses is given? with pytest.raises(TypeError) as exc: fit_translation(test_u, ref_u, weights="mass")(ts) assert 'atoms.masses is missing' in str(exc.value)
def test_fit_translation_all_options(fit_universe): test_u = fit_universe[0] ref_u = fit_universe[1] # translate the test universe on the x and y coordinates only fit_translation(test_u, ref_u, plane="xy", weights="mass")(test_u.trajectory.ts) # the reference is 10 angstrom in the z coordinate above the test universe shiftz = np.asanyarray([0, 0, -10], np.float32) ref_coordinates = ref_u.trajectory.ts.positions + shiftz assert_array_almost_equal(test_u.trajectory.ts.positions, ref_coordinates, decimal=6)
def test_fit_translation_plane(fit_universe, plane): test_u = fit_universe[0] ref_u = fit_universe[1] axes = {'yz': 0, 'xz': 1, 'xy': 2} idx = axes[plane] # translate the test universe on the plane coordinates only fit_translation(test_u, ref_u, plane=plane)(test_u.trajectory.ts) # the reference is 10 angstrom in all coordinates above the test universe shiftz = np.asanyarray([0, 0, 0], np.float32) shiftz[idx] = -10 ref_coordinates = ref_u.trajectory.ts.positions + shiftz assert_array_almost_equal(test_u.trajectory.ts.positions, ref_coordinates, decimal=6)
def test_fit_translation_transformations_api(fit_universe): test_u = fit_universe[0] ref_u = fit_universe[1] transform = fit_translation(test_u, ref_u) test_u.trajectory.add_transformations(transform) assert_array_almost_equal(test_u.trajectory.ts.positions, ref_u.trajectory.ts.positions, decimal=6)
def test_fit_translation_residue_mismatch(fit_universe): test_u = fit_universe[0] ref_u = fit_universe[1].residues[:-1].atoms with pytest.raises(ValueError, match='number of residues'): fit_translation(test_u, ref_u)(test_u.trajectory.ts)