Files
openmm/wrappers/python/tests/TestVec3.py
Peter Eastman e53bdc5eab Top level Python module is now "openmm" (#3000)
* Top level Python module is now "openmm"

* Updated module names in examples

* Updated module names in documentation

* Updated module in CI scripts

* Added deprecation warning
2021-02-01 09:40:37 -08:00

55 lines
1.5 KiB
Python

""" Tests the Vec3 object """
from unittest import TestCase
from openmm import Vec3
class TestVectors(TestCase):
""" Tests the Vec3 type """
def testVec3Attributes(self):
vec1 = Vec3(1, 2, 3)
self.assertEqual(vec1.x, 1)
self.assertEqual(vec1.y, 2)
self.assertEqual(vec1.z, 3)
def testNegation(self):
vec1 = Vec3(1, 2, 3)
vec1_neg = Vec3(-1, -2, -3)
self.assertEqual(-vec1, vec1_neg)
def testVec3Equality(self):
vec1 = Vec3(1, 2, 3)
vec2 = Vec3(1, 2, 3)
self.assertEqual(vec1, vec2)
def testVec3Addition(self):
vec1 = Vec3(1, 2, 3)
vec2 = Vec3(4, 5, 6)
vec2_tup = (4, 5, 6)
result = Vec3(5, 7, 9)
self.assertEqual(vec1 + vec2, result)
self.assertEqual(vec1 + vec2_tup, result)
def testVec3Subtraction(self):
vec1 = Vec3(1, 2, 3)
vec2 = Vec3(3, 2, 1)
vec2_tup = (3, 2, 1)
result = Vec3(-2, 0, 2)
self.assertEqual(vec1 - vec2, result)
self.assertEqual(vec1 - vec2_tup, result)
self.assertEqual(vec2_tup - vec1, -result)
def testVec3Multiplication(self):
vec1 = Vec3(1, 2, 3)
factor = 2
result = Vec3(2, 4, 6)
self.assertEqual(vec1 * factor, result)
self.assertEqual(factor * vec1, result)
def testVec3Division(self):
vec1 = Vec3(4, 5, 6)
factor = 2
result = Vec3(2, 2.5, 3)
self.assertEqual(vec1 / factor, result)
with self.assertRaises(TypeError):
2 / vec1