35 lines
941 B
Python
35 lines
941 B
Python
|
|
"""MAS v0.1 conformance corpus.
|
||
|
|
|
||
|
|
`addresses.json` is vendored unchanged from the spec bundle
|
||
|
|
(`mas-v0.1-spec/conformance/addresses.json`) and is normative.
|
||
|
|
`properties.json` adds implementation-independent property and boundary
|
||
|
|
cases. `statutes/` holds statute validation cases. Every language
|
||
|
|
implementation should consume these files unchanged.
|
||
|
|
"""
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
import json
|
||
|
|
from importlib import resources
|
||
|
|
|
||
|
|
|
||
|
|
def _load(name: str):
|
||
|
|
return json.loads(resources.files(__name__).joinpath(name).read_text(encoding="utf-8"))
|
||
|
|
|
||
|
|
|
||
|
|
def address_fixtures() -> list[dict]:
|
||
|
|
return _load("addresses.json")
|
||
|
|
|
||
|
|
|
||
|
|
def property_fixtures() -> list[dict]:
|
||
|
|
return _load("properties.json")
|
||
|
|
|
||
|
|
|
||
|
|
def statute_cases() -> list[dict]:
|
||
|
|
"""Each case: {id, file, host, expect: "valid"|"schema"|"semantic", codes?}."""
|
||
|
|
return _load("statutes/cases.json")
|
||
|
|
|
||
|
|
|
||
|
|
def statute_document(file: str) -> dict:
|
||
|
|
return _load(f"statutes/{file}")
|