Mass replace Quat to Quaternion.

This commit is contained in:
Relintai 2023-06-02 11:43:56 +02:00
parent aa56596f7d
commit e0c74244ea
11 changed files with 85 additions and 85 deletions

View File

@ -13,7 +13,7 @@ from pandemonium.builtins import (
Dictionary, Dictionary,
NodePath, NodePath,
Plane, Plane,
Quat, Quaternion,
Rect2, Rect2,
RID, RID,
Transform2D, Transform2D,
@ -94,7 +94,7 @@ class VariantType(IntFlag):
VECTOR3: int VECTOR3: int
TRANSFORM2D: int TRANSFORM2D: int
PLANE: int PLANE: int
QUAT: int QUATERNION: int
AABB: int AABB: int
BASIS: int BASIS: int
TRANSFORM: int TRANSFORM: int

View File

@ -75,7 +75,7 @@ class VariantType(IntFlag):
VECTOR3 = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_VECTOR3 VECTOR3 = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_VECTOR3
TRANSFORM2D = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_TRANSFORM2D TRANSFORM2D = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_TRANSFORM2D
PLANE = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_PLANE PLANE = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_PLANE
QUAT = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_QUAT QUATERNION = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_QUATERNION
AABB = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_AABB AABB = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_AABB
BASIS = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_BASIS BASIS = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_BASIS
TRANSFORM = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_TRANSFORM TRANSFORM = pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_TRANSFORM

View File

@ -39,10 +39,10 @@ cdef class Basis:
pass pass
try: try:
{{ force_mark_rendered("pandemonium_basis_new_with_euler_quat") }} {{ force_mark_rendered("pandemonium_basis_new_with_euler_quat") }}
gdapi10.pandemonium_basis_new_with_euler_quat(&ret._gd_data, &(<Quat?>from_)._gd_data) gdapi10.pandemonium_basis_new_with_euler_quat(&ret._gd_data, &(<Quaternion?>from_)._gd_data)
return ret return ret
except TypeError: except TypeError:
raise TypeError('`from_` must be Quat or Vector3') raise TypeError('`from_` must be Quaternion or Vector3')
@staticmethod @staticmethod
def from_axis_angle(Vector3 axis not None, phi): def from_axis_angle(Vector3 axis not None, phi):

View File

@ -5,7 +5,7 @@
@cython.final @cython.final
cdef class Quat: cdef class Quaternion:
{% block cdef_attributes %} {% block cdef_attributes %}
cdef pandemonium_quat _gd_data cdef pandemonium_quat _gd_data
{% endblock %} {% endblock %}
@ -18,7 +18,7 @@ cdef class Quat:
@staticmethod @staticmethod
def from_axis_angle(Vector3 axis not None, pandemonium_real angle): def from_axis_angle(Vector3 axis not None, pandemonium_real angle):
# Call to __new__ bypasses __init__ constructor # Call to __new__ bypasses __init__ constructor
cdef Quat ret = Quat.__new__(Quat) cdef Quaternion ret = Quaternion.__new__(Quaternion)
{{ force_mark_rendered("pandemonium_quat_new_with_axis_angle") }} {{ force_mark_rendered("pandemonium_quat_new_with_axis_angle") }}
gdapi10.pandemonium_quat_new_with_axis_angle(&ret._gd_data, &axis._gd_data, angle) gdapi10.pandemonium_quat_new_with_axis_angle(&ret._gd_data, &axis._gd_data, angle)
return ret return ret
@ -26,7 +26,7 @@ cdef class Quat:
@staticmethod @staticmethod
def from_basis(Basis basis not None): def from_basis(Basis basis not None):
# Call to __new__ bypasses __init__ constructor # Call to __new__ bypasses __init__ constructor
cdef Quat ret = Quat.__new__(Quat) cdef Quaternion ret = Quaternion.__new__(Quaternion)
{{ force_mark_rendered("pandemonium_quat_new_with_basis") }} {{ force_mark_rendered("pandemonium_quat_new_with_basis") }}
gdapi11.pandemonium_quat_new_with_basis(&ret._gd_data, &basis._gd_data) gdapi11.pandemonium_quat_new_with_basis(&ret._gd_data, &basis._gd_data)
return ret return ret
@ -34,30 +34,30 @@ cdef class Quat:
@staticmethod @staticmethod
def from_euler(Vector3 euler not None): def from_euler(Vector3 euler not None):
# Call to __new__ bypasses __init__ constructor # Call to __new__ bypasses __init__ constructor
cdef Quat ret = Quat.__new__(Quat) cdef Quaternion ret = Quaternion.__new__(Quaternion)
{{ force_mark_rendered("pandemonium_quat_new_with_euler") }} {{ force_mark_rendered("pandemonium_quat_new_with_euler") }}
gdapi11.pandemonium_quat_new_with_euler(&ret._gd_data, &euler._gd_data) gdapi11.pandemonium_quat_new_with_euler(&ret._gd_data, &euler._gd_data)
return ret return ret
def __repr__(Quat self): def __repr__(Quaternion self):
return f"<Quat(x={self.x}, y={self.y}, z={self.z}, w={self.w})>" return f"<Quaternion(x={self.x}, y={self.y}, z={self.z}, w={self.w})>"
{{ render_operator_eq() | indent }} {{ render_operator_eq() | indent }}
{{ render_operator_ne() | indent }} {{ render_operator_ne() | indent }}
{{ render_method("operator_neg", py_name="__neg__") | indent }} {{ render_method("operator_neg", py_name="__neg__") | indent }}
def __pos__(Quat self): def __pos__(Quaternion self):
return self return self
{{ render_method("operator_add", py_name="__add__") | indent }} {{ render_method("operator_add", py_name="__add__") | indent }}
{{ render_method("operator_subtract", py_name="__sub__") | indent }} {{ render_method("operator_subtract", py_name="__sub__") | indent }}
{{ render_method("operator_multiply", py_name="__mul__") | indent }} {{ render_method("operator_multiply", py_name="__mul__") | indent }}
def __truediv__(Quat self, pandemonium_real val): def __truediv__(Quaternion self, pandemonium_real val):
if val == 0: if val == 0:
raise ZeroDivisionError raise ZeroDivisionError
cdef Quat ret = Quat.__new__(Quat) cdef Quaternion ret = Quaternion.__new__(Quaternion)
{{ force_mark_rendered("pandemonium_quat_operator_divide") }} {{ force_mark_rendered("pandemonium_quat_operator_divide") }}
ret._gd_data = gdapi10.pandemonium_quat_operator_divide(&self._gd_data, val) ret._gd_data = gdapi10.pandemonium_quat_operator_divide(&self._gd_data, val)
return ret return ret
@ -82,5 +82,5 @@ cdef class Quat:
{% endblock %} {% endblock %}
{%- block python_consts %} {%- block python_consts %}
IDENTITY = Quat(0, 0, 0, 1) IDENTITY = Quaternion(0, 0, 0, 1)
{% endblock %} {% endblock %}

View File

@ -33,7 +33,7 @@ cdef class Transform:
return ret return ret
@staticmethod @staticmethod
def from_quat(Quat quat not None): def from_quat(Quaternion quat not None):
cdef Transform ret = Transform.__new__(Transform) cdef Transform ret = Transform.__new__(Transform)
{{ force_mark_rendered("pandemonium_transform_new_with_quat") }} {{ force_mark_rendered("pandemonium_transform_new_with_quat") }}
gdapi11.pandemonium_transform_new_with_quat(&ret._gd_data, &quat._gd_data) gdapi11.pandemonium_transform_new_with_quat(&ret._gd_data, &quat._gd_data)

View File

@ -24,7 +24,7 @@ from type_specs import (
TYPE_RECT2, TYPE_RECT2,
TYPE_TRANSFORM2D, TYPE_TRANSFORM2D,
TYPE_PLANE, TYPE_PLANE,
TYPE_QUAT, TYPE_QUATERNION,
TYPE_TRANSFORM, TYPE_TRANSFORM,
TYPE_NODEPATH, TYPE_NODEPATH,
TYPE_DICTIONARY, TYPE_DICTIONARY,
@ -137,7 +137,7 @@ TARGET_TO_TYPE_SPEC = {
"rect2": TYPE_RECT2, "rect2": TYPE_RECT2,
"transform2d": TYPE_TRANSFORM2D, "transform2d": TYPE_TRANSFORM2D,
"plane": TYPE_PLANE, "plane": TYPE_PLANE,
"quat": TYPE_QUAT, "quat": TYPE_QUATERNION,
"transform": TYPE_TRANSFORM, "transform": TYPE_TRANSFORM,
"node_path": TYPE_NODEPATH, "node_path": TYPE_NODEPATH,
"dictionary": TYPE_DICTIONARY, "dictionary": TYPE_DICTIONARY,

View File

@ -204,8 +204,8 @@ TYPE_STRING_NAME = TypeSpec(
TYPE_PLANE = TypeSpec( TYPE_PLANE = TypeSpec(
gdapi_type="Plane", c_type="pandemonium_plane", cy_type="Plane", is_builtin=True, is_stack_only=True gdapi_type="Plane", c_type="pandemonium_plane", cy_type="Plane", is_builtin=True, is_stack_only=True
) )
TYPE_QUAT = TypeSpec( TYPE_QUATERNION = TypeSpec(
gdapi_type="Quat", c_type="pandemonium_quat", cy_type="Quat", is_builtin=True, is_stack_only=True gdapi_type="Quaternion", c_type="pandemonium_quat", cy_type="Quaternion", is_builtin=True, is_stack_only=True
) )
TYPE_RECT2 = TypeSpec( TYPE_RECT2 = TypeSpec(
gdapi_type="Rect2", c_type="pandemonium_rect2", cy_type="Rect2", is_builtin=True, is_stack_only=True gdapi_type="Rect2", c_type="pandemonium_rect2", cy_type="Rect2", is_builtin=True, is_stack_only=True
@ -383,7 +383,7 @@ ALL_TYPES_EXCEPT_OBJECTS = [
TYPE_NODEPATH, TYPE_NODEPATH,
TYPE_STRING_NAME, TYPE_STRING_NAME,
TYPE_PLANE, TYPE_PLANE,
TYPE_QUAT, TYPE_QUATERNION,
TYPE_RECT2, TYPE_RECT2,
TYPE_RECT2I, TYPE_RECT2I,
TYPE_RID, TYPE_RID,

View File

@ -17,7 +17,7 @@ from pandemonium.builtins cimport (
Vector3, Vector3,
Transform2D, Transform2D,
Plane, Plane,
Quat, Quaternion,
AABB, AABB,
Basis, Basis,
Transform, Transform,
@ -51,7 +51,7 @@ GD_PY_TYPES = (
(pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_VECTOR3, Vector3), (pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_VECTOR3, Vector3),
(pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_TRANSFORM2D, Transform2D), (pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_TRANSFORM2D, Transform2D),
(pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_PLANE, Plane), (pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_PLANE, Plane),
(pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_QUAT, Quat), (pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_QUATERNION, Quaternion),
(pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_AABB, AABB), (pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_AABB, AABB),
(pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_BASIS, Basis), (pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_BASIS, Basis),
(pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_TRANSFORM, Transform), (pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_TRANSFORM, Transform),
@ -143,7 +143,7 @@ cdef object pandemonium_variant_to_pyobj(const pandemonium_variant *p_gdvar):
elif gdtype == pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_PLANE: elif gdtype == pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_PLANE:
return _pandemonium_variant_to_pyobj_plane(p_gdvar) return _pandemonium_variant_to_pyobj_plane(p_gdvar)
elif gdtype == pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_QUAT: elif gdtype == pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_QUATERNION:
return _pandemonium_variant_to_pyobj_quat(p_gdvar) return _pandemonium_variant_to_pyobj_quat(p_gdvar)
elif gdtype == pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_AABB: elif gdtype == pandemonium_variant_type.PANDEMONIUM_VARIANT_TYPE_AABB:
@ -241,8 +241,8 @@ cdef inline Plane _pandemonium_variant_to_pyobj_plane(const pandemonium_variant
return ret return ret
cdef inline Quat _pandemonium_variant_to_pyobj_quat(const pandemonium_variant *p_gdvar): cdef inline Quaternion _pandemonium_variant_to_pyobj_quat(const pandemonium_variant *p_gdvar):
cdef Quat ret = Quat.__new__(Quat) cdef Quaternion ret = Quaternion.__new__(Quaternion)
ret._gd_data = gdapi10.pandemonium_variant_as_quat(p_gdvar) ret._gd_data = gdapi10.pandemonium_variant_as_quat(p_gdvar)
return ret return ret
@ -357,8 +357,8 @@ cdef bint pyobj_to_pandemonium_variant(object pyobj, pandemonium_variant *p_var)
gdapi10.pandemonium_variant_new_vector3(p_var, &(<Vector3>pyobj)._gd_data) gdapi10.pandemonium_variant_new_vector3(p_var, &(<Vector3>pyobj)._gd_data)
elif isinstance(pyobj, Plane): elif isinstance(pyobj, Plane):
gdapi10.pandemonium_variant_new_plane(p_var, &(<Plane>pyobj)._gd_data) gdapi10.pandemonium_variant_new_plane(p_var, &(<Plane>pyobj)._gd_data)
elif isinstance(pyobj, Quat): elif isinstance(pyobj, Quaternion):
gdapi10.pandemonium_variant_new_quat(p_var, &(<Quat>pyobj)._gd_data) gdapi10.pandemonium_variant_new_quat(p_var, &(<Quaternion>pyobj)._gd_data)
elif isinstance(pyobj, AABB): elif isinstance(pyobj, AABB):
gdapi10.pandemonium_variant_new_aabb(p_var, &(<AABB>pyobj)._gd_data) gdapi10.pandemonium_variant_new_aabb(p_var, &(<AABB>pyobj)._gd_data)
elif isinstance(pyobj, Basis): elif isinstance(pyobj, Basis):

View File

@ -1,6 +1,6 @@
import pytest import pytest
from pandemonium import Basis, Vector3, Quat from pandemonium import Basis, Vector3, Quaternion
def test_default(): def test_default():
@ -38,7 +38,7 @@ def test_bad_init_from_rows(args):
[ [
["from_axis_angle", (Vector3.ONE, 1.1)], ["from_axis_angle", (Vector3.ONE, 1.1)],
["from_euler", (Vector3.ONE,)], ["from_euler", (Vector3.ONE,)],
["from_euler", (Quat(),)], ["from_euler", (Quaternion(),)],
], ],
) )
def test_inits(field, args): def test_inits(field, args):
@ -98,11 +98,11 @@ def test_repr():
["scaled", Basis, (Vector3(),)], ["scaled", Basis, (Vector3(),)],
["get_scale", Vector3, ()], ["get_scale", Vector3, ()],
["get_euler", Vector3, ()], ["get_euler", Vector3, ()],
["get_quat", Quat, ()], ["get_quat", Quaternion, ()],
["set_quat", type(None), (Quat(),)], ["set_quat", type(None), (Quaternion(),)],
["set_axis_angle_scale", type(None), (Vector3.ONE, 1.1, Vector3.ONE)], ["set_axis_angle_scale", type(None), (Vector3.ONE, 1.1, Vector3.ONE)],
["set_euler_scale", type(None), (Vector3.ONE, Vector3.ONE)], ["set_euler_scale", type(None), (Vector3.ONE, Vector3.ONE)],
["set_quat_scale", type(None), (Quat(), Vector3.ONE)], ["set_quat_scale", type(None), (Quaternion(), Vector3.ONE)],
["tdotx", float, (Vector3(),)], ["tdotx", float, (Vector3(),)],
["tdoty", float, (Vector3(),)], ["tdoty", float, (Vector3(),)],
["tdotz", float, (Vector3(),)], ["tdotz", float, (Vector3(),)],

View File

@ -1,11 +1,11 @@
import pytest import pytest
from pandemonium import Basis, Quat, Vector3 from pandemonium import Basis, Quaternion, Vector3
def test_base(): def test_base():
v = Quat() v = Quaternion()
assert type(v) == Quat assert type(v) == Quaternion
@pytest.mark.parametrize( @pytest.mark.parametrize(
@ -17,9 +17,9 @@ def test_base():
], ],
) )
def test_inits(field, args): def test_inits(field, args):
build = getattr(Quat, field) build = getattr(Quaternion, field)
v = build(*args) v = build(*args)
assert isinstance(v, Quat) assert isinstance(v, Quaternion)
@pytest.mark.parametrize( @pytest.mark.parametrize(
@ -36,14 +36,14 @@ def test_inits(field, args):
], ],
) )
def test_bad_inits(field, args): def test_bad_inits(field, args):
build = getattr(Quat, field) build = getattr(Quaternion, field)
with pytest.raises(TypeError): with pytest.raises(TypeError):
v = build(*args) v = build(*args)
def test_repr(): def test_repr():
v = Quat(1.0, 2.0, 3.0, 4.0) v = Quaternion(1.0, 2.0, 3.0, 4.0)
assert repr(v) == "<Quat(x=1.0, y=2.0, z=3.0, w=4.0)>" assert repr(v) == "<Quaternion(x=1.0, y=2.0, z=3.0, w=4.0)>"
@pytest.mark.parametrize( @pytest.mark.parametrize(
@ -59,7 +59,7 @@ def test_instantiate(args):
# Can build it with int or float or nothing # Can build it with int or float or nothing
msg_tmpl = "%s vs (expected) %s (args=%s)" msg_tmpl = "%s vs (expected) %s (args=%s)"
args, expected_x, expected_y, expected_z, expected_w = args args, expected_x, expected_y, expected_z, expected_w = args
v = Quat(*args) v = Quaternion(*args)
assert pytest.approx(v.x) == expected_x, msg_tmpl % (v.x, expected_x, args) assert pytest.approx(v.x) == expected_x, msg_tmpl % (v.x, expected_x, args)
assert pytest.approx(v.y) == expected_y, msg_tmpl % (v.y, expected_y, args) assert pytest.approx(v.y) == expected_y, msg_tmpl % (v.y, expected_y, args)
assert pytest.approx(v.z) == expected_z, msg_tmpl % (v.z, expected_z, args) assert pytest.approx(v.z) == expected_z, msg_tmpl % (v.z, expected_z, args)
@ -68,21 +68,21 @@ def test_instantiate(args):
def test_bad_instantiate(): def test_bad_instantiate():
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat("a", 2, 3, 4) Quaternion("a", 2, 3, 4)
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(1, "b", 2, 4) Quaternion(1, "b", 2, 4)
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(1, 2, "c", 4) Quaternion(1, 2, "c", 4)
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(1, 2, 3, "d") Quaternion(1, 2, 3, "d")
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(None, 2, 3, 4) Quaternion(None, 2, 3, 4)
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(1, None, 2, 4) Quaternion(1, None, 2, 4)
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(1, 2, None, 4) Quaternion(1, 2, None, 4)
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(1, 2, 3, None) Quaternion(1, 2, 3, None)
@pytest.mark.parametrize( @pytest.mark.parametrize(
@ -90,20 +90,20 @@ def test_bad_instantiate():
[ [
["length", float, ()], ["length", float, ()],
["length_squared", float, ()], ["length_squared", float, ()],
["normalized", Quat, ()], ["normalized", Quaternion, ()],
["is_normalized", bool, ()], ["is_normalized", bool, ()],
["inverse", Quat, ()], ["inverse", Quaternion, ()],
["dot", float, (Quat(),)], ["dot", float, (Quaternion(),)],
["xform", Vector3, (Vector3(),)], ["xform", Vector3, (Vector3(),)],
["slerp", Quat, (Quat(), 1.0)], ["slerp", Quaternion, (Quaternion(), 1.0)],
["slerpni", Quat, (Quat(), 1.0)], ["slerpni", Quaternion, (Quaternion(), 1.0)],
["cubic_slerp", Quat, (Quat(), Quat(), Quat(), 1.0)], ["cubic_slerp", Quaternion, (Quaternion(), Quaternion(), Quaternion(), 1.0)],
["set_axis_angle", type(None), (Vector3(1, 2, 3), 3.3)], ["set_axis_angle", type(None), (Vector3(1, 2, 3), 3.3)],
], ],
ids=lambda x: x[0], ids=lambda x: x[0],
) )
def test_methods(field, ret_type, params): def test_methods(field, ret_type, params):
v = Quat() v = Quaternion()
# Don't test methods' validity but bindings one # Don't test methods' validity but bindings one
assert hasattr(v, field) assert hasattr(v, field)
method = getattr(v, field) method = getattr(v, field)
@ -116,7 +116,7 @@ def test_methods(field, ret_type, params):
"field,ret_type", [("x", float), ("y", float), ("z", float), ("w", float)], ids=lambda x: x[0] "field,ret_type", [("x", float), ("y", float), ("z", float), ("w", float)], ids=lambda x: x[0]
) )
def test_properties(field, ret_type): def test_properties(field, ret_type):
v = Quat() v = Quaternion()
assert hasattr(v, field) assert hasattr(v, field)
field_val = getattr(v, field) field_val = getattr(v, field)
assert type(field_val) == ret_type assert type(field_val) == ret_type
@ -141,13 +141,13 @@ def test_properties(field, ret_type):
ids=lambda x: x[0], ids=lambda x: x[0],
) )
def test_bad_properties(field, bad_value): def test_bad_properties(field, bad_value):
v = Quat() v = Quaternion()
with pytest.raises(TypeError): with pytest.raises(TypeError):
setattr(v, field, bad_value) setattr(v, field, bad_value)
def test_unary(): def test_unary():
v = Quat(1, 2, 3, 4) v = Quaternion(1, 2, 3, 4)
v2 = -v v2 = -v
assert v2.x == -1 assert v2.x == -1
assert v2.y == -2 assert v2.y == -2
@ -158,7 +158,7 @@ def test_unary():
assert v3.y == 2 assert v3.y == 2
assert v3.z == 3 assert v3.z == 3
assert v3.w == 4 assert v3.w == 4
v = Quat(1.5, 2.5, 3.5, 4.5) v = Quaternion(1.5, 2.5, 3.5, 4.5)
v2 = -v v2 = -v
assert v2.x == -1.5 assert v2.x == -1.5
assert v2.y == -2.5 assert v2.y == -2.5
@ -174,89 +174,89 @@ def test_unary():
@pytest.mark.parametrize( @pytest.mark.parametrize(
"param,result", "param,result",
[ [
(Quat(0, 0, 0, 0), Quat(2, 3, 4, 5)), (Quaternion(0, 0, 0, 0), Quaternion(2, 3, 4, 5)),
(Quat(4, 3, 2, 1), Quat(6, 6, 6, 6)), (Quaternion(4, 3, 2, 1), Quaternion(6, 6, 6, 6)),
(Quat(-4, -3, -2, -1), Quat(-2, -0, 2, 4)), (Quaternion(-4, -3, -2, -1), Quaternion(-2, -0, 2, 4)),
], ],
ids=lambda x: x[0], ids=lambda x: x[0],
) )
def test_add(param, result): def test_add(param, result):
calc = Quat(2, 3, 4, 5) + param calc = Quaternion(2, 3, 4, 5) + param
assert calc == result assert calc == result
@pytest.mark.parametrize( @pytest.mark.parametrize(
"param,result", "param,result",
[ [
(Quat(0, 0, 0, 0), Quat(2, 3, 4, 5)), (Quaternion(0, 0, 0, 0), Quaternion(2, 3, 4, 5)),
(Quat(5, 4, 3, 2), Quat(-3, -1, 1, 3)), (Quaternion(5, 4, 3, 2), Quaternion(-3, -1, 1, 3)),
(Quat(-1, -1, -1, -1), Quat(3, 4, 5, 6)), (Quaternion(-1, -1, -1, -1), Quaternion(3, 4, 5, 6)),
], ],
ids=lambda x: x[0], ids=lambda x: x[0],
) )
def test_sub(param, result): def test_sub(param, result):
calc = Quat(2, 3, 4, 5) - param calc = Quaternion(2, 3, 4, 5) - param
assert calc == result assert calc == result
@pytest.mark.parametrize("arg", [None, 1, "dummy"], ids=lambda x: x[0]) @pytest.mark.parametrize("arg", [None, 1, "dummy"], ids=lambda x: x[0])
def test_bad_add(arg): def test_bad_add(arg):
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(2, 3, 4, 5) + arg Quaternion(2, 3, 4, 5) + arg
@pytest.mark.parametrize("arg", [None, 1, "dummy"], ids=lambda x: x[0]) @pytest.mark.parametrize("arg", [None, 1, "dummy"], ids=lambda x: x[0])
def test_bad_sub(arg): def test_bad_sub(arg):
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(2, 3, 4, 5) - arg Quaternion(2, 3, 4, 5) - arg
@pytest.mark.parametrize("arg", [None, "dummy", Quat(1, 1, 1, 1)], ids=lambda x: x[0]) @pytest.mark.parametrize("arg", [None, "dummy", Quaternion(1, 1, 1, 1)], ids=lambda x: x[0])
def test_bad_div(arg): def test_bad_div(arg):
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(2, 3, 4, 5) / arg Quaternion(2, 3, 4, 5) / arg
def test_zero_div(): def test_zero_div():
with pytest.raises(ZeroDivisionError): with pytest.raises(ZeroDivisionError):
Quat(2, 3, 4, 5) / 0 Quaternion(2, 3, 4, 5) / 0
@pytest.mark.parametrize("arg", [None, "dummy"], ids=lambda x: x[0]) @pytest.mark.parametrize("arg", [None, "dummy"], ids=lambda x: x[0])
def test_bad_mul(arg): def test_bad_mul(arg):
with pytest.raises(TypeError): with pytest.raises(TypeError):
Quat(2, 3, 4, 5) * arg Quaternion(2, 3, 4, 5) * arg
@pytest.mark.parametrize( @pytest.mark.parametrize(
"param,result", "param,result",
[(0, Quat(0, 0, 0, 0)), (1, Quat(2, 3, 4, 5)), (2.5, Quat(5, 7.5, 10, 12.5))], [(0, Quaternion(0, 0, 0, 0)), (1, Quaternion(2, 3, 4, 5)), (2.5, Quaternion(5, 7.5, 10, 12.5))],
ids=lambda x: x[0], ids=lambda x: x[0],
) )
def test_mul(param, result): def test_mul(param, result):
calc = Quat(2, 3, 4, 5) * param calc = Quaternion(2, 3, 4, 5) * param
assert calc == result assert calc == result
@pytest.mark.parametrize( @pytest.mark.parametrize(
"param,result", "param,result",
[(1, Quat(2, 3, 4, 5)), (0.5, Quat(4, 6, 8, 10)), (2, Quat(1, 1.5, 2, 2.5))], [(1, Quaternion(2, 3, 4, 5)), (0.5, Quaternion(4, 6, 8, 10)), (2, Quaternion(1, 1.5, 2, 2.5))],
ids=lambda x: x[0], ids=lambda x: x[0],
) )
def test_div(param, result): def test_div(param, result):
calc = Quat(2, 3, 4, 5) / param calc = Quaternion(2, 3, 4, 5) / param
assert calc == result assert calc == result
def test_equal(): def test_equal():
arr = Quat(0.1, 1, 2, 3) arr = Quaternion(0.1, 1, 2, 3)
other = Quat(0.1, 1, 2, 3) other = Quaternion(0.1, 1, 2, 3)
assert arr == other assert arr == other
bad = Quat(0.1, 1, 2, 4) bad = Quaternion(0.1, 1, 2, 4)
assert not arr == bad # Force use of __eq__ assert not arr == bad # Force use of __eq__
@pytest.mark.parametrize("arg", [None, 0, "foo", Quat(0.1, 1, 2, 4)]) @pytest.mark.parametrize("arg", [None, 0, "foo", Quaternion(0.1, 1, 2, 4)])
def test_bad_equal(arg): def test_bad_equal(arg):
arr = Quat(0.1, 1, 2, 3) arr = Quaternion(0.1, 1, 2, 3)
assert arr != arg assert arr != arg

View File

@ -6,7 +6,7 @@ from pandemonium import GDString
def test_base(): def test_base():
assert GDString().empty() assert GDString().empty()
# Todo later: GDString creation from GD types: Vector2/3, Transform, Plane, Quat, AABB, Color, ... # Todo later: GDString creation from GD types: Vector2/3, Transform, Plane, Quaternion, AABB, Color, ...
s = GDString("12") s = GDString("12")
assert s.begins_with(GDString("1")) assert s.begins_with(GDString("1"))
assert s.bigrams().size() == 1 assert s.bigrams().size() == 1