public void OverlappingBoth() { // Overlapped by both second and third var first = ToDefinition(-150, 10); var second = ToDefinition(140, -50); var third = ToDefinition(0, 60); var calculator = new ProjectionOverlapCalculator(); calculator.Initialise(new List <SatelliteDefinition> { first, second, third }); VerifyRangeEquivalency( calculator.GetNonOverlappingRange(first), new Range(Angle.FromDegrees(-100), Angle.FromDegrees(5))); VerifyRangeEquivalency( calculator.GetNonOverlappingRange(second), new Range(Angle.FromDegrees(140), Angle.FromDegrees(260))); VerifyRangeEquivalency( calculator.GetNonOverlappingRange(third), new Range(Angle.FromDegrees(5), Angle.FromDegrees(60))); }
public void SingleSatellite() { var goes16 = ToDefinition(-156.2995, 6.2995); var calculator = new ProjectionOverlapCalculator(); calculator.Initialise(new List <SatelliteDefinition> { goes16 }); VerifyRangeEquivalency(calculator.GetNonOverlappingRange(goes16), goes16.LongitudeRange); }
public void Goes17Himawari8() { // Simplified for ease of validation var goes17 = ToDefinition(140, -50, "GOES-17"); var himawari8 = ToDefinition(60, -140, "Himawari-8"); var calculator = new ProjectionOverlapCalculator(); calculator.Initialise(new List <SatelliteDefinition> { goes17, himawari8 }); VerifyRangeEquivalency( calculator.GetNonOverlappingRange(goes17), new Range(Angle.FromDegrees(180).Radians, Angle.FromDegrees(-50).Radians)); }
public void OverlappingSingleNoWrap() { var first = ToDefinition(-100, 0); var second = ToDefinition(-50, 150); var calculator = new ProjectionOverlapCalculator(); calculator.Initialise(new List <SatelliteDefinition> { first, second }); VerifyRangeEquivalency( calculator.GetNonOverlappingRange(first), new Range(Angle.FromDegrees(-100), Angle.FromDegrees(-25))); VerifyRangeEquivalency( calculator.GetNonOverlappingRange(second), new Range(Angle.FromDegrees(-25), Angle.FromDegrees(150))); }