Files
Jyotisha/tests/test_ayanamsa_switching.py
T
Jesse_Chen 8010245981
Independent Staging Quality Gate / validate (push) Failing after 6m42s
Independent Staging Quality Gate / publish (push) Has been skipped
feat(product): present consult and rectification in local skill form
Default ayanamsa to Raman with true_pushya support, attach governed Raman packets, restore Path C questionnaires and eight-method verification copy, and keep unique-minute confirmation blocked.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 21:42:47 +08:00

73 lines
2.9 KiB
Python

import sys
import os
import unittest
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'scripts')))
from jyotish_engine import compute_chart_data
class TestAyanamsaSwitching(unittest.TestCase):
def test_ayanamsa_differences(self):
# Neutral deterministic fixture; no personal birth data.
year, month, day = 1990, 4, 17
hour, minute, second = 14, 45, 20
lat, lon, tz = 37.7749, -122.4194, 8
# compute_chart_data always applies the named (or default Raman) mode.
# Global _apply_ayanamsa leftover state is not a silent Lahiri fallback.
chart_lahiri = compute_chart_data(
year, month, day, hour, minute, lat, lon, tz, second=second, ayanamsa_name='lahiri',
)
sun_lahiri = chart_lahiri[0]['planets']['Sun']['degree_raw']
chart_raman = compute_chart_data(
year, month, day, hour, minute, lat, lon, tz, second=second, ayanamsa_name='raman',
)
sun_raman = chart_raman[0]['planets']['Sun']['degree_raw']
chart_kp = compute_chart_data(
year, month, day, hour, minute, lat, lon, tz, second=second, ayanamsa_name='kp',
)
sun_kp = chart_kp[0]['planets']['Sun']['degree_raw']
# Assertions
self.assertNotEqual(sun_lahiri, sun_raman, "Lahiri and Raman longitudes must differ")
self.assertNotEqual(sun_lahiri, sun_kp, "Lahiri and KP longitudes must differ")
self.assertNotEqual(sun_raman, sun_kp, "Raman and KP longitudes must differ")
self.assertTrue(abs(sun_lahiri - sun_raman) > 0.5, "Difference should be significant")
def test_compute_chart_data_accepts_direct_ayanamsa_name(self):
year, month, day = 1990, 4, 17
hour, minute, second = 14, 45, 20
lat, lon, tz = 37.7749, -122.4194, 8
chart_lahiri = compute_chart_data(
year, month, day, hour, minute, lat, lon, tz,
second=second,
ayanamsa_name='lahiri',
)[0]
chart_raman = compute_chart_data(
year, month, day, hour, minute, lat, lon, tz,
second=second,
ayanamsa_name='raman',
)[0]
self.assertEqual(chart_raman['birth_info']['ayanamsa_name'], 'raman')
self.assertLess(chart_raman['birth_info']['ayanamsa'], chart_lahiri['birth_info']['ayanamsa'])
self.assertNotEqual(
chart_lahiri['planets']['Sun']['degree_raw'],
chart_raman['planets']['Sun']['degree_raw'],
)
chart_default = compute_chart_data(
year, month, day, hour, minute, lat, lon, tz, second=second,
)[0]
self.assertEqual(chart_default['birth_info']['ayanamsa_name'], 'raman')
self.assertEqual(
chart_default['planets']['Sun']['degree_raw'],
chart_raman['planets']['Sun']['degree_raw'],
)
if __name__ == '__main__':
unittest.main()