fix(report,chart): blank columns — drop Kranti, split Ashtakavarga house SAV, ascendant nakshatra, engine varga dignity, no duplicate charts (BUG-1199..1203)
- Report p33 table: no Kranti column (no producer; materials.kranti stays blocked). - Report p53 table: the "SAV" column was the with-Lagna total (386). Split in the reader into SAV / Lagna BAV / SAV + Lagna with a totals row; ashtakavarga.py is untouched (frozen rectification identity, ERR-115). - /api/chart ascendant carries nakshatra / pada / lord (_nakshatra_fields shared with the nine bodies); chart cache schema 4 -> 5. - /api/varga_full bodies carry dignity_level from varga_dignity_level, the function the Vimsopaka path now shares (A/B identical); the chart page shows the D1 status wording and no longer derives a three-level dignity itself. - Report page draws each chart once: the trailing block skips charts the body already fenced (same rule as the export); the birth-time caveat moves under the body's chart heading. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
0e856f9cb6
commit
ae18952e51
@@ -3413,6 +3413,30 @@ def test_varga_full_endpoint_returns_extended_standard_divisions() -> None:
|
||||
assert result['result']['D81_Navamsa-Navamsa']['planets']['Moon']['house'] in range(1, 13)
|
||||
|
||||
|
||||
def test_varga_full_standard_divisions_carry_the_vimsopaka_dignity_level() -> None:
|
||||
"""BUG-1202: the chart page shows this level; it is the Vimsopaka function's."""
|
||||
import jyotish_engine
|
||||
from varga import calc_all_vargas
|
||||
|
||||
handler = _handler()
|
||||
planets = _sample_planets()
|
||||
result = handler._compute_varga_full({
|
||||
'planets': planets,
|
||||
'ascendant': {'lon': 92.0},
|
||||
'divisions': ['D9', 'D10'],
|
||||
})
|
||||
d9 = result['result']['D9_Navamsa']['planets']
|
||||
assert {name: row['dignity_level'] for name, row in d9.items()} == {
|
||||
name: jyotish_engine.varga_dignity_level(name, d9) for name in d9
|
||||
}
|
||||
assert all(row['dignity_level'] in jyotish_engine.DIGNITY_LABELS for row in d9.values())
|
||||
# The Vimsopaka path reads the same positions from varga.calc_all_vargas.
|
||||
vimsopaka_d9 = calc_all_vargas({name: row['lon'] for name, row in planets.items()}, 92.0, None)['D9_Navamsa']
|
||||
for name, row in d9.items():
|
||||
assert vimsopaka_d9[name]['sign'] == row['sign'], name
|
||||
assert jyotish_engine.varga_dignity_level(name, vimsopaka_d9) == row['dignity_level'], name
|
||||
|
||||
|
||||
def test_varga_full_endpoint_supports_custom_and_composite_modes() -> None:
|
||||
handler = _handler()
|
||||
custom = handler._compute_varga_full({
|
||||
|
||||
Reference in New Issue
Block a user