सटीकता वह चीज़ है जिसे उपयोगकर्ता चुपचाप Astrodienst पर आपसे मिलाकर जाँचता है। अगर जन्म कुंडली में एक आर्कमिनट का भी अंतर आया, तो शिकायत जल्दी आ जाएगी। और सबसे बुरी बात यह है कि सटीकता को बिना किसी के ध्यान दिए तोड़ना आसान है: एफ़ेमेरिस कोड में एक रिफ़ैक्टरिंग, और आधे एंडपॉइंट चुपचाप कुछ आर्कसेकंड खिसक जाते हैं।
हम इसे होने से ऐसे रोकते हैं।
दो वातावरणों के लिए एक कोर
Section titled “दो वातावरणों के लिए एक कोर”ग्रहों की स्थितियाँ Swiss Ephemeris गणना करता है। मुख्य बात: हमारे ऐप और API में एक ही गणना कोर है, एक ही कोडबेस। ऐसे दो इम्प्लीमेंटेशन नहीं हैं जो अलग-अलग नतीजे दे सकें, इसलिए अंतर आने की कोई गुंजाइश नहीं।
एफ़ेमेरिस की मुख्य रेंज से बाहर की तारीखों के लिए एक विश्लेषणात्मक fallback (Moshier) है, थोड़ा कम सटीक, लेकिन सीमाओं पर बिना किसी टूटन के। सोची-समझी ईमानदारी: हम इंजन का कोई विशेष वर्ज़न सार्वजनिक रूप से घोषित नहीं करते, क्योंकि कोर का वास्तविक वर्ज़न नवीनतम upstream से पुराना है, और एक बड़ा आँकड़ा लिखना झूठ होता।
फ़्रीज़ किए गए स्नैपशॉट
Section titled “फ़्रीज़ किए गए स्नैपशॉट”हर गणना एंडपॉइंट के पास फ़्रीज़ किए गए स्नैपशॉट का एक सेट है: इस बिल्ड के समय 888 JSON फ़िक्स्चर। रनर एंडपॉइंट को संदर्भ कुंडलियों पर चलाता है और परिणाम को फ़िक्स्चर से बाइट-दर-बाइट (टॉलरेंस के भीतर) मिलाता है। ग्रहों के भोगांश में 5e-5° (0.18″) से अधिक का कोई भी विचलन टेस्ट को फ़ेल कर देता है।
संदर्भ कुंडलियाँ इस तरह चुनी गई हैं कि वे किनारों को परखें, सिर्फ़ “सुविधाजनक” बीच वाले मामलों को नहीं:
- Monroe, Diana, Einstein, Bowie: ज्ञात जन्म विवरण वाली ऐतिहासिक कुंडलियाँ
- ध्रुवीय अक्षांश: जहाँ भाव पद्धतियाँ विकृत हो जाती हैं
- भूमध्यरेखीय: जहाँ वे अलग तरह से व्यवहार करती हैं
- दक्षिणी गोलार्ध: प्रतिबिंब (mirroring) की जाँच
सीमांत मामले ठीक वही रिग्रेशन पकड़ते हैं जो किसी सामान्य कीव निवासी की कुंडली पर दिखाई नहीं देते।
बाहरी स्रोतों के विरुद्ध ट्रायंगुलेशन
Section titled “बाहरी स्रोतों के विरुद्ध ट्रायंगुलेशन”स्नैपशॉट खुद के सापेक्ष रिग्रेशन पकड़ते हैं। पूर्ण सत्य जाँचने के लिए हर रिलीज़ को स्वतंत्र स्रोतों से मिलाया जाता है:
| किसके विरुद्ध | क्या जाँचता है | अंतर |
|---|---|---|
| swetest CGI (Astrodienst) | ग्रहों के भोगांश, भाव कस्प्स | 0.000″ |
| Kerykeion (Python, pyswisseph) | SwEph का स्वतंत्र इम्प्लीमेंटेशन | < 0.2″ |
| Prokerala (sidereal Lahiri) | सायन के बजाय निरयन (sidereal) स्थितियाँ | 8-17″, अयनांश फ़ॉर्मूले का व्यवस्थित अंतर, इंजन का नहीं |
| NASA 5-Millennium Eclipse Catalog | ग्रहणों का समय और प्रकार | < 1 मिनट |
Prokerala से अंतर कोई त्रुटि नहीं है: ये Lahiri फ़ॉर्मूले के अलग-अलग इम्प्लीमेंटेशन हैं, और हम इसे छिपाने के बजाय स्पष्ट रूप से दस्तावेज़ित करते हैं। swetest के साथ, जो उद्योग का मानक है, ड्रिफ़्ट शून्य है।
एस्ट्रोकार्टोग्राफ़ी रेखाओं को अलग से ज्यामितीय रूप से जाँचा जाता है: भूमध्य रेखा पर सटीकता 1.5 किमी से बेहतर है।
हर PR पर क्या चलता है
Section titled “हर PR पर क्या चलता है”सटीकता एक CI-gate है, एक बार की जाँच नहीं:
api-accuracy.yml: बैकएंड कोड के हर PR पर स्नैपशॉट का पूरा सेट + ट्रायंगुलेशन चलाता है। लाल टेस्ट merge को रोक देता है।check-eclipse-accuracy.yml: साल में एक बार ग्रहणों को NASA कैटलॉग से मिलाता है; सीमा से अधिक अंतर होने पर अपने आप issue बनता है।check-sweph-updates.yml: हर हफ़्ते upstream Swiss Ephemeris पर नज़र रखता है; नया वर्ज़न आने पर समीक्षा के लिए issue बनता है, बिना auto-merge के (एफ़ेमेरिस इंजन का अपडेट auto-update के लिए बहुत संवेदनशील चीज़ है)।
इंटीग्रेटर को इससे क्या मिलता है
Section titled “इंटीग्रेटर को इससे क्या मिलता है”गारंटी सरल है: ग्रहों की स्थितियाँ संदर्भ Swiss Ephemeris से < 0.1 आर्कसेकंड के भीतर हैं, और यह सीमा ऑटोमेशन से सुरक्षित है, README में किए वादे से नहीं। अगर कभी कोई रिग्रेशन आता है, तो वह हमारे CI में फ़ेल होगा, आपके उपयोगकर्ता की शिकायत में नहीं।
इन आँकड़ों का सार्वजनिक संस्करण, विशिष्ट कुंडलियों पर अंतर की तालिका के साथ, सटीकता पृष्ठ पर है।
आर्क-सेकंड तक सटीक पोज़िशन, बस 4 लाइनों के कोड में।
कार्ड के बिना मुफ्त कुंजी। पहले भुगतान तक 5,000 कॉल प्रति माह।