26 lines
722 B
Go
26 lines
722 B
Go
|
|
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)
|
||
|
|
}
|
||
|
|
}
|