Пример #1
0
    def test_interpolate(self):
        coords = list()
        coords.append([0, 0, 0])
        coords.append([0.75, 0.5, 0.75])
        struct = Structure(self.lattice, [self.si, self.si], coords)
        coords2 = list()
        coords2.append([0, 0, 0])
        coords2.append([0.5, 0.5, 0.5])
        struct2 = Structure(self.struct.lattice, [self.si, self.si], coords2)
        int_s = struct.interpolate(struct2, 10)
        for s in int_s:
            self.assertIsNotNone(s, "Interpolation Failed!")
        self.assertTrue((int_s[1][1].frac_coords == [ 0.725, 0.5, 0.725]).all())

        badlattice = [[ 1, 0.00, 0.00], [0, 1, 0.00], [0.00, 0, 1]]
        struct2 = Structure(badlattice, [self.si, self.si], coords2)
        self.assertRaises(ValueError, struct.interpolate, struct2)

        coords2 = list()
        coords2.append([0, 0, 0])
        coords2.append([0.5, 0.5, 0.5])
        struct2 = Structure(self.struct.lattice, [self.si, Element("Fe")], coords2)
        self.assertRaises(ValueError, struct.interpolate, struct2)