Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2014-03-17 17:37:43 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-03-17 17:39:46 +0400
commita47137a2dbee17a58bce71d4761264a157078db6 (patch)
treeca6862581f91fea7e69297d999fd4c13f64e5c69 /source/tests
parent8480bb64ec7e5f367b914dc46e9c929945a6ebb0 (diff)
Python API: add Vector.orthogonal() method
Diffstat (limited to 'source/tests')
-rw-r--r--source/tests/bl_pyapi_mathutils.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/source/tests/bl_pyapi_mathutils.py b/source/tests/bl_pyapi_mathutils.py
index bbb4d7f355f..45d68257559 100644
--- a/source/tests/bl_pyapi_mathutils.py
+++ b/source/tests/bl_pyapi_mathutils.py
@@ -3,6 +3,32 @@ import unittest
from test import support
from mathutils import Matrix, Vector
from mathutils import kdtree
+import math
+
+# keep globals immutable
+vector_data = (
+ (1.0, 0.0, 0.0),
+ (0.0, 1.0, 0.0),
+ (0.0, 0.0, 1.0),
+
+ (1.0, 1.0, 1.0),
+
+ (0.33783, 0.715698, -0.611206),
+ (-0.944031, -0.326599, -0.045624),
+ (-0.101074, -0.416443, -0.903503),
+ (0.799286, 0.49411, -0.341949),
+ (-0.854645, 0.518036, 0.033936),
+ (0.42514, -0.437866, -0.792114),
+ (-0.358948, 0.597046, 0.717377),
+ (-0.985413,0.144714, 0.089294),
+ )
+
+# get data at different scales
+vector_data = sum(
+ (tuple(tuple(a * scale for a in v) for v in vector_data)
+ for scale in (s * sign for s in (0.0001, 0.1, -1.0, 10.0, 1000.0, 100000.0)
+ for sign in (1.0, -1.0))), ()) + ((0.0, 0.0, 0.0),)
+
class MatrixTesting(unittest.TestCase):
def test_matrix_column_access(self):
@@ -149,6 +175,17 @@ class MatrixTesting(unittest.TestCase):
self.assertEqual(mat * mat, prod_mat)
+class VectorTesting(unittest.TestCase):
+
+ def test_orthogonal(self):
+
+ angle_90d = math.pi / 2.0
+ for v in vector_data:
+ v = Vector(v)
+ if v.length_squared != 0.0:
+ self.assertAlmostEqual(v.angle(v.orthogonal()), angle_90d)
+
+
class KDTreeTesting(unittest.TestCase):
@staticmethod
@@ -256,6 +293,7 @@ class KDTreeTesting(unittest.TestCase):
def test_main():
try:
support.run_unittest(MatrixTesting)
+ support.run_unittest(VectorTesting)
support.run_unittest(KDTreeTesting)
except:
import traceback