test(consult): regenerate consultation goldens from the real engine; card shadbala rows (T1-T9)
consult-evidence-card-golden.json and consult-biography-backtest-golden.json re-captured with their capture scripts (JYOTISH_API_CHART_CACHE_TTL_SECONDS=0, PYTHONHASHSEED=0). Differences are the batch's own: Sodhita chain and house_scores sav_sodhita (BUG-1209), shadbala minimum fields (BUG-1208), varshesha_basis (BUG-1212), traditional_yogas names (BUG-1205/1207: Neecha Bhanga with conditions, Mahapurusha with 部分减弱, Taylor's trikona Hamsa gone), chart.yogas Kemadruma rows (BUG-1206), Rahu/Ketu status and D9 dignity and fixed-lord rule hits in the health sieve (BUG-1211). Card: shadbala rows are rupas / minimum_check / level (the engine's other three fields restate them; keeps the 12,000-character card budget). Changed assertions (three columns in PROGRESS): career 10H SAV keys, annual chart keys, Obama traditional-yoga names. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
eb00b0f70f
commit
0d6af77cea
@@ -481,6 +481,25 @@ function rolePlanetRow(base: EvidenceCard["base"], name: string): JsonRecord | u
|
||||
return klass ? { ...row, functional: klass } : row;
|
||||
}
|
||||
const ARUDHA_KEYS = ["sign", "lord"] as const;
|
||||
/**
|
||||
* BUG-1208 (ruling 甲13): per planet the rupas, the BPHS minimum check first,
|
||||
* then the band already labelled 「(网站分档)」 by the engine. The engine's
|
||||
* `min_required` / `meets_minimum` / `level_source` restate the same two facts
|
||||
* and are left off the card to keep it within its size budget.
|
||||
*/
|
||||
const SHADBALA_CARD_KEYS = ["rupas", "minimum_check", "level"] as const;
|
||||
|
||||
function shadbalaCardRows(shadbala: Json): Json {
|
||||
const rows = record(shadbala);
|
||||
if (!Object.keys(rows).length) return shadbala;
|
||||
const out: JsonRecord = {};
|
||||
for (const [planet, row] of Object.entries(rows)) {
|
||||
const picked = pickKeys(row, SHADBALA_CARD_KEYS);
|
||||
out[planet] = nonEmpty(picked) ? picked : (copy(row) ?? null);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
/** BUG-1209: reduced SAV first, raw SAV beside it (labels: EVIDENCE_CARD_LABELS.savColumns). */
|
||||
const SAV_HOUSE_KEYS = ["sign", "sav_sodhita", "sav_score", "level"] as const;
|
||||
/** The engine writes the Arudha Lagna as pada A1 (its own name: "Arudha Lagna (AL)"). */
|
||||
@@ -820,7 +839,7 @@ function domainSection(
|
||||
}
|
||||
if (rule.shadbala) {
|
||||
const shadbala = copy(chart.shadbala);
|
||||
if (shadbala !== undefined && shadbala !== null) section.shadbala = shadbala;
|
||||
if (shadbala !== undefined && shadbala !== null) section.shadbala = shadbalaCardRows(shadbala);
|
||||
else gaps.push(`${domain}.shadbala`);
|
||||
}
|
||||
if (rule.savHouses.length) {
|
||||
|
||||
Reference in New Issue
Block a user