#!/usr/bin/env python3
from pathlib import Path
import json,sys,unicodedata
text=unicodedata.normalize('NFC',Path(sys.argv[1]).read_text()).casefold()
def a(*xs):return any(x.casefold() in text for x in xs)
checks={
'opening':a('kem thật lớn','ngụm nước đá') and a('đau buốt','đau nhói'),
'classification':a('ichd-3') and a('hệ thống phân loại'),
'palate_pharynx':a('vòm miệng') and a('hầu sau','thành sau họng'),
'trigeminal':a('dây thần kinh sinh ba','dây thần kinh sọ số năm'),
'referred_pain':a('đau quy chiếu') and a('trán','thái dương'),
'vascular_uncertainty':a('jorge serrador') and a('động mạch não trước') and a('không chứng minh','chưa có một cơ chế'),
'migraine_evidence':a('neil raskin') and a('walter knittle') and a('đau nửa đầu'),
'speed_evidence':a('maya kaczorowski') and a('janusz kaczorowski') and a('ăn nhanh'),
'tooth':a('ê buốt răng') and a('men răng','ngà răng'),
'sinus':a('viêm xoang') and a('nghẹt mũi','giảm khứu giác'),
'practical':a('miếng nhỏ hơn','ngụm nhỏ hơn') and a('lưỡi lên vòm miệng'),
'benign':a('thường lành tính'),
'red_flags':a('tồi tệ nhất') and a('yếu liệt') and a('cứng cổ') and a('chấn thương đầu') and a('ngất'),
'closing':a('không làm não bạn đông lại') and a('mạng bảo vệ cảm giác')}
forbidden={'narrator_pronoun':a(' chúng ta ',' chúng tôi ',' tôi '),'settled_single':a('cơ chế duy nhất đã được chứng minh')}
errors=[k for k,v in checks.items() if not v]+['forbidden:'+k for k,v in forbidden.items() if v]
out={'status':'PASS' if not errors else 'FAIL','checks':checks,'forbidden':forbidden,'errors':errors};print(json.dumps(out,ensure_ascii=False,indent=2));raise SystemExit(bool(errors))
