Практичitatea este cea pe care utilizatorul îți verifică în secret pe Astrodienst. Dacă cartea nativă se desprinde în minutul cuadrant, plângerea va ajunge repede. Și cel mai rău e că această precizie poate fi ușor spartă în mod neștiințific: un refactoring în codul ephemeridei, și jumătate din endpointurile tale se duc pe secundele de arc.
Așa că astfel nu se întâmplă.
O singură nucleu pentru două medii
Section titled “O singură nucleu pentru două medii”Pozițiile planetare sunt calculate de Swiss Ephemeris, compilat în WASM. Cheie: aceeași nucleu este și în browserul nostru, și pe serverul API. O singură bază de cod core/, atașată în backend prin aliasul inter-repo și integrată în bandlul de pe build. Nu există „implementare browser” și „implementare server” care pot diverge - nu diverg nimic.
Pentru date din afara domeniului ephemeridei, există un fallback analitic (Moshier), puțin mai gros, dar fără rupturi la limite. Conștiință sinceră: nu declarăm public o anumită versiune a rulii, pentru că versiunea reală a nucleului este mai mică decât cea mai nouă versiune upstream, și scrierea cu o voce tare ar fi o minciună.
Sfârșitul surselor
Section titled “Sfârșitul surselor”Fiecare endpoint de calcul are un set de sursă fixată - 873 JSON-ficstur la momentul acestui build. Rularea este testată pe cartele de referință și comparată cu fixtura. Orice deosebire a planetei în longitudine mai mare decât 5e-5° (0,18″) validează testul.
Cartele de referință sunt selectate astfel încât să bată la marginile, nu doar în centrul „convenabil”:
- Monroe, Diana, Einstein, Bowie - cartele istorice cu date de naștere cunoscute
- polul - unde sistemele se nasc
- ecuatorial - unde se comportă diferit
- polul - unde se testează simetria
Cazurile limită prind exact acele regresii care nu se văd pe harta lui Ivan.
Triunghiare împotriva surselor externe
Section titled “Triunghiare împotriva surselor externe”Sursa fixată prind regresia față de sine. Pentru a verifica adevărul absolut, fiecare rulare este comparată cu surse independente:
| Față de ce | Ce se testează | Deosebire |
|---|---|---|
| swetest CGI (Astrodienst) | longitudini planete, cușpi domilor | 0.000″ |
| Kerykeion (Python, pyswisseph) | implementare independentă a SwEph | < 0.2″ |
| Prokerala (sidereal Lahiri) | poziții siderice | 8-17″, diferență de sistemă în formulă ayanamși, nu rulare |
| NASA 5-Millennium Eclipse Catalog | timp și tipuri de umbre | < 1 min |
Deosebirea cu Prokerala - nu este o eroare: este o implementare diferită a formulei Lahiri, și noi documentăm asta deschis, nu îl ascundem. Cu swetest, care este etalonul industriei, deosebirea este nulă.
Linii aștruite separate sunt testate geometric - precizia pe ecuator este mai bună decât 1,5 km.
Ce se rulează pe fiecare PR
Section titled “Ce se rulează pe fiecare PR”Precizia este CI-gate, nu o singură verificare:
api-accuracy.yml- pe fiecare PR în backend-ul codului rulează întregul set de sursă fixată + triunghiare. Testul roșu blochează merge-ul.check-eclipse-accuracy.yml- o dată pe an se testează umbre cu catalogul NASA; deosebire mai mare decât pragul automatizează issue-ul.check-sweph-updates.yml- o dată pe săptămână se testează upstream-ul Swiss Ephemeris și WASM-pachetul; o nouă versiune - issue pe revizuire, fără automerj (actualizarea rulii ephemeridei - prea sensibilă pentru autoupdate).
Ce oferă integratorul
Section titled “Ce oferă integratorul”Garantia simplă: pozițiile planetare în limitele < 0.1 secunde de arc față de etalonul Swiss Ephemeris, și această limită este protejată automat, nu promisă în README. Dacă odată apare o regresie, ea va cădea în CI-ul nostru, nu în plângerea utilizatorului tău.
Versiunea publică a acestor cifre, cu tabelă de deosebire pe cartele specifice, trăiește pe pagina Precizie.
Același Swiss Ephemeris ca în Solar Fire - în 4 linii de cod.
Cheie gratuită fără card. 5.000 de apeluri pe lună până la prima plată.