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
+10
View File
@@ -0,0 +1,10 @@
package svg
import (
"runtime"
"strings"
)
func go116386() bool {
return runtime.GOARCH == "386" && strings.HasPrefix(runtime.Version(), "go1.16")
}
+15
View File
@@ -44,7 +44,22 @@ var lunarPenumbralPhaseBaseline = []struct {
{"2016-08-18 详细版 en", "0c5fdc6c04f993504ae970c2e8861ccb", 261488},
}
func TestLunarEclipseMapSVGDisablePenumbralPhaseRendersOnGo116386(t *testing.T) {
if !go116386() {
t.Skip("Go 1.16/386 only")
}
for name, draw := range lunarPenumbralPhaseBaselineRenderers() {
doc, rendered := draw()
if !rendered || !strings.Contains(doc, "<svg") || !strings.Contains(doc, "</svg>") {
t.Fatalf("%s: rendered=%v bytes=%d", name, rendered, len(doc))
}
}
}
func TestLunarEclipseMapSVGDisablePenumbralPhaseMatchesBaseline(t *testing.T) {
if go116386() {
t.Skip("Go 1.16/386 的浮点格式化会改变 SVG 文本;字节基线由 Go 1.17+ 门禁覆盖")
}
render := lunarPenumbralPhaseBaselineRenderers()
if len(render) != len(lunarPenumbralPhaseBaseline) {
t.Fatalf("baseline table has %d cases, renderers %d", len(lunarPenumbralPhaseBaseline), len(render))