DAMASK_EICMD/python/tests/test_Rotation.py

56 lines
1.6 KiB
Python
Raw Normal View History

2019-11-24 10:59:00 +05:30
import pytest
2019-11-22 01:31:01 +05:30
import numpy as np
2019-11-24 10:59:00 +05:30
2019-11-22 01:31:01 +05:30
from damask import Rotation
2019-11-24 10:59:00 +05:30
n = 1000
@pytest.fixture
def default():
"""A set of n random rotations."""
return [Rotation.fromRandom() for r in range(n)]
2019-11-22 01:31:01 +05:30
class TestRotation:
2019-11-24 10:59:00 +05:30
def test_Eulers(self,default):
for rot in default:
2019-11-22 02:18:54 +05:30
assert np.allclose(rot.asQuaternion(),
Rotation.fromEulers(rot.asEulers()).asQuaternion())
2019-11-22 01:31:01 +05:30
2019-11-24 10:59:00 +05:30
def test_AxisAngle(self,default):
for rot in default:
2019-11-22 02:18:54 +05:30
assert np.allclose(rot.asEulers(),
Rotation.fromAxisAngle(rot.asAxisAngle()).asEulers())
2019-11-22 01:31:01 +05:30
2019-11-24 10:59:00 +05:30
def test_Matrix(self,default):
for rot in default:
2019-11-22 02:18:54 +05:30
assert np.allclose(rot.asAxisAngle(),
Rotation.fromMatrix(rot.asMatrix()).asAxisAngle())
2019-11-22 01:31:01 +05:30
2019-11-24 10:59:00 +05:30
def test_Rodriques(self,default):
for rot in default:
2019-11-22 02:18:54 +05:30
assert np.allclose(rot.asMatrix(),
Rotation.fromRodrigues(rot.asRodrigues()).asMatrix())
2019-11-22 01:31:01 +05:30
2019-11-24 10:59:00 +05:30
def test_Homochoric(self,default):
for rot in default:
2019-11-22 02:18:54 +05:30
assert np.allclose(rot.asRodrigues(),
Rotation.fromHomochoric(rot.asHomochoric()).asRodrigues())
2019-11-22 01:31:01 +05:30
2019-11-24 10:59:00 +05:30
def test_Cubochoric(self,default):
for rot in default:
2019-11-22 02:18:54 +05:30
assert np.allclose(rot.asHomochoric(),
Rotation.fromCubochoric(rot.asCubochoric()).asHomochoric())
2019-11-22 01:31:01 +05:30
2019-11-24 10:59:00 +05:30
def test_Quaternion(self,default):
for rot in default:
2019-11-22 02:18:54 +05:30
assert np.allclose(rot.asCubochoric(),
Rotation.fromQuaternion(rot.asQuaternion()).asCubochoric())