aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_scene.py
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-28 10:46:17 +0100
committerDanilo M. <danix@danix.xyz>2026-10-28 10:46:17 +0100
commit2f823a78162d3b77727a5eb440c25aa7524d81c3 (patch)
treee078fcc407c6314bbb8e9268b6639463ae17d3e8 /tests/test_scene.py
parentd9ed29956b111c0881f546d7f6beddf9af26dc48 (diff)
downloadgenerat3D-2f823a78162d3b77727a5eb440c25aa7524d81c3.tar.gz
generat3D-2f823a78162d3b77727a5eb440c25aa7524d81c3.zip
Fail on non-finite dial values and results
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/test_scene.py')
-rw-r--r--tests/test_scene.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/test_scene.py b/tests/test_scene.py
index 0d2e3c9..fe6c34d 100644
--- a/tests/test_scene.py
+++ b/tests/test_scene.py
@@ -170,7 +170,7 @@ class SceneTest(unittest.TestCase):
load_quiet(self.duf(scene))
def test_dial_not_a_number(self):
- with self.assertRaisesRegex(Error, "dial value is not a number"):
+ with self.assertRaisesRegex(Error, "dial value is not a finite number"):
load_quiet(self.duf({"nodes": self.base_nodes(), "modifiers": [
{"id": "Tall", "url": "/data/Test/Fig/Morphs/Test/Tall.dsf#Tall",
"parent": "#Fig", "channel": {"id": "value", "current_value": "a"}}]}))
@@ -271,3 +271,13 @@ class SceneTest(unittest.TestCase):
"output": "Hip:/data/Test/Fig2/Fig2.dsf#hip?center_point/y",
"operations": [{"op": "push", "val": 1}]}]})
self.assertEqual(len(scene.graph.formulas["hip:hip?center_point/y"]), 1)
+
+ def test_dial_not_finite(self):
+ for v in ("1e400", "10**400"):
+ text = json.dumps({"scene": {"nodes": self.base_nodes(), "animations": [
+ {"url": "Fig:#Tall?value", "keys": [[0, 0]]}]}}).replace(
+ '"keys": [[0, 0]]', '"keys": [[0, %s]]' % ("1e400" if v == "1e400" else "1" + "0" * 400))
+ p = self.dir / "s.duf"
+ p.write_text(text)
+ with self.assertRaisesRegex(Error, "dial value is not a finite number"):
+ load_quiet(p)