def testAngle(): for i in range(10): theta = 1 / np.random.randint(1, 10) pytest.approx(theta, _vector.angle( [np.cos(theta), np.sin(theta)], [1, 0])) pytest.approx(theta, _vector.angle( [np.cos(theta), np.sin(-theta)], [1, 0]))
def testRightAndStraightAngle(): for i in range(10): vec1 = np.random.randint(1, 10, 2) vec2 = np.array([-vec1[1], vec1[0]]) vec3 = np.array([vec1[1], -vec1[0]]) # Test for 90-degree. pytest.approx(_vector.angle(vec1, vec2), math.pi / 2) pytest.approx(_vector.angle(vec1, vec3), math.pi / 2) # Test for 180-degree. pytest.approx(_vector.angle(vec2, vec3), math.pi)
def test_my_pybind(): # Test for zero-length 2-vector (invalid input). assert math.fabs(_vector.angle(0, 0, 0, 0) - 0.0) < epsilon # Test for zero angle. assert math.fabs(_vector.angle(1, 1, 1, 1) - 0.0) < epsilon # Test for right angle (90-deg). assert math.fabs(_vector.angle(0, 1, 1, 0) - (math.pi / 2)) < epsilon # Test for one other angle. (180 degree) assert math.fabs(_vector.angle(1, 0, -1, 0) - (math.pi)) < epsilon
def test_invalid(self): vector1 = np.random.randint(64, 1922, 2) vector2 = np.array([0, 0]) vector3 = np.random.randint(64, 1922, 2) radian1 = angle(vector1, vector2) assert math.isclose(radian1, -127, abs_tol=self.m_abs_tol) radian2 = angle(vector2, vector3) assert math.isclose(radian2, -127, abs_tol=self.m_abs_tol) vector4 = np.array([math.inf, math.inf]) radian3 = angle(vector1, vector4) assert math.isnan(radian3)
def test_right_angle(self): vector1 = np.array([0, 1]) vector2 = np.array([1, 0]) radian = angle(vector1, vector2) assert math.isclose(radian, math.pi / 2, abs_tol=self.m_abs_tol)
def test_180_degree(self): vector1 = np.array([1, 0]) vector2 = np.array([-1, 0]) radian = angle(vector1, vector2) assert math.isclose(radian, math.pi, abs_tol=self.m_abs_tol)
def testInvalidVector(): with pytest.raises(TypeError): _vector.angle([0, 0], []) with pytest.raises(TypeError): _vector.angle([], [0, 0]) with pytest.raises(TypeError): _vector.angle([], []) with pytest.raises(TypeError): _vector.angle(["1", 2], [1, 1])
def testOpposite(self): for i in range(10): mult = np.random.randint(-10, -1) vec1 = np.random.randint(1, 10, 2) vec2 = vec1 * mult self.assertAlmostEqual(_vector.angle(vec1, vec2), math.pi, places=5)
def test_zero_angle(self): coefficient = np.random.randint(1, 10) vector1 = np.random.randint(64, 1922, 2) vector2 = vector1 * coefficient radian = angle(vector1, vector2) assert math.isclose(radian, 0, abs_tol=self.m_abs_tol)
def test_one_another_degree(self): vector1 = np.array([3, 4]) vector2 = np.array([4, 4]) radian = angle(vector1, vector2) assert math.isclose(radian, (math.pi / 180) * 8.13, abs_tol=self.m_abs_tol) coefficient = np.random.randint(64, 1922) vector1 = vector1 * coefficient vector2 = vector2 * coefficient radian = angle(vector1, vector2) assert math.isclose(radian, (math.pi / 180) * 8.13, abs_tol=self.m_abs_tol)
def testRightAngle(self): for i in range(10): mult = np.random.randint(1, 10) vec1 = np.random.randint(1, 10) vec1 = np.array([vec1, vec1]) vec2 = vec1 * np.array([-mult, mult]) self.assertAlmostEqual(_vector.angle(vec1, vec2), math.pi / 2, places=5)
def testZeroLengthVector(): with pytest.raises(ValueError): _vector.angle([1, 1], [0, 0]) with pytest.raises(ValueError): _vector.angle([0, 0], [1, 1]) with pytest.raises(ValueError): _vector.angle([0, 0], [0, 0])
def test_right_angle(): tem = _vector.angle((0, 1), (1, 0)) assert int(tem) == 90
def test_zero_angle(): tem = _vector.angle((1, 1), (1, 1)) assert int(tem) == 0
def test_angle45(): tem = _vector.angle((0, 1), (1, 1)) assert int(tem) == 45
def test_30_angle(): # 30 degree assert math.isclose(_vector.angle(math.sqrt(3), 1, 1, math.sqrt(3)), math.pi / 6)
import _vector import math epsilon = math.pi * 0.05 #toleration for float comparsion print (_vector.angle(1, 1, 1, 1)) def test_my_pybind(): # Test for zero-length 2-vector (invalid input). assert math.fabs(_vector.angle(0, 0, 0, 0) - 0.0) < epsilon # Test for zero angle. assert math.fabs(_vector.angle(1, 1, 1, 1) - 0.0) < epsilon # Test for right angle (90-deg). assert math.fabs(_vector.angle(0, 1, 1, 0) - (math.pi / 2)) < epsilon # Test for one other angle. (180 degree) assert math.fabs(_vector.angle(1, 0, -1, 0) - (math.pi)) < epsilon
def testArbitraryVector(): for i in range(10): vec1 = np.random.randint(1, 10, 2) vec2 = np.random.randint(1, 10, 2) pytest.approx(_vector.angle(vec1, vec2), angle(vec1, vec2))
def test_0_angle(): assert math.isclose(_vector.angle(300, 600, 15, 30), 0)
def test_45_angle(): # 45 degree assert math.isclose(_vector.angle(0, 100, 5, 5), math.pi / 4)
def test_two_zero(): assert v.angle([0, 0], [0, 0]) == -1
def testZeroAngle(self): for i in range(10): mult = np.random.randint(1, 10) vec1 = np.random.randint(1, 10, 2) vec2 = vec1 * mult self.assertAlmostEqual(_vector.angle(vec1, vec2), 0, places=5)
def test_right_angle(): assert v.angle([1, 0], [0, 1]) == 90
def test_zero_length(): assert math.isnan(_vector.angle(0, 0, 0, 0))
def test_another_angle(): assert v.angle([1, 1], [0, 1]) == 45
def testZeroAngle(): for i in range(10): mult = np.random.randint(1, 10) vec1 = np.random.randint(1, 10, 2) vec2 = vec1 * mult assert (_vector.angle(vec1, vec2)) == 0
def test_zero_angle(): assert v.angle([1, 0], [1, 0]) == 0
def test_right_angle(): assert math.isclose(_vector.angle(1000, 1000, -2000, 2000), math.pi / 2)