diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-28 10:46:17 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-28 10:46:17 +0100 |
| commit | 2f823a78162d3b77727a5eb440c25aa7524d81c3 (patch) | |
| tree | e078fcc407c6314bbb8e9268b6639463ae17d3e8 /tests/test_evaluate.py | |
| parent | d9ed29956b111c0881f546d7f6beddf9af26dc48 (diff) | |
| download | generat3D-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_evaluate.py')
| -rw-r--r-- | tests/test_evaluate.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test_evaluate.py b/tests/test_evaluate.py index 6668b0e..da5b840 100644 --- a/tests/test_evaluate.py +++ b/tests/test_evaluate.py @@ -17,9 +17,12 @@ import contextlib import io +import json +import tempfile import unittest from pathlib import Path +from generat3d import Error from generat3d.evaluate import evaluate from generat3d.library import Library from generat3d.scene import load @@ -37,3 +40,17 @@ class EvaluateTest(unittest.TestCase): 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 + + def test_overflow_is_error(self): + with tempfile.TemporaryDirectory() as d: + root = Path(d) / "extra" + p = root / "data/Test/Fig/Morphs/Test/Big.dsf" + p.parent.mkdir(parents=True) + p.write_text(json.dumps({"modifier_library": [{ + "id": "Big", "parent": "/data/Test/Fig/Fig.dsf#Fig", + "channel": {"id": "value", "value": 1e300}, + "morph": {"vertex_count": 3, "deltas": {"values": [[0, 1e300, 0, 0]]}}}]})) + with contextlib.redirect_stderr(io.StringIO()): + scene = load(DATA / "scene.duf", Library([DATA / "lib", root])) + with self.assertRaisesRegex(Error, "non-finite"): + evaluate(scene) |
