public Distance predictedHorizontalSeparation(Instant curTime, Duration timeStep) {
        return predictedSeparation(horizontalDistances, curTime, timeStep);
    }
@Test
    public void testPredictedHorizontalSeparation() {
        Distance[] horizontalDistances = new Distance[]{
            Distance.ofNauticalMiles(1),
            Distance.ofNauticalMiles(.5),
            Distance.ofNauticalMiles(1)
        };

        SeparationTimeSeries instance = new SeparationTimeSeries(
            times(),
            verticalDistances(),
            horizontalDistances
        );

        //start a .9 separation...should drop to .6 NM after 3 seconds
        assertEquals(
            0.6,
            instance.predictedHorizontalSeparation(EPOCH.plusSeconds(1), Duration.ofSeconds(3)).inNauticalMiles(),
            0.000001
        );
        //start a .9 separation...should drop to 0 NM after 9 seconds
        assertEquals(
            0.0, //nautical miles
            instance.predictedHorizontalSeparation(EPOCH.plusSeconds(1), Duration.ofSeconds(9)).inNauticalMiles(),
            0.000001
        );
        //start a .9 separation...should go back up to .1 NM after 10 seconds
        assertEquals(
            0.1, //nautical miles
            instance.predictedHorizontalSeparation(EPOCH.plusSeconds(1), Duration.ofSeconds(10)).inNauticalMiles(),
            0.000001
        );
        //start a .6 separation...should go up to 1.6 NM after 10 seconds
        assertEquals(
            1.6, //nautical miles
            instance.predictedHorizontalSeparation(EPOCH.plusSeconds(6), Duration.ofSeconds(10)).inNauticalMiles(),
            0.000001
        );
    }