feat: 完善时标与天象几何计算并扩展输出接口
- 新增时标、ΔT 模型、质心时间与 UT1 支持 - 改进日月食、月掩、行星事件及路径边界计算 - 完善恒星三维自行与动态距离传播 - 扩展 SVG、GeoJSON、KML 输出与底层距离换算工具 - 整理中英文手册、示例资源及回归测试
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
package basic
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestLocalJulianDayAcrossDST(t *testing.T) {
|
||||
for _, name := range []string{"America/New_York", "Australia/Lord_Howe"} {
|
||||
loc, err := time.LoadLocation(name)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for _, md := range [][2]int{{3, 8}, {11, 1}, {4, 5}, {10, 4}} {
|
||||
for _, hour := range []int{0, 3, 12, 23} {
|
||||
want := time.Date(2026, time.Month(md[0]), md[1], hour, 17, 23, 125000000, loc)
|
||||
got := JD2DateByZone(Date2JD(want), loc, true)
|
||||
if delta := got.Sub(want); delta < -100*time.Microsecond || delta > 100*time.Microsecond {
|
||||
t.Errorf("local %s: got %s, delta=%s", want, got, delta)
|
||||
}
|
||||
got = JD2DateByZone(Date2JD(want.UTC()), loc, false)
|
||||
if delta := got.Sub(want); delta < -100*time.Microsecond || delta > 100*time.Microsecond {
|
||||
t.Errorf("UTC %s: got %s, delta=%s", want, got, delta)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user