Files
Jyotisha/tests/test_rectification_house_table.py
T
Jesse_Chen c8af18e90a
Independent Staging Quality Gate / validate (push) Failing after 9m39s
Independent Staging Quality Gate / publish (push) Has been skipped
fix(rectification): show the house table and hide the activity fold
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 20:11:51 +08:00

65 lines
2.4 KiB
Python

from __future__ import annotations
import json
import unittest
from scripts.rectification.house_table import compact_house_table, compact_house_table_from_contexts
class RectificationHouseTableTests(unittest.TestCase):
def test_compact_house_table_is_twelve_houses_without_coordinates(self):
chart = {
"ascendant": {"sign": "Taurus"},
"planets": {
"Sun": {"sign": "Taurus", "house": 1, "lon": 41.2},
"Moon": {"sign": "Cancer", "house": 3},
"Mars": {"sign": "Aries", "house": 12},
},
}
table = compact_house_table(chart, time="05:13")
self.assertIsNotNone(table)
assert table is not None
self.assertEqual(table["time"], "05:13")
self.assertEqual(table["lagna"], "金牛座")
self.assertEqual(len(table["houses"]), 12)
self.assertEqual(table["houses"][0], {
"house": 1,
"sign": "金牛座",
"occupants": ["太阳"],
})
self.assertEqual(table["houses"][2]["occupants"], ["月亮"])
self.assertEqual(table["houses"][11]["occupants"], ["火星"])
serialized = json.dumps(table, ensure_ascii=False)
for denied in ("lon", "latitude", "longitude", "degree", "score", "fingerprint"):
self.assertNotIn(denied, serialized)
def test_contexts_select_the_representative_time(self):
table = compact_house_table_from_contexts(
[
{
"feature": {"time": "05:12"},
"chart": {"ascendant": {"sign": "Aries"}, "planets": {}},
},
{
"feature": {"time": "05:13"},
"chart": {
"ascendant": {"sign": "Taurus"},
"planets": {"Sun": {"sign": "Taurus", "house": 1}},
},
},
],
"05:13",
)
self.assertIsNotNone(table)
assert table is not None
self.assertEqual(table["lagna"], "金牛座")
self.assertEqual(table["houses"][0]["occupants"], ["太阳"])
def test_missing_chart_stays_omitted(self):
self.assertIsNone(compact_house_table_from_contexts([], "05:13"))
self.assertIsNone(compact_house_table({"planets": {}}, time="05:13"))
if __name__ == "__main__":
unittest.main()