From b6493df77ffda096a2edf512168f554e35a3aaf0 Mon Sep 17 00:00:00 2001 From: izzy lyseggen Date: Mon, 13 Dec 2021 11:48:05 +0000 Subject: [PATCH] test(transform): serialisation and vector transform tests --- tests/test_transforms.py | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/tests/test_transforms.py b/tests/test_transforms.py index 21e92a5..d85288a 100644 --- a/tests/test_transforms.py +++ b/tests/test_transforms.py @@ -1,6 +1,7 @@ from typing import List import pytest -from specklepy.objects.geometry import Point +from specklepy.api import operations +from specklepy.objects.geometry import Point, Vector from specklepy.objects.other import ( Transform, BlockInstance, @@ -32,6 +33,16 @@ def points_values(): return coords +@pytest.fixture() +def vector(): + return Vector(x=1, y=10, z=2) + + +@pytest.fixture() +def vector_value(): + return [1, 1, 2] + + @pytest.fixture() def transform(): """Translates to [1, 2, 0] and scales z by 0.5""" @@ -67,6 +78,7 @@ def test_point_transform(point: Point, transform: Transform): def test_points_transform(points: List[Point], transform: Transform): new_points = transform.apply_to_points(points) + for (i, new_point) in enumerate(new_points): assert new_point.x == points[i].x + 1 assert new_point.y == points[i].y + 2 @@ -75,6 +87,7 @@ def test_points_transform(points: List[Point], transform: Transform): def test_point_value_transform(point_value: List[float], transform: Transform): new_coords = transform.apply_to_point_value(point_value) + assert new_coords[0] == point_value[0] + 1 assert new_coords[1] == point_value[1] + 2 assert new_coords[2] == point_value[2] * 0.5 @@ -82,12 +95,29 @@ def test_point_value_transform(point_value: List[float], transform: Transform): def test_points_values_transform(points_values: List[float], transform: Transform): new_coords = transform.apply_to_points_values(points_values) + for i in range(0, len(points_values), 3): assert new_coords[i] == points_values[i] + 1 assert new_coords[i + 1] == points_values[i + 1] + 2 assert new_coords[i + 2] == points_values[i + 2] * 0.5 +def test_vector_transform(vector: Vector, transform: Transform): + new_vector = transform.apply_to_vector(vector) + + assert new_vector.x == vector.x + assert new_vector.y == vector.y + assert new_vector.z == vector.z * 0.5 + + +def test_vector_value_transform(vector_value: List[float], transform: Transform): + new_coords = transform.apply_to_vector_value(vector_value) + + assert new_coords[0] == vector_value[0] + assert new_coords[1] == vector_value[1] + assert new_coords[2] == vector_value[2] * 0.5 + + def test_transform_fails_with_malformed_value(): with pytest.raises(ValueError): Transform.from_list("asdf") @@ -95,5 +125,8 @@ def test_transform_fails_with_malformed_value(): Transform.from_list([7, 8, 9]) -def test_transform_serialisation(): - return \ No newline at end of file +def test_transform_serialisation(transform: Transform): + serialized = operations.serialize(transform) + deserialized = operations.deserialize(serialized) + + assert transform.get_id() == deserialized.get_id() \ No newline at end of file