Daha doğru bir şey, Astrodienst’te kullanıcıların sessizce seni kontrol etmen için neydi. Eğer doğal kartın kutu saati ile dağıldıysa, şikayet çabucak gelirdi. Ve en kötüsü, bu doğruyu kolayca gizlemek için bir şey: bir kod refactoringu, ve yarısı sessizce sekans dalgaları için gitti.
Aşağıdaki gibi, bunu yapmamızı sağlıyoruz.
İki ortama bir çekirdek
Section titled “İki ortama bir çekirdek”Gezegenlerin pozisyonlarını hesaplayan Swiss Ephemeris, WASM’de bir araya getirildi. Anahtar nokta: bu çekirdek hem uygulamamızın tarayıcı uygulamasında hem de API sunucusunda aynıdır. core/ kod tabanını bir cross-repo alias’ı aracılığıyla arka plana çekiyoruz ve onu bir bantta inşa ediyoruz. “Tarayıcı” ve “API sunucusu” uygulamaları arasında bir ayrım yok.
Dış diyapazonun dışındaki tarihler için, analitik bir geri dönüş (Moshier), biraz daha sert ama sınırda kopukluk yok. Bilinen dürüstlük: gerçek çekirdek versiyonunu açıkça belirtmiyoruz, çünkü gerçek çekirdek versiyonu en son upstream’tan daha düşük ve yazmak için bir yalan olurdu.
Donanım saniyorları
Section titled “Donanım saniyorları”Her hesaplamalı endpoint, donanım saniyorları bir setine sahiptir - 873 JSON fiksürler, bu bantta. Ranner, endpointi etalon kartlara çalıştırır ve fiksürle karşılaştırır. Herhangi bir gezegenin uzunluğu 5e-5° (0.18”)‘dan fazla bir sapma, testi reddeder.
Eton kartları, sınırda değil, merkezde değil, ama sınırda vurur:
- Monroe, Diana, Einstein, Bowie - tarihsel kartlar, bilinen doğum verileri ile
- Kuzey kutbunda - ev sistemleri doğuyor
- Ekvator - onlar farklı davranır
- Güney yarımküresinde - terslik kontrolü
Sınırların dışındaki durumlar, sadece kuyrukların değil, ama regresyonların da yakalanır.
Dışarıdan kaynaklara karşı üçgenleme
Section titled “Dışarıdan kaynaklara karşı üçgenleme”Saniyorlar, kendileri ile karşılaştırıldığında regresyonları yakalar. Dışarıdan kaynaklara karşı doğrulamak için, her rilize, bağımsız kaynaklara karşı doğrulandı:
| Karşılaştırmak | Doğrulandı | Rozlaşma |
|---|---|---|
| swetest CGI (Astrodienst) | gezegenlerin uzunluğu, ev sistemleri | 0.000" |
| Kerykeion (Python, pyswisseph) | bağımsız Swiss Ephimere | < 0.2" |
| Prokerala (sidereal Lahiri) | sidiyelik pozisyonları | 8-17" , sistem formülün farklılığı, rüşiyenin değil |
| NASA 5-Millennium Eclipse Catalog | zaman ve türü, karanlık | < 1 dakika |
Prokerala ile rozlaşma, hata değil, farklılıkların farklılığıdır. Swetest, endüstri standardı, durağan rozlaşma sahiptir.
Astro kartografik hattı, geometrik olarak doğrulandı - ekvatorda doğruluk, 1.5 km’den daha iyidir.
Her PR’de ne çalışır
Section titled “Her PR’de ne çalışır”Dürüstlük, CI-gate’dir, değil, tek seferli doğrulamadır:
api-accuracy.yml- her PR’de, arka plan kodunu çalıştırır, tüm saniyorları + üçgenleme. Reddeden test, birleştirme bloklar.check-eclipse-accuracy.yml- her yıl, NASA kataloğu ile karanlık doğrulandı; rozlaşma, ortalıkta olduğunda, otomatik olarak bir sorun açar.check-sweph-updates.yml- her ay, Swiss Ephemeris ve WASM paketini kontrol eder; yeni versiyon, rüşiyenin otomatik güncellemesi, çok hassas bir şeydir.
İntegrator’a ne sağlar
Section titled “İntegrator’a ne sağlar”Garantörlük basit: gezegenlerin uzunluğu, Swiss Ephemeris etalonu ile, < 0.1 derece’den daha az sapma ile. Bu sınır, otomatik olarak korunan bir sınır, değil, bir garanti. Eğer regresyon ortaya çıkarsa, CI’de düşer, değil, kullanıcıların şikayetinde.
Bu verileri, etalon kartlar için, Dürüstlük sayfasında açıklayız.
Solar Fire'daki aynı Swiss Ephemeris - 4 satır kodla.
Kart gerekmeden ücretsiz anahtar. İlk ödemeye kadar ayda 5.000 istek.