27 lines
848 B
Go
27 lines
848 B
Go
|
|
package sun
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
"time"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestRiseSetWithAtmosphere(t *testing.T) {
|
||
|
|
date := time.Date(2025, 1, 1, 0, 0, 0, 0, time.FixedZone("CST", 8*3600))
|
||
|
|
base, err := RiseTime(date, 116.4, 39.9, 0, true)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
same, err := RiseTimeWithAtmosphere(date, 116.4, 39.9, 0, 1010, 10)
|
||
|
|
if diff := same.Sub(base); err != nil || diff > 10*time.Millisecond || diff < -10*time.Millisecond {
|
||
|
|
t.Fatalf("standard weather %v vs %v (%v)", same, base, err)
|
||
|
|
}
|
||
|
|
cold, err := RiseTimeWithAtmosphere(date, 116.4, 39.9, 0, 1040, -30)
|
||
|
|
if err != nil || !cold.Before(base) {
|
||
|
|
t.Fatalf("cold dense air should advance sunrise: %v vs %v (%v)", cold, base, err)
|
||
|
|
}
|
||
|
|
set, err := SetTimeWithAtmosphere(date, 116.4, 39.9, 0, 1040, -30)
|
||
|
|
if err != nil || set.Location() != date.Location() {
|
||
|
|
t.Fatalf("sunset: %v %v", set, err)
|
||
|
|
}
|
||
|
|
}
|