astro/orbit/parallactic_test.go

26 lines
722 B
Go
Raw Normal View History

package orbit
import (
"math"
"testing"
"time"
"b612.me/astro/basic"
)
func TestParallacticAngleMatchesHourAngleForm(t *testing.T) {
elements := sampleObservationElements()
date := time.Date(2025, 11, 21, 20, 0, 0, 0, time.FixedZone("CST", 8*3600))
got := ParallacticAngle(date, elements, shanghaiLon, shanghaiLat, shanghaiHeightMeters)
position := ApparentTopocentricEquatorial(date, elements, shanghaiLon, shanghaiLat, shanghaiHeightMeters)
want := basic.ParallacticAngleByHourAngle(
HourAngle(date, elements, shanghaiLon, shanghaiLat, shanghaiHeightMeters),
position.Dec,
shanghaiLat,
)
if math.Abs(got-want) > 1e-12 {
t.Fatalf("parallactic angle mismatch: got %.15f want %.15f", got, want)
}
}