def test_new_mass(self, n2_data): vib_data = VibrationsData(n2_data['atoms'], n2_data['hessian']) original_masses = vib_data.get_atoms().get_masses() new_masses = original_masses * 3 new_vib_data = vib_data.with_new_masses(new_masses) assert_array_almost_equal(new_vib_data.get_atoms().get_masses(), new_masses) assert_array_almost_equal(vib_data.get_energies() / np.sqrt(3), new_vib_data.get_energies())
def test_jmol_roundtrip(self, testdir, n2_data): ir_intensities = np.random.random(6) vib_data = VibrationsData(n2_data['atoms'], n2_data['hessian']) vib_data.write_jmol(self.jmol_file, ir_intensities=ir_intensities) images = ase.io.read(self.jmol_file, index=':') for i, image in enumerate(images): assert_array_almost_equal(image.positions, vib_data.get_atoms().positions) assert (image.info['IR_intensity'] == pytest.approx( ir_intensities[i])) assert_array_almost_equal(image.arrays['mode'], vib_data.get_modes()[i])