Extend simulation runtime coverage and kinematics support
This commit is contained in:
52
scripts/test_configuration_regression.py
Normal file
52
scripts/test_configuration_regression.py
Normal file
@@ -0,0 +1,52 @@
|
||||
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_configuration_regression import generate
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
REPORT = ROOT / "coverage/configuration-regression.report.json"
|
||||
|
||||
|
||||
class ConfigurationRegressionTests(unittest.TestCase):
|
||||
def test_report_contract(self):
|
||||
report = json.loads(REPORT.read_text(encoding="utf-8"))
|
||||
self.assertEqual(report["schema"], "configuration-regression-report.v1")
|
||||
self.assertEqual(report["implementation_status"], "verified")
|
||||
self.assertEqual(report["counts"]["registered_configuration_entries"], 264)
|
||||
self.assertEqual(len(report["configuration_entries"]), 264)
|
||||
self.assertEqual(report["closure"]["graph_orphan_entry_ids"], [])
|
||||
self.assertEqual(report["closure"]["unowned_template_ids"], [])
|
||||
self.assertEqual(report["closure"]["resource_orphan_entrypoints"], [])
|
||||
self.assertEqual(report["runtime"]["native_wasm"]["status"], "passed")
|
||||
self.assertEqual(report["runtime"]["worker"]["status"], "passed")
|
||||
self.assertEqual(report["recovery_summary"]["endpoints_equal"], True)
|
||||
self.assertEqual(report["oracle"]["status"], "blocked")
|
||||
self.assertTrue(report["oracle"]["derived_configuration_results_are_not_official"])
|
||||
|
||||
def test_all_entry_ids_are_unique_and_repeat_stable(self):
|
||||
report = json.loads(REPORT.read_text(encoding="utf-8"))
|
||||
ids = [row["config_id"] for row in report["configuration_entries"]]
|
||||
self.assertEqual(len(ids), len(set(ids)))
|
||||
for group in (report["runtime"]["native"], report["runtime"]["wasm"]):
|
||||
self.assertEqual(group["status"], "passed")
|
||||
self.assertTrue(all(row["repeat_stable"] for row in group["records"].values()))
|
||||
self.assertTrue(all(row["repeat_stable"] for row in report["runtime"]["worker"]["records"].values()))
|
||||
|
||||
def test_generation_is_deterministic(self):
|
||||
with TemporaryDirectory() as directory:
|
||||
first_path = Path(directory) / "first.json"
|
||||
second_path = Path(directory) / "second.json"
|
||||
first = generate(ROOT, first_path)
|
||||
second = generate(ROOT, second_path)
|
||||
self.assertEqual(first, second)
|
||||
self.assertEqual(first_path.read_bytes(), second_path.read_bytes())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user