///|
fn main {
let official = @arachne.moonbit_regexp_adapter()
let reference = @arachne.reference_ascii_adapter()
let report = @arachne.run_contracts(
[
@arachne.ContractCase::expect_match(
id="request-id",
pattern="^req-[0-9]+$",
input="req-42",
text="req-42",
captures=[],
),
@arachne.ContractCase::expect_match(
id="service-token",
pattern="[A-Za-z0-9_]+@[A-Za-z0-9_]+",
input="owner: moonbit_1@runtime",
text="moonbit_1@runtime",
captures=[],
),
],
[official, reference],
official.id,
).unwrap()
println(report.summary())
if !report.is_compatible() {
println(report.format_findings())
abort("reference engine sample differs from the official backend")
}
}