feat: 完善星表查询与跨版本回归验证

- 将星表名称数据收敛为 TSV/GZIP 单一数据源,补充中文名、别名、英文常用名及宿/垣区域字段
- 增加星表名称表加载校验、旧详情字段一致性校验和 GZIP 漂移检查
- 新增 StarDataByName、StarDataByNameAll、StarDataByNameIn ,统一中英文查询与重名消歧
- 优化日月食半影带、升落曲线和可见性回归测试,补充极区、拓扑及低精度场景覆盖
- 增加 Go 1.16/386 兼容门禁和测试案例,处理旧工具链的分配、拓扑、SVG字节及 ULP 差异
- 补充星表、坐标、日月食和低精度回归用例,完善测试文件与缓存忽略规则
This commit is contained in:
2026-10-18 16:13:14 +08:00
parent 0e3825d5ba
commit 72460fa228
30 changed files with 3932 additions and 127 deletions
+13 -2
View File
@@ -1,6 +1,7 @@
package phenomena
import (
"errors"
"testing"
"b612.me/astro/basic"
@@ -18,6 +19,13 @@ func TestStarCoordinateLookup(t *testing.T) {
if byHR != byName {
t.Fatalf("lookup mismatch: HR=%+v name=%+v", byHR, byName)
}
byEnglish, err := StarCoordinateByName("sirius")
if err != nil {
t.Fatalf("StarCoordinateByName(sirius) error = %v", err)
}
if byHR != byEnglish {
t.Fatalf("English lookup mismatch: HR=%+v name=%+v", byHR, byEnglish)
}
data, err := basic.StarDataByHR(2491)
if err != nil {
@@ -36,8 +44,11 @@ func TestStarCoordinateLookupInvalid(t *testing.T) {
if _, err := StarCoordinateByHR(0); err == nil {
t.Fatal("StarCoordinateByHR(0) expected an error")
}
if _, err := StarCoordinateByName("不存在的恒星"); err == nil {
t.Fatal("StarCoordinateByName() expected an error")
if _, err := StarCoordinateByName("不存在的恒星"); !errors.Is(err, ErrStarNotFound) {
t.Fatalf("StarCoordinateByName(不存在的恒星) error = %v, want ErrStarNotFound", err)
}
if _, err := StarCoordinateByName("杵增一"); !errors.Is(err, ErrStarNameAmbiguous) {
t.Fatalf("StarCoordinateByName(杵增一) error = %v, want ErrStarNameAmbiguous", err)
}
if _, err := StarCoordinateFromStarData(StarData{}); err == nil {
t.Fatal("StarCoordinateFromStarData() expected an error")