broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('ground order / deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['filing-deadline'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]>=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('ground order / deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['filing-deadline'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

prompt:
A filing on the final objection tick loses its remedy.

A provisional award challenge has bidder standing, grounds, evidence receipt, hearing outcomes and a limited remedy. Filing preserves the award but blocks finality until all admissible objections are resolved. Dates are ticks and list entries retain filing order. Named decision filing-deadline: For filing deadline, apply the stipulated decision x["filed"]<=x["deadline"].

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = bool(set(x["evidence"])&set(x["received"]))
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('out of order evidence', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e2', 'e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('ground order / out of order evidence', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e2', 'e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['evidence-completeness'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

meaning: Fixture-count band, not measured model difficulty

deps: stdlib

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = x["evidence"]==x["received"]
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('out of order evidence', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e2', 'e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('ground order / out of order evidence', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e2', 'e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['evidence-completeness'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

prompt:
An objection proceeds with only part of its required evidence.

A provisional award challenge has bidder standing, grounds, evidence receipt, hearing outcomes and a limited remedy. Filing preserves the award but blocks finality until all admissible objections are resolved. Dates are ticks and list entries retain filing order. Named decision evidence-completeness: For evidence completeness, apply the stipulated decision set(x["evidence"])<=set(x["received"]).

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = bool(x["resolved"])
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all withdrawn', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1', 'o2'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('ground order / all withdrawn', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1', 'o2'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['open-objection-finality'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = set(x["objections"])<=set(x["resolved"])
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all withdrawn', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1', 'o2'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('ground order / all withdrawn', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1', 'o2'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [True, True, True, True, True]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [False, False, False, False, False])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['open-objection-finality'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

prompt:
One resolved objection makes an award final while others remain open.

A provisional award challenge has bidder standing, grounds, evidence receipt, hearing outcomes and a limited remedy. Filing preserves the award but blocks finality until all admissible objections are resolved. Dates are ticks and list entries retain filing order. Named decision open-objection-finality: For open objection finality, apply the stipulated decision not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"])).

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2']]), ('ground order / none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2']]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['remedy-lot-scope'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2']]), ('ground order / none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2'], ['L1', 'L2']]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['L1'], ['L1'], ['L1'], ['L1'], ['L1']])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['remedy-lot-scope'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

prompt:
A successful challenge voids unaffected lots or a rejected challenge voids affected lots.

A provisional award challenge has bidder standing, grounds, evidence receipt, hearing outcomes and a limited remedy. Filing preserves the award but blocks finality until all admissible objections are resolved. Dates are ticks and list entries retain filing order. Named decision remedy-lot-scope: For remedy lot scope, apply the stipulated decision [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"].

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = x["objections"]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('all withdrawn', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1', 'o2'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [[], [], [], [], []]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['withdrawn-hearing-removal'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["resolved"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('all withdrawn', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1', 'o2'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [[], [], [], [], []]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['o2'], ['o2'], ['o2'], ['o2'], ['o2']])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['withdrawn-hearing-removal'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

prompt:
Withdrawn objections continue to occupy the hearing queue.

A provisional award challenge has bidder standing, grounds, evidence receipt, hearing outcomes and a limited remedy. Filing preserves the award but blocks finality until all admissible objections are resolved. Dates are ticks and list entries retain filing order. Named decision withdrawn-hearing-removal: For withdrawn hearing removal, apply the stipulated decision [o for o in x["objections"] if o not in x["withdrawn"]].

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = x["deposit"]
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('frivolous filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': True, 'notified': ['a']}, [0, 0, 0, 0, 0]), ('ground order / frivolous filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': True, 'notified': ['a']}, [0, 0, 0, 0, 0]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['objection-deposit-disposition'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = x["deposit"] if x["upheld"] else 0
    v8 = sorted(set(x["participants"])-set(x["notified"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('frivolous filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': True, 'notified': ['a']}, [0, 0, 0, 0, 0]), ('ground order / frivolous filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': True, 'notified': ['a']}, [0, 0, 0, 0, 0]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [4, 8, 12, 16, 20])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['objection-deposit-disposition'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

prompt:
A nonfrivolous unsuccessful challenge loses a refundable deposit.

A provisional award challenge has bidder standing, grounds, evidence receipt, hearing outcomes and a limited remedy. Filing preserves the award but blocks finality until all admissible objections are resolved. Dates are ticks and list entries retain filing order. Named decision objection-deposit-disposition: For objection deposit disposition, apply the stipulated decision 0 if x["frivolous"] else x["deposit"].

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = [x["winner"]] if x["winner"] not in x["notified"] else []
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['hearing-notice-parties'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    v0 = x["challenger"] in x["participants"] and x["challenger"]!=x["winner"]
    v1 = [g for g in x["grounds"] if g in x["permitted"]]
    v2 = x["filed"]<=x["deadline"]
    v3 = set(x["evidence"])<=set(x["received"])
    v4 = not (set(x["objections"])-set(x["resolved"])-set(x["withdrawn"]))
    v5 = [i for i in x["awarded"] if i not in x["affected"]] if x["upheld"] else x["awarded"]
    v6 = [o for o in x["objections"] if o not in x["withdrawn"]]
    v7 = 0 if x["frivolous"] else x["deposit"]
    v8 = sorted(set(x["participants"]))
    v9 = [o for o in x["upheld"] if o in x["objections"] and o not in x["withdrawn"]]
    return {'challenger-standing':v0,'admissible-grounds':v1,'filing-deadline':v2,'evidence-completeness':v3,'open-objection-finality':v4,'remedy-lot-scope':v5,'withdrawn-hearing-removal':v6,'objection-deposit-disposition':v7,'hearing-notice-parties':v8,'upheld-live-objections':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('ground order', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['procedure', 'eligibility'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('nonparticipant', {'challenger': 'c', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('winner challenges own award', {'challenger': 'a', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('deadline filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 6, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('late filing', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 7, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('all evidence received', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1', 'e2'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('all objections resolved', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1', 'o2'], 'objections': ['o1', 'o2'], 'upheld': ['o2'], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']]), ('none upheld', {'challenger': 'b', 'participants': ['a', 'b'], 'winner': 'a', 'grounds': ['eligibility', 'price'], 'permitted': ['eligibility', 'procedure'], 'filed': 5, 'deadline': 6, 'evidence': ['e1', 'e2'], 'received': ['e1'], 'resolved': ['o1'], 'objections': ['o1', 'o2'], 'upheld': [], 'affected': ['L2'], 'awarded': ['L1', 'L2'], 'withdrawn': ['o1'], 'deposit': 4, 'frivolous': False, 'notified': ['a']}, [['b'], ['b'], ['b'], ['b'], ['b']])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['hearing-notice-parties'], expected[N-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

prompt:
Hearing notice omits losing participants or re-notifies everyone.

A provisional award challenge has bidder standing, grounds, evidence receipt, hearing outcomes and a limited remedy. Filing preserves the award but blocks finality until all admissible objections are resolved. Dates are ticks and list entries retain filing order. Named decision hearing-notice-parties: For hearing notice parties, apply the stipulated decision sorted(set(x["participants"])-set(x["notified"])).

split: open-access