예제 #1
0
 def test_scalar_multiply_float(self):
     v1 = Vector((1.671, -1.012, -0.318))
     scalar = 7.41
     resultV = v1.scalar_multiply(scalar)
     resultV.round_coordinates(3)
     self.assertEqual(resultV, Vector((12.382, -7.499, -2.356)),
                      'scalar multiply does not work')
예제 #2
0
 def test_is_parallel_simple(self):
     vector = self.vector3d.scalar_multiply(0.5)
     vector2 = Vector((6, 29, 100))
     result = vector.is_parallel_to(self.vector3d)
     result2 = vector2.is_parallel_to(self.vector3d)
     self.assertEqual(result, True, 'is_parallel_to does not work')
     self.assertEqual(result2, False, 'is_parallel_to does not work')
예제 #3
0
 def test_plus_float(self):
     v1 = Vector((8.218, -9.341))
     v2 = Vector((-1.129, 2.111))
     resultV = v1.plus(v2)
     resultV.round_coordinates(3)
     self.assertEqual(resultV, Vector((7.089, -7.230)),
                      'plus does not work')
예제 #4
0
 def test_minus_float(self):
     v1 = Vector((7.119, 8.215))
     v2 = Vector((-8.223, 0.878))
     resultV = v1.minus(v2)
     resultV.round_coordinates(3)
     self.assertEqual(resultV, Vector((15.342, 7.337)),
                      'minus does not work')
예제 #5
0
 def test_angle_assert(self):
     with self.assertRaises(
             ZeroDivisionError,
             msg=
             'angle_with does not throw ZeroDivisionError if magnitude of either vector is 0'
     ):
         Vector((0, 0, 0)).angle_with(Vector((1, 2, 3)))
예제 #6
0
 def test_round_coordinates(self):
     vector = Vector((1.00001, 2.12348, -8274.125, 2))
     vector.round_coordinates(2)
     self.assertEqual(vector.coordinates,
                      (Decimal('1.00'), Decimal('2.12'),
                       Decimal('-8274.13'), Decimal('2.00')),
                      'round_coordinates does not work')
예제 #7
0
 def test_is_orthogonal_simple(self):
     v1 = Vector((0, 1))
     v2 = Vector((4, 0))
     v3 = Vector((4, 1))
     v4 = Vector((1, -4))
     self.assertEqual(v1.is_orthogonal_to(v2), True,
                      'is_orthogonal_to does not work')
     self.assertEqual(v3.is_orthogonal_to(v2), False,
                      'is_orthogonal_to does not work')
     self.assertEqual(v4.is_orthogonal_to(v3), True,
                      'is_orthogonal_to does not work')
예제 #8
0
 def test_direction_assert(self):
     with self.assertRaises(
             ZeroDivisionError,
             msg=
             'direction does not throw ZeroDivisionError if magnitude is 0'
     ):
         Vector((0, 0, 0)).direction()
예제 #9
0
 def test_init_not_iterable(self):
     with self.assertRaises(
             TypeError,
             msg=
             'init does not throw TypeError if coordinates are not iterable'
     ):
         Vector(1)
예제 #10
0
 def test_is_orthogonal_float_2d_2(self):
     v1 = Vector((2.118, 4.827))
     v2 = Vector((0, 0))
     self.assertEqual(v1.is_orthogonal_to(v2), True,
                      'is_orthogonal_to does not work')
예제 #11
0
 def test_is_orthogonal_float_3d_2(self):
     v1 = Vector((-2.328, -7.284, -1.214))
     v2 = Vector((-1.821, 1.072, -2.94))
     self.assertEqual(v1.is_orthogonal_to(v2), True,
                      'is_orthogonal_to does not work')
예제 #12
0
 def test_is_orthogonal_float_3d(self):
     v1 = Vector((-2.029, 9.97, 4.172))
     v2 = Vector((-9.231, -6.639, -7.245))
     self.assertEqual(v1.is_orthogonal_to(v2), False,
                      'is_orthogonal_to does not work')
예제 #13
0
 def test_is_orthogonal_float_2d(self):
     v1 = Vector((-7.579, -7.88))
     v2 = Vector((22.737, 23.64))
     self.assertEqual(v1.is_orthogonal_to(v2), False,
                      'is_orthogonal_to does not work')
