16c62a97d5
- 新增时标、ΔT 模型、质心时间与 UT1 支持 - 改进日月食、月掩、行星事件及路径边界计算 - 完善恒星三维自行与动态距离传播 - 扩展 SVG、GeoJSON、KML 输出与底层距离换算工具 - 整理中英文手册、示例资源及回归测试
32 lines
1.1 KiB
Go
32 lines
1.1 KiB
Go
package basic
|
|
|
|
import (
|
|
"math"
|
|
"testing"
|
|
)
|
|
|
|
func TestMercuryRetrogradeFastPathKeepsTypedCandidateOrder(t *testing.T) {
|
|
// 这些查询覆盖一个普通古代周期和两个长间隔边界 / These queries cover a normal ancient cycle and two long-gap boundaries
|
|
//,类型化驻留搜索必须作为最终权威 / where the typed station search must remain the final authority.
|
|
for _, queryUT := range []float64{
|
|
1026548.810500779,
|
|
1644733.927538287,
|
|
1645082.416782375,
|
|
} {
|
|
queryTT := UTC2TT(queryUT)
|
|
nextP2R := NextMercuryProgradeToRetrograde(queryTT)
|
|
nextR2P := NextMercuryRetrogradeToPrograde(queryTT)
|
|
wantNext := math.Min(nextP2R, nextR2P)
|
|
if got := NextMercuryRetrograde(queryTT); math.Abs(got-wantNext) > 1e-7 {
|
|
t.Fatalf("next aggregate mismatch at %.9f: got %.12f want %.12f", queryUT, got, wantNext)
|
|
}
|
|
|
|
lastP2R := LastMercuryProgradeToRetrograde(queryTT)
|
|
lastR2P := LastMercuryRetrogradeToPrograde(queryTT)
|
|
wantLast := math.Max(lastP2R, lastR2P)
|
|
if got := LastMercuryRetrograde(queryTT); math.Abs(got-wantLast) > 1e-7 {
|
|
t.Fatalf("last aggregate mismatch at %.9f: got %.12f want %.12f", queryUT, got, wantLast)
|
|
}
|
|
}
|
|
}
|