Độ chính xác là điều mà người dùng sẽ kiểm tra bạn một cách lặng lẽ trên Astrodienst. Nếu bản đồ hiện tại bị rối loạn về góc độ, khiếu nại sẽ đến nhanh chóng. Và điều tồi tệ nhất là độ chính xác dễ bị phá vỡ một cách không đáng chú ý: một lần refactor trong mã ephemeris, và một nửa các điểm cuối cùng sẽ đi về các độ vĩ của giây.
Vậy chúng tôi không cho phép điều này xảy ra.
Một hạt nhân cho hai môi trường
Phần tiêu đề “Một hạt nhân cho hai môi trường”Các vị trí của các hành tinh được tính toán Swiss Ephemeris, được xây dựng trong WASM. Điểm quan trọng: đó là cùng một hạt nhân và trong ứng dụng của chúng tôi, và trên máy chủ API. Một bộ mã core/, được kéo vào phía sau qua alias cross-repo và được tích hợp vào gói xây dựng. Không có “phần mềm của trình duyệt” và “phần mềm của máy chủ” để có thể khác nhau - khác nhau về điều gì.
Để tính toán các ngày ngoài phạm vi chính của ephemeris là fallback phân tích (Moshier), hơi thô, nhưng không có vết nứt ở ranh giới. Sự trung thực rõ ràng: phiên bản cụ thể của ruxi tôi không công khai tuyên bố, vì phiên bản thực tế của hạt nhân thấp hơn so với phiên bản mới nhất upstream, và viết ra một con số lớn sẽ là một sự lừa dối.
Các bản sao đóng băng
Phần tiêu đề “Các bản sao đóng băng”Mỗi điểm tính toán có một bộ bản sao đóng băng - 873 JSON-fixture vào thời điểm xây dựng này. Ruxi chạy điểm tính toán trên các bản đồ chuẩn và so sánh với bản sao đóng băng. Bất kỳ sự khác biệt nào về độ dài của các hành tinh lớn hơn 5e-5 độ (0,18 ”) sẽ khiến thử nghiệm bị lỗi.
Các bản đồ chuẩn được chọn để có thể đánh vào các ranh giới, không chỉ đánh vào “vùng trung tâm dễ dàng”:
- Monroe, Diana, Einstein, Bowie - các bản đồ lịch sử với dữ liệu dân số nổi tiếng
- Độ rộng cực - nơi các hệ thống nhà ở bị biến dạng
- Độ rộng cực - nơi chúng hoạt động khác biệt
- Độ rộng cực - kiểm tra sự phản xạ
Các trường hợp giới hạn sẽ bắt được các sự khác biệt, mà không thể thấy được trên bản đồ của người dân.
Tam giác so với các nguồn bên ngoài
Phần tiêu đề “Tam giác so với các nguồn bên ngoài”Các bản sao đóng băng sẽ bắt được sự khác biệt so với chính mình. Để kiểm tra sự thật tuyệt đối, mỗi lần phát hành sẽ được so sánh với các nguồn độc lập:
| So với | Điểm kiểm tra | Sự khác biệt |
|---|---|---|
| swetest CGI (Astrodienst) | độ dài của các hành tinh, các điểm cuối cùng của nhà ở | 0.000 " |
| Kerykeion (Python, pyswisseph) | thực hiện độc lập của SwEph | < 0.2 " |
| Prokerala (sidereal Lahiri) | các vị trí sidereal | 8-17 " , sự khác biệt về hệ thống Lahiri, không ruxi |
| NASA 5-Millennium Eclipse Catalog | thời gian và loại bóng tối | < 1 phút |
Sự khác biệt với Prokerala - không phải là một sự sai sót: đó là các thực hiện khác nhau của công thức Lahiri, và chúng tôi sẽ ghi rõ điều này một cách rõ ràng, không che giấu. Với swetest, là một tiêu chuẩn của ngành, sự khác biệt bằng không.
Các đường biểu diễn của các nhà thiên văn học được kiểm tra riêng biệt về mặt hình học - độ chính xác trên đường xích đạo tốt hơn 1,5 km.
Điều gì được chạy trên mỗi PR
Phần tiêu đề “Điều gì được chạy trên mỗi PR”Độ chính xác là CI-gate, không phải là một lần kiểm tra:
api-accuracy.yml- trên mỗi lần PR vào phía sau mã chạy toàn bộ các bản sao đóng băng + tam giác. Kiểm tra đỏ sẽ ngăn chặn việc hợp nhất.check-eclipse-accuracy.yml- một lần mỗi năm so sánh bóng tối với catalog NASA; sự khác biệt lớn hơn ngưỡng sẽ tự động tạo ra một vấn đề.check-sweph-updates.yml- hàng tháng theo dõi upstream Swiss Ephemeris và gói WASM; phiên bản mới - một vấn đề về kiểm tra, không tự động cập nhật (cập nhật ruxi ephemeris - quá nhạy cảm để tự động cập nhật).
Điều gì cung cấp cho người tích hợp
Phần tiêu đề “Điều gì cung cấp cho người tích hợp”Đảm bảo đơn giản: các vị trí của các hành tinh trong phạm vi < 0.1 độ vĩ so với ephemeris chuẩn của Swiss, và phạm vi này được bảo vệ tự động, không phải là một lời hứa trong README. Nếu một lần nào đó có sự khác biệt, nó sẽ rơi vào CI, không phải là một khiếu nại của người dùng của bạn.
Phiên bản công khai của các con số này, với bảng sự khác biệt trên các bản đồ cụ thể, sống trên trang Độ chính xác.
Chính Swiss Ephemeris giống như trong Solar Fire - chỉ trong 4 dòng code.
Khóa API miễn phí không cần thẻ. 5.000 lượt gọi/tháng trước lần thanh toán đầu tiên.