"""Hypothetical scores, not any detector's performance. Standard library only."""
import json
ROWS=[['T001', 'human', 0.9], ['T002', 'human', 0.9], ['T003', 'human', 0.9], ['T004', 'human', 0.9], ['T005', 'human', 0.9], ['T006', 'human', 0.6], ['T007', 'human', 0.6], ['T008', 'human', 0.6], ['T009', 'human', 0.6], ['T010', 'human', 0.6], ['T011', 'human', 0.6], ['T012', 'human', 0.6], ['T013', 'human', 0.6], ['T014', 'human', 0.6], ['T015', 'human', 0.6], ['T016', 'human', 0.6], ['T017', 'human', 0.6], ['T018', 'human', 0.6], ['T019', 'human', 0.6], ['T020', 'human', 0.6], ['T021', 'human', 0.2], ['T022', 'human', 0.2], ['T023', 'human', 0.2], ['T024', 'human', 0.2], ['T025', 'human', 0.2], ['T026', 'human', 0.2], ['T027', 'human', 0.2], ['T028', 'human', 0.2], ['T029', 'human', 0.2], ['T030', 'human', 0.2], ['T031', 'human', 0.2], ['T032', 'human', 0.2], ['T033', 'human', 0.2], ['T034', 'human', 0.2], ['T035', 'human', 0.2], ['T036', 'human', 0.2], ['T037', 'human', 0.2], ['T038', 'human', 0.2], ['T039', 'human', 0.2], ['T040', 'human', 0.2], ['T041', 'human', 0.2], ['T042', 'human', 0.2], ['T043', 'human', 0.2], ['T044', 'human', 0.2], ['T045', 'human', 0.2], ['T046', 'human', 0.2], ['T047', 'human', 0.2], ['T048', 'human', 0.2], ['T049', 'human', 0.2], ['T050', 'human', 0.2], ['T051', 'ai', 0.9], ['T052', 'ai', 0.9], ['T053', 'ai', 0.9], ['T054', 'ai', 0.9], ['T055', 'ai', 0.9], ['T056', 'ai', 0.9], ['T057', 'ai', 0.9], ['T058', 'ai', 0.9], ['T059', 'ai', 0.9], ['T060', 'ai', 0.9], ['T061', 'ai', 0.9], ['T062', 'ai', 0.9], ['T063', 'ai', 0.9], ['T064', 'ai', 0.9], ['T065', 'ai', 0.9], ['T066', 'ai', 0.9], ['T067', 'ai', 0.9], ['T068', 'ai', 0.9], ['T069', 'ai', 0.9], ['T070', 'ai', 0.9], ['T071', 'ai', 0.9], ['T072', 'ai', 0.9], ['T073', 'ai', 0.9], ['T074', 'ai', 0.9], ['T075', 'ai', 0.9], ['T076', 'ai', 0.6], ['T077', 'ai', 0.6], ['T078', 'ai', 0.6], ['T079', 'ai', 0.6], ['T080', 'ai', 0.6], ['T081', 'ai', 0.6], ['T082', 'ai', 0.6], ['T083', 'ai', 0.6], ['T084', 'ai', 0.6], ['T085', 'ai', 0.6], ['T086', 'ai', 0.6], ['T087', 'ai', 0.6], ['T088', 'ai', 0.6], ['T089', 'ai', 0.6], ['T090', 'ai', 0.6], ['T091', 'ai', 0.2], ['T092', 'ai', 0.2], ['T093', 'ai', 0.2], ['T094', 'ai', 0.2], ['T095', 'ai', 0.2], ['T096', 'ai', 0.2], ['T097', 'ai', 0.2], ['T098', 'ai', 0.2], ['T099', 'ai', 0.2], ['T100', 'ai', 0.2]]
def metrics(t):
    tp=sum(o=="ai" and s>=t for _,o,s in ROWS);fp=sum(o=="human" and s>=t for _,o,s in ROWS)
    fn=sum(o=="ai" and s<t for _,o,s in ROWS);tn=sum(o=="human" and s<t for _,o,s in ROWS)
    return {"threshold":t,"TP":tp,"FP":fp,"FN":fn,"TN":tn,"precision":tp/(tp+fp),"recall":tp/(tp+fn),"human_false_positive_rate":fp/(fp+tn)}
if __name__=="__main__":
    a,b=metrics(.5),metrics(.8)
    assert [a[k] for k in ["TP","FP","FN","TN"]]==[40,20,10,30]
    assert [b[k] for k in ["TP","FP","FN","TN"]]==[25,5,25,45]
    print(json.dumps({"hypothetical_only":True,"results":[a,b]},indent=2))
