mirror of
https://github.com/migatu/astrololo.git
synced 2026-07-14 21:38:37 +00:00
94c3023d3a
Kontynuacja silnika efemeryd o osie i domy. - engine/houses.py: czysta matematyka sferyczna — Asc, MC (z RAMC + ε + φ), cusps dla Whole Sign / Equal / Porphyry, przypisanie obiektu do domu. - SkyfieldEngine.sidereal(): RAMC (lokalny apparent ST) + średnie nachylenie ekliptyki ze Skyfielda. - engine/chart.py: build_chart() składa pełny horoskop (pozycje + osie + domy). - Endpoint /chart/positions rozszerzony o house_system i zwraca angles + cusps + numer domu per obiekt. - Prezentacja: lokalizacja i wybór systemu domów w formularzu, tabela osi, kolumna Dom, rozwijane cusps. Walidacja względem astro.com (30.04.1984, Warszawa): Asc Can 22°10'43", MC Pis 22°35'29" (~1' od referencji); wszystkie przypisania domów Whole Sign zgodne (Sun 11, Mercury 10, Mars 5, ...). 20 testów przechodzi. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 lines
1.2 KiB
Python
28 lines
1.2 KiB
Python
"""Integracja: pełny horoskop (pozycje + osie + domy) przez silnik (LOG-01+LOG-05).
|
|
|
|
Waliduje względem astro.com dla horoskopu referencyjnego.
|
|
"""
|
|
from app.engine.chart import build_chart
|
|
|
|
|
|
def test_chart_angles_match_reference(own_engine, reference_moment):
|
|
chart = build_chart(own_engine, reference_moment, "whole_sign")
|
|
assert chart["angles"]["Asc"]["sign"] == "Cancer"
|
|
assert chart["angles"]["MC"]["sign"] == "Pisces"
|
|
|
|
|
|
def test_chart_house_assignments_match_reference(own_engine, reference_moment):
|
|
chart = build_chart(own_engine, reference_moment, "whole_sign")
|
|
by = {p["name"]: p for p in chart["positions"]}
|
|
expected = {"Sun": 11, "Moon": 11, "Mercury": 10, "Venus": 10, "Mars": 5,
|
|
"Jupiter": 7, "Saturn": 5, "Uranus": 6, "Neptune": 7, "Pluto": 5}
|
|
for name, house in expected.items():
|
|
assert by[name]["house"] == house, f"{name}: dom {by[name]['house']} != {house}"
|
|
|
|
|
|
def test_house_systems_available(own_engine, reference_moment):
|
|
for system in ("whole_sign", "equal", "porphyry"):
|
|
chart = build_chart(own_engine, reference_moment, system)
|
|
assert chart["house_system"] == system
|
|
assert len(chart["cusps"]) == 12
|