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
|