def test_compatible_to_vector(): v = Vec3(Vec2((1, 2))) assert v == (1, 2, 0) v = Vec2(Vec3(1, 2, 3)) assert v.x == 1 assert v.y == 2
def test_iadd_vector(): # Vec3 supports this operation but is immutable v = Vec2((2, 3)) v1 = v v += Vec2((7, 7)) assert v == (9, 10) assert v1 == (9, 10) assert v1 is v
def test_isub_vector(): # Vec3 supports this operation but is immutable v = Vec2((2, 3)) v1 = v v -= Vec2((7, 7)) assert v == (-5, -4) assert v1 == (-5, -4) assert v1 is v
def test_isub_scalar(): v = Vec2((2, 3)) v1 = v v -= 3 assert v == (-1, 0) assert v1 == (-1, 0) assert v1 is v
def test_iadd_scalar(): v = Vec2((2, 3)) v1 = v v += 3 assert v == (5, 6) assert v1 == (5, 6) assert v is v1
def test_idiv_scalar(): # Vec3 supports this operation but is immutable v = Vec2(2, 3) v1 = v v /= 2 assert v == (1, 1.5) assert v1 == (1, 1.5) assert v1 is v
def test_imul_scalar(): # Vec3 supports this operation but is immutable v = Vec2((2, 3)) v1 = v v *= 2 assert v == (4, 6) assert v1 == (4, 6) assert v1 is v
def test_round(): v = Vec2((1.123, 2.123)) v2 = v.round(1) assert v2 == (1.1, 2.1)
def test_vec3(): v = Vec2((1, 2)) assert len(v) == 2 v3 = v.vec3 assert len(v3) == 3 assert v3 == (1, 2, 0)
def test_det(): assert Vec2((1, 0)).det(Vec2((0, 1))) == 1 assert Vec2((0, 1)).det(Vec2((1, 0))) == -1
def test_rdiv_scalar(): # Vec3 => div by 0 assert 2 / Vec2(2, 3) == (1, 0.66666666667)
def test_init_vec2(vcls): v = Vec2(vcls((2, 3))) assert v.x == 2 assert v.y == 3
def test_rdiv_scalar(): # Vector => div by 0 v = Vec2((2, 3)) assert 2 / v == (1, 0.66666666667)
def test_rsub_scalar_vector(): v = Vec2((2, 3)) if len(v) == 2: assert 7 - v == (5, 4) else: assert 7 - v == (5, 4, 7)
def test_radd_vector(): v = Vec2((2, 3)) if len(v) == 2: assert 7 + v == (9, 10) else: assert 7 + v == (9, 10, 7)