From 2f823a78162d3b77727a5eb440c25aa7524d81c3 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 28 Oct 2026 10:46:17 +0100 Subject: Fail on non-finite dial values and results Co-Authored-By: Claude Sonnet 5.5 --- tests/test_scene.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'tests/test_scene.py') 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) -- cgit v1.2.3