mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 19:08:55 -04:00
63 lines
1.5 KiB
Python
63 lines
1.5 KiB
Python
import pytest
|
|
from copy import copy
|
|
from panda3d import core
|
|
|
|
|
|
def test_mat3_aliases():
|
|
assert core.LMatrix3 is core.Mat3
|
|
assert core.LMatrix3f is core.Mat3F
|
|
assert core.LMatrix3d is core.Mat3D
|
|
|
|
assert (core.LMatrix3f is core.Mat3) != (core.LMatrix3d is core.Mat3)
|
|
|
|
|
|
@pytest.mark.parametrize("type", (core.LMatrix3f, core.LMatrix3d))
|
|
def test_mat3_constructor(type):
|
|
# Test that three ways of construction produce the same matrix.
|
|
mat1 = type((1, 2, 3),
|
|
(4, 5, 6),
|
|
(7, 8, 9))
|
|
|
|
mat2 = type(1, 2, 3, 4, 5, 6, 7, 8, 9)
|
|
|
|
mat3 = type((1, 2, 3, 4, 5, 6, 7, 8, 9))
|
|
|
|
assert mat1 == mat2
|
|
assert mat2 == mat3
|
|
assert mat1 == mat3
|
|
|
|
|
|
@pytest.mark.parametrize("type", (core.LMatrix3d, core.LMatrix3f))
|
|
def test_mat3_copy_constuctor(type):
|
|
mat1 = type((1, 2, 3),
|
|
(4, 5, 6),
|
|
(7, 8, 9))
|
|
|
|
# Make a copy. Changing it should not change the original.
|
|
mat2 = type(mat1)
|
|
assert mat1 == mat2
|
|
mat2[0][0] = 100
|
|
assert mat1 != mat2
|
|
|
|
# Make a copy by unpacking.
|
|
mat2 = type(*mat1)
|
|
assert mat1 == mat2
|
|
mat2[0][0] = 100
|
|
assert mat1 != mat2
|
|
|
|
# Make a copy by calling copy.copy.
|
|
mat2 = copy(mat1)
|
|
assert mat1 == mat2
|
|
mat2[0][0] = 100
|
|
assert mat1 != mat2
|
|
|
|
|
|
@pytest.mark.parametrize("type", (core.LMatrix3d, core.LMatrix3f))
|
|
def test_mat3_invert_same_type(type):
|
|
mat = type((1, 0, 0,
|
|
0, 1, 0,
|
|
1, 2, 3))
|
|
|
|
inv = core.invert(mat)
|
|
assert mat.__class__ == inv.__class__
|