Packages/MoonriseKit/Tests/SkyEngineTests/PassActivityTests.swift
33 lines · 1343 bytes
1import Foundation
2import Testing
3@testable import SkyEngine
4
5private let now = Date(timeIntervalSince1970: 1_792_364_400)
6
7private func pass(risingIn seconds: TimeInterval) -> SatellitePass {
8 SatellitePass(name: "ISS (ZARYA)", rise: now.addingTimeInterval(seconds), set: now.addingTimeInterval(seconds + 360), peak: now.addingTimeInterval(seconds + 180),
9 maxAltitude: 62, riseAzimuth: 240, setAzimuth: 60, visible: true, featured: true)
10}
11
12@Test func activityStartsTenMinutesBeforeRise() {
13 #expect(pass(risingIn: 3600).activityStart(now: now) == now.addingTimeInterval(3000))
14 #expect(pass(risingIn: 24 * 3600).activityStart(now: now) == now.addingTimeInterval(24 * 3600 - 600))
15}
16
17@Test func activityStartsNowWithinTenMinutesOrDuringThePass() {
18 #expect(pass(risingIn: 300).activityStart(now: now) == now)
19 #expect(pass(risingIn: -120).activityStart(now: now) == now)
20}
21
22@Test func noActivityAfterSetOrBeyondADay() {
23 #expect(pass(risingIn: -360).activityStart(now: now) == nil)
24 #expect(pass(risingIn: 24 * 3600 + 1).activityStart(now: now) == nil)
25}
26
27@Test func compassPoints() {
28 #expect(SkyEngine.compass(0) == "N")
29 #expect(SkyEngine.compass(22.4) == "N")
30 #expect(SkyEngine.compass(22.5) == "NE")
31 #expect(SkyEngine.compass(240) == "SW")
32 #expect(SkyEngine.compass(359) == "N")
33}