31 lines
839 B
Go
31 lines
839 B
Go
|
|
package astro
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"b612.me/astro/internal/ephem"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestContextDefaultRefreshAndExistingModelSetter(t *testing.T) {
|
||
|
|
previousModel := GetModel()
|
||
|
|
previousInstance := ephem.Global()
|
||
|
|
t.Cleanup(func() {
|
||
|
|
SetModel(previousModel)
|
||
|
|
ephem.SetGlobal(previousInstance)
|
||
|
|
})
|
||
|
|
SetModel(ModelLegacy)
|
||
|
|
first, err := NewContext(ModelLegacy)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
ephem.SetGlobal(ephem.NewInstance(nil))
|
||
|
|
SetModel(ModelLegacy)
|
||
|
|
if ephem.Global().Model() != ephem.Legacy || GetModel() != ModelLegacy {
|
||
|
|
t.Fatal("repeated SetModel retained an incompatible global instance")
|
||
|
|
}
|
||
|
|
ephem.SetActive(ephem.Semianalytic)
|
||
|
|
if GetModel() != ModelSemianalytic || ephem.Global().Model() != ephem.Semianalytic || first.Model() != ModelLegacy {
|
||
|
|
t.Fatal("existing model setter broke global refresh or explicit isolation")
|
||
|
|
}
|
||
|
|
}
|