Upstream 50847e57, ported semantically: - Sarpa Drekkana now accepts the five classical ranges (Cancer 2/3, Scorpio 1/2, Pisces 3) and partitions on the raw longitude instead of the rounded display degrees. - The 22nd Drekkana is the eighth house of D3 (+7), not +21 zodiacal ten-degree divisions. scripts/varga.py is part of the extended frozen identity, so the sealed holdout and the reported-offset sweep were re-frozen under ERR-110: 20/20 sealed trials and 900/900 sweep trials match the sync8 records on every compared field, and the metrics, summary and widening geometry are unchanged. Tests: the upstream varga/ sarpa files are added under tests/test_upstream_sync9b_*.py; the stale +21 assertion and the sarpa definition string are updated with the original/new/reason columns in PROGRESS. Co-Authored-By: Grok (agent loop)
17 lines
582 B
Python
17 lines
582 B
Python
"""Classification must use raw longitude, never rounded display degrees."""
|
|
import pytest
|
|
|
|
from scripts.varga import calc_sarpa_drekkana
|
|
|
|
|
|
@pytest.mark.parametrize('longitude,part,is_sarpa', [
|
|
(99.99999, 1, False), (100.0, 2, True),
|
|
(219.99999, 1, True), (220.0, 2, True),
|
|
(359.99999, 3, True), (360.0, 1, False),
|
|
])
|
|
def test_sarpa_partition_uses_unrounded_longitude(longitude, part, is_sarpa):
|
|
row = calc_sarpa_drekkana(longitude)
|
|
assert row['drekkana_number'] == part
|
|
assert row['is_sarpa_drekkana'] is is_sarpa
|
|
assert 1 <= row['drekkana_number'] <= 3
|