DAMASK_EICMD/python/tests/test_Rotation.py

55 lines
1.7 KiB
Python

import numpy as np
from damask import Rotation
class TestRotation:
n = 1000
def test_Eulers(self):
for r in range(self.n):
rot = Rotation.fromRandom()
assert np.allclose(rot.asQuaternion(),
Rotation.fromEulers(rot.asEulers()).asQuaternion())
def test_AxisAngle(self):
for r in range(self.n):
rot = Rotation.fromRandom()
assert np.allclose(rot.asEulers(),
Rotation.fromAxisAngle(rot.asAxisAngle()).asEulers())
def test_Matrix(self):
for r in range(self.n):
rot = Rotation.fromRandom()
assert np.allclose(rot.asAxisAngle(),
Rotation.fromMatrix(rot.asMatrix()).asAxisAngle())
def test_Rodriques(self):
for r in range(self.n):
rot = Rotation.fromRandom()
assert np.allclose(rot.asMatrix(),
Rotation.fromRodrigues(rot.asRodrigues()).asMatrix())
def test_Homochoric(self):
for r in range(self.n):
rot = Rotation.fromRandom()
assert np.allclose(rot.asRodrigues(),
Rotation.fromHomochoric(rot.asHomochoric()).asRodrigues())
def test_Cubochoric(self):
for r in range(self.n):
rot = Rotation.fromRandom()
assert np.allclose(rot.asHomochoric(),
Rotation.fromCubochoric(rot.asCubochoric()).asHomochoric())
def test_Quaternion(self):
for r in range(self.n):
rot = Rotation.fromRandom()
assert np.allclose(rot.asCubochoric(),
Rotation.fromQuaternion(rot.asQuaternion()).asCubochoric())