feat: add timing detail scan tools
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
def test_vimshottari_subperiod_timeline_expands_ad_to_pd() -> None:
|
||||
completed = subprocess.run(
|
||||
[
|
||||
sys.executable,
|
||||
"scripts/vimshottari_subperiod_timeline.py",
|
||||
"--year",
|
||||
"2000",
|
||||
"--month",
|
||||
"1",
|
||||
"--day",
|
||||
"1",
|
||||
"--hour",
|
||||
"12",
|
||||
"--minute",
|
||||
"0",
|
||||
"--lat",
|
||||
"0.0",
|
||||
"--lon",
|
||||
"0.0",
|
||||
"--tz",
|
||||
"0",
|
||||
"--years",
|
||||
"30",
|
||||
],
|
||||
cwd=ROOT,
|
||||
text=True,
|
||||
capture_output=True,
|
||||
timeout=180,
|
||||
check=False,
|
||||
)
|
||||
assert completed.returncode == 0, completed.stderr or completed.stdout
|
||||
report = json.loads(completed.stdout)
|
||||
first_ad = report["timeline"][0]["antardasha"][0]
|
||||
assert len(first_ad["pratyantar"]) == 9
|
||||
assert first_ad["pratyantar"][0]["start"] == first_ad["start"]
|
||||
assert first_ad["pratyantar"][-1]["end"] == first_ad["end"]
|
||||
|
||||
|
||||
def test_daily_transit_window_scan_runs_one_day_json() -> None:
|
||||
completed = subprocess.run(
|
||||
[
|
||||
sys.executable,
|
||||
"scripts/daily_transit_window_scan.py",
|
||||
"--start",
|
||||
"2027-03-01",
|
||||
"--end",
|
||||
"2027-03-01",
|
||||
"--planets",
|
||||
"Jupiter,Saturn",
|
||||
"--tz",
|
||||
"0",
|
||||
],
|
||||
cwd=ROOT,
|
||||
text=True,
|
||||
capture_output=True,
|
||||
timeout=120,
|
||||
check=False,
|
||||
)
|
||||
assert completed.returncode == 0, completed.stderr or completed.stdout
|
||||
report = json.loads(completed.stdout)
|
||||
assert report["days"] == 1
|
||||
assert report["rows"][0]["date"] == "2027-03-01"
|
||||
planets = report["rows"][0]["transit"]["planets"]
|
||||
if isinstance(planets, dict):
|
||||
assert "Jupiter" in planets
|
||||
else:
|
||||
assert any(item.get("planet") == "Jupiter" for item in planets)
|
||||
Reference in New Issue
Block a user