This commit is contained in:
Your Name
2026-10-08 18:03:11 +08:00
parent 4dac39c4c2
commit 19ea2dadeb
26 changed files with 1131 additions and 28 deletions
@@ -29,6 +29,23 @@ analysisParserExpect(is_string($json), 'fixture JSON encodes');
$parsed = $parse->invoke(null, $json);
analysisParserExpect($parsed === $validPayload, 'plain JSON parses without changing contract');
foreach (['diagnosis_ad', 'diagnosis_adive'] as $alias) {
$misspelled = $validPayload;
$misspelled[$alias] = $misspelled['diagnosis_advice'];
unset($misspelled['diagnosis_advice']);
analysisParserExpect(
$parse->invoke(null, json_encode($misspelled, JSON_UNESCAPED_UNICODE)) === $validPayload,
"observed {$alias} typo maps to canonical diagnosis field"
);
}
$ambiguous = $validPayload;
$ambiguous['diagnosis_ad'] = '另一段诊断';
analysisParserExpect(
$parse->invoke(null, json_encode($ambiguous, JSON_UNESCAPED_UNICODE)) === null,
'conflicting diagnosis fields are rejected'
);
$fenced = "说明文字\n```json\n{$json}\n```\n后续文字";
analysisParserExpect($parse->invoke(null, $fenced) === $validPayload, 'fenced JSON with surrounding text parses');