public void PlannerClass_GetMinimumSurfaceInterval_SelectedValuesAndEdgeCases() { _classUnderTest.GetMinimumSurfaceInterval('A', 0, 0).AssertHasSamePropertyValues(new SurfaceInterval('A', new TimeSpan(0, 0, 0), new TimeSpan(0, 3, 0), 'A', 10, 209)); _classUnderTest.GetMinimumSurfaceInterval('A', 40, 7).AssertHasSamePropertyValues(new SurfaceInterval('A', new TimeSpan(0, 0, 0), new TimeSpan(0, 3, 0), 'A', 2, 7)); // can't do this dive. Max mins = 6 Assert.IsNull(_classUnderTest.GetMinimumSurfaceInterval('C', 40, 8), "Unexpected minimum surface interval"); // M -> J after 15 mins allowing for 20 mins @ 20 metres _classUnderTest.GetMinimumSurfaceInterval('M', 20, 20).AssertHasSamePropertyValues(new SurfaceInterval('M', new TimeSpan(0, 15, 0), new TimeSpan(0, 19, 0), 'J', 25, 20)); // Surface interval out of range of table. Should return an 'A' _classUnderTest.GetMinimumSurfaceInterval('Z', 10, 20, new TimeSpan(7, 0, 0)).AssertHasSamePropertyValues(new SurfaceInterval('Z', new TimeSpan(3, 0, 0), new TimeSpan(6, 0, 0), 'A', 10, 209)); }