From 6304f9b074452af3648266fe23c773f8fb478270 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 28 Oct 2026 10:35:56 +0100 Subject: Evaluate scenes into morphed vertices and rest data Co-Authored-By: Claude Haiku 5.5 --- tests/test_evaluate.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tests/test_evaluate.py (limited to 'tests/test_evaluate.py') diff --git a/tests/test_evaluate.py b/tests/test_evaluate.py new file mode 100644 index 0000000..6668b0e --- /dev/null +++ b/tests/test_evaluate.py @@ -0,0 +1,39 @@ +# generat3D - evaluate Daz DSON scenes and write .dbz files +# Copyright (C) 2026 Danilo M. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +import contextlib +import io +import unittest +from pathlib import Path + +from generat3d.evaluate import evaluate +from generat3d.library import Library +from generat3d.scene import load + +DATA = Path(__file__).parent / "data" + + +class EvaluateTest(unittest.TestCase): + def test_synthetic_scene(self): + with contextlib.redirect_stderr(io.StringIO()): + scene = load(DATA / "scene.duf", Library([DATA / "lib"])) + verts, rest = evaluate(scene) + self.assertEqual(verts.tolist(), [[-0.5, 0, 0], [1.5, 2, 0], [0, 1, 0]]) + self.assertEqual(rest["hip"]["center_point"], [0, 7, 0]) + self.assertEqual(rest["hip"]["end_point"], [0, 8, 0]) + self.assertEqual(rest["Fig"]["end_point"], [0, 10, 0]) + self.assertEqual(scene.figure.verts.tolist()[0], [0, 0, 0]) # base untouched -- cgit v1.2.3