from pathlib import Path
import re
root=Path(__file__).resolve().parents[1]
compose=(root/"src/com/lemenzo/multisms/ComposeActivity.java").read_text()
compact=re.sub(r'\s+','',compose)
checks={
"new send creates broadcast id":'StringbroadcastKey="broadcast."+gid;' in compact and 'UUID.randomUUID().toString()' in compose,
"same group reuses persistent broadcast id":'StringbroadcastId=sp.getString(broadcastKey,null);' in compact,
"every request carries broadcast id":'.putExtra("broadcast_id",broadcastId)' in compact,
"every request carries message id":'.putExtra("broadcast_message_id",broadcastMessageId)' in compact,
"every request carries full recipient count":'.putExtra("broadcast_total",recipients.size())' in compact,
"recipient name supplied":'.putExtra("recipient_name",recipientName)' in compact,
"group title supplied":'.putExtra("broadcast_title",store.groupName(gid))' in compact,
"base body supplied":'.putExtra("broadcast_body",body.getText().toString())' in compact,
"per-recipient text preserved":'.putExtra("text",target.text)' in compact,
"request id status protocol preserved":'.putExtra("request_id",requestId)' in compact,
"25ms paced dispatch preserved":'mainHandler.postDelayed(' in compose and ',25);' in compact,
}
bad=[k for k,v in checks.items() if not v]
if bad:
 print("MULTI SMS → MESSENGER BROADCAST VALIDATION: FAIL")
 for x in bad: print("-",x)
 raise SystemExit(1)
print("MULTI SMS → MESSENGER BROADCAST VALIDATION: PASS")
for x in checks: print("-",x)
