Implement WebAssembly runtime and kinematics coverage
This commit is contained in:
44
scripts/test_kinematics_oracle_report.py
Normal file
44
scripts/test_kinematics_oracle_report.py
Normal file
@@ -0,0 +1,44 @@
|
||||
import json
|
||||
import sys
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from tempfile import TemporaryDirectory
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
||||
|
||||
from generate_kinematics_oracle_report import generate
|
||||
|
||||
|
||||
class KinematicsOracleReportTests(unittest.TestCase):
|
||||
def make_tree(self):
|
||||
directory = TemporaryDirectory()
|
||||
root = Path(directory.name)
|
||||
coverage = root / "coverage"
|
||||
coverage.mkdir()
|
||||
closure = {
|
||||
"context_id": "test-context", "missing_required_test_roots": ["linuxcnc/unit_tests/kinematics"],
|
||||
}
|
||||
(coverage / "kinematics-source-closure.report.json").write_text(json.dumps(closure), encoding="utf-8")
|
||||
sample = {
|
||||
"sample_id": "kinematics-sample:cartesian:nominal-roundtrip", "family": "cartesian",
|
||||
"configuration_id": "config:demo", "operation": "fk_ik_fk_roundtrip", "input": {"joint": [1.0]},
|
||||
"expected": {"invariant": "pose_roundtrip", "absolute_tolerance": 1e-9},
|
||||
"execution": {"status": "blocked", "reason": "missing official oracle"},
|
||||
}
|
||||
(coverage / "kinematics-oracle-samples.jsonl").write_text(json.dumps(sample) + "\n", encoding="utf-8")
|
||||
return directory, root
|
||||
|
||||
def test_missing_official_root_blocks_without_fake_golden(self):
|
||||
directory, root = self.make_tree()
|
||||
self.addCleanup(directory.cleanup)
|
||||
report = generate(root, root / "report.json", root / "schema.json")
|
||||
self.assertEqual(report["status"], "blocked")
|
||||
self.assertEqual(report["sample_count"], 1)
|
||||
self.assertEqual(report["ready_count"], 0)
|
||||
self.assertEqual(report["records"][0]["result"]["error_code"], "MISSING_OFFICIAL_ORACLE")
|
||||
self.assertEqual(report["records"][0]["execution"]["status"], "blocked")
|
||||
self.assertEqual(json.loads((root / "schema.json").read_text(encoding="utf-8"))["$id"], "linuxcnc-web-wasm/kinematics-golden.v1")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user