2026-10-15 23:54:15 +08:00
|
|
|
package phenomena
|
|
|
|
|
|
|
|
|
|
import (
|
2026-10-18 16:13:14 +08:00
|
|
|
"errors"
|
2026-10-15 23:54:15 +08:00
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"b612.me/astro/basic"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestStarCoordinateLookup(t *testing.T) {
|
|
|
|
|
byHR, err := StarCoordinateByHR(2491)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("StarCoordinateByHR() error = %v", err)
|
|
|
|
|
}
|
|
|
|
|
byName, err := StarCoordinateByName("天狼")
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("StarCoordinateByName() error = %v", err)
|
|
|
|
|
}
|
|
|
|
|
if byHR != byName {
|
|
|
|
|
t.Fatalf("lookup mismatch: HR=%+v name=%+v", byHR, byName)
|
|
|
|
|
}
|
2026-10-18 16:13:14 +08:00
|
|
|
byEnglish, err := StarCoordinateByName("sirius")
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("StarCoordinateByName(sirius) error = %v", err)
|
|
|
|
|
}
|
|
|
|
|
if byHR != byEnglish {
|
|
|
|
|
t.Fatalf("English lookup mismatch: HR=%+v name=%+v", byHR, byEnglish)
|
|
|
|
|
}
|
2026-10-15 23:54:15 +08:00
|
|
|
|
|
|
|
|
data, err := basic.StarDataByHR(2491)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("basic star lookup error = %v", err)
|
|
|
|
|
}
|
|
|
|
|
converted, err := StarCoordinateFromStarData(data)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("StarCoordinateFromStarData() error = %v", err)
|
|
|
|
|
}
|
|
|
|
|
if byHR != converted {
|
|
|
|
|
t.Fatalf("wrapper mismatch: lookup=%+v converted=%+v", byHR, converted)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestStarCoordinateLookupInvalid(t *testing.T) {
|
|
|
|
|
if _, err := StarCoordinateByHR(0); err == nil {
|
|
|
|
|
t.Fatal("StarCoordinateByHR(0) expected an error")
|
|
|
|
|
}
|
2026-10-18 16:13:14 +08:00
|
|
|
if _, err := StarCoordinateByName("不存在的恒星"); !errors.Is(err, ErrStarNotFound) {
|
|
|
|
|
t.Fatalf("StarCoordinateByName(不存在的恒星) error = %v, want ErrStarNotFound", err)
|
|
|
|
|
}
|
|
|
|
|
if _, err := StarCoordinateByName("杵增一"); !errors.Is(err, ErrStarNameAmbiguous) {
|
|
|
|
|
t.Fatalf("StarCoordinateByName(杵增一) error = %v, want ErrStarNameAmbiguous", err)
|
2026-10-15 23:54:15 +08:00
|
|
|
}
|
|
|
|
|
if _, err := StarCoordinateFromStarData(StarData{}); err == nil {
|
|
|
|
|
t.Fatal("StarCoordinateFromStarData() expected an error")
|
|
|
|
|
}
|
|
|
|
|
}
|