62 lines
2.4 KiB
Python
62 lines
2.4 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, _apply_ayanamsa
|
|
|
|
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
|
|
|
|
# 1. Lahiri
|
|
_apply_ayanamsa('lahiri')
|
|
chart_lahiri = compute_chart_data(year, month, day, hour, minute, lat, lon, tz, second=second)
|
|
sun_lahiri = chart_lahiri[0]['planets']['Sun']['degree_raw']
|
|
|
|
# 2. Raman
|
|
_apply_ayanamsa('raman')
|
|
chart_raman = compute_chart_data(year, month, day, hour, minute, lat, lon, tz, second=second)
|
|
sun_raman = chart_raman[0]['planets']['Sun']['degree_raw']
|
|
|
|
# 3. KP
|
|
_apply_ayanamsa('kp')
|
|
chart_kp = compute_chart_data(year, month, day, hour, minute, lat, lon, tz, second=second)
|
|
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'],
|
|
)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|