23 lines
1.1 KiB
Python
23 lines
1.1 KiB
Python
"""Check that the benchmark's unhyphenated name words are not broken into fragments."""
|
|
import argparse
|
|
import json
|
|
from pathlib import Path
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument("directory", type=Path)
|
|
args = parser.parse_args()
|
|
source = json.loads((args.directory / "measurements.json").read_text(encoding="utf-8"))
|
|
fixtures = [{"fixture": row["fixture"], "brokenWords": [word for word in row["measured"]["splitNameWords"] if "-" not in word]}
|
|
for row in source["fixtures"]]
|
|
result = {"total": len(fixtures), "passed": sum(not row["brokenWords"] for row in fixtures), "fixtures": fixtures,
|
|
"limits": "Finite synthetic name fixture only; natural hyphen breaks permitted, arbitrary names/custom font sizes not guaranteed."}
|
|
(args.directory / "name-wrap-proof.json").write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8")
|
|
print(json.dumps(result, ensure_ascii=True))
|
|
raise SystemExit(0 if result["passed"] == result["total"] else 1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|