package svg import ( "math" "strings" "testing" "time" "b612.me/astro/basic" ) // 详细版式组合图必须把摘要、穿影示意图与世界可见性底图放在同一页,并带日月地心坐标块与三栏面板。 func TestLunarEclipseDetailedSVGCombinesBothCharts(t *testing.T) { date := time.Date(2025, time.March, 14, 0, 0, 0, 0, time.UTC) for _, language := range []string{"zh", "en"} { rendered, ok := LunarEclipseDetailedSVG(date, LunarEclipseDetailedSVGOptions{ Language: language, Location: time.UTC, }) if !ok { t.Fatalf("%s: missing chart", language) } shared := []string{ `class="lunar-geocentric-block"`, // 日月地心坐标块 `class="lunar-detailed-panel"`, // 历时/接触/……面板 `class="lunar-scale-bar"`, // 弧分比例尺 `class="lunar-visibility-regions"`, // 可见性区域 `class="entire-eclipse-region"`, // 全程可见区 ` 0.001 { t.Fatalf("gamma = %.4f, want 0.3481", geometry.Gamma) } if math.Abs(geometry.PenumbralRadiusDegrees-1.1899) > 0.001 { t.Fatalf("penumbral radius = %.4f, want 1.1899", geometry.PenumbralRadiusDegrees) } if math.Abs(geometry.UmbralRadiusDegrees-0.6537) > 0.001 { t.Fatalf("umbral radius = %.4f, want 0.6537", geometry.UmbralRadiusDegrees) } if math.Abs(result.Magnitude-1.1784) > 0.001 { t.Fatalf("umbral magnitude = %.4f, want 1.1784", result.Magnitude) } if math.Abs(result.PenumbralMagnitude-2.2595) > 0.001 { t.Fatalf("penumbral magnitude = %.4f, want 2.2595", result.PenumbralMagnitude) } }