def runTest(self): piezo_struc = self.get_structure('BaNiO3') tensor = np.asarray([[0., 0., 0., 0., 0.03839, 0.], [0., 0., 0., 0.03839, 0., 0.], [6.89822, 6.89822, 27.46280, 0., 0., 0.]]).reshape(3, 6) pt = PiezoTensor(tensor) full_tensor = [[[0., 0., 0.03839], [0., 0., 0.], [0.03839, 0., 0.]], [[0., 0., 0.], [0., 0., 0.03839], [0., 0.03839, 0.]], [[6.89822, 0., 0.], [0., 6.89822, 0.], [0., 0., 27.4628]]] bad_pt = PiezoTensor([[0., 0., 1., 0., 0.03839, 2.], [0., 0., 0., 0.03839, 0., 0.], [6.89822, 6.89822, 27.4628, 0., 0., 0.]]) sym_pt = bad_pt.symmeterize(piezo_struc) alt_tensor = pt.from_full_tensor(full_tensor) self.assertArrayAlmostEqual(pt.full_tensor, full_tensor) self.assertArrayEqual(pt, alt_tensor) self.assertTrue(pt.is_valid(piezo_struc)) self.assertTrue(sym_pt.is_valid(piezo_struc)) self.assertArrayAlmostEqual(sym_pt, pt)