import XCTest
@testable import LocalSkyRadar

final class CoordinateMathTests: XCTestCase {
    // KOAK is ~10 NM northeast of KSFO. (The earlier "11.5 NM / 115°" example in
    // build_plan.md was geographically wrong — 115° would put KOAK southeast.)
    func testEquirectangularDist() {
        let dist = CoordinateMath.equirectangularDist(lat1: 37.6189, lon1: -122.3750, lat2: 37.7188, lon2: -122.2101)
        XCTAssertEqual(dist, 9.86, accuracy: 0.5)
    }

    func testBearingFrom() {
        let bearing = CoordinateMath.bearingFrom(lat1: 37.6189, lon1: -122.3750, lat2: 37.7188, lon2: -122.2101)
        XCTAssertEqual(bearing, 52.5, accuracy: 5.0)
    }

    func testProjectToScopeScalesDistanceWithinRange() {
        let aircraft = Aircraft(
            id: "scale",
            callsign: "SCALE",
            type: "B738",
            registration: "N001",
            lat: 0.5,
            lon: 0,
            altitudeFt: 10_000,
            groundSpeedKt: 250,
            trackDeg: 0,
            trend: .level,
            source: .adsb,
            distNM: 30,
            bearingDeg: 0
        )

        let pos = CoordinateMath.projectToScope(
            ac: aircraft,
            center: (lat: 0, lon: 0),
            rangeNM: 100,
            cx: 100,
            cy: 100,
            R: 100
        )

        XCTAssertEqual(pos.x, 100, accuracy: 0.5)
        XCTAssertEqual(pos.y, 70, accuracy: 0.5)
    }
}
