コード例 #1
0
class TestVector3:
    vec_default = geo.Vector3(1, 2, 3)

    def test_constructor(self):
        assert self.vec_default.x == 1
        assert self.vec_default.y == 2
        assert self.vec_default.z == 3

    # TODO convert this to working with Vector3s
    #  def test_polar(self):
        #  vec = geo.Vector3.polar(1, math.pi)
        #  assert vec == geo.Vector3(-1, 0)

    def test_copy(self):
        copy = self.vec_default.copy()
        assert copy is not self.vec_default
        assert copy == self.vec_default

    def test_repr(self):
        assert str(self.vec_default) == 'Vector3(1.00, 2.00, 3.00)'

    def test_eq(self):
        other_vec = geo.Vector3(1, 2, 3)
        assert self.vec_default == other_vec

    def test_ne(self):
        other_vec = geo.Vector3(2, 4, 6)
        assert self.vec_default != other_vec

    def test_bool_true(self):
        assert self.vec_default

    def test_bool_false(self):
        vec = geo.Vector3(0, 0, 0)
        assert not vec

    def test_add(self):
        vec_add = geo.Vector3(2, 4, 6)
        vec_answer = self.vec_default + vec_add
        assert vec_answer == geo.Vector3(3, 6, 9)

    def test_radd(self):
        vec_add = geo.Vector3(2, 4, 6)
        vec_answer = vec_add + self.vec_default
        assert vec_answer == geo.Vector3(3, 6, 9)

    def test_iadd(self):
        vec = geo.Vector3(1, 2, 3)
        vec += geo.Vector3(2, 4, 6)
        assert vec == geo.Vector3(3, 6, 9)

    def test_vector_sub_vector(self):
        vec_other = geo.Vector3(2, 4, 6)
        answer = self.vec_default - vec_other
        assert isinstance(answer, geo.Vector3)
        assert answer == geo.Vector3(-1, -2, -3)

    def test_vector_sub_point(self):
        point_other = geo.Point3(2, 4, 6)
        answer = self.vec_default - point_other
        assert isinstance(answer, geo.Point3)
        assert answer == geo.Point3(-1, -2, -3)

    def test_point_sub_vector(self):
        point_other = geo.Point3(2, 4, 6)
        answer = point_other - self.vec_default
        assert isinstance(answer, geo.Point3)
        assert answer == geo.Point3(1, 2, 3)

    def test_point_sub_point(self):
        point_left = geo.Point3(1, 2, 3)
        point_right = geo.Point3(2, 4, 6)
        answer = point_left - point_right
        assert isinstance(answer, geo.Vector3)
        assert answer == geo.Vector3(-1, -2, -3)

    def test_mul(self):
        vec_answer = 2 * self.vec_default
        assert vec_answer == geo.Vector3(2, 4, 6)

    def test_rmul(self):
        vec_answer = self.vec_default * 2
        assert vec_answer == geo.Vector3(2, 4, 6)

    def test_imul(self):
        vec = geo.Vector3(1, 2, 3)
        vec *= 2
        assert vec == geo.Vector3(2, 4, 6)

    def test_div(self):
        vec_answer = self.vec_default / 2
        assert vec_answer == geo.Vector3(0.5, 1, 1.5)

    def test_rdiv(self):
        vec_answer = 2 / self.vec_default
        assert vec_answer == geo.Vector3(2, 1, 2/3)

    def test_floordiv(self):
        vec_answer = self.vec_default // 2
        assert vec_answer == geo.Vector3(0, 1, 1)

    def test_rfloordiv(self):
        vec_answer = 3 // self.vec_default
        assert vec_answer == geo.Vector3(3, 1, 1)

    def test_neg(self):
        assert -self.vec_default == geo.Vector3(-1, -2, -3)

    def test_pos(self):
        vec_pos = +self.vec_default
        assert vec_pos is not self.vec_default
        assert vec_pos == geo.Vector3(1, 2, 3)

    def test_magnitude(self):
        magnitude = math.sqrt(14)
        assert self.vec_default.magnitude() == magnitude
        assert abs(self.vec_default) == magnitude

    def test_magnitude_squared(self):
        magnitude_squared = 14
        assert self.vec_default.magnitude_squared() == magnitude_squared

    def test_normalized(self):
        vec = geo.Vector3(4, 0, 0)
        assert vec.normalized() == geo.Vector3(1, 0, 0)

    def test_normalize(self):
        vec = geo.Vector3(4, 0, 0)
        vec.normalize()
        assert vec == geo.Vector3(1, 0, 0)

    def test_dot(self):
        vec_other = geo.Vector3(2, 4, 6)
        assert self.vec_default.dot(vec_other) == 28

    def test_cross(self):
        vec_other = geo.Vector3(-1, 1, -1)
        assert self.vec_default.cross(vec_other) == geo.Vector3(-5, -2, 3)
