1, 'diagnosis_date' => '2026-10-26', 'tongue' => '未记录']); $known = Guard::build(['id' => 1, 'diagnosis_date' => '2026-10-26', 'tongue' => '舌淡,苔薄白。']); $before = serialize([$unknown, $known]); $cases = [ [$unknown, '本次尚缺可核验的舌象、本次症状病史;依赖这些资料的辨证只作待核实方向,其余记录仍可供相应任务分析。', true], [$unknown, '当前没有可比较的血糖数值,不能计算趋势;可依据既往诊断记录建立同一时段的测量表,补充空腹或餐后身份及测量条件后再评价。', true], [$unknown, '目前缺少可核验的舌象资料。', true], [$unknown, '当前尚缺可比较的用药记录。', true], [$known, '本次尚缺可核验的舌象。', false], [$known, '当前没有可核验的舌象记录。', false], [$unknown, '本次尚缺可核验的舌象,但本次舌红,苔黄腻。', false], [$unknown, '本次尚缺可核验的舌象且舌红。', false], [$unknown, '本次尚缺可核验的舌象;本次舌红。', false], [$unknown, '本次尚缺可核验的舌象并且舌红。', false], [$unknown, '当前没有可比较的血糖数值,但本次舌红。', false], [$unknown, '本次尚缺可核验的舌红。', false], [$unknown, '舌象正常。', false], [$unknown, '本次无舌象异常。', false], ]; $results = []; foreach ($cases as [$ledger, $text, $expected]) { $result = Guard::validate($ledger, $text); $results[] = ['text' => $text, 'expected' => $expected, 'actual' => $result['valid'], 'issues' => $result['issues'], 'passed' => $expected === $result['valid']]; } $unchanged = serialize([$unknown, $known]) === $before; echo json_encode(['passed' => count(array_filter($results, fn($r) => $r['passed'])), 'total' => count($results), 'ledgers_unchanged' => $unchanged, 'cases' => $results], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n"; exit($unchanged && !array_filter($results, fn($r) => !$r['passed']) ? 0 : 1);