def test_todict(self, n2_data): vib_data = VibrationsData(n2_data['atoms'], n2_data['hessian']) vib_data_dict = vib_data.todict() assert vib_data_dict['indices'] is None assert_array_almost_equal(vib_data_dict['atoms'].positions, n2_data['atoms'].positions) assert_array_almost_equal(vib_data_dict['hessian'], n2_data['hessian'])
def test_dict_indices(self, n2_data, indices, expected_mask): vib_data = VibrationsData(n2_data['atoms'], n2_data['hessian']) vib_data_dict = vib_data.todict() vib_data_dict['indices'] = indices # Reduce size of Hessian if necessary if indices is not None: n_active = len(indices) vib_data_dict['hessian'] = (np.asarray( vib_data_dict['hessian'])[:n_active, :, :n_active, :].tolist()) vib_data_fromdict = VibrationsData.fromdict(vib_data_dict) assert_array_almost_equal(vib_data_fromdict.get_mask(), expected_mask)
def test_dict_roundtrip(self, n2_data): vib_data = VibrationsData(n2_data['atoms'], n2_data['hessian']) vib_data_dict = vib_data.todict() vib_data_roundtrip = VibrationsData.fromdict(vib_data_dict) for getter in ('get_atoms', ): assert (getattr(vib_data, getter)() == getattr(vib_data_roundtrip, getter)()) for array_getter in ('get_hessian', 'get_hessian_2d', 'get_mask', 'get_indices'): assert_array_almost_equal( getattr(vib_data, array_getter)(), getattr(vib_data_roundtrip, array_getter)())