Files
astro/basic/ephemeris_test.go
T

42 lines
1.3 KiB
Go
Raw Normal View History

// 被测契约:默认构建以旧级数开始;切换模型使缓存世代递增,重复设置同一模型不递增,未知模型被拒绝。
package basic
import (
"testing"
"b612.me/astro/internal/ephem"
)
func TestEphemerisDefaultIsBuildDefault(t *testing.T) {
if ephem.BuildDefault != ephem.Legacy && ephem.BuildDefault != ephem.Semianalytic {
t.Fatalf("build default %d", ephem.BuildDefault)
}
if GetEphemerisModel() != EphemerisModel(ephem.BuildDefault) {
t.Fatalf("default model %d, build default %d", GetEphemerisModel(), ephem.BuildDefault)
}
}
func TestSetEphemerisModelBumpsGeneration(t *testing.T) {
if SetEphemerisModel(EphemerisModel(99)) {
t.Fatal("unknown model accepted")
}
prev := GetEphemerisModel()
t.Cleanup(func() { SetEphemerisModel(prev) })
SetEphemerisModel(EphemerisLegacy)
g := deltaTGenerationValue()
SetEphemerisModel(EphemerisSemianalytic)
if deltaTGenerationValue() == g {
t.Fatal("generation did not change")
}
g = deltaTGenerationValue()
SetEphemerisModel(EphemerisSemianalytic)
if deltaTGenerationValue() != g {
t.Fatal("setting the same model changed the generation")
}
before := HMoonTrueLo(2451545.0)
SetEphemerisModel(EphemerisLegacy)
if HMoonTrueLo(2451545.0) == before {
t.Fatal("moon longitude did not follow the model switch")
}
}