Pontosság - ez az, amit a felhasználó szemmel ellenőrizni fogja téged az Astrodienst-en. Ha a jelenlegi naplók elszakadtak a kerek órában, a panaszok gyorsan megjelennek. És a legrosszabb ebben az, hogy a pontosságot könnyen megsérthetjük észrevétlenül: egy kis refactoring a kódjában az ephemerisben, és a fele az endpointek csendben elmennek a sekély szögökbe.
Ez az, hogyan nem engedjük ezt megtörténni.
Egyetlen kód egy két környezetben
Szekció neve “Egyetlen kód egy két környezetben”A bolygók pozícióit számolja a Swiss Ephemeris, amit WASM-ben összeállítottunk. A kulcs: ez ugyanaz a kód és a két környezetben, a böngészőnkben és a szerverünkön. Az egyetlen kód core/, amit áthúzunk a háttérben egy cross-repo alias segítségével, és beépítjük a buildbe. Nem létezik “böngésző” és “szerver” megvalósítás, amelyek eltérhetnek egymástól.
A különleges esetekhez a fallback-analitikus (Moshier) szolgál, amely kissé durvább, de nem szakad meg a határokon. Szándékosan őszinte: a valós verziót nem hirdetjük nyilván, mert a valós verzió a kód alacsonyabb, mint a legújabb felsőállomány, és a nagy számnak hangosat kiáltani volna hazugság.
Fagyos szenzorok
Szekció neve “Fagyos szenzorok”Minden számítási endpointnek van egy fagyos szenzora - 873 JSON-fixturát az adott buildnél. A build futtatja az endpointet az alapértelmezett térképeken és a fixturával, és a fixturával együtt. Bármilyen eltérés a bolygók hosszúságában több mint 5e-5° (0.18″) elutasítja a tesztet.
A referencia térképeket úgy választjuk, hogy a határokon ütjék, nem csak a “kényelmes” közepén:
- Monroe, Diana, Einstein, Bowie - történelmi térképek ismert születési adatokkal
- pólus szélesség - ahol a rendszerek kivérzése
- ekvator - ahol másként viselkednek
- dél féltek - a tükörképek ellenőrzése
A határok a kisregressziókat azokat a regressziókat fogják elkapni, amelyeket a kisember nem lát a térképen.
A háromszöghöz viszonyítva az külső források
Szekció neve “A háromszöghöz viszonyítva az külső források”A szenzorok a regressziókat azokat fogják elkapni, amelyek a saját magukhoz viszonyítva vannak. Hogy a teljes igazságot ellenőrizzük, minden buildet ellenőrizzük független forrásokkal:
| Ellenőrzés | Ellenőrzés | Eltérés |
|---|---|---|
| swetest CGI (Astrodienst) | bolygók hosszúságai, kúpok a rendszerekben | 0.000″ |
| Kerykeion (Python, pyswisseph) | független SwEph megvalósítás | < 0.2″ |
| Prokerala (sidereal Lahiri) | szaiderikus pozíciók | 8-17″, rendszeres különbség a Lahiri formulában, nem a rúgás |
| NASA 5-Millennium Eclipse Catalog | idő és típus a sötétség | < 1 h |
A Prokerala eltérései nem hibák: különböző megvalósítások a Lahiri formulában, és dokumentáljuk ezt nyíltan, nem titkoljuk el. A swetest, amely az iparágban az alapértelmezett, nélküli dülöngéssel.
A csillagászati vonalakat külön ellenőrizzük geometriailag - a pontosság az ekvatoron jobb, mint 1.5 km.
Mi fut a minden PR-n
Szekció neve “Mi fut a minden PR-n”A pontosság - ez a CI-gate, nem a szóban forgó ellenőrzés:
api-accuracy.yml- minden PR-n a háttérkód futtatja a teljes szenzorokat + háromszöghöz viszonyítva. A vörös teszt blokkolja a merge-t.check-eclipse-accuracy.yml- évente ellenőrzi a sötétséget a NASA-katalógussal; a különbség több mint a küszöböt automatikusan elindítja a problémát.check-sweph-updates.yml- havonta figyeli a felsőállományt a Swiss Ephemeris és a WASM-pakettel; új verzió - a probléma a revízióban, nincs automatikus frissítés (a rúgás a rúgásokat túl érzékeny a számára).
Mi adja a garantáló
Szekció neve “Mi adja a garantáló”A garantáló egyszerű: a bolygók pozíciói a < 0.1 kúposzekund-ban vannak az alapértelmezett Swiss Ephemerishez képest, és ezt a garantáló automatikusan védjük, nem a README-ben tett ígérettel. Ha valaha is megjelenik egy regresszió, az a CI-ben fogja esni, nem a felhasználó panaszaiban.
A nyilvános verzió ezen számok, a különbségekkel a konkrét térképeken, él a Pontosság oldalon.
Ugyanaz a Swiss Ephemeris, mint a Solar Fire-ben - 4 sor kóddal.
Ingyenes kulcs bankkártya nélkül. Havi 5 000 hívás a fizetésig.