Ejemplo n.º 1
0
    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'])
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)())