import unittest, os import numpy as np from SimPEG import Utils tol = 1e-15 class coorUtilsTest(unittest.TestCase): def test_rotationMatrixFromNormals(self): v0 = np.random.rand(3) v0 *= 1./np.linalg.norm(v0) v1 = np.random.rand(3) v1 *= 1./np.linalg.norm(v1) Rf = Utils.coordutils.rotationMatrixFromNormals(v0,v1) Ri = Utils.coordutils.rotationMatrixFromNormals(v1,v0) self.assertTrue(np.linalg.norm(Utils.mkvc(Rf.dot(v0) - v1)) < tol) self.assertTrue(np.linalg.norm(Utils.mkvc(Ri.dot(v1) - v0)) < tol) def test_rotatePointsFromNormals(self): v0 = np.random.rand(3) v0*= 1./np.linalg.norm(v0) v1 = np.random.rand(3) v1*= 1./np.linalg.norm(v1) self.assertTrue(np.linalg.norm(Utils.mkvc(Utils.coordutils.rotatePointsFromNormals(Utils.mkvc(v0,2).T,v0,v1))-v1) < tol) if __name__ == '__main__': unittest.main()