using Nonemm.Core; namespace Nonemm.Spotting.Tests; public class SpotJitterTests { private static Spot At(double kilohertz) => new(Callsign.Parse("OM5M"), Frequency.FromKilohertz(kilohertz), DateTime.UtcNow, SpotSource.Cluster); [Fact] public void ACwSpotMovesByThirtyOrSixtyHertz() { Random random = new(1); for (int run = 0; run < 20; run++) { Spot moved = SpotJitter.Shifted(At(14_025), BandPlan.Default, random); long offset = moved.Frequency.Hertz - 14_025_000; Assert.Contains(offset, (long[])[-60, -30, 30, 60]); } } [Fact] public void APhoneSpotIsLeftWhereItIs() { Spot spot = At(14_250); Assert.Equal(spot, SpotJitter.Shifted(spot, BandPlan.Default, new Random(1))); } }