aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_evaluate.py
blob: 6668b0eeec5cd8dd2c21e46aa9b1238d599776ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# generat3D - evaluate Daz DSON scenes and write .dbz files
# Copyright (C) 2026 Danilo M. <danix@danix.xyz>
#
# 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