예제 #14
0
 def test_is_orthogonal_zero(self):
     v1 = Vector((0, 0))
     v2 = Vector((99, 34))
     self.assertEqual(v1.is_orthogonal_to(v2), True,
                      'is_orthogonal_to does not work')
예제 #15
0
 def test_init_empty_tuple(self):
     with self.assertRaises(
             ValueError,
             msg='init does not throw ValueError if coordinates are empty'):
         Vector(())
예제 #16
0
 def test_angle_degrees_simple(self):
     v1 = Vector((1, 2, -1))
     v2 = Vector((3, 1, 0))
     result = v1.angle_with(v2, Vector.DEGREES)
     self.assertEqual(round(result), 50, 'angle_with does not work')
예제 #17
0
 def test_is_parallel_float_3d_2(self):
     v1 = Vector((-2.328, -7.284, -1.214))
     v2 = Vector((-1.821, 1.072, -2.94))
     self.assertEqual(v1.is_parallel_to(v2), False,
                      'is_parallel_to does not work')
예제 #18
0
 def test_dot_product_float_3d(self):
     v1 = Vector((-5.955, -4.904, -1.874))
     v2 = Vector((-4.496, -8.755, 7.103))
     result = v1.dot_product(v2)
     result = round_float(result, 3)
     self.assertEqual(result, 56.397, 'dot product does not work')
예제 #19
0
 def test_dot_product_simple(self):
     v1 = Vector((1, 2, -1))
     v2 = Vector((3, 1, 0))
     result = v1.dot_product(v2)
     self.assertEqual(result, 5, 'dot product does not work')
예제 #20
0
 def test_eq_float_3d(self):
     self.assertEqual(Vector((1.234, 4.543, 9.000)),
                      Vector((1.234, 4.543, 9.000)), 'eq does not work')
예제 #21
0
 def test_angle_rad_simple(self):
     v1 = Vector((1, 2, -1))
     v2 = Vector((3, 1, 0))
     result = v1.angle_with(v2)
     result = round_float(result, 2)
     self.assertEqual(result, 0.87, 'angle_with does not work')
예제 #22
0
 def test_angle_degrees_float(self):
     v1 = Vector((7.35, 0.221, 5.188))
     v2 = Vector((2.751, 8.259, 3.985))
     result = v1.angle_with(v2, Vector.DEGREES)
     result = round_float(result, 3)
     self.assertEqual(result, 60.276, 'angle_with does not work')
예제 #23
0
 def test_angle_same_vector(self):
     v1 = Vector((1, 2, -1))
     result = v1.angle_with(v1)
     self.assertEqual(round(result), 0, 'angle_with does not work')
예제 #24
0
 def test_dot_product_float_2d(self):
     v1 = Vector((7.887, 4.138))
     v2 = Vector((-8.802, 6.776))
     result = v1.dot_product(v2)
     result = round_float(result, 3)
     self.assertEqual(result, -41.382, 'dot product does not work')
예제 #25
0
 def test_eq_three_dimensions(self):
     self.assertEqual(self.vector3d == Vector((1, 2, 3)), True,
                      'eq does not work')
     self.assertEqual(
         Vector((-1, 2, 3)) == self.vector3d, False, 'eq does not work')
예제 #26
0
 def test_angle_rad_float(self):
     v1 = Vector((3.183, -7.627))
     v2 = Vector((-2.668, 5.319))
     result = v1.angle_with(v2)
     result = round_float(result, 3)
     self.assertEqual(result, 3.072, 'angle_with does not work')
예제 #27
0
 def test_eq_one_dimension(self):
     self.assertEqual(self.vector1d == Vector((1, )), True,
                      'eq does not work')
     self.assertEqual(self.vector1d == Vector((-1, )), False,
                      'eq does not work')
예제 #28
0
 def test_zero_is_parallel_zero(self):
     vector = Vector((0, 0, 0))
     result = vector.is_parallel_to(vector)
     self.assertEqual(result, True, 'is_parallel_to does not work')
예제 #29
0
 def test_plus_1d(self):
     self.assertEqual(self.vector1d.plus(Vector((-1, ))), Vector((0, )),
                      'plus does not work')
     self.assertEqual(self.vector1d, Vector((1, )),
                      'plus does not work - changes vector')
예제 #30
0
 def test_is_parallel_float_2d(self):
     v1 = Vector((-7.579, -7.88))
     v2 = Vector((22.737, 23.64))
     self.assertEqual(v1.is_parallel_to(v2), True,
                      'is_parallel_to does not work')