add secondary progression and solar arc evidence
This commit is contained in:
@@ -80,7 +80,12 @@ def test_workflow_adds_only_explicit_western_timing_layers() -> None:
|
||||
packet = _western_evidence_packet_from_body(
|
||||
{
|
||||
"entry_mode": "direct_chart",
|
||||
"western_timing": {"transit_date": "2026-07-09", "solar_return_year": 2026},
|
||||
"western_timing": {
|
||||
"transit_date": "2026-07-09",
|
||||
"solar_return_year": 2026,
|
||||
"secondary_progression_date": "2026-07-09",
|
||||
"solar_arc_date": "2026-07-09",
|
||||
},
|
||||
},
|
||||
{"primary_theme": "career"},
|
||||
birth_payload={
|
||||
@@ -89,7 +94,9 @@ def test_workflow_adds_only_explicit_western_timing_layers() -> None:
|
||||
},
|
||||
)
|
||||
|
||||
assert set(packet["timing_techniques"]) == {"transits", "solar_return"}
|
||||
assert set(packet["timing_techniques"]) == {
|
||||
"transits", "solar_return", "secondary_progressions", "solar_arc_directions",
|
||||
}
|
||||
assert packet["sections"]["timing_techniques"]["status"] == "used"
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ from __future__ import annotations
|
||||
|
||||
from scripts.western_timing_engine import (
|
||||
build_timing_techniques,
|
||||
calculate_secondary_progressions,
|
||||
calculate_solar_arc_directions,
|
||||
calculate_solar_return,
|
||||
calculate_transit_to_natal,
|
||||
)
|
||||
@@ -37,3 +39,21 @@ def test_timing_builder_only_contains_requested_techniques() -> None:
|
||||
timing = build_timing_techniques(**_BIRTH, transit_date="2026-07-09", solar_return_year=2026)
|
||||
|
||||
assert set(timing) == {"transits", "solar_return"}
|
||||
|
||||
|
||||
def test_secondary_progressions_use_declared_day_for_year_contract() -> None:
|
||||
progressions = calculate_secondary_progressions(**_BIRTH, target_date="2026-07-09")
|
||||
|
||||
assert progressions["technique"] == "secondary_progressions"
|
||||
assert progressions["method"] == "one_ephemeris_day_per_tropical_year"
|
||||
assert progressions["progressed_planets"]["sun"]["longitude"] != progressions["natal_sun_longitude"]
|
||||
assert progressions["aspects"]
|
||||
|
||||
|
||||
def test_solar_arc_uses_secondary_progressed_sun_arc() -> None:
|
||||
directions = calculate_solar_arc_directions(**_BIRTH, target_date="2026-07-09")
|
||||
|
||||
assert directions["technique"] == "solar_arc_directions"
|
||||
assert directions["method"] == "secondary_progressed_sun_arc"
|
||||
assert 0 < directions["solar_arc_degrees"] < 40
|
||||
assert directions["directed_points"]["sun"]["longitude"] != directions["natal_sun_longitude"]
|
||||
|
||||
Reference in New Issue
Block a user