test: to_align_offset behaves as expected

This commit is contained in:
Ethan Rooke 2024-11-16 19:44:11 -06:00
parent 8e5cd102cd
commit e8365566f7
No known key found for this signature in database
GPG key ID: B2874A77049A5923

79
tests/test_align.py Normal file
View file

@ -0,0 +1,79 @@
import pytest
from build123d.build_enums import Align
from build123d.geometry import Vector, to_align_offset
@pytest.mark.parametrize(
"x_align,x_expect",
[
(Align.MAX, -0.5),
(Align.CENTER, 0.25),
(Align.MIN, 1),
(Align.NONE, 0),
],
)
@pytest.mark.parametrize(
"y_align,y_expect",
[
(Align.MAX, -1),
(Align.CENTER, 0.25),
(Align.MIN, 1.5),
(Align.NONE, 0),
],
)
@pytest.mark.parametrize(
"z_align,z_expect",
[
(Align.MAX, -1),
(Align.CENTER, -0.75),
(Align.MIN, -0.5),
(Align.NONE, 0),
],
)
def test_align(
x_align,
x_expect,
y_align,
y_expect,
z_align,
z_expect,
):
offset = to_align_offset(
min_point=(-1, -1.5, 0.5),
max_point=(0.5, 1.0, 1.0),
align=(x_align, y_align, z_align),
)
assert offset.X == x_expect
assert offset.Y == y_expect
assert offset.Z == z_expect
@pytest.mark.parametrize("alignment", Align)
def test_align_single(alignment):
min_point = (-1, -1.5, 0.5)
max_point = (0.5, 1, 1)
expected = to_align_offset(
min_point=min_point,
max_point=max_point,
align=(alignment, alignment, alignment),
)
offset = to_align_offset(
min_point=min_point,
max_point=max_point,
align=alignment,
)
assert expected == offset
def test_align_center():
min_point = (-1, -1.5, 0.5)
max_point = (0.5, 1, 1)
center = (4, 2, 6)
offset = to_align_offset(
min_point=min_point,
max_point=max_point,
center=center,
align=Align.CENTER,
)
assert offset == -Vector(center)