コード例 #2
0
 def test_iadd(self):
     vec = geo.Vector3(1, 2, 3)
     vec += geo.Vector3(2, 4, 6)
     assert vec == geo.Vector3(3, 6, 9)
コード例 #3
0
 def test_vector_sub_vector(self):
     vec_other = geo.Vector3(2, 4, 6)
     answer = self.vec_default - vec_other
     assert isinstance(answer, geo.Vector3)
     assert answer == geo.Vector3(-1, -2, -3)
コード例 #4
0
 def test_floordiv(self):
     vec_answer = self.vec_default // 2
     assert vec_answer == geo.Vector3(0, 1, 1)
コード例 #5
0
 def test_radd(self):
     vec_add = geo.Vector3(2, 4, 6)
     vec_answer = vec_add + self.vec_default
     assert vec_answer == geo.Vector3(3, 6, 9)
コード例 #6
0
 def test_rmul(self):
     vec_answer = self.vec_default * 2
     assert vec_answer == geo.Vector3(2, 4, 6)
コード例 #7
0
 def test_div(self):
     vec_answer = self.vec_default / 2
     assert vec_answer == geo.Vector3(0.5, 1, 1.5)
コード例 #8
0
 def test_cross(self):
     vec_other = geo.Vector3(-1, 1, -1)
     assert self.vec_default.cross(vec_other) == geo.Vector3(-5, -2, 3)
コード例 #9
0
 def test_eq(self):
     other_vec = geo.Vector3(1, 2, 3)
     assert self.vec_default == other_vec
コード例 #10
0
 def test_normalize(self):
     vec = geo.Vector3(4, 0, 0)
     vec.normalize()
     assert vec == geo.Vector3(1, 0, 0)
コード例 #11
0
 def test_dot(self):
     vec_other = geo.Vector3(2, 4, 6)
     assert self.vec_default.dot(vec_other) == 28
コード例 #12
0
 def test_pos(self):
     vec_pos = +self.vec_default
     assert vec_pos is not self.vec_default
     assert vec_pos == geo.Vector3(1, 2, 3)
コード例 #13
0
 def test_neg(self):
     assert -self.vec_default == geo.Vector3(-1, -2, -3)
コード例 #14
0
 def test_rfloordiv(self):
     vec_answer = 3 // self.vec_default
     assert vec_answer == geo.Vector3(3, 1, 1)
コード例 #15
0
 def test_point_sub_point(self):
     point_left = geo.Point3(1, 2, 3)
     point_right = geo.Point3(2, 4, 6)
     answer = point_left - point_right
     assert isinstance(answer, geo.Vector3)
     assert answer == geo.Vector3(-1, -2, -3)
コード例 #16
0
 def test_ne(self):
     other_vec = geo.Vector3(2, 4, 6)
     assert self.vec_default != other_vec
コード例 #17
0
 def test_mul(self):
     vec_answer = 2 * self.vec_default
     assert vec_answer == geo.Vector3(2, 4, 6)
コード例 #18
0
 def test_bool_false(self):
     vec = geo.Vector3(0, 0, 0)
     assert not vec
コード例 #19
0
 def test_imul(self):
     vec = geo.Vector3(1, 2, 3)
     vec *= 2
     assert vec == geo.Vector3(2, 4, 6)
コード例 #20
0
 def test_add(self):
     vec_add = geo.Vector3(2, 4, 6)
     vec_answer = self.vec_default + vec_add
     assert vec_answer == geo.Vector3(3, 6, 9)
コード例 #21
0
 def test_constructor(self):
     assert self.line_default.position == geo.Point3(1, 1, 1)
     assert self.line_default.vector == geo.Vector3(2, 0, 0)
     assert self.line_default.p1 == geo.Point3(1, 1, 1)
     assert self.line_default.p2 == geo.Point3(3, 1, 1)
コード例 #22
0
 def test_rdiv(self):
     vec_answer = 2 / self.vec_default
     assert vec_answer == geo.Vector3(2, 1, 2/3)